From 21040a5428944119068c90aeac1e19e3e1654b96 Mon Sep 17 00:00:00 2001 From: Peter Goodman Date: Mon, 3 Oct 2016 16:47:53 -0400 Subject: [PATCH] I push the button --- .gdbinit | 13 + .gitignore | 9 + Makefile | 185 + README.md | 63 + coverage.cc | 31 + granary/arch/base.h | 16 + granary/arch/cpu.h | 16 + granary/arch/fault.h | 25 + granary/arch/instruction.h | 32 + granary/arch/instrument.h | 24 + granary/arch/isa.h | 30 + granary/arch/patch.h | 17 + granary/arch/x86/abi.h | 40 + granary/arch/x86/base.cc | 20 + granary/arch/x86/block.cc | 1144 ++++ granary/arch/x86/branch_tracer.S | 66 + granary/arch/x86/cache.S | 149 + granary/arch/x86/coverage.S | 100 + granary/arch/x86/cpu.cc | 18 + granary/arch/x86/fault.cc | 96 + granary/arch/x86/instruction.cc | 476 ++ granary/arch/x86/instruction.h | 215 + granary/arch/x86/instrument.cc | 49 + granary/arch/x86/patch.cc | 173 + granary/arch/x86/patch.h | 17 + granary/arch/x86/process.cc | 195 + granary/arch/x86/syscall.S | 17 + granary/arch/x86/trace.cc | 77 + granary/arch/x86/xed-intel64.h | 17 + granary/base/base.h | 346 + granary/base/breakpoint.cc | 71 + granary/base/breakpoint.h | 21 + granary/base/compiler.h | 738 ++ granary/base/interrupt.cc | 104 + granary/base/interrupt.h | 67 + granary/code/block.cc | 124 + granary/code/block.h | 84 + granary/code/branch_tracer.cc | 51 + granary/code/branch_tracer.h | 15 + granary/code/cache.cc | 232 + granary/code/cache.h | 56 + granary/code/coverage.cc | 249 + granary/code/coverage.h | 25 + granary/code/execute.cc | 162 + granary/code/execute.h | 18 + granary/code/index.cc | 172 + granary/code/index.h | 120 + granary/code/instruction.cc | 124 + granary/code/instruction.h | 101 + granary/code/instrument.cc | 56 + granary/code/instrument.h | 38 + granary/code/trace.cc | 28 + granary/code/trace.h | 49 + granary/input/mutate.cc | 604 ++ granary/input/mutate.h | 33 + granary/input/record.cc | 70 + granary/input/record.h | 70 + granary/os/decree_user/decree.h | 146 + granary/os/decree_user/snapshot.cc | 559 ++ granary/os/decree_user/syscall.cc | 696 ++ granary/os/file.cc | 133 + granary/os/file.h | 61 + granary/os/page.h | 63 + granary/os/process.cc | 551 ++ granary/os/process.h | 317 + granary/os/schedule.cc | 355 + granary/os/schedule.h | 16 + granary/os/snapshot.cc | 66 + granary/os/snapshot.h | 99 + granary/os/syscall.h | 23 + play.cc | 469 ++ snapshot.cc | 88 + third_party/gflags/AUTHORS.txt | 2 + third_party/gflags/COPYING.txt | 28 + third_party/gflags/include/gflags/gflags.h | 573 ++ .../include/gflags/gflags_completions.h | 121 + .../gflags/include/gflags/gflags_declare.h | 141 + .../gflags/include/gflags/gflags_gflags.h | 101 + third_party/gflags/lib/libgflags_nothreads.a | Bin 0 -> 1498070 bytes third_party/md5/md5.cc | 365 + third_party/md5/md5.h | 96 + third_party/radamsa/LICENSE | 19 + third_party/radamsa/radamsa.c | 5592 +++++++++++++++ third_party/radamsa/radamsa.cc | 121 + third_party/radamsa/radamsa.h | 16 + third_party/xed-intel64/BUG-REPORTS.txt | 2 + third_party/xed-intel64/LICENSE.txt | 144 + third_party/xed-intel64/README.txt | 148 + .../include/xed-address-width-enum.h | 63 + third_party/xed-intel64/include/xed-agen.h | 74 + .../xed-intel64/include/xed-attribute-enum.h | 146 + .../xed-intel64/include/xed-attributes.h | 42 + .../xed-intel64/include/xed-build-defines.h | 53 + .../xed-intel64/include/xed-category-enum.h | 134 + .../xed-intel64/include/xed-chip-enum.h | 105 + .../xed-intel64/include/xed-common-defs.h | 81 + .../xed-intel64/include/xed-common-hdrs.h | 98 + .../include/xed-convert-table-init.h | 50 + .../xed-intel64/include/xed-cpuid-bit-enum.h | 115 + .../xed-intel64/include/xed-cpuid-rec.h | 69 + third_party/xed-intel64/include/xed-decode.h | 71 + .../include/xed-decoded-inst-api.h | 667 ++ .../xed-intel64/include/xed-decoded-inst.h | 105 + third_party/xed-intel64/include/xed-disas.h | 66 + third_party/xed-intel64/include/xed-encode.h | 301 + .../include/xed-encoder-gen-defs.h | 46 + .../xed-intel64/include/xed-encoder-hl.h | 591 ++ .../xed-intel64/include/xed-encoder-iforms.h | 92 + .../xed-intel64/include/xed-error-enum.h | 77 + .../xed-intel64/include/xed-exception-enum.h | 101 + .../xed-intel64/include/xed-extension-enum.h | 113 + .../include/xed-flag-action-enum.h | 67 + .../xed-intel64/include/xed-flag-enum.h | 81 + third_party/xed-intel64/include/xed-flags.h | 247 + .../xed-intel64/include/xed-format-options.h | 75 + .../xed-intel64/include/xed-gen-table-defs.h | 51 + .../xed-intel64/include/xed-get-time.h | 86 + .../xed-intel64/include/xed-iclass-enum.h | 1560 +++++ .../xed-intel64/include/xed-iform-enum.h | 6058 +++++++++++++++++ .../xed-intel64/include/xed-iform-map.h | 131 + .../xed-intel64/include/xed-iformfl-enum.h | 3033 +++++++++ third_party/xed-intel64/include/xed-ild.h | 75 + third_party/xed-intel64/include/xed-immdis.h | 214 + third_party/xed-intel64/include/xed-immed.h | 62 + .../include/xed-init-pointer-names.h | 41 + third_party/xed-intel64/include/xed-init.h | 49 + third_party/xed-intel64/include/xed-inst.h | 380 ++ .../xed-intel64/include/xed-interface.h | 95 + .../xed-intel64/include/xed-isa-set-enum.h | 159 + third_party/xed-intel64/include/xed-isa-set.h | 51 + .../include/xed-machine-mode-enum.h | 66 + .../include/xed-nonterminal-enum.h | 310 + .../include/xed-operand-accessors.h | 1533 +++++ .../include/xed-operand-action-enum.h | 67 + .../xed-intel64/include/xed-operand-action.h | 50 + .../include/xed-operand-convert-enum.h | 64 + .../include/xed-operand-ctype-enum.h | 70 + .../include/xed-operand-ctype-map.h | 42 + .../include/xed-operand-element-type-enum.h | 69 + .../include/xed-operand-element-xtype-enum.h | 80 + .../xed-intel64/include/xed-operand-enum.h | 184 + .../xed-intel64/include/xed-operand-storage.h | 170 + .../include/xed-operand-type-enum.h | 65 + .../include/xed-operand-values-interface.h | 533 ++ .../include/xed-operand-visibility-enum.h | 63 + .../include/xed-operand-width-enum.h | 164 + .../xed-intel64/include/xed-portability.h | 196 + .../xed-intel64/include/xed-print-info.h | 109 + .../xed-intel64/include/xed-reg-class-enum.h | 84 + .../xed-intel64/include/xed-reg-class.h | 76 + .../xed-intel64/include/xed-reg-enum.h | 389 ++ .../xed-intel64/include/xed-reg-role-enum.h | 66 + .../xed-intel64/include/xed-rep-prefix.h | 48 + third_party/xed-intel64/include/xed-state.h | 204 + .../xed-intel64/include/xed-syntax-enum.h | 63 + third_party/xed-intel64/include/xed-types.h | 138 + third_party/xed-intel64/include/xed-util.h | 291 + third_party/xed-intel64/include/xed-version.h | 43 + third_party/xed-intel64/lib/libxed.a | Bin 0 -> 7093964 bytes third_party/xed-intel64/redist.txt | 12 + third_party/xxhash/LICENSE | 24 + third_party/xxhash/xxhash.c | 923 +++ third_party/xxhash/xxhash.h | 142 + 163 files changed, 40382 insertions(+) create mode 100644 .gdbinit create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README.md create mode 100644 coverage.cc create mode 100644 granary/arch/base.h create mode 100644 granary/arch/cpu.h create mode 100644 granary/arch/fault.h create mode 100644 granary/arch/instruction.h create mode 100644 granary/arch/instrument.h create mode 100644 granary/arch/isa.h create mode 100644 granary/arch/patch.h create mode 100644 granary/arch/x86/abi.h create mode 100644 granary/arch/x86/base.cc create mode 100644 granary/arch/x86/block.cc create mode 100644 granary/arch/x86/branch_tracer.S create mode 100644 granary/arch/x86/cache.S create mode 100644 granary/arch/x86/coverage.S create mode 100644 granary/arch/x86/cpu.cc create mode 100644 granary/arch/x86/fault.cc create mode 100644 granary/arch/x86/instruction.cc create mode 100644 granary/arch/x86/instruction.h create mode 100644 granary/arch/x86/instrument.cc create mode 100644 granary/arch/x86/patch.cc create mode 100644 granary/arch/x86/patch.h create mode 100644 granary/arch/x86/process.cc create mode 100644 granary/arch/x86/syscall.S create mode 100644 granary/arch/x86/trace.cc create mode 100644 granary/arch/x86/xed-intel64.h create mode 100644 granary/base/base.h create mode 100644 granary/base/breakpoint.cc create mode 100644 granary/base/breakpoint.h create mode 100644 granary/base/compiler.h create mode 100644 granary/base/interrupt.cc create mode 100644 granary/base/interrupt.h create mode 100644 granary/code/block.cc create mode 100644 granary/code/block.h create mode 100644 granary/code/branch_tracer.cc create mode 100644 granary/code/branch_tracer.h create mode 100644 granary/code/cache.cc create mode 100644 granary/code/cache.h create mode 100644 granary/code/coverage.cc create mode 100644 granary/code/coverage.h create mode 100644 granary/code/execute.cc create mode 100644 granary/code/execute.h create mode 100644 granary/code/index.cc create mode 100644 granary/code/index.h create mode 100644 granary/code/instruction.cc create mode 100644 granary/code/instruction.h create mode 100644 granary/code/instrument.cc create mode 100644 granary/code/instrument.h create mode 100644 granary/code/trace.cc create mode 100644 granary/code/trace.h create mode 100644 granary/input/mutate.cc create mode 100644 granary/input/mutate.h create mode 100644 granary/input/record.cc create mode 100644 granary/input/record.h create mode 100644 granary/os/decree_user/decree.h create mode 100644 granary/os/decree_user/snapshot.cc create mode 100644 granary/os/decree_user/syscall.cc create mode 100644 granary/os/file.cc create mode 100644 granary/os/file.h create mode 100644 granary/os/page.h create mode 100644 granary/os/process.cc create mode 100644 granary/os/process.h create mode 100644 granary/os/schedule.cc create mode 100644 granary/os/schedule.h create mode 100644 granary/os/snapshot.cc create mode 100644 granary/os/snapshot.h create mode 100644 granary/os/syscall.h create mode 100644 play.cc create mode 100644 snapshot.cc create mode 100644 third_party/gflags/AUTHORS.txt create mode 100644 third_party/gflags/COPYING.txt create mode 100644 third_party/gflags/include/gflags/gflags.h create mode 100644 third_party/gflags/include/gflags/gflags_completions.h create mode 100644 third_party/gflags/include/gflags/gflags_declare.h create mode 100644 third_party/gflags/include/gflags/gflags_gflags.h create mode 100644 third_party/gflags/lib/libgflags_nothreads.a create mode 100644 third_party/md5/md5.cc create mode 100644 third_party/md5/md5.h create mode 100644 third_party/radamsa/LICENSE create mode 100644 third_party/radamsa/radamsa.c create mode 100644 third_party/radamsa/radamsa.cc create mode 100644 third_party/radamsa/radamsa.h create mode 100644 third_party/xed-intel64/BUG-REPORTS.txt create mode 100644 third_party/xed-intel64/LICENSE.txt create mode 100644 third_party/xed-intel64/README.txt create mode 100644 third_party/xed-intel64/include/xed-address-width-enum.h create mode 100644 third_party/xed-intel64/include/xed-agen.h create mode 100644 third_party/xed-intel64/include/xed-attribute-enum.h create mode 100644 third_party/xed-intel64/include/xed-attributes.h create mode 100644 third_party/xed-intel64/include/xed-build-defines.h create mode 100644 third_party/xed-intel64/include/xed-category-enum.h create mode 100644 third_party/xed-intel64/include/xed-chip-enum.h create mode 100644 third_party/xed-intel64/include/xed-common-defs.h create mode 100644 third_party/xed-intel64/include/xed-common-hdrs.h create mode 100644 third_party/xed-intel64/include/xed-convert-table-init.h create mode 100644 third_party/xed-intel64/include/xed-cpuid-bit-enum.h create mode 100644 third_party/xed-intel64/include/xed-cpuid-rec.h create mode 100644 third_party/xed-intel64/include/xed-decode.h create mode 100644 third_party/xed-intel64/include/xed-decoded-inst-api.h create mode 100644 third_party/xed-intel64/include/xed-decoded-inst.h create mode 100644 third_party/xed-intel64/include/xed-disas.h create mode 100644 third_party/xed-intel64/include/xed-encode.h create mode 100644 third_party/xed-intel64/include/xed-encoder-gen-defs.h create mode 100644 third_party/xed-intel64/include/xed-encoder-hl.h create mode 100644 third_party/xed-intel64/include/xed-encoder-iforms.h create mode 100644 third_party/xed-intel64/include/xed-error-enum.h create mode 100644 third_party/xed-intel64/include/xed-exception-enum.h create mode 100644 third_party/xed-intel64/include/xed-extension-enum.h create mode 100644 third_party/xed-intel64/include/xed-flag-action-enum.h create mode 100644 third_party/xed-intel64/include/xed-flag-enum.h create mode 100644 third_party/xed-intel64/include/xed-flags.h create mode 100644 third_party/xed-intel64/include/xed-format-options.h create mode 100644 third_party/xed-intel64/include/xed-gen-table-defs.h create mode 100644 third_party/xed-intel64/include/xed-get-time.h create mode 100644 third_party/xed-intel64/include/xed-iclass-enum.h create mode 100644 third_party/xed-intel64/include/xed-iform-enum.h create mode 100644 third_party/xed-intel64/include/xed-iform-map.h create mode 100644 third_party/xed-intel64/include/xed-iformfl-enum.h create mode 100644 third_party/xed-intel64/include/xed-ild.h create mode 100644 third_party/xed-intel64/include/xed-immdis.h create mode 100644 third_party/xed-intel64/include/xed-immed.h create mode 100644 third_party/xed-intel64/include/xed-init-pointer-names.h create mode 100644 third_party/xed-intel64/include/xed-init.h create mode 100644 third_party/xed-intel64/include/xed-inst.h create mode 100644 third_party/xed-intel64/include/xed-interface.h create mode 100644 third_party/xed-intel64/include/xed-isa-set-enum.h create mode 100644 third_party/xed-intel64/include/xed-isa-set.h create mode 100644 third_party/xed-intel64/include/xed-machine-mode-enum.h create mode 100644 third_party/xed-intel64/include/xed-nonterminal-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-accessors.h create mode 100644 third_party/xed-intel64/include/xed-operand-action-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-action.h create mode 100644 third_party/xed-intel64/include/xed-operand-convert-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-ctype-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-ctype-map.h create mode 100644 third_party/xed-intel64/include/xed-operand-element-type-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-element-xtype-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-storage.h create mode 100644 third_party/xed-intel64/include/xed-operand-type-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-values-interface.h create mode 100644 third_party/xed-intel64/include/xed-operand-visibility-enum.h create mode 100644 third_party/xed-intel64/include/xed-operand-width-enum.h create mode 100644 third_party/xed-intel64/include/xed-portability.h create mode 100644 third_party/xed-intel64/include/xed-print-info.h create mode 100644 third_party/xed-intel64/include/xed-reg-class-enum.h create mode 100644 third_party/xed-intel64/include/xed-reg-class.h create mode 100644 third_party/xed-intel64/include/xed-reg-enum.h create mode 100644 third_party/xed-intel64/include/xed-reg-role-enum.h create mode 100644 third_party/xed-intel64/include/xed-rep-prefix.h create mode 100644 third_party/xed-intel64/include/xed-state.h create mode 100644 third_party/xed-intel64/include/xed-syntax-enum.h create mode 100644 third_party/xed-intel64/include/xed-types.h create mode 100644 third_party/xed-intel64/include/xed-util.h create mode 100644 third_party/xed-intel64/include/xed-version.h create mode 100644 third_party/xed-intel64/lib/libxed.a create mode 100644 third_party/xed-intel64/redist.txt create mode 100644 third_party/xxhash/LICENSE create mode 100644 third_party/xxhash/xxhash.c create mode 100644 third_party/xxhash/xxhash.h diff --git a/.gdbinit b/.gdbinit new file mode 100644 index 0000000..5806f5e --- /dev/null +++ b/.gdbinit @@ -0,0 +1,13 @@ +set logging off +set breakpoint pending on +set print demangle on +set print asm-demangle on +set print object on +set print static-members on +set disassembly-flavor intel +set backtrace limit 20 +set language c++ + +b granary_curiosity +b granary_unreachable + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ff2d33e --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +bin/* +.project +.cproject +.settings/* +test/*_01 +test/*_02 +test/*_03 + + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0d089ce --- /dev/null +++ b/Makefile @@ -0,0 +1,185 @@ +# Copyright 2015 Peter Goodman, all rights reserved. + +.PHONY: all clean + +GRANARY_CC ?= clang-3.6 +GRANARY_CXX ?= clang++-3.6 + +# Where is Granary's source code located? +GRANARY_SRC_DIR ?= $(shell pwd) +GRANARY_LIB_DIR := $(GRANARY_SRC_DIR)/third_party +GRANARY_GEN_DIR := $(GRANARY_SRC_DIR)/gen + +# What OS are we compiling for? +GRANARY_OS ?= decree + +# Where will Granary run? Specify `kernel` for kernel space, and `user` for +# user space. +GRANARY_WHERE ?= user + +# What type of build should be perform? +GRANARY_TARGET ?= debug + +# Useful for distinguishing different kinds of builds. +GRANARY_TRIPLE := $(GRANARY_TARGET)_$(GRANARY_OS)_$(GRANARY_WHERE) + +# Where should we emit object files and the executable? +GRANARY_BIN_DIR ?= $(GRANARY_SRC_DIR)/bin/$(GRANARY_TRIPLE) + +# Should we assume that Granary will be executed with Valgrind? +GRANARY_WITH_VALGRIND ?= 0 + +# Compiler warnings that are explicitly disabled. +GRANARY_DISABLED_WARNINGS := -Wno-gnu-anonymous-struct +GRANARY_DISABLED_WARNINGS += -Wno-gnu-conditional-omitted-operand +GRANARY_DISABLED_WARNINGS += -Wno-long-long +GRANARY_DISABLED_WARNINGS += -Wno-gnu-statement-expression +GRANARY_DISABLED_WARNINGS += -Wno-nested-anon-types +GRANARY_DISABLED_WARNINGS += -Wno-extended-offsetof +GRANARY_DISABLED_WARNINGS += -Wno-c++98-compat-pedantic -Wno-c++98-compat +GRANARY_DISABLED_WARNINGS += -Wno-padded +GRANARY_DISABLED_WARNINGS += -Wno-unused-macros +GRANARY_DISABLED_WARNINGS += -Wno-missing-variable-declarations +GRANARY_DISABLED_WARNINGS += -Wno-missing-prototypes +GRANARY_DISABLED_WARNINGS += -Wno-packed +GRANARY_DISABLED_WARNINGS += -Wno-global-constructors +GRANARY_DISABLED_WARNINGS += -Wno-exit-time-destructors +GRANARY_DISABLED_WARNINGS += -Wno-disabled-macro-expansion +GRANARY_DISABLED_WARNINGS += -Wno-date-time +GRANARY_DISABLED_WARNINGS += -Wno-reserved-id-macro + +# Arch-specific flags. +GRANARY_ARCH_FLAGS := -m64 -mtune=generic -fPIC -ffreestanding +GRANARY_ARCH_FLAGS += -ftls-model=initial-exec -mno-red-zone +GRANARY_ARCH_FLAGS += -fno-common -fno-builtin +GRANARY_ARCH_FLAGS += -fno-stack-protector -minline-all-stringops + +# Flags that are common to both C and C++ compilers. +GRANARY_COMMON_FLAGS := +GRANARY_COMMON_FLAGS += -I$(GRANARY_SRC_DIR) +GRANARY_COMMON_FLAGS += -Wall -Werror -Wpedantic +GRANARY_COMMON_FLAGS += $(GRANARY_DISABLED_WARNINGS) +GRANARY_COMMON_FLAGS += -DGRANARY_WHERE_$(GRANARY_WHERE) +GRANARY_COMMON_FLAGS += -DGRANARY_OS_$(GRANARY_OS) +GRANARY_COMMON_FLAGS += -DGRANARY_TARGET_$(GRANARY_TARGET) +GRANARY_COMMON_FLAGS += -DGOOGLE_PROTOBUF_NO_RTTI + +GRANARY_SANITIZER ?= + +# Optimization and debug information level. +ifeq (debug,$(GRANARY_TARGET)) + GRANARY_COMMON_FLAGS += -O0 -g3 -fno-inline + ifneq (,$(GRANARY_SANITIZER)) + GRANARY_COMMON_FLAGS += -fsanitize=$(GRANARY_SANITIZER) + endif +else + GRANARY_COMMON_FLAGS += -Oz -g3 +endif + +# Flags to pass to the various compilers. +# +# Note: We don't pass in Musl as a system include so that libc++ can pick up +# on specific system-defined macros in libc that Musl doesn't provide. +# +# Note: We need to pass in libc++ as we're not guaranteed that the +# distribution version of libc++ exactly matches the Granary version, and +# even minor differences can result in missing symbols. +GRANARY_CC_FLAGS := -std=c11 $(GRANARY_COMMON_FLAGS) $(GRANARY_ARCH_FLAGS) +GRANARY_CXX_FLAGS := -std=c++11 #-stdlib=libstdc++ +GRANARY_CXX_FLAGS += $(GRANARY_COMMON_FLAGS) $(GRANARY_ARCH_FLAGS) +GRANARY_CXX_FLAGS += -fno-exceptions -fno-asynchronous-unwind-tables -fno-rtti +GRANARY_CXX_FLAGS += -isystem $(GRANARY_LIB_DIR)/gflags/include + +# C, C++, and assembly files in Granary. +GRANARY_SRC_FILES := $(shell find $(GRANARY_SRC_DIR)/granary/ -name '*.cc' -or -name '*.c' -or -name '*.S' -type f) +GRANARY_SRC_FILES += $(shell find $(GRANARY_SRC_DIR)/third_party/ -name '*.cc' -or -name '*.c' -or -name '*.S' -type f) + +DUMP_SRC_FILES = $(GRANARY_SRC_DIR)/coverage.cc +DUMP_SRC_FILES += $(GRANARY_SRC_DIR)/granary/code/index.cc +DUMP_SRC_FILES += $(GRANARY_SRC_DIR)/granary/base/breakpoint.cc +DUMP_SRC_FILES += $(GRANARY_SRC_DIR)/granary/base/interrupt.cc +DUMP_SRC_FILES += $(GRANARY_LIB_DIR)/xxhash/xxhash.c +DUMP_OBJECT_FILES := $(addsuffix .o, $(subst $(GRANARY_SRC_DIR),$(GRANARY_BIN_DIR),$(DUMP_SRC_FILES))) + +PLAY_SRC_FILES = $(GRANARY_SRC_DIR)/play.cc $(GRANARY_SRC_DIR)/play.cc $(GRANARY_SRC_FILES) +PLAY_OBJECT_FILES := $(addsuffix .o, $(subst $(GRANARY_SRC_DIR),$(GRANARY_BIN_DIR),$(PLAY_SRC_FILES))) + +SNAPSHOT_SRC_FILES := $(GRANARY_SRC_DIR)/snapshot.cc +SNAPSHOT_SRC_FILES += $(GRANARY_SRC_DIR)/granary/os/snapshot.cc +SNAPSHOT_SRC_FILES += $(GRANARY_SRC_DIR)/granary/os/decree_user/snapshot.cc +SNAPSHOT_SRC_FILES += $(GRANARY_SRC_DIR)/granary/base/breakpoint.cc +SNAPSHOT_SRC_FILES += $(GRANARY_SRC_DIR)/granary/base/interrupt.cc +SNAPSHOT_OBJ_FILES := $(addsuffix .o, $(subst $(GRANARY_SRC_DIR),$(GRANARY_BIN_DIR),$(SNAPSHOT_SRC_FILES))) + +# Compile C++ files to object files. +$(GRANARY_BIN_DIR)/%.pb.cc.o :: $(GRANARY_SRC_DIR)/%.pb.cc + @echo "Building CXX object $@" + @mkdir -p $(@D) + @$(GRANARY_CXX) -Weverything -Wno-sign-conversion -Wno-shorten-64-to-32 $(GRANARY_CXX_FLAGS) -c $< -o $@ + +# Compile C++ files to object files. +$(GRANARY_BIN_DIR)/%.cc.o :: $(GRANARY_SRC_DIR)/%.cc + @echo "Building CXX object $@" + @mkdir -p $(@D) + @$(GRANARY_CXX) -Weverything $(GRANARY_CXX_FLAGS) -c $< -o $@ + +# Compile C files to object files. +$(GRANARY_BIN_DIR)/%.c.o :: $(GRANARY_SRC_DIR)/%.c + @echo "Building C object $@" + @mkdir -p $(@D) + @$(GRANARY_CC) $(GRANARY_CC_FLAGS) -c $< -o $@ + +# Compile assembly files to object files. +$(GRANARY_BIN_DIR)/%.S.o :: $(GRANARY_SRC_DIR)/%.S + @echo "Building ASM object $@" + @mkdir -p $(@D) + @$(GRANARY_CC) $(GRANARY_COMMON_FLAGS) $(GRANARY_ARCH_FLAGS) -c $< -o $@ + +# Build the Granary executable. +$(GRANARY_BIN_DIR)/grrplay: $(PLAY_OBJECT_FILES) + @echo "Linking $@" + @$(GRANARY_CXX) \ + $(GRANARY_CXX_FLAGS) \ + -o $@ \ + $^ \ + $(GRANARY_LIB_DIR)/xed-intel64/lib/libxed.a \ + $(GRANARY_LIB_DIR)/gflags/lib/libgflags_nothreads.a \ + -lpthread \ + -static-libstdc++ \ + -static-libgcc + +# Build the Granary executable. +$(GRANARY_BIN_DIR)/grrshot: $(SNAPSHOT_OBJ_FILES) + @echo "Linking $@" + @$(GRANARY_CXX) \ + $(GRANARY_CXX_FLAGS) \ + -o $@ \ + $^ \ + $(GRANARY_LIB_DIR)/gflags/lib/libgflags_nothreads.a \ + -lpthread \ + -static-libstdc++ \ + -static-libgcc + +# Build the program to print out a code cache. +$(GRANARY_BIN_DIR)/grrcov: $(DUMP_OBJECT_FILES) + @echo "Linking $@" + @$(GRANARY_CXX) \ + $(GRANARY_CXX_FLAGS) \ + -o $@ \ + $^ \ + $(GRANARY_LIB_DIR)/gflags/lib/libgflags_nothreads.a \ + -lpthread \ + -static-libstdc++ \ + -static-libgcc + +clean: + @rm -rf $(GRANARY_BIN_DIR) + +all: $(GRANARY_BIN_DIR)/grrplay $(GRANARY_BIN_DIR)/grrshot $(GRANARY_BIN_DIR)/grrcov + @echo "Done." + +install: + mkdir -p $(GRANARY_PREFIX_DIR)/bin + cp $(GRANARY_BIN_DIR)/grrplay $(GRANARY_PREFIX_DIR)/bin + cp $(GRANARY_BIN_DIR)/grrshot $(GRANARY_PREFIX_DIR)/bin + cp $(GRANARY_BIN_DIR)/grrcov $(GRANARY_PREFIX_DIR)/bin diff --git a/README.md b/README.md new file mode 100644 index 0000000..9e29581 --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ +Granary3 +======== + +This is a simple implementation of an x86 to amd64 binary translator. The +purpose of this binary translator is for use with DECREE binaries. + +Key features: + * Support for self-modifying code (e.g. JIT compilers). + * Simple block tracing infrastructure (superblock formation). + * Code cache persistence (avoids translation overheads across separate runs). + * Multi-processing support (allows multiple communicating, 32-bit processes + to be emulated within a single 64-bit address space). + +### Dependencies + +``` +sudo apt-get install -y git build-essential +sudo apt-get install -y clang-3.5 clang++-3.5 llvm-3.5-dev libc++1 libc++-dev +sudo apt-get install -y libgflags-dev libprotobuf-dev libprotoc-dev +``` + +### Compiling +#### Debug Build +```sh +make clean all +``` +#### Release Build +```sh +make all GRANARY_TARGET=release +``` + +### Running + +There are two steps to running Granary: snapshotting, and record/replaying. Snapshotting creates an initial image of the binary after `execve`. Record/replaying takes an input testcase (formatted as a protocol buffer) and attempts to replay that testcase. The replay can be recorded or mutated as well. + +#### Snapshotting +If you are on an AMD64 port of the CGC kernel, then you can do this: +```sh +./bin/debug_linux_user/grrshot --num_exe=1 --exe_dir=/path --exe_prefix=CADET_000 --snapshit_dir=/tmp/snapshot +``` +This will create a snapshot of `/path/CADET_00001` and store the snapshot into the `/tmp/snapshot` directory. + +If you are on a non-CGC AMD64 port, then make sure to do the following first: +```sh +cgc2elf /path/CADET_00001 +``` + +#### Replaying +```sh +./bin/debug_linux_user/grrplay --num_exe=1 --snapshot_dir=/tmp/snapshot --persist_dir=/tmp/persist --input=/path/to/testcase +``` + +#### Replay + Recording +```sh +./bin/debug_linux_user/grrplay --num_exe=1 --snapshot_dir=/tmp/snapshot --persist_dir=/tmp/persist --input=/path/to/testcase --output_dir=/tmp/out +``` + +#### Replay + Recording + Mutating +```sh +./bin/debug_linux_user/grrplay --num_exe=1 --snapshot_dir=/tmp/snapshot --persist_dir=/tmp/persist --input=/path/to/testcase --output_dir=/tmp/out --input_mutator=inf_radamsa_spliced +``` + +There are many mutators. Some of the mutators are deterministic, and therefore run for a period of time that is proportional to the number of `receive` system calls in the input testcase. Other mutators are non-deterministic and can run forever. These mutators are prefixed with `inf_`. diff --git a/coverage.cc b/coverage.cc new file mode 100644 index 0000000..3eac5b5 --- /dev/null +++ b/coverage.cc @@ -0,0 +1,31 @@ +/* Copyright 2015 Peter Goodman (peter@trailofbits.com), all rights reserved. */ + +#include + +#include + +#include "granary/code/index.h" + +DEFINE_bool(persist, true, "Should the code cache be persisted?"); + +DEFINE_string(persist_dir, "", "Directory path to where runtime state should " + "be persisted. This should be unique for a " + "given set of binaries."); + +extern "C" int main(int argc, char **argv, char **) { + using namespace granary; + gflags::SetUsageMessage(std::string(argv[0]) + " [options]"); + gflags::ParseCommandLineFlags(&argc, &argv, false); + + if (FLAGS_persist_dir.empty()) { + std::cerr << "Must provide a unique path to a directory where the " + << "runtime state can be persisted." << std::endl; + return EXIT_FAILURE; + } + + index::Init(); + + index::Dump(); + + return EXIT_SUCCESS; +} diff --git a/granary/arch/base.h b/granary/arch/base.h new file mode 100644 index 0000000..b637e47 --- /dev/null +++ b/granary/arch/base.h @@ -0,0 +1,16 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + + +#ifndef GRANARY_ARCH_BASE_H_ +#define GRANARY_ARCH_BASE_H_ + +namespace granary { +namespace arch { + +void Init(void); +void Exit(void); + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_BASE_H_ diff --git a/granary/arch/cpu.h b/granary/arch/cpu.h new file mode 100644 index 0000000..3566cf3 --- /dev/null +++ b/granary/arch/cpu.h @@ -0,0 +1,16 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_ARCH_CPU_H_ +#define GRANARY_ARCH_CPU_H_ + +namespace granary { +namespace arch { + +void Relax(void); + +void SerializePipeline(void); + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_CPU_H_ diff --git a/granary/arch/fault.h b/granary/arch/fault.h new file mode 100644 index 0000000..e2608a2 --- /dev/null +++ b/granary/arch/fault.h @@ -0,0 +1,25 @@ +/* Copyright 2016 Peter Goodman (peter@trailofbits.com), all rights reserved. */ + +#ifndef GRANARY_ARCH_FAULT_H_ +#define GRANARY_ARCH_FAULT_H_ + +#include "granary/base/base.h" + +namespace granary { +namespace os { +class Process32; +} // namespace os +namespace arch { + +void DecomposeFaultAddr( + const os::Process32 *process, + Addr32 *base, + Addr32 *index, + Addr32 *scale, + Addr32 *disp, + Addr32 fault_addr); + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_FAULT_H_ diff --git a/granary/arch/instruction.h b/granary/arch/instruction.h new file mode 100644 index 0000000..5df3068 --- /dev/null +++ b/granary/arch/instruction.h @@ -0,0 +1,32 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_ARCH_INSTRUCTION_H_ +#define GRANARY_ARCH_INSTRUCTION_H_ + +#include "granary/arch/x86/instruction.h" + +#include + +namespace granary { +namespace arch { + +// Used to allocate instructions in the REVERSE of the order that they +// will be encoded. +class InstructionStack : public std::forward_list { + public: + inline Instruction *Add(void) { + Instruction instr; + memset(&instr, 0, sizeof instr); + auto item = this->emplace_after(this->before_begin()); + return &*item; + } + + inline void Reset(void) { + this->clear(); + } +}; + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_INSTRUCTION_H_ diff --git a/granary/arch/instrument.h b/granary/arch/instrument.h new file mode 100644 index 0000000..4c6814d --- /dev/null +++ b/granary/arch/instrument.h @@ -0,0 +1,24 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_ARCH_INSTRUMENT_H_ +#define GRANARY_ARCH_INSTRUMENT_H_ + +#include "granary/base/base.h" + +#include "granary/code/instrument.h" + +namespace granary { +namespace arch { + +// Initialize instrumentation routines for use within basic blocks. +void InitInstrumentationFunctions(CachePC instrument_section); + +// Returns the location in the code cache of where this instrumentation +// function is. +CachePC GetInstrumentationFunction(code::InstrumentationPoint loc); + +} // namespace arch +} // namespace granary + + +#endif // GRANARY_ARCH_INSTRUMENT_H_ diff --git a/granary/arch/isa.h b/granary/arch/isa.h new file mode 100644 index 0000000..8941a2e --- /dev/null +++ b/granary/arch/isa.h @@ -0,0 +1,30 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_ARCH_ISA_H_ +#define GRANARY_ARCH_ISA_H_ + +namespace granary { +namespace arch { + +enum class ISA { + x86, + amd64 +}; + +template +constexpr unsigned AddressWidth(void); + +template <> +constexpr unsigned AddressWidth(void) { + return 32U; +} + +template <> +constexpr unsigned AddressWidth(void) { + return 64U; +} + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_ISA_H_ diff --git a/granary/arch/patch.h b/granary/arch/patch.h new file mode 100644 index 0000000..e07a031 --- /dev/null +++ b/granary/arch/patch.h @@ -0,0 +1,17 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/base/base.h" + +#ifndef GRANARY_ARCH_PATCH_H_ +#define GRANARY_ARCH_PATCH_H_ + +namespace granary { +namespace arch { + +void InitPatcher(void); +void ExitPatcher(void); + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_PATCH_H_ diff --git a/granary/arch/x86/abi.h b/granary/arch/x86/abi.h new file mode 100644 index 0000000..0758092 --- /dev/null +++ b/granary/arch/x86/abi.h @@ -0,0 +1,40 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_ARCH_X86_ABI_H_ +#define GRANARY_ARCH_X86_ABI_H_ + +// The 64-bit base address of a 32-bit process. +#define GRANARY_ABI_MEM64 XED_REG_R8 + +// The 32-bit address of the virtual thread's stack. This is a byte offset +// within `GRANARY_ABI_MEM`. +#define GRANARY_ABI_SP16 XED_REG_R9W +#define GRANARY_ABI_SP32 XED_REG_R9D +#define GRANARY_ABI_SP64 XED_REG_R9 + +// 32-bit program counter of the current / next block. +#define GRANARY_ABI_PC8 XED_REG_R10B +#define GRANARY_ABI_PC16 XED_REG_R10W +#define GRANARY_ABI_PC32 XED_REG_R10D +#define GRANARY_ABI_PC64 XED_REG_R10 + +// A scratch register for storing a computed value. +#define GRANARY_ABI_VAL8 XED_REG_R11B +#define GRANARY_ABI_VAL16 XED_REG_R11W +#define GRANARY_ABI_VAL32 XED_REG_R11D +#define GRANARY_ABI_VAL64 XED_REG_R11 + +// Scratch register for storing a computed address. +#define GRANARY_ABI_ADDR8 XED_REG_R12B +#define GRANARY_ABI_ADDR16 XED_REG_R12W +#define GRANARY_ABI_ADDR32 XED_REG_R12D +#define GRANARY_ABI_ADDR64 XED_REG_R12 + +// The process structure for saving/restoring things. +#define GRANARY_ABI_PROCESS64 XED_REG_R15 + +// The `index::Value` of the cached block being executed. +#define GRANARY_ABI_BLOCK64 XED_REG_R14 +#define GRANARY_ABI_BLOCK32 XED_REG_R14D + +#endif // GRANARY_ARCH_X86_ABI_H_ diff --git a/granary/arch/x86/base.cc b/granary/arch/x86/base.cc new file mode 100644 index 0000000..59df96c --- /dev/null +++ b/granary/arch/x86/base.cc @@ -0,0 +1,20 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/arch/base.h" +#include "granary/arch/patch.h" +#include "granary/arch/x86/xed-intel64.h" + +namespace granary { +namespace arch { + +void Init(void) { + xed_tables_init(); + InitPatcher(); +} + +void Exit(void) { + ExitPatcher(); +} + +} // namespace arch +} // namespace granary diff --git a/granary/arch/x86/block.cc b/granary/arch/x86/block.cc new file mode 100644 index 0000000..d37e224 --- /dev/null +++ b/granary/arch/x86/block.cc @@ -0,0 +1,1144 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/arch/cpu.h" + +#include "granary/arch/x86/abi.h" +#include "granary/arch/x86/patch.h" + +#include "granary/code/block.h" +#include "granary/code/cache.h" + +#include "granary/arch/instrument.h" + +#ifndef GRANARY_REPORT_ENCODER_ERRORS +# define GRANARY_REPORT_ENCODER_ERRORS 0 +#endif + +#ifndef GRANARY_REPORT_EMULATE_RRORS +# define GRANARY_REPORT_EMULATE_RRORS 0 +#endif + +namespace granary { +namespace arch { +extern const xed_state_t kXEDState64; +} // namespace arch +namespace { + +struct PatchPoint { + AppPC32 app_pc32; + const arch::Instruction *cache_instr; +}; + +static PatchPoint gBranchTaken = {0, nullptr}; +static PatchPoint gBranchNotTaken = {0, nullptr}; + +// Inject an instrumentation function call. +static void Instrument(Block *block, code::InstrumentationPoint ipoint) { + auto func_pc = arch::GetInstrumentationFunction(ipoint); + auto instr = block->cache_instructions.Add(); + instr->has_pc_rel_op = true; + instr->reencode_pc_rel_op = true; + xed_inst1(instr, arch::kXEDState64, XED_ICLASS_CALL_NEAR, + arch::kAddrWidthBits_amd64, xed_relbr(0, 32)); + instr->operands[1].u.imm0 = reinterpret_cast(func_pc); +} + +// Inject an instrumentation function call. +static void InstrumentPC(Block *block, Addr32 pc) { + const auto &ids = code::GetInstrumentationIds(pc); + if (ids.empty()) { + return; + } + + // This will end up applying the IDs in reverse order (desirable) because of + // the way we build up basic blocks. + for (auto id : ids) { + Instrument(block, code::InstrumentationPoint::kInstrumentPC); + auto instr = block->cache_instructions.Add(); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, 32, + xed_reg(GRANARY_ABI_VAL32), xed_imm0(id, 32)); + } +} + +// Re-encodes a relative branch operand. +void UpdateRelBranch(arch::Instruction *instr, CachePC encode_pc) { + if (!instr->reencode_pc_rel_op) return; + auto target = reinterpret_cast(instr->operands[1].u.imm0); + auto next_pc = encode_pc + instr->encoded_length; + GRANARY_ASSERT(32 == instr->operands[0].width); + instr->operands[0] = xed_relbr(target - next_pc, 32); + instr->is_valid = false; +} + +// Resizes `reg` to the desired `size` in bits. +static xed_reg_enum_t ResizeReg(xed_reg_enum_t reg, size_t size) { + enum { + kReg64To32 = XED_REG_RAX - XED_REG_EAX, + kReg64To16 = XED_REG_RAX - XED_REG_AX, + kReg64To8 = XED_REG_AL - XED_REG_RAX + }; + auto reg64 = xed_get_largest_enclosing_register(reg); + switch (size) { + case 8: return static_cast(reg64 + kReg64To8); + case 16: return static_cast(reg64 - kReg64To16); + case 32: return static_cast(reg64 - kReg64To32); + case 64: return reg64; + default: + GRANARY_ASSERT(false && "Non-GPR cannot be resized."); + return XED_REG_INVALID; + } +} + +// Loads the address computed by `op` into the `ADDR32` reg. +static void LoadEffectiveAddress(Block *block, + const xed_encoder_operand_t &op) { + auto instr = block->cache_instructions.Add(); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_LEA, arch::kAddrWidthBits_x86, + xed_reg(GRANARY_ABI_ADDR32), op); + instr->operands[1].u.mem.seg = XED_REG_INVALID; +} + +// Returns `true` if this instruction has an effective address. +static bool IsEffectiveAddress(const arch::Instruction *app_instr) { + return XED_ICLASS_BNDCL == app_instr->iclass || + XED_ICLASS_BNDCN == app_instr->iclass || + XED_ICLASS_BNDCU == app_instr->iclass || + XED_ICLASS_BNDMK == app_instr->iclass || + //XED_ICLASS_CLFLUSH == app_instr->iclass || + //XED_ICLASS_CLFLUSHOPT == app_instr->iclass || + XED_ICLASS_LEA == app_instr->iclass; + //(XED_ICLASS_PREFETCHNTA <= app_instr->iclass && + // XED_ICLASS_PREFETCH_RESERVED >= app_instr->iclass); +} + +// Relativizes a PC-relative memory operand. +static void Relativize(const arch::Instruction *app_instr, + xed_encoder_operand_t &op) { + auto logical_eip = app_instr->EndPC(); + auto curr_disp = static_cast(op.u.mem.disp.displacement); + auto pc_disp = static_cast(logical_eip); + auto new_disp = pc_disp + curr_disp; + GRANARY_ASSERT(0 <= new_disp); + // TODO(pag): We assume user space addresses that are positive. + + op.u.mem.disp.displacement = static_cast(new_disp); + op.u.mem.disp.displacement_width = 32; + + if (IsEffectiveAddress(app_instr)) { + op.u.mem.base = XED_REG_INVALID; + op.u.mem.seg = XED_REG_INVALID; + } else { + op.u.mem.base = GRANARY_ABI_MEM64; + } +} + +// Virtualize a register to be the ABI version of the stack pointer. +static void VirtualizeStack(xed_reg_enum_t ®) { + if (XED_REG_ESP == reg) reg = GRANARY_ABI_SP32; + if (XED_REG_SP == reg) reg = GRANARY_ABI_SP16; +} + +// Rebase a memory operand to use the memory base register. +static void Rebase(Block *block, xed_encoder_operand_t &op) { + GRANARY_ASSERT(32 >= op.u.mem.disp.displacement_width); + auto ea = op; + Instrument(block, code::InstrumentationPoint::kInstrumentMemoryAddress); + VirtualizeStack(ea.u.mem.base); + LoadEffectiveAddress(block, ea); + + op.u.mem.base = GRANARY_ABI_MEM64; + op.u.mem.index = GRANARY_ABI_ADDR64; + op.u.mem.scale = 1; + op.u.mem.disp.displacement = 0; + op.u.mem.disp.displacement_width = 0; +} + +// Loads the register `src` into the register `reg`. +static void LoadReg(Block *block, xed_reg_enum_t dst, xed_reg_enum_t src); + +// Resize a legacy register to be 8 bits wide. +static xed_reg_enum_t ResizeLegacy8(xed_reg_enum_t reg) { + switch (reg) { + case XED_REG_RAX: return XED_REG_AL; + case XED_REG_RCX: return XED_REG_CL; + case XED_REG_RDX: return XED_REG_DL; + case XED_REG_RBX: return XED_REG_BL; + default: + GRANARY_ASSERT(false && "Could not resize non-legacy register."); + return XED_REG_INVALID; + } +} + +// Returns whether or not an operand is a destination operand. This is quite a +// hack :-P +static bool OpIsWrite(const xed_encoder_operand_t &op) { + return XED_ENCODER_OPERAND_TYPE_INVALID != (&op)[1].type; +} + +// Virtualize a memory operand. +static void VirtualizeMem(Block *block, const arch::Instruction *app_instr, + xed_encoder_operand_t &op) { + if (!IsEffectiveAddress(app_instr)) { + Rebase(block, op); + + // We don't want to rebase effective addresses with `GRANARY_ABI_MEM64`. + } else { + VirtualizeStack(op.u.mem.base); + } +} + +// Virtualize a memory operand that is being used in an instruction where a +// legacy reg (AH, CH, BH, DH) in the instruction. +static void VirtualizeLegacyMem(Block *block, + const arch::Instruction *app_instr, + xed_encoder_operand_t &op, + xed_reg_enum_t stolen_reg64) { + // We have something like `MOV MEM, legacy_reg8`; convert into: + // + // LEA stolen_reg64, MEM + // MOV [stolen_reg64], legacy_reg8 + if (OpIsWrite(op)) { + auto instr = block->cache_instructions.Add(); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_LEA, + arch::kAddrWidthBits_amd64, xed_reg(stolen_reg64), op); + instr->operands[1].u.mem.seg = XED_REG_INVALID; + VirtualizeMem(block, app_instr, instr->operands[1]); + + op.u.mem.base = stolen_reg64; + op.u.mem.index = XED_REG_INVALID; + op.u.mem.scale = 0; + op.u.mem.seg = XED_REG_INVALID; + op.u.mem.disp.displacement = 0; + op.u.mem.disp.displacement_width = 0; + + // We have something like `MOV legacy_reg8, MEM`; convert into: + // + // MOV val8, MEM + // MOV stolen_reg64, val64 + // MOV legacy_reg8, stolen_reg8 + } else { + LoadReg(block, stolen_reg64, GRANARY_ABI_VAL64); + + auto instr = block->cache_instructions.Add(); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, 8, + xed_reg(GRANARY_ABI_VAL8), op); + VirtualizeMem(block, app_instr, instr->operands[1]); + + op.type = XED_ENCODER_OPERAND_TYPE_REG; + op.u.reg = ResizeLegacy8(stolen_reg64); + } +} + +// Virtualizes a register or memory operand. +// +// Note: `op` is from the *copy* of `app_instr` that has already been enstackd. +static void Virtualize(Block *block, const arch::Instruction *app_instr, + xed_encoder_operand_t &op, + xed_reg_enum_t stolen_reg=XED_REG_INVALID) { + switch (op.type) { + case XED_ENCODER_OPERAND_TYPE_REG: + VirtualizeStack(op.u.reg); + break; + + case XED_ENCODER_OPERAND_TYPE_MEM: + if (app_instr) { + if (XED_REG_EIP == op.u.mem.base) { + GRANARY_ASSERT(!op.u.mem.index); + Relativize(app_instr, op); + } else if (app_instr->uses_legacy_registers) { + VirtualizeLegacyMem(block, app_instr, op, stolen_reg); + } else { + VirtualizeMem(block, app_instr, op); + } + } else { + Rebase(block, op); + } + break; + default: + break; + } +} + +// Loads a value into the value register. +static void LoadValue(Block *block, const arch::Instruction *app_instr, + const xed_encoder_operand_t &op) { + auto instr = block->cache_instructions.Add(); + auto size = op.width; + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, size, + xed_reg(ResizeReg(GRANARY_ABI_VAL64, size)), op); + Virtualize(block, app_instr, instr->operands[1]); +} + +// Sign- or zero-extends the ABI value register. +static void ExtendValue(Block *block, xed_iclass_enum_t extender, + size_t from_size, size_t to_size) { + if (from_size < to_size) { + auto val_reg = ResizeReg(GRANARY_ABI_VAL64, from_size); + auto val_reg_ext = ResizeReg(GRANARY_ABI_VAL64, to_size); + auto instr = block->cache_instructions.Add(); + xed_inst2(instr, arch::kXEDState64, extender, to_size, + xed_reg(val_reg_ext), xed_reg(val_reg)); + } +} + +// Loads a sign-extended value into the ABI value register. +static void LoadSignedValue(Block *block, const arch::Instruction *app_instr, + const xed_encoder_operand_t &op) { + ExtendValue(block, XED_ICLASS_MOVSX, op.width, + app_instr->effective_operand_width); + LoadValue(block, app_instr, op); +} + +// Ends a block. +static void EndBlock(Block *block) { + auto instr = block->cache_instructions.Add(); + xed_inst0(instr, arch::kXEDState64, XED_ICLASS_RET_NEAR, + arch::kAddrWidthBits_amd64); +} + +// Save a register's value. +static void SaveReg(Block *block, xed_reg_enum_t reg) { + auto instr = block->cache_instructions.Add(); + xed_inst1(instr, arch::kXEDState64, XED_ICLASS_PUSH, + arch::kAddrWidthBits_amd64, + xed_reg(xed_get_largest_enclosing_register(reg))); +} + +// Restore a register's value. +static void RestoreReg(Block *block, xed_reg_enum_t reg) { + auto instr = block->cache_instructions.Add(); + xed_inst1(instr, arch::kXEDState64, XED_ICLASS_POP, + arch::kAddrWidthBits_amd64, + xed_reg(xed_get_largest_enclosing_register(reg))); +} + +// Loads the immediate constant into the register `reg`. +static void LoadImm(Block *block, xed_reg_enum_t reg, uint64_t imm) { + auto instr = block->cache_instructions.Add(); + auto imm_size = xed_get_register_width_bits64(reg); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, imm_size, + xed_reg(reg), xed_imm0(imm, imm_size)); +} + +// Loads the register `src` into the register `dst`. +static void LoadReg(Block *block, xed_reg_enum_t dst, xed_reg_enum_t src) { + auto instr = block->cache_instructions.Add(); + auto reg_size = xed_get_register_width_bits64(dst); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, reg_size, + xed_reg(dst), xed_reg(src)); +} + +// Loads the register `src` with the value of the virtual memory location +// addressed by `src_addr`. +static void LoadMem(Block *block, xed_reg_enum_t dst, + xed_reg_enum_t src_addr) { + auto instr = block->cache_instructions.Add(); + auto size = xed_get_register_width_bits64(dst); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, arch::kAddrWidthBits_x86, + xed_reg(dst), + xed_mem_bisd(GRANARY_ABI_MEM64, src_addr, 1, xed_disp(0, 8), size)); +} + +// Loads the value of the operand `op` into the register `dst`. This will +// auto-virtualize the operand. This assumes that the size of `reg` is +// compatible with the size of `op`. +static void LoadOp(Block *block, const arch::Instruction *app_instr, + xed_reg_enum_t dst, const xed_encoder_operand_t &op) { + auto instr = block->cache_instructions.Add(); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, arch::kAddrWidthBits_x86, + xed_reg(dst), op); + Virtualize(block, app_instr, instr->operands[1]); +} + +// Write an immediate integer to the virtual memory location `addr`. +static void StoreImm32(Block *block, xed_reg_enum_t addr, uint32_t val) { + auto instr = block->cache_instructions.Add(); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, arch::kAddrWidthBits_x86, + xed_mem_bisd(GRANARY_ABI_MEM64, addr, 1, + xed_disp(0, 8), arch::kAddrWidthBits_x86), + xed_imm0(val, 32)); +} + +// Write an immediate integer to the virtual memory location `addr`. +static void StoreReg(Block *block, xed_reg_enum_t addr, xed_reg_enum_t reg) { + auto instr = block->cache_instructions.Add(); + auto width = xed_get_register_width_bits64(reg); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, width, + xed_mem_bisd(GRANARY_ABI_MEM64, addr, 1, + xed_disp(0, 8), width), + xed_reg(reg)); +} + +// Write the value of a register into an operand. This will virtualize the +// operand if necessary. +static void StoreOp(Block *block, const arch::Instruction *app_instr, + const xed_encoder_operand_t &op, xed_reg_enum_t reg) { + auto instr = block->cache_instructions.Add(); + auto width = xed_get_register_width_bits64(reg); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_MOV, width, + op, xed_reg(reg)); + Virtualize(block, app_instr, instr->operands[0]); +} + +// Performs a small constant shift of the virtual stack pointer. +static void BumpSP(Block *block, intptr_t shift_) { + GRANARY_ASSERT(0 != shift_); + auto instr = block->cache_instructions.Add(); + auto shift = static_cast(shift_); + xed_inst2(instr, arch::kXEDState64, XED_ICLASS_LEA, arch::kAddrWidthBits_x86, + xed_reg(GRANARY_ABI_SP32), + xed_mem_bd(GRANARY_ABI_SP32, xed_disp(shift, 8), + arch::kAddrWidthBits_x86)); +} + +// Pushes a register onto the stack. +static void PushReg(Block *block, xed_reg_enum_t reg) { + auto reg_size = xed_get_register_width_bits64(reg); + StoreReg(block, GRANARY_ABI_SP64, reg); + BumpSP(block, -(reg_size / 8)); +} + +// Pops the value on the stack into the register `reg`. +static void PopReg(Block *block, xed_reg_enum_t reg) { + auto reg_size = xed_get_register_width_bits64(reg); + auto stack_op = xed_mem_b(XED_REG_ESP, reg_size); + BumpSP(block, reg_size / 8); + LoadOp(block, nullptr, reg, stack_op); +} + +// Record the EIP of block containing the last multi-way branch. +static void RecordLastMultiWayBranch(Block *block) { + static_assert(52 == offsetof(os::Process32, last_branch_pc), + "Bad structure packing of `os::Process32`."); + auto update_last_cfi = block->cache_instructions.Add(); + xed_inst2(update_last_cfi, arch::kXEDState64, XED_ICLASS_MOV, + arch::kAddrWidthBits_x86, + xed_mem_bd(GRANARY_ABI_PROCESS64, + // offsetof(os::Process32, last_branch_pc) + xed_disp(52, 8), + arch::kAddrWidthBits_x86), + xed_reg(GRANARY_ABI_BLOCK32)); +} + +static const arch::Instruction *PatchableJump(Block *block) { + auto patch = block->cache_instructions.Add(); + xed_inst1(patch, arch::kXEDState64, XED_ICLASS_JMP, + arch::kAddrWidthBits_amd64, xed_relbr(0, 32)); + return patch; +} + +// Virtualizes an application branch instruction. +static void VirtualizeBranch(Block *block, const arch::Instruction *cfi) { + gBranchTaken.app_pc32 = cfi->TargetPC(); + gBranchTaken.cache_instr = PatchableJump(block); + + RecordLastMultiWayBranch(block); + Instrument(block, code::InstrumentationPoint::kInstrumentMultiWayBranch); + LoadImm(block, GRANARY_ABI_PC32, cfi->TargetPC()); + + // If the condition isn't taken then we fall-through and return to here. + EndBlock(block); + + gBranchNotTaken.app_pc32 = cfi->EndPC(); + gBranchNotTaken.cache_instr = PatchableJump(block); + + RecordLastMultiWayBranch(block); + Instrument(block, code::InstrumentationPoint::kInstrumentMultiWayBranch); + + auto cond = block->cache_instructions.Add(); + memcpy(cond, cfi, sizeof *cond); + cond->mode = arch::kXEDState64; + cond->effective_operand_width = arch::kAddrWidthBits_amd64; + cond->effective_address_width = arch::kAddrWidthBits_amd64; + cond->operands[0].width = 8; + + // Jump around the: + // 1) Patchable `jmp`. Initially points at (2). + // 2) `call` into the instrumentation point. + // 3) `mov` of the block `eip` into the Process' last branch pc. + // 4) `ret` back to the dispatcher. + cond->operands[0].u.brdisp = 15; + + LoadImm(block, GRANARY_ABI_PC32, cfi->EndPC()); +} + +// Emulates a direct jump. +static bool EmulateDirectJump(Block *block, const arch::Instruction *cfi) { + LoadImm(block, GRANARY_ABI_PC32, cfi->TargetPC()); + return true; +} + +// Emulates an indirect jump. +static bool EmulateIndirectJump(Block *block, const arch::Instruction *cfi) { + RecordLastMultiWayBranch(block); + Instrument(block, code::InstrumentationPoint::kInstrumentMultiWayBranch); + LoadOp(block, cfi, GRANARY_ABI_PC32, cfi->operands[0]); + return true; +} + +// Emulates a direct function call. +static bool EmulateDirectFunctionCall(Block *block, + const arch::Instruction *cfi) { + LoadImm(block, GRANARY_ABI_PC32, cfi->TargetPC()); + StoreImm32(block, GRANARY_ABI_SP64, cfi->EndPC()); + BumpSP(block, -arch::kAddrWidthBytes_x86); + return true; +} + +// Emulates an indirect function call. +static bool EmulateIndirectFunctionCall(Block *block, + const arch::Instruction *cfi) { + RecordLastMultiWayBranch(block); + Instrument(block, code::InstrumentationPoint::kInstrumentMultiWayBranch); + StoreImm32(block, GRANARY_ABI_SP64, cfi->EndPC()); + BumpSP(block, -arch::kAddrWidthBytes_x86); + LoadOp(block, cfi, GRANARY_ABI_PC32, cfi->operands[0]); + return true; +} + +// Emulates a function return. +static bool EmulateFunctionReturn(Block *block, const arch::Instruction *cfi) { + const auto &imm = cfi->operands[0]; + if (XED_ENCODER_OPERAND_TYPE_IMM0 == imm.type) { + BumpSP(block, imm.u.imm0); + } + BumpSP(block, arch::kAddrWidthBytes_x86); + RecordLastMultiWayBranch(block); + Instrument(block, code::InstrumentationPoint::kInstrumentMultiWayBranch); + LoadMem(block, GRANARY_ABI_PC32, GRANARY_ABI_SP64); + return true; +} + +// Emulates a JCXZ, which is not valid in amd64. +static void EmulateJcxz(Block *block, const arch::Instruction *cfi) { + RecordLastMultiWayBranch(block); + Instrument(block, code::InstrumentationPoint::kInstrumentMultiWayBranch); + LoadReg(block, XED_REG_ECX, GRANARY_ABI_VAL32); + LoadImm(block, GRANARY_ABI_PC32, cfi->TargetPC()); + + // If the condition isn't taken then we fall-through and return to here. + EndBlock(block); + LoadReg(block, XED_REG_ECX, GRANARY_ABI_VAL32); + + RecordLastMultiWayBranch(block); + Instrument(block, code::InstrumentationPoint::kInstrumentMultiWayBranch); + + // Jump around the `MOV ECX, VAL32; RET` and the instrumentation. + auto cond = block->cache_instructions.Add(); + memcpy(cond, cfi, sizeof *cond); + cond->mode = arch::kXEDState64; + cond->iclass = XED_ICLASS_JECXZ; + cond->operands[0].u.brdisp = 3 + 1 + 9; + + LoadImm(block, GRANARY_ABI_PC32, cfi->EndPC()); + + ExtendValue(block, XED_ICLASS_MOVZX, XED_REG_ECX, XED_REG_CX); + LoadReg(block, GRANARY_ABI_VAL32, XED_REG_ECX); +} + +// Emulates a conditional jump/branch instruction. +static bool EmulateBranch(Block *block, const arch::Instruction *cfi) { + if (XED_ICLASS_JCXZ == cfi->iclass) { + EmulateJcxz(block, cfi); + } else { + VirtualizeBranch(block, cfi); + } + return true; +} + +// Add a padding byte before a block. +static void AddPadding(Block *block) { + auto instr = block->cache_instructions.Add(); + xed_inst0(instr, arch::kXEDState64, XED_ICLASS_INT3, 0); +} + +// Convert an instruction into a UD2. +static void ConvertToError(Block *block, arch::Instruction *instr) { + xed_inst0(instr, arch::kXEDState64, XED_ICLASS_UD2, 0); + instr->is_valid = false; + block->has_error = true; +} + +// Adds an error instruction (UD2). +static void AddError(Block *block) { + ConvertToError(block, block->cache_instructions.Add()); +} + +// Emulates an interrupt call. This actually sets up the fall-through PC as a +// tagged PC (where the high bit is 1 to mark it as a syscall) so that the +// syscall can be handled by the interpreter and so that we don't need to +// inject anything into the code cache that can't be relocated. +static bool EmulateInterruptCall(Block *block, const arch::Instruction *cfi) { + if (XED_ICLASS_INT == cfi->iclass && 0x80 == cfi->operands[0].u.imm0) { + block->has_syscall = true; + LoadImm(block, GRANARY_ABI_PC32, cfi->EndPC()); + } else { + // E.g. INT1, INT3, INTO, INT imm8 != 0x80. + AddError(block); + } + return true; +} + +// Forward declaration. +static bool EmulatePopFlags(Block *block, xed_reg_enum_t rflags); + +// Emulates an interrupt return. +static bool EmulateInterruptReturn(Block *block, const arch::Instruction *cfi) { + GRANARY_ASSERT(XED_ICLASS_IRETD == cfi->iclass); + EmulatePopFlags(block, GRANARY_ABI_VAL32); + PopReg(block, XED_REG_CS); + PopReg(block, GRANARY_ABI_PC32); + GRANARY_UNUSED(cfi); + return true; +} + +// Returns the set of available legacy registers as dead registers in the +// returned GPRSet. +static xed_reg_enum_t UnusedLegacyReg(const arch::Instruction *app_instr) { + arch::GPRSet used_regs; + used_regs.bits = app_instr->gprs_read.bits | app_instr->gprs_written.bits; + if (!used_regs.gax) return XED_REG_RAX; + if (!used_regs.gcx) return XED_REG_RCX; + if (!used_regs.gbx) return XED_REG_RBX; + if (!used_regs.gdx) return XED_REG_RDX; + GRANARY_ASSERT(false && "No live legacy regs available."); + return XED_REG_INVALID; +} + +// Add an instruction `instr` to `block`s encode stack. +static void Virtualize(Block *block, const arch::Instruction *app_instr) { + xed_reg_enum_t stolen_reg = XED_REG_INVALID; + if (app_instr->uses_legacy_registers && + (app_instr->reads_mem || app_instr->writes_mem)) { + stolen_reg = UnusedLegacyReg(app_instr); + GRANARY_ASSERT(XED_REG_INVALID != stolen_reg); + RestoreReg(block, stolen_reg); + } + + auto instr = block->cache_instructions.Add(); + memcpy(instr, app_instr, sizeof *instr); + instr->mode = arch::kXEDState64; + instr->effective_address_width = arch::kAddrWidthBits_amd64; + + for (auto &op : instr->operands) { + if (XED_ENCODER_OPERAND_TYPE_INVALID == op.type) break; + Virtualize(block, app_instr, op, stolen_reg); + } + + if (XED_REG_INVALID != stolen_reg) { + SaveReg(block, stolen_reg); + } +} + +// Emulate a `SYSCALL` or `SYSENTER` instruction. +static bool EmulateSyscall(Block *block, const arch::Instruction *app_instr) { + GRANARY_UNUSED(block); + GRANARY_UNUSED(app_instr); +#if GRANARY_REPORT_EMULATE_RRORS + GRANARY_ASSERT(false && "Unexpected SYSCALL or SYSENTER instruction."); +#else + AddError(block); +#endif + return true; +} + +// Emulate a `SYSRET` or `SYSEXIT` instruction. +static bool EmulateSysret(Block *block, const arch::Instruction *app_instr) { + GRANARY_UNUSED(block); + GRANARY_UNUSED(app_instr); +#if GRANARY_REPORT_EMULATE_RRORS + GRANARY_ASSERT(false && "Unexpected SYSRET or SYSEXIT instruction."); +#else + AddError(block); +#endif + return true; +} + +// Adds a control-flow instruction into the stack. Returns `true` if `cfi` +// is actually a control-flow instruction and has been fully emulated. +static bool EmulateCFI(Block *block, arch::Instruction *cfi) { + if (cfi->IsDirectJump()) { + return EmulateDirectJump(block, cfi); + } else if (cfi->IsIndirectJump()) { + return EmulateIndirectJump(block, cfi); + } else if (cfi->IsDirectFunctionCall()) { + return EmulateDirectFunctionCall(block, cfi); + } else if (cfi->IsIndirectFunctionCall()) { + return EmulateIndirectFunctionCall(block, cfi); + } else if (cfi->IsFunctionReturn()) { + return EmulateFunctionReturn(block, cfi); + } else if (cfi->IsBranch()) { + return EmulateBranch(block, cfi); + } else if (cfi->IsSystemCall()) { + block->has_syscall = true; + return EmulateSyscall(block, cfi); + } else if (cfi->IsSystemReturn()) { + return EmulateSysret(block, cfi); + } else if (cfi->IsInterruptCall()) { + return EmulateInterruptCall(block, cfi); + } else if (cfi->IsInterruptReturn()) { + return EmulateInterruptReturn(block, cfi); + + // Not a control-flow instruction, need to add a fall-through. + } else { + LoadImm(block, GRANARY_ABI_PC32, cfi->EndPC()); + return false; + } +} + +// Emulates a push instruction. +static bool EmulatePush(Block *block, const arch::Instruction *app_instr) { + const auto op_size = app_instr->effective_operand_width; + const auto &op = app_instr->operands[0]; + PushReg(block, ResizeReg(GRANARY_ABI_VAL64, op_size)); + LoadSignedValue(block, app_instr, op); + return true; +} + +// Emulates a pop instruction. +static bool EmulatePop(Block *block, const arch::Instruction *app_instr) { + auto op_size = app_instr->effective_operand_width; + auto stack_op = xed_mem_b(XED_REG_ESP, op_size); + auto val = ResizeReg(GRANARY_ABI_VAL64, op_size); + StoreOp(block, app_instr, app_instr->operands[0], val); + BumpSP(block, op_size / 8); + LoadSignedValue(block, app_instr, stack_op); + return true; +} + +// Emulates a push-all instruction. +static bool EmulatePusha(Block *block) { + PushReg(block, XED_REG_DI); + PushReg(block, XED_REG_SI); + PushReg(block, XED_REG_BP); + PushReg(block, GRANARY_ABI_VAL16); + PushReg(block, XED_REG_BX); + PushReg(block, XED_REG_DX); + PushReg(block, XED_REG_CX); + PushReg(block, XED_REG_AX); + LoadReg(block, GRANARY_ABI_VAL16, GRANARY_ABI_SP16); + return true; +} + +// Emulates a pop-all instruction. +static bool EmulatePopa(Block *block) { + PopReg(block, XED_REG_AX); + PopReg(block, XED_REG_CX); + PopReg(block, XED_REG_DX); + PopReg(block, XED_REG_BX); + BumpSP(block, 2); + PopReg(block, XED_REG_BP); + PopReg(block, XED_REG_SI); + PopReg(block, XED_REG_DI); + return true; +} + +// Emulates a push-all doublewords instruction. +static bool EmulatePushad(Block *block) { + PushReg(block, XED_REG_EDI); + PushReg(block, XED_REG_ESI); + PushReg(block, XED_REG_EBP); + PushReg(block, GRANARY_ABI_VAL32); + PushReg(block, XED_REG_EBX); + PushReg(block, XED_REG_EDX); + PushReg(block, XED_REG_ECX); + PushReg(block, XED_REG_EAX); + LoadReg(block, GRANARY_ABI_VAL32, GRANARY_ABI_SP32); + return true; +} + +// Emulates a pop-all doublewords instruction. +static bool EmulatePopad(Block *block) { + PopReg(block, XED_REG_EAX); + PopReg(block, XED_REG_ECX); + PopReg(block, XED_REG_EDX); + PopReg(block, XED_REG_EBX); + BumpSP(block, 4); + PopReg(block, XED_REG_EBP); + PopReg(block, XED_REG_ESI); + PopReg(block, XED_REG_EDI); + return true; +} + +// Emulates pushing some portion of the `RFLAGS` onto the stack. +static bool EmulatePushFlags(Block *block, xed_reg_enum_t rflags) { + PushReg(block, rflags); + auto pop_val = block->cache_instructions.Add(); + xed_inst1(pop_val, arch::kXEDState64, XED_ICLASS_POP, + arch::kAddrWidthBits_amd64, xed_reg(GRANARY_ABI_VAL64)); + + auto pushfq = block->cache_instructions.Add(); + xed_inst0(pushfq, arch::kXEDState64, XED_ICLASS_PUSHFQ, + arch::kAddrWidthBits_amd64); + return true; +} + +// Emulates popping the top of the stack into some portion of `RFLAGS`. +static bool EmulatePopFlags(Block *block, xed_reg_enum_t rflags) { + auto rflags_width = xed_get_register_width_bits64(rflags); + + auto popfq = block->cache_instructions.Add(); + xed_inst0(popfq, arch::kXEDState64, XED_ICLASS_POPFQ, + arch::kAddrWidthBits_amd64); + + auto overwrite = block->cache_instructions.Add(); + xed_inst2(overwrite, arch::kXEDState64, XED_ICLASS_MOV, rflags_width, + xed_mem_b(XED_REG_RSP, rflags_width), xed_reg(rflags)); + + // Mask off `ID`, which permits the identification of whether or not + // the `CPUID` instruction is supported. + if (32 == rflags_width) { + auto mask = block->cache_instructions.Add(); + auto rflags_reg64 = xed_get_largest_enclosing_register(rflags); + xed_inst2(mask, arch::kXEDState64, XED_ICLASS_AND, 64, + xed_reg(rflags_reg64), xed_imm0(0xffdfffff, 32)); + } + + auto pushfq = block->cache_instructions.Add(); + xed_inst0(pushfq, arch::kXEDState64, XED_ICLASS_PUSHFQ, + arch::kAddrWidthBits_amd64); + + PopReg(block, rflags); + return true; +} + +// Emulates the `ENTER` instruction. +static bool EmulateEnter(Block *block, const arch::Instruction *app_instr) { + GRANARY_UNUSED(block); + GRANARY_UNUSED(app_instr); +#if GRANARY_REPORT_EMULATE_RRORS + GRANARY_ASSERT("TODO: ENTER" && false); // TODO(pag): Implement me. +#else + AddError(block); +#endif + return true; +} + +// Emulates the `LEAVE` instruction. +static bool EmulateLeave(Block *block, const arch::Instruction *app_instr) { + auto reg_width = app_instr->effective_operand_width; + auto base_pointer = ResizeReg(XED_REG_EBP, reg_width); + auto stack_pointer = ResizeReg(GRANARY_ABI_SP64, reg_width); + PopReg(block, base_pointer); + LoadReg(block, stack_pointer, base_pointer); + return true; +} + +// Emulates the `BOUND` instruction. +static bool EmulateBound(Block *block, const arch::Instruction *app_instr) { + GRANARY_UNUSED(block); + GRANARY_UNUSED(app_instr); +#if GRANARY_REPORT_EMULATE_RRORS + GRANARY_ASSERT("TODO: BOUND" && false); // TODO(pag): Implement me. +#else + AddError(block); +#endif + return true; +} + +// Emulates the `XLAT` instruction. +static bool EmulateXLAT(Block *block, const arch::Instruction *app_instr) { + GRANARY_UNUSED(block); + GRANARY_UNUSED(app_instr); +#if GRANARY_REPORT_EMULATE_RRORS + GRANARY_ASSERT("TODO: XLAT" && false); // TODO(pag): Implement me. +#else + AddError(block); +#endif + return true; +} + +// Emulates a string operation. It does this by widening RDI/RSI with the base +// of memory address, then it shorts them back again by adding the two's +// complement of the +static bool EmulateStringOp(Block *block, const arch::Instruction *app_instr) { + // Shorten RDI and RSI back to 32-bit addresses by adding the complemented + // 32-bit memory base and 1 (i.e. two's complement negation of the 32-bit + // memory base). + auto shorten_rdi = block->cache_instructions.Add(); + xed_inst2(shorten_rdi, arch::kXEDState64, XED_ICLASS_LEA, + arch::kAddrWidthBits_amd64, xed_reg(XED_REG_RDI), + xed_mem_gbisd(XED_REG_INVALID, XED_REG_RDI, GRANARY_ABI_VAL64, 1, + xed_disp(1, 8), arch::kAddrWidthBits_amd64)); + + auto shorten_rsi = block->cache_instructions.Add(); + xed_inst2(shorten_rsi, arch::kXEDState64, XED_ICLASS_LEA, + arch::kAddrWidthBits_amd64, xed_reg(XED_REG_RSI), + xed_mem_gbisd(XED_REG_INVALID, XED_REG_RSI, GRANARY_ABI_VAL64, 1, + xed_disp(1, 8), arch::kAddrWidthBits_amd64)); + + // Complement the base of memory. + auto not_ = block->cache_instructions.Add(); + xed_inst1(not_, arch::kXEDState64, XED_ICLASS_NOT, + arch::kAddrWidthBits_amd64, xed_reg(GRANARY_ABI_VAL64)); + LoadReg(block, GRANARY_ABI_VAL64, GRANARY_ABI_MEM64); + + // Virtualize the original instruction, which will make the effective address + // width of the implicit EDI/ESI operands into RDI/RSI. + Virtualize(block, app_instr); + + // Widen RSI and RDI by the base of the address space. + auto widen_rsi = block->cache_instructions.Add(); + xed_inst2(widen_rsi, arch::kXEDState64, XED_ICLASS_LEA, + arch::kAddrWidthBits_amd64, xed_reg(XED_REG_RSI), + xed_mem_gbisd(XED_REG_INVALID, XED_REG_RSI, GRANARY_ABI_MEM64, 1, + xed_disp(0, 0), arch::kAddrWidthBits_amd64)); + + auto widen_rdi = block->cache_instructions.Add(); + xed_inst2(widen_rdi, arch::kXEDState64, XED_ICLASS_LEA, + arch::kAddrWidthBits_amd64, xed_reg(XED_REG_RDI), + xed_mem_gbisd(XED_REG_INVALID, XED_REG_RDI, GRANARY_ABI_MEM64, 1, + xed_disp(0, 0), arch::kAddrWidthBits_amd64)); + return true; +} + +// Add an emulated version of `app_instr` to `block`. +static bool Emulate(Block *block, const arch::Instruction *app_instr) { + switch (app_instr->iclass) { + case XED_ICLASS_PUSH: + return EmulatePush(block, app_instr); + case XED_ICLASS_POP: + return EmulatePop(block, app_instr); + case XED_ICLASS_PUSHA: + return EmulatePusha(block); + case XED_ICLASS_POPA: + return EmulatePopa(block); + case XED_ICLASS_PUSHAD: + return EmulatePushad(block); + case XED_ICLASS_POPAD: + return EmulatePopad(block); + case XED_ICLASS_PUSHF: + return EmulatePushFlags(block, GRANARY_ABI_VAL16); + case XED_ICLASS_POPF: + return EmulatePopFlags(block, GRANARY_ABI_VAL16); + case XED_ICLASS_PUSHFD: + return EmulatePushFlags(block, GRANARY_ABI_VAL32); + case XED_ICLASS_POPFD: + return EmulatePopFlags(block, GRANARY_ABI_VAL32); + case XED_ICLASS_ENTER: + return EmulateEnter(block, app_instr); + case XED_ICLASS_LEAVE: + return EmulateLeave(block, app_instr); + case XED_ICLASS_BOUND: + return EmulateBound(block, app_instr); + case XED_ICLASS_UD2: + case XED_ICLASS_RDTSC: + case XED_ICLASS_RDTSCP: + case XED_ICLASS_RDPMC: + case XED_ICLASS_RDRAND: + AddError(block); + return true; + case XED_ICLASS_XLAT: + return EmulateXLAT(block, app_instr); + case XED_ICLASS_NOP: + case XED_ICLASS_NOP2: + case XED_ICLASS_NOP3: + case XED_ICLASS_NOP4: + case XED_ICLASS_NOP5: + case XED_ICLASS_NOP6: + case XED_ICLASS_NOP7: + case XED_ICLASS_NOP8: + case XED_ICLASS_NOP9: + return true; // Don't encode NOPs. + case XED_ICLASS_INSB: case XED_ICLASS_REP_INSB: + case XED_ICLASS_INSD: case XED_ICLASS_REP_INSD: + case XED_ICLASS_INSW: case XED_ICLASS_REP_INSW: + return EmulateStringOp(block, app_instr); + case XED_ICLASS_OUTSB: case XED_ICLASS_REP_OUTSB: + case XED_ICLASS_OUTSD: case XED_ICLASS_REP_OUTSD: + case XED_ICLASS_OUTSW: case XED_ICLASS_REP_OUTSW: + return EmulateStringOp(block, app_instr); + case XED_ICLASS_MOVSB: case XED_ICLASS_REP_MOVSB: + case XED_ICLASS_MOVSW: case XED_ICLASS_REP_MOVSW: + case XED_ICLASS_MOVSD: case XED_ICLASS_REP_MOVSD: + case XED_ICLASS_MOVSQ: case XED_ICLASS_REP_MOVSQ: + return EmulateStringOp(block, app_instr); + case XED_ICLASS_STOSB: case XED_ICLASS_REP_STOSB: + case XED_ICLASS_STOSD: case XED_ICLASS_REP_STOSW: + case XED_ICLASS_STOSW: case XED_ICLASS_REP_STOSD: + case XED_ICLASS_STOSQ: case XED_ICLASS_REP_STOSQ: + return EmulateStringOp(block, app_instr); + case XED_ICLASS_SCASB: + case XED_ICLASS_SCASD: + case XED_ICLASS_SCASW: + case XED_ICLASS_SCASQ: + return EmulateStringOp(block, app_instr); + case XED_ICLASS_CMPSB: + case XED_ICLASS_CMPSD: + case XED_ICLASS_CMPSW: + case XED_ICLASS_CMPSQ: + return EmulateStringOp(block, app_instr); + case XED_ICLASS_LODSB: case XED_ICLASS_REP_LODSB: + case XED_ICLASS_LODSD: case XED_ICLASS_REP_LODSW: + case XED_ICLASS_LODSW: case XED_ICLASS_REP_LODSD: + case XED_ICLASS_LODSQ: case XED_ICLASS_REP_LODSQ: + return EmulateStringOp(block, app_instr); + case XED_ICLASS_REPE_CMPSB: + case XED_ICLASS_REPE_CMPSD: + case XED_ICLASS_REPE_CMPSQ: + case XED_ICLASS_REPE_CMPSW: + case XED_ICLASS_REPE_SCASB: + case XED_ICLASS_REPE_SCASD: + case XED_ICLASS_REPE_SCASQ: + case XED_ICLASS_REPE_SCASW: + case XED_ICLASS_REPNE_CMPSB: + case XED_ICLASS_REPNE_CMPSD: + case XED_ICLASS_REPNE_CMPSQ: + case XED_ICLASS_REPNE_CMPSW: + case XED_ICLASS_REPNE_SCASB: + case XED_ICLASS_REPNE_SCASD: + case XED_ICLASS_REPNE_SCASQ: + case XED_ICLASS_REPNE_SCASW: + return EmulateStringOp(block, app_instr); + default: + return false; + } +} + +// Adds a patch point. Patchable jumps are `JMP rel32`, where the JMP opcode +// is 1 byte, and the rel32 is an int32_t. +static void AddPatchPoint(AppPC32 target_pc, CachePC encoded_pc) { + arch::AddPatchPoint(&(encoded_pc[1]), target_pc); +} + +// Report an encoding failure; we need to print out as much info as we can +// get. +static void ReportEncoderFailure(Block *block, arch::Instruction &instr) { +#if GRANARY_REPORT_ENCODER_ERRORS + char buff[4096] = {'\0'}; + auto offs = sprintf(buff, "Could not encode block [%x, %x):\n Block Data:", + block->StartPC(), block->EndPC()); + + offs += sprintf(buff + offs, "\n Instruction Data:"); + auto instr_bytes = reinterpret_cast( + reinterpret_cast(&instr)); + for (auto i = 0UL; i < sizeof instr; ++i) { + offs += sprintf(buff + offs, " %02x", + static_cast(instr_bytes[i])); + } + + granary_unreachable(buff, nullptr, false /* Don't die */); +#else + GRANARY_UNUSED(block); +#endif + + // Convert into a `UD2`. + xed_inst0(&instr, arch::kXEDState64, XED_ICLASS_UD2, 0); + instr.is_valid = false; + ConvertToError(block, &instr); +} + +} // namespace + +// Encodes the the block and returns a pointer to the location in the code +// cache at which the block was encoded. +// +// Note: This function is NOT thread safe. `EncodedSize` and `Encode` should +// be performed in a transaction. +void Block::Encode(index::Value &val) { + EndBlock(this); + + if (GRANARY_UNLIKELY(!num_app_instructions)) { + val.ends_with_error = true; + LoadImm(this, GRANARY_ABI_PC32, StartPC()); + + } else { + auto ainstr = &(app_instructions[num_app_instructions - 1].instruction); + auto first_ainstr = &(app_instructions[0].instruction); + + // Try to emulate the last instruction as a control-flow instruction. + if (EmulateCFI(this, ainstr)) { + val.has_one_successor = ainstr->IsDirectJump() || + ainstr->IsDirectFunctionCall(); + val.ends_with_syscall = has_syscall; + + // Record the PC of the jump instruction. Useful if we have a fault when + // loading the target (e.g. an indirect jump where the target is stored + // in memory). + LoadImm(this, GRANARY_ABI_PC32, ainstr->StartPC()); + + --ainstr; + + // It wasn't a control-flow instruction, so we emulated it with a direct + // jump, and so it only has one successor. + } else { + val.has_one_successor = !ainstr->IsSerializing(); + val.ends_with_error = ainstr->IsUndefined(); + } + + // For each remaining app instruction (in reverse order), try to emulate, + // andif not, virtualize each instruction. + for (; ainstr >= first_ainstr; --ainstr) { + GRANARY_ASSERT(XED_ICLASS_INVALID != ainstr->iclass); + + if (!Emulate(this, ainstr)) { + Virtualize(this, ainstr); + } + + // Instrument the instruction at this program counter. + InstrumentPC(this, ainstr->StartPC()); + + // Load the exact PC32 of each instruction just before emulating the + // instruction. This gives us precise PCs when reporting crashes. + LoadImm(this, GRANARY_ABI_PC32, ainstr->StartPC()); + } + //Instrument(this, code::kInstrumentBlockEntry); + } + + // Find the beginning of the block. We might push + auto start_cache_pc = cache::Allocate(0); + auto actual_start_cache_pc = start_cache_pc; + if (auto extra = reinterpret_cast(start_cache_pc) % 8) { + actual_start_cache_pc += (8 - extra); + } + + val.cache_offset = cache::PCToOffset(actual_start_cache_pc); + + // On entry to the block, add the block's identifying info in. + LoadImm(this, GRANARY_ABI_BLOCK64, val.value); + + // Add padding before the entry of the block to align blocks to 8-byte + // boundaries. + for (; start_cache_pc < actual_start_cache_pc; ++start_cache_pc) { + AddPadding(this); + } + + // Encode the instructions. + for (auto &einstr : cache_instructions) { + auto instr_size = einstr.NumEncodedBytes(); + if (!instr_size) { + ReportEncoderFailure(this, einstr); + has_error = true; + instr_size = einstr.NumEncodedBytes(); + } + + if (instr_size) { + auto encode_pc = cache::Allocate(instr_size); + UpdateRelBranch(&einstr, encode_pc); + einstr.Encode(encode_pc); + + if (&einstr == gBranchTaken.cache_instr) { + GRANARY_ASSERT(5 == instr_size); + AddPatchPoint(gBranchTaken.app_pc32, encode_pc); + memset(&gBranchTaken, 0, sizeof gBranchTaken); + } + + if (&einstr == gBranchNotTaken.cache_instr) { + GRANARY_ASSERT(5 == instr_size); + AddPatchPoint(gBranchNotTaken.app_pc32, encode_pc); + memset(&gBranchNotTaken, 0, sizeof gBranchNotTaken); + } + } + } + + // Report back up the chain (to the indexer) that this block has an error + // in it (somewhere). This will prevent us from even executing it. + if (has_error) { + val.ends_with_error = true; + } + + arch::SerializePipeline(); +} + +} // namespace granary + diff --git a/granary/arch/x86/branch_tracer.S b/granary/arch/x86/branch_tracer.S new file mode 100644 index 0000000..29ae78c --- /dev/null +++ b/granary/arch/x86/branch_tracer.S @@ -0,0 +1,66 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + + .file "granary/arch/x86/branch_tracer.S" + .intel_syntax noprefix + .text + + .extern TraceBranchImpl + + // r15 os::Process32 * Process32 object. + // r14 index::Value Meta-data about this block. + // r13 Scratch. + // r12 Scratch. + // r11 Scratch. + // r10 Addr32 EIP. + // r9 Addr32 ESP. + // r8 Addr64 64-bit base of 32-bit address space. + // + .align 16 + .globl TraceBranch + .type TraceBranch, @function +TraceBranch: + .cfi_startproc + + pushfq + push rax + push rbx + push rcx + push rdx + push rbp + push rsi + push rdi + push r8 + push r9 + push r10 + push r11 + push r12 + push r13 + push r14 + push r15 + + mov edi, dword ptr [r15 + 52] + mov esi, r14d + mov edx, r10d + call TraceBranchImpl + + pop r15 + pop r14 + pop r13 + pop r12 + pop r11 + pop r10 + pop r9 + pop r8 + pop rdi + pop rsi + pop rbp + pop rdx + pop rcx + pop rbx + pop rax + popfq + + ret + .cfi_endproc + .size TraceBranch, .-TraceBranch + ud2 diff --git a/granary/arch/x86/cache.S b/granary/arch/x86/cache.S new file mode 100644 index 0000000..ebcc537 --- /dev/null +++ b/granary/arch/x86/cache.S @@ -0,0 +1,149 @@ + + .file "granary/arch/x86/cache.S" + .intel_syntax noprefix + + .data +granary_stack_pointer: + .quad 0 + + .extern gInlineCache + + + // Used to return from the code cache with a bad block. + .align 16 + .globl granary_bad_block + .type granary_bad_block, @function +granary_bad_block: + .cfi_startproc + xor r14, r14 + not r14 + mov r11, [RIP + granary_stack_pointer] + sub r11, 8 + mov rsp, r11 + ret + .cfi_endproc + .size _ZN7granary5cache4CallEPNS_2os9Process32EPh, .-_ZN7granary5cache4CallEPNS_2os9Process32EPh + ud2 + + // CachePC cache::Call(os::Process32 *process, CachePC block); + .align 16 + .globl _ZN7granary5cache4CallEPNS_2os9Process32EPh; + .type _ZN7granary5cache4CallEPNS_2os9Process32EPh, @function +_ZN7granary5cache4CallEPNS_2os9Process32EPh: + .cfi_startproc + + /* Save the Linux ABI callee-saved regs */ + push rbx ; .cfi_def_cfa_offset 16 + push rbp ; .cfi_def_cfa_offset 24 + push r12 ; .cfi_def_cfa_offset 32 + push r13 ; .cfi_def_cfa_offset 40 + push r14 ; .cfi_def_cfa_offset 48 + push r15 ; .cfi_def_cfa_offset 56 + + /* Process address */ + mov r15, rdi + + /* Block address */ + mov r14, rsi + + /* Base of memory */ + mov r8, [r15] + + /* Restore EFLAGS */ + push word ptr [r15 + 44] ; .cfi_def_cfa_offset 60 + popf ; .cfi_def_cfa_offset 56 + + /* Restore the process state */ + mov edi, dword ptr [r15 + 8] + mov esi, dword ptr [r15 + 12] + mov ebp, dword ptr [r15 + 16] + mov ebx, dword ptr [r15 + 20] + mov edx, dword ptr [r15 + 24] + mov ecx, dword ptr [r15 + 28] + mov eax, dword ptr [r15 + 32] + mov r9d, dword ptr [r15 + 36] /* Emulated stack pointer */ + /* Don't restore the emulated pc */ + + // So that we can jump back into the top-level cache call. + mov [RIP + granary_stack_pointer], rsp + + /* Call into the block */ +.Lenter_cache: + call r14 + + /* Check the inline cache */ + pushfq + push r11 + + /* The target PC is NULL, this can trivially match against empty cache + * entries, and it's an error case, so we need to handle it properly. */ + test r10, r10 + jz .Lexit_cache + + /* After the call, r14 will be the index::Val of the last executed block. + * Check that this block doesn't end with a system call. */ + bt r14, 62 + jc .Lexit_cache + + /* Find the cache offset for the probes. We use the last branch PC to + * index into the inline cache, and scale it by the number of probes per + * cache entry. */ + mov r11d, dword ptr [r15 + 52] + and r11, 0x7ff + shl r11, 3 /* Scale by 8 bytes, the size of each entry. */ + lea r11, [r11 + gInlineCache] + +#define CHECK_CACHE(entry) \ + cmp dword ptr [r11 + (entry * 8)], r10d ; \ + jnz .Lentry_invalid ## entry ; \ + mov r14d, dword ptr [r11 + (entry * 8 + 4)] ; \ + jmp .Lre_enter_cache ; \ + \ + .Lentry_invalid ## entry: + + CHECK_CACHE(0) + CHECK_CACHE(1) + CHECK_CACHE(2) + CHECK_CACHE(3) + + jmp .Lexit_cache + +.Lre_enter_cache: + pop r11 + popfq + jmp .Lenter_cache + +.Lexit_cache: + pop r11 + popfq + + /* Save the process state */ + mov dword ptr [r15 + 8], edi + mov dword ptr [r15 + 12], esi + mov dword ptr [r15 + 16], ebp + mov dword ptr [r15 + 20], ebx + mov dword ptr [r15 + 24], edx + mov dword ptr [r15 + 28], ecx + mov dword ptr [r15 + 32], eax + mov dword ptr [r15 + 36], r9d /* Emulated stack pointer */ + mov dword ptr [r15 + 40], r10d /* Emulated program counter */ + + /* After the call, r14 will be the index::Val of the last executed block */ + mov rax, r14 + + /* Save the flags */ + pushf ; .cfi_def_cfa_offset 60 + pop word ptr [r15 + 44] ; .cfi_def_cfa_offset 56 + + /* Restore the Linux ABI caller-saved regs */ + pop r15 ; .cfi_def_cfa_offset 48 + pop r14 ; .cfi_def_cfa_offset 40 + pop r13 ; .cfi_def_cfa_offset 32 + pop r12 ; .cfi_def_cfa_offset 24 + pop rbp ; .cfi_def_cfa_offset 16 + pop rbx ; .cfi_def_cfa_offset 8 + + ret + .cfi_endproc + .size _ZN7granary5cache4CallEPNS_2os9Process32EPh, .-_ZN7granary5cache4CallEPNS_2os9Process32EPh + ud2 diff --git a/granary/arch/x86/coverage.S b/granary/arch/x86/coverage.S new file mode 100644 index 0000000..f24e33a --- /dev/null +++ b/granary/arch/x86/coverage.S @@ -0,0 +1,100 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + + .file "granary/arch/x86/coverage.S" + + .intel_syntax noprefix + .text + + .extern gPathEntries + .extern gNextPathEntry + .extern UpdateCoverageSet + .extern gInputIndex + + // r15 os::Process32 * Process32 object. + // r14 index::Value Meta-data about this block. + // r13 Scratch. + // r12 Scratch. + // r11 Scratch. + // r10 Addr32 EIP. + // r9 Addr32 ESP. + // r8 Addr64 64-bit base of 32-bit address space. + // + // void CoverPath(void); + + + // Add an entry to the path coverage list. If the list get full, then + // call into UpdateCoverageSet to flush it and reset. + .align 16 + .globl CoverPath + .type CoverPath, @function +CoverPath: + .cfi_startproc + pushf + + // If we haven't read any input then it's not possible to have any + // input-dependent code coverage. + cmp qword ptr [RIP + gInputIndex], 0 + jz done + + mov r13d, dword ptr [RIP + gNextPathEntry] + cmp r13, 4096 * 3 * 4 + jz update_coverage_map + +add_entry: + lea r11, [RIP + gPathEntries] + mov r12d, dword ptr [r15 + 52] // Prev branch EIP + + mov dword ptr [r11 + r13 + 0], r12d // Prev branch EIP. + mov dword ptr [r11 + r13 + 4], r14d // Block EIP + mov dword ptr [r11 + r13 + 8], r10d // Target EIP + + // Move to the next path entry. + add dword ptr [RIP + gNextPathEntry], 3 * 4 + +done: + popf + ret + +update_coverage_map: + push rax + push rbx + push rcx + push rdx + push rbp + push rsi + push rdi + push r8 + push r9 + push r10 + push r11 + push r12 + push r13 + push r14 + push r15 + + call UpdateCoverageSet + + pop r15 + pop r14 + pop r13 + pop r12 + pop r11 + pop r10 + pop r9 + pop r8 + pop rdi + pop rsi + pop rbp + pop rdx + pop rcx + pop rbx + pop rax + + mov dword ptr [RIP + gNextPathEntry], 0 + xor r13, r13 + jmp add_entry + + .cfi_endproc + .size CoverPath, .-CoverPath + ud2 + diff --git a/granary/arch/x86/cpu.cc b/granary/arch/x86/cpu.cc new file mode 100644 index 0000000..1f38f56 --- /dev/null +++ b/granary/arch/x86/cpu.cc @@ -0,0 +1,18 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/base/base.h" +#include "granary/base/breakpoint.h" + +namespace granary { +namespace arch { + +void Relax(void) { + GRANARY_INLINE_ASSEMBLY("pause;" ::: "memory"); +} + +void SerializePipeline(void) { + GRANARY_INLINE_ASSEMBLY("cpuid;" ::: "eax", "ebx", "ecx", "edx", "memory"); +} + +} // namespace arch +} // namespace granary diff --git a/granary/arch/x86/fault.cc b/granary/arch/x86/fault.cc new file mode 100644 index 0000000..8db4d9a --- /dev/null +++ b/granary/arch/x86/fault.cc @@ -0,0 +1,96 @@ +/* Copyright 2016 Peter Goodman (peter@trailofbits.com), all rights reserved. */ + +#include "granary/arch/fault.h" +#include "granary/arch/x86/instruction.h" + +#include "granary/os/process.h" + +namespace granary { +namespace arch { +namespace { + +static uint32_t RegToVal(const os::Process32 *process, xed_reg_enum_t reg) { + switch (reg) { + case XED_REG_RAX: + case XED_REG_EAX: + return process->regs.eax; + case XED_REG_RCX: + case XED_REG_ECX: + return process->regs.ecx; + case XED_REG_RDX: + case XED_REG_EDX: + return process->regs.edx; + case XED_REG_RBX: + case XED_REG_EBX: + return process->regs.ebx; + case XED_REG_RSP: + case XED_REG_ESP: + return process->regs.esp; + case XED_REG_RBP: + case XED_REG_EBP: + return process->regs.ebp; + case XED_REG_RSI: + case XED_REG_ESI: + return process->regs.esi; + case XED_REG_RDI: + case XED_REG_EDI: + return process->regs.edi; + default: + return 0; + } +} + +} // namespace + +void DecomposeFaultAddr( + const os::Process32 *process, + Addr32 *base, + Addr32 *index, + Addr32 *scale, + Addr32 *disp, + Addr32 fault_addr) { + + *base = fault_addr; + *index = 0; + *scale = 0; + *disp = 0; + + uint8_t bytes[kMaxNumInstructionBytes] = {0}; + size_t size = 0; + for (auto i = 0U; i < kMaxNumInstructionBytes; ++i, ++size) { + auto addr = process->ConvertAddress(process->regs.eip + i); + auto pc = reinterpret_cast(addr); + if (!process->TryRead(pc, bytes[i])) { + break; + } + } + + if (!size) { + return; + } + + Instruction instr; + instr.TryDecode(bytes, size, ISA::x86); + + for (const auto &op : instr.operands) { + if (XED_ENCODER_OPERAND_TYPE_MEM == op.type) { + auto b = RegToVal(process, op.u.mem.base); + auto i = RegToVal(process, op.u.mem.index); + auto s = op.u.mem.scale; + auto d = static_cast(op.u.mem.disp.displacement); + + auto mem_addr = b + (i * s) + d; + if (mem_addr == fault_addr) { + *base = b; + *index = i; + *scale = s; + *disp = d; + return; + } + } + } +} + +} // namespace arch +} // namespace granary + diff --git a/granary/arch/x86/instruction.cc b/granary/arch/x86/instruction.cc new file mode 100644 index 0000000..b77b5e2 --- /dev/null +++ b/granary/arch/x86/instruction.cc @@ -0,0 +1,476 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/arch/instruction.h" + +namespace granary { +namespace arch { + +extern const xed_state_t kXEDState32 = { + XED_MACHINE_MODE_LONG_COMPAT_32, + XED_ADDRESS_WIDTH_32b}; + +extern const xed_state_t kXEDState64 = { + XED_MACHINE_MODE_LONG_64, + XED_ADDRESS_WIDTH_64b}; + +namespace { + +// Returns true if we've marked a register as live in the GPR set. +static bool TryAddToGPRSet(GPRSet *set, xed_reg_enum_t reg64) { + switch (reg64) { + case XED_REG_RAX: set->gax = true; return true; + case XED_REG_RCX: set->gcx = true; return true; + case XED_REG_RDX: set->gdx = true; return true; + case XED_REG_RBX: set->gbx = true; return true; + case XED_REG_RSP: set->gsp = true; return true; + case XED_REG_RBP: set->gbp = true; return true; + case XED_REG_RSI: set->gsi = true; return true; + case XED_REG_RDI: set->gdi = true; return true; + case XED_REG_R8: set->r8 = true; return true; + case XED_REG_R9: set->r9 = true; return true; + case XED_REG_R10: set->r10 = true; return true; + case XED_REG_R11: set->r11 = true; return true; + case XED_REG_R12: set->r12 = true; return true; + case XED_REG_R13: set->r13 = true; return true; + case XED_REG_R14: set->r14 = true; return true; + case XED_REG_R15: set->r15 = true; return true; + default: return false; + } +} + +// Updates some GPR sets with a GPR. +static void UpdateGPRSets(Instruction *instr, xed_reg_enum_t reg, + xed_operand_action_enum_t action) { + auto reg64 = xed_get_largest_enclosing_register(reg); + switch (action) { + case XED_OPERAND_ACTION_RW: + case XED_OPERAND_ACTION_RCW: + case XED_OPERAND_ACTION_CRW: + TryAddToGPRSet(&(instr->gprs_read), reg64); + TryAddToGPRSet(&(instr->gprs_written), reg64); + break; + case XED_OPERAND_ACTION_R: + case XED_OPERAND_ACTION_CR: + TryAddToGPRSet(&(instr->gprs_read), reg64); + break; + + // Write-only operands are tricky because they might actually not write to + // the full register, so we want to represent a partial write as a read + // dependency. + case XED_OPERAND_ACTION_W: + case XED_OPERAND_ACTION_CW: + if (TryAddToGPRSet(&(instr->gprs_written), reg64) && + 32 > xed_get_register_width_bits64(reg)) { + TryAddToGPRSet(&(instr->gprs_read), reg64); + } + break; + + default: break; + } +} + +// Decode a memory operand. +// +// Note: This only applies to `MEM0` operands. +static xed_encoder_operand_t DecodeMemory0(const xed_decoded_inst_t *xedd, + Instruction *instr, + xed_operand_enum_t op_name, + unsigned op_num) { + xed_encoder_operand_t op; + op.type = XED_ENCODER_OPERAND_TYPE_MEM; + op.u.mem.seg = xed_decoded_inst_get_seg_reg(xedd, 0); + op.u.mem.base = xed_decoded_inst_get_base_reg(xedd, 0); + op.u.mem.index = xed_decoded_inst_get_index_reg(xedd, 0); + op.u.mem.disp.displacement = \ + xed_decoded_inst_get_memory_displacement(xedd, 0); + op.u.mem.disp.displacement_width = \ + xed_decoded_inst_get_memory_displacement_width_bits(xedd, 0); + op.u.mem.scale = xed_decoded_inst_get_scale(xedd, 0); + op.width = xed_decoded_inst_operand_length_bits(xedd, op_num) ?: + instr->effective_operand_width; + auto base64 = xed_get_largest_enclosing_register(op.u.mem.base); + auto index64 = xed_get_largest_enclosing_register(op.u.mem.base); + + if (XED_REG_RIP == base64) instr->has_pc_rel_op = true; + if (XED_REG_RIP == index64) instr->has_pc_rel_op = true; + + TryAddToGPRSet(&(instr->gprs_written), base64); + TryAddToGPRSet(&(instr->gprs_written), index64); + + if (XED_OPERAND_AGEN != op_name) { + instr->reads_mem = xed_decoded_inst_mem_read(xedd, 0); + instr->writes_mem = xed_decoded_inst_mem_written(xedd, 0); + } + return op; +} + +// Decode `IMM0` operands. +static xed_encoder_operand_t DecodeImm0(const xed_decoded_inst_t *xedd, + xed_operand_enum_t op_name) { + xed_encoder_operand_t op; + if (XED_OPERAND_IMM0SIGNED == op_name || + xed_operand_values_get_immediate_is_signed(xedd)) { + op.type = XED_ENCODER_OPERAND_TYPE_SIMM0; + op.u.imm0 = static_cast(static_cast( + xed_decoded_inst_get_signed_immediate(xedd))); + } else { + op.type = XED_ENCODER_OPERAND_TYPE_IMM0; + op.u.imm0 = xed_decoded_inst_get_unsigned_immediate(xedd); + } + op.width = xed_decoded_inst_get_immediate_width_bits(xedd); + return op; +} + +// Decode `IMM1` operands. +static xed_encoder_operand_t DecodeImm1(const xed_decoded_inst_t *xedd) { + xed_encoder_operand_t op; + op.type = XED_ENCODER_OPERAND_TYPE_IMM1; + op.u.imm1 = xed_decoded_inst_get_second_immediate(xedd); + op.width = xed_decoded_inst_get_immediate_width_bits(xedd); + return op; +} + +// Pull out a pointer operand. These are used in things like call/jmp far. +static xed_encoder_operand_t DecodePtr(const xed_decoded_inst_t *) { + //GRANARY_ASSERT(false && "Unexpected PTR operand."); + // TODO(pag): Unimplemented. + //return {}; + xed_encoder_operand_t op; + op.type = XED_ENCODER_OPERAND_TYPE_INVALID; + return op; +} + +// Pull out a register operand from the XED instruction. +static xed_encoder_operand_t DecodeReg(const xed_decoded_inst_t *xedd, + const xed_operand_t *xedo, + Instruction *instr, + const xed_operand_enum_t op_name) { + xed_encoder_operand_t op; + op.type = XED_ENCODER_OPERAND_TYPE_REG; + op.u.reg = xed_decoded_inst_get_reg(xedd, op_name); + if (XED_REG_AH <= op.u.reg && op.u.reg <= XED_REG_BH) { + instr->uses_legacy_registers = true; + } + if (XED_ADDRESS_WIDTH_64b == instr->mode.stack_addr_width) { + op.width = xed_get_register_width_bits64(op.u.reg); + } else { + op.width = xed_get_register_width_bits(op.u.reg); + } + UpdateGPRSets(instr, op.u.reg, xed_operand_rw(xedo)); + return op; +} + +// Pull out a relative branch target. +static xed_encoder_operand_t DecodeRelbr(const xed_decoded_inst_t *xedd) { + xed_encoder_operand_t op; + op.type = XED_ENCODER_OPERAND_TYPE_BRDISP; + op.u.brdisp = xed_decoded_inst_get_branch_displacement(xedd); + op.width = xed_decoded_inst_get_branch_displacement_width_bits(xedd); + return op; +} + +// Converts a `xed_operand_t` into an operand in `instr`. +static void DecodeOperand(const xed_decoded_inst_t *xedd, + const xed_operand_t *xedo, + Instruction *instr) { + auto op_num = instr->noperands++; + auto &op = instr->operands[op_num]; + switch (auto op_name = xed_operand_name(xedo)) { + case XED_OPERAND_AGEN: + case XED_OPERAND_MEM0: + op = DecodeMemory0(xedd, instr, op_name, op_num); + break; + + case XED_OPERAND_IMM0SIGNED: + case XED_OPERAND_IMM0: + op = DecodeImm0(xedd, op_name); + break; + + case XED_OPERAND_IMM1_BYTES: + case XED_OPERAND_IMM1: + op = DecodeImm1(xedd); + break; + + case XED_OPERAND_PTR: + op = DecodePtr(xedd); + break; + + case XED_OPERAND_REG0: + case XED_OPERAND_REG1: + case XED_OPERAND_REG2: + case XED_OPERAND_REG3: + op = DecodeReg(xedd, xedo, instr, op_name); + break; + + case XED_OPERAND_RELBR: + op = DecodeRelbr(xedd); + instr->has_pc_rel_op = true; + break; + + // TODO(pag): Handle `XED_OPERAND_IMM1_BYTES`? + default: + GRANARY_ASSERT(false && "Unexpected operand type for encoding."); + return; + } +} + +// Update flags in the instruction that track registers and arithmetic flags. +static void UpdateFlags(const xed_decoded_inst_t *xedd, + const xed_operand_t *xedo, Instruction *instr) { + switch (auto op_name = xed_operand_name(xedo)) { + case XED_OPERAND_REG: + case XED_OPERAND_REG0: + case XED_OPERAND_REG1: + case XED_OPERAND_REG2: + case XED_OPERAND_REG3: + case XED_OPERAND_REG4: + case XED_OPERAND_REG5: + case XED_OPERAND_REG6: + case XED_OPERAND_REG7: + case XED_OPERAND_REG8: { + auto reg = xed_decoded_inst_get_reg(xedd, op_name); + if (XED_REG_AH <= reg && reg <= XED_REG_BH) { + instr->uses_legacy_registers = true; + } + switch (reg) { + case XED_REG_STACKPUSH: + case XED_REG_STACKPOP: + instr->gprs_read.gsp = true; + instr->gprs_written.gsp = true; + break; + + case XED_REG_FLAGS: + case XED_REG_EFLAGS: + case XED_REG_RFLAGS: + instr->reads_aflags = xed_operand_read(xedo); + instr->writes_aflags = xed_operand_written(xedo); + break; + + default: + UpdateGPRSets(instr, reg, xed_operand_rw(xedo)); + break; + } + break; + } + default: break; + } +} + +// Converts a `xed_decoded_inst_t` into an `Instruction`. +static void DecodeOperands(const xed_decoded_inst_t *xedd, + const xed_inst_t *xedi, Instruction *instr) { + auto num_ops = xed_inst_noperands(xedi); + for (auto i = 0U; i < num_ops; ++i) { + auto xedo = xed_inst_operand(xedi, i); + switch (xed_operand_operand_visibility(xedo)) { + case XED_OPVIS_EXPLICIT: + case XED_OPVIS_IMPLICIT: + DecodeOperand(xedd, xedo, instr); + break; + case XED_OPVIS_SUPPRESSED: + UpdateFlags(xedd, xedo, instr); + break; + default: return; + } + } +} + +// Decode the prefixes. We purposely ignore branch taken/not taken hints. +static void DecodePrefixes(const xed_decoded_inst_t *xedd, Instruction *instr) { + if (xed_operand_values_has_real_rep(xedd)) { + instr->prefixes.s.rep = xed_operand_values_has_rep_prefix(xedd); + instr->prefixes.s.repne = xed_operand_values_has_repne_prefix(xedd); + } + instr->prefixes.s.lock = xed_operand_values_has_lock_prefix(xedd); + + // TODO(pag): XACQUIRE, XRELEASE, MPX. +} + +// Do an actual decoding of up to `num_bytes` bytes. +static bool DoDecode(xed_decoded_inst_t *xedd, const xed_state_t *dstate, + const void *pc_, unsigned num_bytes) { + xed_decoded_inst_zero_set_mode(xedd, dstate); + xed_decoded_inst_set_input_chip(xedd, XED_CHIP_INVALID); + auto pc = reinterpret_cast(pc_); + if (XED_ERROR_NONE != xed_decode(xedd, pc, num_bytes)) { + return false; + } + switch (xed_decoded_inst_get_category(xedd)) { + case XED_CATEGORY_AES: + case XED_CATEGORY_AVX: + case XED_CATEGORY_AVX2: + case XED_CATEGORY_AVX2GATHER: + case XED_CATEGORY_AVX512: + case XED_CATEGORY_AVX512VBMI: + case XED_CATEGORY_RDRAND: + case XED_CATEGORY_RDSEED: + return false; + default: + return true; + } +} + +// Makes an undefined instruction. +static void MakeUD2(Instruction *instr, ISA isa) { + auto state = ISA::x86 == isa ? kXEDState32 : kXEDState64; + xed_inst0(instr, state, XED_ICLASS_UD2, 0); + instr->decoded_length = 2; + instr->bytes[0] = 0x0F; + instr->bytes[1] = 0x0B; + instr->is_valid = true; +} + +// Set of registers, in the reverse order from what they appear in the GPRSet, +// such that the index of a register in this array corresponds to the bit +// position of the register in the GPRSet. +static xed_reg_enum_t gGprsInSet[] = { + XED_REG_RSP, + XED_REG_RAX, + XED_REG_RCX, + XED_REG_RDX, + XED_REG_RBX, + XED_REG_RBP, + XED_REG_RSI, + XED_REG_RDI, + XED_REG_R8, + XED_REG_R9, + XED_REG_R10, + XED_REG_R11, + XED_REG_R12, + XED_REG_R13, + XED_REG_R14, + XED_REG_R15 +}; + +// Try to verify that all operands were successfully decoded. +// +// TODO(pag): This is ugly. That is, our only way of signaling a failure to +// decode an operand is via its operand type. +static bool VerifyDecodedOperands(const Instruction *instr) { + for (auto i = 0U; i < instr->noperands; ++i) { + const auto &op = instr->operands[i]; + if (XED_ENCODER_OPERAND_TYPE_INVALID == op.type) return false; + } + return true; +} + +} // namespace + +// Revives and returns the next dead register in the register set. +xed_reg_enum_t GPRSet::ReviveNextDeadReg(void) { + for (auto i = 0U; i < 16U; ++i) { + auto bit = 1U << i; + if (!(bit & bits)) { + bits |= bit; + return gGprsInSet[16 - i]; + } + } + return XED_REG_INVALID; +} + +// Decode an instruction. +bool Instruction::TryDecode(const uint8_t *decode_bytes, size_t max_num_bytes, + ISA isa) { + xed_decoded_inst_t xedd; + memset(this, 0, sizeof *this); + + auto state = ISA::x86 == isa ? &kXEDState32 : &kXEDState64; + max_num_bytes = std::min(kMaxNumInstructionBytes, max_num_bytes); + + // If we come across an invalid instruction, then we'll propagate it out to + // the real code so that a `SIGILL` in native code turns into a `SIGILL` in + // translated code. + if (!max_num_bytes || !DoDecode(&xedd, state, decode_bytes, max_num_bytes)) { + MakeUD2(this, isa); + return false; + } + + decoded_length = xed_decoded_inst_get_length(&xedd); + is_valid = true; // Assume there are no PC-relative references. + + iclass = xed_decoded_inst_get_iclass(&xedd); + + // Good defaults, will fixup special cases later. + effective_address_width = AddressWidth(); + effective_operand_width = xed_decoded_inst_get_operand_width(&xedd); + + memcpy(bytes, decode_bytes, decoded_length); + DecodePrefixes(&xedd, this); + DecodeOperands(&xedd, xed_decoded_inst_inst(&xedd), this); + return VerifyDecodedOperands(this); +} + +namespace { +// Perform the actual encoding of an instruction. +static bool DoEncode(Instruction *instr, uint8_t *bytes) { + if (XED_ICLASS_JECXZ == instr->iclass) { + bytes[0] = 0x67; + bytes[1] = 0xe3; + bytes[2] = static_cast(instr->operands[0].u.brdisp); + return true; + } else { + xed_encoder_request_t xede; + xed_encoder_request_zero_set_mode(&xede, &(instr->mode)); + if (!xed_convert_to_encoder_request(&xede, instr)) return false; + return XED_ERROR_NONE == xed_encode(&xede, bytes, kMaxNumInstructionBytes, + &(instr->encoded_length)); + } +} +} // namespace + +size_t Instruction::NumEncodedBytes(void) { + if (!DoEncode(this, bytes)) return 0; + is_valid = true; + return encoded_length; +} + +// Copies an already encoded version of the instruction to `encode_pc`, or +// encodes it directly into the right location. +void Instruction::Encode(CachePC encode_pc) { + if (encoded_length && is_valid) { + memcpy(encode_pc, bytes, encoded_length); + } else { + is_valid = DoEncode(this, encode_pc); + } +} + +// See: http://www.sandpile.org/x86/coherent.htm +bool Instruction::IsSerializing(void) const { + switch (iclass) { + case XED_ICLASS_IRET: + case XED_ICLASS_IRETD: + case XED_ICLASS_IRETQ: + case XED_ICLASS_RSM: + case XED_ICLASS_CPUID: + case XED_ICLASS_LGDT: + case XED_ICLASS_LIDT: + case XED_ICLASS_LLDT: + case XED_ICLASS_LTR: + case XED_ICLASS_INVLPG: + case XED_ICLASS_INVLPGA: + case XED_ICLASS_INVEPT: + case XED_ICLASS_INVVPID: + case XED_ICLASS_INVD: + case XED_ICLASS_WBINVD: + case XED_ICLASS_LMSW: + case XED_ICLASS_WRMSR: + case XED_ICLASS_SWAPGS: + case XED_ICLASS_INT1: + case XED_ICLASS_INT3: + case XED_ICLASS_INTO: + case XED_ICLASS_INT: + case XED_ICLASS_LDS: + case XED_ICLASS_LSS: + case XED_ICLASS_LGS: + case XED_ICLASS_LES: + case XED_ICLASS_LFS: + return true; + + // TODO(pag): Check things like `MOV SS, ...`. + default: + return false; + } +} + +} // namespace arch +} // namespace granary diff --git a/granary/arch/x86/instruction.h b/granary/arch/x86/instruction.h new file mode 100644 index 0000000..b9f4f3b --- /dev/null +++ b/granary/arch/x86/instruction.h @@ -0,0 +1,215 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_ARCH_X86_INSTRUCTION_H_ +#define GRANARY_ARCH_X86_INSTRUCTION_H_ + +#include "granary/arch/isa.h" +#include "granary/arch/x86/xed-intel64.h" + +#include "granary/base/base.h" + +namespace granary { +namespace arch { + +enum { + // Maximum number of bytes in an x86/x64 instruction. + kMaxNumInstructionBytes = 15, + + kAddrWidthBytes_x86 = 4, + kAddrWidthBits_x86 = 32, + kAddrWidthBytes_amd64 = 8, + kAddrWidthBits_amd64 = 64 +}; + +// Bit set of all general purpose registers. +union GPRSet { + struct { + bool r15:1; + bool r14:1; + bool r13:1; + bool r12:1; + bool r11:1; + bool r10:1; + bool r9:1; + bool r8:1; + bool gdi:1; + bool gsi:1; + bool gbp:1; + bool gbx:1; + bool gdx:1; + bool gcx:1; + bool gax:1; + bool gsp:1; + } __attribute__((packed)); + + uint16_t bits; + + // Revives and returns the next dead register in the register set. + xed_reg_enum_t ReviveNextDeadReg(void); +}; + +static_assert(sizeof(GPRSet) == sizeof(uint16_t), + "Invalid structure packing of `union GPRSet`."); + +// Represents an instruction. +struct Instruction final : public xed_encoder_instruction_t { + inline bool IsFunctionCall(void) const { + return XED_ICLASS_CALL_NEAR == iclass || XED_ICLASS_CALL_FAR == iclass; + } + + inline bool IsFunctionReturn(void) const { + return XED_ICLASS_RET_NEAR == iclass || XED_ICLASS_RET_FAR == iclass; + } + + // TODO(pag): Add support for ABI-specific system calls (e.g. `int 0x80`). + // TODO(pag): What about call gates? + inline bool IsSystemCall(void) const { + return XED_ICLASS_SYSCALL == iclass || XED_ICLASS_SYSCALL_AMD == iclass || + XED_ICLASS_SYSENTER == iclass; + } + + inline bool IsSystemReturn(void) const { + return XED_ICLASS_SYSRET == iclass || XED_ICLASS_SYSRET_AMD == iclass || + XED_ICLASS_SYSEXIT == iclass; + } + + inline bool IsInterruptCall(void) const { + return XED_ICLASS_INT <= iclass && XED_ICLASS_INTO >= iclass; + } + + inline bool IsInterruptReturn(void) const { + return XED_ICLASS_IRET <= iclass && XED_ICLASS_IRETQ >= iclass; + } + + // This includes `JRCXZ`. + inline bool IsBranch(void) const { + return (XED_ICLASS_JB <= iclass && XED_ICLASS_JLE >= iclass) || + (XED_ICLASS_JNB <= iclass && XED_ICLASS_JZ >= iclass) || + (XED_ICLASS_LOOP <= iclass && XED_ICLASS_LOOPNE >= iclass) || + XED_ICLASS_XBEGIN == iclass; + } + + inline bool IsJump(void) const { + return XED_ICLASS_JMP == iclass || XED_ICLASS_JMP_FAR == iclass || + XED_ICLASS_XEND == iclass || XED_ICLASS_XABORT == iclass; + } + + inline bool IsDirectFunctionCall(void) const { + return XED_ICLASS_CALL_NEAR == iclass && + XED_ENCODER_OPERAND_TYPE_BRDISP == operands[0].type; + } + + inline bool IsIndirectFunctionCall(void) const { + return (XED_ICLASS_CALL_NEAR == iclass && + XED_ENCODER_OPERAND_TYPE_BRDISP != operands[0].type) || + XED_ICLASS_CALL_FAR == iclass; + } + + inline bool IsDirectJump(void) const { + return XED_ICLASS_JMP == iclass && + XED_ENCODER_OPERAND_TYPE_BRDISP == operands[0].type; + } + + inline bool IsIndirectJump(void) const { + return (XED_ICLASS_JMP == iclass && + XED_ENCODER_OPERAND_TYPE_BRDISP != operands[0].type) || + XED_ICLASS_JMP_FAR == iclass || + XED_ICLASS_XEND == iclass || XED_ICLASS_XABORT == iclass; + } + + // Returns true if this instruction has a side-effect of serializing the + // instruction pipeline. This class of instruction is significant for self- + // and cross-modifying code. + bool IsSerializing(void) const; + + // Is the instruction an undefined instruction? + bool IsUndefined(void) const { + return XED_ICLASS_INVALID == iclass || XED_ICLASS_UD2 == iclass; + } + + // Target PC of a control-flow instruction. + inline AppPC32 TargetPC(void) const { + return EndPC() + operands[0].u.brdisp; + } + + // Set the starting application PC of this instruction. + inline void SetStartPC(AppPC32 pc) { + decoded_pc = pc; + } + + // Beginning program counter of this instruction. + inline AppPC32 StartPC(void) const { + return decoded_pc; + } + + // Program counter of the next logical instruction after this instruction. + inline AppPC32 EndPC(void) const { + return decoded_pc + decoded_length; + } + + // Size of this instruction in bytes. + inline size_t NumBytes(void) const { + return decoded_length; + } + + // Try to decode an instruction starting at `decode_pc`. + bool TryDecode(const uint8_t *decode_bytes, size_t max_num_bytes, ISA isa); + + // Computes the encoded length of the instruction. + size_t NumEncodedBytes(void); + + // Actually encode an instruction. This assumes that `TryEncode` returned + // `true`. + void Encode(CachePC encode_pc); + + union { + AppPC32 decoded_pc; + }; + + union { + unsigned decoded_length; + unsigned encoded_length; + }; + + // General purpose registers read and written by this instruction. We treat + // conditional reads/writes as unconditional, and we treat writes that don't + // overwrite the full register state as being reads as well. + GPRSet gprs_read; + GPRSet gprs_written; + + struct { + // Are the bytes in `bytes` valid? If so, then we can just copy them. Things + // that make them invalid would be modification, which usually happens for + // PC-relative operands. + bool is_valid:1; + + // Does this instruction have a PC-relative operand? + bool has_pc_rel_op:1; + + // Does this instruction have a PC-relative operand that needs to be re- + // encoded? + bool reencode_pc_rel_op:1; + + // Does this instruction read/write to/from the arithmetic flags? We're + // conservative and don't particularly care what flags are read/written. + bool reads_aflags:1; + bool writes_aflags:1; + + // Does this use "legacy" 32- or 16-bit registers? If so, then this + // instruction likely cannot also use newer 64-bit registers (r8-r15). + bool uses_legacy_registers:1; + + // Does this instruction read from or write to memory? + bool reads_mem:1; + bool writes_mem:1; + + } __attribute__((packed)); + + // Encoded or decoded bytes. + uint8_t bytes[kMaxNumInstructionBytes]; +}; + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_X86_INSTRUCTION_H_ diff --git a/granary/arch/x86/instrument.cc b/granary/arch/x86/instrument.cc new file mode 100644 index 0000000..f7cbb21 --- /dev/null +++ b/granary/arch/x86/instrument.cc @@ -0,0 +1,49 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/arch/instruction.h" +#include "granary/arch/instrument.h" + +namespace granary { +namespace arch { + +extern const xed_state_t kXEDState64; + +namespace { + +static CachePC gInstFuncs[code::InstrumentationPoint::kInvalid] = {nullptr}; + +} // namespace + +// Initialize instrumentation routines for use within basic blocks. +void InitInstrumentationFunctions(CachePC instrument_section) { + auto ipoint_max = static_cast(code::InstrumentationPoint::kInvalid); + for (auto i = 0; i < ipoint_max; ++i) { + arch::Instruction instr; + memset(&instr, 0, sizeof instr); + memset(instrument_section, 0x90, 8); + + auto ipoint = static_cast(i); + if (auto addr = code::GetInstrumentationFunction(ipoint)) { + auto next_pc = instrument_section + 5; + auto target_pc = reinterpret_cast(addr); + xed_inst1(&instr, arch::kXEDState64, XED_ICLASS_JMP, + kAddrWidthBits_amd64, xed_relbr(target_pc - next_pc, 32)); + } else { + xed_inst0(&instr, arch::kXEDState64, XED_ICLASS_RET_NEAR, + kAddrWidthBits_amd64); + } + gInstFuncs[ipoint] = instrument_section; + instr.Encode(instrument_section); + instrument_section += 8; + } +} + +// Returns the location in the code cache of where this instrumentation +// function is. +CachePC GetInstrumentationFunction(code::InstrumentationPoint ipoint) { + GRANARY_ASSERT(code::InstrumentationPoint::kInvalid != ipoint); + return gInstFuncs[ipoint]; +} + +} // namespace arch +} // namespace granary diff --git a/granary/arch/x86/patch.cc b/granary/arch/x86/patch.cc new file mode 100644 index 0000000..099f13e --- /dev/null +++ b/granary/arch/x86/patch.cc @@ -0,0 +1,173 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/arch/x86/patch.h" + +#include "granary/os/process.h" + +#include "granary/code/cache.h" +#include "granary/code/index.h" + +#include +#include +#include +#include + +#include + +DECLARE_bool(persist); +DECLARE_string(persist_dir); + +DEFINE_bool(disable_patching, false, + "Disable hot-patching of conditional branches?"); + +namespace granary { +namespace arch { +namespace { + +struct PatchPoint { + CacheOffset patch_offset; + index::Key target; +}; + +enum { + // After how many patch points should we try to patch? + kPatchInterval = 64, + + // How many patch points should we store? + kNumPatches = (2 * os::kPageSize) / sizeof(PatchPoint) +}; + +static_assert(!(kNumPatches % kPatchInterval), "Invalid patch interval."); + +// Array of all patch points. +// +// Note: `+ 1` is so that `mmap` won't overflow and corrupt some other memory. +alignas(os::kPageSize) static PatchPoint gPatches[kNumPatches + 1]; + +// Offset of the next patch point that can be assigned. +static int gNextPatch = 0; + +// FD for the patch file. +static int gFd = -1; + +// Patch a jump in the code. +// +// Note: `patch_offset` is the offset of an `int32_t` in the code cache that +// immediately follows the `JMP` opcode. +static void Patch(CacheOffset patch_offset, index::Value target) { + auto next_pc = cache::OffsetToPC(patch_offset + 4 /* sizeof(CacheOffset) */); + auto target_pc = cache::OffsetToPC(target.cache_offset); + auto offset_diff = static_cast(target_pc - next_pc); + auto rel32 = reinterpret_cast(reinterpret_cast( + cache::OffsetToPC(patch_offset))); + offset_diff = __sync_lock_test_and_set(rel32, offset_diff); + // It should have had a zero value (e.g. `JMP next_pc`). + GRANARY_ASSERT(!offset_diff); +} + +// Clear all patch points. +static void ClearPatchPoints(void) { + memset(gPatches, 0, sizeof gPatches); + gNextPatch = 0; +} + + +// Type to patch all patch points. +static void PatchCode(void) { + auto first_free = 0; + auto last_free = 0; + auto patched = false; + for (auto i = 0; i < gNextPatch; ++i) { + auto &patch = gPatches[i]; + + // A patch point that we can patch. + if (auto val = index::Find(patch.target)) { + Patch(patch.patch_offset, val); + memset(&patch, 0, sizeof patch); + ++last_free; + patched = true; + + // A patch point that we can't patch yet. Bubble it to a different + // position. + } else if (first_free != last_free) { + memcpy(&(gPatches[first_free]), &patch, sizeof patch); + memset(&patch, 0, sizeof patch); + ++first_free; + ++last_free; + + // A patch point that we can't patch yet. There are free slots available + // to which we can bubble this + } else { + ++first_free; + ++last_free; + } + } + if (patched) { + cache::ClearInlineCache(); + } + gNextPatch = first_free; +} + +} // namespace + +// Add a new patch point. +void AddPatchPoint(CachePC rel32, AppPC32 target) { + if (FLAGS_disable_patching) { + return; + } + if (gNextPatch && !(gNextPatch % kPatchInterval)) { + PatchCode(); + if (GRANARY_UNLIKELY(kNumPatches == gNextPatch)) ClearPatchPoints(); + } + + auto &patch = gPatches[gNextPatch++]; + patch.patch_offset = cache::PCToOffset(reinterpret_cast( + reinterpret_cast(rel32))); + patch.target = index::Key(os::gProcess, target); +} + +void InitPatcher(void) { + auto flags = MAP_FIXED | MAP_32BIT; + if (FLAGS_persist) { + + static char gPath[256] = {'\0'}; + sprintf(gPath, "%s/grr.patch.persist", FLAGS_persist_dir.c_str()); + + GRANARY_IF_ASSERT( errno = 0; ) + gFd = open(gPath, O_RDWR | O_CLOEXEC | O_CREAT | O_LARGEFILE, 0666); + GRANARY_ASSERT(!errno && "Unable to open patch file."); + + ftruncate(gFd, os::kPageSize); + flags |= MAP_SHARED; + + } else { + gFd = -1; + flags |= MAP_PRIVATE | MAP_ANONYMOUS; + } + + GRANARY_IF_ASSERT( errno = 0; ) + mmap(&gPatches, os::kPageSize, PROT_READ | PROT_WRITE, flags, gFd, 0); + GRANARY_ASSERT(!errno && "Unable to map patch file."); + + // Advance the patch offset. + for (; gNextPatch < kNumPatches; ++gNextPatch) { + if (!gPatches[gNextPatch].target) break; + } +} + +void ExitPatcher(void) { + if (FLAGS_persist) { + PatchCode(); + msync(gPatches, os::kPageSize, MS_SYNC | MS_INVALIDATE); + } + + munmap(gPatches, os::kPageSize); + + if (FLAGS_persist) { + fsync(gFd); + close(gFd); + } +} + +} // namespace arch +} // namespace granary diff --git a/granary/arch/x86/patch.h b/granary/arch/x86/patch.h new file mode 100644 index 0000000..6e8060c --- /dev/null +++ b/granary/arch/x86/patch.h @@ -0,0 +1,17 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/arch/patch.h" + +#ifndef GRANARY_ARCH_X86_PATCH_H_ +#define GRANARY_ARCH_X86_PATCH_H_ + +namespace granary { +namespace arch { + +// Add a new patch point. +void AddPatchPoint(CachePC rel32, AppPC32 target); + +} // namespace arch +} // namespace granary + +#endif // GRANARY_ARCH_X86_PATCH_H_ diff --git a/granary/arch/x86/process.cc b/granary/arch/x86/process.cc new file mode 100644 index 0000000..cb1b876 --- /dev/null +++ b/granary/arch/x86/process.cc @@ -0,0 +1,195 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/os/process.h" +#include "granary/os/snapshot.h" + +#include "granary/code/cache.h" +#include "granary/code/execute.h" + +namespace granary { +namespace os { + +// Tries to do a write of a specific size. +bool Process32::DoTryWrite(uint32_t *ptr, uint32_t val) const { + PushProcess32 set_process(this); + fault_can_recover = true; + __asm__ __volatile__ ( + "jmp 1f;" + ".align 16, 0x90;" + "1:" + "mov %0, (%1);" + "jmp 2f;" + ".align 16, 0x90;" + "2:" + : + : "r"(val), "r"(ptr) + : "memory" + ); + auto ret = fault_can_recover; + fault_can_recover = false; + return ret; +} + +bool Process32::DoTryWrite(uint16_t *ptr, uint16_t val) const { + PushProcess32 set_process(this); + fault_can_recover = true; + __asm__ __volatile__ ( + "jmp 1f;" + ".align 16, 0x90;" + "1:" + "movw %0, (%1);" + "jmp 2f;" + ".align 16, 0x90;" + "2:" + : + : "r"(val), "r"(ptr) + : "memory" + ); + auto ret = fault_can_recover; + fault_can_recover = false; + return ret; +} + +bool Process32::DoTryWrite(uint8_t *ptr, uint8_t val) const { + PushProcess32 set_process(this); + fault_can_recover = true; + __asm__ __volatile__ ( + "jmp 1f;" + ".align 16, 0x90;" + "1:" + "movb %0, (%1);" + "jmp 2f;" + ".align 16, 0x90;" + "2:" + : + : "r"(val), "r"(ptr) + : "memory" + ); + auto ret = fault_can_recover; + fault_can_recover = false; + return ret; +} + +// Tries to do a read of a specific size. +bool Process32::DoTryRead(const uint32_t *ptr, uint32_t *val) const { + PushProcess32 set_process(this); + fault_can_recover = true; + __asm__ __volatile__ ( + "jmp 1f;" + ".align 16, 0x90;" + "1:" + "mov (%0), %%r12d;" + "mov %%r12d, (%1);" + "jmp 2f;" + ".align 16, 0x90;" + "2:" + : + : "r"(ptr), "r"(val) + : "r12", "memory" + ); + auto ret = fault_can_recover; + fault_can_recover = false; + return ret; +} + +bool Process32::DoTryRead(const uint16_t *ptr, uint16_t *val) const { + PushProcess32 set_process(this); + fault_can_recover = true; + __asm__ __volatile__ ( + "jmp 1f;" + ".align 16, 0x90;" + "1:" + "movw (%0), %%r12w;" + "movw %%r12w, (%1);" + "jmp 2f;" + ".align 16, 0x90;" + "2:" + : + : "r"(ptr), "r"(val) + : "r12", "memory" + ); + auto ret = fault_can_recover; + fault_can_recover = false; + return ret; +} + +bool Process32::DoTryRead(const uint8_t *ptr, uint8_t *val) const { + PushProcess32 set_process(this); + fault_can_recover = true; + __asm__ __volatile__ ( + "jmp 1f;" + ".align 16, 0x90;" + "1:" + "movb (%0), %%r12b;" + "movb %%r12b, (%1);" + "jmp 2f;" + ".align 16, 0x90;" + "2:" + : + : "r"(ptr), "r"(val) + : "r12", "memory" + ); + auto ret = fault_can_recover; + fault_can_recover = false; + return ret; +} + +// Returns true if a signal handler can recover from this fault by returning. +bool Process32::RecoverFromTryReadWrite(ucontext_t *context) const { + if (!fault_can_recover) return false; + fault_can_recover = false; + auto &pc = context->uc_mcontext.gregs[REG_RIP]; + GRANARY_ASSERT(pc == (pc & ~15LL) && "Crash wasn't in a TryRead/TryWrite."); + pc += 16LL; + return true; +} + +// Initialize the register state. +void Process32::InitRegs(const Snapshot32 *snapshot) { + auto file = snapshot->file; + + regs.edi = static_cast(file->meta.gregs.rdi); + regs.esi = static_cast(file->meta.gregs.rsi); + regs.ebp = static_cast(file->meta.gregs.rbp); + regs.ebx = static_cast(file->meta.gregs.rbx); + regs.edx = static_cast(file->meta.gregs.rdx); + regs.ecx = static_cast(file->meta.gregs.rcx); + regs.eax = static_cast(file->meta.gregs.rax); + regs.esp = static_cast(file->meta.gregs.rsp); + regs.eip = static_cast(file->meta.gregs.rip); + regs.eflags = static_cast(file->meta.gregs.eflags); + + memcpy(&fpregs, &(file->meta.fpregs), sizeof fpregs); + last_branch_pc = 0; +} + +void Process32::SynchronizeRegState(ucontext_t *context) { + regs.edi = static_cast(context->uc_mcontext.gregs[REG_RDI]); + regs.esi = static_cast(context->uc_mcontext.gregs[REG_RSI]); + regs.ebp = static_cast(context->uc_mcontext.gregs[REG_RBP]); + regs.ebx = static_cast(context->uc_mcontext.gregs[REG_RBX]); + regs.edx = static_cast(context->uc_mcontext.gregs[REG_RDX]); + regs.ecx = static_cast(context->uc_mcontext.gregs[REG_RCX]); + regs.eax = static_cast(context->uc_mcontext.gregs[REG_RAX]); + regs.esp = static_cast(context->uc_mcontext.gregs[REG_R9]); + regs.eip = static_cast(context->uc_mcontext.gregs[REG_R10]); + regs.eflags = static_cast(context->uc_mcontext.gregs[REG_EFL]); +} + +void Process32::RestoreFPUState(void) const { + __asm__ __volatile__ ( + "fxrstor %0" + : + : "m"(fpregs) + : "memory"); +} + +void Process32::SaveFPUState(void) { + __asm__ __volatile__ ( + "fxsave %0" + : + : "m"(fpregs) + : "memory"); +} +} // namespace os +} // namespace granary diff --git a/granary/arch/x86/syscall.S b/granary/arch/x86/syscall.S new file mode 100644 index 0000000..bf4948e --- /dev/null +++ b/granary/arch/x86/syscall.S @@ -0,0 +1,17 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + + .file "granary/arch/x86/syscall.S" + .intel_syntax noprefix + .text + + // NextAppPC32 cache::Call(os::Process32 *process, CachePC block); + .align 16 + .globl sys_sigreturn; + .type sys_sigreturn, @function +sys_sigreturn: + .cfi_startproc + mov eax, 15 // `__NR_rt_sigreturn`. + syscall + .cfi_endproc + .size sigreturn, .-sigreturn + ud2 diff --git a/granary/arch/x86/trace.cc b/granary/arch/x86/trace.cc new file mode 100644 index 0000000..dea07d8 --- /dev/null +++ b/granary/arch/x86/trace.cc @@ -0,0 +1,77 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/code/trace.h" + +#include "granary/arch/cpu.h" + +#include "granary/code/cache.h" +#include "granary/code/instruction.h" + +namespace granary { +namespace arch { +extern const xed_state_t kXEDState64; +} // namespace arch +namespace { +enum : size_t { + kRelCallJmpSize = 5 +}; + +static void AddInstr(arch::InstructionStack &stack, const TraceEntry &entry, + CachePC next_pc, xed_iclass_enum_t iclass) { + auto instr = stack.Add(); + auto pc = cache::OffsetToPC(entry.val.cache_offset); + xed_inst1(instr, arch::kXEDState64, iclass, 64, xed_relbr(pc - next_pc, 32)); +} + +} // namespace + +void TraceRecorder::Build(void) { + if (1 >= trace_length) { + trace_length = 0; + return; + } + + cache::ClearInlineCache(); + + auto trace_size = trace_length * kRelCallJmpSize; // 5 bytes per CALL/JMP. + auto trace_begin = cache::Allocate(trace_size); + auto trace_end = trace_begin + trace_size; + + arch::InstructionStack stack; + auto i = trace_length - 1; + + // Create the intermediate trace instructions. + AddInstr(stack, entries[i], trace_end, XED_ICLASS_JMP); + for (; i-- > 0; ) { + trace_end -= kRelCallJmpSize; + AddInstr(stack, entries[i], trace_end, XED_ICLASS_CALL_NEAR); + } + + // Encode the trace instructions. + trace_end = trace_begin; + for (auto &einstr : stack) { + einstr.Encode(trace_end); + trace_end += kRelCallJmpSize; + } + + arch::SerializePipeline(); + + // Update the index with the new values. + auto last_val = entries[trace_length - 1].val; + for (i = 0; i < trace_length - 1; ++i) { + auto key = entries[i].key; + auto val = entries[i].val; + val.is_trace_head = (0 == i); + val.is_trace_block = true; + val.ends_with_syscall = last_val.ends_with_syscall; + val.has_one_successor = last_val.has_one_successor; + val.block_pc32 = last_val.block_pc32; + val.cache_offset = cache::PCToOffset(trace_begin); + trace_begin += kRelCallJmpSize; + index::Insert(key, val); + } + + trace_length = 0; +} + +} // namespace granary diff --git a/granary/arch/x86/xed-intel64.h b/granary/arch/x86/xed-intel64.h new file mode 100644 index 0000000..64dfc0d --- /dev/null +++ b/granary/arch/x86/xed-intel64.h @@ -0,0 +1,17 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_ARCH_X86_XED_INTEL64_H_ +#define GRANARY_ARCH_X86_XED_INTEL64_H_ + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wsign-conversion" +#pragma clang diagnostic ignored "-Wconversion" +#pragma clang diagnostic ignored "-Wold-style-cast" +#pragma clang diagnostic ignored "-Wdocumentation" +#pragma clang diagnostic ignored "-Wswitch-enum" +extern "C" { +#define XED_DLL +#include "../../../third_party/xed-intel64/include/xed-interface.h" +} // extern C + +#endif // GRANARY_ARCH_X86_XED_INTEL64_H_ diff --git a/granary/base/base.h b/granary/base/base.h new file mode 100644 index 0000000..e8b00cf --- /dev/null +++ b/granary/base/base.h @@ -0,0 +1,346 @@ +/* Copyright 2014 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_BASE_BASE_H_ +#define GRANARY_BASE_BASE_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +typedef long int ssize_t; + +#if defined(GRANARY_TARGET_debug) +# include +# define GRANARY_DEBUG(...) do { __VA_ARGS__ } while(false); +# define GRANARY_IF_DEBUG(...) __VA_ARGS__ +# define GRANARY_IF_DEBUG_(...) __VA_ARGS__ , +# define _GRANARY_IF_DEBUG(...) , __VA_ARGS__ +# define GRANARY_IF_DEBUG_ELSE(a, b) a +#else +# define GRANARY_DEBUG(...) +# define GRANARY_IF_DEBUG(...) +# define GRANARY_IF_DEBUG_(...) +# define _GRANARY_IF_DEBUG(...) +# define GRANARY_IF_DEBUG_ELSE(a, b) b +#endif // GRANARY_TARGET_debug + +// Serves as documentation of the key entrypoints into Granary. +#define GRANARY_ENTRYPOINT + +#define GRANARY_THREAD_LOCAL(...) __VA_ARGS__ + +#define GRANARY_EARLY_GLOBAL __attribute__((init_priority(102))) +#define GRANARY_GLOBAL __attribute__((init_priority(103))) +#define GRANARY_UNPROTECTED_GLOBAL \ + __attribute__((section(".bss.granary_unprotected"))) + +// For namespace-based `using` declarations without triggering the linter. +#define GRANARY_USING_NAMESPACE using namespace // NOLINT + +#define GRANARY_UNIQUE_SYMBOL \ + GRANARY_CAT( \ + GRANARY_CAT( \ + GRANARY_CAT(_, __LINE__), \ + GRANARY_CAT(_, __INCLUDE_LEVEL__)), \ + GRANARY_CAT(_, __COUNTER__)) + +// For use only when editing text with Eclipse CDT (my version doesn't handle +// `decltype` or `alignof` well) +#define IF_ECLIPSE_alignas(...) +#define IF_ECLIPSE_alignof(...) 16 +#ifdef GRANARY_ECLIPSE +# define alignas(...) +# define alignof(...) 16 +# define GRANARY_ENABLE_IF(...) int +# define GRANARY_IF_NOT_ECLIPSE(...) +#else +# define GRANARY_ENABLE_IF(...) __VA_ARGS__ +# define GRANARY_IF_NOT_ECLIPSE(...) __VA_ARGS__ +#endif + +# define GRANARY_IF_ASSERT(...) __VA_ARGS__ +# define GRANARY_ASSERT(...) GRANARY_ASSERT_(__VA_ARGS__) +# define GRANARY_ASSERT_(...) \ + if (!(__VA_ARGS__)) \ + granary_unreachable(#__VA_ARGS__, \ + __FILE__ ":" GRANARY_TO_STRING(__LINE__)) + +#ifdef GRANARY_ARCH_INTERNAL +# define GRANARY_ARCH_PUBLIC public +#else +# define GRANARY_ARCH_PUBLIC private +#endif + +// Marks some pointers as being internal, and convertible to void for exports. +#define GRANARY_MUTABLE mutable +#define GRANARY_POINTER(type) type +#define GRANARY_UINT32(type) type +#define GRANARY_PROTECTED public +#define GRANARY_PUBLIC public +#define GRANARY_CONST +#define GRANARY_IF_EXTERNAL(...) +#define _GRANARY_IF_EXTERNAL(...) +#define GRANARY_IF_INTERNAL(...) __VA_ARGS__ +#define _GRANARY_IF_INTERNAL(...) , __VA_ARGS__ +#define GRANARY_IF_INTERNAL_(...) __VA_ARGS__ , +#define GRANARY_EXTERNAL_DELETE + +// Name of the granary binary. +#ifndef GRANARY_NAME +# define GRANARY_NAME granary +#endif +#define GRANARY_NAME_STRING GRANARY_TO_STRING(GRANARY_NAME) + +// Static branch prediction hints. +#define GRANARY_LIKELY(x) __builtin_expect((x),1) +#define GRANARY_UNLIKELY(x) __builtin_expect((x),0) + +// Inline assembly. +#define GRANARY_INLINE_ASSEMBLY(...) __asm__ __volatile__ ( __VA_ARGS__ ) + +// Convert a sequence of symbols into a string literal. +#define GRANARY_TO_STRING__(x) #x +#define GRANARY_TO_STRING_(x) GRANARY_TO_STRING__(x) +#define GRANARY_TO_STRING(x) GRANARY_TO_STRING_(x) + +// Concatenate two symbols into one. +#define GRANARY_CAT__(x, y) x ## y +#define GRANARY_CAT_(x, y) GRANARY_CAT__(x, y) +#define GRANARY_CAT(x, y) GRANARY_CAT_(x, y) + +// Expand out into nothing. +#define GRANARY_NOTHING__ +#define GRANARY_NOTHING_ GRANARY_NOTHING__ +#define GRANARY_NOTHING GRANARY_NOTHING_ + +// Determine the number of arguments in a variadic macro argument pack. +// From: http://efesx.com/2010/07/17/variadic-macro-to-count-number-of-\ +// arguments/#comment-256 +#define GRANARY_NUM_PARAMS_(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,N,...) N +#define GRANARY_NUM_PARAMS(...) \ + GRANARY_NUM_PARAMS_(, ##__VA_ARGS__,12,11,10,9,8,7,6,5,4,3,2,1,0) + +// Splats out the arguments passed into the macro function. This assumes one +// is doing something like: `GRANARY_SPLAT((x, y))`, then what you will get +// is `x, y`. +#define GRANARY_SPLAT(params) GRANARY_PARAMS params + +// Spits back out the arguments passed into the macro function. +#define GRANARY_PARAMS(...) __VA_ARGS__ + +// Try to make sure that a function is not optimized. +#define GRANARY_DISABLE_OPTIMIZER __attribute__((used, noinline, \ + visibility ("default"))) + +// Export some function to instrumentation code. Only exported code can be +// directly invoked by instrumented code. +// +// Note: While these functions can be invoked by instrumented code, their +// code *is not* instrumented. +#define GRANARY_EXPORT_TO_INSTRUMENTATION \ + __attribute__((noinline, used, section(".text.inst_exports"))) + +// Granary function that is to be instrumented as part of a test case. +#define GRANARY_TEST_CASE \ + __attribute__((noinline, used, section(".text.test_cases"))) + +// Determine how much should be added to a value `x` in order to align `x` to +// an `align`-byte boundary. +#define GRANARY_ALIGN_FACTOR(x, align) \ + (((x) % (align)) ? ((align) - ((x) % (align))) : 0) + +// Align a value `x` to an `align`-byte boundary. +#define GRANARY_ALIGN_TO(x, align) \ + ((x) + GRANARY_ALIGN_FACTOR(x, align)) + +// Return the maximum or minimum of two values. +#define GRANARY_MIN(a, b) ((a) < (b) ? (a) : (b)) +#define GRANARY_MAX(a, b) ((a) < (b) ? (b) : (a)) + +// Disallow copying of a specific class. +#define GRANARY_DISALLOW_COPY(cls) \ + cls(const cls &) = delete; \ + cls(const cls &&) = delete + +// Disallow assigning of instances of a specific class. +#define GRANARY_DISALLOW_ASSIGN(cls) \ + void operator=(const cls &) = delete; \ + void operator=(const cls &&) = delete + +// Disallow copying and assigning of instances of a specific class. +#define GRANARY_DISALLOW_COPY_AND_ASSIGN(cls) \ + GRANARY_DISALLOW_COPY(cls); \ + GRANARY_DISALLOW_ASSIGN(cls) + +// Disallow copying of instances of a class generated by a specific +// class template. +#define GRANARY_DISALLOW_COPY_TEMPLATE(cls, params) \ + cls(const cls &) = delete; \ + cls(const cls &&) = delete + +// Disallow assigning of instances of a specific class. +#define GRANARY_DISALLOW_ASSIGN_TEMPLATE(cls, params) \ + void operator=(const cls &) = delete; \ + void operator=(const cls &&) = delete + +// Disallow copying and assigning of instances of a class generated by a +// specific class template. +#define GRANARY_DISALLOW_COPY_AND_ASSIGN_TEMPLATE(cls, params) \ + GRANARY_DISALLOW_COPY_TEMPLATE(cls, params); \ + GRANARY_DISALLOW_ASSIGN_TEMPLATE(cls, params) + + +// Mark a result / variable as being used. +#define GRANARY_UNUSED(...) (void) __VA_ARGS__ +#define GRANARY_USED(var) \ + do { \ + GRANARY_INLINE_ASSEMBLY("" :: "m"(var)); \ + GRANARY_UNUSED(var); \ + } while (0) + +#define GRANARY_COMMA() , + +// Apply a macro `pp` to each of a variable number of arguments. Separate the +// results of the macro application with `sep`. +#define GRANARY_APPLY_EACH(pp, sep, ...) \ + GRANARY_CAT(GRANARY_APPLY_EACH_, GRANARY_NUM_PARAMS(__VA_ARGS__))( \ + pp, sep, ##__VA_ARGS__) + +#define GRANARY_APPLY_EACH_1(pp, sep, a0) \ + pp(a0) + +#define GRANARY_APPLY_EACH_2(pp, sep, a0, a1) \ + pp(a0) sep() \ + pp(a1) + +#define GRANARY_APPLY_EACH_3(pp, sep, a0, a1, a2) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) + +#define GRANARY_APPLY_EACH_4(pp, sep, a0, a1, a2, a3) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) + +#define GRANARY_APPLY_EACH_5(pp, sep, a0, a1, a2, a3, a4) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) + +#define GRANARY_APPLY_EACH_6(pp, sep, a0, a1, a2, a3, a4, a5) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) sep() \ + pp(a5) + +#define GRANARY_APPLY_EACH_7(pp, sep, a0, a1, a2, a3, a4, a5, a6) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) sep() \ + pp(a5) sep() \ + pp(a6) + +#define GRANARY_APPLY_EACH_8(pp, sep, a0, a1, a2, a3, a4, a5, a6, a7) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) sep() \ + pp(a5) sep() \ + pp(a6) sep() \ + pp(a7) + +#define GRANARY_APPLY_EACH_9(pp, sep, a0, a1, a2, a3, a4, a5, a6, a7, a8) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) sep() \ + pp(a5) sep() \ + pp(a6) sep() \ + pp(a7) sep() \ + pp(a8) + +#define GRANARY_APPLY_EACH_10(pp, sep, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) sep() \ + pp(a5) sep() \ + pp(a6) sep() \ + pp(a7) sep() \ + pp(a8) sep() \ + pp(a9) + +#define GRANARY_APPLY_EACH_11(pp, sep, a0, a1, a2, a3, a4, a5,a6,a7,a8,a9,a10) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) sep() \ + pp(a5) sep() \ + pp(a6) sep() \ + pp(a7) sep() \ + pp(a8) sep() \ + pp(a9) sep() \ + pp(a10) + +#define GRANARY_APPLY_EACH_12(pp, sep, a0, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \ + pp(a0) sep() \ + pp(a1) sep() \ + pp(a2) sep() \ + pp(a3) sep() \ + pp(a4) sep() \ + pp(a5) sep() \ + pp(a6) sep() \ + pp(a7) sep() \ + pp(a8) sep() \ + pp(a9) sep() \ + pp(a10) sep() \ + pp(a11) + +// Mark a symbol as exported. +#define GRANARY_EXPORT __attribute__((visibility("default"))) + +#if !defined(__x86_64__) && !defined(__x86_64) +# error "Granary must be compiled as a 64-bit program." +#endif + +#define GRANARY_STRACE(...) \ + if (FLAGS_strace) { __VA_ARGS__ } + +namespace granary { + +typedef const uint8_t *PC; +typedef uint8_t *CachePC; +typedef int32_t CacheOffset; +typedef void *Addr64; +typedef uint8_t *AppPC64; +typedef uint32_t Addr32; +typedef Addr32 AppPC32; + +} // namespace granary + +#include "granary/base/breakpoint.h" +#include "granary/base/interrupt.h" + +#endif // GRANARY_BASE_BASE_H_ diff --git a/granary/base/breakpoint.cc b/granary/base/breakpoint.cc new file mode 100644 index 0000000..0bb7c87 --- /dev/null +++ b/granary/base/breakpoint.cc @@ -0,0 +1,71 @@ +/* Copyright 2014 Peter Goodman, all rights reserved. */ + +#include "granary/base/base.h" + +#include +#include +#include +#include +#include + +extern "C" { + +extern intptr_t granary_crash_pc = 0; +extern intptr_t granary_crash_addr = 0; + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wmissing-noreturn" +void granary_unreachable(const char *error, const char *loc) { +#if defined(GRANARY_TARGET_debug) + granary::Uninterruptible disable_interrupts; + auto fd = open("/data/grr_crashes", O_CREAT | O_WRONLY | O_APPEND, 0666); + if (-1 != fd) { + write(fd, "Assertion failed:\n", 18); + if (error) { + write(fd, error, strlen(error)); + } + write(fd, "\n", 1); + if (loc) { + write(fd, loc, strlen(loc)); + write(fd, "\n", 1); + } + + char buf[128]; + if (granary_crash_pc) { + write(fd, buf, + static_cast(sprintf(buf, "Granary crash PC = 0x%lx\n", + granary_crash_pc))); + } + + if (granary_crash_addr) { + write(fd, buf, + static_cast(sprintf(buf, "Granary crash ADDR = 0x%lx\n", + granary_crash_addr))); + + } + +#ifdef GRANARY_TARGET_debug + write(STDERR_FILENO, buf, + static_cast(sprintf(buf, "PID to attach GDB: %d\n", getpid()))); + read(STDIN_FILENO, buf, 1); +#else + write(fd, "\n", 1); + fsync(fd); +#endif + close(fd); + } +#else + GRANARY_UNUSED(error); + GRANARY_UNUSED(loc); +#endif + exit(EXIT_FAILURE); +} +#pragma clang diagnostic pop + +void granary_curiosity(const char *cond) { + if (cond) { + GRANARY_USED(cond); + } +} + +} // extern C diff --git a/granary/base/breakpoint.h b/granary/base/breakpoint.h new file mode 100644 index 0000000..ddcee06 --- /dev/null +++ b/granary/base/breakpoint.h @@ -0,0 +1,21 @@ +/* Copyright 2014 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_BASE_BREAKPOINT_H_ +#define GRANARY_BASE_BREAKPOINT_H_ + +#include "granary/base/base.h" + +extern "C" { + +extern intptr_t granary_crash_pc; +extern intptr_t granary_crash_addr; + +// Note: Not marked as no-return so that compile won't warn us when we actually +// have some kind of "backup" case in the event of the assertion. +void granary_unreachable(const char *cond, const char *loc); + +void granary_curiosity(const char *cond=nullptr); + +} // extern C + +#endif // GRANARY_BASE_BREAKPOINT_H_ diff --git a/granary/base/compiler.h b/granary/base/compiler.h new file mode 100644 index 0000000..18c5571 --- /dev/null +++ b/granary/base/compiler.h @@ -0,0 +1,738 @@ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wmacro-redefined" +#pragma clang diagnostic ignored "-Wbuiltin-macro-redefined" + + + +// From G++-4.9 with `features.h`. +#define __DBL_MIN_EXP__ (-1021) +#define __cpp_attributes 200809 +#define __UINT_LEAST16_MAX__ 65535 +#define __ATOMIC_ACQUIRE 2 +#define __FLT_MIN__ 1.17549435082228750797e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __UINT_LEAST8_TYPE__ unsigned char +#define __flexarr [] +#define __stub_fchflags +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 255 +#define __WINT_MAX__ 4294967295U +//#define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) +#define _XOPEN_SOURCE 700 +#define __cpp_static_assert 200410 +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __SIZE_MAX__ 18446744073709551615UL +#define __stub_putmsg +#define __WCHAR_MAX__ 2147483647 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544177e-324L) +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __USE_BSD 1 +#define __FLT_EVAL_METHOD__ 0 +#define __ASMNAME2(prefix,cname) __STRING (prefix) cname +#define __unix__ 1 +#define __cpp_binary_literals 201304 +#define __stub_setlogin +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __SYSCALL_WORDSIZE 64 +#define __x86_64 1 +#define __cpp_variadic_templates 200704 +#define __UINT_FAST64_MAX__ 18446744073709551615UL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __attribute_alloc_size__(params) __attribute__ ((__alloc_size__ params)) +#define __GNUC_PATCHLEVEL__ 2 +#define __UINT_FAST8_MAX__ 255 +#define __LEAF , __leaf__ +#define __LDBL_REDIR1(name,proto,alias) name proto +#define __has_include(STR) __has_include__(STR) +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __UINT_LEAST64_MAX__ 18446744073709551615UL +#define __always_inline __inline __attribute__ ((__always_inline__)) +#define __SHRT_MAX__ 32767 +#define __LDBL_MAX__ 1.18973149535723176502e+4932L +#define __bos0(ptr) __builtin_object_size (ptr, 0) +#define __fortify_function __extern_always_inline __attribute_artificial__ +#define __UINT_LEAST8_MAX__ 255 +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __ptr_t void * +#define __USE_ISOCXX11 1 +#define __UINTMAX_TYPE__ long unsigned int +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __stub_sigreturn +#define __unix 1 +#define __UINT32_MAX__ 4294967295U +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __LDBL_MAX_EXP__ 16384 +#define _ATFILE_SOURCE 1 +#define __WINT_MIN__ 0U +#define __linux__ 1 +#define __LDBL_REDIR_NTH(name,proto) name proto __THROW +#define __SCHAR_MAX__ 127 +#define __USING_NAMESPACE_STD(name) +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __KERNEL_STRICT_NAMES +#define __INT64_C(c) c ## L +#define __NTH(fct) __LEAF_ATTR fct throw () +#define __DBL_DIG__ 15 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define _POSIX_SOURCE 1 +#define __SIZEOF_INT__ 4 +#define __SIZEOF_POINTER__ 8 +#define _DEFAULT_SOURCE 1 +#define __attribute_used__ __attribute__ ((__used__)) +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +//#define __GLIBC__ 2 +#define __END_DECLS } +#define __CONCAT(x,y) x ## y +#define __STDC_HOSTED__ 1 +#define __LDBL_HAS_INFINITY__ 1 +#define __GNU_LIBRARY__ 6 +#define __FLT_EPSILON__ 1.19209289550781250000e-7F +#define __GXX_WEAK__ 1 +#define __LDBL_MIN__ 3.36210314311209350626e-4932L +#define __nonnull(params) __attribute__ ((__nonnull__ params)) +#define __DEC32_MAX__ 9.999999E96DF +#define __INT32_MAX__ 2147483647 +#define __SIZEOF_LONG__ 8 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201103L +#define __UINT16_C(c) c +#define __DECIMAL_DIG__ 21 +#define __USE_FORTIFY_LEVEL 0 +#define __gnu_linux__ 1 +#define _LARGEFILE_SOURCE 1 +#define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__)) +#define __has_include_next(STR) __has_include_next__(STR) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __USE_ISOC11 1 +#define __attribute_const__ __attribute__ ((__const__)) +#define __THROW throw () +#define __GNUC__ 4 +#define __GXX_RTTI 1 +#define __MMX__ 1 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __USE_SVID 1 +#define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW +#define __BIGGEST_ALIGNMENT__ 16 +#define __USE_ISOC95 1 +#define __USE_ISOC99 1 +#define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) +#define __DBL_MAX__ double(1.79769313486231570815e+308L) +#define __cpp_raw_strings 200710 +#define __INT_FAST32_MAX__ 9223372036854775807L +#define __DBL_HAS_INFINITY__ 1 +#define __USE_LARGEFILE 1 +#define __INT64_MAX__ 9223372036854775807L +#define __USE_XOPEN 1 +#define __USE_XOPEN2K 1 +#define __DEC32_MIN_EXP__ (-94) +#define __END_NAMESPACE_C99 +#define _ISOC11_SOURCE 1 +#define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b))) +#define __INT_FAST16_TYPE__ long int +#define __STRICT_ANSI__ 1 +#define __USE_POSIX199506 1 +#define _FEATURES_H 1 +#define __LDBL_HAS_DENORM__ 1 +#define __stub_getmsg +#define __stub_fattach +#define __cplusplus 201300L +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_LEAST32_MAX__ 2147483647 +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __glibc_unlikely(cond) __builtin_expect ((cond), 0) +#define __DBL_MAX_EXP__ 1024 +#define __DEC128_EPSILON__ 1E-33DL +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 9223372036854775807L +#define __amd64 1 +#define __STDC_NO_THREADS__ 1 +#define __BEGIN_NAMESPACE_STD +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __GNUG__ 4 +#define __LONG_LONG_MAX__ 9223372036854775807LL +#define __SIZEOF_SIZE_T__ 8 +#define __cpp_rvalue_reference 200610 +#define __SIZEOF_WINT_T__ 4 +#define __stub_bdflush +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __GXX_ABI_VERSION 1002 +#define __USE_GNU 1 +#define __FLT_MIN_EXP__ (-125) +#define __extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__)) +#define __cpp_lambdas 200907 +#define __INT_FAST64_TYPE__ long int +#define __DBL_MIN__ double(2.22507385850720138309e-308L) +#define __USE_XOPEN2KXSI 1 +#define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) +#define __LP64__ 1 +#define __USE_UNIX98 1 +#define __LEAF_ATTR __attribute__ ((__leaf__)) +#define __DECIMAL_BID_FORMAT__ 1 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 65535 +#define __DBL_HAS_DENORM__ 1 +#define __attribute_pure__ __attribute__ ((__pure__)) +#define __USE_POSIX2 1 +#define __UINT8_TYPE__ unsigned char +#define __REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias) +#define __NO_INLINE__ 1 +#define __warndecl(name,msg) extern void name (void) __attribute__((__warning__ (msg))) +#define __FLT_MANT_DIG__ 24 +#define __VERSION__ "4.9.2" +#define __UINT64_C(c) c ## UL +#define _SYS_CDEFS_H 1 +#define __cpp_unicode_characters 200704 +#define _STDC_PREDEF_H 1 +#define __USE_XOPEN2K8 1 +#define __cpp_decltype_auto 201304 +#define _BSD_SOURCE 1 +#define __STRING(x) #x +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __stub_gtty +#define __stub_sstk +#define __wur +#define __STDC_IEC_559_COMPLEX__ 1 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define _ISOC95_SOURCE 1 +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __USE_POSIX 1 +#define __INT16_MAX__ 32767 +#define __THROWNL throw () +#define __SIZE_TYPE__ long unsigned int +#define __UINT64_MAX__ 18446744073709551615UL +#define __va_arg_pack_len() __builtin_va_arg_pack_len () +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309 +#define __ELF__ 1 +#define __warnattr(msg) __attribute__((__warning__ (msg))) +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443401e-19L +#define __UINTMAX_C(c) c ## UL +#define _POSIX_C_SOURCE 200809L +#define __long_double_t long double +#define __k8 1 +#define __LDBL_REDIR(name,proto) name proto +#define __SIG_ATOMIC_MAX__ 2147483647 +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __SIZEOF_PTRDIFF_T__ 8 +#define __errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg))) +#define _XOPEN_SOURCE_EXTENDED 1 +#define __restrict_arr +#define __attribute_artificial__ __attribute__ ((__artificial__)) +#define __USE_MISC 1 +#define __x86_64__ 1 +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 9223372036854775807L +#define __stub_revoke +#define __UINT_FAST32_MAX__ 18446744073709551615UL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 9223372036854775807L +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __cpp_unicode_literals 200710 +#define __UINT_FAST16_TYPE__ long unsigned int +#define __cpp_attribute_deprecated 201309 +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __USING_NAMESPACE_C99(name) +#define __INT_LEAST16_MAX__ 32767 +#define __stub_lchmod +#define __DEC64_MANT_DIG__ 16 +#define __UINT_LEAST32_MAX__ 4294967295U +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 127 +#define __PMT(args) args +#define __INTPTR_MAX__ 9223372036854775807L +#define __SSE2__ 1 +#define __EXCEPTIONS 1 +#define __WORDSIZE 64 +#define __BEGIN_DECLS extern "C" { +#define __LDBL_MANT_DIG__ 64 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __cpp_return_type_deduction 201304 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __SIZEOF_FLOAT__ 4 +#define __stub_fdetach +#define __UINTPTR_MAX__ 18446744073709551615UL +#define __DEC64_MIN_EXP__ (-382) +#define __stub_chflags +#define __cpp_decltype 200707 +#define __INT_FAST64_MAX__ 9223372036854775807L +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_DIG__ 6 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __LDBL_REDIR_DECL(name) +#define __INT_MAX__ 2147483647 +#define __amd64__ 1 +#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) +#define __USE_LARGEFILE64 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __INT_LEAST64_MAX__ 9223372036854775807L +//#define __GLIBC_MINOR__ 19 +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __REDIRECT_NTHNL(name,proto,alias) name proto __THROWNL __asm__ (__ASMNAME (#alias)) +#define __INT_LEAST8_MAX__ 127 +#define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +#define __USE_POSIX199309 1 +#define __SSP__ 1 +#define __SIZEOF_INT128__ 16 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308085e-16L) +#define __stub_stty +#define _SVID_SOURCE 1 +#define _LP64 1 +#define __REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias) +#define __UINT8_C(c) c +#define __INT_LEAST32_TYPE__ int +#define __SIZEOF_WCHAR_T__ 4 +#define __UINT64_TYPE__ long unsigned int +#define _ISOC99_SOURCE 1 +#define __REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias)) +#define __END_NAMESPACE_STD +#define _LARGEFILE64_SOURCE 1 +#define __INT_FAST8_TYPE__ signed char +#define __GNUC_STDC_INLINE__ 1 +#define __WORDSIZE_TIME64_COMPAT32 1 +#define __DBL_DECIMAL_DIG__ 17 +#define __FXSR__ 1 +#define __DEC_EVAL_METHOD__ 2 +#define __cpp_runtime_arrays 201304 +#define __USE_XOPEN2K8XSI 1 +#define __UINT32_C(c) c ## U +#define __INTMAX_MAX__ 9223372036854775807L +#define __cpp_alias_templates 200704 +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT_DENORM_MIN__ 1.40129846432481707092e-45F +#define __BEGIN_NAMESPACE_C99 +#define __INT8_MAX__ 127 +#define __UINT_FAST32_TYPE__ long unsigned int +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859812e+38F +#define __cpp_constexpr 200704 +#define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __INTMAX_TYPE__ long int +#define __DEC128_MAX_EXP__ 6145 +#define __va_arg_pack() __builtin_va_arg_pack () +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 9 +#define __UINTMAX_MAX__ 18446744073709551615UL +#define __DEC32_MANT_DIG__ 7 +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L +#define __USE_XOPEN_EXTENDED 1 +#define __INT16_C(c) c +#define __cpp_generic_lambdas 201304 +#define __STDC__ 1 +#define __attribute_malloc__ __attribute__ ((__malloc__)) +#define __PTRDIFF_TYPE__ long int +#define __attribute_noinline__ __attribute__ ((__noinline__)) +#define __ATOMIC_SEQ_CST 5 +#define __UINT32_TYPE__ unsigned int +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __attribute_deprecated__ __attribute__ ((__deprecated__)) +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809 +#define __USE_ATFILE 1 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __LDBL_DIG__ 18 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 18446744073709551615UL +#define __FLT_MIN_10_EXP__ (-37) +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __glibc_likely(cond) __builtin_expect ((cond), 1) +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __P(args) args +#define __cpp_init_captures 201304 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 + + +// From clang++-3.5 +#define _GNU_SOURCE 1 +#define _LP64 1 +#define __ATOMIC_ACQUIRE 2 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_CONSUME 1 +#define __ATOMIC_RELAXED 0 +#define __ATOMIC_RELEASE 3 +#define __ATOMIC_SEQ_CST 5 +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __CHAR16_TYPE__ unsigned short +#define __CHAR32_TYPE__ unsigned int +#define __CHAR_BIT__ 8 +#define __CONSTANT_CFSTRINGS__ 1 +#define __DBL_DENORM_MIN__ 4.9406564584124654e-324 +#define __DBL_DIG__ 15 +#define __DBL_EPSILON__ 2.2204460492503131e-16 +#define __DBL_HAS_DENORM__ 1 +#define __DBL_HAS_INFINITY__ 1 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __DBL_MANT_DIG__ 53 +#define __DBL_MAX_10_EXP__ 308 +#define __DBL_MAX_EXP__ 1024 +#define __DBL_MAX__ 1.7976931348623157e+308 +#define __DBL_MIN_10_EXP__ (-307) +#define __DBL_MIN_EXP__ (-1021) +#define __DBL_MIN__ 2.2250738585072014e-308 +#define __DECIMAL_DIG__ 21 +#define __DEPRECATED 1 +#define __ELF__ 1 +#define __EXCEPTIONS 1 +#define __FINITE_MATH_ONLY__ 0 +#define __FLT_DENORM_MIN__ 1.40129846e-45F +#define __FLT_DIG__ 6 +#define __FLT_EPSILON__ 1.19209290e-7F +#define __FLT_EVAL_METHOD__ 0 +#define __FLT_HAS_DENORM__ 1 +#define __FLT_HAS_INFINITY__ 1 +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MANT_DIG__ 24 +#define __FLT_MAX_10_EXP__ 38 +#define __FLT_MAX_EXP__ 128 +#define __FLT_MAX__ 3.40282347e+38F +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT_MIN_EXP__ (-125) +#define __FLT_MIN__ 1.17549435e-38F +#define __FLT_RADIX__ 2 +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GNUC_GNU_INLINE__ 1 +#define __GNUC_MINOR__ 2 +#define __GNUC_PATCHLEVEL__ 1 +#define __GNUC__ 4 +#define __GNUG__ 4 +#define __GXX_ABI_VERSION 1002 +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __GXX_RTTI 1 +#define __GXX_WEAK__ 1 +#define __INT16_C_SUFFIX__ +#define __INT16_FMTd__ "hd" +#define __INT16_FMTi__ "hi" +#define __INT16_MAX__ 32767 +#define __INT16_TYPE__ short +#define __INT32_C_SUFFIX__ +#define __INT32_FMTd__ "d" +#define __INT32_FMTi__ "i" +#define __INT32_MAX__ 2147483647 +#define __INT32_TYPE__ int +#define __INT64_C_SUFFIX__ L +#define __INT64_FMTd__ "ld" +#define __INT64_FMTi__ "li" +#define __INT64_MAX__ 9223372036854775807L +#define __INT64_TYPE__ long int +#define __INT8_C_SUFFIX__ +#define __INT8_FMTd__ "hhd" +#define __INT8_FMTi__ "hhi" +#define __INT8_MAX__ 127 +#define __INT8_TYPE__ signed char +#define __INTMAX_C_SUFFIX__ L +#define __INTMAX_FMTd__ "ld" +#define __INTMAX_FMTi__ "li" +#define __INTMAX_MAX__ 9223372036854775807L +#define __INTMAX_TYPE__ long int +#define __INTMAX_WIDTH__ 64 +#define __INTPTR_FMTd__ "ld" +#define __INTPTR_FMTi__ "li" +#define __INTPTR_MAX__ 9223372036854775807L +#define __INTPTR_TYPE__ long int +#define __INTPTR_WIDTH__ 64 +#define __INT_FAST16_FMTd__ "hd" +#define __INT_FAST16_FMTi__ "hi" +#define __INT_FAST16_MAX__ 32767 +#define __INT_FAST16_TYPE__ short +#define __INT_FAST32_FMTd__ "d" +#define __INT_FAST32_FMTi__ "i" +#define __INT_FAST32_MAX__ 2147483647 +#define __INT_FAST32_TYPE__ int +#define __INT_FAST64_FMTd__ "ld" +#define __INT_FAST64_FMTi__ "li" +#define __INT_FAST64_MAX__ 9223372036854775807L +#define __INT_FAST64_TYPE__ long int +#define __INT_FAST8_FMTd__ "hhd" +#define __INT_FAST8_FMTi__ "hhi" +#define __INT_FAST8_MAX__ 127 +#define __INT_FAST8_TYPE__ signed char +#define __INT_LEAST16_FMTd__ "hd" +#define __INT_LEAST16_FMTi__ "hi" +#define __INT_LEAST16_MAX__ 32767 +#define __INT_LEAST16_TYPE__ short +#define __INT_LEAST32_FMTd__ "d" +#define __INT_LEAST32_FMTi__ "i" +#define __INT_LEAST32_MAX__ 2147483647 +#define __INT_LEAST32_TYPE__ int +#define __INT_LEAST64_FMTd__ "ld" +#define __INT_LEAST64_FMTi__ "li" +#define __INT_LEAST64_MAX__ 9223372036854775807L +#define __INT_LEAST64_TYPE__ long int +#define __INT_LEAST8_FMTd__ "hhd" +#define __INT_LEAST8_FMTi__ "hhi" +#define __INT_LEAST8_MAX__ 127 +#define __INT_LEAST8_TYPE__ signed char +#define __INT_MAX__ 2147483647 +#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L +#define __LDBL_DIG__ 18 +#define __LDBL_EPSILON__ 1.08420217248550443401e-19L +#define __LDBL_HAS_DENORM__ 1 +#define __LDBL_HAS_INFINITY__ 1 +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __LDBL_MANT_DIG__ 64 +#define __LDBL_MAX_10_EXP__ 4932 +#define __LDBL_MAX_EXP__ 16384 +#define __LDBL_MAX__ 1.18973149535723176502e+4932L +#define __LDBL_MIN_10_EXP__ (-4931) +#define __LDBL_MIN_EXP__ (-16381) +#define __LDBL_MIN__ 3.36210314311209350626e-4932L +#define __LITTLE_ENDIAN__ 1 +#define __LONG_LONG_MAX__ 9223372036854775807LL +#define __LONG_MAX__ 9223372036854775807L +#define __LP64__ 1 +#define __MMX__ 1 +#define __NO_INLINE__ 1 +#define __NO_MATH_INLINES 1 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __ORDER_PDP_ENDIAN__ 3412 +#define __POINTER_WIDTH__ 64 +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __PTRDIFF_FMTd__ "ld" +#define __PTRDIFF_FMTi__ "li" +#define __PTRDIFF_MAX__ 9223372036854775807L +#define __PTRDIFF_TYPE__ long int +#define __PTRDIFF_WIDTH__ 64 +#define __REGISTER_PREFIX__ +#define __SCHAR_MAX__ 127 +#define __SHRT_MAX__ 32767 +#define __SIG_ATOMIC_MAX__ 2147483647 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __SIZEOF_DOUBLE__ 8 +#define __SIZEOF_FLOAT__ 4 +#define __SIZEOF_INT128__ 16 +#define __SIZEOF_INT__ 4 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __SIZEOF_LONG_LONG__ 8 +#define __SIZEOF_LONG__ 8 +#define __SIZEOF_POINTER__ 8 +#define __SIZEOF_PTRDIFF_T__ 8 +#define __SIZEOF_SHORT__ 2 +#define __SIZEOF_SIZE_T__ 8 +#define __SIZEOF_WCHAR_T__ 4 +#define __SIZEOF_WINT_T__ 4 +#define __SIZE_FMTX__ "lX" +#define __SIZE_FMTo__ "lo" +#define __SIZE_FMTu__ "lu" +#define __SIZE_FMTx__ "lx" +#define __SIZE_MAX__ 18446744073709551615UL +#define __SIZE_TYPE__ long unsigned int +#define __SIZE_WIDTH__ 64 +#define __SSE2_MATH__ 1 +#define __SSE2__ 1 +#define __SSE_MATH__ 1 +#define __SSE__ 1 +#define __STDC_HOSTED__ 1 +#define __STDC_UTF_16__ 1 +#define __STDC_UTF_32__ 1 +#define __STDC__ 1 +#define __STRICT_ANSI__ 1 +#define __UINT16_C_SUFFIX__ +#define __UINT16_FMTX__ "hX" +#define __UINT16_FMTo__ "ho" +#define __UINT16_FMTu__ "hu" +#define __UINT16_FMTx__ "hx" +#define __UINT16_MAX__ 65535 +#define __UINT16_TYPE__ unsigned short +#define __UINT32_C_SUFFIX__ U +#define __UINT32_FMTX__ "X" +#define __UINT32_FMTo__ "o" +#define __UINT32_FMTu__ "u" +#define __UINT32_FMTx__ "x" +#define __UINT32_MAX__ 4294967295U +#define __UINT32_TYPE__ unsigned int +#define __UINT64_C_SUFFIX__ UL +#define __UINT64_FMTX__ "lX" +#define __UINT64_FMTo__ "lo" +#define __UINT64_FMTu__ "lu" +#define __UINT64_FMTx__ "lx" +#define __UINT64_MAX__ 18446744073709551615UL +#define __UINT64_TYPE__ long unsigned int +#define __UINT8_C_SUFFIX__ +#define __UINT8_FMTX__ "hhX" +#define __UINT8_FMTo__ "hho" +#define __UINT8_FMTu__ "hhu" +#define __UINT8_FMTx__ "hhx" +#define __UINT8_MAX__ 255 +#define __UINT8_TYPE__ unsigned char +#define __UINTMAX_C_SUFFIX__ UL +#define __UINTMAX_FMTX__ "lX" +#define __UINTMAX_FMTo__ "lo" +#define __UINTMAX_FMTu__ "lu" +#define __UINTMAX_FMTx__ "lx" +#define __UINTMAX_MAX__ 18446744073709551615UL +#define __UINTMAX_TYPE__ long unsigned int +#define __UINTMAX_WIDTH__ 64 +#define __UINTPTR_FMTX__ "lX" +#define __UINTPTR_FMTo__ "lo" +#define __UINTPTR_FMTu__ "lu" +#define __UINTPTR_FMTx__ "lx" +#define __UINTPTR_MAX__ 18446744073709551615UL +#define __UINTPTR_TYPE__ long unsigned int +#define __UINTPTR_WIDTH__ 64 +#define __UINT_FAST16_FMTX__ "hX" +#define __UINT_FAST16_FMTo__ "ho" +#define __UINT_FAST16_FMTu__ "hu" +#define __UINT_FAST16_FMTx__ "hx" +#define __UINT_FAST16_MAX__ 65535 +#define __UINT_FAST16_TYPE__ unsigned short +#define __UINT_FAST32_FMTX__ "X" +#define __UINT_FAST32_FMTo__ "o" +#define __UINT_FAST32_FMTu__ "u" +#define __UINT_FAST32_FMTx__ "x" +#define __UINT_FAST32_MAX__ 4294967295U +#define __UINT_FAST32_TYPE__ unsigned int +#define __UINT_FAST64_FMTX__ "lX" +#define __UINT_FAST64_FMTo__ "lo" +#define __UINT_FAST64_FMTu__ "lu" +#define __UINT_FAST64_FMTx__ "lx" +#define __UINT_FAST64_MAX__ 18446744073709551615UL +#define __UINT_FAST64_TYPE__ long unsigned int +#define __UINT_FAST8_FMTX__ "hhX" +#define __UINT_FAST8_FMTo__ "hho" +#define __UINT_FAST8_FMTu__ "hhu" +#define __UINT_FAST8_FMTx__ "hhx" +#define __UINT_FAST8_MAX__ 255 +#define __UINT_FAST8_TYPE__ unsigned char +#define __UINT_LEAST16_FMTX__ "hX" +#define __UINT_LEAST16_FMTo__ "ho" +#define __UINT_LEAST16_FMTu__ "hu" +#define __UINT_LEAST16_FMTx__ "hx" +#define __UINT_LEAST16_MAX__ 65535 +#define __UINT_LEAST16_TYPE__ unsigned short +#define __UINT_LEAST32_FMTX__ "X" +#define __UINT_LEAST32_FMTo__ "o" +#define __UINT_LEAST32_FMTu__ "u" +#define __UINT_LEAST32_FMTx__ "x" +#define __UINT_LEAST32_MAX__ 4294967295U +#define __UINT_LEAST32_TYPE__ unsigned int +#define __UINT_LEAST64_FMTX__ "lX" +#define __UINT_LEAST64_FMTo__ "lo" +#define __UINT_LEAST64_FMTu__ "lu" +#define __UINT_LEAST64_FMTx__ "lx" +#define __UINT_LEAST64_MAX__ 18446744073709551615UL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __UINT_LEAST8_FMTX__ "hhX" +#define __UINT_LEAST8_FMTo__ "hho" +#define __UINT_LEAST8_FMTu__ "hhu" +#define __UINT_LEAST8_FMTx__ "hhx" +#define __UINT_LEAST8_MAX__ 255 +#define __UINT_LEAST8_TYPE__ unsigned char +#define __USER_LABEL_PREFIX__ +#define __VERSION__ "4.2.1 Compatible Ubuntu Clang 3.5.0 (tags/RELEASE_350/final)" +#define __WCHAR_MAX__ 2147483647 +#define __WCHAR_TYPE__ int +#define __WCHAR_WIDTH__ 32 +#define __WINT_TYPE__ unsigned int +#define __WINT_UNSIGNED__ 1 +#define __WINT_WIDTH__ 32 +#define __amd64 1 +#define __amd64__ 1 +#define __clang__ 1 +#define __clang_major__ 3 +#define __clang_minor__ 5 +#define __clang_patchlevel__ 0 +#define __clang_version__ "3.5.0 (tags/RELEASE_350/final)" +#define __cplusplus 201402L +#define __cpp_aggregate_nsdmi 201304 +#define __cpp_attributes 200809 +#define __cpp_binary_literals 201304 +#define __cpp_constexpr 201304 +#define __cpp_decltype 200707 +#define __cpp_decltype_auto 201304 +#define __cpp_generic_lambdas 201304 +#define __cpp_init_captures 201304 +#define __cpp_lambdas 200907 +#define __cpp_raw_strings 200710 +#define __cpp_return_type_deduction 201304 +#define __cpp_rvalue_references 200610 +#define __cpp_static_assert 200410 +#define __cpp_unicode_characters 200704 +#define __cpp_unicode_literals 200710 +#define __cpp_user_defined_literals 200809 +#define __cpp_variable_templates 201304 +#define __cpp_variadic_templates 200704 +#define __gnu_linux__ 1 +#define __k8 1 +#define __k8__ 1 +#define __linux 1 +#define __linux__ 1 +#define __llvm__ 1 +#define __private_extern__ extern +#define __tune_k8__ 1 +#define __unix 1 +#define __unix__ 1 +#define __x86_64 1 +#define __x86_64__ 1 + + +#pragma clang diagnostic pop diff --git a/granary/base/interrupt.cc b/granary/base/interrupt.cc new file mode 100644 index 0000000..6e839eb --- /dev/null +++ b/granary/base/interrupt.cc @@ -0,0 +1,104 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/base/base.h" + +#include +#include + +#include + +namespace granary { +namespace { + +static detail::InterruptState *gInterruptState = nullptr; + +} // namespace +namespace detail { + +InterruptState::InterruptState(bool is_interruptible_, bool is_ignorable_) + : is_interruptible(is_interruptible_), + is_ignorable(is_ignorable_), + is_done(false), + pending_signal(0), + prev_state(gInterruptState) { + + // Down-propagate if we've entered an interruptible region, but only deliver + // the signal at the end. + if (is_interruptible && prev_state && prev_state->pending_signal) { + pending_signal = prev_state->pending_signal; + prev_state->pending_signal = 0; + } + + gInterruptState = this; +} + +InterruptState::~InterruptState(void) { + + // We've got a pending signal that we haven't handled yet. Either handle it + // or up-propagate it. + if (pending_signal && !is_done) { + if (!is_interruptible) { + if (prev_state && !prev_state->pending_signal) { + prev_state->pending_signal = pending_signal; + } + pending_signal = 0; + is_done = true; + } else { + is_done = true; + raise(pending_signal); + + //GRANARY_ASSERT(false && "Unable to deliver pending signal (2)."); + } + } + + gInterruptState = prev_state; +} + +} // namespace detail + +bool IsInterruptible(void) { + return !gInterruptState || gInterruptState->is_interruptible; +} + +void QueueInterrupt(int signal) { + GRANARY_ASSERT(gInterruptState && "Can't queue interrupt."); + if (!gInterruptState->is_ignorable) { + gInterruptState->pending_signal = signal; + } +} + +bool HasPendingInterrupt(void) { + for (auto state = gInterruptState; state; state = state->prev_state) { + if (state->pending_signal) { + return true; + } + } + return false; +} + +void MutePendingInterrupt(void) { + for (auto state = gInterruptState; state; state = state->prev_state) { + if (state->pending_signal) { + state->pending_signal = 0; + } + } +} + +void NonMaskableInterrupt(void) { + auto sig = SIGUSR1; + + // If there's a pending signal, then deliver it; otherwise, deliver the NMI. + for (auto state = gInterruptState; state; state = state->prev_state) { + if (state->pending_signal) { + sig = state->pending_signal; + state->pending_signal = 0; + gInterruptState->is_interruptible = true; + } + } + raise(sig); + + GRANARY_ASSERT(false && "Unable to raise non-maskable interrupt."); + __builtin_unreachable(); +} + +} // namespace granary diff --git a/granary/base/interrupt.h b/granary/base/interrupt.h new file mode 100644 index 0000000..86f42e5 --- /dev/null +++ b/granary/base/interrupt.h @@ -0,0 +1,67 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_BASE_INTERRUPT_H_ +#define GRANARY_BASE_INTERRUPT_H_ + +namespace granary { +namespace detail { + +class InterruptState { + public: + explicit InterruptState(bool is_interruptible_, bool is_ignorable_); + ~InterruptState(void); + + bool is_interruptible; + bool is_ignorable; + bool is_done; + int pending_signal; + InterruptState *prev_state; + + private: + InterruptState(void) = delete; + + GRANARY_DISALLOW_COPY_AND_ASSIGN(InterruptState); +}; + +} // namespace + +bool IsInterruptible(void); +void QueueInterrupt(int signal); +bool HasPendingInterrupt(void); +void MutePendingInterrupt(void); +[[noreturn]] void NonMaskableInterrupt(void); + +class Interruptible : public detail::InterruptState { + public: + inline Interruptible(void) + : detail::InterruptState(true, false) {} + + ~Interruptible(void) = default; + + private: + GRANARY_DISALLOW_COPY_AND_ASSIGN(Interruptible); +}; + +class Uninterruptible : public detail::InterruptState { + public: + inline Uninterruptible(void) + : detail::InterruptState(false, false) {} + + ~Uninterruptible(void) = default; + + GRANARY_DISALLOW_COPY_AND_ASSIGN(Uninterruptible); +}; + +class Ignorable : public detail::InterruptState { + public: + inline Ignorable(void) + : detail::InterruptState(false, true) {} + + ~Ignorable(void) = default; + + private: + GRANARY_DISALLOW_COPY_AND_ASSIGN(Ignorable); +}; +} // namespace granary + +#endif // GRANARY_BASE_INTERRUPT_H_ diff --git a/granary/code/block.cc b/granary/code/block.cc new file mode 100644 index 0000000..f5b5697 --- /dev/null +++ b/granary/code/block.cc @@ -0,0 +1,124 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include + +#include "granary/code/cache.h" +#include "granary/code/block.h" + +DEFINE_int32(max_instructions_per_block, 32, + "Maximum number of instructions per basic block."); + +namespace granary { + +// Initialize a block. +Block::Block(void) + : start_app_pc(0), + end_app_pc(0), + num_app_instructions(0), + has_syscall(false), + has_error(false), + app_instructions(), + cache_instructions() {} + +AppPC32 Block::StartPC(void) const { + return start_app_pc; +} + +AppPC32 Block::EndPC(void) const { + return end_app_pc; +} + +size_t Block::NumInstructions(void) const { + return num_app_instructions; +} + +size_t Block::NumBytes(void) const { + return static_cast(end_app_pc - start_app_pc); +} + +// Return the first instruction of the block. +Instruction *Block::FirstInstruction(void) { + return &(app_instructions[0]); +} + +Instruction *Block::LastInstruction(void) { + return &(app_instructions[num_app_instructions - 1]); +} + +// Iterate over application instructions. +InstructionIterator Block::begin(void) { + return InstructionIterator(FirstInstruction()); +} + +InstructionIterator Block::end(void) { + return InstructionIterator(LastInstruction() + 1); +} + +ReverseInstructionIterator Block::rbegin(void) { + return ReverseInstructionIterator(LastInstruction()); +} + +ReverseInstructionIterator Block::rend(void) { + return ReverseInstructionIterator(FirstInstruction() - 1); +} + +namespace { + +// Returns true if `instr` should mark the end of a block. +static bool AtBlockEnd(const Instruction &instr) { + return instr.IsBranch() || instr.IsJump() || + instr.IsFunctionCall() || instr.IsFunctionReturn() || + instr.IsSystemCall() || instr.IsSystemReturn() || + instr.IsInterruptCall() || instr.IsInterruptReturn() || + instr.IsSerializing() || instr.IsUndefined(); +} + +// Read the bytes of an instruction. +static size_t ReadInstructionBytes( + const std::function &try_read_byte, + AppPC32 pc32, uint8_t *bytes) { + for (auto i = 0U; i < arch::kMaxNumInstructionBytes; ++i) { + if (!try_read_byte(pc32 + i, bytes[i])) { + return i; + } + } + return arch::kMaxNumInstructionBytes; +} + +// Decode an instruction. +static Instruction DecodeInstruction(Block *block, AppPC32 pc32, uint8_t *bytes, + size_t num_bytes) { + Instruction instr; + auto &ainstr(instr.instruction); + if (!ainstr.TryDecode(bytes, num_bytes, arch::ISA::x86)) { + block->has_error = true; + } + ainstr.SetStartPC(pc32); + return instr; +} + + +} // namespace + +// Decodes and returns the block starting at `start_app_pc`. +void Block::DoDecode( + AppPC32 pc32, + const std::function &try_read_byte) { + start_app_pc = pc32; + end_app_pc = pc32; + + app_instructions.reserve(FLAGS_max_instructions_per_block); + + uint8_t instr_bytes[arch::kMaxNumInstructionBytes] = {0}; + for (int i = 0; i < FLAGS_max_instructions_per_block; ++i) { + auto num_bytes = ReadInstructionBytes(try_read_byte, pc32, instr_bytes); + auto instr = DecodeInstruction(this, pc32, instr_bytes, num_bytes); + end_app_pc += instr.NumBytes(); + pc32 = end_app_pc; + num_app_instructions += 1; + app_instructions.push_back(instr); + if (AtBlockEnd(instr)) break; + } +} + +} // namespace granary diff --git a/granary/code/block.h b/granary/code/block.h new file mode 100644 index 0000000..132e8df --- /dev/null +++ b/granary/code/block.h @@ -0,0 +1,84 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_CODE_BLOCK_H_ +#define GRANARY_CODE_BLOCK_H_ + +#include "granary/code/index.h" +#include "granary/code/instruction.h" + +#include +#include + +namespace granary { + +// Represents a decoded basic block of application code that can be +// instrumented. +class Block final { + public: + Block(void); + + // Beginning program counter of this instruction. + AppPC32 StartPC(void) const; + + // Program counter of the next logical instruction after this instruction. + AppPC32 EndPC(void) const; + + // Size of this instruction in bytes. + size_t NumBytes(void) const; + + // Number of instructions in this block. + size_t NumInstructions(void) const; + + // Return the first/last instruction of the block. + Instruction *FirstInstruction(void); + Instruction *LastInstruction(void); + + InstructionIterator begin(void); + InstructionIterator end(void); + + ReverseInstructionIterator rbegin(void); + ReverseInstructionIterator rend(void); + + // Decodes and returns the block starting at `start_pc`. + template + void Decode(AppPC32 pc32, TryRead try_read_byte) { + DoDecode(pc32, try_read_byte); + } + + // Encodes the the block and returns a pointer to the location in the code + // cache at which the block was encoded. + // + // Note: This function is NOT thread safe. `EncodedSize` and `Encode` should + // be performed in a transaction. + void Encode(index::Value &val); + + AppPC32 start_app_pc; + AppPC32 end_app_pc; // After the CFI. + + // Number of application instructions in this block. + unsigned num_app_instructions; + + // Does this block have a system call? + bool has_syscall; + + // Was there an error (decoding/emulating/encoding)? + bool has_error; + + // Actual instructions in this block. + std::vector app_instructions; + + // Queue of instructions that will be encoded. + arch::InstructionStack cache_instructions; + + private: + // Decodes and returns the block starting at `start_pc`. + void DoDecode( + AppPC32 pc32, + const std::function &try_read_byte); + + GRANARY_DISALLOW_COPY_AND_ASSIGN(Block); +}; + +} // namespace granary + +#endif // GRANARY_CODE_BLOCK_H_ diff --git a/granary/code/branch_tracer.cc b/granary/code/branch_tracer.cc new file mode 100644 index 0000000..31866e9 --- /dev/null +++ b/granary/code/branch_tracer.cc @@ -0,0 +1,51 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/code/branch_tracer.h" +#include "granary/code/index.h" +#include "granary/code/instrument.h" + +#include "granary/os/process.h" + +#include + +#include + +DEFINE_bool(branch_tracer, false, "Enable branch tracing? If so, the branch " + "trace is printed to stderr."); + +namespace granary { +namespace code { + +extern "C" { +void TraceBranchImpl( + Addr32 block_pc_of_last_branch, + Addr32 block_pc_of_branch, + Addr32 target_block_pc_of_branch) { + os::gProcess->SaveFPUState(); + std::cerr << std::hex + << block_pc_of_last_branch << " -> " + << block_pc_of_branch << " -> " + << target_block_pc_of_branch << std::endl; + os::gProcess->RestoreFPUState(); +} + +// Defined in `tracer.S`. Saves some machine state +extern void TraceBranch(void); + +} // extern C + +void InitBranchTracer(void) { + if (!FLAGS_branch_tracer) { + return; + } + code::AddInstrumentationFunction( + code::InstrumentationPoint::kInstrumentMultiWayBranch, + TraceBranch); +} + +void ExitBranchTracer(void) { + +} + +} // namespace code +} // namespace granary diff --git a/granary/code/branch_tracer.h b/granary/code/branch_tracer.h new file mode 100644 index 0000000..7204b3b --- /dev/null +++ b/granary/code/branch_tracer.h @@ -0,0 +1,15 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef CLIENT_TRACER_H_ +#define CLIENT_TRACER_H_ + +namespace granary { +namespace code { + +void InitBranchTracer(void); +void ExitBranchTracer(void); + +} // namespace code +} // namespace granary + +#endif // CLIENT_TRACER_H_ diff --git a/granary/code/cache.cc b/granary/code/cache.cc new file mode 100644 index 0000000..a32310d --- /dev/null +++ b/granary/code/cache.cc @@ -0,0 +1,232 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/code/cache.h" +#include "granary/code/index.h" + +#include "granary/arch/instrument.h" + +#include "granary/os/page.h" + +#include + +#include +#include +#include + +#include +#include +#include + +DECLARE_bool(persist); +DECLARE_string(persist_dir); + +namespace granary { +namespace { +enum : size_t { + k250MiB = 1ULL << 28ULL +}; +} // namespace +namespace cache { +namespace { +enum : unsigned { + kProbesPerEntry = 4, + kNumEntries = 2048, + kNumCacheSlots = kNumEntries + kProbesPerEntry, +}; + +struct CacheEntry { + AppPC32 app_pc; + uint32_t cache_pc; +}; + +extern "C" { + +CacheEntry gInlineCache[kNumCacheSlots]; + +void *gCacheAddr = nullptr; + +} // extern C + +static uint8_t gNextInlineCacheEntry[kNumEntries] = {0}; + +// Beginning of the memory mapping for the code cache. +static void *gBegin = nullptr; +static void *gBeginSync = nullptr; +static void *gEnd = nullptr; + +// The beginning of the code cache, as a `CachePC`. +static CachePC gBeginSyncPC = nullptr; + +// The next code cache location that can be allocated. +static CachePC gNextBlockPC = nullptr; + +// Path to the persisted cache file. +static char gCachePath[256] = {'\0'}; + +// File descriptor for the code cache. +static int gFd = -1; + +// Flags for `mmap`. +static int gMMapFlags = MAP_FIXED | MAP_POPULATE | MAP_SHARED | MAP_32BIT; + +// Size (in bytes) of the code cache. +static size_t gCacheSize = 0; + +// Should the cache be synchronized with the file system? +static bool gSyncCache = false; + +// Is the inline cache empty? This lets us avoid redundant inline cache flushes. +static bool kCacheIsEmpty = true; + +// Returns the size of the existing cache. +static size_t ExistingCacheSize(void) { + if (!FLAGS_persist) return 0; + struct stat64 info; + fstat64(gFd, &info); + return static_cast(info.st_size); +} + +// Adds a new page to the end of the code cache. +static void ResizeCache(void) { + off64_t offset = 0; + if (FLAGS_persist) { + GRANARY_IF_ASSERT( errno = 0; ) + ftruncate64(gFd, static_cast(gCacheSize + os::kPageSize)); + GRANARY_ASSERT(!errno && "Unable to resize code cache."); + + offset = static_cast(gCacheSize); + } + + GRANARY_IF_ASSERT( errno = 0; ) + mmap64(gEnd, os::kPageSize, PROT_READ | PROT_WRITE | PROT_EXEC, gMMapFlags, + gFd, offset); + GRANARY_ASSERT(!errno && "Unable to map new end of code cache."); + + gCacheSize += os::kPageSize; + gEnd = gBeginSyncPC + gCacheSize; +} + +static void InitInstrumentation(void) { + GRANARY_IF_ASSERT( errno = 0; ) + mmap64(gBegin, os::kPageSize, PROT_READ | PROT_WRITE, + MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, -1, 0); + GRANARY_ASSERT(!errno && "Unable to map instrumentation page."); + + arch::InitInstrumentationFunctions(reinterpret_cast(gBegin)); + + GRANARY_IF_ASSERT( errno = 0; ) + mprotect(gBegin, os::kPageSize, PROT_READ | PROT_EXEC); + GRANARY_ASSERT(!errno && "Unable to write-protect instrumentation page."); +} + +} // namespace + +// Insert into the LRU cache. The cache is accessed from within the assembly +// in `cache.S`. +void InsertIntoInlineCache(const os::Process32 *process, index::Key key, + index::Value block) { + kCacheIsEmpty = false; + auto offset = process->last_branch_pc % kNumEntries; + auto probe = (gNextInlineCacheEntry[offset]++) % kProbesPerEntry; + auto &entry = gInlineCache[offset + probe]; + entry.app_pc = key.pc32; + entry.cache_pc = static_cast( + reinterpret_cast(gBeginSyncPC) + block.cache_offset); +} + +void ClearInlineCache(void) { + if (!kCacheIsEmpty) { + memset(gInlineCache, 0, sizeof gInlineCache); + kCacheIsEmpty = true; + } +} + +// Initialize the code cache. +void Init(void) { + if (FLAGS_persist) { + sprintf(gCachePath, "%s/grr.cache.persist", FLAGS_persist_dir.c_str()); + GRANARY_IF_ASSERT( errno = 0; ) + gFd = open(gCachePath, O_RDWR | O_CLOEXEC | O_CREAT | O_LARGEFILE, 0666); + GRANARY_ASSERT(!errno && "Unable to open persisted code cache file."); + } else { + gMMapFlags = MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT; + } + + GRANARY_IF_ASSERT( errno = 0; ) + gBegin = mmap64(nullptr, k250MiB, PROT_NONE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_32BIT, + -1, 0); + GRANARY_ASSERT(!errno && "Unable to map address space for code cache."); + + // The first page of the code cache is for instrumentation. + InitInstrumentation(); + + gBeginSyncPC = reinterpret_cast(gBegin) + os::kPageSize; + gBeginSync = gBeginSyncPC; + gEnd = gBeginSyncPC; + gNextBlockPC = gBeginSyncPC; + + gCacheAddr = gBeginSync; + + if ((gCacheSize = ExistingCacheSize())) { + GRANARY_DEBUG( std::cerr << "Reviving cache file." << std::endl; ) + + auto scaled_cache_size = (gCacheSize + (os::kPageSize - 1)) & os::kPageMask; + + // Scale the cache file out to a multiple of the page size so that we can + // mmap it. + GRANARY_IF_ASSERT( errno = 0; ) + ftruncate64(gFd, static_cast(scaled_cache_size)); + GRANARY_ASSERT(!errno && "Unable to scale the code cache file."); + + // Bring the old cache into memory, although scale it out. We'll keep as + // many of the original cache pages non-writable, just in case this helps + // us to catch spurious bugs. + GRANARY_IF_ASSERT( errno = 0; ) + mmap64(gBeginSync, scaled_cache_size, PROT_READ | PROT_WRITE | PROT_EXEC, + gMMapFlags, gFd, 0); + GRANARY_ASSERT(!errno && "Unable to map the scaled code cache file."); + + gNextBlockPC += gCacheSize; + gCacheSize = scaled_cache_size; + gEnd = gBeginSyncPC + scaled_cache_size; + } +} + +void Exit(void) { + if (!FLAGS_persist || !gSyncCache) return; + auto actual_cache_size = gNextBlockPC - gBeginSyncPC; + msync(gBeginSync, gCacheSize, MS_SYNC | MS_INVALIDATE); + munmap(gBegin, k250MiB); + ftruncate64(gFd, actual_cache_size); + close(gFd); +} + +// Allocate `num_bytes` of space from the code cache. +CachePC Allocate(size_t num_bytes) { + gSyncCache = true; + auto ret = gNextBlockPC; + gNextBlockPC += num_bytes; + if (GRANARY_UNLIKELY(gNextBlockPC > gEnd)) ResizeCache(); + return ret; +} + +// Returns true if the PC is inside the code cache. +bool IsCachePC(uintptr_t pc) { + auto begin = reinterpret_cast(gBeginSyncPC); + return pc >= begin && pc < (begin + gCacheSize); +} + +// Returns the offset of some code within the code cache. +CacheOffset PCToOffset(CachePC pc) { + return static_cast(pc - gBeginSyncPC); +} + +// Returns the program counter associated with some offset within the +// code cache. +CachePC OffsetToPC(CacheOffset offset) { + return gBeginSyncPC + offset; +} + +} // namespace cache +} // namespace granary diff --git a/granary/code/cache.h b/granary/code/cache.h new file mode 100644 index 0000000..849cb73 --- /dev/null +++ b/granary/code/cache.h @@ -0,0 +1,56 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_CODE_CACHE_H_ +#define GRANARY_CODE_CACHE_H_ + +#include "granary/code/index.h" + +namespace granary { +namespace os { +class Process32; +} // namespace os + +namespace cache { + +// Insert into the LRU cache. The cache is accessed from within the assembly +// in `cache.S`. +void InsertIntoInlineCache(const os::Process32 *process, index::Key key, + index::Value value); + +// Clear the inline cache. +void ClearInlineCache(void); + +// Calls into the code cache and returns a continuation. +// +// Note: This function is defined in assembly. +index::Value Call(os::Process32 *process, CachePC cache_pc); + +// Initialize the code cache. +void Init(void); + +// Tear down the code cache. +void Exit(void); + +// Allocate `num_bytes` of space from the code cache. +// +// Note: This function is NOT thread-safe. +CachePC Allocate(size_t num_bytes); + +// Returns true if the PC is inside the code cache. +bool IsCachePC(uintptr_t pc); + +inline static bool IsCachePC(intptr_t pc) { + return IsCachePC(static_cast(pc)); +} + +// Returns the offset of some code within the code cache. +CacheOffset PCToOffset(CachePC pc); + +// Returns the program counter associated with some offset within the +// code cache. +CachePC OffsetToPC(CacheOffset offset); + +} // namespace cache +} // namespace granary + +#endif // GRANARY_CODE_CACHE_H_ diff --git a/granary/code/coverage.cc b/granary/code/coverage.cc new file mode 100644 index 0000000..9fd539d --- /dev/null +++ b/granary/code/coverage.cc @@ -0,0 +1,249 @@ +/* Copyright 2016 Peter Goodman (peter@trailofbits.com), all rights reserved. */ + + +#include "granary/os/page.h" + +#include "granary/code/instrument.h" +#include "granary/code/coverage.h" + +#include +#include +#include +#include +#include + +#include +#include + +#include +#include "../../third_party/md5/md5.h" + +DECLARE_bool(path_coverage); +DECLARE_string(coverage_file); +DECLARE_string(output_coverage_file); + +namespace granary { + +extern "C" size_t gInputIndex; + +namespace code { + +struct PathEntry { + Addr32 block_pc_of_last_branch; + Addr32 block_pc_of_branch; + Addr32 target_block_pc_of_branch; + + bool operator<(const PathEntry &other) const { + if (block_pc_of_last_branch < other.block_pc_of_last_branch) { + return true; + } else if (block_pc_of_last_branch > other.block_pc_of_last_branch) { + return false; + } + + if (block_pc_of_branch < other.block_pc_of_branch) { + return true; + } else if (block_pc_of_branch > other.block_pc_of_branch) { + return false; + } + + return target_block_pc_of_branch < other.target_block_pc_of_branch; + } +} __attribute__((packed)); + +namespace { + +static std::set gAllPaths; +static std::set gAllPathsAtInit; +static std::set gCurrPaths; + +static bool gHasNewPathCoverage = false; +static bool gInputLengthMarked = false; +static size_t gMarkedInputLength = 0; + +enum : size_t { + kMaxNumBufferedPathEntries = 4096 +}; + +} // namespace + +extern "C" { + +PathEntry gPathEntries[kMaxNumBufferedPathEntries] = {}; +unsigned gNextPathEntry = 0; + +// Used for path tracing. +extern void CoverPath(void); + +// Invoked by assembly +extern void UpdateCoverageSet(void) { + if (!gNextPathEntry) { + return; + } + gNextPathEntry = 0; + auto old_size = gAllPaths.size(); + for (auto &entry : gPathEntries) { + if (!entry.block_pc_of_branch) { + break; + } + gAllPaths.insert(entry); // Cross code-coverage paths. + gCurrPaths.insert(entry); // Execution-specific paths. + entry = {0, 0, 0}; + } + + gHasNewPathCoverage = gHasNewPathCoverage || gAllPaths.size() != old_size; +} + +} // extern C + +void InitPathCoverage(void) { + if (!FLAGS_path_coverage) { + return; + } + + // Multi-way branches (jCC, call r/m, jmp r/m, and ret) are the only + // possible input-dependent branches. Direct jumps and calls are ignored + // because they contribute no new information. + granary::code::AddInstrumentationFunction( + granary::code::InstrumentationPoint::kInstrumentMultiWayBranch, + CoverPath); + + if (FLAGS_coverage_file.empty() || + FLAGS_coverage_file == "/dev/null") { + return; + } + + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open64(FLAGS_coverage_file.c_str(), + O_RDONLY | O_CLOEXEC | O_CREAT | O_LARGEFILE, 0666); + GRANARY_ASSERT(!errno && "Unable to open a coverage file."); + + struct stat file_info; + fstat(fd, &file_info); + GRANARY_ASSERT(!errno && "Unable to stat the coverage file."); + + auto size = static_cast(file_info.st_size); + + // Likely that we just created the coverage file. + if (!size) { + close(fd); + return; + } + + // Verify that we have the right number of entries. + GRANARY_ASSERT(0 == (size % sizeof(PathEntry))); + + auto num_entries = size / sizeof(PathEntry); + for (size_t i = 0; i < num_entries; ) { + auto bytes_read_ = read(fd, &(gPathEntries[0]), sizeof(gPathEntries)); + GRANARY_ASSERT(!errno && "Unable to read path entries."); + + // Figure out how many entries we've read. + auto bytes_read = static_cast(bytes_read_); + auto num_entries_read = bytes_read / sizeof(PathEntry); + GRANARY_ASSERT(num_entries_read < kMaxNumBufferedPathEntries); + + i += num_entries_read; + + // We didn't read a complete number of entries; back us up. + if (0 != (bytes_read % sizeof(PathEntry))) { + lseek(fd, static_cast(i * sizeof(PathEntry)), SEEK_SET); + GRANARY_ASSERT(!errno && "Unable to seek to valid path entry."); + } + + // Process the entries that we have read. + for (size_t e = 0; e < num_entries_read; ++e) { + gAllPathsAtInit.insert(gPathEntries[e]); + } + } + + close(fd); + ResetPathCoverage(); +} + +void BeginPathCoverage(void) { + gInputLengthMarked = false; + gMarkedInputLength = 0; + gNextPathEntry = 0; + gHasNewPathCoverage = false; + gCurrPaths.clear(); + memset(&(gPathEntries[0]), 0, sizeof(gPathEntries)); +} + +void EndPathCoverage(void) { + UpdateCoverageSet(); + MarkCoveredInputLength(); +} + +bool CoveredNewPaths(void) { + return FLAGS_path_coverage && gHasNewPathCoverage; +} + +void ExitPathCoverage(void) { + if (!FLAGS_path_coverage) { + return; + } + + if (FLAGS_output_coverage_file.empty() || + FLAGS_output_coverage_file == "/dev/null") { + return; + } + + std::stringstream ss; + ss << FLAGS_output_coverage_file << "." << getpid(); + auto cov_file = ss.str(); + + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open64( + cov_file.c_str(), + O_RDWR | O_CLOEXEC | O_CREAT | O_LARGEFILE | O_TRUNC, + 0666); + GRANARY_ASSERT(!errno && "Unable to open a coverage file."); + + for (const auto &entry : gAllPaths) { + if (entry.block_pc_of_branch) { + write(fd, &(entry), sizeof(entry)); + } + } + + close(fd); + rename(cov_file.c_str(), FLAGS_output_coverage_file.c_str()); +} + +void ResetPathCoverage(void) { + gAllPaths = gAllPathsAtInit; +} + +std::string PathCoverageHash(void) { + MD5 hash; + for (const auto &entry : gCurrPaths) { + if (entry.block_pc_of_branch) { + hash.update(reinterpret_cast(&entry), sizeof(entry)); + } + } + + hash.finalize(); + return hash.hexdigest(); +} + +void MarkCoveredInputLength(void) { + if (FLAGS_path_coverage && gHasNewPathCoverage && !gInputLengthMarked) { + GRANARY_ASSERT(gInputIndex && + "Cannot cover new code without reading inputs."); + gMarkedInputLength = gInputIndex; + gInputLengthMarked = true; + } +} + +size_t GetCoveredInputLength(void) { + GRANARY_ASSERT( + gHasNewPathCoverage && gInputLengthMarked && gMarkedInputLength && + "Can't get coverage index for no new coverage."); + return gMarkedInputLength; +} + +size_t GetNumCoveredPaths(void) { + return gCurrPaths.size(); +} + +} // namespace code +} // namespace granary diff --git a/granary/code/coverage.h b/granary/code/coverage.h new file mode 100644 index 0000000..e29d7a9 --- /dev/null +++ b/granary/code/coverage.h @@ -0,0 +1,25 @@ +/* Copyright 2016 Peter Goodman (peter@trailofbits.com), all rights reserved. */ + +#ifndef CLIENT_COVERAGE_H_ +#define CLIENT_COVERAGE_H_ + +#include + +namespace granary { +namespace code { + +void InitPathCoverage(void); +void BeginPathCoverage(void); +void EndPathCoverage(void); +void ExitPathCoverage(void); +void ResetPathCoverage(void); +bool CoveredNewPaths(void); +std::string PathCoverageHash(void); +void MarkCoveredInputLength(void); +size_t GetCoveredInputLength(void); +size_t GetNumCoveredPaths(void); + +} // namespace code +} // namespace granary + +#endif // CLIENT_COVERAGE_H_ diff --git a/granary/code/execute.cc b/granary/code/execute.cc new file mode 100644 index 0000000..144c893 --- /dev/null +++ b/granary/code/execute.cc @@ -0,0 +1,162 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/code/execute.h" + +#include "granary/code/block.h" +#include "granary/code/cache.h" +#include "granary/code/index.h" +#include "granary/code/trace.h" + +#include "granary/os/process.h" + +#include + +#include +#include + +DEFINE_bool(disable_tracing, false, "Disable building superblocks."); +DEFINE_bool(disable_inline_cache, false, "Disable the inline cache."); +DEFINE_bool(debug_print_executions, false, "Print all block executions."); +DEFINE_bool(debug_print_pcs, false, "Print PCs executed by the program."); + +namespace granary { +namespace code { +namespace { + +// Translate a block. +static index::Value Translate(os::Process32 *process, index::Key key) { + Block block; + + // Safely reads instruction bytes into memory. This only reads bytes that are + // both executable and readable. + block.Decode(key.pc32, [=] (Addr32 pc32, uint8_t &byte) -> bool { + auto pc64 = process->ConvertPC(pc32); + if (!process->TryRead(pc64, byte)) return false; + if (!process->CanExecute(pc32)) return false; + return true; + }); + + index::Value val; + val.block_pc32 = key.pc32; + block.Encode(val); + return val; +} + +} // namespace + +// Main interpreter loop. This function handles index lookup, block translation, +// trace building, and dispatching. +// +// Note: We need to be very careful with functions that might modify global +// state. All such functions *must* be wrapped in code that disables +// interrupts. +__attribute__((noinline)) +void Execute(os::Process32 *process) { + TraceRecorder trace; + for (;;) { + index::Key key; + index::Value block; + + // Try to find the block to execute. If we don't find it, then we + // probably haven't translated it for this hash. Given that we likely + // need to translate something, go and check that the current and + // potentially the next pages (because a block can cross at most two + // pages) are both hashed, otherwise invalidate the hash and re-do + // the lookup. + for (;;) { + Uninterruptible disable_interrupts; + key = index::Key(process, process->PC()); // Might hash page ranges. + block = index::Find(key); + if (GRANARY_LIKELY(block)) { + break; + + } else if (GRANARY_UNLIKELY(process->TryMakeExecutable())) { + continue; + + } else { + block = Translate(process, key); + index::Insert(key, block); + cache::ClearInlineCache(); + break; + } + } + + // TODO(pag): Why does this need to go before trace building, and why + // do I need to check that the target block doesn't end with a + // system call or error? + if (!FLAGS_disable_inline_cache && + !block.ends_with_error && + !block.ends_with_syscall) { + cache::InsertIntoInlineCache(process, key, block); + } + + // If we can't extend the trace, then build the trace block. + if (!FLAGS_disable_tracing && trace.BlockEndsTrace(key, block)) { + Uninterruptible disable_interrupts; + trace.Build(); + } + + if (FLAGS_debug_print_executions) { + std::cerr << process->Id() << std::hex + << " EIP=" << process->PC() + << " EAX=" << process->regs.eax + << " EBX=" << process->regs.ebx + << " ECX=" << process->regs.ecx + << " EDX=" << process->regs.edx + << " EDI=" << process->regs.edi + << " ESI=" << process->regs.esi + << " EBP=" << process->regs.ebp + << " ESP=" << process->regs.esp + << std::dec << std::endl; + } + + if (FLAGS_debug_print_pcs) { + std::cerr << std::hex << process->PC() << std::endl; + } + + process->signal = 0; + + // Call into the code cache. This returns the `index::Value` of the last + // block executed. This is important in the case of traces and persistent + // caches, where the jumps might be hot-patched, thus leading to syscalls. + process->RestoreFPUState(); + block = cache::Call(process, cache::OffsetToPC(block.cache_offset)); + process->SaveFPUState(); + + // At the time of translating the block, we determined that the block + // ended in either an invalid instruction, or crossed into a non- + // executable page. We execute all instructions up to that point, then + // flag the error. + // + // The other way of getting here is via a fault that redirected execution + // within `cache::Call` to go to `granary_bad_block`, which cleanly + // returns from the code cache. + if (block.ends_with_error) { + if (SIGFPE == process->signal) { + process->status = os::ProcessStatus::kIgnorableError; + } else { + process->status = os::ProcessStatus::kError; + } + if (!process->signal) { + process->signal = SIGILL; // Decode-time deduction. + } + process->exec_status = os::ExecStatus::kInvalid; + return; + } + + // Go execute a system call. + if (block.ends_with_syscall) { + process->status = os::ProcessStatus::kSystemCall; + process->exec_status = os::ExecStatus::kReady; + return; + } + } + + // Shouldn't be reachable. + GRANARY_ASSERT(false && "Fell off the end of the interpreter!"); + process->status = os::ProcessStatus::kError; + process->exec_status = os::ExecStatus::kInvalid; +} + +} // namespace code +} // namespace granary diff --git a/granary/code/execute.h b/granary/code/execute.h new file mode 100644 index 0000000..a9c7e0a --- /dev/null +++ b/granary/code/execute.h @@ -0,0 +1,18 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_EXECUTE_H_ +#define GRANARY_EXECUTE_H_ + +#include "granary/os/schedule.h" + +namespace granary { +namespace code { + +// Main interpreter loop. This function handles index lookup, block translation, +// trace building, dispatching, and system call handling. +void Execute(os::Process32 *process); + +} // namespace code +} // namespace granary + +#endif // GRANARY_EXECUTE_H_ diff --git a/granary/code/index.cc b/granary/code/index.cc new file mode 100644 index 0000000..3cd348b --- /dev/null +++ b/granary/code/index.cc @@ -0,0 +1,172 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/code/index.h" + +#include + +#include + +#include +#include + +#include +#include + +#include +#include +#include + +#include "../../third_party/xxhash/xxhash.h" + +DECLARE_bool(persist); +DECLARE_string(persist_dir); + +namespace granary { +namespace index { +namespace { + +enum : uint64_t { + kMaxNumProbes = 6, + kMinNumEntries = 4 +}; + +struct Entry { + Key key; + Value val; +}; + +struct Hash { + size_t operator()(const Key key) const { + XXH64_state_t state; + XXH64_reset(&state, 0xff51afd7ed558ccdULL); + XXH64_update(&state, &key, sizeof key); + return XXH64_digest(&state); + } +}; + +// Pointer to the currently active index. +static std::unordered_map gTable; + +// Path to the persisted cache file. +static char gIndexPath[256] = {'\0'}; + +// Was there an old index file before this one? +static bool gOldIndexExists = false; + +// Should the index be synced with the file system? +static bool gSyncIndex = false; + +// Opens or re-opens the backing file for the index. +static void ReviveCache(void) { + if (!FLAGS_persist) return; + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open(gIndexPath, O_CREAT | O_RDWR | O_CLOEXEC | O_LARGEFILE, 0666); + GRANARY_ASSERT(!errno && "Unable to open persisted code cache index file."); + + struct stat64 info; + fstat64(fd, &info); + GRANARY_ASSERT(!errno && "Could stat code cache index file."); + + // Existing file is empty; nothing to revive. + if (!info.st_size) { + close(fd); + return; + } + + GRANARY_DEBUG( std::cerr << "Reviving index file." << std::endl; ) + + gOldIndexExists = true; + + auto size = static_cast(info.st_size); + auto num_entries = size / sizeof(Entry); + + auto scaled_size = (size + os::kPageSize - 1) & os::kPageMask; + if (scaled_size > size) { + ftruncate64(fd, static_cast(scaled_size)); + GRANARY_ASSERT(!errno && "Could not scale code cache index file."); + } + auto ret = mmap64(nullptr, scaled_size, PROT_READ, + MAP_PRIVATE | MAP_POPULATE, fd, 0); + GRANARY_ASSERT(!errno && "Could not map code cache index file."); + + gTable.reserve(num_entries); + auto entry = reinterpret_cast(ret); + for (auto i = 0UL; i < num_entries; ++i, ++entry) { + gTable[entry->key] = entry->val; + } + + munmap(ret, scaled_size); + close(fd); +} + +} // namespace + +// Initialize the code cache index. +void Init(void) { + if (!FLAGS_persist) return; + sprintf(gIndexPath, "%s/grr.index.persist", FLAGS_persist_dir.c_str()); + ReviveCache(); +} + +// Exit the code cache index. +void Exit(void) { + if (!FLAGS_persist || !gSyncIndex) return; + + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open(gIndexPath, O_CREAT | O_RDWR | O_CLOEXEC | O_LARGEFILE, 0666); + GRANARY_ASSERT(!errno && "Unable to open persisted code cache index file."); + + if (gOldIndexExists) { + ftruncate64(fd, 0); + GRANARY_ASSERT(!errno && "Could not clear stale code cache index file."); + } + + auto size = sizeof(Entry) * gTable.size(); + auto scaled_size = (size + os::kPageSize - 1) & os::kPageMask; + + ftruncate64(fd, static_cast(scaled_size)); + GRANARY_ASSERT(!errno && "Could not scale new code cache index file."); + + auto ret = mmap64(nullptr, scaled_size, PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + GRANARY_ASSERT(!errno && "Could not map new code cache index file."); + + // Serialize. + auto entry = reinterpret_cast(ret); + for (const auto &key_val : gTable) { + if (key_val.second) *entry++ = {key_val.first, key_val.second}; + } + + // Persist. + msync(ret, scaled_size, MS_SYNC | MS_INVALIDATE); + munmap(ret, scaled_size); + + // Truncate. + if (size < scaled_size) { + ftruncate64(fd, static_cast(size)); + GRANARY_ASSERT(!errno && "Could resize new code cache index file."); + } +} + +// Print out all entries in the code cache index. +void Dump(void) { + for (const auto &entry : gTable) { + auto pc = entry.first.pc32; + auto pid = entry.first.pid; + std::cout << std::dec << pid << " " << std::hex << pc << std::endl; + } +} + +// Finds a value in the index given a key. +Value Find(const Key key) { + return gTable[key]; // If not there, this will create space. +} + +// Inserts a (key, value) pair into the index. +void Insert(Key key, Value value) { + gSyncIndex = true; + gTable[key] = value; +} + +} // namespace index +} // namespace granary diff --git a/granary/code/index.h b/granary/code/index.h new file mode 100644 index 0000000..f9e47d4 --- /dev/null +++ b/granary/code/index.h @@ -0,0 +1,120 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_CODE_INDEX_H_ +#define GRANARY_CODE_INDEX_H_ + +#include "granary/base/base.h" + +#include "granary/os/process.h" + +namespace granary { +namespace index { + +union Key { + inline Key(void) + : key(0ULL) {} + + inline Key(os::Process32 *process, AppPC32 pc) + : pc32(pc), + pid(process->Id()), + code_hash(process->PageHash()) {} + + inline operator bool(void) const { + return 0 != key; + } + + inline bool operator==(const Key &that) const { + return key == that.key; + } + + inline bool operator!=(const Key &that) const { + return key != that.key; + } + + uint64_t key; + + struct { + // The 32-bit program counter in the process associated with `pid` that + // begins this block. + AppPC32 pc32; + + // The ID of this binary. We will often put blocks from multiple binaries + // into a single code cache. + pid_t pid:8; + + // Hash of all executable pages. + uint32_t code_hash:24; + + } __attribute__((packed)); +}; + +union Value { + inline Value(void) + : value(0ULL) {} + + inline operator bool(void) const { + return 0 != value; + } + + inline bool IsTraceHead(void) const { + return is_trace_head; + } + + uint64_t value; + + struct { + // A non-unique block ID that includes part of the AppPC32 and the PID. + uint32_t block_pc32; + + // Offset of the translated block within the code cache. + CacheOffset cache_offset:27; + + // Is this the first block in a trace? + bool is_trace_head:1; + + // Is this block part of a trace? + bool is_trace_block:1; + + // Does this block have only a single successor? + bool has_one_successor:1; + + // Does this block end with a system call? + bool ends_with_syscall:1; + + // Does this block end in an undefined instruction? This signals one of a + // few conditions: + // 1) Failure to decode an instruction. + // 2) Instruction crosses from an executable into a non-executable + // page. + // 3) Instruction is in an unmapped or unreadable page. + // 4) Emulated code actually contained UD2 or other undefined + // instruction. + bool ends_with_error:1; + } __attribute__((packed)); +}; + +static_assert(sizeof(Key) <= sizeof(uint64_t), + "Invalid structure packing of `IndexKey`."); + +static_assert(sizeof(Value) <= sizeof(uint64_t), + "Invalid structure packing of `IndexKey`."); + +// Initialize the code cache index. +void Init(void); + +// Exit the code cache index. +void Exit(void); + +// Print out all entries in the code cache index. +void Dump(void); + +// Finds a value in the index given a key. +Value Find(const Key search_key); + +// Inserts a (key, value) pair into the index. +void Insert(const Key key, Value value); + +} // namespace index +} // namespace granary + +#endif // GRANARY_CODE_INDEX_H_ diff --git a/granary/code/instruction.cc b/granary/code/instruction.cc new file mode 100644 index 0000000..6eedd3a --- /dev/null +++ b/granary/code/instruction.cc @@ -0,0 +1,124 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/code/instruction.h" + +namespace granary { + +bool Instruction::IsFunctionCall(void) const { + return instruction.IsFunctionCall(); +} + +bool Instruction::IsFunctionReturn(void) const { + return instruction.IsFunctionReturn(); +} + +bool Instruction::IsInterruptCall(void) const { + return instruction.IsInterruptCall(); +} + +bool Instruction::IsInterruptReturn(void) const { + return instruction.IsInterruptReturn(); +} + +bool Instruction::IsSystemCall(void) const { + return instruction.IsSystemCall(); +} + +bool Instruction::IsSystemReturn(void) const { + return instruction.IsSystemReturn(); +} + +bool Instruction::IsJump(void) const { + return instruction.IsJump(); +} + +bool Instruction::IsBranch(void) const { + return instruction.IsBranch(); +} + +bool Instruction::IsDirectFunctionCall(void) const { + return instruction.IsDirectFunctionCall(); +} + +bool Instruction::IsIndirectFunctionCall(void) const { + return instruction.IsIndirectFunctionCall(); +} + +bool Instruction::IsDirectJump(void) const { + return instruction.IsDirectJump(); +} + +bool Instruction::IsIndirectJump(void) const { + return instruction.IsIndirectJump(); +} + +bool Instruction::IsSerializing(void) const { + return instruction.IsSerializing(); +} + +bool Instruction::IsUndefined(void) const { + return instruction.IsUndefined(); +} + +// Beginning program counter of this instruction. +AppPC32 Instruction::StartPC(void) const { + return instruction.StartPC(); +} + +// Program counter of the next logical instruction after this instruction. +AppPC32 Instruction::EndPC(void) const { + return instruction.EndPC(); +} + +// Size of this instruction in bytes. +size_t Instruction::NumBytes(void) const { + return instruction.NumBytes(); +} + +// Target of a branch, direct jump, or direct call. These only work on +// their respective, non-indirect instruction kinds. +AppPC32 Instruction::BranchTakenPC(void) const { + GRANARY_ASSERT(IsBranch()); + return instruction.TargetPC(); +} + +AppPC32 Instruction::BranchNotTakenPC(void) const { + GRANARY_ASSERT(IsBranch()); + return EndPC(); +} + +AppPC32 Instruction::JumpTargetPC(void) const { + GRANARY_ASSERT(IsDirectJump()); + return instruction.TargetPC(); +} + +AppPC32 Instruction::FunctionCallTargetPC(void) const { + GRANARY_ASSERT(IsDirectFunctionCall()); + return instruction.TargetPC(); +} +InstructionIterator::InstructionIterator(Instruction *cursor_) + : cursor(cursor_) {} + +Instruction *InstructionIterator::operator*(void) const { + return cursor; +} + +InstructionIterator &InstructionIterator::operator++(void) { + ++cursor; + return *this; +} + +ReverseInstructionIterator::ReverseInstructionIterator( + Instruction *cursor_) + : cursor(cursor_) {} + +Instruction *ReverseInstructionIterator::operator*(void) const { + return cursor; +} + +ReverseInstructionIterator &ReverseInstructionIterator::operator++(void) { + --cursor; + return *this; +} + +} // namespace granary diff --git a/granary/code/instruction.h b/granary/code/instruction.h new file mode 100644 index 0000000..e99fa5c --- /dev/null +++ b/granary/code/instruction.h @@ -0,0 +1,101 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_CODE_INSTRUCTION_H_ +#define GRANARY_CODE_INSTRUCTION_H_ + +#include "granary/arch/instruction.h" + +namespace granary { + +// Represents a decoded application instruction that can be instrumented. +class Instruction final { + public: + Instruction(void) = default; + + bool IsFunctionCall(void) const; + bool IsFunctionReturn(void) const; + bool IsInterruptCall(void) const; + bool IsInterruptReturn(void) const; + bool IsSystemCall(void) const; + bool IsSystemReturn(void) const; + bool IsJump(void) const; + bool IsBranch(void) const; + + bool IsDirectFunctionCall(void) const; + bool IsIndirectFunctionCall(void) const; + + bool IsDirectJump(void) const; + bool IsIndirectJump(void) const; + + bool IsSerializing(void) const; + bool IsUndefined(void) const; + + bool IsNoOp(void) const; + + // Beginning program counter of this instruction. + AppPC32 StartPC(void) const; + + // Program counter of the next logical instruction after this instruction. + AppPC32 EndPC(void) const; + + // Size of this instruction in bytes. + size_t NumBytes(void) const; + + // Target of a branch, direct jump, or direct call. These only work on + // their respective, non-indirect instruction kinds. + AppPC32 BranchTakenPC(void) const; + AppPC32 BranchNotTakenPC(void) const; + AppPC32 JumpTargetPC(void) const; + AppPC32 FunctionCallTargetPC(void) const; + + GRANARY_PROTECTED: + // Internal architecture-specific instruction. + arch::Instruction instruction; +}; + +// Iterate forward over application instructions. +class InstructionIterator { + public: + InstructionIterator(const InstructionIterator &) = default; + InstructionIterator(InstructionIterator &&) = default; + + explicit InstructionIterator(Instruction *cursor_); + + inline bool operator!=(const InstructionIterator &that) const { + return cursor != that.cursor; + } + + Instruction *operator*(void) const; + InstructionIterator &operator++(void); + + private: + InstructionIterator(void) = delete; + + Instruction *cursor; +}; + +// Iterate backward over instructions. +class ReverseInstructionIterator { + public: + ReverseInstructionIterator( + const ReverseInstructionIterator &) = default; + ReverseInstructionIterator(ReverseInstructionIterator &&) = default; + + explicit ReverseInstructionIterator(Instruction *cursor_); + + inline bool operator!=(const ReverseInstructionIterator &that) const { + return cursor != that.cursor; + } + + Instruction *operator*(void) const; + ReverseInstructionIterator &operator++(void); + + private: + ReverseInstructionIterator(void) = delete; + + Instruction *cursor; +}; + +} // namespace + +#endif // GRANARY_CODE_INSTRUCTION_H_ diff --git a/granary/code/instrument.cc b/granary/code/instrument.cc new file mode 100644 index 0000000..9daab59 --- /dev/null +++ b/granary/code/instrument.cc @@ -0,0 +1,56 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include +#include + +#include "granary/code/instrument.h" + +namespace granary { +namespace code { +namespace { + +static uintptr_t gInstFuncs[InstrumentationPoint::kInvalid] = {0}; +static std::unordered_map gPCInstFuncs; + +static const InstrumentationIds gNoPCFunc = {}; + +static unsigned gNextPCId = 0; + +} // namespace + +// Adds an instrumentation function. +void AddInstrumentationFunction(InstrumentationPoint ipoint, + void (*func)(void)) { + // This works as long as: + // 1) The code cache is allocated as `MAP_32BIT`. + // 2) The build of `grr` doesn't change across two + // uses of a persisted code cache. This part is *REALLY* important. + gInstFuncs[ipoint] = reinterpret_cast(func); +} + +// Set the value of the sole to the PC instrumentation function. +void AddPCInstrumentation(Addr32 pc) { + auto id = gNextPCId++; + if (pc) { + gPCInstFuncs[pc].push_back(id); + } +} + +// Returns the location in the code cache of where this instrumentation +// function is. +uintptr_t GetInstrumentationFunction(InstrumentationPoint ipoint) { + GRANARY_ASSERT(InstrumentationPoint::kInvalid != ipoint); + return gInstFuncs[ipoint]; +} + +const InstrumentationIds &GetInstrumentationIds(Addr32 pc) { + auto x = gPCInstFuncs.find(pc); + if (x == gPCInstFuncs.end()) { + return gNoPCFunc; + } else { + return x->second; + } +} + +} // namespace code +} // namespace granary diff --git a/granary/code/instrument.h b/granary/code/instrument.h new file mode 100644 index 0000000..0980cc3 --- /dev/null +++ b/granary/code/instrument.h @@ -0,0 +1,38 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_INSTRUMENT_H_ +#define GRANARY_INSTRUMENT_H_ + +#include + +#include "granary/base/base.h" + +namespace granary { +namespace code { + +enum InstrumentationPoint { + kInstrumentMultiWayBranch = 0, + kInstrumentBlockEntry = 1, + kInstrumentPC = 2, + kInstrumentMemoryAddress = 3, + kInvalid +}; + +typedef std::vector InstrumentationIds; + +// Adds an instrumentation function. +void AddInstrumentationFunction(InstrumentationPoint ipoint, + void (*func)(void)); + +void AddPCInstrumentation(Addr32 pc); + +// Returns the location in the code cache of where this instrumentation +// function is. +uintptr_t GetInstrumentationFunction(InstrumentationPoint ipoint); + +const InstrumentationIds &GetInstrumentationIds(Addr32 pc); + +} // namespace code +} // namespace granary + +#endif // GRANARY_INSTRUMENT_H_ diff --git a/granary/code/trace.cc b/granary/code/trace.cc new file mode 100644 index 0000000..0f87076 --- /dev/null +++ b/granary/code/trace.cc @@ -0,0 +1,28 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/code/trace.h" + +namespace granary { + +TraceRecorder::TraceRecorder(void) + : next_entry(0) + , trace_length(0) + , entries{} {} + +bool TraceRecorder::BlockEndsTrace(index::Key key, index::Value block) { + auto &entry = entries[next_entry++]; + entry.key = key; + entry.val = block; + + if (block.ends_with_syscall || block.ends_with_error || + !block.has_one_successor || block.is_trace_block || + kMaxNumTraceEntries == next_entry) { + trace_length = next_entry; + next_entry = 0; + return true; + } else { + return false; + } +} + +} // namespace granary diff --git a/granary/code/trace.h b/granary/code/trace.h new file mode 100644 index 0000000..8b5dd05 --- /dev/null +++ b/granary/code/trace.h @@ -0,0 +1,49 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_CODE_TRACE_H_ +#define GRANARY_CODE_TRACE_H_ + +#include "granary/code/index.h" + +namespace granary { + +enum : size_t { + kMaxNumTraceEntries = 32 +}; + +struct TraceEntry { + index::Key key; + index::Value val; +}; + +class TraceRecorder { + public: + TraceRecorder(void); + + // Record an entry into a trace. + bool BlockEndsTrace(index::Key key, index::Value val); + + // Build a trace. + // + // Note: This has an architecture-specific implementation. + // + // Note: This function is NOT thread-safe. + void Build(void); + + // Returns true if the trace buffer is empty. + inline bool IsEmpty(void) const { + return !trace_length; + } + + private: + size_t next_entry; + size_t trace_length; + TraceEntry entries[kMaxNumTraceEntries]; + + GRANARY_DISALLOW_COPY_AND_ASSIGN(TraceRecorder); +}; + + +} // namespace granary + +#endif // GRANARY_CODE_TRACE_H_ diff --git a/granary/input/mutate.cc b/granary/input/mutate.cc new file mode 100644 index 0000000..ee420c8 --- /dev/null +++ b/granary/input/mutate.cc @@ -0,0 +1,604 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + + +#include "granary/input/mutate.h" +#include "granary/os/decree_user/decree.h" + +#include +#include +#include +#include "../../third_party/radamsa/radamsa.h" +#include "../../third_party/xxhash/xxhash.h" + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wtautological-undefined-compare" + +namespace granary { +namespace input { +namespace { + +static bool IsInput(const IOSystemCall &syscall) { + return IOKind::kInput == syscall.kind; +} + +static size_t NumInputs(const IORecording *record) { + return record->num_inputs; +} + +static size_t MaxInputIndex(const IORecording *record) { + size_t i = 0; + size_t j = 0; + for (const auto &syscall : record->system_calls) { + ++i; + if (IOKind::kInput == syscall.kind) { + ++j; + if (j == record->num_inputs) { + break; + } + } + } + return i; +} + +static size_t NextInputIndex(const IORecording *record, size_t start) { + for (size_t i = start; i < record->system_calls.size(); ++i) { + if (IOKind::kInput == record->system_calls[i].kind) { + return i; + } + } + return record->system_calls.size(); +} + +// Copy a series of system calls (verbatim) within the range of indices. +static void CopyInputs(const IORecording *test, + IORecording *output_test, + size_t begin, + const size_t end) { + for (; begin < end; ++begin) { + const auto &syscall = test->system_calls[begin]; + if (IOKind::kInput == syscall.kind) { + output_test->AddInput(syscall.data); + } + } +} + +// Chunk-canonicalize a testcase. This canonicalizes adjacent receives. +static IORecording *ChunkedCanonicalizeTest( + const IORecording *record, IORecording *canonical_test) { + + auto num_syscalls = record->system_calls.size(); + for (size_t i = 0; i < num_syscalls; ) { + const auto &syscall = record->system_calls[i]; + if (!IsInput(syscall)) { + ++i; + continue; + } + + // Figure out how much data storage we'll need. + size_t reserve_size = 0; + for (auto j = i; j < num_syscalls; ++j) { + const auto &inner_syscall = record->system_calls[j]; + if (!IsInput(inner_syscall)) { + break; + } + reserve_size += inner_syscall.data.size(); + } + + // Allocate the storage. + std::string canonical_data; + canonical_data.reserve(reserve_size); + + // Fill the storage. + for (; i < num_syscalls; ++i) { + const IOSystemCall &inner_syscall = record->system_calls[i]; + if (!IsInput(inner_syscall)) { + break; + } + canonical_data.insert( + canonical_data.end(), + inner_syscall.data.begin(), + inner_syscall.data.end()); + } + + canonical_test->AddInput(std::move(canonical_data)); + } + + return canonical_test; +} + + +// Injects one of the inputs from the testcase into an arbitrary spot within +// the testcase. +template +class SpliceMutator : public Mutator { + public: + SpliceMutator(const IORecording *record_) + : Mutator(record_), + max_prefix_length(0), + num_inputs(NumInputs(record_)), + mutation_index(0), + max_input_index(MaxInputIndex(record_)), + mutate() {} + + virtual ~SpliceMutator(void) = default; + + void Reset(void) { + max_prefix_length = 0; + mutation_index = 0; + } + + virtual IORecording *RequestMutationImpl(void) { + if (max_prefix_length >= num_inputs) { + return nullptr; + } + + auto test = new IORecording; + + // Copy some prefix of the syscalls verbatim. + size_t i = 0; + for (size_t prefix_length = 0; + prefix_length < max_prefix_length && i < max_input_index; + ++i) { + const auto &orig_syscall = record->system_calls[i]; + if (!IsInput(orig_syscall)) { + continue; + } + mutate(test, orig_syscall); + ++prefix_length; + } + + // Go and choose a specific input syscall to move into place somewhere + // within the testcase. In some cases, this acts as a repeater. + for (; mutation_index < max_input_index; ) { + const auto &orig_syscall = record->system_calls[mutation_index++]; + if (!IsInput(orig_syscall)) { + continue; + } + test->AddInput(orig_syscall.data); + break; + } + + // Copy the suffix of the syscalls verbatim. + for (i = NextInputIndex(record, i); i < max_input_index; ++i) { + const auto &orig_syscall = record->system_calls[i]; + if (!IsInput(orig_syscall)) { + continue; + } + test->AddInput(orig_syscall.data); + } + + // Set up for the next iteration. + if (mutation_index >= max_input_index) { + mutation_index = 0; + max_prefix_length += 1; + } + + return test; + } + + private: + size_t max_prefix_length; + const size_t num_inputs; + size_t mutation_index; + const size_t max_input_index; + MutationEngine mutate; +}; + +template +class ChunkedSpliceMutator : public SpliceMutator { + public: + ChunkedSpliceMutator(const IORecording *record_) + : SpliceMutator( + ChunkedCanonicalizeTest(record_, new IORecording)) {} + + virtual ~ChunkedSpliceMutator(void) { + delete this->record; + } +}; + +// Apply a mutator to only one out of all of the input receives. +template +class SliceMutator : public Mutator { + public: + SliceMutator(const IORecording *record_, size_t max_slice_size_=0) + : Mutator(record_), + curr_input_index(NextInputIndex(record_, 0)), + num_inputs(NumInputs(record_)), + max_input_index(MaxInputIndex(record_)), + slice_size(1), + max_slice_size(max_slice_size_ ?: num_inputs), + mutate() {} + + virtual IORecording *RequestMutationImpl(void) { + if (curr_input_index >= max_input_index) { + if (++slice_size > max_slice_size) { + return nullptr; + } else { + curr_input_index = NextInputIndex(record, 0); + } + } + + auto test = new IORecording; + + // Verbatim copy of a prefix. + CopyInputs(record, test, 0, curr_input_index); + + // Mutate a slice of system calls. + auto input_index = curr_input_index; + for (size_t i = 0; i < slice_size && input_index < max_input_index; ++i) { + const auto &curr_syscall = record->system_calls[input_index]; + GRANARY_ASSERT(IsInput(curr_syscall)); + mutate(test, curr_syscall); + input_index = NextInputIndex(record, input_index + 1); + } + + // Verbatim copy of a suffix. + CopyInputs(record, test, input_index, max_input_index); + + // Next iteration moves the slice forward. + curr_input_index = NextInputIndex(record, curr_input_index + 1); + + return test; + } + + void Reset(void) { + curr_input_index = NextInputIndex(record, 0); + slice_size = 1; + } + + protected: + + size_t curr_input_index; + const size_t num_inputs; + const size_t max_input_index; + size_t slice_size; + const size_t max_slice_size; + + MutationEngine mutate; +}; + +template +class ChunkedSliceMutator : public SliceMutator { + public: + ChunkedSliceMutator(const IORecording *record_, size_t max_slice_size_=0) + : SliceMutator( + ChunkedCanonicalizeTest(record_, new IORecording), + max_slice_size_) {} + + virtual ~ChunkedSliceMutator(void) { + delete this->record; + } +}; + +// Concatenate all receives in a testcase, then run a mutation engine on it. +template +class ConcatMutator : public Mutator { + public: + ConcatMutator(const IORecording *record_) + : Mutator(ConcatTestCase(record_)), + mutate() {} + + virtual ~ConcatMutator(void) { + delete record; + } + + virtual IORecording *RequestMutationImpl(void) { + if (!record->num_input_bytes) { + return nullptr; + } + auto test = new IORecording; + mutate(test, record->system_calls[0]); + return test; + } + + private: + static IORecording *ConcatTestCase(const IORecording *record_) { + auto test = new IORecording; + test->AddInput(std::move(record_->ToInput())); + return test; + } + + MutationEngine mutate; +}; + +// Turns a normal mutator into an infinite mutator. +template +class InfiniteMutator : public BaseMutator { + public: + using BaseMutator::BaseMutator; + + virtual ~InfiniteMutator(void) = default; + + virtual IORecording *RequestMutationImpl(void) { + auto test = this->BaseMutator::RequestMutationImpl(); + if (!test) { + this->BaseMutator::Reset(); + test = this->BaseMutator::RequestMutationImpl(); + } + return test; + } +}; + +// Creates a pipeline of mutators. +template +class PipelineMutator : public BaseMutator1 { + public: + PipelineMutator(const IORecording *record_) + : BaseMutator1(record_), + base2(nullptr), + base2_seed(nullptr) {} + + void Reset(void) { + DestroyBase2(); + this->BaseMutator1::Reset(); + } + + virtual IORecording *RequestMutationImpl(void) { + InitBase2(); + if (!base2) { + return nullptr; + } + auto test = base2->RequestMutationImpl(); + if (!test) { + DestroyBase2(); + InitBase2(); + if (!base2) { + test = base2->RequestMutationImpl(); + } + } + return test; + } + + virtual ~PipelineMutator(void) { + DestroyBase2(); + } + + private: + void InitBase2(void) { + if (!base2_seed) { + base2_seed = this->BaseMutator1::RequestMutationImpl(); + } + if (base2_seed && !base2) { + base2 = new (mem) BaseMutator2(base2_seed); + } + } + + void DestroyBase2(void) { + if (base2) base2->~BaseMutator2(); + if (base2_seed) delete base2_seed; + base2 = nullptr; + base2_seed = nullptr; + } + + alignas(BaseMutator2) uint8_t mem[sizeof(BaseMutator2)]; + BaseMutator2 *base2; + const IORecording *base2_seed; +}; + +class IRandomMutator { + public: + IRandomMutator(void) { + XXH32_reset(&state, static_cast(CurrentTSC())); + } + + uint64_t NextRandom(void) { + auto tsc = CurrentTSC(); + XXH32_update(&state, &tsc, sizeof tsc); + return XXH32_digest(&state); + } + + private: + static inline uint64_t CurrentTSC(void) { + uint64_t x; + __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); + return x; + } + + XXH32_state_t state; +}; + +// Replace all bytes with random bytes. +class RandomizeSyscallMutator : public IRandomMutator { + public: + void operator()(IORecording *test, const IOSystemCall &input) { + std::string output_data; + output_data.reserve(input.data.size()); + for (auto i = 0UL; i < input.data.size(); ++i) { + output_data.push_back(static_cast(NextRandom())); + } + test->AddInput(std::move(output_data)); + } +}; + +// Replace all bytes with random bytes. +class RandomBitFlipSyscallMutator : public IRandomMutator { + public: + void operator()(IORecording *test, const IOSystemCall &input) { + std::string output_data; + output_data.reserve(input.data.size()); + for (auto input_char : input.data) { + auto mask = static_cast(NextRandom()); + output_data.push_back(input_char ^ mask); + } + test->AddInput(std::move(output_data)); + } +}; + +static const size_t kRepeatAmounts[] = { + 0, 1, 2, 10, 100, 1000, 10000 +}; + +class RandomRepeatingSyscallMutator : public IRandomMutator { + public: + void operator()(IORecording *test, const IOSystemCall &input) { + auto repetitions = kRepeatAmounts[NextRandom() % 7UL]; + if (!repetitions) { + return; + } + + std::string output_data; + output_data.reserve(input.data.size() * repetitions); + for (auto i = 0UL; i < repetitions; ++i) { + output_data.insert( + output_data.end(), input.data.begin(), input.data.end()); + } + + test->AddInput(std::move(output_data)); + } +}; + +// Generic bit flipper. +template +class BitFlipSyscallMutator { + public: + void operator()(IORecording *test, const IOSystemCall &input) { + std::string output_data; + output_data.reserve(input.data.size()); + for (auto byte : input.data) { + output_data.push_back( + static_cast(FlipBits(static_cast(byte)))); + } + test->AddInput(std::move(output_data)); + } + + private: + static_assert(1 <= kStartBit, "1 <= kStartBit <= 8"); + static_assert(8 >= kStartBit, "1 <= kStartBit <= 8"); + static_assert(1 <= kNumBits, "1 <= kNumBits <= 8"); + static_assert(8 >= kNumBits, "1 <= kNumBits <= 8"); + + enum : size_t { + kMaskHigh = 0xFFUL << kStartBit, + kMaskLow = 0xFFUL >> (9 - kStartBit), + kMask = kMaskLow | kMaskHigh, + kFlippedMask = ~kMask + }; + + static uint8_t FlipBits(uint8_t byte) { + return static_cast((byte & kMask) | (~byte & kFlippedMask)); + } +}; + +// Drop the syscalls. +class DeletingSyscallMutator { + public: + void operator()(IORecording *, const IOSystemCall &) {} +}; + +// Returns the identity of the system call. +class IdentitySyscallMutator { + public: + void operator()(IORecording *test, const IOSystemCall &input) { + test->AddInput(input.data); + } +}; + +// Use Radamsa to mutate a system call. +class RadamsaSyscallMutator { + public: + void operator()(IORecording *test, const IOSystemCall &input) { + test->AddInput(radamsa::Mutate(input.data)); + } +}; + +} // namespace + + +Mutator::Mutator(const IORecording *record_) + : record(record_) {} + +Mutator::~Mutator(void) {} + +std::string Mutator::RequestMutation(void) { + if (auto req_record = this->RequestMutationImpl()) { + auto ret = req_record->ToInput(); + delete req_record; + return ret; + } else { + return ""; + } +} + +Mutator *Mutator::Create(const IORecording *test, + const std::string &mutator) { + if (mutator == "splice") { + return new SpliceMutator(test); + + } else if (mutator == "splice_chunked") { + return new ChunkedSpliceMutator(test); + + } else if (mutator == "random") { + return new SliceMutator(test); + + } else if (mutator == "dropper") { + return new SliceMutator(test); + + } else if (mutator == "bitflip1") { + return new SliceMutator>(test); + } else if (mutator == "bitflip2") { + return new SliceMutator>(test); + } else if (mutator == "bitflip3") { + return new SliceMutator>(test); + } else if (mutator == "bitflip4") { + return new SliceMutator>(test); + } else if (mutator == "bitflip5") { + return new SliceMutator>(test); + } else if (mutator == "bitflip6") { + return new SliceMutator>(test); + } else if (mutator == "bitflip7") { + return new SliceMutator>(test); + } else if (mutator == "bitflip8") { + return new SliceMutator>(test); + + } else if (mutator == "bitflip2_2") { + return new SliceMutator>(test); + } else if (mutator == "bitflip3_2") { + return new SliceMutator>(test); + } else if (mutator == "bitflip4_2") { + return new SliceMutator>(test); + } else if (mutator == "bitflip5_2") { + return new SliceMutator>(test); + } else if (mutator == "bitflip6_2") { + return new SliceMutator>(test); + } else if (mutator == "bitflip7_2") { + return new SliceMutator>(test); + } else if (mutator == "bitflip8_2") { + return new SliceMutator>(test); + + } else if (mutator == "bitflip4_4") { + return new SliceMutator>(test); + } else if (mutator == "bitflip6_4") { + return new SliceMutator>(test); + } else if (mutator == "bitflip8_4") { + return new SliceMutator>(test); + + } else if (mutator == "bitflip8_8") { + return new SliceMutator>(test); + + } else if (mutator == "inf_bitflip_random") { + return new InfiniteMutator>(test); + + } else if (mutator == "inf_radamsa_chunked") { + return new InfiniteMutator< + ChunkedSliceMutator>(test); + + } else if (mutator == "inf_radamsa_spliced") { + return new InfiniteMutator< + ChunkedSpliceMutator>(test); + + } else if (mutator == "inf_radamsa_concat") { + return new ConcatMutator(test); + + } else if (mutator == "inf_chunked_repeat") { + return new InfiniteMutator< + ChunkedSliceMutator>(test, 1); + + } else { + return nullptr; + } +} + +#pragma clang diagnostic pop + +} // namespace input +} // namespace granary diff --git a/granary/input/mutate.h b/granary/input/mutate.h new file mode 100644 index 0000000..e21fd7a --- /dev/null +++ b/granary/input/mutate.h @@ -0,0 +1,33 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef LIB_CGC_MUTATE_H_ +#define LIB_CGC_MUTATE_H_ + +#include + +#include "granary/input/record.h" + +namespace granary { +namespace input { + +// Mutator. +class Mutator { + public: + Mutator(const IORecording *record_); + virtual ~Mutator(void); + + std::string RequestMutation(void); + + static Mutator *Create(const IORecording *record, const std::string &mutator); + + protected: + + virtual IORecording *RequestMutationImpl(void) = 0; + + const IORecording *record; +}; + +} // namespace input +} // namespace granary + +#endif // LIB_CGC_MUTATE_H_ diff --git a/granary/input/record.cc b/granary/input/record.cc new file mode 100644 index 0000000..cd425bc --- /dev/null +++ b/granary/input/record.cc @@ -0,0 +1,70 @@ +/* Copyright 2016 Peter Goodman (peter@trailofbits.com), all rights reserved. */ + +#include "granary/input/record.h" + +namespace granary { +namespace input { + +IORecording *gRecord = nullptr; + +IORecording::IORecording(void) + : num_inputs(0), + num_input_bytes(0), + num_outputs(0), + num_output_bytes(0) {} + + +void IORecording::AddInput(const std::string &data) { + num_inputs += 1; + num_input_bytes += data.size(); + + IOSystemCall syscall; + syscall.kind = IOKind::kInput; + syscall.data = data; + system_calls.push_back(std::move(syscall)); +} + +void IORecording::AddInput(std::string &&data) { + num_inputs += 1; + num_input_bytes += data.size(); + + IOSystemCall syscall; + syscall.kind = IOKind::kInput; + syscall.data = std::move(data); + system_calls.push_back(std::move(syscall)); +} + +void IORecording::AddOutput(std::string &&data) { + num_outputs += 1; + num_output_bytes += data.size(); + + IOSystemCall syscall; + syscall.kind = IOKind::kOutput; + syscall.data = std::move(data); + system_calls.push_back(std::move(syscall)); +} + +std::string IORecording::ToInput(void) const { + std::string data; + data.reserve(num_input_bytes); + for (const auto &record : system_calls) { + if (IOKind::kInput == record.kind) { + data.insert(data.end(), record.data.begin(), record.data.end()); + } + } + return data; +} + +std::string IORecording::ToOutput(void) const { + std::string data; + data.reserve(num_output_bytes); + for (const auto &record : system_calls) { + if (IOKind::kOutput == record.kind) { + data.insert(data.end(), record.data.begin(), record.data.end()); + } + } + return data; +} + +} // namespace input +} // namespace granary diff --git a/granary/input/record.h b/granary/input/record.h new file mode 100644 index 0000000..3b98c95 --- /dev/null +++ b/granary/input/record.h @@ -0,0 +1,70 @@ +/* Copyright 2016 Peter Goodman (peter@trailofbits.com), all rights reserved. */ + +#ifndef GRANARY_OS_RECORD_H_ +#define GRANARY_OS_RECORD_H_ + +#include +#include + +namespace granary { +namespace input { + +enum class IOKind { + kInvalid, + kInput, + kOutput +}; + +struct IOSystemCall { + inline IOSystemCall(void) + : kind(IOKind::kInvalid) {} + + std::string data; + IOKind kind; +}; + +class IORecording { + public: + IORecording(void); + + size_t num_inputs; + size_t num_input_bytes; + + size_t num_outputs; + size_t num_output_bytes; + + std::vector system_calls; + + typedef std::vector::iterator iterator; + typedef std::vector::const_iterator const_iterator; + + inline iterator begin(void) { + return system_calls.begin(); + } + + inline iterator end(void) { + return system_calls.end(); + } + + inline const_iterator begin(void) const { + return system_calls.begin(); + } + + inline const_iterator end(void) const { + return system_calls.end(); + } + + void AddInput(const std::string &val); + void AddInput(std::string &&val); + void AddOutput(std::string &&val); + + std::string ToInput(void) const; + std::string ToOutput(void) const; +}; + +extern IORecording *gRecord; + +} // namespace input +} // namespace granary + +#endif // GRANARY_OS_RECORD_H_ diff --git a/granary/os/decree_user/decree.h b/granary/os/decree_user/decree.h new file mode 100644 index 0000000..61d2db8 --- /dev/null +++ b/granary/os/decree_user/decree.h @@ -0,0 +1,146 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_OS_DECREE_USER_DECREE_H_ +#define GRANARY_OS_DECREE_USER_DECREE_H_ + +#define DECREE_EBADF 1 +#define DECREE_EFAULT 2 +#define DECREE_EINVAL 3 +#define DECREE_ENOMEM 4 +#define DECREE_ENOSYS 5 +#define DECREE_EPIPE 6 + +#define DECREE_PC eip +#define DECREE_SYSCALL_NR eax +#define DECREE_SYSCALL_RET eax +#define DECREE_SYSCALL_ARG1 ebx +#define DECREE_SYSCALL_ARG2 ecx +#define DECREE_SYSCALL_ARG3 edx +#define DECREE_SYSCALL_ARG4 esi +#define DECREE_SYSCALL_ARG5 edi + +#define DECREE_STDIN 0 +#define DECREE_STDOUT 1 +#define DECREE_STDERR 2 + +#define __NR__terminate 1 +#define __NR_transmit 2 +#define __NR_receive 3 +#define __NR_fdwait 4 +#define __NR_allocate 5 +#define __NR_deallocate 6 +#define __NR_random 7 + +#include "granary/os/process.h" + +namespace granary { +namespace os { + +typedef int32_t decree_fd_mask; + +enum : size_t { + kFdSetSize = 1024, + kNumFdBits = (8 * sizeof(decree_fd_mask)) +}; + +enum : int { + kUsecPerSec = 1000000, + kNsecPerUsec = 1000 +}; + +enum : unsigned { + kSignedSizeMax = 2147483647U +}; + +struct decree_fd_set { + decree_fd_mask _fd_bits[kFdSetSize / kNumFdBits]; +}; + +struct decree_timeval { + int32_t tv_sec; + int32_t tv_usec; +}; + +#define DECREE_FD_SET(b, set) \ + ((set)->_fd_bits[b / _NFDBITS] |= (1 << (b & (_NFDBITS - 1)))) +#define DECREE_FD_CLR(b, set) \ + ((set)->_fd_bits[b / kNumFdBits] &= ~(1 << (b & (kNumFdBits - 1)))) +#define DECREE_FD_ISSET(b, set) \ + ((set)->_fd_bits[b / kNumFdBits] & (1 << (b & (kNumFdBits - 1)))) + +enum class SystemCallSelector { + kInvalid = 0, + kTerminate = 1, + kTransmit = 2, + kReceive = 3, + kFdwait = 4, + kAllocate = 5, + kDeallocate = 6, + kRandom = 7 +}; + +class SystemCallABI { + public: + inline explicit SystemCallABI(os::Process32 *process_) + : process(process_) {} + + // Pointer type. + template ::value,int>::type=0> + inline T Arg(void) const { + auto ptr = static_cast(Arg()); + + // Note: We only look for `nullptr` and not for the entire zero page + // because that could change the `EFAULT`-return behavior of a + // system call by making us avoid trying to read/write from a + // pointer because we know it's null. + if (!ptr) { + return nullptr; + } + + auto base = reinterpret_cast(process->base); + return reinterpret_cast(base + ptr); + } + + void SetReturn(int val) const { + process->regs.eax = static_cast(val); + } + +#define ARG_GETTER(n) \ + template ::value,int>::type=0, \ + typename std::enable_if::type=0> \ + inline T Arg(void) const { \ + return static_cast(process->regs. DECREE_SYSCALL_ARG ## n ); \ + } + + // Assume non-pointer integral type. + ARG_GETTER(1) + ARG_GETTER(2) + ARG_GETTER(3) + ARG_GETTER(4) + ARG_GETTER(5) + +#undef ARG_GETTER + + inline SystemCallSelector Number(void) const { + auto nr = process->regs.DECREE_SYSCALL_NR; + if (__NR__terminate <= nr && __NR_random >= nr) { + return static_cast(nr); + } else { + return SystemCallSelector::kInvalid; + } + } + + os::Process32 *process; + + private: + SystemCallABI(void) = delete; +}; + +} // namespace os +} // namespace granary + +#endif // GRANARY_OS_DECREE_USER_DECREE_H_ diff --git a/granary/os/decree_user/snapshot.cc b/granary/os/decree_user/snapshot.cc new file mode 100644 index 0000000..ef6a815 --- /dev/null +++ b/granary/os/decree_user/snapshot.cc @@ -0,0 +1,559 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/os/snapshot.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include "granary/os/process.h" + +DECLARE_string(snapshot_dir); +DECLARE_string(output_snapshot_dir); + +namespace granary { +namespace os { +namespace { +static char gSnapshotPath[128] = {'\0'}; +static char gMem[kPageSize] = {'\0'}; +} // namespace + +// Copy the memory from one process directly into a memory mapped file. +void SnapshotRange(const detail::MappedRange32 &source_range, int source_fd, + int dest_fd) { + auto desired_size = static_cast(source_range.Size()); + for (ssize_t copied_size = 0; copied_size < desired_size; ) { + auto size = std::min(static_cast(desired_size - copied_size), + sizeof gMem); + + GRANARY_IF_ASSERT( errno = 0; ) + lseek64(source_fd, static_cast(source_range.begin) + copied_size, + SEEK_SET); + GRANARY_ASSERT(!errno && "Unable to seek to mapped memory range."); + + GRANARY_IF_ASSERT( errno = 0; ) + auto ret_size = read(source_fd, gMem, size); + if (0 > ret_size) { + if (EAGAIN == errno || EWOULDBLOCK == errno || EINTR == errno) continue; + GRANARY_ASSERT(false && "Failed to read memory for snapshotting."); + } else { + GRANARY_IF_ASSERT( errno = 0; ) + auto write_ret_size = write(dest_fd, gMem, static_cast(ret_size)); + GRANARY_ASSERT(!errno && "Failed to write memory to snapshot."); + copied_size += write_ret_size; + } + } +} + +namespace { +enum { + kMaxNumAttempts = 100 +}; + +// Enable tracing of the target binary. +static void EnableTracing(void) { + for (auto i = 0; i < kMaxNumAttempts; i++) { + if (!ptrace(PTRACE_TRACEME, 0, nullptr, nullptr)) { + raise(SIGSTOP); + return; + } + } + exit(EXIT_FAILURE); +} + +// Wait for system call entry. This will return `false` if we didn't reach the +// expected stopped state. A Failure could mean that the process died or was +// signaled or is looping infinitely. These failure cases should be handled by +// the caller. +static bool WaitForSyscallEntry(pid_t pid) { + for (int i = kMaxNumAttempts, status = 0; i-- > 0; status = 0) { + ptrace(PTRACE_SYSCALL, pid, nullptr, nullptr); + waitpid(pid, &status, 0); + if (WIFSTOPPED(status)) { + if ((SIGTRAP | 0x80) == WSTOPSIG(status)) return true; + } else { + break; + } + } + return false; +} + +// Wait for us to reach the syscall-exit-stop state. This should be called +// after calling `WaitForSyscallEntry`. +static bool WaitForSyscallExit(pid_t pid) { + return WaitForSyscallEntry(pid); +} + +// Attach to the binary and wait for it to raise `SIGSTOP`. +static void TraceBinary(pid_t pid) { + for (int status = 0; !WIFSTOPPED(status); ) { + if (-1 == waitpid(pid, &status, 0)) { + kill(pid, SIGKILL); + exit(EXIT_FAILURE); + } + } + ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_TRACESYSGOOD); +} + +// Copy the register state from a process. +static struct user_regs_struct GetGRegs(pid_t pid) { + struct user_regs_struct regs; + ptrace(PTRACE_GETREGS, pid, NULL, ®s); + regs.rdi = 0; + regs.rsi = 0; + regs.rbp = 0; + regs.rbx = 0; + regs.rdx = 0; + regs.rcx = 0; + regs.rax = 0; + regs.orig_rax = 0; + regs.rsp = 0xbaaaaffcU; + //regs.eip = file->meta.eip; // This is was we really want. + regs.eflags = 0x202; + + return regs; +} + +// Copy the floating-point register state from a process. +static struct user_fpregs_struct GetFPRegs(pid_t pid) { + struct user_fpregs_struct fpregs; + ptrace(PTRACE_GETFPREGS, pid, NULL, &fpregs); + return fpregs; +} + +static size_t GetLine(std::string::iterator &curr, std::string::iterator end, + std::string &line){ + line.clear(); + while (curr != end) { + auto ch = *curr++; + if ('\n' == ch) break; + line.push_back(ch); + } + auto len = line.size(); + line.push_back('\0'); // Lets us use `line.data()` as a cstr. + return len; +} + +static std::string ReadMapsFile(pid_t pid) { + sprintf(gSnapshotPath, "/proc/%d/maps", pid); + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open(gSnapshotPath, O_RDONLY); + GRANARY_ASSERT(!errno && "Unable to open maps file of subprocess."); + + std::string contents; + contents.reserve(kPageSize); + + for (;;) { + auto ret = read(fd, gMem, kPageSize); + if (!ret) break; + if (0 < ret) { + contents.insert(contents.end(), gMem, gMem + ret); + } else { + GRANARY_ASSERT((EAGAIN == errno || EINTR == errno) && + "Could not read memory maps for snapshotting."); + } + } + + return contents; +} + +// Copy the memory address ranges from a process. +static std::vector GetRanges(pid_t pid, AppPC32 eip) { + std::vector ranges; + std::string line; + auto maps_file = ReadMapsFile(pid); + auto file_curr = maps_file.begin(); + auto file_end = maps_file.end(); + while (auto length = GetLine(file_curr, file_end, line)) { + if (22 > length) continue; + + // Things like [stack], [vdso], [vvar], etc. + auto cline = line.data(); + if (strchr(cline, '[') && strchr(cline, ']')) { + if (!strstr(cline, "[heap]")) continue; + } + + if ('-' != cline[8] || ' ' != cline[17] || 'p' != cline[21]) continue; + detail::MappedRange32 range; + memset(&range, 0, sizeof range); + range.is_r = ('r' == cline[18]); + range.is_w = ('w' == cline[19]); + range.is_x = ('x' == cline[20]); + if (2 != sscanf(cline, "%x-%x", &(range.begin), &(range.end))) continue; + range.lazy_begin = range.begin; + + // Auto-split this range in two if it contains the EIP. This is so that we + // can hopefully "pre-split" the binary which typically combines .text + // and .data into one RWX region. + if ((range.begin + kPageSize) <= eip && // Middle-ish of range. + eip < range.end && + kPageSize < (range.end - range.begin)) { + auto old_end = range.end; + range.end = eip & kPageMask; + ranges.push_back(range); + + range.begin = range.end; + range.lazy_begin = range.begin; + range.end = old_end; + } + + ranges.push_back(range); + } + return ranges; +} + +// Open the snapshot file. +static int OpenSnapshotFile(int exe_num, bool create) { + sprintf(gSnapshotPath, "%s/grr.snapshot.%d.persist", + FLAGS_snapshot_dir.c_str(), exe_num); + + auto flags = 0; + auto mode = 0; + if (create) { + flags = O_CREAT | O_TRUNC | O_RDWR | O_LARGEFILE; + mode = 0666; + } else { + flags = O_RDONLY | O_LARGEFILE; + } + + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open(gSnapshotPath, flags, mode); + GRANARY_ASSERT(!errno && "Unable to open the snapshot file."); + + return fd; +} + +static char * const gArgvEnvp[] = {nullptr}; + +// Initialize the snapshot file. +static void InitSnapshotFile(const char *exe_name, int exe_num, int fd) { + if (auto pid = fork()) { + if (-1 == pid) exit(EXIT_FAILURE); + TraceBinary(pid); + + // Walk over the `exec`. + WaitForSyscallEntry(pid); + WaitForSyscallExit(pid); + + // Align the file handle to the end of the file. + GRANARY_IF_ASSERT( errno = 0; ) + ftruncate64(fd, static_cast(sizeof(detail::Snapshot32File))); + GRANARY_ASSERT(!errno && "Unable to scale snapshot file."); + + auto file = new (mmap(nullptr, sizeof(detail::Snapshot32File), + PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0)) + detail::Snapshot32File; + GRANARY_ASSERT(!errno && "Unable to mmap initial Snapshot32File."); + + // Map the snapshot file into memory. + memset(file, 0, sizeof *file); + + file->meta.magic[0] = 'G'; + file->meta.magic[1] = 'R'; + file->meta.magic[2] = 'R'; + file->meta.magic[3] = 'S'; + file->meta.exe_num = exe_num; + file->meta.gregs = GetGRegs(pid); + file->meta.fpregs = GetFPRegs(pid); + + // Copy the process memory. + auto ranges = GetRanges(pid, static_cast(file->meta.gregs.rip)); + auto size = sizeof(detail::Snapshot32File); + for (const auto &range : ranges) { + size += range.Size(); + } + + sprintf(gSnapshotPath, "/proc/%d/mem", pid); + GRANARY_IF_ASSERT( errno = 0; ) + auto mem_fd = open(gSnapshotPath, O_RDONLY | O_LARGEFILE); + GRANARY_ASSERT(!errno && "Unable to open memory file of subprocess."); + + // For each readable memory range in the process, copy the contents of that + // range into the snapshot file, and copy the range into the snapshot file + // as well. + auto i = 0; + auto snapshot_offset = static_cast(sizeof(detail::Snapshot32File)); + for (const auto &range : ranges) { + if (!range.is_r) { + continue; + } + GRANARY_ASSERT(detail::Snapshot32File::kMaxNumMappedRanges > i); + GRANARY_ASSERT(range.begin == range.lazy_begin); + file->ranges[i] = range; + file->ranges[i].fd_offs = snapshot_offset; + snapshot_offset += range.Size(); + i += 1; + } + + // Initialize the stack range. + GRANARY_ASSERT(detail::Snapshot32File::kMaxNumMappedRanges > i); + file->ranges[i].begin = kStackBegin; + file->ranges[i].end = kStackEnd; + file->ranges[i].lazy_begin = kStackEnd - kMappedStackSize; + file->ranges[i].fd_offs = snapshot_offset; + file->ranges[i].is_r = true; + file->ranges[i].is_w = true; + file->ranges[i].is_x = true; + snapshot_offset += kStackSize; + i += 1; + + // Persist the snapshot file meta-data. + GRANARY_IF_ASSERT( errno = 0; ) + msync(file, sizeof *file, MS_SYNC | MS_INVALIDATE); + munmap(file, sizeof *file); + file = nullptr; + GRANARY_ASSERT(!errno && "Unable to write snapshot meta-data."); + + // Align the file handle to the end of the file. + GRANARY_IF_ASSERT( errno = 0; ) + ftruncate64(fd, static_cast(sizeof(detail::Snapshot32File))); + GRANARY_ASSERT(!errno && "Unable to scale snapshot file (1)"); + + lseek64(fd, 0, SEEK_END); + GRANARY_ASSERT(!errno && "Unable to seek to end of snapshot file (1)"); + + // Copy the memory into the snapshot file. + for (const auto &range : ranges) { + if (!range.is_r) continue; + SnapshotRange(range, mem_fd, fd); + } + + // Add in the stack. + ftruncate64(fd, static_cast(snapshot_offset)); + GRANARY_ASSERT(!errno && "Unable to scale snapshot file (2)"); + + // Add in the magic page. + lseek64(fd, 0, SEEK_END); + GRANARY_ASSERT(!errno && "Unable to seek to end of snapshot file (2)"); + + // Clean up. + close(mem_fd); + kill(pid, SIGKILL); + waitpid(pid, nullptr, WNOHANG); + + } else { + EnableTracing(); + execve(exe_name, gArgvEnvp, gArgvEnvp); + GRANARY_ASSERT(false && "Unable to `exec` process."); + __builtin_unreachable(); + } +} + +static const auto kELFHeader = "\177ELF\x01\x01\x01\x00\x00\x00\x00\x00" + "\x00\x00\x00"; + +enum { + kELFHeaderLen = 15 +}; + +// Creates a copy of a 32-bit CGC program, then changes the program into am +// ELF binary format. +static std::string CopyExecutableFile(const char *exe_path, int exe_num) { + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open(exe_path, O_RDONLY); + GRANARY_ASSERT(!errno && "Executable does not exist."); + + auto new_path = FLAGS_snapshot_dir; + if (new_path.length()) { + new_path += "/"; + } + new_path += ".grr_exe."; + new_path += std::to_string(exe_num); + + auto path = new_path.c_str(); + auto new_fd = open64(path, O_CREAT | O_CLOEXEC | O_RDWR | O_TRUNC, 0777); + GRANARY_ASSERT(!errno && "Could not create copy of the executable."); + + struct stat64 stat; + fstat64(fd, &stat); + GRANARY_ASSERT(!errno && "Could not `fstat` the original executable."); + + write(new_fd, kELFHeader, kELFHeaderLen); + GRANARY_ASSERT(!errno && "Could add header to new executable."); + + off_t after_header_offs = kELFHeaderLen; + sendfile(new_fd, fd, &after_header_offs, + static_cast(stat.st_size - kELFHeaderLen)); + GRANARY_ASSERT(!errno && "Could not copy the original executable."); + + lseek64(new_fd, 0, SEEK_SET); + GRANARY_ASSERT(!errno && "Could not seek to beginning of new executable."); + + // Make ELF binary executable. + fchmod(new_fd, 0777); + GRANARY_ASSERT(!errno && "Could not make ELF binary executable."); + + // Close the old file, and re-open the new file as read-only so that we can + // execute it with `execve`. + close(fd); + close(new_fd); + + return new_path; +} + +} // namespace + +// Revives a snapshot file. +Snapshot32::Snapshot32(int exe_num_) + : fd(OpenSnapshotFile(exe_num_, false)), + exe_num(exe_num_) { + GRANARY_IF_ASSERT( errno = 0; ) + file = reinterpret_cast( + mmap64(nullptr, sizeof(detail::Snapshot32File), + PROT_READ, MAP_POPULATE | MAP_PRIVATE, fd, 0)); + GRANARY_ASSERT(!errno && "Unable to map snapshot file meta-data."); + GRANARY_ASSERT(file->meta.exe_num == exe_num && + "Unexpected executable number in snapshot file meta-data."); +} + +// Creates a snapshot file. +void Snapshot32::Create(const char *exe_name, int exe_num) { + auto exe_path = CopyExecutableFile(exe_name, exe_num); + auto snapshot_fd = OpenSnapshotFile(exe_num, true); + auto exe_path_str = exe_path.c_str(); + InitSnapshotFile(exe_path_str, exe_num, snapshot_fd); + unlink(exe_path_str); +} + +// Creates the snapshot from a process. +void Snapshot32::Create(const Process32 *process) { + + // Size of the snapshot file. + auto size = sizeof(detail::Snapshot32File); + for (const auto &page : process->pages) { + if (PagePerms::kInvalid != page.perms && + PageState::kReserved != page.state) { + size += (page.limit - page.base); + } + } + + std::stringstream temp_snapshot_path_ss; + temp_snapshot_path_ss << FLAGS_output_snapshot_dir << "/.tmp/" + << getpid() << "." << process->Id(); + auto temp_path = temp_snapshot_path_ss.str(); + auto temp_snapshot_path = temp_path.c_str(); + + GRANARY_IF_ASSERT( errno = 0; ) + auto fd = open64(temp_snapshot_path, + O_CREAT | O_CLOEXEC | O_RDWR | O_TRUNC, 0666); + GRANARY_ASSERT(!errno && "Unable to create snapshot file."); + + ftruncate64(fd, static_cast(size)); + GRANARY_ASSERT(!errno && "Unable to scale snapshot file."); + + auto file = reinterpret_cast( + mmap64(nullptr, size, + PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0)); + GRANARY_ASSERT(!errno && "Unable to map snapshot file meta-data."); + + file->meta.magic[0] = 'G'; + file->meta.magic[1] = 'R'; + file->meta.magic[2] = 'R'; + file->meta.magic[3] = 'S'; + file->meta.exe_num = process->Id(); + file->meta.gregs.rdi = process->regs.edi; + file->meta.gregs.rsi = process->regs.esi; + file->meta.gregs.rbp = process->regs.ebp; + file->meta.gregs.rbx = process->regs.ebx; + file->meta.gregs.rdx = process->regs.edx; + file->meta.gregs.rcx = process->regs.ecx; + file->meta.gregs.rax = process->regs.eax; + file->meta.gregs.rsp = process->regs.esp; + file->meta.gregs.rip = process->regs.eip - 2; /* Size of INT 0x80 */ + file->meta.gregs.eflags = process->regs.eflags; + file->meta.fpregs = process->fpregs; + + auto i = 0; + auto offset = static_cast(sizeof(detail::Snapshot32File)); + auto data = reinterpret_cast(file); + + for (const auto &page : process->pages) { + if (PagePerms::kInvalid == page.perms || + PageState::kReserved == page.state || + !(page.limit - page.base)) { + continue; + } + + auto &range = file->ranges[i++]; + auto range_size = page.limit - page.base; + + range.begin = page.base; + range.end = page.limit; + range.lazy_begin = page.lazy_base; + range.fd_offs = offset; + + switch (page.perms) { + case PagePerms::kInvalid: break; + case PagePerms::kRO: + range.is_r = true; + break; + case PagePerms::kRW: + range.is_r = true; + range.is_w = true; + break; + case PagePerms::kRWX: + range.is_r = true; + range.is_w = true; + range.is_x = true; + break; + case PagePerms::kRX: + range.is_r = true; + range.is_x = true; + break; + } + + GRANARY_ASSERT(static_cast(offset) < size && + "Invalid snapshot file size."); + + auto lazy_offset = page.lazy_base - page.base; + + for (Addr32 j = 0; j < lazy_offset; ++j) { + data[offset + j] = 0; + } + + for (Addr32 a = page.lazy_base, o = 0; a < page.limit; ++a, ++o) { + auto b = reinterpret_cast(process->base) + a; + data[offset + lazy_offset + o] = *b; + } + + offset += range_size; + } + + GRANARY_ASSERT(static_cast(offset) == size && + "Invalid snapshot file size."); + + msync(data, size, MS_SYNC | MS_INVALIDATE); + GRANARY_ASSERT(!errno && "Couldn't sync snapshot file (1)."); + fsync(fd); + GRANARY_ASSERT(!errno && "Couldn't sync snapshot file (2)."); + close(fd); + GRANARY_ASSERT(!errno && "Couldn't close snapshot file."); + + std::stringstream snapshot_path_ss; + snapshot_path_ss << FLAGS_output_snapshot_dir << "/grr.snapshot." + << process->Id() << ".persist"; + + auto path = snapshot_path_ss.str(); + rename(temp_path.c_str(), path.c_str()); + GRANARY_ASSERT(!errno && "Couldn't commit to snapshot file."); +} + +} // namespace os +} // namespace granary diff --git a/granary/os/decree_user/syscall.cc b/granary/os/decree_user/syscall.cc new file mode 100644 index 0000000..fae0de3 --- /dev/null +++ b/granary/os/decree_user/syscall.cc @@ -0,0 +1,696 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/base/base.h" + +#include "granary/input/record.h" + +#include "granary/os/syscall.h" +#include "granary/os/file.h" +#include "granary/os/process.h" +#include "granary/os/snapshot.h" +#include "granary/os/decree_user/decree.h" + +#include + +#include + + +DEFINE_bool(strace, false, "Enable printing of system call traces."); + +DECLARE_int32(num_exe); +DECLARE_string(output_snapshot_dir); +DECLARE_int32(snapshot_before_input_byte); + +namespace granary { + +extern std::string gInput; +extern "C" size_t gInputIndex; + +namespace os { + +namespace { + +// Implements undefined system calls. +static SystemCallStatus BadSystemCall(SystemCallABI abi) { + abi.SetReturn(DECREE_ENOSYS); + return SystemCallStatus::kComplete; +} + +// Implements the terminate system call. +static SystemCallStatus Terminate(const Process32 *process, SystemCallABI abi) { + if (!FLAGS_output_snapshot_dir.empty()) { + Snapshot32::Create(process); + return SystemCallStatus::kTerminated; + } + + abi.SetReturn(0); + GRANARY_STRACE( std::cerr << process->pid << " terminate status=" + << abi.Arg<1>() << std::endl; ); + GRANARY_UNUSED(process); + return SystemCallStatus::kTerminated; +} + +// Converts a `FileIOStatus` into a `SystemCallStatus`. +static SystemCallStatus ConvertStatus(SystemCallABI abi, FileIOStatus status) { + switch (status) { + case FileIOStatus::kCompleted: + GRANARY_STRACE( std::cerr << std::endl; ) + abi.SetReturn(0); + return SystemCallStatus::kComplete; + + case FileIOStatus::kFaulted: + GRANARY_STRACE( std::cerr << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return SystemCallStatus::kComplete; + + case FileIOStatus::kInProgress: + GRANARY_STRACE( std::cerr << "(IPR)" << std::endl; ) + return SystemCallStatus::kInProgress; + } +} + + +enum : size_t { + kMaxTrailingEmptyReceives = 2ULL, +}; + +// Implement writing to standard output of `data` by `process`. +uint32_t DoTransmit(os::Process32 *process, int fd, const uint8_t *data, + uint32_t count) { + GRANARY_UNUSED(process); + GRANARY_UNUSED(fd); + + if (count && input::gRecord) { + std::string syscall_data; + syscall_data.reserve(count); + syscall_data.insert(syscall_data.begin(), data, data + count); + input::gRecord->AddOutput(std::move(syscall_data)); + } + return count; +} + +// Implement reading by `process` of standard input to `data`. +static uint32_t DoReceive(os::Process32 *process, int fd, uint8_t *data, + uint32_t count, bool &faulted) { + GRANARY_UNUSED(fd); + + faulted = false; + + // Don't need to log this. + if (!count) { + return 0; + } + + std::string recorded_input; + recorded_input.reserve(count); + + size_t max_input_len = 0; + char last_ch = '\0'; + + for (auto i = 0ULL; i < count; ++i) { + auto index = gInputIndex++; + if (index >= gInput.size()) { + + // Walked too far off the end of the input. + if ((index - gInput.size()) >= kMaxTrailingEmptyReceives) { + GRANARY_DEBUG( std::cerr << "; DONE REPLAY" << std::endl; ) + NonMaskableInterrupt(); + + } else { + return 0; + } + } + + auto ch = gInput[index]; + last_ch = ch; + + if (process->TryWrite(data + i, ch)) { + ++max_input_len; + recorded_input.append(1, ch); + + // Faulted during the `receive`. + } else { + faulted = true; + break; + } + } + + if (faulted) { + recorded_input.append(1, last_ch); // To force the fault in a replay. + } + + if (input::gRecord) { + input::gRecord->AddInput(std::move(recorded_input)); + } + + return static_cast(max_input_len); +} + + +// Implement generation of `count` random bytes of data into `data`. +static void DoRandom(os::Process32 *process, uint8_t *data, uint32_t count) { + for (auto i = 0U; i < count; i++) { + if (!process->TryWrite(data, 0)) { + GRANARY_ASSERT(false && "Should be able to write `count` random bytes."); + } + } +} + +enum { + kLinuxArbitraryMinumumEscapeSize = 2048U // Found by trial and error.. WTF? +}; + +// Counts the number of readable bytes in a range. +static uint32_t CountChunkedReadableBytes(Process32 *process, uint8_t *buf, + uint32_t length) { + auto i = 0U; + for (auto chunk = 0U; chunk < length; ) { + auto next_chunk = chunk + kLinuxArbitraryMinumumEscapeSize; + for (; i < length && i < next_chunk; ++i) { + uint8_t val = 0; + if (!process->TryRead(&(buf[i]), val)) return chunk; + } + chunk = next_chunk; + } + return i; +} + +// Implements the `transmit` DECREE system call. +static SystemCallStatus Transmit(Process32 *process, + FileTable &files, + SystemCallABI abi) { + if (!FLAGS_output_snapshot_dir.empty() && + !FLAGS_snapshot_before_input_byte) { + Snapshot32::Create(process); + return SystemCallStatus::kTerminated; + } + + const auto fd = abi.Arg<1>(); + const auto buf = abi.Arg<2,uint8_t *>(); + const auto length = abi.Arg<3,uint32_t>(); + const auto tx_bytes = abi.Arg<4,uint32_t *>(); + const auto num_fds = static_cast(files.size()); + + GRANARY_STRACE( std::cerr << process->Id() << " transmit length=" << length + << " fd=" << fd + << " buf=0x" << std::hex << (abi.Arg<2,uint32_t>()) + << " tx_bytes=0x" << std::hex + << (abi.Arg<4,uint32_t>()) << std::dec << " -> "; ) + + // Figure out how much to send. Linux seems to have this weird minimum + // amount of bytes that can escape before it will EFAULT, so we'll respect + // that. + auto num_bytes = length; + if (num_bytes) { + num_bytes = CountChunkedReadableBytes(process, buf, length); + if (!num_bytes) { + GRANARY_STRACE( std::cerr << "EFAULT (buf)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return SystemCallStatus::kComplete; + } + } + + if (DECREE_STDIN == fd || DECREE_STDOUT == fd || DECREE_STDERR == fd) { + if (num_bytes && DECREE_STDERR != fd) { + num_bytes = DoTransmit(process, fd, buf, num_bytes); + } + if (tx_bytes && !process->TryWrite(tx_bytes, num_bytes)) { + GRANARY_STRACE( std::cerr << "EFAULT (tx_bytes)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + } else { + GRANARY_STRACE( std::cerr << "length=" << num_bytes << std::endl; ) + abi.SetReturn(0); + } + return SystemCallStatus::kComplete; + + // Invalid FD. + // TODO(pag): It seems like `num_fds` and `num_fds+1` might actually + // alias STDIN/STDOUT in `cb-server`. Double check this. + } else if (0 > fd || fd >= num_fds) { + GRANARY_STRACE( std::cerr << "EBADF (fd)" << std::endl; ) + abi.SetReturn(DECREE_EBADF); + return SystemCallStatus::kComplete; + + // For non-STDIN/STDOUT/STDERR, the chunking behavior doesn't apply. + } else if (num_bytes < length) { + GRANARY_STRACE( std::cerr << "EFAULT (buf)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return SystemCallStatus::kComplete; + + // Okay we can do this. + } else { + auto file = files[static_cast(fd)]; + auto status = ConvertStatus( + abi, file->Write(process, tx_bytes, buf, num_bytes, fd)); + GRANARY_STRACE( std::cerr << std::endl; ) + return status; + } +} + +// Implements the `receive` DECREE system call. +static SystemCallStatus Receive(Process32 *process, + FileTable &files, + SystemCallABI abi) { + + + const auto fd = abi.Arg<1>(); + const auto buf = abi.Arg<2,uint8_t *>(); + const auto length = abi.Arg<3,uint32_t>(); + const auto rx_bytes = abi.Arg<4,uint32_t *>(); + const auto num_fds = static_cast(files.size()); + + // If we're not counting down to a specific number of receives, then + // `FLAGS_snapshot_after_num_receives` will be zero, so we'll snapshot + // right away. However, if we are, then we don't want to trigger snapshotting + // in non-`receive` syscalls, so we check against `1` and make sure that + // the zero check is never triggered. + if (!FLAGS_output_snapshot_dir.empty()) { + auto max_byte_index = static_cast(FLAGS_snapshot_before_input_byte); + if ((gInputIndex + length) >= max_byte_index) { + Snapshot32::Create(process); + return SystemCallStatus::kTerminated; + } + } + + if (FLAGS_snapshot_before_input_byte) { + FLAGS_snapshot_before_input_byte -= 1; + } + GRANARY_STRACE( std::cerr << process->Id() << " receive length=" << length + << " fd=" << fd + << " buf=0x" << std::hex << abi.Arg<2,Addr32>() + << " rx_bytes=0x" << std::hex << abi.Arg<4,Addr32>() + << std::dec << " -> "; ) + + if (DECREE_STDIN == fd || DECREE_STDOUT == fd || DECREE_STDERR == fd) { + auto receive_fault = false; + auto num_bytes = DoReceive(process, fd, buf, length, receive_fault); + + GRANARY_STRACE(std::cerr << "length=" << num_bytes; ) + + // We faulted when receiving data, but we got some data, but didn't update + // the count. + if (receive_fault) { + abi.SetReturn(DECREE_EFAULT); + GRANARY_STRACE( std::cerr << " EFAULT (buf)"; ) + + // Try to update the number of bytes read, regardless of if we detected + // an EFAULT. + } else if (rx_bytes && !process->TryWrite(rx_bytes, num_bytes)) { + GRANARY_STRACE( std::cerr << "EFAULT (rx_bytes)"; ) + abi.SetReturn(DECREE_EFAULT); + + } else { + abi.SetReturn(0); + } + + GRANARY_STRACE( std::cerr << std::endl; ) + + return SystemCallStatus::kComplete; + + // Invalid FD. + // TODO(pag): It seems like `num_fds` and `num_fds+1` might actually + // alias STDIN/STDOUT in `cb-server`. Double check this. + } else if (0 > fd || fd >= num_fds) { + GRANARY_STRACE( std::cerr << "EBADF (fd)" << std::endl; ) + abi.SetReturn(DECREE_EBADF); + return SystemCallStatus::kComplete; + + // Okay we can do this. + } else { + auto file = files[static_cast(fd)]; + auto status = ConvertStatus( + abi, file->Read(process, rx_bytes, buf, length, fd)); + GRANARY_STRACE( std::cerr << std::endl; ) + return status; + } +} + +enum PageCheckType { + kCheckPageReadable, + kCheckPageWritable +}; + +// Checks whether pages are readable/writable. +// +// In the case of `Receive` on stdin: We can't just pass `buf` to a `read` +// system call and depend on its `EFAULT` behavior because we might be reading +// into an RWX page in the RX state (which should convert that page into the +// RW state and invalidate the page hash). +static bool CheckPages(Process32 *process, uint8_t *buf, size_t length, + PageCheckType check) { + auto buf_addr = reinterpret_cast(buf); + auto buf_limit = buf_addr + length; + auto buf_base = buf_addr & kPageMask; + if (!buf_base) return false; + auto buf_str = reinterpret_cast(buf_base); + for (; buf_base < buf_limit; ) { + uint8_t byte; + if (!process->TryRead(buf_str, byte)) return false; + if (kCheckPageWritable == check && !process->TryWrite(buf_str, byte)) { + return false; + } + buf_base += kPageSize; + buf_str += kPageSize; + } + return true; +} + +// Checks whether or not a `decree_timeval` struct is valid. +static bool CheckTimeout(Process32 *process, SystemCallABI abi, + const decree_timeval *timeout) { + if (!timeout) return true; + + decree_timeval to = {0, 0}; + if (!process->TryRead(timeout, to)) { + GRANARY_STRACE( std::cerr << "EFAULT (timeout)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return false; + } + + GRANARY_STRACE( std::cerr << "timeout=[s=" << to.tv_sec << " us=" + << to.tv_usec << "] "; ) + + if (0 > to.tv_sec || 0 > to.tv_usec) { + GRANARY_STRACE( std::cerr << "EINVAL (timeout)" << std::endl; ) + abi.SetReturn(DECREE_EINVAL); + return false; + } + return true; +} + +// Updates a FD set. Returns `false` if an invalid descriptor is referenced. +static bool UpdateSet(const FileTable &files, + bool (File::*will_block)(const Process32 *) const, + const Process32 *proc, decree_fd_set *set, int nfds, + int32_t *count, bool is_read) { + auto max_fds = sizeof(decree_fd_set) * 8; + auto max_fd = static_cast(nfds); + for (auto fd = 0UL; fd < max_fds; ++fd) { + if (DECREE_FD_ISSET(fd, set)) { + if (fd >= max_fd) return false; + if (3 <= fd && (files[fd]->*will_block)(proc)) { + DECREE_FD_CLR(fd, set); + + } else { + if (is_read && 2 > fd && gInputIndex >= gInput.size()) { + DECREE_FD_CLR(fd, set); + + } else { + ++*count; + } + } + } + } + return true; +} + +// Print out an FD set. +static void PrintSet(const decree_fd_set *set, const char *name, int nfds) { + GRANARY_STRACE( std::cerr << name << "=["; ) + auto max_fds = sizeof(decree_fd_set) * 8; + auto max_fd = static_cast(nfds); + const char *sep = ""; + for (auto fd = 0UL; fd < max_fds; ++fd) { + if (fd >= max_fd) break; + if (DECREE_FD_ISSET(fd, set)) { + GRANARY_STRACE( std::cerr << sep << fd; ) + sep = ","; + } + } + GRANARY_STRACE( std::cerr << "]"; ) +} + +// Implements the `fdwait` DECREE system call. +static SystemCallStatus Fdwait(Process32 *process, + FileTable &files, + SystemCallABI abi) { +// if (!FLAGS_output_snapshot_dir.empty() && +// !FLAGS_snapshot_before_input_byte) { +// Snapshot32::Create(process); +// return SystemCallStatus::kTerminated; +// } + + auto nfds = abi.Arg<1>(); + auto readfds = abi.Arg<2,decree_fd_set *>(); + auto writefds = abi.Arg<3,decree_fd_set *>(); + auto timeout = abi.Arg<4,const decree_timeval *>(); + auto readyfds = abi.Arg<5,int32_t *>(); + + GRANARY_STRACE( std::cerr << process->Id() << " fdwait nfds=" << nfds + << " readfds=0x" << std::hex << abi.Arg<2,Addr32>() + << " writefds=0x" << std::hex << abi.Arg<3,Addr32>() + << " timeout=0x" << std::hex << abi.Arg<4,Addr32>() + << " readyfds=0x" << std::hex << abi.Arg<5,Addr32>() + << std::dec << " -> "; ) + + if (!CheckTimeout(process, abi, timeout)) { + return SystemCallStatus::kComplete; + } + + if (0 > nfds) { + GRANARY_STRACE( std::cerr << "EINVAL (nfds)" << std::endl; ) + abi.SetReturn(DECREE_EINVAL); + return SystemCallStatus::kComplete; + } + + if (readfds && !CheckPages(process, abi.Arg<2,uint8_t *>(), + sizeof *readfds, kCheckPageWritable)) { + GRANARY_STRACE( std::cerr << "EFAULT (readfds)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return SystemCallStatus::kComplete; + } + + if (writefds && !CheckPages(process, abi.Arg<3,uint8_t *>(), + sizeof *writefds, kCheckPageWritable)) { + GRANARY_STRACE( std::cerr << "EFAULT (writefds)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return SystemCallStatus::kComplete; + } + + auto num_bits = 0; + nfds = std::min(nfds, FLAGS_num_exe * 2 + 1); + decree_fd_set read_fd_set; + decree_fd_set write_fd_set; + + if (readfds) { + memcpy(&read_fd_set, readfds, sizeof(decree_fd_set)); + } + + if (writefds) { + memcpy(&write_fd_set, writefds, sizeof(decree_fd_set)); + } + + if (readfds && + !UpdateSet(files, &File::ReadWillBlock, + process, &read_fd_set, nfds, &num_bits, true)) { + GRANARY_STRACE( std::cerr << "EBADF (readfds)" << std::endl; ) + abi.SetReturn(DECREE_EBADF); + return SystemCallStatus::kComplete; + } + + if (writefds && + !UpdateSet(files, &File::WriteWillBlock, + process, &write_fd_set, nfds, &num_bits, false)) { + GRANARY_STRACE( std::cerr << "EBADF (writefds)" << std::endl; ) + abi.SetReturn(DECREE_EBADF); + return SystemCallStatus::kComplete; + } + + if (readyfds && !process->TryWrite(readyfds, num_bits)) { + GRANARY_STRACE( std::cerr << "EFAULT (readyfds)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return SystemCallStatus::kComplete; + } + + if (!num_bits) { + if (!timeout) { + GRANARY_STRACE( std::cerr << "(IPR)" << std::endl; ) + return SystemCallStatus::kInProgress; + } + + if (timeout && (timeout->tv_sec || timeout->tv_usec)) { + if (-1 == process->schedule_delay) { + if (!(process->schedule_delay = timeout->tv_sec)) { + process->schedule_delay = 1; // Because `timeout->tv_usec != 0`. + } + GRANARY_STRACE( std::cerr << "(IPR)" << std::endl; ) + return SystemCallStatus::kSleeping; + } else if (process->schedule_delay--) { + GRANARY_STRACE( std::cerr << "(IPR)" << std::endl; ) + return SystemCallStatus::kSleeping; + } else { + process->schedule_delay = -1; + } + } + } + + GRANARY_STRACE( std::cerr << "nfds=" << num_bits;) + + if (readfds) { + PrintSet(&read_fd_set, " readfds", nfds); + memcpy(readfds, &read_fd_set, sizeof(decree_fd_set)); + } + + if (writefds) { + PrintSet(&write_fd_set, " writefds", nfds); + memcpy(writefds, &write_fd_set, sizeof(decree_fd_set)); + } + + GRANARY_STRACE( std::cerr << std::endl; ) + + abi.SetReturn(0); + return SystemCallStatus::kComplete; +} + +enum : uint32_t { + k1GiB = 1UL << 30 +}; + +// Implements the `allocate` DECREE system call. +static SystemCallStatus Allocate(Process32 *process, SystemCallABI abi) { + auto length = abi.Arg<1,uint32_t>(); + auto is_executable = 0 != abi.Arg<2>(); + auto addr = abi.Arg<3,Addr32 *>(); + + GRANARY_STRACE( std::cerr << process->Id() << " allocate length=0x" + << std::hex << length << std::dec << " is_x=" + << is_executable << " addr=0x" << std::hex + << abi.Arg<3,Addr32>() << std::dec + << " -> "; ) + + if (!length) { + GRANARY_STRACE( std::cerr << "EINVAL" << std::endl; ) + abi.SetReturn(DECREE_EINVAL); + return SystemCallStatus::kComplete; + } + + // Round up to nearest page size. + auto num_bytes = (length + os::kPageSize - 1UL) & os::kPageMask; + auto perms = is_executable ? PagePerms::kRWX : PagePerms::kRW; + auto addr32 = process->Allocate(num_bytes, perms); + + abi.SetReturn(0); + + if (!addr32) { + GRANARY_STRACE( std::cerr << "ENOMEM" << std::endl; ) + abi.SetReturn(DECREE_ENOMEM); + return SystemCallStatus::kComplete; + + } else if (addr && !process->TryWrite(addr, addr32)) { + GRANARY_STRACE( std::cerr << "EFAULT" << std::endl; ) + process->Deallocate(addr32, num_bytes); + abi.SetReturn(DECREE_EFAULT); + + } else { + GRANARY_STRACE( std::cerr << "0x" << std::hex << addr32 + << std::dec << std::endl; ) + } + + return SystemCallStatus::kComplete; +} + +// Implements the `allocate` DECREE system call. +static SystemCallStatus Deallocate(Process32 *process, SystemCallABI abi) { + auto addr = abi.Arg<1,Addr32>(); + auto addr_uint = static_cast(addr); + auto length = abi.Arg<2,uint32_t>(); + + GRANARY_STRACE( std::cerr << process->Id() << " deallocate " + << "addr=0x" << std::hex << addr + << " length=0x" << std::hex << length + << std::dec << " -> "; ) + + auto aligned_length = (length + os::kPageSize - 1UL) & os::kPageMask; + + if (!aligned_length) { + abi.SetReturn(DECREE_EINVAL); + GRANARY_STRACE( std::cerr << "EINVAL (length)" << std::endl; ) + + } else if (addr_uint != (addr_uint & kPageMask)) { + abi.SetReturn(DECREE_EINVAL); + GRANARY_STRACE( std::cerr << "EINVAL (addr)" << std::endl; ) + + } else if (addr_uint >= kTaskSize) { + abi.SetReturn(DECREE_EINVAL); + GRANARY_STRACE( std::cerr << "EINVAL (addr > task size)" << std::endl; ) + + // Checks for possible overflow. + } else if (length > (kTaskSize - addr_uint)) { + abi.SetReturn(DECREE_EINVAL); + GRANARY_STRACE( std::cerr << "EINVAL (addr > task size)" << std::endl; ) + + } else { + process->Deallocate(addr, aligned_length); + abi.SetReturn(0); + GRANARY_STRACE( std::cerr << "0" << std::endl; ) + } + + return SystemCallStatus::kComplete; +} + +// Implements the `random` system call. +static SystemCallStatus Random(Process32 *process, SystemCallABI abi) { +// if (!FLAGS_output_snapshot_dir.empty() && +// !FLAGS_snapshot_before_input_byte) { +// Snapshot32::Create(process); +// return SystemCallStatus::kTerminated; +// } + + auto buf = abi.Arg<1,uint8_t *>(); + auto count = abi.Arg<2,uint32_t>(); + auto rnd_bytes = abi.Arg<3,uint32_t *>(); + + GRANARY_STRACE( std::cerr << process->Id() << " random" + << " buf=" << std::hex << abi.Arg<1,Addr32>() + << " count=" << std::dec << count + << " rnd_bytes=" << std::hex << abi.Arg<3,Addr32>() + << std::dec; ) + + abi.SetReturn(0); + + if (count) { + if (count > kSignedSizeMax) { + GRANARY_STRACE( std::cerr << " -> EINVAL (count too big)" << std::endl; ) + abi.SetReturn(DECREE_EINVAL); + return SystemCallStatus::kComplete; + } + + if (!buf || !CheckPages(process, buf, count, kCheckPageWritable)) { + GRANARY_STRACE( std::cerr << " -> EFAULT (buf)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + return SystemCallStatus::kComplete; + } + } + + if (count) { + DoRandom(process, buf, count); + } + GRANARY_STRACE( std::cerr << " -> count=" << count << std::endl; ) + + if (rnd_bytes && !process->TryWrite(rnd_bytes, count)) { + GRANARY_STRACE( std::cerr << " EFAULT (rnd_bytes)" << std::endl; ) + abi.SetReturn(DECREE_EFAULT); + } + + return SystemCallStatus::kComplete; +} + +} // namespace + +// Handles system calls. +SystemCallStatus SystemCall(Process32 *process, FileTable &files) { + SystemCallABI abi{process}; + switch (abi.Number()) { + case SystemCallSelector::kInvalid: return BadSystemCall(abi); + case SystemCallSelector::kTerminate: return Terminate(process, abi); + case SystemCallSelector::kTransmit: return Transmit(process, files, abi); + case SystemCallSelector::kReceive: return Receive(process, files, abi); + case SystemCallSelector::kFdwait: return Fdwait(process, files, abi); + case SystemCallSelector::kAllocate: return Allocate(process, abi); + case SystemCallSelector::kDeallocate: return Deallocate(process, abi); + case SystemCallSelector::kRandom: return Random(process, abi); + } +} + +} // namespace os +} // namespace granary diff --git a/granary/os/file.cc b/granary/os/file.cc new file mode 100644 index 0000000..b26c819 --- /dev/null +++ b/granary/os/file.cc @@ -0,0 +1,133 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/os/file.h" + +#include "granary/os/process.h" + +#include + +#include + +DECLARE_bool(strace); + +namespace granary { +namespace os { + +File::File(void) { + memset(this, 0, sizeof *this); +} + +// Emulated behavior: +// - Readers can under read. +// - Writers block if their write exceeds the max buffer size. +// - Writers block if the write would case the buffer to fill. + +// Read from this file. +FileIOStatus File::Read(Process32 *process, uint32_t *num_bytes, + uint8_t *buf, uint32_t count, int fd) { + GRANARY_UNUSED(fd); + auto status = FileIOStatus::kCompleted; + auto completed_count = 0U; + if (count) { + if (blocked_reader) { + // Someone else is at the head of the queue. + if (process != blocked_reader) { + return FileIOStatus::kInProgress; + + // We're the blocked reader, and no new data is available. + } else if (reader_head == writer_head) { + return FileIOStatus::kInProgress; + + } else { + blocked_reader = nullptr; + } + + // We want to read, but no data is available. + } else if (reader_head == writer_head) { + blocked_reader = process; + return FileIOStatus::kInProgress; + } + + auto max_count = std::min(writer_head - reader_head, count); + for (; completed_count < max_count; ++completed_count) { + auto read_val = buffer[(reader_head + completed_count) % kBufferSize]; + if (!process->TryWrite(buf + completed_count, read_val)) { + status = FileIOStatus::kFaulted; + break; + } + } + reader_head += completed_count; + } + + GRANARY_STRACE( std::cerr << "length=" << completed_count; ) + if (FileIOStatus::kFaulted == status) { + GRANARY_STRACE( std::cerr << " EFAULT (buf)"; ) + } else if (num_bytes && !process->TryWrite(num_bytes, completed_count)) { + GRANARY_STRACE( std::cerr << " EFAULT (rx_bytes)"; ) + status = FileIOStatus::kFaulted; + } + + return status; +} + +// Write to this file. +FileIOStatus File::Write(Process32 *process, uint32_t *num_bytes, + uint8_t *buf, uint32_t count, int fd) { + GRANARY_UNUSED(fd); + auto status = FileIOStatus::kCompleted; + auto completed_count = 0U; + if (count) { + if (blocked_writer) { + // Someone else is at the head of the queue. + if (process != blocked_writer) { + return FileIOStatus::kInProgress; + + // We're the blocked writer, and the buffer is still too full. + } else if ((writer_head - reader_head + count) > kBufferSize) { + return FileIOStatus::kInProgress; + + } else { + blocked_writer_count = 0; + blocked_writer = nullptr; + } + + // We want to write, but the buffer is too full. + } else if ((writer_head - reader_head + count) > kBufferSize) { + blocked_writer = process; + blocked_writer_count = count; + return FileIOStatus::kInProgress; + } + + for (; completed_count < count; ++completed_count) { + auto &write_val = buffer[(writer_head + completed_count) % kBufferSize]; + if (!process->TryRead(buf + completed_count, write_val)) { + status = FileIOStatus::kFaulted; + break; + } + } + writer_head += completed_count; + } + + GRANARY_STRACE( std::cerr << "length=" << completed_count; ) + if (FileIOStatus::kFaulted == status) { + GRANARY_STRACE( std::cerr << " EFAULT (buf)"; ) + } else if (num_bytes && !process->TryWrite(num_bytes, completed_count)) { + GRANARY_STRACE( std::cerr << " EFAULT (tx_bytes)"; ) + status = FileIOStatus::kFaulted; + } + + return status; +} + +bool File::ReadWillBlock(const Process32 *process) const { + return reader_head == writer_head || + (blocked_reader && blocked_reader != process); +} + +bool File::WriteWillBlock(const Process32 *process) const { + return ((writer_head - reader_head + blocked_writer_count) > kBufferSize) || + (blocked_writer && blocked_writer != process); +} + +} // namespace os +} // namespace granary diff --git a/granary/os/file.h b/granary/os/file.h new file mode 100644 index 0000000..93aa093 --- /dev/null +++ b/granary/os/file.h @@ -0,0 +1,61 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_OS_FILE_H_ +#define GRANARY_OS_FILE_H_ + +#include "granary/os/page.h" + +#include + +namespace granary { +namespace os { + +class Process32; + +enum class FileIOStatus { + kCompleted, // The I/O operation completed. + kFaulted, // The I/O operation failed due to an access violation. + + // The operation is in-progress. The operation must be repeated in order to + // figure out if it succeeded, failed, or remains in progress. + kInProgress +}; + +class File { + public: + File(void); + File(const File &) = default; + + // Read from this file. + FileIOStatus Read(Process32 *process, uint32_t *num_bytes, + uint8_t *buf, uint32_t count, int fd); + + // Write to this file. + FileIOStatus Write(Process32 *process, uint32_t *num_bytes, + uint8_t *buf, uint32_t count, int fd); + + bool ReadWillBlock(const Process32 *process) const; + bool WriteWillBlock(const Process32 *process) const; + + void Cancel(void); + + enum : size_t { + kBufferSize = kPageSize * 46UL // Via trial and error. + }; + + private: + uint8_t buffer[kBufferSize]; + size_t writer_head; + size_t reader_head; + + uint32_t blocked_writer_count; + Process32 *blocked_writer; + Process32 *blocked_reader; +}; + +typedef std::vector FileTable; + +} // namespace os +} // namespace granary + +#endif // GRANARY_OS_FILE_H_ diff --git a/granary/os/page.h b/granary/os/page.h new file mode 100644 index 0000000..af8aa63 --- /dev/null +++ b/granary/os/page.h @@ -0,0 +1,63 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_OS_PAGE_H_ +#define GRANARY_OS_PAGE_H_ + +#include "granary/base/base.h" + +#include + +namespace granary { +namespace os { +enum : uintptr_t { + kPageSize = 4096ULL, + kPageMask = ~4095ULL +}; + +enum : uintptr_t { + k1GiB = 1ULL << 30ULL, + kProcessSize = k1GiB * 4ULL, + k1MiB = 1048576, + kStackSize = 8 * k1MiB, + kMappedStackSize = 2 * k1MiB, + kStackLimitPage = 0xbaaaa000U, + kStackEnd = kStackLimitPage + kPageSize, + kStackBegin = kStackEnd - kStackSize, + kMaxAddress = 0xB8000000U, + kReserveNumRanges = 32UL, + kTaskSize = 0xFFFFe000U +}; + +enum class PageState : uint8_t { + kReserved, + kRO, + kRW, + kRX +}; + +enum class PagePerms : uint8_t { + kInvalid, + kRO, + kRW, + kRWX, + kRX +}; + +struct PageRange32 { + Addr32 base; + Addr32 limit; + Addr32 lazy_base; + PagePerms perms; + mutable PageState state; + mutable bool hash_is_valid; + mutable uint32_t hash; + + inline bool operator<(const PageRange32 &that) const { + return base > that.base; + } +}; + +} // namespace os +} // namespace granary + +#endif // GRANARY_OS_PAGE_H_ diff --git a/granary/os/process.cc b/granary/os/process.cc new file mode 100644 index 0000000..3082593 --- /dev/null +++ b/granary/os/process.cc @@ -0,0 +1,551 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/os/process.h" +#include "granary/os/snapshot.h" + +#include +#include + +#include + +#include +#include "../../third_party/xxhash/xxhash.h" + +namespace granary { +namespace os { + +// The current thread for this process. +GRANARY_THREAD_LOCAL(Process32 *) gProcess = nullptr; + +namespace { + +// Return the beginning page state associated with the page permissions. +PageState BeginState(PagePerms perms) { + switch (perms) { + case PagePerms::kInvalid: return PageState::kReserved; + case PagePerms::kRO: return PageState::kRO; + case PagePerms::kRW: return PageState::kRW; + case PagePerms::kRWX: return PageState::kRW; + case PagePerms::kRX: return PageState::kRX; + } +} + +// Convert a `PagePerms` into protection flags for `mmap`. +int PermsToProt(PagePerms perms) { + switch (perms) { + case PagePerms::kInvalid: return PROT_NONE; + case PagePerms::kRO: return PROT_READ; + case PagePerms::kRW: return PROT_READ | PROT_WRITE; + case PagePerms::kRWX: return PROT_READ | PROT_WRITE; + case PagePerms::kRX: return PROT_READ | PROT_EXEC; + } + GRANARY_ASSERT(false && "Cannot convert permissions into protection flags"); + return PROT_NONE; +} + +#if defined(GRANARY_TARGET_debug) + +static void DebugRanges(const std::vector &pages, + uint32_t pc, uint32_t sp) { + std::cerr << std::endl; + for (const auto &page : pages) { + std::cerr << " 0x" << std::hex << page.base + << "-0x" << page.limit << std::dec + << " perms="; + switch (page.perms) { + case PagePerms::kInvalid: std::cerr << "---"; break; + case PagePerms::kRO: std::cerr << "r--"; break; + case PagePerms::kRW: std::cerr << "rw-"; break; + case PagePerms::kRWX: std::cerr << "rwx"; break; + case PagePerms::kRX: std::cerr << "r-x"; break; + } + std::cerr << " state="; + switch (page.state) { + case PageState::kReserved: std::cerr << "---"; break; + case PageState::kRO: std::cerr << "r--"; break; + case PageState::kRW: std::cerr << "rw-"; break; + case PageState::kRX: std::cerr << "r-x"; break; + } + if (page.base <= pc && pc < page.limit) { + std::cerr << " PC=0x" << std::hex << pc << std::dec; + } + if (page.base <= sp && sp < page.limit) { + std::cerr << " SP=0x" << std::hex << sp << std::dec; + } + if (page.lazy_base != page.base) { + std::cerr << " LB=0x" << std::hex << page.lazy_base << std::dec; + } + std::cerr << std::endl; + } + std::cerr << std::endl; +} + +#endif + +} // namespace + +Process32::Process32(const Snapshot32 *snapshot) + : base(mmap64(nullptr, kProcessSize, PROT_NONE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0)), + pid(snapshot->exe_num), + text_base(kMaxAddress), + fault_can_recover(false), + schedule_delay(-1), + signal(0), + status(ProcessStatus::kSystemCall), + exec_status(ExecStatus::kReady), + fault_addr(0), + fault_base_addr(0), + fault_index_addr(0), + page_hash(0), + page_hash_is_valid(false), + pages() { + pages.reserve(kReserveNumRanges); + + InitRegs(snapshot); + InitSnapshotPages(snapshot); + InitPages(); + + TryMakeExecutable(); + HashPageRange(); + + GRANARY_IF_DEBUG( DebugRanges(pages, regs.eip, regs.esp); ) +} + +// Initialize the page table. +void Process32::InitPages(void) { + pages.push_back({0, kPageSize, 0, PagePerms::kInvalid, + PageState::kReserved, false, 0}); + pages.push_back({kMaxAddress, kMaxAddress, kMaxAddress, + PagePerms::kInvalid, + PageState::kReserved, false, 0}); +} + +// Copy the data and ranges from the snapshot. +void Process32::InitSnapshotPages(const Snapshot32 *snapshot) { + GRANARY_IF_DEBUG(std::cerr << "Memory maps:" << std::endl; ) + + auto file = snapshot->file; + for (const auto &range : file->ranges) { + if (!range.end) break; + + auto perms = range.Perms(); + auto state = BeginState(perms); + GRANARY_ASSERT(range.begin <= range.end && "Invalid snapshot page range."); + if (range.is_x) { + if (range.begin <= PC() && range.end > PC()) { + text_base = range.begin; + if (range.is_w) { + state = PageState::kRX; + } + } + } + + pages.push_back({range.begin, range.end, range.lazy_begin, + perms, state, false, 0}); + + // Copy the actual range into the process; this might be smaller than the + // demand-mapped range. + range.CopyFromFileIntoMem(snapshot->fd, base, state); + } +} + +Process32 *Process32::Revive(const Snapshot32 *snapshot) { + return new Process32(snapshot); +} + +Process32::~Process32(void) { + GRANARY_IF_ASSERT( errno = 0; ) + munmap(base, kProcessSize); + GRANARY_ASSERT(!errno && "Unable to unmap process address space."); +} + +namespace { + +// Hash an a page range by trying to hash each individual page in that range. +// We go one page at a time in order to establish whether or not the page is +// readable (and hence hashable). +static void HashRange(const Process32 *process, const PageRange32 &range) { + XXH32_state_t digest; + uint8_t byte; + XXH32_reset(&digest, range.base); + auto num_pages = (range.limit - range.base) / kPageSize; + auto addr32 = range.base; + for (auto i = 0U; i < num_pages; ++i, addr32 += kPageSize) { + auto addr64 = process->ConvertAddress(addr32); + if (process->TryRead(reinterpret_cast(addr64), byte)) { + XXH32_update(&digest, addr64, kPageSize); + } + } + range.hash_is_valid = true; + range.hash = XXH32_digest(&digest); +} + +// Find a page range that contains an address. +static PageRange32 *FindRange(std::vector &pages, Addr32 addr) { + for (auto &range : pages) { + if (range.base <= addr && addr < range.limit) return ⦥ + } + return nullptr; +} + +// Check the consistency of page ranges. +static void CheckConsistency(const std::vector &pages) { + for (auto page : pages) { + GRANARY_ASSERT(page.base <= page.limit && "Invalid page range."); + GRANARY_ASSERT(page.base == (page.base & kPageMask) && + "Invalid page base address."); + GRANARY_ASSERT(page.limit == (page.limit & kPageMask) && + "Invalid page limit address."); + GRANARY_ASSERT(page.base <= page.lazy_base && "Invalid lazy base (1)."); + GRANARY_ASSERT(page.limit >= page.lazy_base && "Invalid lazy base (2)."); + } +} + +} // namespace + +// Returns true if the page associated with `pc32` is already executable, or +// can be placed into an executable state. +bool Process32::CanExecute(AppPC32 pc32) { + if (auto range = FindRange(pages, pc32)) { + if (PageState::kRX == range->state) { + return true; + } else if (PagePerms::kRWX == range->perms) { + return TryChangeState(pc32, PageState::kRW, PageState::kRX); + } else { + return false; + } + } + return false; +} + +// Returns true if writing to read-only page should invalidate the page +// hash and make the page read-write (in the case that the page is RWX). +bool Process32::TryMakeWritable(Addr32 addr32) { + return TryChangeState(addr32, PageState::kRX, PageState::kRW); +} + +// Invalidates the page hash if the pages associated with a PC can be +// put into an executable state. +bool Process32::TryMakeExecutable(void) { + return TryChangeState(PC(), PageState::kRW, PageState::kRX); +} + +// Tries to lazily map the address if it is marked as having this capability. +bool Process32::TryLazyMap(Addr32 addr32) { + Addr32 page32 = addr32 & kPageMask; + auto range = FindRange(pages, page32); + if (!range || range->lazy_base == range->base) { + return false; + } + + GRANARY_ASSERT(range->lazy_base > range->base); + if ((range->lazy_base - kPageSize) != page32) { + return false; + } + + auto prot = PROT_READ; + if (PageState::kRW == range->state) prot |= PROT_WRITE; + + GRANARY_IF_ASSERT( errno = 0; ) + mprotect( + reinterpret_cast(reinterpret_cast(base) + page32), + kPageSize, + prot); + GRANARY_ASSERT(!errno && "Unable to lazy-map page."); + + range->lazy_base = page32; + return true; +} + +// Tries to change the state of some page ranges from `old_state` to +// `new_state`. +bool Process32::TryChangeState(Addr32 addr32, PageState old_state, + PageState new_state) { + + // Make sure the old state matches up with our expectation. + + const Addr32 base32 = addr32 & kPageMask; + auto range = FindRange(pages, base32); + if (!range || range->state != old_state) { + return false; + } + + // The address is at the beginning of a page range; modify the range in place. + if (base32 == range->base) { + range->state = new_state; + range->hash = 0; + range->hash_is_valid = false; + return true; + } + + // Okay, go split the range if possible. + std::vector new_pages; + new_pages.reserve(std::max(kReserveNumRanges, pages.size() + 1)); + + for (const auto &page : pages) { + if (&page != range) { + new_pages.push_back(page); + } + } + + GRANARY_ASSERT(range->base <= range->lazy_base); + GRANARY_ASSERT(range->base < base32); + GRANARY_ASSERT(base32 < range->limit); + + PageRange32 low = { + range->base, base32, range->base, range->perms, old_state, false, 0}; + + PageRange32 high = { + base32, range->limit, base32, range->perms, new_state, false, 0}; + + if (range->base != range->lazy_base) { + low.lazy_base = std::min(base32, range->lazy_base); + high.lazy_base = std::max(base32, range->lazy_base); + } + + GRANARY_ASSERT(low.base <= low.lazy_base && low.lazy_base <= low.limit); + GRANARY_ASSERT(high.base <= high.lazy_base && high.lazy_base <= high.limit); + + new_pages.push_back(low); + new_pages.push_back(high); + + auto old_range = *range; + range = nullptr; + pages.swap(new_pages); + + CheckConsistency(pages); + + // Invalidate the global page hash. The next code cache lookup will + // trigger new translations. + page_hash_is_valid = false; + page_hash = 0; + + auto prot = PROT_READ; + if (PageState::kRW == new_state) prot |= PROT_WRITE; + + GRANARY_IF_ASSERT( errno = 0; ) + mprotect(ConvertAddress(base32), old_range.limit - base32, prot); + GRANARY_ASSERT(!errno && "Unable to change protections on RWX pages."); + + return true; +} + +// Computes the page hash. +uint32_t Process32::HashPageRange(void) const { + GRANARY_DEBUG( std::cerr << pid << " Process32::HashPageRange" << std::endl; ) + XXH32_state_t digest; + XXH32_reset(&digest, static_cast(pid)); + + auto num_pages = pages.size(); + XXH32_update(&digest, &num_pages, sizeof num_pages); + + for (auto &page : pages) { + if (PageState::kRX == page.state) { + if (!page.hash_is_valid) HashRange(this, page); + XXH32_update(&digest, &(page.hash), sizeof page.hash); + } + } + + page_hash = XXH32_digest(&digest) & 0x00FFFFFFU; // Keep low 24 bits. + page_hash_is_valid = true; + + return page_hash; +} + +// Allocates some memory. +Addr32 Process32::Allocate(size_t num_bytes, PagePerms perms) { + GRANARY_ASSERT(0 < num_bytes); + GRANARY_ASSERT(num_bytes == (num_bytes & kPageMask)); + + std::sort(pages.begin(), pages.end()); + + GRANARY_IF_DEBUG( DebugRanges(pages, regs.eip, regs.esp); ) + + // Out of memory. + auto addr32 = AllocateFromHighMem(num_bytes, perms); + if (!addr32) return 0; + + CheckConsistency(pages); + + GRANARY_IF_DEBUG( DebugRanges(pages, regs.eip, regs.esp); ) + + auto addr64 = ConvertAddress(addr32); + GRANARY_IF_ASSERT( errno = 0; ) + auto ret = mmap64(addr64, num_bytes, PermsToProt(perms), + MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); + GRANARY_ASSERT(!errno && "Unable to map newly allocated process32 memory."); + if (ret != addr64) return 0; + + // Invalidate the page hash because we've potentially allocated new code. + if (PagePerms::kRX == perms || PagePerms::kRWX == perms) { + page_hash_is_valid = false; + page_hash = 0; + } + + return addr32; +} + +// Frees some memory. This builds a new list of page intervals. +// +// Note: This does not alter the sortedness of the page tables. +void Process32::Deallocate(Addr32 addr32, size_t num_bytes) { + GRANARY_ASSERT(0 < num_bytes); + GRANARY_ASSERT(addr32 == (addr32 & kPageMask)); + GRANARY_ASSERT(num_bytes == (num_bytes & kPageMask)); + + auto addr32_limit = addr32 + static_cast(num_bytes); + GRANARY_ASSERT(addr32 < addr32_limit && "Invalid deallocate page range."); + + std::sort(pages.begin(), pages.end()); + + auto invalidate_page_hash = false; + + // Start by splitting up the existing pages; this lets us bail out on the + // process without actually losing info. + std::vector new_pages; + std::vector removed_pages; + new_pages.reserve(std::max(kReserveNumRanges, pages.size())); + removed_pages.reserve(4); + + for (auto page : pages) { + auto deallocated = false; + + // Not allowed to unmap certain pages (e.g. boundary pages). + if (PagePerms::kInvalid == page.perms || + PageState::kReserved == page.state) { + new_pages.push_back(page); + + // No overlap. + } else if (addr32 >= page.limit || addr32_limit <= page.base) { + new_pages.push_back(page); + + // This page is fully contained by the deallocation range. + } else if (addr32 <= page.base && page.limit <= addr32_limit) { + deallocated = true; + removed_pages.push_back(page); + + // Overlap at the beginning. + } else if (addr32 == page.base) { + GRANARY_ASSERT(addr32_limit < page.limit && + "Incorrectly identified prefix range."); + deallocated = true; + + removed_pages.push_back({ + page.base, addr32_limit, page.base, page.perms, page.state, false, 0}); + + PageRange32 high = { + addr32_limit, page.limit, addr32_limit, + page.perms, page.state, false, 0}; + + if (page.base != page.lazy_base) { + high.lazy_base = std::max(addr32_limit, page.lazy_base); + } + + new_pages.push_back(high); + + // Overlap at the end. + } else if (addr32_limit == page.limit) { + GRANARY_ASSERT(addr32 > page.base && + "Incorrectly identified suffix range."); + deallocated = true; + + removed_pages.push_back({ + addr32, page.limit, 0, page.perms, page.state, false, 0}); + + PageRange32 low = { + page.base, addr32, page.base, page.perms, page.state, false, 0}; + + if (page.base != page.lazy_base) { + low.lazy_base = std::min(addr32, page.lazy_base); + } + + new_pages.push_back(low); + + // Deallocation range is fully contained within the current range. + } else { + deallocated = true; + removed_pages.push_back({ + addr32, addr32_limit, 0, page.perms, page.state, false, 0}); + + PageRange32 low = { + page.base, addr32, page.base, page.perms, page.state, false, 0}; + + PageRange32 high = { + addr32_limit, page.limit, addr32_limit, + page.perms, page.state, false, 0}; + + if (page.base != page.lazy_base) { + low.lazy_base = std::min(addr32, page.lazy_base); + high.lazy_base = std::max(addr32_limit, page.lazy_base); + } + + new_pages.push_back(low); + new_pages.push_back(high); + } + + if (deallocated && page.hash_is_valid && + (PagePerms::kRX == page.perms || PagePerms::kRWX == page.perms)) { + invalidate_page_hash = true; + } + } + + // Unmap the various sub page ranges. + GRANARY_IF_ASSERT( errno = 0; ) + for (auto page : removed_pages) { + munmap(ConvertAddress(page.base), page.limit - page.base); + GRANARY_ASSERT(!errno && "Unable to unmap deallocated process32 memory."); + } + + // Swap the page lists. + pages.swap(new_pages); + + CheckConsistency(pages); + + if (invalidate_page_hash && page_hash_is_valid) { + page_hash_is_valid = false; + page_hash = 0; + } +} + +// Allocates `num_pages` of memory with permission `perms` at a "variable" +// address. The address at which the pages are allocated is returned. +// +// Performs a linear scan to perform a first-fit of the pages into memory. +// The scan starts from high memory and works its way down. +// +// Note: `num_bytes` must be a multiple of `kPageSize`. +Addr32 Process32::AllocateFromHighMem(size_t num_bytes, PagePerms perms) { + GRANARY_ASSERT(2 <= pages.size() && "Must have at least two page ranges."); + + const auto end = pages.end(); + for (auto bracket = pages.begin(); bracket != end; ) { + auto high = *bracket++; + if (!high.base) break; // Zero page. + if (high.base > kMaxAddress) continue; // Stack. + if (num_bytes > high.base) break; // No more space. + + const auto low = *bracket; + size_t range_base = low.limit; + size_t range_limit = high.base; + + GRANARY_ASSERT(range_base <= range_limit && "Invalid page range."); + + size_t range_size = range_limit - range_base; + if (num_bytes > range_size) { + continue; + } + + auto alloc_base = high.base - static_cast(num_bytes); + + GRANARY_ASSERT(alloc_base < high.base && "Invalid allocated range."); + pages.push_back({alloc_base, high.base, alloc_base, perms, + BeginState(perms), false, 0}); + return alloc_base; + } + + return 0; +} + +} // namespace os +} // namespace granary diff --git a/granary/os/process.h b/granary/os/process.h new file mode 100644 index 0000000..ece32c1 --- /dev/null +++ b/granary/os/process.h @@ -0,0 +1,317 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_OS_PROCESS_H_ +#define GRANARY_OS_PROCESS_H_ + +#include "granary/os/page.h" + +#include + +#include +#include + +#include +#include + +namespace granary { +namespace os { + +enum class ProcessStatus { + kError, + kIgnorableError, + kDone, + kSystemCall +}; + +enum class ExecStatus { + kInvalid, + kReady, + kBlocked +}; + +namespace detail { + +template struct Value; + +template <> +struct Value<1> { + typedef uint8_t Type; +}; + +template <> +struct Value<2> { + typedef uint16_t Type; +}; + +template <> +struct Value<4> { + typedef uint32_t Type; +}; + +template <> +struct Value<8> { + typedef uint64_t Type; +}; + +} // namespace detail + +class Snapshot32; +class Process32; + +typedef std::vector Process32Group; + +extern GRANARY_THREAD_LOCAL(Process32 *) gProcess; + +// Represents a single-threaded 32-bit process's state. +class Process32 final { + public: + static Process32 *Revive(const Snapshot32 *snapshot); + ~Process32(void); + + // Converts a 32-bit pointer into a 64-bit pointer. + inline Addr64 ConvertAddress(Addr32 addr32) const { + return reinterpret_cast( + reinterpret_cast(base) + addr32); + } + + // Converts a 64-bit code pointer into a 32-bit pointer. + inline Addr32 ConvertAddress(Addr64 addr64) const { + return static_cast(reinterpret_cast(addr64) - + reinterpret_cast(base)); + } + + inline bool IsProcessAddress(uintptr_t addr64) const { + auto base_addr = reinterpret_cast(base); + return base_addr <= addr64 && addr64 < (base_addr + kProcessSize); + } + + // Converts a 32-bit code pointer into a 64-bit code pointer. + inline AppPC64 ConvertPC(AppPC32 pc32) const { + return reinterpret_cast(base) + pc32; + } + + // Returns this process's ID. + inline pid_t Id(void) const { + return pid; + } + + // Returns the next PC to emulate, or the PC of a recent interrupt. + inline AppPC32 PC(void) const { + return regs.eip; + } + + // Returns the PC of the branch instruction. + inline AppPC32 LastBranchPC(void) const { + return last_branch_pc; + } + + // Allocates some memory. + Addr32 Allocate(size_t num_bytes, PagePerms perms); + + // Frees some memory. + void Deallocate(Addr32 addr, size_t num_bytes); + + // Invalidates the page hash if the pages associated with a PC can be + // put into an executable state. + bool TryMakeExecutable(void); + + // Returns the page hash for this process. + inline uint32_t PageHash(void) { + if (GRANARY_LIKELY(0 != page_hash_is_valid)) return page_hash; + return HashPageRange(); + } + + // Returns true if the page associated with `pc32` is already executable, or + // can be placed into an executable state. + bool CanExecute(AppPC32 pc32); + + // Returns true if writing to read-only page should invalidate the page + // hash and make the page read-write (in the case that the page is RWX). + bool TryMakeWritable(Addr32 addr32); + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wold-style-cast" + + // Returns `true` if we're able to write some data to the process. + template ::type=0> + inline bool TryWrite(T *ptr, V val) const { + typedef typename detail::Value::Type U; + return DoTryWrite((U *) ptr, (U) (T) val); + } + + template ::type=0> + inline bool TryWrite(T *ptr, const T &val) const { + auto dst = (uint8_t *) ptr; + auto src = (const uint8_t *) &val; + for (auto i = 0UL; i < sizeof(T); ++i) { + if (!DoTryWrite(dst++, *src++)) return false; + } + return true; + } + + // Returns `true` if we're able to read some data from the process into `val`. + template ::type=0> + inline bool TryRead(const T *ptr, T &val) const { + typedef typename detail::Value::Type U; + return DoTryRead((const U *) ptr, (U *) &val); + } + + template ::type=0> + inline bool TryRead(const T *ptr, T &val) const { + auto dst = (const uint8_t *) ptr; + auto src = (uint8_t *) &val; + for (auto i = 0UL; i < sizeof(T); ++i) { + if (!DoTryRead(dst++, src++)) return false; + } + return true; + } + +#pragma clang diagnostic pop + + void SynchronizeRegState(ucontext_t *context); + + // Returns true if a signal handler can recover from this fault by returning. + bool RecoverFromTryReadWrite(ucontext_t *context) const; + + // Tries to lazily map the address if it is marked as having this capability. + bool TryLazyMap(Addr32 addr); + + // Restore the saved FPU state. + void RestoreFPUState(void) const; + + // Save the current FPU state. + void SaveFPUState(void); + + const Addr64 base; // 0 + + struct GPRs { + uint32_t edi; // 8 + uint32_t esi; // 12 + uint32_t ebp; // 16 + uint32_t ebx; // 20 + uint32_t edx; // 24 + uint32_t ecx; // 28 + uint32_t eax; // 32 + uint32_t esp; // 36 + + AppPC32 eip; // 40 + + uint32_t eflags; // 44 + } regs; + + // Process ID. + const pid_t pid; // 48 + + // EIP of most recently executed multi-way branch. + AppPC32 last_branch_pc; // 52 + + // Base of `.text` section on init. + AppPC32 text_base; // 56 + + private: + // True if we can recover from a page fault. + mutable bool fault_can_recover; // 60 + + public: + + // Amount of schedule ticks to wait. + int schedule_delay; + + // Last signal delivered to the process. + int signal; + + ProcessStatus status; + ExecStatus exec_status; + + // The address that caused us to fault. + Addr32 fault_addr; + Addr32 fault_base_addr; + Addr32 fault_index_addr; + + private: + friend class Snapshot32; + + explicit Process32(const Snapshot32 *snapshot); + Process32(void) = delete; + + void InitPages(void); + void InitSnapshotPages(const Snapshot32 *snapshot); + void InitRegs(const Snapshot32 *snapshot); + + // Computes the page hash. + uint32_t HashPageRange(void) const; + + // Tries to do a write of a specific size. + bool DoTryWrite(uint32_t *ptr, uint32_t val) const; + bool DoTryWrite(uint16_t *ptr, uint16_t val) const; + bool DoTryWrite(uint8_t *ptr, uint8_t val) const; + + // Tries to do a read of a specific size. + bool DoTryRead(const uint32_t *ptr, uint32_t *val) const; + bool DoTryRead(const uint16_t *ptr, uint16_t *val) const; + bool DoTryRead(const uint8_t *ptr, uint8_t *val) const; + + // Allocates `num_pages` of memory with permission `perms` at a "variable" + // address. The address at which the pages are allocated is returned. + // + // Note: `num_bytes` must be a multiple of `kPageSize`. + Addr32 AllocateFromHighMem(size_t num_bytes, PagePerms perms); + + // Tries to change the state of some page ranges from `old_state` to + // `new_state`. + bool TryChangeState(Addr32 addr, PageState old_state, PageState new_state); + + // 24-bit hash of the RWX pages. + mutable uint32_t page_hash; + + // Tells us whether the page hash is valid. + mutable bool page_hash_is_valid; + + // List of all `mmap`d or `allocate`d pages. + std::vector pages; + + // FPU register state. + alignas(16) struct user_fpregs_struct fpregs; + + GRANARY_DISALLOW_COPY_AND_ASSIGN(Process32); +}; + +// Ensures that the correct `Process32` pointer is set up to handle certain +// kinds of faulting conditions. This is important for things like File +// reading/writing where two processes are involved, as well as some cases of +// page hashing. +class PushProcess32 { + public: + explicit inline PushProcess32(const Process32 *curr) + : prev(gProcess) { + gProcess = const_cast(curr); + } + + inline ~PushProcess32(void) { + gProcess = prev; + } + + private: + PushProcess32(void) = delete; + + Process32 *prev; +}; + +static_assert(0 == __builtin_offsetof(Process32, base), + "Invalid structure packing of `os::Process32`."); + +static_assert(8 == __builtin_offsetof(Process32, regs.edi), + "Invalid structure packing of `os::Process32`."); + +static_assert(40 == __builtin_offsetof(Process32, regs.eip), + "Invalid structure packing of `os::Process32`."); + +static_assert(44 == __builtin_offsetof(Process32, regs.eflags), + "Invalid structure packing of `os::Process32`."); + +} // namespace os +} // namespace granary + +#endif // GRANARY_OS_PROCESS_H_ diff --git a/granary/os/schedule.cc b/granary/os/schedule.cc new file mode 100644 index 0000000..f7b9af5 --- /dev/null +++ b/granary/os/schedule.cc @@ -0,0 +1,355 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/os/schedule.h" + +#include "granary/base/base.h" + +#include "granary/arch/fault.h" + +#include "granary/os/file.h" +#include "granary/os/syscall.h" + +#include "granary/code/cache.h" +#include "granary/code/coverage.h" +#include "granary/code/execute.h" + +#include +#include +#include + +namespace granary { +namespace os { +namespace { +enum : size_t { + kMaxNumSyscalls = 10485760 +}; + +extern "C" void granary_bad_block(void); + +// State that can be restored so that we can recover from `SIGINT` and `SIGTERM` +// and gracefully shut down in a way that persists our runtime state. +static sigjmp_buf gSigTermState; +static auto gSigTermStateValid = false; +static auto gIsRunning = true; + +// The signal that terminated `Schedule`, if any. +static auto gSigTermSignal = 0; + +// Create the file table. +static FileTable CreateFiles(size_t num_processes) { + FileTable files; + auto num_fds = 3 + (1 < num_processes ? num_processes * 2 : 0); + files.reserve(num_fds); + files.push_back(nullptr); // stdin. + files.push_back(nullptr); // stdout. + files.push_back(nullptr); // stderr. + if (1 < num_processes) { + for (auto i = 0UL; i < num_processes; ++i) { + auto file = new File; + files.push_back(file); + files.push_back(file); + } + } + return files; +} + +// Delete all open files. +static void DeleteFiles(FileTable files) { + for (auto fd = 3ULL; fd < files.size(); fd += 2) { + delete files[fd]; + } +} + +// Attaches a signal using `sigaction`. +extern "C" void sys_sigreturn(); +typedef void (SignalHandler) (int, siginfo_t *, void *); +static void signal(int signum, SignalHandler *handler) { + struct sigaction sig; + sig.sa_sigaction = handler; + sig.sa_flags = SA_SIGINFO; + sig.sa_restorer = sys_sigreturn; + sigfillset(&(sig.sa_mask)); + sigaction(signum, &sig, nullptr); +} + +// Handle termination (via an external or keyboard event). +static void CatchInterrupt(int sig, siginfo_t *, void *) { + cache::ClearInlineCache(); + + // If we are persisting stuff, then we might need to queue the interrupt + // until such a time where we know that various memory-mapped files are + // in a consistent state. + if (!IsInterruptible()) { + QueueInterrupt(sig); + return; + + // No idea where we are. We're going to try to just return from wherever + // we are and hope for the best! + } else if (!gSigTermStateValid) { + if (!gSigTermSignal && SIGUSR1 != sig) gSigTermSignal = sig; + gIsRunning = false; + return; + + // We're at a point of quiescence, deliver the interrupt. + } else { + gSigTermSignal = sig; + gSigTermStateValid = false; + siglongjmp(gSigTermState, false); + } +} + +// Handle termination (via an external or keyboard event). +[[noreturn]] +static void CatchNonMaskableInterrupt(int sig, siginfo_t *, void *) { + cache::ClearInlineCache(); + GRANARY_ASSERT(gSigTermStateValid && "Invalid re-use of `gSigTermState`."); + if (!gSigTermSignal && SIGUSR1 != sig) gSigTermSignal = sig; + gSigTermStateValid = false; + siglongjmp(gSigTermState, false); +} + +// Catch a segmentation fault and try to handle it. These can happen for a +// few reasons: +// +// 1) We are accessing some data in the user process that is protected. +// This is a recoverable fault. +// 2) We are writing to some data in the user process that is part of some +// RWX page, but the current state is RX, so we need to change states +// to RW. The next change back to RX invalidates the page hash. +// 3) The emulated user process faults. In this case, we want to catch this +// fault and break out of the interpreter loop. +// 4) The emulator itself faults. This is probably a bug. +static void CatchFault(int sig, siginfo_t *si, void *context_) { + cache::ClearInlineCache(); + + auto context = reinterpret_cast(context_); + granary_crash_pc = context->uc_mcontext.gregs[REG_RIP]; + granary_crash_addr = reinterpret_cast(si->si_addr); + + auto process = os::gProcess; + GRANARY_ASSERT(process); + process->signal = sig; + + const auto fault_addr64 = reinterpret_cast(si->si_addr); + const auto fault_rip64 = static_cast( + context->uc_mcontext.gregs[REG_RIP]); + + GRANARY_ASSERT(process->IsProcessAddress(fault_addr64)); + + const auto fault_addr32 = process->ConvertAddress( + reinterpret_cast(fault_addr64)); + + // Try to write to a RWX page in an RX state into the RW state, OR try to + // write to a demand-mapped page. + if (process->TryLazyMap(fault_addr32) || + process->TryMakeWritable(fault_addr32)) { + return; + } + + // Try to recover from a `TryWrite` or a `TryRead`. + // + // Note: This happens *after* the `TryMakeWritable` because that might + // cause us to implicitly recover. For example, if there's RWX data + // in the RX state, and we try to write to it from within a syscall, + // then we don't want to report an EFAULT when we actually need to + // change the page state to RW. + if (process->RecoverFromTryReadWrite(context)) { + return; + } + + // Make sure we faulted within the code cache. + GRANARY_ASSERT(cache::IsCachePC(fault_rip64)); + + // Fault in the emulated code, rather than within a syscall. Pull out the + // components of the address. + Addr32 base, index, scale, disp; + arch::DecomposeFaultAddr( + process, &base, &index, &scale, &disp, fault_addr32); + process->fault_addr = fault_addr32; + process->fault_base_addr = base; + process->fault_index_addr = index; + context->uc_mcontext.gregs[REG_RIP] = reinterpret_cast( + granary_bad_block); +} + +// Catch a crash. +static void CatchCrash(int sig, siginfo_t *, void *context_) { + cache::ClearInlineCache(); + + GRANARY_DEBUG( std::cerr << " CatchCrash " << sig << std::endl; ) + auto process = os::gProcess; + auto context = reinterpret_cast(context_); + + if (!process) { + granary_crash_pc = context->uc_mcontext.gregs[REG_RIP]; + GRANARY_ASSERT(false && "os::gProcess in CatchCrash is nullptr."); + } + + process->signal = sig; + + // Try to recover from a `TryWrite` or a `TryRead`. + if (SIGBUS == sig && process->RecoverFromTryReadWrite(context)) { + return; + } + + const auto fault_rip64 = static_cast( + context->uc_mcontext.gregs[REG_RIP]); + + // Make sure we faulted within the code cache. + GRANARY_ASSERT(cache::IsCachePC(fault_rip64)); + context->uc_mcontext.gregs[REG_RIP] = reinterpret_cast( + granary_bad_block); +} + +static bool gHasSigHandlers = false; + +static struct { int sig; SignalHandler *handler; } gSignalHandlers[] = { + {SIGINT, CatchInterrupt}, + {SIGTERM, CatchInterrupt}, + {SIGALRM, CatchInterrupt}, + {SIGPIPE, CatchInterrupt}, + {SIGUSR1, CatchNonMaskableInterrupt}, + {SIGSEGV, CatchFault}, + {SIGBUS, CatchCrash}, + {SIGFPE, CatchCrash}, + {SIGSTKFLT, CatchCrash}, + {SIGTRAP, CatchCrash}, + {SIGILL, CatchCrash} +}; + +// Set up various signal handlers. +static void SetupSignals(void) { + if (!gHasSigHandlers) { + gHasSigHandlers = true; + for (auto &pair : gSignalHandlers) { + signal(pair.sig, pair.handler); + } + } + sigset_t set; + sigemptyset(&set); + sigprocmask(SIG_SETMASK, &set, nullptr); +} + +// Perform the actual scheduling of processes. +__attribute__((noinline)) +static void Schedule(Process32Group &processes, FileTable &files) { + Interruptible enable_interrupts; + + // If we were interrupted, then interrupts will be disabled and we'll + // return from `DoSchedule`. + if (sigsetjmp(gSigTermState, true)) { + return; + } + gSigTermStateValid = true; + + auto num_syscalls = 0U; + for (auto made_progress = true; made_progress; ) { + made_progress = false; + + for (auto process : processes) { + + // The process terminated or crashed. + if (!process || + ProcessStatus::kError == process->status || + ProcessStatus::kIgnorableError == process->status || + ProcessStatus::kDone == process->status) { + continue; + } + + PushProcess32 set_process(process); + + + cache::ClearInlineCache(); + + // Allows us to repeat system calls that are in-progress. If the + // status is blocked then we'll try to perform a system call. + // + // Note: The initial state of `process_status` is `kSystemCall` even + // though it isn't really a system call. So initially we come in + // and execute, hopefully up to the first syscall. + if (ExecStatus::kReady == process->exec_status) { + continue_execution: + code::Execute(process); + made_progress = true; + } + + // We need to execute a system call. + if (ProcessStatus::kSystemCall == process->status) { + + // Hard limit on the number of syscalls to avoid OOM conditions. + if (num_syscalls++ >= kMaxNumSyscalls) { + made_progress = false; + break; + } + + // Disable interrupts; handling system calls modifies global state. + Uninterruptible disable_interrupts; + + code::MarkCoveredInputLength(); + + switch (SystemCall(process, files)) { + case SystemCallStatus::kTerminated: + GRANARY_DEBUG( std::cerr << process->Id() << " terminated" + << std::endl; ) + process->status = ProcessStatus::kDone; + break; + + case SystemCallStatus::kComplete: + process->exec_status = ExecStatus::kReady; + made_progress = true; + if (1 == processes.size() && gIsRunning) { + goto continue_execution; + } else { + break; + } + + case SystemCallStatus::kInProgress: + process->exec_status = ExecStatus::kBlocked; + break; + + case SystemCallStatus::kSleeping: + process->exec_status = ExecStatus::kBlocked; + made_progress = true; + break; + } + + // Hit some kind of error (e.g. runtime error or decode error) when + // executing the code. + } else if (ProcessStatus::kError == process->status) { + GRANARY_DEBUG( std::cerr << process->Id() << " crashed" << std::endl; ) + + // Unreachable case: this should never happen. + } else { + return; +// GRANARY_ASSERT(false && "Reached ProcessState::kDone directly from " +// "execute."); + } + } + + // Emulates a `SIGPIPE` if we don't make progress and we haven't already + // retried. + if (!made_progress) { + return; + } + } +} + +} // namespace + +// The main process scheduler. This is closely tied with the behavior of reads +// ands writes to `File` objects. +bool Run(Process32Group processes) { + auto files = CreateFiles(processes.size()); + SetupSignals(); + gSigTermStateValid = false; + memset(gSigTermState, 0, sizeof gSigTermState); + Schedule(processes, files); + gSigTermStateValid = false; + gSigTermSignal = 0; + os::gProcess = nullptr; + DeleteFiles(files); + return 0 != gSigTermSignal; +} + +} // namespace os +} // namespace granary diff --git a/granary/os/schedule.h b/granary/os/schedule.h new file mode 100644 index 0000000..01e1a37 --- /dev/null +++ b/granary/os/schedule.h @@ -0,0 +1,16 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_OS_SCHEDULE_H_ +#define GRANARY_OS_SCHEDULE_H_ + +#include "granary/os/process.h" + +namespace granary { +namespace os { + +bool Run(Process32Group processes); + +} // namespace os +} // namespace granary + +#endif // GRANARY_OS_SCHEDULE_H_ diff --git a/granary/os/snapshot.cc b/granary/os/snapshot.cc new file mode 100644 index 0000000..7d11364 --- /dev/null +++ b/granary/os/snapshot.cc @@ -0,0 +1,66 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "granary/os/snapshot.h" + +#include +#include +#include +#include + +namespace granary { +namespace os { +namespace detail { + +// Returns the page permissions for this mapped range. +PagePerms MappedRange32::Perms(void) const { + if (is_w && is_x) { + return PagePerms::kRWX; + } else if (is_x) { + return PagePerms::kRX; + } else if (is_w) { + return PagePerms::kRW; + } else { + return PagePerms::kRO; + } +} + +// Copies some snapshotted memory (stored in the file `snapshot_fd` to `mem`). +void MappedRange32::CopyFromFileIntoMem(int snapshot_fd, void *mem, + PageState state) const { + auto mem_base = reinterpret_cast(mem); + mem = reinterpret_cast(mem_base + begin); + + auto prot = 0; + switch (state) { + case PageState::kReserved: prot = PROT_NONE; break; + case PageState::kRO: prot = PROT_READ; break; + case PageState::kRW: prot = PROT_READ | PROT_WRITE; break; + case PageState::kRX: prot = PROT_READ; break; + } + + GRANARY_IF_ASSERT( errno = 0; ) + mmap64(mem, Size(), prot, MAP_PRIVATE | MAP_FIXED | MAP_NORESERVE, + snapshot_fd, fd_offs); + GRANARY_ASSERT(!errno && "Failed to copy snapshotted memory into process."); + + // Deal with lazily allocated pages. + if (begin < lazy_begin) { + mprotect(mem, lazy_begin - begin, PROT_NONE); + } +} + +} // namespace detail + +// Tears down the snapshot. +Snapshot32::~Snapshot32(void) { + munmap(const_cast(file), sizeof *file); + close(fd); +} + +// Revives a previously created snapshot file. +Snapshot32 *Snapshot32::Revive(int exe_num) { + return new Snapshot32(exe_num); +} + +} // namespace os +} // namespace granary diff --git a/granary/os/snapshot.h b/granary/os/snapshot.h new file mode 100644 index 0000000..304f6e6 --- /dev/null +++ b/granary/os/snapshot.h @@ -0,0 +1,99 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_OS_SNAPSHOT_H_ +#define GRANARY_OS_SNAPSHOT_H_ + +#include "granary/os/page.h" + +#include +#include + +#include +#include + +namespace granary { +namespace os { + +class Process32; + +namespace detail { + +// A range of mapped memory. +struct MappedRange32 final { + public: + inline size_t Size(void) const { + return end - begin; + } + + // Returns the page permissions for this mapped range. + PagePerms Perms(void) const; + + // Copies some snapshotted memory to `mem`. + void CopyFromFileIntoMem(int snapshot_fd, void *mem, PageState state) const; + + uint32_t fd_offs; + uint32_t begin; + uint32_t end; + uint32_t lazy_begin; + bool is_r; + bool is_w; + bool is_x; + uint8_t padding; +} __attribute__((packed)); + +// On-disk layout of a snapshot file. +struct alignas(kPageSize) Snapshot32File final { + public: + struct Meta { + struct { + char magic[4]; + int exe_num; + } __attribute__((packed)); + struct user_regs_struct gregs; + struct user_fpregs_struct fpregs; + }; + + Meta meta; + + enum { + kNumPages = 4, + kNumBytes = kNumPages * os::kPageSize, + + kMaxNumMappedRanges = (kNumBytes - sizeof(Meta)) / sizeof(MappedRange32) + }; + + MappedRange32 ranges[kMaxNumMappedRanges]; +}; + +} // namespace detail + +class Snapshot32 final { + public: + ~Snapshot32(void); + + // Revives a previously created snapshot file. + static Snapshot32 *Revive(int exe_num); + + // Creates the snapshot file. + static void Create(const char *exe_name, int exe_num); + + // Creates the snapshot from a process. + static void Create(const Process32 *); + + private: + friend class Process32; + + int fd; + int exe_num; + const detail::Snapshot32File *file; + + explicit Snapshot32(int exe_num_); + Snapshot32(void) = delete; +}; + +typedef std::vector SnapshotGroup; + +} // namespace os +} // namespace granary + +#endif // GRANARY_OS_SNAPSHOT_H_ diff --git a/granary/os/syscall.h b/granary/os/syscall.h new file mode 100644 index 0000000..c608259 --- /dev/null +++ b/granary/os/syscall.h @@ -0,0 +1,23 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef GRANARY_OS_SYSCALL_H_ +#define GRANARY_OS_SYSCALL_H_ + +#include "granary/os/file.h" + +namespace granary { +namespace os { + +enum class SystemCallStatus { + kTerminated, + kComplete, + kInProgress, + kSleeping +}; + +SystemCallStatus SystemCall(Process32 *process, FileTable &files); + +} // namespace os +} // namespace granary + +#endif // GRANARY_OS_SYSCALL_H_ diff --git a/play.cc b/play.cc new file mode 100644 index 0000000..9cea865 --- /dev/null +++ b/play.cc @@ -0,0 +1,469 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include "granary/arch/base.h" + +#include "granary/code/branch_tracer.h" +#include "granary/code/cache.h" +#include "granary/code/index.h" +#include "granary/code/coverage.h" + +#include "granary/input/record.h" +#include "granary/input/mutate.h" + +#include "granary/os/process.h" +#include "granary/os/snapshot.h" +#include "granary/os/schedule.h" + +#include "third_party/md5/md5.h" + +DEFINE_bool(about, false, "Show the compile date of grr."); + +DEFINE_string(snapshot_dir, "", "Directory where snapshots are stored."); + +DEFINE_string(output_snapshot_dir, "", "Directory where a state snapshot will " + "be placed. The state snapshot is taken " + "just before the first system call that " + "isn't a (de)allocate. Only one set of " + "snapshots are produced. If more are " + "needed then you need to 'walk up' to " + "one using repeated invocations."); + +DEFINE_int32(snapshot_before_input_byte, 0, + "Produce a snapshot file as late as possible but before the " + "Nth input byte is received."); + +DEFINE_bool(persist, true, "Should the code cache be persisted?"); + +DEFINE_string(persist_dir, "", "Directory path to where runtime state should " + "be persisted. This should be unique for a " + "given set of binaries."); + +DEFINE_int32(num_exe, 1, "Number of executables to run."); + +DEFINE_string(input, "", "Path to an input testcase to replay."); + +DEFINE_string(output_dir, "", "Directory where output testcases " + "are stored."); + +DEFINE_string(input_mutator, "", "What input testcase mutator should " + "be used for running the tests?"); + +DEFINE_int32(num_tests, 0, "The maximum number of testcases to run."); + +DEFINE_bool(remutate, false, "Enable remutating of some stuff."); + +DEFINE_bool(path_coverage, false, "Enable path code coverage?"); + +DEFINE_string(coverage_file, "/dev/null", + "File name in which to save the code coverage data. If " + "/dev/null is specified then the coverage file is not " + "mapped, but coverage instrumentation is enabled."); + +DEFINE_string(output_coverage_file, "/dev/null", + "File name in which to save the code coverage data. If " + "/dev/null is specified then the coverage file is not " + "mapped, but coverage instrumentation is enabled."); + +namespace granary { + +std::string gInput = ""; +extern "C" size_t gInputIndex = 0; + +namespace { + +enum { + kGiveUpAfterEmptyMutations = 5 +}; + +static input::IORecording *gRecordToMutate = nullptr; + +// Creates and returns a snapshot group, where each snapshot is the initial +// memory and register state of a bunch of related processes. +static os::SnapshotGroup CreateSnapshotGroup(void) { + os::SnapshotGroup snapshots; + snapshots.reserve(static_cast(FLAGS_num_exe)); + for (auto i = 1; i <= FLAGS_num_exe; ++i) { + snapshots.push_back(os::Snapshot32::Revive(i)); + } + return snapshots; +} + +// Creates and returns a process group from a snapshot group. +static os::Process32Group CreateProcess32Group( + const os::SnapshotGroup &snapshots) { + os::Process32Group processes; + processes.reserve(snapshots.size()); + for (const auto &snapshot : snapshots) { + processes.push_back(os::Process32::Revive(snapshot)); + } + return processes; +} + +static bool IsCrash(const granary::os::Process32Group &processes) { + for (auto process : processes) { + if (granary::os::ProcessStatus::kError == process->status) { + return true; + } + } + return false; +} + +static void PublishNewInput(std::string &&input, + bool is_crash, + bool covered_new_code) { + GRANARY_ASSERT(!FLAGS_output_dir.empty()); + + if (!input.size()) { + return; + } + + std::stringstream final_path; + std::stringstream temp_path; + temp_path << FLAGS_output_dir << "/.tmp"; + final_path << FLAGS_output_dir << "/"; + + // Try to create a temporary output directory for this input. + std::string temp_dir = temp_path.str(); + mkdir(temp_dir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); + errno = 0; // Suppress failures to make the directory. + + temp_path << "/"; + if (is_crash) { + temp_path << "crash." << getpid(); + final_path << "crash."; + } else { + temp_path << "input." << getpid(); + final_path << "input."; + } + + auto temp_file = temp_path.str(); + auto fd = open( + temp_file.c_str(), O_CREAT | O_TRUNC | O_RDWR | O_LARGEFILE, 0666); + GRANARY_ASSERT(!errno && "Unable to open the temp output file."); + + write(fd, input.c_str(), input.size()); + GRANARY_ASSERT(!errno && "Unable to write the temp output file."); + + close(fd); + + // Name the file in terms of its code coverage, and the input byte index + // after which new code coverage was first detected. + if (!is_crash && covered_new_code) { + final_path << "cov." << code::PathCoverageHash(); + + // Number of paths covered. + final_path << ".size." << code::GetNumCoveredPaths(); + + // Append to the name the index of first input character after which + // new coverage is produced. + if (covered_new_code) { + auto ilen = code::GetCoveredInputLength(); + if (ilen < gInput.size()) { + final_path << ".at." << ilen; + } + } + + // Name the file in terms of its data. + } else { + final_path << "data."; + MD5 hash; + hash.update(input); + hash.finalize(); + final_path << hash.hexdigest(); + } + + + // Atomically make the new file visible. This permits polling of the output + // directory that will see a consistent view of all the files. + auto final_file = final_path.str(); + if (0 != rename(temp_file.c_str(), final_file.c_str())) { + errno = 0; + unlink(temp_file.c_str()); + GRANARY_ASSERT(!errno && "Couldn't remove temporary testcase."); + GRANARY_ASSERT(false && "Couldn't publish testcase to output directory."); + } +} + +// Runs a testcase, and return `true` if we should continue running. +static bool RunTestCase(const granary::os::SnapshotGroup &snapshot_group) { + auto process_group = CreateProcess32Group(snapshot_group); + + // Record the individual syscalls executed. + auto first_execution = !gRecordToMutate; + auto mutating = !FLAGS_input_mutator.empty(); + auto publishing = !FLAGS_output_dir.empty(); + + input::gRecord = new input::IORecording; + gInputIndex = 0; + + code::BeginPathCoverage(); + auto got_term_signal = os::Run(process_group); + code::EndPathCoverage(); + + std::string output; + + const auto is_crash = IsCrash(process_group); + const auto covered_new_code = code::CoveredNewPaths(); + if (publishing) { + + // If we're doing a mutation run, the the first execution is really just + // a way of setting up an initial recording of the input test for later + // mutation, so we don't want to publish it because that would be redundant. + // That is, we expect that what we get as input for mutation has already + // been processed and therefore cannot contribute new information to a + // downstream tool. + if (mutating) { + if (!first_execution && (is_crash || covered_new_code)) { + output = input::gRecord->ToInput(); + } + + // We're not mutating, so this is probably a "speculative" replay of some + // input, where we don't know if the whole input will be processed by + // the program. In this case, we want to produce an output that represents + // a "corrected" version of the supplied input. + // + // This is useful for handling input mutated by a third-party system. That + // system produces an input, but we want to preserve only the consumed parts + // of that information. + } else { + output = input::gRecord->ToInput(); + } + + if (!output.empty()) { + PublishNewInput(std::move(output), is_crash, covered_new_code); + } + } + + // If we found a crash, then reset how me measure code coverage because we + // don't want the crash coverage to prevent future publication of non- + // crashing inputs that cover some of the new but same paths that the + // crashing input covered. + if (is_crash) { + code::ResetPathCoverage(); + } + + // We want to mutate code. + if (mutating) { + if (!gRecordToMutate) { + gRecordToMutate = input::gRecord; + input::gRecord = nullptr; + + // We're running a mutator, and the user has requested that we perform + // input remutation when an input yields something "new" or interesting. + // In this case, this is a kind of hill climbing, where when we find + // new coverage, we set this new input as the one to mutate in the future. + } else if (FLAGS_remutate && covered_new_code && !first_execution) { + delete gRecordToMutate; + gRecordToMutate = input::gRecord; + input::gRecord = nullptr; + } + } + + // No longer need the record if it's still hanging around. + if (input::gRecord) { + delete input::gRecord; + input::gRecord = nullptr; + } + + // The user wants us to stop, so clean up even if we wanted to continue. + if (got_term_signal && gRecordToMutate) { + delete gRecordToMutate; + gRecordToMutate = nullptr; + } + + for (auto process : process_group) { + delete process; + } + + // If we weren't signaled, then we can keep going. + return !got_term_signal; +} + +} // namespace +} // namespace granary + +extern "C" int main(int argc, char **argv, char **) { + using namespace granary; + google::SetUsageMessage(std::string(argv[0]) + " [options]"); + google::ParseCommandLineFlags(&argc, &argv, false); + + if (FLAGS_about) { + std::cerr << __DATE__ ", " __TIME__ << std::endl; + return EXIT_SUCCESS; + } + + if (0 >= FLAGS_num_exe) { + std::cerr << "One or more executables must be available." << std::endl; + return EXIT_FAILURE; + } + + if (FLAGS_snapshot_dir.empty()) { + std::cerr << "Must provide a unique path to a directory where the " + << "snapshots are located persisted." << std::endl; + return EXIT_FAILURE; + } + + if (FLAGS_persist) { + if (FLAGS_persist_dir.empty()) { + std::cerr << "Must provide a unique path to a directory where the " + << "runtime state can be persisted." << std::endl; + return EXIT_FAILURE; + } + mkdir(FLAGS_persist_dir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); + errno = 0; // Suppress failures to make the directory. + } + + // Make sure we have a place to output testcases, as well as a special + // temporary directory for collecting testcases before we move them into + // the main directory. + if (!FLAGS_output_dir.empty()) { + mkdir(FLAGS_output_dir.c_str(), + S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); + errno = 0; // Suppress failures to make the directory. + + mkdir((FLAGS_output_dir + "/.tmp").c_str(), + S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); + errno = 0; // Suppress failures to make the directory. + } + + if (!FLAGS_input_mutator.empty() && FLAGS_output_dir.empty()) { + std::cerr << "Must specify --output_dir if using --input_mutator." + << std::endl; + return EXIT_FAILURE; + } + + // Make sure we have a place to output snapshots, as well as a special + // temporary directory for collecting snapshots before we move them into + // the main directory. + if (!FLAGS_output_snapshot_dir.empty()) { + mkdir(FLAGS_output_snapshot_dir.c_str(), + S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); + errno = 0; // Suppress failures to make the directory. + + mkdir((FLAGS_output_snapshot_dir + "/.tmp").c_str(), + S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); + errno = 0; // Suppress failures to make the directory. + } else { + FLAGS_snapshot_before_input_byte = 0; + } + + // Read in the input file. + if (!FLAGS_input.empty()) { + errno = 0; + auto fd = open(FLAGS_input.c_str(), O_RDONLY | O_CLOEXEC | O_LARGEFILE); + if (errno) { + std::cerr << "Cannot open or parse file: " << FLAGS_input << std::endl; + return EXIT_FAILURE; + } + + struct stat file_info; + fstat(fd, &file_info); + GRANARY_ASSERT(!errno && "Unable to stat the input file."); + + auto size = static_cast(file_info.st_size); + if (size) { + gInput.resize(size); + read(fd, const_cast(gInput.data()), size); // Super sketchy. + GRANARY_ASSERT(!errno && "Unable to read input file data."); + } + } + + // We'll only allow ourselves to be interrupted by specific locations in + // `os::Schedule`. + Uninterruptible disable_interrupts; + + auto snapshot_group = CreateSnapshotGroup(); + + code::InitBranchTracer(); + code::InitPathCoverage(); + arch::Init(); + index::Init(); + cache::Init(); + + // Start by running the individual testcase. This acts as the normal replayer. + // If branch coverage is enabled, then this also establishes the "base case" + // for coverage that will determine if other tests are published. + if (RunTestCase(snapshot_group) && + !FLAGS_input_mutator.empty()) { + + // Now try to mutate the input testcase using the mutator specified in the + // command-line arguments. + input::gRecord = new input::IORecording; + + while (gRecordToMutate) { + auto old_record_to_mutate = gRecordToMutate; + auto mutator = input::Mutator::Create( + gRecordToMutate, FLAGS_input_mutator); + + gInput.clear(); + while (mutator && gRecordToMutate) { + + for (auto empty = 0; + gInput.empty() && empty < kGiveUpAfterEmptyMutations; + ++empty) { + gInput = mutator->RequestMutation(); + } + + // Done mutating. + if (gInput.empty()) { + delete gRecordToMutate; + gRecordToMutate = nullptr; + break; + } + + if (HasPendingInterrupt() || + !RunTestCase(snapshot_group) || + HasPendingInterrupt()) { + + if (gRecordToMutate) { + delete gRecordToMutate; + gRecordToMutate = nullptr; + break; + } + + } else if (old_record_to_mutate != gRecordToMutate) { + delete mutator; + mutator = input::Mutator::Create( + gRecordToMutate, FLAGS_input_mutator); + } + } + delete mutator; + } + } + + MutePendingInterrupt(); + + if (gRecordToMutate) { + delete gRecordToMutate; + gRecordToMutate = nullptr; + } + + if (input::gRecord) { + delete input::gRecord; + input::gRecord = nullptr; + } + + for (auto snapshot : snapshot_group) { + delete snapshot; + } + + arch::Exit(); + index::Exit(); + cache::Exit(); + code::ExitPathCoverage(); + code::ExitBranchTracer(); + + return EXIT_SUCCESS; +} diff --git a/snapshot.cc b/snapshot.cc new file mode 100644 index 0000000..a2d1752 --- /dev/null +++ b/snapshot.cc @@ -0,0 +1,88 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include +#include +#include +#include +#include + +#include + +#include "granary/os/snapshot.h" + +DEFINE_bool(about, false, "Show the compile date of grr."); + +DEFINE_string(snapshot_dir, "", "Directory where snapshots are be stored."); + +DEFINE_string(output_snapshot_dir, "", "Directory where a state snapshot will " + "be placed. The state snapshot is taken " + "just before the first system call that " + "isn't a (de)allocate. Only one set of " + "snapshots are produced. If more are " + "needed then you need to 'walk up' to " + "one using repeated invocations."); + +DEFINE_string(exe_dir, "", "Path to the directory containing executables " + "1 through N, where N is `--num_exe`."); + +DEFINE_string(exe_prefix, "", "Prefix of each executable name."); + +DEFINE_int32(num_exe, 1, "Number of executables to run."); + +namespace granary { +namespace { + +// Name of the executable to snapshot. +static char gExeName[256] = {'\0'}; + +// Fail if `gExeName` is not an executable file. +static void AssertExecutableExists(void) { + struct stat file_info; + if (stat(gExeName, &file_info) || !(file_info.st_mode & S_IXUSR)) { + std::cerr << "File `" << gExeName << "` does not exist or is not " + << "executable" << std::endl; + exit(EXIT_FAILURE); + } +} + +} // namespace +} // namespace granary + +extern "C" int main(int argc, char **argv, char **) { + using namespace granary; + gflags::SetUsageMessage("grr_snapshot [options]"); + gflags::ParseCommandLineFlags(&argc, &argv, false); + + FLAGS_output_snapshot_dir = FLAGS_snapshot_dir; + + if (FLAGS_about) { + std::cerr << __DATE__ ", " __TIME__ << std::endl; + return EXIT_SUCCESS; + } + + if (0 >= FLAGS_num_exe) { + std::cerr << "One or more executables must be available." << std::endl; + return EXIT_FAILURE; + } + + if (FLAGS_snapshot_dir.empty()) { + std::cerr << "Must provide a unique path to a directory where the " + << "snapshots are located persisted." << std::endl; + return EXIT_FAILURE; + } else { + mkdir(FLAGS_snapshot_dir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); + } + + signal(SIGCHLD, SIG_IGN); + + // Create the various snapshot files. + for (auto i = 1; i <= FLAGS_num_exe; ++i) { + sprintf(gExeName, "%s/%s%04x", FLAGS_exe_dir.c_str(), + FLAGS_exe_prefix.c_str(), i); + AssertExecutableExists(); + os::Snapshot32::Create(gExeName, i); + } + + return 0; +} + diff --git a/third_party/gflags/AUTHORS.txt b/third_party/gflags/AUTHORS.txt new file mode 100644 index 0000000..887918b --- /dev/null +++ b/third_party/gflags/AUTHORS.txt @@ -0,0 +1,2 @@ +google-gflags@googlegroups.com + diff --git a/third_party/gflags/COPYING.txt b/third_party/gflags/COPYING.txt new file mode 100644 index 0000000..d15b0c2 --- /dev/null +++ b/third_party/gflags/COPYING.txt @@ -0,0 +1,28 @@ +Copyright (c) 2006, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/gflags/include/gflags/gflags.h b/third_party/gflags/include/gflags/gflags.h new file mode 100644 index 0000000..7ead263 --- /dev/null +++ b/third_party/gflags/include/gflags/gflags.h @@ -0,0 +1,573 @@ +// Copyright (c) 2006, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// --- +// Revamped and reorganized by Craig Silverstein +// +// This is the file that should be included by any file which declares +// or defines a command line flag or wants to parse command line flags +// or print a program usage message (which will include information about +// flags). Executive summary, in the form of an example foo.cc file: +// +// #include "foo.h" // foo.h has a line "DECLARE_int32(start);" +// #include "validators.h" // hypothetical file defining ValidateIsFile() +// +// DEFINE_int32(end, 1000, "The last record to read"); +// +// DEFINE_string(filename, "my_file.txt", "The file to read"); +// // Crash if the specified file does not exist. +// static bool dummy = RegisterFlagValidator(&FLAGS_filename, +// &ValidateIsFile); +// +// DECLARE_bool(verbose); // some other file has a DEFINE_bool(verbose, ...) +// +// void MyFunc() { +// if (FLAGS_verbose) printf("Records %d-%d\n", FLAGS_start, FLAGS_end); +// } +// +// Then, at the command-line: +// ./foo --noverbose --start=5 --end=100 +// +// For more details, see +// doc/gflags.html +// +// --- A note about thread-safety: +// +// We describe many functions in this routine as being thread-hostile, +// thread-compatible, or thread-safe. Here are the meanings we use: +// +// thread-safe: it is safe for multiple threads to call this routine +// (or, when referring to a class, methods of this class) +// concurrently. +// thread-hostile: it is not safe for multiple threads to call this +// routine (or methods of this class) concurrently. In gflags, +// most thread-hostile routines are intended to be called early in, +// or even before, main() -- that is, before threads are spawned. +// thread-compatible: it is safe for multiple threads to read from +// this variable (when applied to variables), or to call const +// methods of this class (when applied to classes), as long as no +// other thread is writing to the variable or calling non-const +// methods of this class. + +#ifndef GFLAGS_GFLAGS_H_ +#define GFLAGS_GFLAGS_H_ + +#include +#include + +#include "../../../../third_party/gflags/include/gflags/gflags_declare.h" // IWYU pragma: export + + +// We always want to export variables defined in user code +#ifndef GFLAGS_DLL_DEFINE_FLAG +# ifdef _MSC_VER +# define GFLAGS_DLL_DEFINE_FLAG __declspec(dllexport) +# else +# define GFLAGS_DLL_DEFINE_FLAG +# endif +#endif + + +namespace GFLAGS_NAMESPACE { + + +// -------------------------------------------------------------------- +// To actually define a flag in a file, use DEFINE_bool, +// DEFINE_string, etc. at the bottom of this file. You may also find +// it useful to register a validator with the flag. This ensures that +// when the flag is parsed from the commandline, or is later set via +// SetCommandLineOption, we call the validation function. It is _not_ +// called when you assign the value to the flag directly using the = operator. +// +// The validation function should return true if the flag value is valid, and +// false otherwise. If the function returns false for the new setting of the +// flag, the flag will retain its current value. If it returns false for the +// default value, ParseCommandLineFlags() will die. +// +// This function is safe to call at global construct time (as in the +// example below). +// +// Example use: +// static bool ValidatePort(const char* flagname, int32 value) { +// if (value > 0 && value < 32768) // value is ok +// return true; +// printf("Invalid value for --%s: %d\n", flagname, (int)value); +// return false; +// } +// DEFINE_int32(port, 0, "What port to listen on"); +// static bool dummy = RegisterFlagValidator(&FLAGS_port, &ValidatePort); + +// Returns true if successfully registered, false if not (because the +// first argument doesn't point to a command-line flag, or because a +// validator is already registered for this flag). +extern GFLAGS_DLL_DECL bool RegisterFlagValidator(const bool* flag, bool (*validate_fn)(const char*, bool)); +extern GFLAGS_DLL_DECL bool RegisterFlagValidator(const int32* flag, bool (*validate_fn)(const char*, int32)); +extern GFLAGS_DLL_DECL bool RegisterFlagValidator(const int64* flag, bool (*validate_fn)(const char*, int64)); +extern GFLAGS_DLL_DECL bool RegisterFlagValidator(const uint64* flag, bool (*validate_fn)(const char*, uint64)); +extern GFLAGS_DLL_DECL bool RegisterFlagValidator(const double* flag, bool (*validate_fn)(const char*, double)); +extern GFLAGS_DLL_DECL bool RegisterFlagValidator(const std::string* flag, bool (*validate_fn)(const char*, const std::string&)); + +// Convenience macro for the registration of a flag validator +#define DEFINE_validator(name, validator) \ + static const bool name##_validator_registered = \ + GFLAGS_NAMESPACE::RegisterFlagValidator(&FLAGS_##name, validator) + + +// -------------------------------------------------------------------- +// These methods are the best way to get access to info about the +// list of commandline flags. Note that these routines are pretty slow. +// GetAllFlags: mostly-complete info about the list, sorted by file. +// ShowUsageWithFlags: pretty-prints the list to stdout (what --help does) +// ShowUsageWithFlagsRestrict: limit to filenames with restrict as a substr +// +// In addition to accessing flags, you can also access argv[0] (the program +// name) and argv (the entire commandline), which we sock away a copy of. +// These variables are static, so you should only set them once. +// +// No need to export this data only structure from DLL, avoiding VS warning 4251. +struct CommandLineFlagInfo { + std::string name; // the name of the flag + std::string type; // the type of the flag: int32, etc + std::string description; // the "help text" associated with the flag + std::string current_value; // the current value, as a string + std::string default_value; // the default value, as a string + std::string filename; // 'cleaned' version of filename holding the flag + bool has_validator_fn; // true if RegisterFlagValidator called on this flag + bool is_default; // true if the flag has the default value and + // has not been set explicitly from the cmdline + // or via SetCommandLineOption + const void* flag_ptr; // pointer to the flag's current value (i.e. FLAGS_foo) +}; + +// Using this inside of a validator is a recipe for a deadlock. +// TODO(user) Fix locking when validators are running, to make it safe to +// call validators during ParseAllFlags. +// Also make sure then to uncomment the corresponding unit test in +// gflags_unittest.sh +extern GFLAGS_DLL_DECL void GetAllFlags(std::vector* OUTPUT); +// These two are actually defined in gflags_reporting.cc. +extern GFLAGS_DLL_DECL void ShowUsageWithFlags(const char *argv0); // what --help does +extern GFLAGS_DLL_DECL void ShowUsageWithFlagsRestrict(const char *argv0, const char *restrict); + +// Create a descriptive string for a flag. +// Goes to some trouble to make pretty line breaks. +extern GFLAGS_DLL_DECL std::string DescribeOneFlag(const CommandLineFlagInfo& flag); + +// Thread-hostile; meant to be called before any threads are spawned. +extern GFLAGS_DLL_DECL void SetArgv(int argc, const char** argv); + +// The following functions are thread-safe as long as SetArgv() is +// only called before any threads start. +extern GFLAGS_DLL_DECL const std::vector& GetArgvs(); +extern GFLAGS_DLL_DECL const char* GetArgv(); // all of argv as a string +extern GFLAGS_DLL_DECL const char* GetArgv0(); // only argv0 +extern GFLAGS_DLL_DECL uint32 GetArgvSum(); // simple checksum of argv +extern GFLAGS_DLL_DECL const char* ProgramInvocationName(); // argv0, or "UNKNOWN" if not set +extern GFLAGS_DLL_DECL const char* ProgramInvocationShortName(); // basename(argv0) + +// ProgramUsage() is thread-safe as long as SetUsageMessage() is only +// called before any threads start. +extern GFLAGS_DLL_DECL const char* ProgramUsage(); // string set by SetUsageMessage() + +// VersionString() is thread-safe as long as SetVersionString() is only +// called before any threads start. +extern GFLAGS_DLL_DECL const char* VersionString(); // string set by SetVersionString() + + + +// -------------------------------------------------------------------- +// Normally you access commandline flags by just saying "if (FLAGS_foo)" +// or whatever, and set them by calling "FLAGS_foo = bar" (or, more +// commonly, via the DEFINE_foo macro). But if you need a bit more +// control, we have programmatic ways to get/set the flags as well. +// These programmatic ways to access flags are thread-safe, but direct +// access is only thread-compatible. + +// Return true iff the flagname was found. +// OUTPUT is set to the flag's value, or unchanged if we return false. +extern GFLAGS_DLL_DECL bool GetCommandLineOption(const char* name, std::string* OUTPUT); + +// Return true iff the flagname was found. OUTPUT is set to the flag's +// CommandLineFlagInfo or unchanged if we return false. +extern GFLAGS_DLL_DECL bool GetCommandLineFlagInfo(const char* name, CommandLineFlagInfo* OUTPUT); + +// Return the CommandLineFlagInfo of the flagname. exit() if name not found. +// Example usage, to check if a flag's value is currently the default value: +// if (GetCommandLineFlagInfoOrDie("foo").is_default) ... +extern GFLAGS_DLL_DECL CommandLineFlagInfo GetCommandLineFlagInfoOrDie(const char* name); + +enum GFLAGS_DLL_DECL FlagSettingMode { + // update the flag's value (can call this multiple times). + SET_FLAGS_VALUE, + // update the flag's value, but *only if* it has not yet been updated + // with SET_FLAGS_VALUE, SET_FLAG_IF_DEFAULT, or "FLAGS_xxx = nondef". + SET_FLAG_IF_DEFAULT, + // set the flag's default value to this. If the flag has not yet updated + // yet (via SET_FLAGS_VALUE, SET_FLAG_IF_DEFAULT, or "FLAGS_xxx = nondef") + // change the flag's current value to the new default value as well. + SET_FLAGS_DEFAULT +}; + +// Set a particular flag ("command line option"). Returns a string +// describing the new value that the option has been set to. The +// return value API is not well-specified, so basically just depend on +// it to be empty if the setting failed for some reason -- the name is +// not a valid flag name, or the value is not a valid value -- and +// non-empty else. + +// SetCommandLineOption uses set_mode == SET_FLAGS_VALUE (the common case) +extern GFLAGS_DLL_DECL std::string SetCommandLineOption (const char* name, const char* value); +extern GFLAGS_DLL_DECL std::string SetCommandLineOptionWithMode(const char* name, const char* value, FlagSettingMode set_mode); + + +// -------------------------------------------------------------------- +// Saves the states (value, default value, whether the user has set +// the flag, registered validators, etc) of all flags, and restores +// them when the FlagSaver is destroyed. This is very useful in +// tests, say, when you want to let your tests change the flags, but +// make sure that they get reverted to the original states when your +// test is complete. +// +// Example usage: +// void TestFoo() { +// FlagSaver s1; +// FLAG_foo = false; +// FLAG_bar = "some value"; +// +// // test happens here. You can return at any time +// // without worrying about restoring the FLAG values. +// } +// +// Note: This class is marked with GFLAGS_ATTRIBUTE_UNUSED because all +// the work is done in the constructor and destructor, so in the standard +// usage example above, the compiler would complain that it's an +// unused variable. +// +// This class is thread-safe. However, its destructor writes to +// exactly the set of flags that have changed value during its +// lifetime, so concurrent _direct_ access to those flags +// (i.e. FLAGS_foo instead of {Get,Set}CommandLineOption()) is unsafe. + +class GFLAGS_DLL_DECL FlagSaver { + public: + FlagSaver(); + ~FlagSaver(); + + private: + class FlagSaverImpl* impl_; // we use pimpl here to keep API steady + + FlagSaver(const FlagSaver&); // no copying! + void operator=(const FlagSaver&); +}__attribute((unused)); + +// -------------------------------------------------------------------- +// Some deprecated or hopefully-soon-to-be-deprecated functions. + +// This is often used for logging. TODO(csilvers): figure out a better way +extern GFLAGS_DLL_DECL std::string CommandlineFlagsIntoString(); +// Usually where this is used, a FlagSaver should be used instead. +extern GFLAGS_DLL_DECL +bool ReadFlagsFromString(const std::string& flagfilecontents, + const char* prog_name, + bool errors_are_fatal); // uses SET_FLAGS_VALUE + +// These let you manually implement --flagfile functionality. +// DEPRECATED. +extern GFLAGS_DLL_DECL bool AppendFlagsIntoFile(const std::string& filename, const char* prog_name); +extern GFLAGS_DLL_DECL bool ReadFromFlagsFile(const std::string& filename, const char* prog_name, bool errors_are_fatal); // uses SET_FLAGS_VALUE + + +// -------------------------------------------------------------------- +// Useful routines for initializing flags from the environment. +// In each case, if 'varname' does not exist in the environment +// return defval. If 'varname' does exist but is not valid +// (e.g., not a number for an int32 flag), abort with an error. +// Otherwise, return the value. NOTE: for booleans, for true use +// 't' or 'T' or 'true' or '1', for false 'f' or 'F' or 'false' or '0'. + +extern GFLAGS_DLL_DECL bool BoolFromEnv(const char *varname, bool defval); +extern GFLAGS_DLL_DECL int32 Int32FromEnv(const char *varname, int32 defval); +extern GFLAGS_DLL_DECL int64 Int64FromEnv(const char *varname, int64 defval); +extern GFLAGS_DLL_DECL uint64 Uint64FromEnv(const char *varname, uint64 defval); +extern GFLAGS_DLL_DECL double DoubleFromEnv(const char *varname, double defval); +extern GFLAGS_DLL_DECL const char *StringFromEnv(const char *varname, const char *defval); + + +// -------------------------------------------------------------------- +// The next two functions parse gflags from main(): + +// Set the "usage" message for this program. For example: +// string usage("This program does nothing. Sample usage:\n"); +// usage += argv[0] + " "; +// SetUsageMessage(usage); +// Do not include commandline flags in the usage: we do that for you! +// Thread-hostile; meant to be called before any threads are spawned. +extern GFLAGS_DLL_DECL void SetUsageMessage(const std::string& usage); + +// Sets the version string, which is emitted with --version. +// For instance: SetVersionString("1.3"); +// Thread-hostile; meant to be called before any threads are spawned. +extern GFLAGS_DLL_DECL void SetVersionString(const std::string& version); + + +// Looks for flags in argv and parses them. Rearranges argv to put +// flags first, or removes them entirely if remove_flags is true. +// If a flag is defined more than once in the command line or flag +// file, the last definition is used. Returns the index (into argv) +// of the first non-flag argument. +// See top-of-file for more details on this function. +#ifndef SWIG // In swig, use ParseCommandLineFlagsScript() instead. +extern GFLAGS_DLL_DECL uint32 ParseCommandLineFlags(int *argc, char*** argv, bool remove_flags); +#endif + + +// Calls to ParseCommandLineNonHelpFlags and then to +// HandleCommandLineHelpFlags can be used instead of a call to +// ParseCommandLineFlags during initialization, in order to allow for +// changing default values for some FLAGS (via +// e.g. SetCommandLineOptionWithMode calls) between the time of +// command line parsing and the time of dumping help information for +// the flags as a result of command line parsing. If a flag is +// defined more than once in the command line or flag file, the last +// definition is used. Returns the index (into argv) of the first +// non-flag argument. (If remove_flags is true, will always return 1.) +extern GFLAGS_DLL_DECL uint32 ParseCommandLineNonHelpFlags(int *argc, char*** argv, bool remove_flags); + +// This is actually defined in gflags_reporting.cc. +// This function is misnamed (it also handles --version, etc.), but +// it's too late to change that now. :-( +extern GFLAGS_DLL_DECL void HandleCommandLineHelpFlags(); // in gflags_reporting.cc + +// Allow command line reparsing. Disables the error normally +// generated when an unknown flag is found, since it may be found in a +// later parse. Thread-hostile; meant to be called before any threads +// are spawned. +extern GFLAGS_DLL_DECL void AllowCommandLineReparsing(); + +// Reparse the flags that have not yet been recognized. Only flags +// registered since the last parse will be recognized. Any flag value +// must be provided as part of the argument using "=", not as a +// separate command line argument that follows the flag argument. +// Intended for handling flags from dynamically loaded libraries, +// since their flags are not registered until they are loaded. +extern GFLAGS_DLL_DECL void ReparseCommandLineNonHelpFlags(); + +// Clean up memory allocated by flags. This is only needed to reduce +// the quantity of "potentially leaked" reports emitted by memory +// debugging tools such as valgrind. It is not required for normal +// operation, or for the google perftools heap-checker. It must only +// be called when the process is about to exit, and all threads that +// might access flags are quiescent. Referencing flags after this is +// called will have unexpected consequences. This is not safe to run +// when multiple threads might be running: the function is +// thread-hostile. +extern GFLAGS_DLL_DECL void ShutDownCommandLineFlags(); + + +// -------------------------------------------------------------------- +// Now come the command line flag declaration/definition macros that +// will actually be used. They're kind of hairy. A major reason +// for this is initialization: we want people to be able to access +// variables in global constructors and have that not crash, even if +// their global constructor runs before the global constructor here. +// (Obviously, we can't guarantee the flags will have the correct +// default value in that case, but at least accessing them is safe.) +// The only way to do that is have flags point to a static buffer. +// So we make one, using a union to ensure proper alignment, and +// then use placement-new to actually set up the flag with the +// correct default value. In the same vein, we have to worry about +// flag access in global destructors, so FlagRegisterer has to be +// careful never to destroy the flag-values it constructs. +// +// Note that when we define a flag variable FLAGS_, we also +// preemptively define a junk variable, FLAGS_no. This is to +// cause a link-time error if someone tries to define 2 flags with +// names like "logging" and "nologging". We do this because a bool +// flag FLAG can be set from the command line to true with a "-FLAG" +// argument, and to false with a "-noFLAG" argument, and so this can +// potentially avert confusion. +// +// We also put flags into their own namespace. It is purposefully +// named in an opaque way that people should have trouble typing +// directly. The idea is that DEFINE puts the flag in the weird +// namespace, and DECLARE imports the flag from there into the current +// namespace. The net result is to force people to use DECLARE to get +// access to a flag, rather than saying "extern GFLAGS_DLL_DECL bool FLAGS_whatever;" +// or some such instead. We want this so we can put extra +// functionality (like sanity-checking) in DECLARE if we want, and +// make sure it is picked up everywhere. +// +// We also put the type of the variable in the namespace, so that +// people can't DECLARE_int32 something that they DEFINE_bool'd +// elsewhere. + +class GFLAGS_DLL_DECL FlagRegisterer { + public: + FlagRegisterer(const char* name, const char* type, + const char* help, const char* filename, + void* current_storage, void* defvalue_storage); +}; + +// If your application #defines STRIP_FLAG_HELP to a non-zero value +// before #including this file, we remove the help message from the +// binary file. This can reduce the size of the resulting binary +// somewhat, and may also be useful for security reasons. + +extern GFLAGS_DLL_DECL const char kStrippedFlagHelp[]; + + +} // namespace GFLAGS_NAMESPACE + + +#ifndef SWIG // In swig, ignore the main flag declarations + +#if defined(STRIP_FLAG_HELP) && STRIP_FLAG_HELP > 0 +// Need this construct to avoid the 'defined but not used' warning. +#define MAYBE_STRIPPED_HELP(txt) \ + (false ? (txt) : GFLAGS_NAMESPACE::kStrippedFlagHelp) +#else +#define MAYBE_STRIPPED_HELP(txt) txt +#endif + +// Each command-line flag has two variables associated with it: one +// with the current value, and one with the default value. However, +// we have a third variable, which is where value is assigned; it's a +// constant. This guarantees that FLAG_##value is initialized at +// static initialization time (e.g. before program-start) rather than +// than global construction time (which is after program-start but +// before main), at least when 'value' is a compile-time constant. We +// use a small trick for the "default value" variable, and call it +// FLAGS_no. This serves the second purpose of assuring a +// compile error if someone tries to define a flag named no +// which is illegal (--foo and --nofoo both affect the "foo" flag). +#define DEFINE_VARIABLE(type, shorttype, name, value, help) \ + namespace fL##shorttype { \ + static const type FLAGS_nono##name = value; \ + /* We always want to export defined variables, dll or no */ \ + GFLAGS_DLL_DEFINE_FLAG type FLAGS_##name = FLAGS_nono##name; \ + type FLAGS_no##name = FLAGS_nono##name; \ + static GFLAGS_NAMESPACE::FlagRegisterer o_##name( \ + #name, #type, MAYBE_STRIPPED_HELP(help), __FILE__, \ + &FLAGS_##name, &FLAGS_no##name); \ + } \ + using fL##shorttype::FLAGS_##name + +// For DEFINE_bool, we want to do the extra check that the passed-in +// value is actually a bool, and not a string or something that can be +// coerced to a bool. These declarations (no definition needed!) will +// help us do that, and never evaluate From, which is important. +// We'll use 'sizeof(IsBool(val))' to distinguish. This code requires +// that the compiler have different sizes for bool & double. Since +// this is not guaranteed by the standard, we check it with a +// COMPILE_ASSERT. +namespace fLB { +struct CompileAssert {}; +typedef CompileAssert expected_sizeof_double_neq_sizeof_bool[ + (sizeof(double) != sizeof(bool)) ? 1 : -1]; +template double GFLAGS_DLL_DECL IsBoolFlag(const From& from); +GFLAGS_DLL_DECL bool IsBoolFlag(bool from); +} // namespace fLB + +// Here are the actual DEFINE_*-macros. The respective DECLARE_*-macros +// are in a separate include, gflags_declare.h, for reducing +// the physical transitive size for DECLARE use. +#define DEFINE_bool(name, val, txt) \ + namespace fLB { \ + typedef ::fLB::CompileAssert FLAG_##name##_value_is_not_a_bool[ \ + (sizeof(::fLB::IsBoolFlag(val)) != sizeof(double))? 1: -1]; \ + } \ + DEFINE_VARIABLE(bool, B, name, val, txt) + +#define DEFINE_int32(name, val, txt) \ + DEFINE_VARIABLE(GFLAGS_NAMESPACE::int32, I, \ + name, val, txt) + +#define DEFINE_int64(name, val, txt) \ + DEFINE_VARIABLE(GFLAGS_NAMESPACE::int64, I64, \ + name, val, txt) + +#define DEFINE_uint64(name,val, txt) \ + DEFINE_VARIABLE(GFLAGS_NAMESPACE::uint64, U64, \ + name, val, txt) + +#define DEFINE_double(name, val, txt) \ + DEFINE_VARIABLE(double, D, name, val, txt) + +// Strings are trickier, because they're not a POD, so we can't +// construct them at static-initialization time (instead they get +// constructed at global-constructor time, which is much later). To +// try to avoid crashes in that case, we use a char buffer to store +// the string, which we can static-initialize, and then placement-new +// into it later. It's not perfect, but the best we can do. + +namespace fLS { + +inline clstring* dont_pass0toDEFINE_string(char *stringspot, + const char *value) { + return new(stringspot) clstring(value); +} +inline clstring* dont_pass0toDEFINE_string(char *stringspot, + const clstring &value) { + return new(stringspot) clstring(value); +} +inline clstring* dont_pass0toDEFINE_string(char *stringspot, + int value); +} // namespace fLS + +// We need to define a var named FLAGS_no##name so people don't define +// --string and --nostring. And we need a temporary place to put val +// so we don't have to evaluate it twice. Two great needs that go +// great together! +// The weird 'using' + 'extern' inside the fLS namespace is to work around +// an unknown compiler bug/issue with the gcc 4.2.1 on SUSE 10. See +// http://code.google.com/p/google-gflags/issues/detail?id=20 +#define DEFINE_string(name, val, txt) \ + namespace fLS { \ + using ::fLS::clstring; \ + static union { void* align; char s[sizeof(clstring)]; } s_##name[2]; \ + clstring* const FLAGS_no##name = ::fLS:: \ + dont_pass0toDEFINE_string(s_##name[0].s, \ + val); \ + static GFLAGS_NAMESPACE::FlagRegisterer o_##name( \ + #name, "string", MAYBE_STRIPPED_HELP(txt), __FILE__, \ + s_##name[0].s, new (s_##name[1].s) clstring(*FLAGS_no##name)); \ + extern GFLAGS_DLL_DEFINE_FLAG clstring& FLAGS_##name; \ + using fLS::FLAGS_##name; \ + clstring& FLAGS_##name = *FLAGS_no##name; \ + } \ + using fLS::FLAGS_##name + +#endif // SWIG + + +// Import gflags library symbols into alternative/deprecated namespace(s) +#include "../../../../third_party/gflags/include/gflags/gflags_gflags.h" + + +#endif // GFLAGS_GFLAGS_H_ diff --git a/third_party/gflags/include/gflags/gflags_completions.h b/third_party/gflags/include/gflags/gflags_completions.h new file mode 100644 index 0000000..f951c1e --- /dev/null +++ b/third_party/gflags/include/gflags/gflags_completions.h @@ -0,0 +1,121 @@ +// Copyright (c) 2008, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// --- + +// +// Implement helpful bash-style command line flag completions +// +// ** Functional API: +// HandleCommandLineCompletions() should be called early during +// program startup, but after command line flag code has been +// initialized, such as the beginning of HandleCommandLineHelpFlags(). +// It checks the value of the flag --tab_completion_word. If this +// flag is empty, nothing happens here. If it contains a string, +// however, then HandleCommandLineCompletions() will hijack the +// process, attempting to identify the intention behind this +// completion. Regardless of the outcome of this deduction, the +// process will be terminated, similar to --helpshort flag +// handling. +// +// ** Overview of Bash completions: +// Bash can be told to programatically determine completions for the +// current 'cursor word'. It does this by (in this case) invoking a +// command with some additional arguments identifying the command +// being executed, the word being completed, and the previous word +// (if any). Bash then expects a sequence of output lines to be +// printed to stdout. If these lines all contain a common prefix +// longer than the cursor word, bash will replace the cursor word +// with that common prefix, and display nothing. If there isn't such +// a common prefix, bash will display the lines in pages using 'more'. +// +// ** Strategy taken for command line completions: +// If we can deduce either the exact flag intended, or a common flag +// prefix, we'll output exactly that. Otherwise, if information +// must be displayed to the user, we'll take the opportunity to add +// some helpful information beyond just the flag name (specifically, +// we'll include the default flag value and as much of the flag's +// description as can fit on a single terminal line width, as specified +// by the flag --tab_completion_columns). Furthermore, we'll try to +// make bash order the output such that the most useful or relevent +// flags are the most likely to be shown at the top. +// +// ** Additional features: +// To assist in finding that one really useful flag, substring matching +// was implemented. Before pressing a to get completion for the +// current word, you can append one or more '?' to the flag to do +// substring matching. Here's the semantics: +// --foo Show me all flags with names prefixed by 'foo' +// --foo? Show me all flags with 'foo' somewhere in the name +// --foo?? Same as prior case, but also search in module +// definition path for 'foo' +// --foo??? Same as prior case, but also search in flag +// descriptions for 'foo' +// Finally, we'll trim the output to a relatively small number of +// flags to keep bash quiet about the verbosity of output. If one +// really wanted to see all possible matches, appending a '+' to the +// search word will force the exhaustive list of matches to be printed. +// +// ** How to have bash accept completions from a binary: +// Bash requires that it be informed about each command that programmatic +// completion should be enabled for. Example addition to a .bashrc +// file would be (your path to gflags_completions.sh file may differ): + +/* +$ complete -o bashdefault -o default -o nospace -C \ + '/home/build/eng/bash/bash_completions.sh --tab_completion_columns $COLUMNS' \ + time env binary_name another_binary [...] +*/ + +// This would allow the following to work: +// $ /path/to/binary_name --vmodule +// Or: +// $ ./bin/path/another_binary --gfs_u +// (etc) +// +// Sadly, it appears that bash gives no easy way to force this behavior for +// all commands. That's where the "time" in the above example comes in. +// If you haven't specifically added a command to the list of completion +// supported commands, you can still get completions by prefixing the +// entire command with "env". +// $ env /some/brand/new/binary --vmod +// Assuming that "binary" is a newly compiled binary, this should still +// produce the expected completion output. + + +#ifndef GFLAGS_COMPLETIONS_H_ +#define GFLAGS_COMPLETIONS_H_ + +namespace google { + +extern void HandleCommandLineCompletions(void); + +} + +#endif // GFLAGS_COMPLETIONS_H_ diff --git a/third_party/gflags/include/gflags/gflags_declare.h b/third_party/gflags/include/gflags/gflags_declare.h new file mode 100644 index 0000000..935a20e --- /dev/null +++ b/third_party/gflags/include/gflags/gflags_declare.h @@ -0,0 +1,141 @@ +// Copyright (c) 1999, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// --- +// +// Revamped and reorganized by Craig Silverstein +// +// This is the file that should be included by any file which declares +// command line flag. + +#ifndef GFLAGS_DECLARE_H_ +#define GFLAGS_DECLARE_H_ + + +// --------------------------------------------------------------------------- +// Namespace of gflags library symbols. +#define GFLAGS_NAMESPACE google + +// --------------------------------------------------------------------------- +// Windows DLL import/export. + +// We always want to import the symbols of the gflags library +#ifndef GFLAGS_DLL_DECL +# if 0 && defined(_MSC_VER) +# define GFLAGS_DLL_DECL __declspec(dllimport) +# else +# define GFLAGS_DLL_DECL +# endif +#endif + +// We always want to import variables declared in user code +#ifndef GFLAGS_DLL_DECLARE_FLAG +# ifdef _MSC_VER +# define GFLAGS_DLL_DECLARE_FLAG __declspec(dllimport) +# else +# define GFLAGS_DLL_DECLARE_FLAG +# endif +#endif + +// --------------------------------------------------------------------------- +// Flag types +#include +#if 1 +# include // the normal place uint32_t is defined +#elif 1 +# include // the normal place u_int32_t is defined +#elif 1 +# include // a third place for uint32_t or u_int32_t +#endif + +namespace GFLAGS_NAMESPACE { + +#if 1 // C99 +typedef int32_t int32; +typedef uint32_t uint32; +typedef int64_t int64; +typedef uint64_t uint64; +#elif 0 // BSD +typedef int32_t int32; +typedef u_int32_t uint32; +typedef int64_t int64; +typedef u_int64_t uint64; +#elif 0 // Windows +typedef __int32 int32; +typedef unsigned __int32 uint32; +typedef __int64 int64; +typedef unsigned __int64 uint64; +#else +# error Do not know how to define a 32-bit integer quantity on your system +#endif + +} // namespace GFLAGS_NAMESPACE + + +namespace fLS { + +// The meaning of "string" might be different between now and when the +// macros below get invoked (e.g., if someone is experimenting with +// other string implementations that get defined after this file is +// included). Save the current meaning now and use it in the macros. +typedef std::string clstring; + +} // namespace fLS + + +#define DECLARE_VARIABLE(type, shorttype, name) \ + /* We always want to import declared variables, dll or no */ \ + namespace fL##shorttype { extern GFLAGS_DLL_DECLARE_FLAG type FLAGS_##name; } \ + using fL##shorttype::FLAGS_##name + +#define DECLARE_bool(name) \ + DECLARE_VARIABLE(bool, B, name) + +#define DECLARE_int32(name) \ + DECLARE_VARIABLE(::GFLAGS_NAMESPACE::int32, I, name) + +#define DECLARE_int64(name) \ + DECLARE_VARIABLE(::GFLAGS_NAMESPACE::int64, I64, name) + +#define DECLARE_uint64(name) \ + DECLARE_VARIABLE(::GFLAGS_NAMESPACE::uint64, U64, name) + +#define DECLARE_double(name) \ + DECLARE_VARIABLE(double, D, name) + +#define DECLARE_string(name) \ + /* We always want to import declared variables, dll or no */ \ + namespace fLS { \ + using ::fLS::clstring; \ + extern GFLAGS_DLL_DECLARE_FLAG ::fLS::clstring& FLAGS_##name; \ + } \ + using fLS::FLAGS_##name + + +#endif // GFLAGS_DECLARE_H_ diff --git a/third_party/gflags/include/gflags/gflags_gflags.h b/third_party/gflags/include/gflags/gflags_gflags.h new file mode 100644 index 0000000..0c17825 --- /dev/null +++ b/third_party/gflags/include/gflags/gflags_gflags.h @@ -0,0 +1,101 @@ +// Copyright (c) 2014, Andreas Schuh +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// ----------------------------------------------------------------------------- +// Imports the gflags library symbols into an alternative/deprecated namespace. + +#ifndef GFLAGS_GFLAGS_H_ +# error The internal header gflags_gflags.h may only be included by gflags.h +#endif + +#ifndef GFLAGS_NS_GFLAGS_H_ +#define GFLAGS_NS_GFLAGS_H_ + + +namespace gflags { + + +using GFLAGS_NAMESPACE::int32; +using GFLAGS_NAMESPACE::uint32; +using GFLAGS_NAMESPACE::int64; +using GFLAGS_NAMESPACE::uint64; + +using GFLAGS_NAMESPACE::RegisterFlagValidator; +using GFLAGS_NAMESPACE::CommandLineFlagInfo; +using GFLAGS_NAMESPACE::GetAllFlags; +using GFLAGS_NAMESPACE::ShowUsageWithFlags; +using GFLAGS_NAMESPACE::ShowUsageWithFlagsRestrict; +using GFLAGS_NAMESPACE::DescribeOneFlag; +using GFLAGS_NAMESPACE::SetArgv; +using GFLAGS_NAMESPACE::GetArgvs; +using GFLAGS_NAMESPACE::GetArgv; +using GFLAGS_NAMESPACE::GetArgv0; +using GFLAGS_NAMESPACE::GetArgvSum; +using GFLAGS_NAMESPACE::ProgramInvocationName; +using GFLAGS_NAMESPACE::ProgramInvocationShortName; +using GFLAGS_NAMESPACE::ProgramUsage; +using GFLAGS_NAMESPACE::VersionString; +using GFLAGS_NAMESPACE::GetCommandLineOption; +using GFLAGS_NAMESPACE::GetCommandLineFlagInfo; +using GFLAGS_NAMESPACE::GetCommandLineFlagInfoOrDie; +using GFLAGS_NAMESPACE::FlagSettingMode; +using GFLAGS_NAMESPACE::SET_FLAGS_VALUE; +using GFLAGS_NAMESPACE::SET_FLAG_IF_DEFAULT; +using GFLAGS_NAMESPACE::SET_FLAGS_DEFAULT; +using GFLAGS_NAMESPACE::SetCommandLineOption; +using GFLAGS_NAMESPACE::SetCommandLineOptionWithMode; +using GFLAGS_NAMESPACE::FlagSaver; +using GFLAGS_NAMESPACE::CommandlineFlagsIntoString; +using GFLAGS_NAMESPACE::ReadFlagsFromString; +using GFLAGS_NAMESPACE::AppendFlagsIntoFile; +using GFLAGS_NAMESPACE::ReadFromFlagsFile; +using GFLAGS_NAMESPACE::BoolFromEnv; +using GFLAGS_NAMESPACE::Int32FromEnv; +using GFLAGS_NAMESPACE::Int64FromEnv; +using GFLAGS_NAMESPACE::Uint64FromEnv; +using GFLAGS_NAMESPACE::DoubleFromEnv; +using GFLAGS_NAMESPACE::StringFromEnv; +using GFLAGS_NAMESPACE::SetUsageMessage; +using GFLAGS_NAMESPACE::SetVersionString; +using GFLAGS_NAMESPACE::ParseCommandLineNonHelpFlags; +using GFLAGS_NAMESPACE::HandleCommandLineHelpFlags; +using GFLAGS_NAMESPACE::AllowCommandLineReparsing; +using GFLAGS_NAMESPACE::ReparseCommandLineNonHelpFlags; +using GFLAGS_NAMESPACE::ShutDownCommandLineFlags; +using GFLAGS_NAMESPACE::FlagRegisterer; + +#ifndef SWIG +using GFLAGS_NAMESPACE::ParseCommandLineFlags; +#endif + + +} // namespace gflags + + +#endif // GFLAGS_NS_GFLAGS_H_ diff --git a/third_party/gflags/lib/libgflags_nothreads.a b/third_party/gflags/lib/libgflags_nothreads.a new file mode 100644 index 0000000000000000000000000000000000000000..3395ae004d658b9c6008f2647006e36add66a5aa GIT binary patch literal 1498070 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�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�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

2t$H%94`F9fQd=A}9A@5j>Uygl{ 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�U4B@$O>5Gh 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�U<7JsEf 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

gtI!{Zj&(f*SASZC&a4XFWWP& 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

{#gF4M ze}3wC+o@J4{(t9qx8vgHgLEF{eA-4?{W#}8?|7%?1qmpqRj63+8X;%3}E z{bdpTZBE~GnhhxVKNivdXM`V4*Fzk)+w(J?c&MIpoxZ6i9rr5{{UhSv>0SA9+avlv zIDN(GY5&9NI*jvN?eVi6uW%PKQimm?cl=YcRMcQ!q<7B{=Ve&`7^8o(H}zB zb0PgH#5vFPPQT2>ZI0+a=k!$*(*EyqywmZ5^YfJBm2SZnzDx9uOWdRAI+F9LbOn(7 zKS4Z{|9MWo+UXa%xXT^Sxdlv)>vf`cT;l#)#Q!@HeiB`$a-J1=8&Lc-5)b8hb%cMz z`C0A!6s)^kS496Cr?05BLeW>y^{$z3j!QnLIbKnh)?Y|Gl;@4&$J75n{7kfd#Q!fM ze*PeSoLp<NK=p@e(j++O<Q8ju%{>|KfPXbPJ?zuZ!OCcBdb5lFd^dI7!_;?RdV~3Z)JgIbQJi*BtM1yx{yl zEPiHKAbdOVP#yTbk;k{o=_Q{U$8#;#kMK6f^Nx%EmEy;7sl$5F&$NC%Wp}x4ju#x4 z`sC<7kn`E?xcDDIJe25g}Kd=BwY{x^!BbFF`=!$Xd*cU=7c%JHi6tX_EkkJ^0JJHFDsojb+x{P}79 z4C0}DzU1^>PA~oaj^nutte<-4|KA*Ma$M%^|8ab^;{~Tbp6+8qaiBs5<4ukioc>nF zyFLDx=-aGN=G)7ncU=4*M)$Fy`ivoN>NCgsk#RZS@g~O$_U+ttj(0mQaqkoTTq_j) zv!Zug>h?DAP(CNq{WIs2pO^MCm3T;>IDMDXOMk!Tcy7M+Bjfmt<4ulBp8q%E|AbLC zpKeb-nRqClYn{GnK|24n;>U5R+g8zEWc8B&n~tw`T=E=B_y18QO6<>A_Omsj|D)6I z@bo9sa|*6c`=x0=QytGOO7p9Thw@qH^sAlTbvxHBelD|qWE}TI{2V*l=2LL`cH1mB z(ed4mOWiIN{o=I$TOH3`Zh67^c}(<q0sBdX)sjX|QZ%wtl=<+3(wa%Z5j67U5XVH}lmbP}xnY(BK zz7+{nok24?gJw(y&Dac@aTzq@GiXlBpsC5AIX#1>x+;q(OQox`l)5@gt*f&XyE;p? ztFx55I!nE)vlP5KOT|ZLsrcwD6(60Y;-j-vd~}wIkIqu@(OD`!I!nbzXQ}w;EEOM< zrQ&0p*OU1`!sra}o6(5(S z;^VSZe0-LQkIz!^@mVT9K1;>NXQ}x3EEON0rQ+kWRD67vijU7y@zb(Y{Io0;KP^ke zPs>vA)3Q|jv@8`rElb5u%Tn>vvQ+%EEETWGQt_HB6|c!s@tQ0ZugOyJnk*Hs$x`u} zEETWGQt_HB6+b;o#ZS*t@zb+Z{PZjpKRrvuPtQ{E)3a3k^eh!WJxj$;&rAw_Y}<9j*^O&D^Uy7Ay_FZST3+ z6TIKL`0~YcXMWiwi{~tAoic4w^OV;5DU(}Jfj7^oRI_y`I*U@iQqu@?YOX(X^3=&w z&l*2Idt%Y)mI@i2Zz)x3!eL_dGbW!`-&#GswQh3DjJ{By4E=$eCxGXinqO$l?lT;Vt&rQ;@)L_Pgrp75Q%Qgz}=O^jhQlo$q z%`QYOGn*Rg%b0BGhb`!D+Bx;j&66k9x6Y_Pt2+DaO+T1HhjwMFDRYHMKf^(P(BZw; zndoq&ANTC-Z~DyI=9c>AvKI67(;@Up2kgwL_2r!2;t!Eh^C0~g2}9blG}JbpSzaHq zP1E>8r*wMJX?l*m4mo#987Is1^C|4C^ESIIZ>gmRz0I6Fqqfz#JTKr9wYJP>&6rrb z_sJ_h`BKXny2H?A^(Or=E#|VUa;G1?q032U22SbG-o~HKrRGZf`CM9-ZGy(1(WSjb zC+LjwPO|AIc~~rVRK_Jl`e`3JntayOY0YIVBJqcUsUpN53#MhM>!j###~%%*y`@f@ z*w1NG>$9I{;*Ss0(X!nLq#q$-QfE${-P$~D=F~~8jrCKzwI#&D!ow&)y*KNd}mTKd5#cG4}oP0g*% z^|h1g%g8YP95o#}Iz4C9x0bgw#GkjOBc`V4-kqh>cxdS3HI6QAcu7~4eQe_oa?|}t zO{sW#*=9=oac(MT{DE#-mhF;0{!lmVE!(Lm{$MxlEjnI$_1HLVT2nb^-uQ#ybmVL! z7JnF=@)my_oR+1|CVNkJa|ct#4M+Ofam3%=D`#|m#ve1MyOC`U#2+=My+!8$-}BRR zsLUsm_!H@Lz|_!V)o8ilhaXp!5i;8moql+YA-Rub#EU=RPIWQK0vL`_yn~&{o%8{`{GXWb?3H}anDkn{#S+blggME@sGE8HOe?I;vaJJ{AHXM=_ji3`ICN98rP+tfcBtEU8wb-OD)wnD)#!7 z?$l<_Dq}p-k2ZUVn{i3c_{g$4{!zK~xW%7FHrLatWFDALsSo^3tB0zhZuz0YzOv|l7Y6a>cgVY?uTJa@gS%2ov_$;tG{V*_|TE+)_)$z|t zrl)7d$9L87PfU9LGTt&|eB4$|ADuMY(eB>?9YXs<>F1q4*^T}gxY?K=MnA&k-@*C% z=~iyOj~4aU14sWi14sRlc5b+Nj z^;ZH%|I2}+{wd(7e;PRI4?HlO&k?{;zW_M;zXCYwzXcri4+2O1Ne6}VsRoYv+kvD1 zyMd$rz=Om7j{uJPalp}kEpXJ|4jlD&14sSQ1H<{8037w-0*?OqdnbAGkM{!^IF9-w zfTRB_funvoaMV8q9Q98FNBw~;3grVF^$UQb|0{r_{(0c2e-Sw9$MK6mKDEG6{|IpO z|2S~ezXcri{RS1|qJA83)Yk$>{guE`zZ^K~p9hZm7lEUG-1~}oqP`Y5>c0gX^$!9^ z{ekZf`#%CW>c;^`|FytT{|Io@KMoxAM;{)}=LF!WzaBXHzZp2{-vW;Meig;Is2>L$ z^|ioJe>-s0-whn~&jUyOi@;HT(h1djRzgTwh;0UY(O0!RO^14sQhcY({xG3sl9qyBc_ zsORq`id1L7#H;mfTR8j;HZBUIO<;qj`}O<`}lbC z=i74NsDBg(xy^g{lp14sSsz|sHRz)}AeaMbr3T8xYOdf=#^4jlEb0!RJp zz)?T$!^OC$uLX|!M}VXLap0(b3pncg(f8T$<{$6lfTO+^IQqX5IO>-JNBtwfQU5q_ z)SpD(b0>MCz8W~{uLq9$n}MVLE#Ro{S82lTRiBx_Q9lPb`hN;I>YoOV`f(@Z%;q0o zwZKu&-*d;CuYVdi>g!Jo>!$-p{qw*v{}+Lye&(>S|2e=>{}gca|1@yapENw|zZy8| z7XU~9R{%%-tH4pu-z&$Pf4nR>smM`(1#tBL6mZl(4IK3+ogDUG4IK5?J3fG#EukNI zuJvuuV_g28INn&llzv42IPebO&qVmk5&jl%%;%VokW_|625 zd0yqXpJxH|Sht&jW1ja!IDfw$Z+^dCaNLi(6Z9B&H*n0q-$%p#kBsnP5kA%NL&zN- zFS9|9`LqGYe69eF^+_W9)(F1?_?48CjN`q)zX1GajvwOXzYX-5{|?}o|Ledp{{uco zj%oA9@u&zt7C7cV40wV3Nx!B#?&m)n^q7AeaLoS-;Fy0B;kQQk9l$Yv{ys$BxDMCR zkL3R|$Nl`bfgbbU0sMOKvlIB2fgg7Yy`ataKf-a&2mMz8M?dwzv2GVd{I`Q1{VxNK z{%;44{vVC_?*cvg-vS)#(+wQs{xRZz;7C(8GhXPw0yyS*0&tu^qa%D`gfDj7AFpMg z$9xLFF`t`(V?Osp_(Ku?7;v1=PXfP*N+t98r@(QZzX}}lJm^$gXTQG{j{Ea-2yi@4 zeH1wM_Y)C*c7!hgj(L9BaX-)1pvQ4p103`GE^y5AM-l#8$Nji_K#y^Aql)tu^FIPO z#yv5@$3*xUz;QlI1b!3DhqHkffG+@!dEVf--{0?p9`pYpaP+e+;^!sMW8L_BLV5Gg zQ~f_4=0`^O2@zfu;WL3_{#QBf*P#G<%>NePSf9Hie0_xfQ-uF4!ruap`5#kd>*nWQ z>9~JfPXmtmUlH+hJ?Js+w65-@^XFSW z!ly;}mm>TI;Fv#uA1iPExcmV0Sf5S6G5=>H{QaZD{)ag3*QXLV=1HG$Hk)6cx(J^U z;pYR#^=cmQn<$c;zxaD&dE>Zv{<_O?zi#V5k9B(?qTdoIkfj_`MN+A8^e7A>cTUj{(PV z{H^1DzxIHBDfBBhmR``t^8x#H1aR!vi4jg;Mrk&GKA!;``!x}GC$*GunF$>8xyo_B zUj@)(zg7bOHu(Pr@DAYLi}0s_V?Muj+|Oq>=rNx?z%idg#!(Wq`E~nHgr5@O7dr0e zvk>%{Pdjkz*K*(;l$VUlEfIcigx?4JO7Qa#aJ)}{!ErzTouJ43cLT@#`;F&n?p@C# zBYaqdp91_!@+WmT&v8G`n<9J-_`&=;fn)v;0>}D45#i59_#Ykj^Bj1ZDUX?Nm`??8 z%;yB)m=Ap=jM@BoJ2Ao+JMQPR4D^^!0XXJ!GjPo3o(O*^!XE?vAdK&mz*Fn0<9_~o zK#%$7YKry2{Eq;R`JWi!^o6>?I-ddjVaR_XaLj+P<9`0jK#%zsfMfnQ1IPUDiSUOa z{4wB4`Hynk&%Xxrn13EP z=06=c=07*Wmqz$Cz;V7^2ORT%z;QqS4WP$-ejCy60X_EjkTZ&PLq8vi@KYju3~)S8 zUFf)<|3c7XK34{vxSxLm=rR8$;F$j$;F$lC2){1EZv>9{-wGV_{}yn}=bs(-`_&D4?AMFH zG5_C1c>hmD>JR*Cn75yD+|Q>0^q9}Nz%ifCM))-mejRYE=L3%W`D_3^=JONan9naG z{Iv)_?$fqze%uj``{(^C;5fduz%ifZ2%i_>mjcK7ECr7D_16IZ0*vnij{E)E0D7!v z7jW#?)4;J`FGctp5&kytt&r!ae7OEKj{Eh`1IIk41IIk)M)=YQzXtff<%;Y41CH-i zPtd382^{l$8aU?pQiQ(|;co-SdD6c&XEv@Iu1ljF_w%m-J?5VWj`>dqj``1x@TC!c z4RFl=I^YHBgPdm{aNN&-1L!gTF5sB|)4(zRmm>U)2!9(m&XZAfru=(7Pp)x%ulWod z^PCPG^PC&uOC$Um;Hf$TPu1D+z3L45RGooi{!atP{9lUjHzNFP;Fy2^iMGyr&2z{7 z{A)mu`R9RS{?mbD{&ORIX@p+`9P@v`aX-%upvOGBfMcFd1IIjHitslg{J2Tsc{{>! zf8JIB$9!smV?NChJ}<&A1&(!F3LNL{U5@+pTnBor=L-@2&WL_DaO`it`r`s4-2{rq== z9`oM~9P{sYW~BZRJ}kmd0gl%v^}sRiMUMOVw}T$@Uk*G~=Lo+y!tVo)b$$vs=J{*K z{XBPr9`o#XR-~R0J}kn=0mppKaoo?R4fL4L65v?3jiQ-3|ke<8>5pyq-T6c!6BX@jebX=6R0ed({*4*xxIFW51FJzcs?|0R9Bzc`tD6 z?<2r5|DQYV=f4B=nE&g*G5-T5hwFb-gdYnW^PlSYA>{5*=+|t}V?J%bH-LU2@Ed?% z4;<_8H^8x9--+-I5#9wH>;IDDhj{&Z3-p-JL7yQZZ3E~B^Z7u8kBIQkIPS;&VuY^* zKUnA0z%kFefn%OOi0~&P{HMV2dj479-Bb%X9{=dL->-pZbJc9!F#ihRnEwgDG5^sK zJ~6`229D!C130cT=L5&qDj{SNNIOh38gg+bMzXG1BGjKe9UjyC={W@+cy`atS*9gb`I$s#kFO2A~29Evx zYJ}er;XiZS&vP5-vHm-N|2Oqd#_|2rOn3L{?-0lR^Vdfs{KANzg%SPL5&l5L&j!$A zzkUK7>-ozFe=Wj~YYNw4gya6WR{_WQTnilYX^!xD5q>FfoX<;v-vr}$4e$c+2ORh3 z$p+A4J-dKozn%t;{dy_F--z(Hfn&e=Pq+2wI^+3tl;eK>HK51*Cj-Yk&x`O&BYY`v zye_>4_;0Yzj{A9T06pgU6X2NVFC+Z52!8`O=6PJRt*4*Q2*>^Td|^btFrse_^=2+1vt*zF~B<^?uCx~^jrI7z|E%bsmUq8Zef4M{q?}HU*C@SSr2;b*WHm99uWPUzLvg z^Q{^<=2I8pGa~$a;5bj_0lyOJd6VOQo@+plb?XF<{e2KP=Kn;5KO5n{0*-mU3>>d3 zUISi$ejPU}T>lY{`}MB^j{T|yj{Rzm@Ocq_DRAu9Qs9{X^}sQoZ#(Xf*Lu+7cs&jr z^M5A7UyktCfMflSn;ogM<9?kljOZ6e^zFd04$FaKzix@}dn5cl;5aT10mpH9!EwL- zJ3){2-whn|?{}`P8`lT(KQh9HMffSeG5;~Z@w{0N9P_!zalc>fpvQhK2afsQ65;no z_|F{o<8A{z#@zuN^M4&U=5xS#;W{4`;l~2UdJY4Qf9IO&xS#)Q&}05>z%lPdx3WY|C!@{{@Xy0`R@RZ`M(Yv^FQGHNc|)HSm3Gp1IP8}6yP|| zFLd1R*Fw-^zuJLgzm@~Xe%%t`_eS`Az_DKs0q=xydBJf%|DB-6{Exf9*4fvOaNJ*q ztAKBSxHZ6k4}5XN|1!{HJ_X?D|AB~~4WLIqUBGc%o(7KN@=}Dq5#etG$8qWZSGJy9 zw@#?TD98Oe*MJ`L&jZK&rvu0Q=SKL_2)_n6=6@aVFF^heIPT}a0rZ%E7jPWMEx>V} z{4wHx;DwX~ZT>v`AaJb1$0GcU2%iWX^IYt>-`{1R$Nqi=IOg-W5q@8Uzu>qZcV|TZ z-w}RvYq4%Pf5toR`_F?O`?WZtUl!39fMeX7fn$B{iSUOa{4wA-Z=VESpsvgL>v`aq z&+i@g>yT?J)(z`05ct*L|AWA>UmuI`Ga`H(5^s^E;K4JH_U$^aLoUMz%l=iMfe#JzSwa;pJkxOdWZwZ4><1UzX9}^e;06E_kJ7kvj_C(C%3RzPxLd&aX+6L(4(I`@Kim4r|KEuOC$Um z;Hi27$Lq-(fpn6wjeyssLj#npe?AL?9v0qO___GoIE8y6#mw{uyUIUKD*Kvz@R05xKaNHlS zD&W|!THx5P<_Mn`;g7m^}Ne*zdq|gkM&s(9P@k}IOh3Ggufi&?_V6Q+Yrb7x>W+l ze5!$CK6Md3Bf`%Ij&+*{{3c3S)`v@h<2<|`IOh3n$Nl=R2R+vRap2gmXCnON2!9PY z_UpjQZT-21IPT&i||V$d@1mop#Ikb$NazTxS#)e&}06O z1IIj{iSU;r{59ZMhvV99o&9`9IPTB$D&W|!THu&xbA-=}@JoT?d{_z`>wFFH0@VL@ z;F#y5j{E)X0zKCMY2etemm>U)2tV)&Tj#yzv*Ug~RiMXw>VadwE{gbR2R-J$>*QiS zSm&0H6glcQMfju@<{B__rfd2GTihhtU z2mV#i{{r|b;Ef}TesCT>2ORTkIkl+A`fLS`b#56|)T5u9f#ZD0f4rziKQBahRaIDj z4RG}T3~=<{S{?TDa)ft`F6!?jQ^xl};CBI^Fs7)-`LGH2J)mzKThy-wz7aU)KXzPE zkK?it_;X#?`+VS7x9!0H9{e<(R`m0I;9G(J0C;0fQIC9Ug!enWsK@6g ztAL}QL7yn^nZ z_)|qaj@K&STfqOD5x(NnML%Bz{eXOt|10nnz`KDDsx9iD0lq522hoE=TB*9t_dMr)o|!X;_h~L$ zt^fa@lQ8F;-+9jMIhXgm=e=oMuWwmnHl4Jdj>dI;RvgUA>-D`w+SBpA)Bw>uTlcP;Kr={8@2TB(D)@9|AxkOeb(KS zO-FC{FKS$G-+b-9Bc0a@{Hq%OIAq21UR@-cuddGr1b%*VR=!lLmtWvt)wrI1_2Fzf zI{&K1^>*CVl9jK}^8K>Lw`=@ajqCHCzcriA5I9*6U)A`PS~_)f9kvi;cWL~q0vcAMDJ^*K6rKt#N%mj~~s-AJF7~BJg-uR$iZ%p4RvYt(@=e z&dTfK^l6R%rzSrb%gXD=uit1~m*4rGto(giIv>!uKF{|@Teoy{wr+_w_uf+4eTAp2 zqP%kZj>@u%?HuM|O zV`^C|S*PVwZlCoMtH=rtpNGESJs2q;UH?$Pu9Q2N3Kj)ZA@}`lu8Ri&TNcinIi{wn z>Pk;Z&HjUzc`8bGmX=#qY43@n@#e!|$9rtMon1ZA&gRm1v_Ec@wl>F`tC7|gzgK_U3NP%97jPn`NO9qvb&lI2W>Ef#pg zo!#9x_r=0(eO)c_j_$5-M^{HY>~FX(yuW^bW8lEPZ~#13xTdatx4$l2zh_TFpfTL& z-(437>+#pbz_elB4dcA45`{9cMzNi-5AYfS#|;|PEcOZJSCo~({G2sBcf)k;ICpO= ztEjN0&wTEl%qYjo%-t8jQ{^39$C^7kTCJAm&Q9xS_c5!trMdUG`hAc3ZB@UAF|4=M zYHn?@uJqtwozQfkxcng#TBErvM{DFMq-Sm4{xuH}*-eWa)L2-}9`diwMfM5$Ip$gI6WA!(; zwp!hNaYzS$5364+HKcZ;SLJosu8RG89P;h8`XMHk3^F(Y)dxi!jw^y$R35fsaIon) z&Uuz?KWueHk67`<+8z?>>qgdX@4#PI%TgYP8& zguo{a{&w(+002|D3?*4Ss<93j$v>coX@T1ioVMo5;T^aGof*zqOKF5dttK zcN@Ij7PE>4?lCxR>sciN_Zl4c+R#)A+-LAxY;h|n@Q}e1B;O?Ph`|R*zFpukgC|M8 zU*HLY-$C+8fsY#eLnJ>Y@Nt9xG09H|eA3{5O7hbJPaFJGBtIwcd4vB2$u9_e(cphY z@=F3=G5Ft+{HnnDpp3yduij1aMRbTWx!d4hA^Bo~dklU*$(IU?s{-dG8~5{2YyoY#LHb5Cr~Ol zaKAe^d{uDhRQz?p)X&rsVkq6WG+b2_9C)DU`Wx|5Q8mgvP*j#iuQH{4{b=CSOQ!Ms z#8tBz98rtq)T!Xij|zjsg_ZZaF1A$Q{k8kA_1D!_TTOxL@b22ihH#^DRt0NA;lTcb z`^X>W&~&`W&G3?GJf+sSE(u!x^@r2JgX_vWYI~d zco|Bk${9bliEc9fv)XfUzP@K{yx_)+cDYXvt$Z=IWmL62@QZCE?akb-q_RKmtW&vg zZ^vvi4DgWRBj^Ex=Wdt}w@)!bFqgs~aTg{IGq-XZ`MCS0({QI$@thoHlE`+ zwO@kT&qL{8`(fUkKeyj8U?}2+Ki!0Apr3AU={AVOb$m>j2Z@`lFhh@^2?aO{1`8%>1>W94E@1{oayONw9oQEsWfp zUF{+`UH^Oy1m$H~-?H?6<+QhiDHUk)cFOi|0o;LMnyVF%%45#jmQ@Av`t{grD8UHW z<{X7V*iW7K`+#FQ5wOvy1pwIp5BwodfQ=?IzHx7?I~MJMD|%a6;wNI!Ezz#Nqp(5N z)qFG>Ztm%6J`u(XtRxdwGGUYn!>t{4RbIFv*i$Y_IA6_$C~&b)UDS0-w;aO7z%cCN z#WO8|eI5HOU&nP}<-j1vR$aW(c){^jK7 zd|CcY#C>EluONTO;Csj)(KzRcD5i1Dm-mno25%<+sKL4Z;|9N#{F4ShNq$({R+ig~ zRrPziwQa?AUJ9T2+Lq@m%+jaw^;s{2R{ia-Z7ZiMAwO|#i-DQ7t-rdy$zNU7WcdRP zmj7C?uWc&FpKWF3yAP40s+t_t*N`J{fE;_suHCcGPtFjtYj^LfC3bC{1)eheDYvTX z_SAtE*sc#Xg7eUBt7>1UsVZ1gwtcs?r)+zbg-PydYVcnhuwW@1sM}s)+aM21^H3Em z&FlQZJyzXyRr?#Qef8G{b_Xm-!>VtvV}+{f_8qLd21*^Os^7P-w$TdJhfp?jAh0LU zSQR{!bv2e*2dZ&l4OT-SfL3EeRS2v@2lh17G*|~3_gM`!O;$tDZ#C?LuZcA515ZN$ z|H|=aEB;idAM_)*7DVi#sNX8vgB4c(27PU>y2$_F2gjmra8A&Tc{DPQLi#*`@iKEP zCGtYA?Jv*^2W~u`>jsbUy5YHznVTJC+82&dJexAD-U&0Qu-)#6VHT-We z{3V9}GQr6yx;?d=62i4{F>uaIydd7i6BBT(Tn-;I)TR- z_DAIAJT?o=$)K!mu)krN=NcdT7p7_UE6)E8BSZGG?W6b`z}C$HbE2j|j>odN2ZYQl ze}dwV8v#C!NOnEg=A4f~3#9)hIsl*-=Xz8BM}T4e=D71vh0OVu%g=U<;)9iA%1wn( zD92-AoZpQqsvwS^U_r9Y_~>_1btRq7j8OzU4xtXr`b+1Q^K|<38OoO}Gk@l$jdH(F z=azWf%hT>p(EF8qZn^fH(4IfdRfS#qf;BsVmUR^bIh{jdzc=R+Oy%7Ie-Ch{bI3m; zo&Xz7rrY5;WJ|2Cqjk&Sj<|6CsKUb#?s)FFCiJxDjb@C@Iine1pD$v0xj$kbMmL`W z^128)wgPh=r#R+uEybMAnap%RL>cUldaJSSnR7Wjwz!%TP#(u88qSyHd0pjGq4pet z^1NOO8JyQW5rgykBW7^UFJW-LKVsD2yU9Op@OP4b(%=WlpEfw|)uEZUt&AQz$iHat z9`dgk{5bhl0^nx7y_dKf0T||kw%76){7&LtgMXB`&)}aV9x^!3V-bT-kbKPGUm%_^ zIA4DrHTYLZe%#;>5uY^pSBa+${s{4TgY$LWMT38jCINI1iK;)s{IntMYT5a*slhz<=LAHQiD>niTY zV_;@K9&h@z^bl42u~1Nb@lseH0N&Ek#A@`aImV;y4HW779TRS_SDt; z;ZBklY)hHj3N?jBQ=jsi%_s{5HJw5P;ZD8un2Mo>aww3uc$G3DW93@3ZC?@W8U_Pw>(;W+EDV}MW{Y5$! zo@snO7M2?sar}CNbN+1mAROHr47pdZfWb{H?YH?zFm1&58GbCEIVMnKg%r)lGSokg z1ylb=fMHhVv786u>5kSY-~A$TQ^8FjG~UaaC|R@ zli+DLteH;!qGcSQ#-JraT4#T_vYZ_w_^V>RQR|WUL zFRCgt#ud%>r32(=3$>;jX|1wK(^-UsaZQN%n8(UXiJNOuoSU4C)~qU6TC0pxWDnVF zndL8o0H^woa|FXS^Y=kGGOr;wPX3Dw&hgoZK3qJOJW8c&rigWyPJ#U|< zM0t-7=RIsYv;DALo$~ik`!7JaZp`xQVY(aTUc6(ybnG@qiG9DFek|sDLHtmDv#(+O za32HTXTxD^9|w-3jy<`ulHK{(j&n?*ki6rk|j`ucD~u>L@!RTJ0` z53SUN)uS?a^Bz7|6W#-l&EUf{)^2}w7#@qMZGiVEDNkK})!s1Pq*vQSfg#;n7pU=9 zy-Ozt0!_L%a4q-`!ZSN6Hr}kazdl@lurYM7F&wJLn+Xpf@k6=7RsOoV@NPe3$VGsg z|FA^RtLj7H+WpmmCJTj>Oz1#8Y_{yPYW$5ss3JsZfcn5*jH)ee(`2f*uf7^KZn6*W zsJ1%$A9Jq5^`maI?x3)F&Ph{fCW<-xn6nhm%^U&8if(Y+=!R~8$RHd)y5aREGhE~9 zhS$Z+cy3}puS?mVnWG3~{4cHkmrK>SQeg!G8*hJB6OpV$4;+G>{KnU>jKrM1L16V zssAIuP{a#=y7AG#&-8x^5ORJy$Bsai=FIl$-yzmYdStYVIS7lj9#n^7(Cv-koz{=avn?^4E9rGcwZhG&X@TmHm0>;R-W%? z4pBJE?l%qv)rV?$H<>H_+OHL-rx_Bf6?IIA^(cO zm&mUa32xTI)5Lj?hj{@yz<9`J&T_EE-|2X*5}?!l92MKjx7w!!XMU}+m^%TK!-s`| z-%W6IaNS+=8hDmHvnF>IC6m-?3S6w3RCmJkl%UllZ74#NR8mUw3YNRsQG8?>Yy0xxV*7+hYkRcktc${Pj8c zClIdn-;<>8Yiun-=3sRFVf#?$gZ@2L)20<3{AxS^;wCiWL;r`s>$B}!b0oKZH3wW% zcVV06rMdNT^S=S&Z<|@%h@qH&r4hfv@MC!^mHd5W>EOU^MR~4|rZeLc;zPKq&zN(5 zH$r#?4J91Uugggv{2ZUgJNmivD0%R+GO)b(E(~3tHyHjl=ufYs@>yqfN`)KFFVY*; zasL?S>CD;!+-Q92*Rs0tAgvj<=0@im;1A=QOX4pW@lX~G%IfAV;K4P+xyHwHB&YJ9 zY5rGHd@tC#;rORJN2rEKW}PsdnKP`vbdJFBc}>Y>GxI`!J_l;{7@Z@G)A0~bnNZL8 zhlbBlk(;{5@JiZz=r!tL=8v*Y2IbEF9Koq3SU#r`A~y<01#!B+3xk~A6M$<&eGSjc z2ke)~xxcgC@YxLH9$#Z%9#J$8l zDmBZ(dy|E z4>nHcSH#`abvYgMWBMNAoX(}heZ)DP9mGS1d>!$aAs->0AkO{n{lq7UbG~;GpC``k z_&MT>hWuBE^U&jZeT%r8h9vVJ6Za73e4iukGvr?be%0>8Sr1;~5#l&MqNyUDAkO*T zM0}Jur_)P(+~C8+CyDd5_`f1PPn`38i1-R|&i8TRJOy#S&k%Rh)Wq^H1;6SK2ET;3 z*WgzX_Yvpx_Yw~o{CeUM;+(I#A2r(5lDTiBvyU!G0StHc(Jnn+5+cx0yIZ}3gS@-_ z4FPXh?a1pwftoU1sv%J0)%|!C!M+L+h8Gy<5#f43AZ+AOy=QBAxOxw~zbjA=pM}88 z!VP=jU18wUBjZ&E-M_mEuMudeo5eIPdT|Z?0X>pkL;Grlmezs#gZrzibU~Yh8~g#I zQYr;q5YpA}mp-~VD zV>?w<=(5!Z_w9R^4mg9HUIFp!H@xZTVY5Lk?5a2<%_$wo(Eub>9cXCGDFnXh&D2z; zYpf|;1179fr75$I1@`z4)-{Hqr{bT`TlG}zs_fHIwm;e5EYWITyKkR%d6fr`y287b zXN2v(eh~a#_`0u_oT_a`Ob^ko7OU~12f~#)(49_HLTj;Vi?vv3&H)<((dqV zMs-_ypzeQkMN_LTR@Q>UYL219Q-;xDV6FeGPE60~eSrU;ddI>9okvATlX$HO+k)3m zd>(ZvakCv}DV}MW?TP2HnC7|0FN3(4W;y)nhV#eseBE&VZ2KS(-R3^P_w`7co8vLU z^HgMJ`4t2nfj`~&bPu@e;m_=|C{jd%I%shrF80}hj#v9~gHC(7FGoCcy)TDm?$+k< zhkX{^FV;0bE{BKohAo7xit_{-o)4IFTlrL|Jq}QwuMwiU+d7+%*vjs{g5Pgf0Sg+Z zYgFYs&;EHje$O-(!G}Na`@31YymA`rDXv{GFtc{)ZnJvZtXtZw<~A$VX0^0gt!>t^ zjy9{KJJxA|-P~dwJ8Jc`S@5mTIN(+Yjah9iUid46zjFB7`afFqplZNmN1g3A=Sg$6 zF^?nWD9?;7J2`bcA*ZsqPcbuRgWtFNxL(c$C3~~se}&=azRoz~Utb$4mGB(F`jPIj z=U4GWNbvuyYeVT81CKi&)DPX}xOoi=Q2p65v9vbykzm4z;NyhImez(58ki+CA)M{n zFir8!b#3^FIT2BLjq0f9gUmS!MLB+g;<07MN54~63)CRzx;Bi_M2F9(>Bh`o57XT! z_xrRq#5K6SHq`so*{lsOSCur68g|W{?gPVfFQ>I(0Ju4qU@F%O{4j8*wc#=139!** z#$oPaWzDObaUJ8hF4O}~yDHR#GiySPWmbgQb299!zmID|zTeth6XHE+Xng87yC%f` zgeGKL(6{WhB_CfS2FG_upo!U5M*cPAPZ*rn{-Xwe1Np}deku7U4SpH<(+0Qu@!I!n zT|sh-hCJ^btQef{hf@`TFxEpQ$+;1LVUE|-(Rd904jWrugI5vv8N7yg$l!R+g(hNf zJWim&VWHjzSK57r2Mn*_w@L2}syO@i2JtiKn4b@S;1}N;G*WYFVD<3v;(_N1j=wzh z4164ASWP5wch|kcg`@YErQxm-?LLx`L#N8p1HamS+(X|{DR?_3798Ff96nSOOl=6J zt}U9ziavG!+1*s)ym$AzdbZI6CB{-`<|=Tb@u^?S!t3I?aqAv%OKYwKP0L=A$0Y#f z!)x}_?Ze*~RY*(lJ`38#HAY33$Ww{YGC?youtx4Qz9)V31$nc+WYe!~KYl2{A!ln>_7rr5=gK!`WABwsrS} zJ9?YLz3}OH=amCYzAO=rcT?1(&9NAKepOwU$|l$YpRq@AJNb^TwrYrv7-7}9BpFi)K zdKLa0%A0wt==}NMSnc`g!G~*I!8C~b@a|inzMV3$o7qtTQj;d=suhu>6me*@o{WAmH$lRL`G93SO#|-F7 zYwCmv>^Q^vOUDe3FYPm^LQ>xO?9pt#mu7(&&H-n0%vhog!8dAYqEo1rA!W;*{V~I- zCfK*k-eqSeUmG!dGt1LLNGq**%*gcj>?BFwzs3nO+}6{5G<^6(Jlbo)75lA~xKt*S zSuvM6?|PT*IQw1i5>4GcRcd?13?D4~^%DAn!)l{4m3G~|c{eYchYRO}L+SXYVCvE9 zPc7nX2wx?{C3NOaZ2Y`oaQGz7#jd*(bC}S`W*^0OO*Mw{$bD+_yjn=(rwz|?T6=NV z(x@EE^1vUe(CiOBU}$icKsV;>CatI=lwdza#?giO;0QxgY+K?N?xrZ*w6x|{LDGu) zOyf%{>NAb+gHm9b%-NCSpKf-nrTAdw80>LQ#;m_IJ97MUT~RO5gp!~P&vr%KP7}#5 zjY^p1H-a->lso&`@oZCIEltSV4Zhz;6-wodW+9 zaLm^SHk$3WW&IP_PWk?)z}3ne?knqVjc$P@_?EW5u9kR5cUN!reohDqcXfBgqdiAE zx|%!T-cI{fm$mi#8{j*v@P#IM&2FdM6Yhz=r!NZcD8*%ZM+tKt}9&3lYFiN#UBGqISRu#nEut_l)zL4XNAInF92uVqj;P%?IQ%VP@bLRAf9e6{tWG@^OwDpYRxWj)3I?&^ zfK_&CBzS7z+4GKXqObK1?@DH4KMDybAH`1H$H@)9uP`Scl)U~%{|(Dnh<(j1?Hygw zebCZZdMuB>wYBF^M{B$tJq_{ZmYa2g5!A5++Yi@7y8S}zXr1QG6W#c^AFK4Y`Vue8 z1NFkDG-n+jFf^aAt<0}E?xkaMj5Z8-w*>n+=2Ju|o$lC-bBUADx}6G^j?HHppO4MF zgUoqy{4ET~=KR_A0Y|r~zn8E8#be9Fxbut5TywigkoCmzP5mFD_+Azuo7b$TTN^|u zz7gHJ(kv(mm{?jHaQv8&uo)lyX5BH$3Z3~ZQUsh2aqctw56*o~N91{G5Z-kJF=fpB znVUAsy?AQ_vp4bAo3p!cdcTm@5~!VA^GfAiyC%VLjMs=z$GY(-&v|NBTj%I@`nv3! zf$M7(o11FwiUaqQPl9N$3T#Bo>EiL14TeK2gXsu~W#2Ovwg+FyZ%Pr<@_ zpX;j1)gfHTgkwD&a8HoD)_~8vcD2M#s2E4>gGu-(t{d#n%VsV!D!Jykl52*eOtiN* zd>oH7x*!xe^94j41NyF^I-vxH!vO2W$9506(ICgM$Gj9F800wSnX6+k_%VHbt-)8c zO!;d;4h_oVSmShVLI?)s@va@_oe060>0mpd!F2Ss%=;8wE1%T3o<2T3h{jAG*Ep?F zTvFPLoXmN@aHVYPIjnIa+Qi~hrJyy=L4RXy>K6waQvV7&0C*N(?V38Wr#kh+C6ua5 zeQpvgU-IUiyeM%^Rn-or5j@6=-|-fY#4`H=F>BZa|%)$?2@e*>}C3i_#wQp-LDW9+&|4u&;0^?HYVHYy;;O)HT%Lz}^8YaqBHs{1x|JfjQB_4wLu^`0u?m z7Y^ajzjs#-jBiTZdf+_Q;KM*&Q#aQR{nRz|#B--k1%@7X4L$}A&|x;+Y1F@~dTDtM zLSXk9>YKOx5-0`j@`Ar$`PV8e0g@12o3ARld>6p%J`2=8FIVn{f@RE>_0V6a)B;NE zt8?AG7hW&X;Mw_&xZ8Di)gSDfi5Km>&oxvI`9cP+<;!fxd077CQb;9n>tV|^v_)yB zCEqplCR-r?iSONutBY)XT!TNw!roo=nzo%)f8ZK=6nsy74om)9FfYIzamE!_wUuPA zS%15$QV*yDkH6+o&<707e(cDaG3R}0O&X!Y;km9!KWOC3MKISCmqS1i{AtsN5;nQf1GwUgk} z=+TUszZR6^M7iImH7OR(>8>)HvsTb&8(drJYeOE#xbI<(VT^%C87F?Vz;6(Ex4=^Z z#{-vBzW*rj?+IM3J!z3*U%s$C!uk@fOow56BBmCU_NEkmNvEezZI*>Qqg_W}{YXi` z`e$nx*Q^~aIjHqSSM$*f3&)y!;%a@nm88P-LVG)XJ2ANIjoud6FX`$8%*RN6Guh1f ztHwN^Gv~VrUT4UEk<#}Ve2n-d2LC+yOAO9?ig^4)!}&fy>3D6N;nU>j{cx85Jjru^ zVV)+AYf?1KIbWZmS^h=xR~wx34I2E*lzyGT=ZS|5{s8&$Tn0a!MccKRyZ$QR!lu)c zJ6q4;OIRyZ2F%i@^0lvFR@*oE1%}dng-_kzHi~C64`sFomQZr|?f5%%s&B7-nRDoo zzJtT+yb|sgDH+BQXl0`eJ=}M*ohBsNrxH*G*y{~c5&vOH&&a&+>+Ij^hOY-Ig>|H*Os0xHa&6H1 z2_l{|C|JC^ago-Byzs#_5GGYb5qU1Tl(@M*3R1piemF__u7=rMa(X znY6a%_*qHYWvD}q9b`Ngu{_5=-P*PmBA97n8XtCo4zkkPmgDoaB1{vFnJoHo-ZRZ4 zDVpC#gUxvX{F&{C?P}^C)AEtv$Bo3z{884)pxleGw#7Q;L5jhpW@OKIv*I@eBE_lt;M?4KS8s>KrPf(LF|15DI9Rq_D{`Z^?b%+Qx@b_3= z9R@9nc|ME-EKeE-ESNOKdj;_XJzBx?TZmg1+w#o)EdM5(Cv3}VV);vKFiyOKc$)b4 zs2(SozttAJ2N&jOGK-HEtF5C4Kk?adG+J7=b^Ep*2H3jO02Nyeu+4rEjJo{YYkz%1 z-bz-Gh7gZ6~Gds?GCwlI9<1D8zMnD*{E-L9*p*b_YxUQ1)$ zu+Jau3B$>fo;`ok6%&A%@lmu=7&Xl&LyX#oAhrX3+Ct??_qnB=4 zLs8C(zg(t7R3aRrK6;kbgq_CWj<}szlNx`O#{XX9xJG38`-q$MofG)C z4bJI2O5CjP;~LlNyR31&zIa?igX!q?eM(WA>-AmLxL)7?*0^5ZE{*GZ2ryM_flnIo zsbTiqP;>a2UhcrxdvAA$7;CYaqC(VeODFjjCnpNt;n93x9-Rb05ftZdttXIq88E8jV1bT$=rmi?bqkqU0v zsgOn5%g;$V&pG?Ep}FZjpHDq!0DFPiR(5uB_)BU3&j-e4E6|^87jCYpgKFET|B(M$ zKioTU5Fea?&RPt&P1Ns%=^jVDzw#Td+ecvAp>Fstd*t6&H-cy3mftm1n4g+S&8C;n z8~EYH1K;21AHHDN_30;F12=+vpe$YXOrY%XvY$S2$R4M=R$PNgI4^UZJOIDD+FXP8 zpnb$O^haRNR^6NjabSKLxG!&DHV-mB7IjVC$JsoD+59M*&9l8VyQ0TGx2v`H&AUon zgMWbu-@X$Q+#Y}FuB%-`+f<_U`J;(jTk_)t$*S#`@Pn9%o&51n+2slhrjsARy84p6 zyWsYatE-bOZ;xMHol4IR+yOW*y;Lx;n3q&{g8)r0Fj1}{WA>KeQThA9+!@L}*n&5y%_+K(vmIP7}QR^5WiSiS@Ae!%#bx(4ULjrwv8{SaKKnSt-G zB%bxTh8Do*A9x_opGq&^K=QK#Ly%kE>_8GNOldcSw2fx+?!&wxskZ@!yz`gesKRHf z>hqS5s6?>1sGvwzLF)F4*{a43%TFs2AB6v%s`cw|Dk4S8JUnrhfP@GB@&IPV`I8g!RJ(7Lbk=AEwF zzX!MQ1?>z_vv6d~hn}z-x{EKVbe{T7>f6bNE7LzN@TLE2!@v(W4m`Fo@hk}4dKkLR zfn>uquEBqSRVZWvi>s=Zfgcrs5HGRp+k|ky1V;)_0-dG1rvbU)uA*eswhY+pPB!!o zJ`xYwCA-2bSs|9JS}WOo=^t-MHbhhR!2uY`m#jJnW!rULvf*0S;2Sq!k$U&KruJTi zPmkXIrwUYUn^`KrJB08p+Yr7JD*d&*nVnDiQ_r~W{2IXE$lI}Pf-Ng`!}fhsAmN&- z*io0a>`UNtsK0=MxjwKR(gT0KYw$_%gR7u#LvZ-~VCp5+BdzD*-B$15{Hv3n#&%rB zHsbyk0yhlbp`!oBF4CB{dT;R2t$#UqO{X+rh$Q=bY<~|HR_hZHHrN<1e9;Pc>ZUni{wr+uj~Y zgO9j|a0_Y>lK3oSnC$|;z)rU7FlO!=Jf*Y*ewSE-lpW|_pv3&o|71swp3;o?S^)S>GB44s8 zI0n|``PHe#fyIk=o$nevf#adbHQ0*wCf869Y$)u;*{VtpNX=GVS1_}*abN{zHG3Lc zoLSlclb0eme}T}<(s@j9YO78yK@^?^!Hx3CfiVt(IdWsN>Rlk_ANT>Jt|rN0mj;^l2uitz+}T!uE9YVmx(Xo>|*s@kht|2p6lES z=Q@ROr`N{Bm;ML?l;=WfPH4ZuSA(LLzYkL;bf1FdyKTpL%YO|H>;M~np%mS_6Evmz zA$Lpa-!M9kzd3PhrPX(FY9(l2NDB@Z&cfduJTT}Q#Fy+rLZ{{vx4zqomj^0;=(>Ff z+3*0)O99u^kT0sVk~YHJWuXxw6@ z9!xd_uoMH&=IbQB;Q+UVXiq>1ft@l>&W_l~QRZkuG7^DQT1{MpG)tA6P-vd>EaRR0NIrZUz z#|khLJU^~F;<~dG1h6#z#BT~*gH_;5y!R3pA4cMPpvDEZf^d~IvwYsn&o&NxzrdIL zyFZ1jl6#wzd)repGs}eo-_J|#?Su(saU=ANWK{^jz>|5&;XlDn6et{c@H~6O%wv$4`Pzs-zj|ldHF6h7L97Qc7R<%@6yqE^d1@}xWzm`KvFM`?o0@|z zWKOQbg-Pg=MV`~_XQRpjx4w&5gE*xnEGt2pE z+`$1#O@70L?^nks&`mxrH(XQFXp6U=Zlt*e@33or;qrj(IDh%?VG_m4eBx)&OCQD= zm6cl!{az`zQ8_A$mcN({j(-G$p7<=D7d;47eK%C~Di>6_kd6=cz%aD_0Tw&f^82B4 zVis3H7Qx{!;ZaF-@8w^DwlLt05CExAOe7v4(D~Kcn1{u})3)@te!4d7%M`W%VU)%4 z=OJ4t(0SOumOp8GHh>3Kdf-V8t3_Wwj7t#8Uw$vHZ89tEUo3wH0#wcR7GMHYw&gI0 z(LN8})&KOt2G`W_J?hT>C8(D*@ZYX`aD%=s^=WllTJvM54jdMDs!%#>n#Red?x;Nx)LeC(O~D*9gb%zc|C^ZH<|pEsEw-^l0R z_R?5ogx`_FhyTyU>~3!L&_gO7d`QL9(dAKBso>&S%dxn+&#>e&PfK%Wr(?1$R$fbf zOG^vPu^EFEML#T5Pit_~$&L%}j)05fybHxP?lu*GVZWUq$dX}xmbS(6W&xSA4dLJ{ zz#=lT?M#VmFQ=0$bXuQE1>>S5Sf-zNfoOBSvW=yO^5?-n2V<7dLF9Q6mYT}0PFow<9Hl^16>l#?sz`6$3HL$LMbq%a*U|j?28d%rBx(3!Yu&#l14XkTmT?6YH zSl7V12G%vOu7Pz8tZQIh1M3=C*TA|4)-|xMfprb6YhYai>l#?sz`6$3HL$LMbq%a* zU|j?28d%rBx(3!Yu&#l14XkTmT?6YHSl7V12G%vOu7Pz8tZQIh1M3=C*TA|4)-|xM zfprb6YhYai>l#?sz`6$3HL$LMbq%a*U|j?28d%rBx(3!Yu&#l14g6kd;D!ITYEO4- zbG*3}zN%eTT4|NqUa+H`&7~>?T!t5fN;|vZC7D*~Z}rQpmgNEE(c~|3~n{ zQ<`yWZgjpD{_rKOrs==cCS&lm3^e#UQ_Kfm)vgSFhYHQ5@Q2)fXD1TdeACF6Im+th za`0f9W_$}jjD^OC;8QUBQ$`|Y{WI~iqRM3?XZa|8xgp2#v3$DW`g1z<5QuK`-KIV& zzt0Hp>4|~+2KdAHX8jYSV6P!>w%;KLcWOWP?RLabijVDwW#{s9``rx8DgQJJgeU>B ze7Rn$4g5~|k5m40C+rBAKXxTE|33tV`J44jw*v%ox^Ls21R0EPnnx(U$xT`OZknlk zjKlHoG7>Q3qu*#^6=U+K9dU&^CbnA%{F(JXADC1A<8eFwcPPH?bFM3g={A<@#rQTZ ze9i>)k<}8nD~==N?8kbese?b{KJGTly66bvXl6cJEKO#O!oYUD11yJQNk3b=qr) zPk}!VdR&715wag5PF{=ozY=FZck{=HFH!^#+5e?DzDe9RT(4gfcN1qDy#;HIinfsa zZDk&vlo(kBYUavi=qs?)%h_`RTxv4p+T;X*`~|rHe6Ij`z054|Hi6@Z4V>ih^BGS3 z0|Nguf&Zhx|5M=40>^JpPeMDO*-!oDrO<($%5$;6%LE<}_;tY5H?K+6`|a$lBg8|* z|Kw$Mz!2~YGqZ2DY#$=dWo7#l#66TQ^UqQGEBK*LFx>y|0nRdZi2eI8$%kk?R7HXR zF3A4?_=VWtxGR$VOXi$7@l8y zj^uA<&g%r?3Fe;MbUwzsB$t1Vxi^>3Ft5zz_|;$aanly{{a^UZX}G<)x8vwh{9v=U z-@6AslI-o@Q5o*Ezbm~)K!vwt!aKXWZ|;kQ+xog%;vL;x;eCO9)wK2 z(GW(i)G~eE5@LOhX~Jh(LX3CDnRvAfp0_jy0uA+b*9OA7-*q5RqeZg&tm=|&+p%fl z-QD5d_U@jzb-1||yR>yA8V`3x`{Uu}UXW{nPco>EZ?<1<4ywtu#9MYq?VcMCDo@S- zLPc&Gm>Xfu9lf;_RFXj?}=c{)0~kCc~|RctHU zX&r-)e^X#j6chp9FSknTs>-)n@(1HdP38#JRp>C{^5Mj zef!h$&<(>dtFI+{w2WB@JC$7&B75utiT4_uk7u_S{6><0zrk-Jo-}xb_^83*TYt*@sliFy`mDi=DBy1l z?k4_agL{cTWbhF2Zy5Yy;tK}nea=S>j>kMSKQ#C|Y;671;5EdbHh4Yp0yvLG!~J=| z_F6A9_zLk?8+?iQn+*Om@ht}b58^uv{y1^J!54`S7@X7jdpv-H;qr6;nKSr%Z87WL z49>^jcG&VjgXz2x{+R#G1xT};yjI&wZH~$9fIpT$Nc&01ac*GV=K>EHPM_0xlsXd1 z<6bh$zw9EEUMqj#<<2~h_K$Gdx(fa{or^WTUE>49u{@V*JgLd!*GxH`car`weeC1R z!Kn-`%dRFjT0Cx$bKgWx)m7V2J_KZVK1O*zL$E#MM!uWeXqAu~c@?>J3pv(}_sjM2 z=v*(4&h_%>T+dhMs1r11zSsxQnB1r6S{@X5lfc^r9us&%;7Ngx3Vcl9;{u-$_@uz6 z1)di8oWSP=z98^LfiDSsMc}IfR~-Su%>KaVUnX}WaF8z+xKH3gfrkX%B=Cs9+Xc?o z!!TGMFa3giLf}b(j|zND;Nt?H5cssfRb?F7r3fqOzz$*pr6L?VIA%XM0nOWb6Am1+Vn85o5o)CCa;G+T`6Zp8mCj>qz z@M(dk1wJS6d4Vqod{N*_0$&mMs=zJUPcYlPNZ@XP7Yp2DaGu{v49@d|PvAj;^M03E z{w6^_VsI``yTQ3UF@g6BJR$I;z#a^1imV8xE0KK-7avq zz>5X$5qOEfy#lWkxKH3gfrkX%B=Cs9+XWsIc)!3C0#6EjRN!L*9~bz9z$XPhE%3C! z=L9}4@CAV{3Vcc6D+1>YXmj2xDst}sZh;pI++*-b%m_@0!M()22Iu*_Qs6#;2L&Dy zc$2^*2Iu2cyTQ5qF@tmY69P{Pd{p3L0v|Ux>v_W9T+T^@b2+C4o)-9=z~=?NAn-+l zbNQDH&gEY*IG2A_;Oa&m=yz-SIbG*6xm)1H0{0l4%U@z}E`O!Lx%@tX2L&Dyc$2^* z2Iq3N8=TA8Z*VSWLf}b(j|zND;Nu48aW`RbF6XqtxtwW%&k1~9;0pp@G&t*X$>3bh zRfBUm`Oyfo9~RN|R+GC0UMz5rz)J+~6?mn z6!@sX#{@nu@CkuW3Vd4NX@SoPd|u!S0$&vPlE7C4zAA9*C2Co)c77JPTj0e4_Zd8f z9R^I$;5<%42Iq0zB=CsAd0e*(JSOmdfhPo>6!@sX#{@nu@CkuW3Vd4NX@SoPd|u!S z0$&vPlE7C4zAA8jx*KW>Awe6hei2Iu}$B5<$3D+TTocu?RWfj0>} zBJg&B#{}Ll@PxpV0v{Fln83#cJ|XZ)flmuOE$}&k&l}uB^VNdExt}Zwd`aLd0$&w4 zKcdO~obxTB`@2l;7I?A1JpwNgxL4qn0{0o5$79goJbpt4=lV7YJRed4bJ__Bk&S|dkxOzsWkWsU61w|+-om?tf0ZUJRyT~`I`*R@)3cz8=T7-GdQQy zFYtuGlL8+V_?W=Q4bJn!guo{a&gGvLcv|3d0-qQ7g1{FAz9jG!fv*Z&y|@PY4EKMo zZxP+EYjU^1iv{j6IQNqhfqMmBDR7^`x%@$ahYX(S{|4uDA_8w0cue5^0#6EjT;LM| zpES6K=7(v6hvNk6@jk`JmIz{I_{ron)gNpUR3NX?-ux| zz^&Igr&Aqz@M(dk1wJS6d4Vqoyyy>{_3svVvB13o zuM~Kbz>@+W75JFICj~w&@CAVv(E~N+xNr-+Sl}g>IP2Lf@JfNl1l}+334u=vd|Kcu z0$&xl`_0bvEf%;};FAJZ51Bv~X1f$!>YT4z;Kc%u2)te3F@g6BJn|Oja<&URCh&fN z^8+nw^i$%TuUp{70`~~KMBrY5`ve{ocu3$)0*?s1UEnc+_X~Vn;1dF$6!^5j(*mCp z_`JXu1imEj6@jk`T)jlVX*^yg^f!SQ3%o?&UV&E%JR$I;z()l>Ch)Yt=L9}4@CAXd z2z*uG>Lm_N?ebQkT?Ae%aF4*f0{00#DDaTLn*<&actYSwfsYG(Lg14EpBDI{z?THR zBJfp#tCw^*wfozIb{BZDz`X*m6u3{|L4k(^-X!pdz}p2L6L`PC(*mCp_`JXu1imQn zC4sL9d{y9)Qs;JG6?ozbXL)|1=9+Z{ZIqeZE%0K2djwu0aIe5C1@04gP~ahfHwio< z@OFX61P<>YQpVJ0Lf}b(j|zND;Nt?H5cs6Prv;uC_?*D!1->BgMS(8~d_~}^0#`5J zftE4br3hcjG?UljO~z*hvm zDsT&5g65#lB7wUFUMz5*z=Hx03A{<*5rMZ0JSOmjz>@+W75JFICj~w&@U+0^1U@hD z1%WRLd`aLd0$&xlwN2<(0(T3%Sm0iPR|?!G@Swm$0&fy{MBwcLj|seA;Nt?H5cs6P zrv;uC_?*D!1->BgMS(8~d_~}^0{7s{n829pQm?=(1@04gP~ahfHwio<@OFVO2z*iC zO9EdJ_^QAY_!2G$eI^AyD)2FZPY8Tc;L`$+R63WlUEqrXUlMp|mvj0tfhPn$F7Qc# zPYZlr;41>R@TFs5%yHonxL4qn0uKp1Ch&y7#|1tq@M(cB2z*uGmQSf?jed#*?iP5l zz)J+~6?mnHRSErH z;Kc&>2)sn#UV&E%+$Zp$z(WFW5_m-5?E;SpykFo6fhPq%D)2FZj|+T4;FAKM7I<3V za{`|i_=3O}1->Nk6@jk`+^Wv)=kq-O3*0U6Vu5=EULtU>z$*pr6L?VIA%QmuJRCh&2APY8Tc;L`$63w%!C^8#NG_@cm<1im8hRe@W9-2Tt{ zFA}(0;Kc&>2)sn#K7j`X9ujzyz#{^07kEtI{Q^%2JSp%|fsYA%T;LM|pA`7Cz|#Vs z7x;p}7X`i~@D+it3f$Tw^jm?u1zs$0kHAX=j^8dqW3Hnr1@04gP~ahfHwio<@OFX6 z1l}+3gus&m9~JnRz{dqXA@E6oPYXOP@Hv6c3w%M~ivnK~_=><+1#Z zaF4)C1nw1hrNDgx4+=aa@Fsyr1l}(2n85o5o)CCa;G+T`6Zp8mCj>qz@M(dk1wJS6 zd4Vqod{N*_0$&k0f1lNySBrwq{ogI{Vu5=EULtU>z$*pr6L?VIA%QmuJR}BJg&B#{}Ll z@Pxr9ZFN~mfsYD&OyJ`JpAh(@z^4VC7WkaN=LNnX@I`?y34BH1s{*&`g#IaTx4?@9 z?h$y2z`X*m6u3{|L4k(^-X!pdz}p2L6L`PC69P{Pd{p3L0v{Lnguo{SJ}vOHz~=-$ zZ}1q6_XUHei7yI#N#H92Ulq8uFSq~uDBmK1y9Hh>aF4;$lzxf8y#lWkxKH3gfrkX% zB=Cs9+XWsIc)!3C0#6EjRN!L*9~bz9z$XPhE%3C!=L9}4@CAV{3Vcc6D*|5?xV7Kz zkZbly1nw4ivA{h7FA=y`;FSiS%(u(!GdPd0puj@{ZxVP!;OzpB3A|t634tdCJ}U4r zfsYG(Lg14EpB8vp;Bx|>7x;p}7X`i~@D+it3f!vC?f<;~EE2d|;Kc&>7@YfOiNL)A zuN1h?;CvrKP~ahh^YORI;H-y;!MXhH0*?v2U*JiBj|+T4;FAKM7I<3Va{`|i_=3O} z1->Nk6@jk`yg%ByCEC@}-5M?JzQW`2lvR{hZr@Q^wr#7&vu#Jk)@`1xTeog2^OSkL z+bg^tPvy3)+d&LWWYcYdx;^=MIOE$U557#D^)a=q(59^0r<^{^WnEweQ>*v4wY8PH zE*@0W^w$mFISm0m*VNYo!yo!8IQ_%#{}xz#MhgEGW8}?L@0>aAomndIr&1UYEI5fB z&X;)39lz|@6<~YfuZCY=-_~HteZTAC1cX|%HMM!*wiJQ;655o*htZ1qE=p$Pp1Qxy zbuomq9UMN1^6A88->X8o$%<9iBpZ}o0@nA#s z@F;3zcntLh3VY?q1>Xag<=;8yI=Km&DUkZ6f8eo={?wEHnI{T-&&+Og4c-R=W#9cr z%-8>AY|1BYL_IxOo0|7uHgnm(<=ubTOzk(9QZob37R9d%3_TJ^{d?a_>xRF8TCbX| z2E_zYKd39X3;mbP`M>#t)Qo@N{yhJ{PxJP*{B++NmTJGb7%0jQlsys{dN^L5TB^Qm zzIx|e&&R7%4+qK~hI}C9zRw1S@5B_UQwt!834nBUvM{gj>(mAXlUO-_YNa}rK-cv* z`fu>xNbLpX>br^p>Iy!IDGfk}s6JLX0R5qK0J_7!)TUnk#6MAgxE?!%oq%fZp=UrT zuA!%%J9X-bPx?XdQv=X3KJHJx{E55T(ElO3U$~}fZcIHB9N9b>99Avvx_fh|ZRW=X zZ95OST_2rk8+yd`(e(LquBkM1H=i|o^3S0tR`4O!Ny&*l3XR zLh0Z`103;sNZal|uDfe4()&YO>UfTSwx%_wzkt6$mj}P4`%!6IkG%nvwi%Un#ca)u z5Fyjwz?+Zb2(|NC@IYjxKX9t?#r>UaOz2IJQ2dpc^7&6e+yqu;w&n&U4|V~j2ewL= zRFci_Ppu?Bx^Wy-;+j%DZRFa#o%bEv zG%yRbyc@e7G=$#2QqQ=i26tct&;ZPH)ZH@rHTC)aU;U^62Hmyx1QSd>b?kkqf2~dZ zM(H^9kZt`qn3@fy9<_Vvh(w) zfzo$%3Q~JCXs2QiasN%KRI0o}SY|$@h$<14M<(UegYnPo8~NfTSoc8LPpKdJT~k;4 z2Oi9;1&!HdeBR2W9)t*ks;JdFmyXXY?>}|wl&;^A{ioDtsbNYx2IFQl^>aQlj8r@v z9Qa95FmG1nQAe}(SvzZcJMg75#yB3LS~>Ji^5|NB?J3lr9{R|enz z00va2R#>}`kTvvE*Wei7eM67C2JZw%aOAz06qP-5&m6exQlG{N^`XH_aNb1|OnnLG zA|MOOublruPL*eHSj|?@Ua1K@9NCZ>d?+2ingjygXNJ{uu8!ydeU@9k29(R~q$;)i z4n?5fx~3XxwFz+}j&%^~Ae9ut*Eri?nc0^gVsi-gr3H)6o_8bo4@Sx2LzgyC+`i zY3wol+D@QHY|*Ya4K>O+A8{{7XS`UBO016KmDteUE-D?KGO`ww2`sVLo9T5egT zy(f;wn-7B>@3HN6cJ)L%n@i)-{!9PK<|l`5g0Zd<^% zF{!fBN(fWf_Lfk6kLv(vJ8FYS;;$LKNj>mQ!!r85h&Qg4xq1%+b z5SZEaD97<>xT#`n%RKU=i28+DzMfz7V0Yx((#e#HCmJc z>m{1ccD_zoYtwln@s}GhN|b+Xc}hv%sZ9%TE;mdC_%G7*$(lMuoaZ~{*k4iJ12&pJ zvMuW)U?ZO-|HsI_8*EO4kg~oe@b3f1bVAqxz`UDm+%iC(ri$UbhvqH7ozmY<@+%~7 z>(R2B1o;yr@1f3Y>({bAEXe;Q$@4qwxhFkLJVNO(Um_ke_y#B+)+=G~HxeH;xR3Za z@psy4uwuklh;JeON#Y)AKrYWe19#HfGbHaNdG2AGAzdt|&){C-AtU`8fIFpslH?;K z4;vTC{J9|iFC-r`MeA3|e5>Ffa zyTs=WzDj)2;Fm&1SpF4*R}tqai^~%s?k2$e4~csW{&C`7gWp5kXK?%$JeDU!{7uwe z&k;`$=Nau1I7p-XC~@vTdx?(|C(Akl+)4j`MDmj)cnORjG@lma|3Tmn3j7-a{||xx zTHqJK@eS*{2;peFwq?BmxKq7KNZw7yMS9hSrVWwfaNy0VGRy$uadG)A$l_B5Z$q8PjgpmZ@8tqt2h39F))EePv~~9! z4YwZFn3kH_qz+@Ej^W{>(W9URIKzlF$2$&pMwQg@j@Ed4_;5$O*D=y9(Vp&bZ!{i0 z3LD@`f^-r-*4zo_S>cW@sA7(QsYFadis_i=5y-Bir4vr>9D^~l(**ZKV_kM>&B9=0 z2z5-jr8C-$>U0jpm{B9Uqi-uVXN_~#0<;pj=w)RAOd&9jQx5x!M44ti|J>1&S z8|!RtiK-Jp>^GblsT@<5M4ju~dALU`V=OL*VUOuKaYhA_M4bxM*KzcyJ>VQ_24T_G zj^=nY+}G9HailBSDi&R(lkK}_lvq|=Dp{GBUoVtR1wL<1rzv#vk!Y8g18C8CCc-v{ zK)Gz4-LOmGG|5m*Y)3A3XSC}`yj_&;jUJH;0fBNM4mbBk<)|1c$L;89jrPlBYH6kk z%cq@lVrtvj2h%fD9OZxi@c0)Ls-pI@V;kLP=6 z(0VicalY4R{4$MyO6xy9jqecj+@Nv2-|p1(vsX(8oXTLo!oL;UtICH?=6pWG=SR#d zss7j}(J(J0&gT@&J;bjl+q#`@vVi+6viD?E>~y{-qhkBka=0}E%$eVlQS7(Ngug!J z^ufO1ORV9V#-VhdD>%F{IGmV(fJ9~9@lAMPcTh?B5BaaX7t6^P0e>A#Jp|XX{x5s) z0v}a%u8mJ1U{G|TQj17!)Tm$qGa+Ems53Gl6Acmt6a@?+7l?!;O(uYHi=B+HJ4Vw} zZ}rlHS}UzuX|>?38tzi9QZKDltJK;`j3C|+@sjU(*Lv5?J1esT_B;K~`Tu`s{eClh z?`J*hUGI9=Wv|=bd)Q9$j^(sn^6SX{v;|pM&>CjelmcamHRJeN@S@E0=GP*NhR$k! zIn)-+9vX_B6{3a0V0MNQ6^vD84=s$o6aH-=@@1p9^$ij~IWrVnoWbjQiWXU%)5qED zjL-D8eh5a;c~`+iqjf*Mz9s@W8^Bc*9Ao3Bv^AuKVtqrgM^_`X!o6!t2Zyi^;k~rT z{=N(6VtL=s%lp1vC2a-mfmr(KShJcGTE8Pb)K?Y3P;5$e1`-gA&C4u_Rb<2(GKx8B z_zVqZz5CY)*$3p~zPQn}4x&JWXeLlI_;{2kb#mOGw4B{|A`>VP*K8uWi7e;60JQSE`YUXtSg#kroX<+yYB`HTv3VIJO|S0; zP>!4rv|%)YOJ_rBKrKZE9IPRKU19<`9|WC`N}S!PL#To>KGWIkjUJ7Au(X@Dr?%T? zu$x@NC8K@%cn6Z^+e_xds;!of1>2Cb8_AnKvlG5%S&yj<`8|m}1(BZ<4eOMv=?F&~ zH?Vm6HFI_S!v2;u@S~;qbZi!AkL*s5d_CK{f_%;DaRoM<=zT?g>_RHaB{?__;^Q%V z9Ky%r`IyDW6Zx3U$5Z$?jE|@BaReVn@iB*vzK-NQ1fkf|l%9Bc)v~t6;&zgI6sAso zYB(iDm=f*H09ya{bxfbRk;)7FJt%2d^H#QsElSs-fDOAQzYW#I@4azzg6X|Ut)CCr zjGbbeA%n`jZ&%lwbe#OuFdZFBZ9W3gh&?O`DdB%oW~zk9JvdL%i*TW?3h#RnI(SVO zy7Jz%!PyRhvVBZ6jc6A`vD4$lI(8PCw?SCeuPEr_ZM_D!HQ%;^G^mfwLf9nalw=PD zVKA%ejeZvlG%NAzQ*q;z*Dv7CVT41K=)$CH_=IQ0!%|Bnx#wBeZ7P|%{*kP{h%44q z8r|!Sw!q?B$CrX&HBTs?Mt*Aqq}TI})>YWM-xzy~D57%Qv-r9s3 zS`s^}(6@JD?7r3TFZ8Y*kzE+w)tuS2RJDfz?9nJ3_i4C3=HS(e^6jml*;j?D80kbG9tYw8e{F`1!Id#)h(wm+8rMJ&5hDo z!|gbN#x6jc?TwzO3Pti=5a#Q=oLa7SX~pjV(Hfo-*D%l4P-&-F|B`->p>3yn7DQPo zL}6*2jxzW!q_dFaC{4Vrf2GpY^KP${wNsENLY*I=%c$=&ENAAwCg+y8oRZl0e7h#b z?&U(5heEhFe1@~zl)1>F^uEQ;R&R7Wf)vN1R-w}Nz@DPOxZTa$PlHiO%j-f6-GVux^hwc=(NIClJFSk^J3L> zb$eScN$wS?P^i=@AXV(K@b5epe@fpV3W&;w7rm|2NwqZ&qF}0^*tzR%y`OUMdi=F> zJJEbvA|q3^nu$#Oms+LKpHtRcfUMaTZvLj(qAJ%7uo23NP9us-BdT}LG)^{YgcVA` z=p2ndwvW0eplpP1vBQ~rLKIeCNLIaES+#}gAvySX8BwSqXG1>yC$Z6 zQqmUA&WikFM~Opywi4%~$Y#F^g=PW6i15X*`XRBVd^FW1DRMs)yC4G%D0ZTToEJjq zb#a$IhBIeFp|g|ZwiO)d+r~pJkm>$?vAP2{hf|0IgL2u~P~vF)Ly;wDPysii{1uR2 z^hIYwbEzD=QlM)#kvYV$iS4P9Q&O>`b1!O*YL9z#oe;e1hnBpqUzz+!jFWi`RT68; zD2df(4-Pn+5VXYkOvOP7-hrL>Z3V|*?374wXCVq@b^HHq{wI|`Z0khXA{XD&jV!|6 z^0ekd)Ig@X9pejCe{iYB8`2+}p{2hX??m@D4+NLSI;#HI;}e7*=<7fX*ojZ$7nJX$ zJ=0V^i=D3%MU=MX#vWRYf{Difyf<$3y^exf<-tru^D$jlwMX`y-rPSB`6?}ZJU!Pi z?u~Gj^QO5g#5|FGqnh6+Z0!#JS)l%bFm_~LpYVy1ons^W`YsqkwIz|~Ja|(2r}RNR z_wDU^$c*O?R^Q`0mmwLtKlHEZO-ct)|H2cn)%lW{m<#zq{85K=>iQlY@UFXLFgz!e zcput8$|H{xDcjgidYhuw^?dwnlj%>ZISDadjOE1q10nd-#2~9>aYY}eW4iao4T%3d zjz5;(uEu$!;c=wlDcA)(bGoJBM)ZeyOlRtab&bu^&Zj~NWcI15UIfSeqv`xuLuM?a z?UFBPN^5H5^R%!Z+EJ9#D9Q?o(uxtPALd;*d9Ziwc(MqYLg_i(*FmRBADnQO`#n5` zzzFr<_4v1ItG5p~j{AF4PGr%*xeHH=`3FVz z4O)02Kgv|nmc1c>&S^TdKRysC$j*2SEwLwjT6Oz$=NZyF-hWCIYdo0qSvWi0S>N@# zs#g&6f6`eUL!aZmq??&*)EZ+IN7FikpmBm2;bhXa-AEhnk-r$B4$7f*Lp*(lk8c=<@Q-{TMMdb+y3AT5mcd3^t_hjlodr+3|#uwUZ-;B3WX5V*@8&MMHf$XYeA zBl{zGGK|t2LdPx~+3#Ie&lw)ODm~!5jAv3*=nyoY8OvAaLFa8$qWDyB%12T*DJD%P zg8PAaBxSmqLQvTszh9a3`MSIAqV_n1YJ-js<^rfw6U@#O=a@!TxYU30bCeotg`5!O>$s(_{Dl{$F1|H33SA@;#Y0$HnKvVCEwp%>Y1inJqZNC%L^f{Xet| z*StRrtx8Gk^oi&|7KLI9GeWpKpA)+@lPbM;*|D)nImJ$QhQiAlm~vHM%EJ zFA3-3z9Pz7*WV}~ier-oo0;IQ7ZT;GICkf1QY-p;__4s&A~lJH;}p^r$7y_=LB}oq zJ%zD_c^Kh059c}oN**xx+?Cq29Q_|Cm3MrelvTPNr=Va_2qZbUZ5lkg~vT{4ZHiu~Ke*g1tx-ISoSyI9W-_wmykXoQ1IqY2@UMK8=;D!q|iY2vxImG}4WJMDt#K(b4g?o{zHNy>>YM zBl}9ctvj%o8re6^+qy!XobGM?6_#CjS}(HiP;@-KE3%HKDZMcfTFa z&*E5{&aZ7Mb>3DF`o9O2adVJy?|g%dqrAHCy;ONcnWXbZFCP`hzDrqSZpGBheg!kp zf`GnRqgnQ@cn=WY-jJ|Z-UgIzZ|loIjXafs&IXdD#Ov&hXRB&H)Y_VNEy~5#_`sw% zcJ5QOM;dd(*@{gX#9(!5d+7WJxOuhB#rSkac4pU+s$Itew~?#;P)6&3Y^c`m}L{1HCK4(3evhboQHByHI2! zZWo0Z#eOlc`JNJIXQA^cR_svlQI|1a@f3#ff!HNT-LjMe-f_u0m=AbM`7g^L0djzc)lJes#oDz}*>R%t zSz)Yf2Bx&a7Zt{eP;XI1YteuNVr7|u*zy8QGDIK3N;4Xm8G*?19JH&~4vN=G%3$ZU zc>ZEpP&GoR`=6_ZV4hx?6UZstG9M%v7|7v|zabc2^pA zUW;T!_MPNy{q_KAC{FgaUY|iHY2N6cF&m|pIJ>>;LW8{P=H__U`G-`a3izoSRHNwU z$CpM>x~OyvQ&On_qFw}I3#QQ6Ze=h#N8y3kvI6vvo%LjZThJhpF(YTCg~vud_p|B? zk8_?0#Z+4aMc144wdmfEH@JuLUP+=FJE2EWpqU1g?zf_JdDyzM-r(s7b3)zw1ZJ0(tSb`I`ak)3IjTeQlLTNWmA=za}O zHkvCek1fg03=aQ$v?Jgxe8bVt0>_30oGYfF+6Q7+lpqZQ+X{b8#pGI=D-T4LruTJr zdRu>?ZfsYe$iME5PQeB4N#;)FZ9M{QqW9WesQ&8S^s>51;ofu)ZeJJ-ds|P#N#fq* zZ1k>}t=ftdx2B+OX$D)3-HhyMfmoer>>TVkcr&T3Ysb)dYGONqcg3~TY9%`6rmaiQ zMpK8GFg5L!o~>KDDOO8|_zSWN$zT)7+&$X59ZL2X{9_*k+B#lLS8W~jOsTQEtHjwc z(fI_8U2$X+dI*(R5WArs6|?hf)vT#TX|UBOt$PdpxoFW)MUf?$@urUozGyyB);kaD zt>IHkYAH$*Jr>UGTD+ji)^sft)Z+);u6&Txt_(qxX1u1_7g`5Z?aMLh1ntYwszvQj zr420$wJ_6E3lnf&a0X^$=^xchRa?cNQmO|JI0+)rC}C^;)V74Y(Z@5WG(e8x)9v?B z>e8U<<$JuX58ynAyHXI{EpO{j6Fw^+L9GuC_$r=0QIY7@Nd|B>nq~nzVbFl&2b@K86*$z&%ye(G31@#9;hhN?HTljKvn&Ig<*fw>A#E`g#U zR`%4pM@*wYP-j1xuKwH>QaJD0X@yE;JU2EcawFjERCA=?Mg^w=ptlMsfkTi^Io>#@ zW%(jccpz>_ssp$iZ1387j2=vpu}VP5N!Pu);@B0c6sV0bx?_oAo=p?9`!F4SbbLBm zMN7+f$R9LGY=?7<97{eL&SUj0Nko9jbIh5W{;P?_w~gZAIbapb*(w&Df4D2>qTU=s zrLPc;C#|A=2mV%kN*!IH`Be`pkK&uLT=IzW<^|PvXrcTLpesft`$@Fhz86(FprZNU zyDC1cO?q4J0y|aQO7T`D%I|*P%Kli{4>hv$0ac7!DOwe;Dr1*qBKoy+3%${4c+yfR ztB<;|8Wf&?o5184~r5FnwGM8tn2DF9JkGNG=YF+&?7!}OXl?=m2-It<9 zE&4XLOH#z5A9bvmLW<=*_1n2S+R67}1dlez+% zS&L-_sACkq@Yr_(k#}|kBAd_gYivHz;?ryGFdbCDu>?VML$g)xo_488? zfZ$!wo40q}@?7dAsN_=eMGt|3l2yaU2)l@CV4CXA0@5Q^*Ez!|qOJHx-Q_WlP*Y9(_?}XVmz+4RShf>b8)4oBNqdyXJgAmc!j4Zdmm4 z%+O7klUVUIp;es%dGYxb6(7$%Qhw)B(T^1GVRhPW?yfPhzOjOL(R0hR#<}s8iIA*rj@E z05{%B+%HowFa^;0dsJJkA$51Sg|zar*A7obUUp{#vQo-_O%5E`-K*o36wSdxtz zfF0WCMJOtjHq*iyqxOVQF0+%$hjJT=D{13NI3X9pXkI z6!HvCy-dqi1hMaOYU&^mgAqueRqM$z%O0yB7c-`PB6W8Yri>!QLqTe?P=aW%4&r(dG4 zV|pNbv`H_$rA;fhS=AEM2+9L$UFZ#NiLHN8)mAgdk<-j!Z8ai%7o;sTAYjHqX7^gIWq z`*tEZgHVODx$n!W9)=hTW6Ltlb3O6qO;0I{_KQr)MpN1G5ITaXbWol%FddZKo<4_p z_y5a&FS@+g4YNF_voC6|Og5DfBoSrgU7E*A+W(~1N1Ye+{-ZBx_rxm`oy`-S=dm!p zDAa}poe*tWkKf2>S~(PJ&0d3I18_?rCVreH*;ye>wqgMkb4E1nIxOf^W@C7dTRyee zIa^T*sJ^P)!4`u>aw#>1K7TfkFno+v+kF&OOl_ABA*#VxTvxXNZ|g%;)Durw=FO-d^1iSd+ChK~R``^Cq&MFi>!#Cuv2UKxPjBl}XNaeKiaXe4nbhhfp zVrbsp*U_^4a!>d$@7hUo*Q7<(AM(-;daG!Bf5haca+KO%D04+SR1*>&K+ni1dq3q< z-a13E|HtclG3oi4r|9KxMmzZL2*sXQ4Ja{0!ZU^wXfL($O#*|R$|jjQGwKt^e^?mm-n&gYuY2&^7QS9$Af)>NKiaIwmYoSRJ;Xs za*5tH=zMBAkkMVSX&K?eomWkUVZV-P#okcHS z4qSm8_Haa4$O zBXx&tN7!OK5x&%OULZLBk|}sV{^G(SPZqt_=j;BWT;il-G$ zKF2e=4zE@zulRm*O(Wh(gO`+6;RPKY^&$~^366e=&Ro1jbtGO!Ix<{74{x7Pm->`m zX)`+4LkHhj553%!4*&~JPehZm$dh$SZTKutR)Obx>S7Kq&cRds#TP=0g5vQdfys1o zdg6?fEjXQD&I&JcRsau9m2WJPH3A7Tex8CrQQ?K>cqSH3^x&m7S)MaJ)A81a(>xUPs}Gvl}@>sl+lNa3ro&Zmwa+z@G{SZlcr>a z@Y2|l;tPwi#!tDdv=CYdWhaybid1^yCn}-CJR?r_jPMNi3_IDA4LgvSU?IH=Bbaqr z;S{{CaKHf1Wx?XfXJ*;?`@h%!KefPr!Mld77YNh4h}~X2{BM1^Fcn&AhcHo>J&=X!SN23AkMKFB+1eK zF_LMAf7R041fsa4qi!2v_Pcpa_&-nR&)4w ztN^yHCn1!Lk)T_Dp~X$37q!5V{pocew*6^?C`CcNTj{Rz>#GC38@LKIOGOp%ryO2O zN&MSf?C9!|cf>Z~n-f9RnH`?4ZQBv?)}W$$X3-0Z;Ar;?y)V{IKb9d=#=q|}c)%Tr zjYZPg@k>8>PQ3p~?*^u1^btAr94CY(HwfR(*J@WVC#0_`F?_*?V&JszyWTkbk_-LFSk{}JPM{kxfQyKJbj5ab_k$zR2M zwM$C)-OD&Oxg@z?GH$=~_#wurU6k$-b3+(% z&%*CzT-z@Z;sM6rNI>fBH;g}P;cASB_T*6u*X>_F&w2~r#BzRP;lF2msyZe-|H$}V z7XB*Z_gMH_jQ`xi|H=3O3xA*SkcEHD_(%)i&v?Ftr>TavALm;_{|v@|WbwU>>-v}A z)6Pa}{|8(A?=Y_0g9QI1#*er7r!jtvh5Hy^Z{hij+XMA;8Q)^@CoukN3n$G|y=#9W z_;%lwxD_sV*adHM!GGd{Kj4DXr)E;=^P&s>jtfq=_Ed6?22Sss&g72ya7rv(t_y#h z3qF1yE)AEHz42aLB{`28+&=w0k2XBG2#xaBzvgDt|>SaQx~yu-rh08f>!8<@YH`KEmS z)`kBD^LJSKq@lo*K6|WqzsI=xcnU0F>@bCK^NkhLA6yDNm7c3z@V~g=dtLA}49HT+ z9|WBA&ty-dPsoM8ocX29Ka%tJSBy6>ZrY7!8E?1nPR7?TZuysGY z!}tRnZwYXQ7}1BtF8I$`&MH>?84mS|3;!MFH}HV{D&`-B0+}k_lYy)9!2Dk_|9r+* zaYBvVu4KG}@ny`v&PDz`%=h#7c>(jEH*y%SX8aSzbJ&nbj&et$fh9ftj2nFl7&qhl z9Olnqyq)=GocABVQ`uoX^VcwcEz5b^g}>hgKN9td^lUgr3pknOi~^o2-eTsjV*Yi^ zztV+I?Nll`*SX;Lv;3TIC+o9;@mY)?%kln+@fOBSJMban?G`=+4N)q63W1XyR#|*{ z1|k*zC(K`C@t=0#zsvj%i|@q%J(c`%z)7F&7JrTl{}$%&u=tx@_@6R=kHyb|GO6^L z2$1wK6QIV0I~gx!{3veVzI2iQ9aJcI^>CwI@QYpW zD_!s=7rfmCzsm)ur_fXB`JM|7BP%;MjL}K^0jKb2#?1uBhunW34m_3ob6oIJBPU-A z9?J5m{Y@n&>Vn_Ha_AtM8z_rt-FfaZ`TAGQNj# zZiYOQ7|$H1BQ*G2#&Z~7!1}CYd=2BTFn%}V?f4orIfFmVcmuBsOw!(-4;b%Yyn}Ii zCH=@syyU(T#~OUjWmJVnzc_zkV-3DGF~7WNUKzg4P}NvdF{+^)pNkxu!vws@zf6&c zqh4*#a`5#Nd}*?>dA|Cr%6z;zUrWSVY8k#6si^eHmU8;|0KHis--aw1pF@AS>fYZ43X`wcm#%hl0pBl&VQTcykAV~zNV zgYgwB&GG7BI;A-}i8(4V-)J378{4NX@5>$6%a?joiQq3lQ2vibnF^b7Wj;Zn3Woa5 z1Ap6rN|^Pv2KFwitzXFBv@qY5z;_xJR5j{vEbw_5K1<5q$DrsSuBHheT`04@?$e}- zXLVUK7WI)B`dmm-NlyOSkNA{>iCTQ+BK|?39ui#S&a0|wP@fSht8T2HZ%m=T@ngwX z9~Fx84Sp~jDGzXv0No98qZUs%U9@z$UrBUAvdU&~g$jRu>HIAgD zpyCFUvLd_D6Q8R(7)9*nqemF?g{HFjN1IX^iIj;GRNFH)Pw{%l)1OXCkPj>k>30*B zh_aVdTcpJ2Y zj6HugzCBHCh4^q#O}M_iY;M(}GHU5lG)rzVS@)3?g)>E}%k+1qda-G$K)qxZzCA^^ zw$x>ZzAokNtG+Jf?%h;jJ};FrJMry6{(f6RyA(D^d>-zg=<3VfDI_PUK%eWw4M}~x zFZCz9th`AIZIl!_K}JxW17$|)czie4N>DqNvIf0h&*KEpK|eWv0cHI5J10T*zR zyyhl+&ru6hx-pxAs!nX364KMCYWzbDjUMVK!ht_+W)jCKx4&V=!zTLdm>D`z6sl*a zx$!h7C4vID)Ml4Yn5D{x-l#pIOL1Rzlj%n7Av0b|PbLjSzY=3siB2{9gQTZN}@f+m7$Z^+$c0Rk&2a7)#c5#^p)8;@lT@K zZIf!G%JFSh{(7OfMvD&}m3TG_2F#1Ucak(g(||rnd5W@4J~ZzZ=FeUx1&e>Jvb?tT zDm^_%V`kmANtL36u(J9(bdA~Zw4&M%I1Lyc-B&Kk{#fSrTqf}Q7{@jSwbW_&4=_&r z%keY#MuATk_#Xv6L*Qn=5Xr}qKwQp01z*blTHsQDv+o7Vj(GkdA;-t_)P!Fl@Dj%D z^qPH8qz}zUn{?^@Tzb#2)W_@>vhA>r<&zvtwa4Y?{Y^dPbPIi?-3})Ka3o*aZ3N?V zz!Y{|zTT(PQ~q2br%dn{2sxNaj?1}5@MU^e3O+4G8vFc*3!nDakfQ_5(Hs6fF8s9u zpC$O41TOV?mT@}JoV$_#iVOb(!I$~6*M*??D zONa|;0*%*mB7C*@Ye(`<$ogZCcz)V3n1hz`NIS*`O^g6 zEaXH59v1jb0&f)fy#lWj_-_SHYbVBTn+3j5;C~djwAf-mL2?ZW>^@M-Uek^h+se*`s-aAXHrZfRcjht?cZ&=EPlBH%_%8_lNkab1F8qGj_e9Rl_d^-C?QpIOKj^|=;=;eig@32uOMBk!!vBrnXCoaZ zAJ@6?|0?)WKJ5!5XQ%fg!9N-PM*e3m{FAV+ikxlFVT{}Ir@QcHx$s{Rcogv%eTHKH z6giUrL;MWhDsV^OHwawziyjyFb%Oso(L0>4l2r9KY}{%L~$s0;rE!T+A% z|H*~FOW@L;eRxxnZO@?sm*ruqz;6)oj-$Z_9LbUQyGbtihc5UbG}wc)eKINkl<|n^BK4GZxwv0|BV8d z`rj+?I}wku!z%)p>H3gyig%UZpThfWNlz(fvcRRB*^JwAUUA`n=)$k1K{6c0`!oEE z{x=EyK7qf;IK}%5fqy3OUkW^pH>Q#Ng#sVUILVRx;e!8j!EYA$YJs;3`~iV)5V#z- zJ}>ZJ3H}=be@NheXPnwGd4Jg@__E#DCvaJ>Gbk_|*!Cp!9Pzf{XX4EixJ>VN1^zR^_X+%7fd?2T-G49enSy`0!0Q;N^h$d+x$xTsK2ONG zOW?Bnye4pI|6PnzymU)3cKAZ@rJje<;1iDQHXT31KUUz@%8i+dh}N;Hv~46LKCDc)P$i3;a%jcQQ`;_}UPw=~3_$Ot71V`x_gP%#) zuq<4_+4*=)7NHuK?a7B(3hvRK_oYET9Lc9Vc!b;YlNcxYvOJ$5aM?Z-30$@h^BA|= zhZ_Zc1>!L2dPvBT@or?C^px$x^MWt!Jm5qS;cWd+6S!;#@&zu-RVm|rAWOCbQw3kf zJ74f+eQ$K(FBQ0~?`;B?@*i@+zZAHvr-#vG2OQZ!*3%IJm*u&Z@jl?o@$B~nU+NPP zxGWEM2>g1;GWokp;4 zjFUcR2szsYU+VLb;O7f|w+sJBnlyn+$4}aAxWJ{|$^;%k7-OG0#z{{Z??St1z*Z9 z6}ZgzD+Dg{y++7CQ^*eszLfvC;GZS?8FV zD{yJg3k5FiStH~Z2>A_yFXjJI;IbS(Cgeyx*9*Rs^NPTwp6?4>>UkthTES6zWxvA5 zIN3+`E6!xx?pGAL@TUs-vOLTZeA%y><(FY|Gx;LG%WU*IwyR|;I_<2^$D*+QRR3ci&8yucR= z{yu>}FYsed!v!3b2U)+4W8AjS7{NaWVT^swbm5l>T(&2d3tX0;1|k1kA%CIZ%k(}Z z@cRY-1tG^T@RtQ&%K1R>1A@QTg@5$-K!PK?orj;X!(hg3yGt2CN`#&OZY5%8%e0d-Lz2HmvI|VNFJd_5RaAY5;rN!f_ zQqOThzSJ`)_)^ab!4EGX?)v7yhpWex=|)Bjgkc{11XJ^?XC%(hlzl zT-xDNA%B99uR7njw(We>NPvvX_9t85&%)o>XFTI}K86He>VJvArT&!ym-{7`OB5bit>rHvF+J{Gh-$3x27J$f*%s`?swr2qE0Ft$(QBfWXA3K;uCz?KIFUbgMu&1!v!w<8iCJ(PNqC85x7k6 zN+DmChZ|h@YXvUtzeV8E{%;Cg=Hu6l+ji?uopLzaZih2Y{9^n}y1wngKVI;q-G;gF z&ldPBA^$>wOS?@K@}=F%T=)wF|9l~Tu?znu!I%B9+g$kf3w*VZ|ERzp5ctzV{sjVm zLGWdII|crN;F}juQ+`SO2pTNGQGR_JKa*dB8MpKIG=Xmy{4)eD^$7|2C4zsk3%^AF+kGF^`dT=w6d6Y?hs`L77Rl;0)zrGmf5 zg`Y-~@^EB_AL3{1Q@}Xc?IM8(1YgEGMet?*UgpA|Cva(pR)Nd>yR( zob;FXwGP3T`oAjpGQEFw;qMW+EN@3p=LwGDmHmOE8Mn*ZNWqumalDE}Ih%ih;LGw{ z>cYQW;J<-HlfQ2Xe2c)xkkW7zZv%dYUnuZj34F4^9}@WGjFTN?`&KFV(*9Qq{3Ri0 zg}^2MdKdY(y72E7xGZnK7Wf(w?_&a&{EduLx-J&{KM20m^AmwfIsK_n!jYZjy47(4 zm+iobj8nXm@iX}{Lhxn0V+AhbEfo06Le4~iOa7&d+vzPAd>QYL1^!1N|6w6#iol-| zd@1Ky7yR!+&Qu|%OYmhmJc0&AaAfB{;b-i2zQAQayv7B0T=1U?e43EIM&LC9e@x)7 z2|PrT`*3!7s1*1c@HhH52>h=CzeV6upWQC_R|0=a$QgbnF5ql^u5iKU3tY;1Uf@!n zzY1LP2b`5U-g8{=i2|2$e(HjME^w*OF$IZurJP)WOa26bOa5$uOa7R?3HcQ`HTf74 z_-uiP1zsiae990wI?Th*$Vux*sK&pKqrrc4xPldbxxm*8JR2*$Zs z#c}iAZO+Cxp2vJvKaQLFFw~M?!2B!=_cNYt;X%fE87eM6#5m2}ku&Ks&q?NJIF6Sx zKhMIaFwSO<^QSS+%|;xb!MNX&GmG({g;z38b28+No^u(eF(5gE*D_wJ;W*yFINhVk z8Ge}YX&R2>ix{6_;Y%2wW#KK1S6aAvj&!btuVj9$gbgN3&<9=7ls8DC`Kw=%xO z!tY?b#llxH-fH1LV|=BBoAPj-g+IXjb_-v__>C6+2;;X}_@j*9Vc}0QzRJQo82_1t zZ(@A4g+Igi0~Y=q<7+H@JL8X7_{)qxYT>Uk{-lM!!FY#-?_hkBg}=l2GZwy+@#if3 zea5$2_#Vbzw(w6Ff7QbGG5&^yf64d`3pX!df5*bp`To7r!ZR3u-@*qnzQ@8d8UMt> z2Qj|S!Ur?{rG*b=oL*&2&a?wrjHg?8Hscu;XyGH6pK0MajGOP*n0WITH}6j{ zcs}FiyEXf3vXq7u7$5; zyw<|6W4yt_+ZhjA_>GJ&vhZ6OUt-~RFy3O}s~B&!aKm3|;U>SXvvB7-x?Z(g_~}D6 zexrr|i21i#_%z1vu<$b&UuEHUGX66Qzl-tJ79M5%0So^H<7+JZLB=1k@X4I6M=gBz zi8{ScTKLctG~Qw1S2BN-gVEhdWzn1YG z7VbYmr|Wdz==`x+3Fphp%^!P4zHdxUR@Rs^@T!4Q{*&-Ny+w0!yx^+}xj)u|u-@ByA{y03#z_^eP&73Rl@7HSJ+bRDI? zl^xm8Clpzq5!oLM4;nYFc~4|RTBzd1Sb95ud)(Q#@o|ce!*{){WFPz=#a;f%hhgN@%0I)z6uNOB!~m1!yLPhz3|;hHGM zPR84`X*{K3V8x{iBbM^VoX1Hxc{>%Df_o$|+jb3KT+R@(k92nY(odcf?|;&_T}ijT@zhIA2|pwmz!l}Y`UVO6P(G780YAGA z5`G4LM~YG$FL!vg=SaNwd!&9L9lp#!@A{+{pf}>R#|x@l-nUN#yj-uYo=)h^=#+ot zD8K03%q?9&Ae@a;wCbg%qv}tmJD#~W=8a2zZ#*MsbT09}(Y?_WCdBV2CGb!8#@HdT zV@}vGZoBu!4)5BIjqOt>hn!DC&KIG``x#sMd-fKkWq6~fqSSfU_HFI(uKW@Oc(vaf zeVLA#-YDG*R;PQTt#nNDMrYu-cYGRwtttncc~=DDl0nuDwT&BIzd77YwVHf1>5 zr_bDohso$XLq;t1BOrQeC=!Z_k2bN zX|EQy6=)MhJHmgRu2M?oL_0Cv*Fk5#4jv2qyX6Ni4O|j%{v4PZm{RO~rCZ}`-d~Bd zs4R?jc%z@=qJ-Nmx~8snp?7Vwr=+biduU;FZ@4VbHlbTx`CfN|*#nUd=S>sj@k$l` zpCM-}m!|zC4z6@Vc-D;UfdOZ0(;#lh5(Nn;j20O8X7j`B7j*WUV8v}q)18fwqogaj z&TB$!qFHn{C|?A~=rzDKn^r z&hj+jcQtFxcr7hPuKm%&UkHl{vxs`v+!VsO(ePh&Uj>;6x? z|1XS<^!A4So=dHy=xqc2)!r@Xb*#GRul9&a{JV^YB#3i$J4NXpZ{go#{<#)T^?_=` zSr$%XFT(XP;dwUWqZ5!i)A99J@3@d&#mv|7Cw!H{`-4Qu<*+n=jqzG zZyDpJd>IeAd6Il?mJF=s;Rv_ewL0bxj5GB~6XT{F8}CJoryGEeOBuId&kq=%VR@`% zyxGF9XMCZB-^lp27JeJ!^bQB*-6t4aQV; zpw4M3{8Qj0-+T|LZLQs0yh9s&Fcp z3Z(++Z#Jq(m3N*(^AsUZbCoiA`qPK%8xiUwD)^vR^K3e+uU0cpaUcDuhq9uQN#_Mh z$|g;iFu8C_*_6O}C52^*$RBA;1kxWlP@l_DLg>2~DSgG)5EPLE@}Z_qeHx-i$i$~7 zR3PgE6-t{1{n0Ne)S^i*^`%4?U6db@d#ItmnCcQtc{Y{B1KOYJ5T6mUz2Y&(KbB!L zxZ|#*yONsg@X3&xI{G3JeY?nfc*B-8zns4tq0-mGw;7*yRcT4-EsWU1Jc-XPNuiWD zZ5I7?3h5_o*3(mG`g>fxP<>S&%*<_mA#iHb4BnUPBUNX*CmWpFWpX5k`t$}r&V@f( z@Tm`I_-DEBCksB^dkufO3%^P5sV`;ti(U9X7JS-5YWTOi@E;a@y7w9W6E6Ih1fSYT z!++g{|FPgxm)G#WaN!?KhKHjAjSUR{IL7V#8ZG$Lr!@StT=hxPO7P9T zJ!&(~6u9|5hK(P__kXfaj^LlkxXqs@_%yaQdfqQ^8jBeG34!Mee7C^I3H)n;(^$mF z8ORd>c0LYeobvs6!9T@?pD*|{HZ$_ayYMd&_{oA_A#j;5R|@%Af**F_uMoJDf1|*q z{D+176NLPyT=?4rF75xSkaMDt^LN3Q@qP#nIotmGMLCrGK}2N!={OoY2L(=JT7y&f z5}&_r!k50(s$G1|Ex*)8|oX&>9bvZv+KFz$-yp)$sU4oK`&b;hGuMm5Qf#t9w|cQAyPo_lnYPot@1NBvQn zQ!&ou%W%d`xi>h?*&Z3sy+l41F>ZL~NF&eq%}~v@sHqY?y+L1iCi1jX&zpe?XhmZt|)2U9{U(*EgpLrLe9t7T;z|P zyOYvu_AyMC($mi){+IQqv+b|OQixMfpO1Y86tJNy zwsdI1c0C1nzZ;D2Q%c0|+l%mhb@=9?p|;xWBLa`ooz%DOaX$`bC0}W^+t@#zq(?6S zXJeu~aItZ^W9g65J_+x-qJg3HJJLgaRn3cheeQyxZ5MXvebXxwesn?O)_8xVOvj(j6J@c#u}(q8(Y|NZOfGfm^D ztkH8W-L0>g!Hs=Bw@cKnQoESJa!g;vt*?2f6)y)9cNdMg^)(MRyyVo+Rv@8X2Q>vLQ}*=>9EsCL9+M; zXrAMv`zMtFJOADKYJ+Jq6>gW64r4d%>;6x?|9O2illp|-I+=Fq)BXpu2iZuZdSv=n z3F#hBfeU^CaO$g>Fh&lo?;1?X2{S*7LBszcu2b>vV}6dsf5L_TC+7Pt{s%66FEW_) zFSYn1fTz-@l=-tP{(KkykC@+J@##60RPxRGX$$ks`eT<1e?QA##eCC!8;r_C=~}}$ z&DoMWh4JnBGT!eT&G-%rFJXKS;~j{P+!er6>EG;v(|4d#@#z_(R5(4mlL~*v1%J;4 z?~i()O3n!`c%BPh1YFq@@sKk$?J~wY7^iV0xj8O!mN0)i^U?KD?#C|tyP2PbBRN_N zAon=qe#U7|o7}UwPL=8L4;D!kWtP+_KpMr*K7&_;U z70USPbhvmfsA;O1T~k{VzDlK~ES!r7lC%q7)lg;o)zxEGxp96C<(4J5v1*PD)r9NI z%jQ-sD!aO>v0mG@JREMUncW<&!b3IM7;!{J9=~eRRV!ggnq!FjT3i>Fj#A|i+e8tK zeVVGi-&|E!QKe~yf%bu$3-wG7^%>0iz;)Dkz)?R+uD_*odr$Y36Y(?rqXd4Ez>j5| znm4+)8~#axpDl3O*F=uwpNya37YJPP$Gga_9|-(Z_#64{0+;e{agl$Q3*S7~P4NyB^3`ZGg+70Gk-y7D{yu@rb>T0--S=l9+M+IzlWcZPtOjMv-RJ| zIF*07-fPy+3D3dL$oU>uBpWXl_-Mg5`+13EIGny zOlR;QfpCPAOoLA$5RUL;@H2QNfpCP=7~0@r0^tak>-?wt@^W}GQB5hD^+UJ0M?4Sz zjn@y?aG9g{{q%?b!;stbY~N10q=)11%n+V9nOf}Z#S|SLIhpLdqWnsn&oEikHguS} z3bX~&)5dLFG9tQb*|1Q>D<#fe^E`<;4&Ug!Y980Xj8G5{Z>VQy=DK5NAu;%A#)X+WxH_&ATzb2z{b2PIg{ecA0nW5yj5F)@|W)3w_(Vj!1+DG&m4h zpH>{{P~n5)o(-%FLB8)MHaG( zveNXCajKl3kLI4jmp%HcZgW9?7Py)NQeC2WGWhyHb3s8-zBq_F*zgFJY3`MVd$8f% z=7J73ydM#gPSoB=XTl$7E~glQ>@<;_OHzR;xNdVfCj4b2OgLLCU2}6PSa@G8H7am( zIe?kRvGb4e)wVr_dzBYSs_8;FJAUDnbV|JczPTK^l9N!YZ;x7{-@{L1P2=dkK#ta{ zQ;qHDo{$Qsbup4-{3>uwt_VMaDS-cI4w3jRd~MdpFK2ue#{7MhK$L8@>xbW@mBuL#u z@IWR#jj0}t4|>=B>WA>avAV*$wyt_7(Sj@QSK!Ku3jfM^)pT>!_d{AA;h>pYRuIP% zIj8@^C9z|8=T4|%PV@9nsLTBQ_gJ8FGs?WNUtka&Neg@OjqROQ8OI-Jr>!Y|vS0y?9Q#_PdEf49L!s+SPLuI6g;=fw( ztFKvp)Yg7svk2^IS-#j4{^(I^v{WBv@>A4{HtCCYG#^oY&0-31%yi|in91o|yx22c zTOaY^so2T>n^JQ~L5n`bdt_v3US_<&hV%KmHuJ2DRrH_O#2F3dHtR6;s$B>(6-|JNwc* zEI2(yc`|>J`n>CRQeKivihrKamr@)>f)s@MOV=x{>vnNX`6be~#7-Z|!xHGYIBmPu z5BV_&<>TwLa6d9At!Ey?$3b*V;h)R?IdsH(0`@kiBh(O`9~6Ic23fJj6FvelO;jUV zys{&>0d_{8w`KVxtGrK2Pn3VMUt4G&XrB*Wm}%B#KiiO&=1FVr^YKRey#+{5ekfLy z(Xu}?eAa^DE&H>=16%g{o4-x!pgiGuYqCzfew%XEvOlBwWA9V@xMB5ppVp@&OXe5! zStPH~9%0ndvV0+0iu(NKOlpqMkEeHhv`|FO$MIIm?_K+f^XBxKc)*=wfj*S}t32U! z$Sov$Or5N@A!I<>n0QF%O@x{5yr@GW1*HT$=sD;7SE5~Y&lS3@&hrzwekl#hAGd)H0Q8uv=`U(Dh>+PGKwvHi%t z0jN+Y{asJ!_Ge2`z9+P`D1&T6h*J`+IMG3~hlYi8EnM2&b6dwc%{9vy}p*X`vINyWrV;1*% zM4ZiC7jnG|I^8MMfQBUaN(yzi355%1Goo2kYo!fTMzj)2pitb|TIlTXZG+a%dnL|p z<&7|%g?KZLDQ_$wVR<6Z8y^yJ6@T_u6SV7w=!=iSlAe{9jzNa)2{~uz0v^8~tbe;N zCta84P{m#jLj0AN=IJ1={J8vl;%_NhgnRcwv~Wh>$q;Dn=3B-uO2e%?slBn|x3B5` zKzENrxV=RkRre1ZEejP9$k9WSGeA^vKt<7hs@7qSNNeTRp+L@`73)_};;@H>i!vsY)+#TQ3|}*UV)O1nnsNpN8fGQwIIpDJ6^URiJlk;fyn+ty({Sb*6~WU z9Z9=3l(q*043mE?OVLlbExOGc-4ABa(c7`~8(S#uowx7r?lu~AHpbsi)$%)P=RMxm z>41EE0dh`hVQ zSP;}eWUF6W0ZnPbjCdPOk{LUHhuWV=@9!L~_dV1mAWCCO89gvWtYUq42Sr2aAxl18 zg22iwBqZph$b6M1qa|`torWs%pkbl22YH?LZVwHQgDza(T9%^A*xH|fb%n=7x8dHk zG*=ZoTCskbhTuBQy~mB)1YTtpoq#ZGNtjUu#&6wZv9!i5OWznE~bf@eGrmc(h*ijxE%?#jwNIn0g@F??xS_vPol~ z&N5QWl;03;*SKeWEsCIbEh=?vV0LRqc&T^oo=|K_b|$h)MGqKxLL$G1T9&wJ$&8FF z$sU*nmQrcKnQT9mucnljkW5fY_^wBH(~nA=uaUVTnn2{MrQYb7NJHqFP1Fn}?y6|Y zT9Fo1ptVbjqut?`jpWXc2*fyG?a~RrpN!+LX*@-GV>-Ff4m26jBTyZ6yc@pg?(V|2 z-k$bZrvp^eYm%l>^<@ir*X#7rsmm-x+okk?T^NF}Wis?~!V_9nkP4?b*0RQR(_>cb_xvg7PD<@AxX-VyqPd146Z&YUpMe)4y z%B=b26?5@id)EB=%BrlIx-7Yw1TPF|uEL89umVrs!-i+!$*fug{9pIK7WiKa{ExN3 zPoUXt_}z}*o%sC}zdP_VE(0gD#*u}eA3wKqJjC4)Zp`vb$1Z`>@JhU#MV^_S5m}xy zadP3LDOsVwg~5{I3yZSGPr0nL5Yqm=8}-e@qWbYtJUN>DnCZW5$yV8k`txpUw%;-j zF@ZzQUOzexSi15_{#!&3tHW*QMXYc7tmsrLUM;QX`sN6DP@bd9m*fsMyxW@X!G`xE zRw(V6A+6)KRF;E|=7}L1iw%-6?cG;s49mD9~u!+IvO#b_*ZN{0_!Vc@8kXig8mu0mHszkDjtC)G{K1sVer5y?RPx=GS&4Rk3zkAi$0JR4+4)RG~wfdfn z-j7SUSHYxjBXCpK+6} zBF0M@r@fKn<}u#DxT%*nGv02=SG6nH9q{)743S&nJ% zX@-*G-NCp??|UwCj>D~#_?gHDa)y5a<9^1C{xyu3GJd5F=7|7LrRPn|?_jDg}KMZiw3x2%|{u3AcZWsKwz*YG{K9Dp0^?xvK zZkWbynaChjeqaxBrXS&FJcn_^pU1eLadSVtjqzEGn|QY}-eSr5fbn(7~jD-A3RqvzJ~!ehv#O-O_%Z}oovrzjIV;7$W?Rx{}Fhqe1F#k?}v(< zihsNdKH3E@a=|Zk!RNc+SGnLf16TRZH%3#x)Lu}2&S<2bRK>eW@IX~{c|{dAhK`?n z>6G!IQMoze;-@}e;&gQUG&k2%HNOVWL(QqGE2F3H=2y*E@1~`{vHB&p>NT}v)mv@H zsu$dzpd=HV(4 zsBB&peMAW}$En1cS!Lx{S=HEBpZpk_6qLlZVxs56YU}IfxJE<-JYiVdE1@Y|UNNt% zys{E6NNXxnPtc`Onq*Z~S65YpYZg>}Q@T;yRr=iWCaozxKE-CKfc5x6Qi?nIK{z9j zO{If3l<6;CrBa_6bydA^$kvFz&Nb7Fa#rjWwN>Sf6w)o?rm8vftMD+TyLty^Py+CN zxOu$@(PpZjU!%YHWob!)%V*c7Ok8tQ4T=%o^IP6r8^)@KQa4pzmcm zNTYrx)QXFgMd@#xUpD(H>+w{PV|X01SO1#%^Q$Ur%H0K2)-*NLq9GyUrqWia0gW54 zDmxhJ?8frCin#}*l9{Ervg-OqYL4nt=0CAh2rk23_&MRZskH7rMB<@c%jOh}w6GF; zfQZ~fxJE=)HO)m+&DFitD54rQ4}v;&Y%isoWHnYTTG$JvyaJE5HeuaPrz(|k@euRu zsz$t;+}MiMOL`)sC2|VbIc=c<$OJjMP2u)a6Oj#$n(A3q_Blq)g z*TZ6E%2Lk6-brqS3NlCQH=LzNTf73|N$&92JY~MyN2TATEh4|BDtchPEFLmd*&$x4`Vx;Mh1RL~ zy(TkNThUttH5IkxO({z+%v8s1(wqjmKg}s~<P!(<*B%I)1_Ne zDnBL1+#2!a%ErbT_a2qIA@qH{c6Q2M7I`N6H6{mLJ1WU^(+u`XXG0j#y*K;^CR;Bd zkdH|<)T3yjb&G!|A;lXCz^BKsXtM*otRQ}3y|ut-%e9JT{ z(JAh-F{i=C)T=c_ zyRYlJ%`%S%%FR4VN1JF8%LQD$n53*}E*@K?@w$9gkmd}qF-f@^@`R&lX&TZS{O<(9 z5$?s$;JXNfqv^&I@iX}0JYP?^lz#=|M*gdPL4do)!k=TDzQaS#@SkK{z6ato_?vhy zA|jmO-@$xZFCa(yNd7DAPj~=7Bj;fr;1fPs;JXBVnZUop^K`_&P~evfe7e9_2|Qci zG@ne4b(a~5*Ro`Zz^O)mTw1U_Hz|0eJ{fv58X9m%ITNTdI;j8lHe@;pM|QvWjrF7=-z za4BaN;}kEgjhJ}n3ci%nDEKt@Y4}TB_$vi2?Qn;{X${)Qd05Do`utAtr9RIIKCKNK zIe&KH&pi|*II<@-oQ8iG&wG*`s7jf2=2tBIXWV`rhxuD_B&P;HBWJk4rJgyAll)@^ z|4bMDB!N#7{L2L{?O88yX-}G$CP#WM!_Vk>ufXa3<_4$vYI4R74cwlNI9%f-N4AGS zflE7FEO2Ru%NQs5vR$fn;eTJ?*$89wTrA|sa`+>`m+`I=_T7h3IaC(599L0MHenx(`3x2v7k4XN20VGAsk@=o} zXaaA*sga*2@J4~R3cOk1Hws+#yN;xr2OR0Y6h9-MFmhy8`t87v9P!8*{AGO^-#=yW zXBg-1Oq~A+`l>;4aWR|98NRqbbBltImlMnX2>sHEg4AP6dBa~yC6r2x@Dkw8(vwA5k7 z(KMNuL7>FO^o5oAtSrrZrDb^U9UVY)#PlhdAEajB=N!jU(}dLG{r_vPea=4n-a9jx zUp<-MZ_eF&?XR`hUVH7e*Is8Ig)i~oEegNXgI}re77u=v!msq;S1a7|yQRam3cuRR zf1Sdw_24%s{5lW5R^c~z@S7EWlLx<5;WvBmw8C%o;I}J0?ZH+haEs?% z9{hgIzt)4VQ~3QJ{9%Q!^Wf_h{;&ssQsL`8_y&bP>A{~>_y!N&q3~xt_)7}!@Zhf~ z{3Q?my24-a;F}fxx(9z-;hQ};KE@+|Z+q|(g~J6({w%+hD!jyl@1*cj4^F=>{_W(! z`zySk2e;o>=^+pmWeewLTt_UjxEe!k|f^WYaL{Cp2?>2Q$; zZ`S;c9(;+yn?1Ot+Y%4nqWLfN;8!ZV#e-WqU+KZG*8Ep_@M{%*wFkH3a;*pNuXdB` zJopV-&kY{@I|{$agFmbAn?1O-bKUB}uhINz4{qsmy9c-QS>?fR)Ozmn;J;M(S`Yqf zh2QVNS15d)2hS?}VGrJ>@bw=2PK7_|!P^zS!Got2{;UUoK;a!8{2_(E2>}lLuL>{q;D1y2P9FRXh4=H|Zz{aM z2mhDC`5h9s-CoMiWgh%>&0p@pchLNUJ^0QFAL7AxRrmoOd^d#;_29cJe1r$L@`2Z3 zxcKj-`Nw$hE7d+#>A?qT{;?kXAcfa>@Zk#QcURnY4^{Xi4}Q49`QDJ5|44;T^WaA* z{A3S)w8Ce3@S*)oy{CEb1GK;MJh-)ApXI^7sP&)Y!B0|nod^Gt!q4~Mrz-p+4{q(? zjUN2Vn!nkDe^ud2Jb10bFZJN(DZIsle@)?6dhm-Cew7DbsPL;j_$3Oz)`Ndj;n#Wa z%M^Zt2mg-3Z}Q;ZRrt*w{QC;O)q`K7@U#d2vBGcn;6GFNDi406!te6nzf|~I5B_U~ z-|xX!D14m<&no<358kHm^&VUf?ZMJddhmA5zrln5PT|jb@COv$;lUqL_)8xAQH8(a z!5>%n>mK|mg>UxYPb>Uw5B|Kui_~t$Wd6UX@DdOHSA~~)@bmRtVJ8p%hUV|*!QWJP ze-HjIg%9-Ly|n%^55B#^%RTrG3LosjcUJfi55B9y5Afi-DSW60-(BJS?i2qk-F8y= zXb--Z!pC^<{tB=3;P!lLtOq|x^VfLr;R>JN!4FmVBoBVL!jJdhM=E@p2e;>8CwuUt zHUBIRevHCT^Wa}l_&g7OoWjrY;A0hT&qXbrYZPARH2+l|{3gwRwFh6T>nYrs4uoqO+|JEc ze(iTQMvN*iA318oAtTEVIpmO$!^(#Z9eU`9q2=X=9y%IN{%yq_;%ZwUzgO~sC%^HF zyJkz9o=-JS>|5Nl;g!Dal}mU7WPGR6>gP)u=k|SDuVvL#Ctb>KNI7?gp}q~Nx~Ywy zE2=*gH`Uc0*SMg#sD3K12S2KDL9e3v2~C@O*Ntji(7UJ}ca)aY9niR-q^SPTrp?>c z?b*0syQ2F2n>KG>w_D?a?ThNmn>P2U+mRRJ_TjzGYg%M)A{Rm$>mKgxP25R|te-2c z>l@t>i93Kxo1RWJy;*$T@q);6xV*b=ydd&8uIjEkQV@Bt>CKY5Lj;k#n%>;5ZipZ< zyy?yD>pm@r?A!EapSoRRMC=`Df=}X(=p;T%-$<<}!Nr|6KMC#97xe4fv?0Eemh=S8 zLBeP(68+;~G|nx31q5&8C^G-54qO==-znX9T?cD4cYd*c#9zVavXLT`|EJqN@JZYu zjyr_^jypfwxYda6qpn=Czh3)`JBe|B<$qZim&f9@w{^6a( zZ6(Z%`)}@6zu$qj#sk&RP%MFXUJk28TN!3x3No~M?*o=T~SN6m73x|q*k0jrXG9P(+!U; zdZ;e7td`eB3QEnZ&hO9G(OGTX@W2}@t(7iv~N zjS|0~@Y!(u(no5F?>p?3`sb6i411#U2KmMS?lc|0bc=Qaykf5aei@^CzMv40a>3HO z>*h~bcG}>b#tp+~c%HHRUzJ+1)2N!JHN94aVA_930l>zLT2l2di7ctw5|F8bWnaX{ zbK1eTsl(PatZna&8xe7{E~z5uzTLFpt-2urZimIy+{Nb&0$I#A4-8qpaTl{&%B+d5ie9t|7rUmG zi~%RNkK=SSWL&x?x>@hVn&M7=bNeh?=BQ=;pF>?mLHaa2<;qFi21~YFdbepzE5X&r z!Dm;E!<~(n{e=0KRc;QJP1=Gh?7>@*q04r4;5@uuLgwROiX3yRzO3=Ixjb#djg0H1{@mhgyWLGSkJUJ@R%EGTKO z?k(Z6Wx;ms)g=<{*R*>3_Ui2rUVAYzY(KPpY=3;re(9e?PZF;M; zZb;3dztlgo=!uK}ysS#5>2^(TmDE49bp6;pI}Te@*LT=oI`1~)DJx!Za=)dy-p-8kTe%iP;} z6Ms$9KeyCBwCIWY)p<)Gd*|;>I|kGB^*_~hi>rZMP@s@RcWy3v45>dQff zv3q?ADX4KzPR`{0*w-C8IVcc^*o+63lx{|-Qe zb-vT`!%&uWs;dk_=C7yiS0X#h(+|k~v*rD6Sp4npL=<9ps9PA}yR_i09^96*ztfOz z!*13`{f0Hs&&#cyPdjF{<>zTR`{S2qoVv9CSE+mCMjd}{-)JuP$Dgi9`PyHl9k(_P zTfg7Fh5NtE_u;#P&h|dW){x2PKJ(rIxzeYNxyx$%h>mehq@%td;sDDL=G_bh2Ry}}z6Zri;>;VlYRQ$!JcCs_Z@3Rjo5qGuJpO5xUQ@Gph0Q@EWTpFo`TY*4tG z0E_lh_$vyxcvdRhGQEXQQ+Pj}4D=)9-#ozknPB31vF0DD`6&na_icsGQus&%F1l9X z*D8Fr!f#P{KV=lYU&O!r6mD%-*7t?q+GT%->b$(sWG~`bUOqh8&wTKK1>l1L7kYa2 zAFgnFXO!$n(e|_g_3+!d`P#L2%1u&+f^A0rzN_`GQ^v7;o>llO3g27%`+&mBm2u8g z_}>-YqVS(6e0R{7{i;;PIb7ji{F4i-74Uw-?>xZ%p5N}HJRb#g%fX>#7K(waB8{`V(Ta&odW4^tA!ZtcTAC#H# z32;I`zqEN_{cZ1#ePxLW%Tt6M?xb$ACe_hm`bQKFEq3cSZWy1b4AkULK&W0-!enD1e=@4d$j81e5Ui3-Ru&oONf{B#HIw)=AjPTj<|d%pwcT4mwSI`BOm_}dPAhy&kFRUMz60~JpE z-F_YBz(4EM6F6|UetYL0>-mh6zgX7`AAX3!i4R4)?N{LBckwyHftNe^>m0aCx8)9e zA1D8B6z>-9CKiA;aZJX)Df@sGHfpN(q>6 zx8q}hTLvJlVW*mJ2^%ln@~x6Ik7Sx9*9VfmIZyi^i}4$~x#YF~s1L4#lI8g45a?7! z$oy66Z$^LZkFO6FvOUbwInkm8$--<$S+HB%!#`|;-Y@HL|H${Ov$qRGxToa{*&cdY zz7lN_r=j?F|7`j0YzN~}$nO*D*)bn5Pu@bd16%$?R_6Tq)iO@`=l>0%@W9^&EkKb% zI{V|tarJ2rP*JHe)CpdLUX)q${xRPNXFE{l^)So#&2`eBdlLI+ZED*F2ecpw*t=mv+&D5n|}ks`SO>dOU&PhbpF}= zg8|Q%f0X9GR&twn?j@L9M9js5@l8|t@6P0wBFdu*D`B~}R3#v8PHZdAI;D0lHR991 zI{U1%<^Dp{dB%L)e=9+hy*+o=fWG4oQlO&z#;!w$>(PeSah;&l}P@}`<^ zLALV_uBe3As+)D*oQg&U4zKtIe$2UfML@{c+pEX-igb&LMwF^M<-7qE-#{SMd?}t4 zm8h?NeS7tU(lz)fZru@0n}hm$5yhwLYj!Z_E{OF*sHmb5dFwt|@eLOFspk1u?7sm> z3G?BXjq;bZ(6@pu+jws;zMU7}(Z=yj^2<;xwPHCjUA>`XS%3HxR8KBm*R*+$)MAQY z``zBzB@1hc@7(gVoD*f|Av-=?TBd#;nYj|5Xya{jB;H`-LHcw8#xAWcL(`Q-LFP0Q zM+u2%XPY=`lz8i@CO*@|)2A@X(&l_9Jbu*eam)HFXpYcvD`V#KBLSE+^zZL!1%gGhx{CT#blwDdh%493YH?D1e zDk_0p-SUb?{_I{+PP7-LOuiBaU(N?G5a)r+C;T=t4p)U#b2;+U59}x5BXU{}e34${ z`Xhn&kHci32wT0OmxzSLoEhED2g9EjZNr}#!*4PFnEB%H&n(pH@{cg2!#^^i#&U+4 z`5+8FcB!2YhF>FoN}Kr>$9?`c{2ZstbadvE;qNFtdm7Pm=C`mrx!d%wO{S|mAC&)5 zgPGr_n*MF|e3<%0$fV0rcv;D$rp>9;;!lFXeHjEKnvn(Pj4SbQ@J!z$@u(k}w8SI4 zv#Y%PnPmR-YA>Gk;&*!SRxiFL84p@%xyLx`xCPm}Ox%uZh9@MB+(_ST;!4N1Hb!GQ zXWAtm^+)E1a~=-fHS)ZA^0E@h@NVfhTI!4VHhq}HWBTovY%jaNm;Zod{`7%f{2(uW zuooZd#fK&1LF;e=9Qqw%;t~C*(zx`amW;Ti-=T~;^cyAdcaMJ4q`sJb+%!4sOy-zm zd)Z^X{1cM-)1UX^U-05QaCYiXPx9iElkuSSI078{O)>F^e#e`*ou}y&Ox)6s7f-nK z<3Zw_SPta!-&DxY#gv~to4*F%p3_gd6U(Kvp=ZReY3ZIL*L?a)cb#;f-qQUzJ!q8y zaOfuliRE%e1|*i-X(3R|e`b6dtlZ2Pe(8e$wvv8kzQpwFZvM)2a_DE~b4)*(UUC1^ z{`{8d=A`@cU8Y~09<+)8aOfu!(xIOS1c!byL1X$E`4H33$g3{sxBM#b9+vSFdnW(< z`Do^AM30P_&ry3>f4-af5amys`4Y!HeoFiN=ku%K@2GsxDig$^pD>g|KcD}UUr__s z;WoqHG5ySZi29Q|e;0pG=r{F?vKhdZNETz&fB0!Je=RoqftN)tM0}WeL*h|8ZGV+` zgh!D6I|0!+2bsT^I7*2AkbT|6QKQj+UNUj3|GdU%%xCFNFa9?#{-PIu)r*J8c=i>E z$NlM$c-)^CB<}R*&jdLAdEUgM{yb&kQGcE@aoe9iG3xZ^Sug&i7k|c!KjFonPR6s` zR5*H4W~0R8{`^tmPJcEK;Phv`iEDq-nEH6OZP*DC)7CZWTp7 zlH=(|q`hdI(*NtlWgFng1KB1x@rS+q_b20Kn-Q<`8QF%!dRyBcB)`+2`v`FQBO94` zUCzoz$LY^QCcl+mze~2C_V-EtKI->g{(HT+w-3u^Bt0IVbrO%qXRXAY{;VRv=}+3k zt^9gS@<;TK<<~o0|9t)t_HgJe>=Exn0>c0fe!>6_y=8zMddmRE{A0#1!aps;=kSLN zj}!ODryKfb4Si#J8~VodHuJ-ww@eVHKg$2nd{F*Jjb=U9eXivnpTA|B?BH+sH}0>u z&rbXMaF748hX3OJ82*a;WBAMI&pYFv#s!o5q!xb{%!QS3Qq8jM5Gtyf-M^)#c-@u_ zb6T?JBkruj=?f$t^($ztB_JB-AUog0E!{G8CT{7Pt~YViAo|{UjK+MHX^?o-&s=@4 zdiI#&x}jrw)ena4;40*fb?1g%d|fZH$2BfEu}{O_(8m*V`e^jQBc$D!-eZz@v{gvl zq4$vlIQ;WD6Sw`$R+_k_Lu+8-mVXXs)Zv$-y!g>xe4G~_>&2^*@obI6qyD6;lj)i9 z5+|J#?@K~`{vJ|5sIAneQ^o90)Lv#ciAUquwzI??`q2~Cr60cnfOtf|{w5yLZzmJC z^!qrY4*hrt?8bNX;yZZpUA%bTWIWqX;&Fd?Na)xR+WJV`>CYAt)ZvHinZfDLzf5}6 zpY2S#?ax1DJfeA(E|L1<_}gB3Z!i5VFP$HScIc6PQ_|!96ia$MKL3z(r$0RCb^EiK z8KVBA>9FF|AFoGSsZR$nwlt1mwgS45)ak@Wm%)E}% zy?GY2>O9wR3bHaW<8?0M&3iM^B0gxVOwu)D=4I5MT=}+@_T)c%^fUXss6UzYk{-2} z-QeZ_qr{{9>5X3eaWDR~7k|QwKa-3Htxpo*tPiqLbm;ddlMW1JolQSy;=oAOho_{z zh%YnGOFZgNF8#K0KjO>D?)cAJCvy19=Ox zpD=VZFN3r&aLj*Z9f|2@)`2eQ_YU_XzCFe8Vbo5W;nN6@ApHhA9^n~e#NZP5BP#

qpHBMa2HE}#EZ0f9M!p4q%Z0tEsf5f2U^hYLw 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⁢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

_x{|6VMV-GB`uO5I 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

KUUmfT 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 !X=;rl`S-SA8C55X_+Z9dn*OW|+AYvJSm5!M|D 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

Rd$cMrc;UnrVqCfk6?wuv!4dGqkv2bt2eQrT` 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

X~f$c+iLbK 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 NK-2%xl;5ZR{{w;S +static void* XXH_malloc(size_t s) { return malloc(s); } +static void XXH_free (void* p) { free(p); } +// for memcpy() +#include +static void* XXH_memcpy(void* dest, const void* src, size_t size) +{ + return memcpy(dest,src,size); +} + + +//************************************** +// Basic Types +//************************************** +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L // C99 +# include +typedef uint8_t BYTE; +typedef uint16_t U16; +typedef uint32_t U32; +typedef int32_t S32; +typedef uint64_t U64; +#else +typedef unsigned char BYTE; +typedef unsigned short U16; +typedef unsigned int U32; +typedef signed int S32; +typedef unsigned long long U64; +#endif + +#if defined(__GNUC__) && !defined(XXH_USE_UNALIGNED_ACCESS) +# define _PACKED __attribute__ ((packed)) +#else +# define _PACKED +#endif + +#if !defined(XXH_USE_UNALIGNED_ACCESS) && !defined(__GNUC__) +# ifdef __IBMC__ +# pragma pack(1) +# else +# pragma pack(push, 1) +# endif +#endif + +typedef struct _U32_S +{ + U32 v; +} _PACKED U32_S; +typedef struct _U64_S +{ + U64 v; +} _PACKED U64_S; + +#if !defined(XXH_USE_UNALIGNED_ACCESS) && !defined(__GNUC__) +# pragma pack(pop) +#endif + +#define A32(x) (((U32_S *)(x))->v) +#define A64(x) (((U64_S *)(x))->v) + + +//*************************************** +// Compiler-specific Functions and Macros +//*************************************** +#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) + +// Note : although _rotl exists for minGW (GCC under windows), performance seems poor +#if defined(_MSC_VER) +# define XXH_rotl32(x,r) _rotl(x,r) +# define XXH_rotl64(x,r) _rotl64(x,r) +#else +# define XXH_rotl32(x,r) ((x << r) | (x >> (32 - r))) +# define XXH_rotl64(x,r) ((x << r) | (x >> (64 - r))) +#endif + +#if defined(_MSC_VER) // Visual Studio +# define XXH_swap32 _byteswap_ulong +# define XXH_swap64 _byteswap_uint64 +#elif GCC_VERSION >= 403 +# define XXH_swap32 __builtin_bswap32 +# define XXH_swap64 __builtin_bswap64 +#else +static inline U32 XXH_swap32 (U32 x) +{ + return ((x << 24) & 0xff000000 ) | + ((x << 8) & 0x00ff0000 ) | + ((x >> 8) & 0x0000ff00 ) | + ((x >> 24) & 0x000000ff ); +} +static inline U64 XXH_swap64 (U64 x) +{ + return ((x << 56) & 0xff00000000000000ULL) | + ((x << 40) & 0x00ff000000000000ULL) | + ((x << 24) & 0x0000ff0000000000ULL) | + ((x << 8) & 0x000000ff00000000ULL) | + ((x >> 8) & 0x00000000ff000000ULL) | + ((x >> 24) & 0x0000000000ff0000ULL) | + ((x >> 40) & 0x000000000000ff00ULL) | + ((x >> 56) & 0x00000000000000ffULL); +} +#endif + + +//************************************** +// Constants +//************************************** +#define PRIME32_1 2654435761U +#define PRIME32_2 2246822519U +#define PRIME32_3 3266489917U +#define PRIME32_4 668265263U +#define PRIME32_5 374761393U + +#define PRIME64_1 11400714785074694791ULL +#define PRIME64_2 14029467366897019727ULL +#define PRIME64_3 1609587929392839161ULL +#define PRIME64_4 9650029242287828579ULL +#define PRIME64_5 2870177450012600261ULL + +//************************************** +// Architecture Macros +//************************************** +typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess; +#ifndef XXH_CPU_LITTLE_ENDIAN // It is possible to define XXH_CPU_LITTLE_ENDIAN externally, for example using a compiler switch +static const int one = 1; +# define XXH_CPU_LITTLE_ENDIAN (*(char*)(&one)) +#endif + + +//************************************** +// Macros +//************************************** +#define XXH_STATIC_ASSERT(c) { enum { XXH_static_assert = 1/(!!(c)) }; } // use only *after* variable declarations + + +//**************************** +// Memory reads +//**************************** +typedef enum { XXH_aligned, XXH_unaligned } XXH_alignment; + +FORCE_INLINE U32 XXH_readLE32_align(const void* ptr, XXH_endianess endian, XXH_alignment align) +{ + if (align==XXH_unaligned) + return endian==XXH_littleEndian ? A32(ptr) : XXH_swap32(A32(ptr)); + else + return endian==XXH_littleEndian ? *(U32*)ptr : XXH_swap32(*(U32*)ptr); +} + +FORCE_INLINE U32 XXH_readLE32(const void* ptr, XXH_endianess endian) +{ + return XXH_readLE32_align(ptr, endian, XXH_unaligned); +} + +FORCE_INLINE U64 XXH_readLE64_align(const void* ptr, XXH_endianess endian, XXH_alignment align) +{ + if (align==XXH_unaligned) + return endian==XXH_littleEndian ? A64(ptr) : XXH_swap64(A64(ptr)); + else + return endian==XXH_littleEndian ? *(U64*)ptr : XXH_swap64(*(U64*)ptr); +} + +FORCE_INLINE U64 XXH_readLE64(const void* ptr, XXH_endianess endian) +{ + return XXH_readLE64_align(ptr, endian, XXH_unaligned); +} + + +//**************************** +// Simple Hash Functions +//**************************** +FORCE_INLINE U32 XXH32_endian_align(const void* input, size_t len, U32 seed, XXH_endianess endian, XXH_alignment align) +{ + const BYTE* p = (const BYTE*)input; + const BYTE* bEnd = p + len; + U32 h32; +#define XXH_get32bits(p) XXH_readLE32_align(p, endian, align) + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (p==NULL) + { + len=0; + bEnd=p=(const BYTE*)(size_t)16; + } +#endif + + if (len>=16) + { + const BYTE* const limit = bEnd - 16; + U32 v1 = seed + PRIME32_1 + PRIME32_2; + U32 v2 = seed + PRIME32_2; + U32 v3 = seed + 0; + U32 v4 = seed - PRIME32_1; + + do + { + v1 += XXH_get32bits(p) * PRIME32_2; + v1 = XXH_rotl32(v1, 13); + v1 *= PRIME32_1; + p+=4; + v2 += XXH_get32bits(p) * PRIME32_2; + v2 = XXH_rotl32(v2, 13); + v2 *= PRIME32_1; + p+=4; + v3 += XXH_get32bits(p) * PRIME32_2; + v3 = XXH_rotl32(v3, 13); + v3 *= PRIME32_1; + p+=4; + v4 += XXH_get32bits(p) * PRIME32_2; + v4 = XXH_rotl32(v4, 13); + v4 *= PRIME32_1; + p+=4; + } + while (p<=limit); + + h32 = XXH_rotl32(v1, 1) + XXH_rotl32(v2, 7) + XXH_rotl32(v3, 12) + XXH_rotl32(v4, 18); + } + else + { + h32 = seed + PRIME32_5; + } + + h32 += (U32) len; + + while (p+4<=bEnd) + { + h32 += XXH_get32bits(p) * PRIME32_3; + h32 = XXH_rotl32(h32, 17) * PRIME32_4 ; + p+=4; + } + + while (p> 15; + h32 *= PRIME32_2; + h32 ^= h32 >> 13; + h32 *= PRIME32_3; + h32 ^= h32 >> 16; + + return h32; +} + + +unsigned int XXH32 (const void* input, size_t len, unsigned seed) +{ +#if 0 + // Simple version, good for code maintenance, but unfortunately slow for small inputs + XXH32_state_t state; + XXH32_reset(&state, seed); + XXH32_update(&state, input, len); + return XXH32_digest(&state); +#else + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + +# if !defined(XXH_USE_UNALIGNED_ACCESS) + if ((((size_t)input) & 3) == 0) // Input is aligned, let's leverage the speed advantage + { + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_aligned); + else + return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_aligned); + } +# endif + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned); + else + return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_unaligned); +#endif +} + +FORCE_INLINE U64 XXH64_endian_align(const void* input, size_t len, U64 seed, XXH_endianess endian, XXH_alignment align) +{ + const BYTE* p = (const BYTE*)input; + const BYTE* bEnd = p + len; + U64 h64; +#define XXH_get64bits(p) XXH_readLE64_align(p, endian, align) + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (p==NULL) + { + len=0; + bEnd=p=(const BYTE*)(size_t)32; + } +#endif + + if (len>=32) + { + const BYTE* const limit = bEnd - 32; + U64 v1 = seed + PRIME64_1 + PRIME64_2; + U64 v2 = seed + PRIME64_2; + U64 v3 = seed + 0; + U64 v4 = seed - PRIME64_1; + + do + { + v1 += XXH_get64bits(p) * PRIME64_2; + p+=8; + v1 = XXH_rotl64(v1, 31); + v1 *= PRIME64_1; + v2 += XXH_get64bits(p) * PRIME64_2; + p+=8; + v2 = XXH_rotl64(v2, 31); + v2 *= PRIME64_1; + v3 += XXH_get64bits(p) * PRIME64_2; + p+=8; + v3 = XXH_rotl64(v3, 31); + v3 *= PRIME64_1; + v4 += XXH_get64bits(p) * PRIME64_2; + p+=8; + v4 = XXH_rotl64(v4, 31); + v4 *= PRIME64_1; + } + while (p<=limit); + + h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18); + + v1 *= PRIME64_2; + v1 = XXH_rotl64(v1, 31); + v1 *= PRIME64_1; + h64 ^= v1; + h64 = h64 * PRIME64_1 + PRIME64_4; + + v2 *= PRIME64_2; + v2 = XXH_rotl64(v2, 31); + v2 *= PRIME64_1; + h64 ^= v2; + h64 = h64 * PRIME64_1 + PRIME64_4; + + v3 *= PRIME64_2; + v3 = XXH_rotl64(v3, 31); + v3 *= PRIME64_1; + h64 ^= v3; + h64 = h64 * PRIME64_1 + PRIME64_4; + + v4 *= PRIME64_2; + v4 = XXH_rotl64(v4, 31); + v4 *= PRIME64_1; + h64 ^= v4; + h64 = h64 * PRIME64_1 + PRIME64_4; + } + else + { + h64 = seed + PRIME64_5; + } + + h64 += (U64) len; + + while (p+8<=bEnd) + { + U64 k1 = XXH_get64bits(p); + k1 *= PRIME64_2; + k1 = XXH_rotl64(k1,31); + k1 *= PRIME64_1; + h64 ^= k1; + h64 = XXH_rotl64(h64,27) * PRIME64_1 + PRIME64_4; + p+=8; + } + + if (p+4<=bEnd) + { + h64 ^= (U64)(XXH_get32bits(p)) * PRIME64_1; + h64 = XXH_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; + p+=4; + } + + while (p> 33; + h64 *= PRIME64_2; + h64 ^= h64 >> 29; + h64 *= PRIME64_3; + h64 ^= h64 >> 32; + + return h64; +} + + +unsigned long long XXH64 (const void* input, size_t len, unsigned long long seed) +{ +#if 0 + // Simple version, good for code maintenance, but unfortunately slow for small inputs + XXH64_state_t state; + XXH64_reset(&state, seed); + XXH64_update(&state, input, len); + return XXH64_digest(&state); +#else + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + +# if !defined(XXH_USE_UNALIGNED_ACCESS) + if ((((size_t)input) & 7)==0) // Input is aligned, let's leverage the speed advantage + { + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_endian_align(input, len, seed, XXH_littleEndian, XXH_aligned); + else + return XXH64_endian_align(input, len, seed, XXH_bigEndian, XXH_aligned); + } +# endif + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned); + else + return XXH64_endian_align(input, len, seed, XXH_bigEndian, XXH_unaligned); +#endif +} + +/**************************************************** + * Advanced Hash Functions +****************************************************/ + +/*** Allocation ***/ +typedef struct +{ + U64 total_len; + U32 seed; + U32 v1; + U32 v2; + U32 v3; + U32 v4; + U32 mem32[4]; /* defined as U32 for alignment */ + U32 memsize; +} XXH_istate32_t; + +typedef struct +{ + U64 total_len; + U64 seed; + U64 v1; + U64 v2; + U64 v3; + U64 v4; + U64 mem64[4]; /* defined as U64 for alignment */ + U32 memsize; +} XXH_istate64_t; + + +XXH32_state_t* XXH32_createState(void) +{ + XXH_STATIC_ASSERT(sizeof(XXH32_state_t) >= sizeof(XXH_istate32_t)); // A compilation error here means XXH32_state_t is not large enough + return (XXH32_state_t*)XXH_malloc(sizeof(XXH32_state_t)); +} +XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + +XXH64_state_t* XXH64_createState(void) +{ + XXH_STATIC_ASSERT(sizeof(XXH64_state_t) >= sizeof(XXH_istate64_t)); // A compilation error here means XXH64_state_t is not large enough + return (XXH64_state_t*)XXH_malloc(sizeof(XXH64_state_t)); +} +XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + + +/*** Hash feed ***/ + +XXH_errorcode XXH32_reset(XXH32_state_t* state_in, U32 seed) +{ + XXH_istate32_t* state = (XXH_istate32_t*) state_in; + state->seed = seed; + state->v1 = seed + PRIME32_1 + PRIME32_2; + state->v2 = seed + PRIME32_2; + state->v3 = seed + 0; + state->v4 = seed - PRIME32_1; + state->total_len = 0; + state->memsize = 0; + return XXH_OK; +} + +XXH_errorcode XXH64_reset(XXH64_state_t* state_in, unsigned long long seed) +{ + XXH_istate64_t* state = (XXH_istate64_t*) state_in; + state->seed = seed; + state->v1 = seed + PRIME64_1 + PRIME64_2; + state->v2 = seed + PRIME64_2; + state->v3 = seed + 0; + state->v4 = seed - PRIME64_1; + state->total_len = 0; + state->memsize = 0; + return XXH_OK; +} + + +FORCE_INLINE XXH_errorcode XXH32_update_endian (XXH32_state_t* state_in, const void* input, size_t len, XXH_endianess endian) +{ + XXH_istate32_t* state = (XXH_istate32_t *) state_in; + const BYTE* p = (const BYTE*)input; + const BYTE* const bEnd = p + len; + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (input==NULL) return XXH_ERROR; +#endif + + state->total_len += len; + + if (state->memsize + len < 16) // fill in tmp buffer + { + XXH_memcpy((BYTE*)(state->mem32) + state->memsize, input, len); + state->memsize += (U32)len; + return XXH_OK; + } + + if (state->memsize) // some data left from previous update + { + XXH_memcpy((BYTE*)(state->mem32) + state->memsize, input, 16-state->memsize); + { + const U32* p32 = state->mem32; + state->v1 += XXH_readLE32(p32, endian) * PRIME32_2; + state->v1 = XXH_rotl32(state->v1, 13); + state->v1 *= PRIME32_1; + p32++; + state->v2 += XXH_readLE32(p32, endian) * PRIME32_2; + state->v2 = XXH_rotl32(state->v2, 13); + state->v2 *= PRIME32_1; + p32++; + state->v3 += XXH_readLE32(p32, endian) * PRIME32_2; + state->v3 = XXH_rotl32(state->v3, 13); + state->v3 *= PRIME32_1; + p32++; + state->v4 += XXH_readLE32(p32, endian) * PRIME32_2; + state->v4 = XXH_rotl32(state->v4, 13); + state->v4 *= PRIME32_1; + p32++; + } + p += 16-state->memsize; + state->memsize = 0; + } + + if (p <= bEnd-16) + { + const BYTE* const limit = bEnd - 16; + U32 v1 = state->v1; + U32 v2 = state->v2; + U32 v3 = state->v3; + U32 v4 = state->v4; + + do + { + v1 += XXH_readLE32(p, endian) * PRIME32_2; + v1 = XXH_rotl32(v1, 13); + v1 *= PRIME32_1; + p+=4; + v2 += XXH_readLE32(p, endian) * PRIME32_2; + v2 = XXH_rotl32(v2, 13); + v2 *= PRIME32_1; + p+=4; + v3 += XXH_readLE32(p, endian) * PRIME32_2; + v3 = XXH_rotl32(v3, 13); + v3 *= PRIME32_1; + p+=4; + v4 += XXH_readLE32(p, endian) * PRIME32_2; + v4 = XXH_rotl32(v4, 13); + v4 *= PRIME32_1; + p+=4; + } + while (p<=limit); + + state->v1 = v1; + state->v2 = v2; + state->v3 = v3; + state->v4 = v4; + } + + if (p < bEnd) + { + XXH_memcpy(state->mem32, p, bEnd-p); + state->memsize = (int)(bEnd-p); + } + + return XXH_OK; +} + +XXH_errorcode XXH32_update (XXH32_state_t* state_in, const void* input, size_t len) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_update_endian(state_in, input, len, XXH_littleEndian); + else + return XXH32_update_endian(state_in, input, len, XXH_bigEndian); +} + + + +FORCE_INLINE U32 XXH32_digest_endian (const XXH32_state_t* state_in, XXH_endianess endian) +{ + XXH_istate32_t* state = (XXH_istate32_t*) state_in; + const BYTE * p = (const BYTE*)state->mem32; + BYTE* bEnd = (BYTE*)(state->mem32) + state->memsize; + U32 h32; + + if (state->total_len >= 16) + { + h32 = XXH_rotl32(state->v1, 1) + XXH_rotl32(state->v2, 7) + XXH_rotl32(state->v3, 12) + XXH_rotl32(state->v4, 18); + } + else + { + h32 = state->seed + PRIME32_5; + } + + h32 += (U32) state->total_len; + + while (p+4<=bEnd) + { + h32 += XXH_readLE32(p, endian) * PRIME32_3; + h32 = XXH_rotl32(h32, 17) * PRIME32_4; + p+=4; + } + + while (p> 15; + h32 *= PRIME32_2; + h32 ^= h32 >> 13; + h32 *= PRIME32_3; + h32 ^= h32 >> 16; + + return h32; +} + + +U32 XXH32_digest (const XXH32_state_t* state_in) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH32_digest_endian(state_in, XXH_littleEndian); + else + return XXH32_digest_endian(state_in, XXH_bigEndian); +} + + +FORCE_INLINE XXH_errorcode XXH64_update_endian (XXH64_state_t* state_in, const void* input, size_t len, XXH_endianess endian) +{ + XXH_istate64_t * state = (XXH_istate64_t *) state_in; + const BYTE* p = (const BYTE*)input; + const BYTE* const bEnd = p + len; + +#ifdef XXH_ACCEPT_NULL_INPUT_POINTER + if (input==NULL) return XXH_ERROR; +#endif + + state->total_len += len; + + if (state->memsize + len < 32) // fill in tmp buffer + { + XXH_memcpy(((BYTE*)state->mem64) + state->memsize, input, len); + state->memsize += (U32)len; + return XXH_OK; + } + + if (state->memsize) // some data left from previous update + { + XXH_memcpy(((BYTE*)state->mem64) + state->memsize, input, 32-state->memsize); + { + const U64* p64 = state->mem64; + state->v1 += XXH_readLE64(p64, endian) * PRIME64_2; + state->v1 = XXH_rotl64(state->v1, 31); + state->v1 *= PRIME64_1; + p64++; + state->v2 += XXH_readLE64(p64, endian) * PRIME64_2; + state->v2 = XXH_rotl64(state->v2, 31); + state->v2 *= PRIME64_1; + p64++; + state->v3 += XXH_readLE64(p64, endian) * PRIME64_2; + state->v3 = XXH_rotl64(state->v3, 31); + state->v3 *= PRIME64_1; + p64++; + state->v4 += XXH_readLE64(p64, endian) * PRIME64_2; + state->v4 = XXH_rotl64(state->v4, 31); + state->v4 *= PRIME64_1; + p64++; + } + p += 32-state->memsize; + state->memsize = 0; + } + + if (p+32 <= bEnd) + { + const BYTE* const limit = bEnd - 32; + U64 v1 = state->v1; + U64 v2 = state->v2; + U64 v3 = state->v3; + U64 v4 = state->v4; + + do + { + v1 += XXH_readLE64(p, endian) * PRIME64_2; + v1 = XXH_rotl64(v1, 31); + v1 *= PRIME64_1; + p+=8; + v2 += XXH_readLE64(p, endian) * PRIME64_2; + v2 = XXH_rotl64(v2, 31); + v2 *= PRIME64_1; + p+=8; + v3 += XXH_readLE64(p, endian) * PRIME64_2; + v3 = XXH_rotl64(v3, 31); + v3 *= PRIME64_1; + p+=8; + v4 += XXH_readLE64(p, endian) * PRIME64_2; + v4 = XXH_rotl64(v4, 31); + v4 *= PRIME64_1; + p+=8; + } + while (p<=limit); + + state->v1 = v1; + state->v2 = v2; + state->v3 = v3; + state->v4 = v4; + } + + if (p < bEnd) + { + XXH_memcpy(state->mem64, p, bEnd-p); + state->memsize = (int)(bEnd-p); + } + + return XXH_OK; +} + +XXH_errorcode XXH64_update (XXH64_state_t* state_in, const void* input, size_t len) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_update_endian(state_in, input, len, XXH_littleEndian); + else + return XXH64_update_endian(state_in, input, len, XXH_bigEndian); +} + + + +FORCE_INLINE U64 XXH64_digest_endian (const XXH64_state_t* state_in, XXH_endianess endian) +{ + XXH_istate64_t * state = (XXH_istate64_t *) state_in; + const BYTE * p = (const BYTE*)state->mem64; + BYTE* bEnd = (BYTE*)state->mem64 + state->memsize; + U64 h64; + + if (state->total_len >= 32) + { + U64 v1 = state->v1; + U64 v2 = state->v2; + U64 v3 = state->v3; + U64 v4 = state->v4; + + h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18); + + v1 *= PRIME64_2; + v1 = XXH_rotl64(v1, 31); + v1 *= PRIME64_1; + h64 ^= v1; + h64 = h64*PRIME64_1 + PRIME64_4; + + v2 *= PRIME64_2; + v2 = XXH_rotl64(v2, 31); + v2 *= PRIME64_1; + h64 ^= v2; + h64 = h64*PRIME64_1 + PRIME64_4; + + v3 *= PRIME64_2; + v3 = XXH_rotl64(v3, 31); + v3 *= PRIME64_1; + h64 ^= v3; + h64 = h64*PRIME64_1 + PRIME64_4; + + v4 *= PRIME64_2; + v4 = XXH_rotl64(v4, 31); + v4 *= PRIME64_1; + h64 ^= v4; + h64 = h64*PRIME64_1 + PRIME64_4; + } + else + { + h64 = state->seed + PRIME64_5; + } + + h64 += (U64) state->total_len; + + while (p+8<=bEnd) + { + U64 k1 = XXH_readLE64(p, endian); + k1 *= PRIME64_2; + k1 = XXH_rotl64(k1,31); + k1 *= PRIME64_1; + h64 ^= k1; + h64 = XXH_rotl64(h64,27) * PRIME64_1 + PRIME64_4; + p+=8; + } + + if (p+4<=bEnd) + { + h64 ^= (U64)(XXH_readLE32(p, endian)) * PRIME64_1; + h64 = XXH_rotl64(h64, 23) * PRIME64_2 + PRIME64_3; + p+=4; + } + + while (p> 33; + h64 *= PRIME64_2; + h64 ^= h64 >> 29; + h64 *= PRIME64_3; + h64 ^= h64 >> 32; + + return h64; +} + + +unsigned long long XXH64_digest (const XXH64_state_t* state_in) +{ + XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN; + + if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT) + return XXH64_digest_endian(state_in, XXH_littleEndian); + else + return XXH64_digest_endian(state_in, XXH_bigEndian); +} + diff --git a/third_party/xxhash/xxhash.h b/third_party/xxhash/xxhash.h new file mode 100644 index 0000000..1c2a3ab --- /dev/null +++ b/third_party/xxhash/xxhash.h @@ -0,0 +1,142 @@ +/* + xxHash - Extremely Fast Hash algorithm + Header File + Copyright (C) 2012-2014, Yann Collet. + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + You can contact the author at : + - xxHash source repository : http://code.google.com/p/xxhash/ +*/ + +/* Notice extracted from xxHash homepage : +xxHash is an extremely fast Hash algorithm, running at RAM speed limits. +It also successfully passes all tests from the SMHasher suite. +Comparison (single thread, Windows Seven 32 bits, using SMHasher on a Core 2 Duo @3GHz) +Name Speed Q.Score Author +xxHash 5.4 GB/s 10 +CrapWow 3.2 GB/s 2 Andrew +MumurHash 3a 2.7 GB/s 10 Austin Appleby +SpookyHash 2.0 GB/s 10 Bob Jenkins +SBox 1.4 GB/s 9 Bret Mulvey +Lookup3 1.2 GB/s 9 Bob Jenkins +SuperFastHash 1.2 GB/s 1 Paul Hsieh +CityHash64 1.05 GB/s 10 Pike & Alakuijala +FNV 0.55 GB/s 5 Fowler, Noll, Vo +CRC32 0.43 GB/s 9 +MD5-32 0.33 GB/s 10 Ronald L. Rivest +SHA1-32 0.28 GB/s 10 +Q.Score is a measure of quality of the hash function. +It depends on successfully passing SMHasher test set. +10 is a perfect score. +*/ + +#pragma once + +#if defined (__cplusplus) +extern "C" { +#endif + + +/***************************** + Includes +*****************************/ +#include /* size_t */ + + +/***************************** + Type +*****************************/ +typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode; + + + +/***************************** + Simple Hash Functions +*****************************/ + +unsigned int XXH32 (const void* input, size_t length, unsigned seed); +unsigned long long XXH64 (const void* input, size_t length, unsigned long long seed); + +/* +XXH32() : + Calculate the 32-bits hash of sequence "length" bytes stored at memory address "input". + The memory between input & input+length must be valid (allocated and read-accessible). + "seed" can be used to alter the result predictably. + This function successfully passes all SMHasher tests. + Speed on Core 2 Duo @ 3 GHz (single thread, SMHasher benchmark) : 5.4 GB/s +XXH64() : + Calculate the 64-bits hash of sequence of length "len" stored at memory address "input". +*/ + + + +/***************************** + Advanced Hash Functions +*****************************/ +typedef struct { long long ll[ 6]; } XXH32_state_t; +typedef struct { long long ll[11]; } XXH64_state_t; + +/* +These structures allow static allocation of XXH states. +States must then be initialized using XXHnn_reset() before first use. +If you prefer dynamic allocation, please refer to functions below. +*/ + +XXH32_state_t* XXH32_createState(void); +XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr); + +XXH64_state_t* XXH64_createState(void); +XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr); + +/* +These functions create and release memory for XXH state. +States must then be initialized using XXHnn_reset() before first use. +*/ + + +XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, unsigned seed); +XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length); +unsigned int XXH32_digest (const XXH32_state_t* statePtr); + +XXH_errorcode XXH64_reset (XXH64_state_t* statePtr, unsigned long long seed); +XXH_errorcode XXH64_update (XXH64_state_t* statePtr, const void* input, size_t length); +unsigned long long XXH64_digest (const XXH64_state_t* statePtr); + +/* +These functions calculate the xxHash of an input provided in multiple smaller packets, +as opposed to an input provided as a single block. +XXH state space must first be allocated, using either static or dynamic method provided above. +Start a new hash by initializing state with a seed, using XXHnn_reset(). +Then, feed the hash state by calling XXHnn_update() as many times as necessary. +Obviously, input must be valid, meaning allocated and read accessible. +The function returns an error code, with 0 meaning OK, and any other value meaning there is an error. +Finally, you can produce a hash anytime, by using XXHnn_digest(). +This function returns the final nn-bits hash. +You can nonetheless continue feeding the hash state with more input, +and therefore get some new hashes, by calling again XXHnn_digest(). +When you are done, don't forget to free XXH state space, using typically XXHnn_freeState(). +*/ + + +#if defined (__cplusplus) +} +#endif

T3FwwB^u1^?w-)&B+l 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 ayj}N7(d^)C&Hf=-Y#Rb)2=bv@h6G@ zQyHMYiT(ll@uz0D3;l}i!&3V;!#VyZ--q{f1O0qo^e4D(XbE;JN>o`{Wo<$7uIyR5j?(u=#Q0+st&u{YUY2%$O<@xcap_k{!4k*u$@5XxY{P?S&JU_C|^W%G1 z2mjB2kLO3qS>gGS{5(It9JE|`ex#fgo*#b;d^|srKih}@2mQupl;=nC^ZfW;&@T8> z@Ml$!vX9s$Cek8w@F8C=|E<8U{j_1c;p*=W1-5ki3`O9^lA1P<01^c+3<-+r$ zTTk@8FW@)67VM)O&yV5y^884-(-oc{-M-+w70MYu&yTOzMV{x!a9@m{=STAM{1~pU z^_MBnkM9RR&yQ|j;7_3(&yPFyMf|3R=f_?51@?tV^GVpp2gCk7lAT%KYUz%2{Fjke~502Q3%I59O>de*PAGj34qdex4rm z8=q0e5BV8Ce-Fy|c?S3yKcO7s=V+jZ@k4$qj33IC3*(1!jGr&l9{A59kSp_->x>`D zSz-KeJP@iBfV$M^}?m+?cn(-p>#+ZXs-C};ePpOd@DGk(H-F@DAm z`58aq`dWXPGJgIM{EQ#BFYu>Oj`6c&U&L>E7(cu23+xN!7(ZXyWge!dOc_6JKjCKu zn~Hr&qa9N!T7l^_0Qea{ zl(WM4AwT2iDWK)T_@SH?#?STOWBibx@pJFHSQo|*`58Yqf--*Y1AfL&D98ADU@#8j zhx}F;Ka?vM#t-EfKTo1P@SmRuxb=kpJU!qyKE@B_7(e0q zGJYs`y2AKz`vQLp<&2;4bL}qjjGu5{jGysCe#TF@zSdu+jGt$KpYh}N1^yJuF@ARJ zi}+0s<7d}>fqkJIbr0Drij)?cPMcwZB~ zABy^GQP1y*&tJoK)L+f^7@w1d?Wn&psF(Ghsm}2)#9mq9Z*^XTI>-NxupRaLvmN7I z5VoU!zo2e<&Xy)v-xl(9g7r#4W7ONEsCPgs(EV^wD+%fk3+l1@E0U{7&iKznIsZ@K z`H>aQ|C6Y5{vQk5QU5sGG2f4b?Wlh=sGFX%r5yi@L7a2^zeJtme?DwS{R?czc%KW~ zQU8meezxNpAIJZZzjMruS?q_y1zZbN?R<%Kd*3 zDe4aa<^Ct2R=EF{1a#=fc12lx<%JFY3jsJ9we|^}F@o!)| z#=9YAA@rL|A-XzKLO?b{~4$i?*E?#b?!g=x&M^o{!{L3 z3&;Oa#1F@RG$_aaF;dj80Oj~sf?DDDj|u7=pZy%4avYy>=UOu8`EC5O(!&2ggnw=5 zeLpGmeh@T6{e7gUe*m@SYv^9HmRNAdSlLG#<-pKRZ^C;EG~p8`I!{RqC# zfcEJ=Jb!ik`1=;1gCqE!8QYKJc`oYHqxgHOY`+cu>G=0V|G@TBz;(xu?@6FN--ml1 z;&}>t{tWHK5!`1%`P}v&8UIJ|`?9dJxDDqKw!@w~*?tPo0oV?ExR--{xUV|?J<+eD zeR>4v9=0FH-^D@u;3$4?mhHFU{OtJgJ2h-Sh5NeW-xGDwex}0l-+34QPP_hw`Y_&C zLAj3q0)E=_HBip$x9&lP2_4wOR{x<9<_zUQzJzUTCunxVnr(C$soVS(15kK$ZlwTL_)4M5un_m~> zGdetteZ^6~F2+|J@#|uBqkKM3`^ts>6|Tz^_J`|Y{KI|TKC2s@p4z!C^dqjzxt75z z@H-j6>-;MGT|N3C=*vJ8w0{ixV$hF+=4fkxZvfgP|IK)wivJHlUk;k!-}}iA`T_D^ zjrS1A54w;1_r>S3=o^6k0%(Hv50M}A!{mPjey0z7|J71?8@}%a-7(fXhdwKn@4@>N zZ2xY|547^V`1`-CV_#nr^1T(GO|ktgc5Xxtp@@d@xTj(;c6V|-;wy!g~Ed;{2Z zA{dXjGzDJ<|9M~Fmjl>!TfoQoTq5l=& zAC|^#!LIiQdNTCCl6<9cTd?bcAs_l*9@K4|7VLWOF74KDw5@Slu^?Wt> zV%S9-u#%wvW#rSi)*izy;((O|{l9>E47)-ch+!9TU~tu*=(X7A@m1$Ln&3y;z8&+3 zudYR}M|=LH3!?j?Ub*Um=nbe3uEzJTKss_nqOUZwlu%7#vj_gU2}f) zZCIE1v9;(AgY!Zmxmfx$?O#RXwxp-4abnv~%_oum_$hm$%VGCa^C_;u-%H1Mx#m%~ z{gYl>uSD}0%Z@~P+gis=em0POCTDageTD4q+CE+5_hle^=dypQ_3vu^6Z1EGfAdP% z-;&*9+YjkWG)`M~J{6KeeT| ztMN>JYU{3f<+8h?`3$7j_+!muXzO2|kNl}_@ghBQ&7-AxWT)AmLULVOKaD@tyk?q5 zX8Tl{PfPRV_v(lTx%RKE{fjlvq0P_YLi4DX?8-FWK;y)Q2lDgyVLrZFSL6HyJSZgJ z)_gPDAI&GxJX)G(EIoCNGqwG)@viXkJ(K;J)?*-jh3%{MV=jFa=^x16?frY0kLS$v z$)9GnKe9j3KAD`+y6uPb=bBGj_O!Gwvu*o*oSXbW`%%~Uh4jVp!>;zl_$#t!uK8u! zFY9k<{_(@`ULbHPEBQmNdDJz(X=#7Q8h^HJe+i#8zeMw`OMh-St?|vCf#xySJTm#4 z^|v%$X8ULHB)ek#?!p!DTPtnNd#Z7Y(){9w*P=h*ytU6W?Z3&NE9LXIhX;7i=YNkt zozMR|VLR#%V>_O=wZnGQ)1dxe89xfnd+zxo>Ky+Yh%YMx)W3c)Sz zG{N(uAAtP{o*%7&#;E@wDeCK>eEzlpYK8Z_gF&75J@!{5SCQN{|Dg+_H)DU>2m8@m zLB|{TJ%d2LwcL#MV!pGb^P`Kf_ANYLx*O`*`uWi*@U;&$om_Y6>gXP5kJqn`-UL0v zwM(Nr&>wGH;Oh1Desmn|l{G(3cioROUDNn$_?-su=c`vocZZ((>ZQ>I7_T_s$BhqN z938;(m&(euuHEb(9Pr~-4qO`DAN=_tKW=69633Sxz9d>e?`-2)ZeHWnPIOPs=g^hW zooJt~oF82Xx%sl!o2~fq=li|BZ1n(4g4y~A~HZ+Cw`x)<$T+2iKZI>o zXB&Tb(9a{@=tpnCIN2e;j@$hk%g&y`vY%&ss1t31&q}iF=R02V^NkNTou2x}vz=YT zL+877GXDCZtDV1$m;L%CD}H_2%YJ>v`**HS3;x7)>8|^ADc}dR(@JsB+mp$^iVZ)0 z7eA^@KP(Q_oV~*(zdpldzYg(!zYg^!zdojKD*s9j`gLfp`Sr2>_PSq>`u?U{*Xcp; zzwLv5p3{w*+pjtNnEqNU`Ela4OQOH#JeGFOFJJTaR}d%kt9)JShxnlV`9W|0Y|XFR zV9k$LS<`s%)BDo@R-WbdH(Twyc$*)%(#2c6a&h$i@cZ%l1$mw2Rz2`YaL%Me6An%xG>eewT1tM z_N|RLqTaURXR3Xi3!lsTV)X(1jCfaQpDW4_^A(?mV)ia!D&V<8t#3AK#;j{72g~OTrY$|-V{(=0aqWH{|-{->P?6AkjA>z{c zkMh8_yl{D}xU48%tv?qo&xFe@_+gk2hKNt<9V2cTzhlMWOt{@$_x>;wUbi+p-kSbw z+2^CVaC(4q2J=s1{&tNt;d#tT zzN+(?aC<6zo(s1N`9)>f+n?dQ!SmT%cwN9xh}Q%8@f`6*f2$}z4B)48(MERnvd@)uWoBo#h=V|b{ zwc_z}D17cBzUkMQ{5Mv97z&@eh*$Ox5BfYdM0|2TV&#W=DL*924`bnVTk)Hi|0+M2 zy@mX=yXNyzTk+am_xoPRPb;8% z2EzYb_&*i?&xQY)&hrEKFVF1*`6++zX_@CB;XZ#~iRYhz@`2emR6Na<2ZqA`vG6|^ z{?C>@{?CN-ZRMGk@{j3jDZg|Pcifkm@Zb7l`DO3_R&S&sr;*XVq{CB+M z*CR2%UG{k2lAn$hw=MW3*P*-a^IcnUI!4?Q-;MQJ?r}(cZ4^QH?uCnac zHDCAZS6}z*mn(nN70>yG&yO?RAEwG5?d^Qz^HpU#-yGKYe%0YzeBfg5=ZeEz`C_Jg z(NcbyDPIg${JFfc@=)i0W95lNaWGK+u=y0i|KYOo!OG72K_>qm3jbsHeVA`z^Y0a( z4`St?y7Et={L@DK5)bODtImJgisPyL#q4RpkBP$t{DkAQm4CXrKg@;yUELpI`Cnc6 zrx5;Elz(#JeO>t{k>9nKeEz8`|Je9b?5oSS%0DyVd|mk`7ycXnO!w!u;<(VhSJwS} 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
$3r_&*5Au`{r=(pIzb3!(qX*&kKTQ zpCjS=9D~01(*1D#PlN0KBe*{2U!bhlx>gLH{cjUI``;6;{{zt1|1og=4}&`=x5D-L zDBSsZJ$Uy2WAN<1&4Ml84@(8l&+FCU`rifab9pcHeJS@>$r#ns=(wt~BU54h`3hP(csaMxcC_x=1axN|Z)c+U9;xH-?aNLjD*@JG1$ zuLk$ep*Dj1e!eH%x=w+c!-a6ykB7T{3f%QgaC2+BXj!jcpKcJmKDR^TeC-xI=h+8t zp8e4`w_$MojDk<+bBW2pv!9v4v!B^;{meyQKTEVNbI?yGcq4v#2G4$u2%h~M57*BS z^z}0muAhhC&iU)Xv!CyRXFshMtJPa@{j>|7pKGhY^|?OW`TsNA`R@a_u2bOFb$Rey z*8{lO4p*YClt>npf*{RX$L4vUxb<2}4)@WQ9}@OHuLbq$I0wF~Qgj_(Dx zuG4}S{p!;!R=S2G{4<3f>6U|L4K8|2BVYx!#q7=k?u#=X!U7TkqcJTkoN8>-`7ZxxGAi z_VYmS>}N7uKQE&1Jih~Xo&uy0~bMu@oAH4A6Io&FF-T#1?+g_~qKG_GZ|AyfC zK6$u;H^TM#3Hth+f9YCXb)ScY&qadgoR@^_bF1Ll=gXqT_ql z;>(o%lCKQ+>xFILuHP5#=V?d5{rYzp+<6`a_v_y~g4gr!75PsIp7Wm$H~;^l@0@=F z_v_y!mM!x!hmGOpuoK)I8sL78F%0h4UnAjuzHw{toWqO3a}IC9&EW&|t+!44vR?bO zBHYifHh|l&KL^h~4-1}s9tYRw-_h6SNVs`E1b41pgq!Ev!L!ewgJ++Mbg1Q1aD6Tl zJimXg0oVWDaL@H$(Dz)w%6jYihV|Z)t(I%q=c2*0&-LNzZymgzPxm-?2cz%4N5jqM zB=kLZ_ru-y`QUlqPtbSY|H0jN9{TRvb@_76&A)r_qQBwUW$;{YyA@lmcV)Qst{ptr+Yj#jJQ%K@vx8?pHwVx6$=z`MOsUYH0oTvx!SlY0 zuhjCKFB3e^`F3#U`~Y<9@8Al44&3i&7zayZ<+3_{2IWGLLP$49{ZbMVn{zaD=yc;UzVUt_&F%&FjiT&2vx^=rb-d3U($ z4~3ia2)O6^LAW|EzC1db9s!;QH?vytuFQ*&A;D1K{R=Hr$*?2G2ep4xW8Zf$Q@% z^v(G_xc=L$R`%WdtxNFiXXoJAPj9$>4o2U78{od*jtZXleFS};>0PU-b3U0N2lOcq4vp3!eSF5Ip;N3$CA!(AQ6^PGt`I zSq1Lgb`PHY92h+N83@O93>+ga4{pwG{?fZvt``&J?T3xxnE5Yq==is@&-Qf1OC*05X`oQgP z1Kj7}^>A~z5AOR$Bi!|K;8V%DL+7%;_Nxb6o!)T!^>?`IFNWK%32^J330LPExb-f- zcIn^sUE$W-2kx8(w6zSLgW(ozH^j+y;5oMw zf@eSffa_;C`uZ6Q*Uv<_&;7T8XFop$&wdu}Qp=&>`dK=7evjP%uAlAU&VPTn_vgvM zv(Kx7XP^Iu>+@dpeIIxN?)~{He81++>wmuaHQc&duUF2A=V*1fb!`?r*R_A}T-OnB z>pC8N>-q=Wy8Z>Xu6y9t^)%e``yt%Az7L-3YTvb-AK$mvgj?5!!Si!)8@P4t1-Gt2 zaO=7RuK#htv;UWZ=f2E<>;F^q?aL2v&+kI(m-Ay??cqMhyTPq%f4FrG4xa0}B6zOr zX1I0TjlOkFf?L-saO-*xZe8jD)K*1|9RC4EN8|o8Z>lZKIa!-6?pkw;$`j zC!gag)}PCI_Z?ZW{^8&`&!^$$@Cy3o@EzRwnTL+^v-ZZd9P0Isj{fc(Jp1Vl*UuTj zi~Gub&t<*)-VgWdrm5)op7}`y{~qr9?FyTe{Z(guxbL@p;I1DCpGx0{!o7bkhx@#^ zAMX6W7d+?u1>BsQ(6R4rHZAM*{^O2Nl=Y6=-2mN$}`{($Z!2O)F zPw?#LjlsLcMqQZ9|+g~0QB`a z46e^naPRqh;EniyDR}nzW$^6t7q~v#Y*pr<&(3gtc87b<8~}G78iHq^R|n5N$HMh_ zKl;wYQ*iyi2KPDjA>8LwtL|kE*1I&^`Pmq5y?X}F^&THQ*Ez%{;mhNk2?pi_py6CACC;4`*;G}KAw)geY^whJ<{=30_Z`><*_IZ5p>~jcQpCi%tJ@DQN{VA+B&lzyvx4)~n)~hoR-pGA;ZiUWh)~hofuFiidbiNLr^Zyxc{tIqj=J2QH;_9Cd zFAMkk|F?iUxBCar`J5Cy`xy$?&xPnaw|BvPZa#pH&&{QFsMS^M>vOY9@ci7|v4Zah z_x?W>?)`ib-24AQxa(hld!NsQI}g9W&40BW%XZ@a>MpE&^T{m=k6 zpBv!Tdq3QK-iEvWOSt(gvr{>@u3sDO`aW=*s~w+0W;}v!9>f`dMJ-G6(%E19yJbfIB~X z!u5X~T>obU&;G{*&;IX&>;EzI_5TuF|L?-}-vsyhxa2Oie6r6CgJ+-J;ri?oyf~*m zACIrlAI5s~90m9J_&|luG}f#05!~nFFBLi+b}i>boi6Z3o{u{O&$;zuy*h*8>Rei( zb5HP`|D$m8e-?e8k8i?#KK=-IZrk^2c^)u1;C`QAPj?(^{^bbLOJf%|-% zh>rK_n-%;MxcC2}yOn)cXBD{je^0pU`@+4?2f>|(bKriSGX`#7UJ0J_e;024v(WM0 zXoAmSp4;qR=HUBw2e|ji#=#3e_N5o=&F6>;eo+O#5pMo3z}24#H~%(!ly&)hTpzB^ zc5t7YgW&314Oiz*xH{9|&f!OJ=cEbl=V@*CEbH=~TswIEUYZfl@m+%F`S}an`8f=I z=VTb%&!tDfeZEW%p8dQVJo}ji*Uz`;>t~6*${hUsxf9&yQP1Gn&k@11pX1^B8G^ok zM#9bKA-L!I_2Ajhcfqrt)_d3LEx3N#1<&{GDsX*vgPYs_aD5IAo_$^sJo~&EuFt#C z_go6y&1hu&pA`s@Ptp4k=dJPZh)eO?ee`y2_^=NR;zhx_6Be+uq%>NU8} zsjuPI+j`$J2j^#Xxb^l3p6fj%c&>L4+%9YRy)VFhzj`%z;nVl4 zCH5^@scZGXx#q2d=E(|Au?+UWBXj9^AQIuutjV^~=M(f4agw7rVjD|LEZL z{3k~K7Y5ILzXoppx1ewS55S%OXW-8N8*t~p32vUN{H5i5HinyLU$}V=f}7_^xOt9) z`<^x}c+T^S;5pAGxOvY1*Rn2i>kQXVceu~Te!;V!GlFM77r^y%Ir{p!2dJREKxhr!MBZn*h81vk$*aM!mwxa_Zac7~g0cewX+zu-B~ z(}U-8F$`{=m!WTN6X5!p3ip2gI(YW8c)ynWyBu6Uor354um@Z}z2V-^4Z*XYD}(2J zZiMS+9Qx)n1+Je@;m&{SLuxr>KWhZfel~&Y=g-0O{OEOApkAvsB=EAM(H}t)q+Z|e-7wcLDZe8oct!sC<_jBLig-`G2v*F&)qtNkOKUl%v ztl-~P@IUr1>ow;!;r@T_{v5oX|M0k14+)<09|$-9Q_wg6^Wo+{7Cw>pqG=WUN4Rx$ zKCGpD1iuIp&Hbq%Y~zp+C9S#8ht99`_XW86ucG5QTH=VZzhj!4S^vI>6@u6MJ2d8Y ztKd0@9pU;s9DV(ag!{R{J@9X+>s9p4=RLUleuj?!f4~KfEbG z09XGwbj*J`>pgdE29!R{XBD{Xdj!w^cZci$FX))hQE=~>VQ@d6p9I(E*A@Kd;Pts` zh`Czjs9L?*|2lB}ZyLNfU;6I@*XNPJ^S;B;cdo92yYEftyYCdZIZO|p_iaMoedj;A z%)xyZ51#8?8E(Heg*%5wq3^z@z}@#Obe!{>;OgIoj&uGA>z8gWv3}1icT73w-*Mgt z!@q|QgR66A@H{_{!maCBbUtcsPTkKexPE>JUhm_e`qxJT%YK>XnsE2sFnG~N_w56> zt|NozeTSp(zE{EB_a^k+cLLmfXTikp` z^uJ8-?7tgapF0K5`wm3kIXngKzGtED{W%tH4i5#-`!=HQz8}Kf_e=EM_gA?6T6s_{ zw;~_suuJeFXXkJqxL=PPgN|R1oKwLshx_OI55m=X0q*xXd;@p=g2$J2P32x)9`4tb zTfjXpy9KZJrB}@1$-(m+{sV4bhNEx(qu_qNHxBOCk5l00_9fgL<~yOx!Q48-UEdvU zZim8Me=^+lW8vmJ5$@+m(}U-nn}X+@=RdLK^WHIdG0*P134A*9ut)H`?*P`TGX&m< z&Q%pU6Iid#RJb}{ROl=^xUAQEU|G2HwrcPq2fxp4L-q6UKdGF5{jU=|``-aOdh&xOH6wx2_xE<~BZf&i{?zxvr1k*7X(o*7Y0Qy4wA{ zJV(~m74Ci2J$T{A`>H?O`|31wJTI45@SEZG{aLs=Z^NDE`A#eAa{aP!^Ir#UzjlV( z-y?$8`!!?n=0KW%oF6>*>q@x&x)FW*buWAl_uCV2|2*PVxX+!h;pVyQke2gV2X3Bw z!_D&uxOonTyM8p>^;6*HKLhT)y3pyrzX$61cM6{KUmtG%TLv%g0dpPz*Uu2R@0qs- z&-3t1@a$(ATtDxiub(Eke%hW<_OX#U**tjmvv2V1rypED$DpsDVQ~G7g6rqu;MvdH z!Ly&)aQ)0h-}m0uXO=nm-n%qh{~N&dzX#m&J}`Lpe^K!4e-vE*x1#TPe+aJ6=ir|A z>2S|`6WqGm4=wYtu1$jHy7mp8>pBc>UB{tsU1!3r>k_zi-2k_)$KgJYo(W#~^m+6x z+~-l-f0Q|RFRfX@H-meB9spP8IJo!cNVx0A!KZS5C&TUI>u|rX<6F4>UFED=y}6I; z!R=$W;Q76%C)_^vf!oIc@M+X_cJRWFeHq1i^Lem>zgxlo2RHxa&u+QzUE${62kz&1 zXTtS)8Qkv^o(xxKHe8)w;OcZdr}Xa}ZUT2sdcytwqP}pSr>6$5-vi^~ede0rd46t# zJ3r&mcTO7N{(X=+a6hMA;@n!j+0S~xv!8Bo{cIOJKi~Vo{d*sS;r@M@k-@W{2ZLun zPr&sv6@BxW1vj6C&MW)wx$YD^``ICQ_R|}#pM%l&-aZbl&tY(LyA`g_r-Nso9|zAq z=fd^*8~XZecYc|VK0Cub7v14+axd)(_r30K!L$F1gJ=KO!Sz2DeSJ=W>vIO&d;V*9 zBmNf~*7AAj8a(^_6I`D?gXi-y0Its=aPOIG;m*T^;5pB?f@hzz;QIU)edl5R3tFCs zrQklNR)_nX>H)Xj-f-vVM7Z^i2%hV`H+ZghGTeG!MBjSffjd{9!>#vcxb?35&oVdP zuet;;eENR158UVYG3fYQJEwx*Rl(n`;6K96d9e#i|MqKD_*Blzrorod84}OC{etJd z90Ip51JSoHL*RZsJRH7w^XB!>=f}c*F24*n&;P<*-)4B3gX>p>d%yLBn_FMF?;C@H z=iEjF&$(R-H@6AsyYE!E?{Du1&-*s9UY)iVl{wh=j={6e7OZ!!c7v;b2wb0oEA+1j zp7XgGZa#OT?_5oSJ6Es3ovYb!>-q(5T}xhE=4RhJ1<$$d5Ion_8*W_(qiT`5FFRd>rbC53$H=oVmuHOajoSXo6{dsWb_8PeTdKhkh z-wa;wSNFKzeh8lXwcvlO9szh53UOLxw9eMK5hf|>-v6h^E?l3KG(p_^GUet z--MgzJhO`QHFH|J%_w=SH}G=D@w@+h1C%EBo0r zc=po+uAg0l|DX3mxPFGf8+rcT8a(@XCV2KU4X&Se&^MnZxPIDRR`ypvYX{GMb_t&S z`~|L`!_fEh$-!_xpF9Vy|Iu*$Pl9{iX9Umwe+i!bx4pdO^WHvqKJRP6^|?9R^S%?@ z^F9D>UFXBC>*nCOu4jVhx?YFdm-o>3x$_m=x_*OOSGz09`LV99aGyurgBL!19`%R& zJUR^>@1@Ht_~RA)vkJcOm8E}kUI}hrHiUaW?-0D+mwAgd7ufvch~T*|$HVQ*5cKWK zaCoccP3rH-qu?twmr~~w;NHVC;pX`b-1QxQTJOYoe}c)0mY zLf^T11@2tE2Y0T1gj?5QSGSzos&I4LBzVqk-{85f!{F9+9QxLECfvF%fm_#oaPO;! zgBO0hua>{2tk)dY2wtyiM%)8C1#vF zxcLl&yM7ehe5SztbD~z)mp=XTpl)#2pA2{X6>xLDJ9zyZO^oyVQt+IABi#HyMBn^d z-B9|s@2kM|vr+KuXP@BN&!KSr{0)8moDO#$E`mD`6X5>&)YRbF=bYf#=MQjwwi#XK ze?2f?$?IdFacfWAJLxv9*@=g7{% zv;O{Y^$$hoY5H{rT>W#=@j3M&+~?HK=y)G4J*M<8?*#WA?g@8&U%2=1S#Z~13HKhp z9qt@H54XQx2G2RqgPZe0H<$I=$M$f)-dqdr*PA`z=5s9Ede4HJ&sezYC&JBV7To7f z$6Ly}eD3styZ%bJ>mPud^DDvY=V(+sr@jcD^KXKi|NQ?heVTtqxPAXKTt9mU&wfq} zp8cE!*Uv@h>*qSS^Kd8Jd1!?DoSG9n`)qq_Er;y0JzSrigBS0yKBu||&-#5>Z=M6; zKBtCO=!|5&I^*CzrzThEG_qcuIq*jAy;fsu`Q*Af1TS(>XLGo7vP*@|F~M{Ge}|j@ zx#&A5SHPWJw9lsuY8Lt12(bs3U+gr|IN4PqB1ut@#&0HN0SN}wG%;6Qd{@;bW?=1BF zdh_St^?WXkd{(%l<+|2{tG{9JqAvBffe&fkr2choU-;GV0dUt}3OAptgBRz;e7<76 z^W19O@6YdfQSWNO^SN6OZoS=t=Xu^9K8OAu1J}<8xc^SewZZFssr#H1Jo|hBuFp5n z_kQ>lZk`L=S@zvL`@=nVrv)!^@Z4Qq!Ec89e)23_oj2jWpZp4U{U7hD`7iwVezGRq z`*{breK|UK&ba|@&S#@z&X>WxhsVH&G5?d{=JN^MdVhkuzT@3x4zAw>Zk~UIyZ%_X z>o149ek|PlUxvH>zi`*Lxu^8+`(Y2b?}rU=*FOk%{Tp!m{%!F3xf>Yw!;<%w=feAT zMY!{@R`7g3^ng2uz2W}59DfU*{frEr=W`5PKa`kt?I;hwK6;GVAuaQ#n*>;JRh+5e*Vw>%Ha!}Y&L@H`Kj!u7uc zT>k^$zR&+7c=kE6V*R}p>!+~Zd}hF%&+jU9mKfjioOFUaZ+{A&{r6$Leg?wzb8dys zXx6JU9l|(1GRdy|Bk`)oUaRaPBsgk=j0%`&+Eg{@p=6e+~@T>=y(s$ zt>CR6Ec@v5Wlgv`o56iv90Yg$32^WK^WgUD7P$Gp5IpDH2sh^s(eXa{7Ve*y&HqrD z!`jXNS$~i12sfV{;nw?Cxa)_)U4J>;JRgC({$;r9=fYjzWhgv!ABm z+0Xos)aos`emVv(?g97R1nzycTkyQ^0M@H>KHNO7snB^ec=rDST>o#NZ=N5+Jzw9! zJzpIjE$2c1o5S_LOYoe-F~PI{zr*!^F8cbv0*wPNomP*v-1nv7`dKe{&S!hpJ12)$ ztREUY&&h>w=j2NCos-AmKChoa$LICxkC*p=&+Dy%7yb1f?p?tTgZq3r53bIYaGw{C z!(IO$xcC1jaQnW%q_U6ZzfSO+b2qp-Z-t`tX?t3}h`|8f% zdEY6lSLai>dHz(Pv%*ug9J2p);QHS*c>cO$2e{{JU%2P10j~e6;QGHkc+TO);MxD% zaQ%ObzVq-MT>lF^UCxRAJHvfmZxcNG>{GG+_=@$zSZ_X~;Lhg*6*|*cug*ts=k1pY zoes~GIjGYGuAd!(=N$U6UY)^k{ajR`b2ICmlP4?IzaKo$$>(tAvJsJ&-3pOUe9gCxc6R1-_I4_gX{k@^!4B7xzhhi&70JpcirI=`SXYY z@HJU~V({$qvfw%A>*4yGfWA3ASE2s_>&>&xl(H^;E)_ic>=r!x+zzhK-O)GCGvLm{ zaCDr9JK(;*J%x_X*ajECae9Wy&@OnOr#JuesJm=E~Za)3dH=h&X zbMP|)uKx*e{ZD~=-@X+*`~M|)_TT1(S`G!*|5Cw==bAn@h1=im=-A)C2Cw^>*S1-( z`N!W`@A*9!uAf_i7k=FLE!L~^DO{a4FP42*r(N(O2mSYBz3*?=RPcM@&eg==^&I9z z4(|rfeVGN<|F`J-?-kEKwXDl|>j>BX{uO)}+~?P2!L$E|f@l9v!u9_W`uhJG{ypd7 zx8Ql-PA`>nYv0$0yYH64i}`WizryX;QNi=R7o+dKSHs=+X7t^6JluZ04R=02K;QZ7 z_;T6z$H}dC1wRb#y>V{v+{eq{)^$BPet+Wxxc{Gy=YrSsd_U&@Q}oUA8@T%}^GaE- z`5YcR`#%w`&Kc)rP@);s5ugV+5`4L={Cqn|l&{rrHw^Ss=vWxw2a=L&v$@a*TB;JLrI z!1Z$v`ucgJLjPNItoK*A`V0T3tV{i_aOa_W@H`I(z;okF4z}0yJ z?)%1UxbGWnUMuUhkE;f+_iI$l&(^_nzjlM0XCL&!L4_@;Q9S(0NnhC!2N#FD}rY~j|9(to`LIU8v5q^HQapK zz0vYKbPk^V>>ND%=>ykKfApP)6XE*29`3oj1%2=>MUy<^0>i)o&j>>u(&qK8N+(`l6%%BjM_wP@zAjLVqec>Q9HO|KAGzE#E57 zm-D<$@S^X|^Br)XBa_kbKAZ;k{`}+HW&Y}{6}-q*pf4`Hu>o{X7vo`oU(xgXi3~gPYs# z==k}`L2&at7VdlRF!=vCUlS_$YjFL46udqUz2bgY;J+>34@<+XYn9-6p4Wxzzc1YU z8{mG9^snIA=L5lW{*&SQd=Y*9%!2!M-yc5w{duqFvwHBnZ&$ecZV|l5$G-0j*U!;# z&(ZPddyXDt{Z`GE>tA2I1^->&gV*!y8GUd4QOkXA2e+=}gXg|)3D^HN=;(g}>-G5o z>wQjr1=r6{=y;Agd|a!m@cAC+rDyPZ4%*zUORZ<-<*fAUZ1zHUO)H4_47D7`gsek{(PU-eAaW`I&xk;c+R;i+#Kx z^zCmG+`8tUUHa62N4S1^SMZ_miJZF&gV*O_vzUiFg6I4ngzK}hLjThW{hwKHK8t+z z`}wTK33|^nx zE-|;q2haY8!1X^GeRG>q!Dqnr`8E7|&e!~3{C=M6K05`^J~xKzbL-&6Jnu+uyTiAJ z4}e?O5V-!Yg*y*-1@Rt>H0@r_cxcTo9Jo`T`c=mq= zT>m$r@4ayw>%BLcSnu<$-B)E@=Dd9Hy3bBA&)tJ(pF6?zxi|Vg2M>aqe*;{fW8uDs z-yb~toE|*;{4ZReU!bqgmA@|YG3PG93w?9m74H4qA06-2Ar*W$+#E*1{kr~sxP6=& zyq?dzMVk#b|Ck*-=hFl?pZWh+=3u{;g8OyK25|lNf$M(&-2R>#Jo~>cc=kUQuK)Yd z*XJ8>`#S?2`@8BlwH)%k>%-l5yWn;IA4UHCS?_z-v2b-R4qn{1`n-bm`urB|94`88 z*+=KFQw84y?!DayuFgQX--mxG-1Yy4PvtrF2;A?3eGBfKe-XT%^Tfz`@wqMcYdN?% zcM6{0(>8(o_m#GX`|s!XgPYrVaC5i@Zf=v|u74eFZmqs6`|G*u2KUdq8{n>g5bpXn z;O75T@SOi*-?yB92e|pK9z5sY1MWN=4A;*I!Ly&sg6H#l6I?%cqVK);7~FYy3GO^J z!M)$w{!q&&`|J`t``jF^&z`}H+|=(|q2IuI^BfNM`^-mI=uBX}I#c25ykDWy#Cmnw zHkI={o%^9<@SIyW)~mBW+&MYALg&KZIsa?m=6?(N&dCFC=j0ivQwq`FtG&_xW--IzC^Xg8O`V2OaOLxfQ(iPi23-Cp*K{=??dvJQVKwli}Wz z|Aadyx53T-vEcQ28xqf#nZa}Zv*G4H7k%fX_0MGv&dJj7m715-zdqdnZf^U*&EaUc zxs8Ck{${wjO@sTqXfv<$@AIN3-1X{@k6GVzqLFkYr&n9EraKL4hWv} zKN@cSC!z10oC|kOu7Eoy55x8OTJY@if5EfQd2oF$)T)?}R{#HJeRhTWeCZy%(D(V$ zAMW#I2s++ZS61++D)=`Qe3d_x{?*?Y?tR-A?)pJ+@7t^3uD=8BeLD&6+|GpC$NA^0 z`Op1Y5^ld%3|{;$`_%>R-}mee_upsk1NR)A3Af(M;O6-V-1RTReGmK&?)ru2FZ*cz z8^B$^J-m_k%wyoLKND`h#=`B_b8!3hcJTVS>lN=6KL^i!T%>i`U;DUB@Z85W;P!D- zxP9yg*Z-Mt{a+e9`@cVU_WvYY|1Y8M9KH+J{}*umw^^X%J8v5V&;I)a&;I+v z_1}QL`woYDE=C8>`%YlJI#c1!^ZOM#O{`a^?Sf@Ko}-Szv!8CPSEm=;`R`Yu)4+Ol zhQmE~qbqbCX1#Ox5?uWc;P!oPh5j-NmFLUPV%yjjIz?p*Z_p6fa(c&_Ul zxOH8EzIELIx30V4*7Y*n_n9|>7k+%7*?8e{u6&=_HF)u>K3@*2;Dh1L^GLWlY)*+W`0L-wANne-C&4GHpvgp0D+T=lpjIp7ZYmH~;?V zoBvR_^Kb)PKlcUCeqIZn{rnfMpD)nY&o6N2VX?)^e4K}FaKB#e6+HVK7(Dwt1+LFw z75bwp^e3?1Jg35ae|Wz_r-}9Iv|YT+L7k4lbG_YIuTC$xI{hki8d$H+RdDCz_6nUB zgXjF;hMWJ#=sPFh!JU%@+Lie@Cu_s?xn1y_+abZT&w+4#o`SwUN5Xx++<=bHm#u2TQ#qV<8 zt%7I$gVFK*?P$3ACspWQR-r#09rY){)qeqf^L!g_T|dF?`yc*T=4RiI3ts%H^Endk zb7TVCd+%$w>sMW>wr|$oAb36hd5bg~X#TNR@H}sQ;pTHB`p*9_xPGn*p7(tSef#nx z+rb1B?>u0!8^?u47qV{r3nggfW| z3!Z&0vtliW?6V_WpX&xMewRMCg6pRbTtCML&wj29p8ebi*Uvcg^)nH!pEuy1yBX+v z?&e>qmQUU1BQgK02hTpc!u7dD@ItLmvsnFpI~1;;qtMaMFRXVCS6;d0K6ZiYXY=62 z?{cmVgZuZtE`z)8^}*};+!y&g6+GwjGF(4zp|78%R;krh{OrCf2haQV2%h)d74E+K zq3^z@Rp^gG$LIL1aP?=RZ-3{o-u^DyvFxMwe5c^WuX%9l==c1E> z=X&1@p6mS*ZoNOEzbyV2Uaic*dY6M+@8)p*?+W*G+Jk~;|7Qlz{x62>|7!HxMfs(b%W<~v3&*a4Y$81!#!XBgq!DmaMwQz_q@Cfw_iWP zo!iAa)#|PHYe<~0&4TBCZ3DMoy@D5N-fw;3_G=*A|BvS|xVha0H-{(T<~9rN`gw43 zTWyV64!OUZ!CgN9Zq7sCeolK;@SO96;5p}~;O6{3`tCayKAros-I^`;w{!5~SJmkb zZ$xMR3Y`Ylt1}#~&YcxHF9y#!ya_jl577S;_rw3-JHeM&tL(2n*N1y9whf;9)jxRl zc>-LYr=#z=xCrjKxDM{Qm;l%Rbh!RM3!eQi+PRiP_P;z_|7!#wkcI&n&cdIVb+T!WH12>ve+HbM6=S=dQtX z&ild5xdDCue%5ffU)Nk4Jn#EB>&ko z`}_|09G?4A;QId>?!EMfuC;u!|22YV{~N&dzg6%;P5(Q=^?5kl{@#PWUq?Rb84yeYxNd&IVbA|FMicI*}j7JhI@`0;OY#Adr#g6cm1<)-(%l~d#=BPzsx)= zwn44l;%Dc!WAJ+4SB$ycCV1}qo^bO&0Db547`Wd*a2nk26B`LP&&T2B^B=f*Ho;xr zcEd6U^XvvU&t7ofEBe8GuNWLW=XrVXoaYU2^PGaderCYmq`zOo{W_xcMzwmgpN_$c zUsZn-xbxE!-pIavEA$&!ul{hjdENncJ|C~pe=m5>^GmpS{)oQwx$ws2JUE}r!JW@; zaO>&?w=c)Qt?P{7xi2>a&vo4ex2}iLx31^m*7X+Lx_*Uw54YWN_Hpq|%Xx7A*Mr-~9>MEqoeCt+quuKi;2f2QU11f1b&D>$(K)`ML+4-@OmRt?PMotm_T9pZ|OS zx2{9CEbG$ezbg2{6?}FD@32*=@7F0C1+Vw_o+7~JAA1DP{rxN491cg{97e$X{_xv_ z=Y6N3Z~m{r-FGJX?%M?Se*R8x_uUU}-;aRX_hE3K3)cqE zJ|_mxKA(f@^FQe8^S^L?egoI%YJV!{=Xd8Wc;V-F=Z^Kx^CfW4-3`I(^^Ph8n}1A3 z-+6cuZoO}!|GRqOejf4-+GbO;hx7wg6Dl3(Kr7O;qLn-`tIANM_I4uakb!i-yXqpy}QEQcR%#q_XxOsKN)V{ zN5Vai_XW>Brv=YG-+}A%6ZG}@JzSp)Zd2x_&#rLKWB1^NAJ1cdxL-#MLC5#cD=YX@ z75tkDzRI?xfAu$pI}d%~t{()qFIT}`e+S%qW)j@@qM2~d`~2J0{OA5I3Aev11}}b> z{p|wx>%{JG``ZWZd;6Ji>%9zao{zv?|1#Y7@bBQRUwHenkLJGt-1XbT8~GgL7`W@t zgxjyNaQpQf+;EP6ox^wG`u_s1|28|8eb@hraOZ7<;Msql;MsqFxc(c^ci-V~&&BBA zdEW`FS7$2Rd49h_r-}9IwB4!9$8*#%c=pqc_3HG3JOBMEbQ)N%&TzQrZghpt!>o4> zUxKUu0o=aNtAfpF^`fWChZWiZ?vu7F$D zTX6e08?OIFc5V3_b%5)0_2Bs&?Eu$L1KfWn{|59uzjwmjcLF-*@HD(1e^2vExPIoL zZ{JtwRp#J(?8d>1U-i9Wj|zSS-26|5oBwse^PJoPH-`t&aZa9vo6no@IlM15!TopL zJMLD?q4-&!8wRh>`GA=7y@F@|ec}2)5`F!j2-oK|aQk>8`u6b))|-D*@VfuQ!heU| z%f35@tHbr*HF)v6{QC%7!p;9sxc-kqU;h(W|3CWm3f#Kh4qmUTZ`3sped}6ikFs9t z`eX3oSMAHnaO>&@*XIDZ-=A<|@a*%d;CX&-g6s26^!52)xH->8$DH@tvz9~gv;W`l z0dRA^Ab9q96 zGWv@)i`D<0OB39E|G0O}XWn;%;CbJz;O@I)@IuZ1|H6K7|NjdOaD9%f;8WoGe!>;K8%#V((5ug->>TT}47?{fQ=KHawy z+a|+a7*(^CtCkbS&I_hM;dg*TQ{oxgQw2SHahlwR0SUgH=l`c^LY(!-+v39`@UG8G9Pp35WM(R z``#IDKHcE{xl&KKeIEd~t`TtS8V$Ga_Xe-`y+`!@)!@0_8F1_U6n*Pj?Ju=_il6QK z+QAEb`+jNgx}R?0=RwwcFFgU*&(z?>zTSsz{#x^s_16oY>+J?tf4ks?+AQwd!{Pq_ z;*W=a%K8!TiSQ@j&fzD)v(LG3eg1}ye%c*S%c1yrNOKtV`*{_(bGvcyoZG&^v!8x& z{Tze7eolky=X$vFGY);{=QX(Z#^>mGZ?x`P<{)1h?&o!z!Ck)#+|R*IfV=)Y_*D9S z4cznlFx+`~DR{jvE5>>GK6viS9}cY5TX6f*HhA%?_I*XT&!aBzV|btM2{*T6;pT7_ z+}y^(T|W_SZvTb5{(HFVJ0Dc`-JH9_y(jk%o^x&po^w7MZqB38ci-`F_kAUJ-gg%3 z)tLvM&Rn%WxK?l0=@z{BRdss7)%jb6&V|8q4p+j>;YRfRdv^E2egB^Z*XLJo&&7QG zTCR8X;MwO!aDDzMc%kOG*bVNvI1ui+Xn^bgD!Be{51#w=V({$$ZMgnFMqmHm!S%nu zA+_9!pY^{6+vKD=P4h<0Kh6!FeU5C-t}C3yC^4ePCI5ZpPrr-Dza(0`xx&h1wf>z5o*`qxhn zxPBVo=5T)ST<=)co99Cn>;J=g^*^XszsONF|GDqW!0mg-;KlE74Q^fUpl@BD!@UQ7hI<8%CO)?3%76}-dW zN`3p)1MZ&>Ho%?du@!t4T%C@`w!H6NaQ&YgJm-H7-25*=$NX=A`(Af9-2A7&t#^9x z`kc&(=lIXTv(E*OtJPa@eRd9B{HpnE9z5&!VZHr2vSR%()~kP2#rg@Xx8CO})_)Z| z*ZULPdKVZ}_T9d$47aZJg6ACe4xaZt5bnMM(0AVkxbrX!?!9pv-1(dkJo|hsK8N8m` zj5tT%2G6<8cS6hOXtChMubSIRaQnL++~;*qxb+T#TklY~^^So1-gs^BT<@d7bG^^P zos)0ScOHIZz4Nf=iRJv5e?Pe2pL0y`y3g06FBb*RK1ag!IR<_E@&sHzv*2qsZ(jf0 z_1oatPy4~;Jow(S8eBi?1&-MNi zJlEUi5@OjL`J#g>O|G>@j6S(U;G?Y1*PiMHF zt8WoJ=W}52oX-Hb`J9NpIgEtsXB^yqJrg|p`7C($^Br72txhd-(9f!H=W0{9K6i$j z+o8d;&$EMPpO?b*c^&%B)tzwtKL&TMUV=MUU&1}t^MV&XJ=ZJzy_Q?SJ=YrtFMicI z>{Y@0!hNqk5pMqH1h40LSDe#Zg6BN%ft%-}=$q$@aPyo6*XI(amGk50a;pZf7I$K zxOpxby!ch;X9c+Pvo73!U$iIOdXIx!@7ZwI-wt>E<8br&81DKX;jZs|R@q<)Ks z_YYp5+Yxb28-nMY&xV`xX!PB8JbXIuy{`n%`_5v$I`iO-=(In(R&Unn7QFaXb$Y?o z`CEm~g~4+USHjKVM)ZI8{S0vb-Qa0(eSQUZ{^vWV<$6~So_%fv*XN&t7iyl1-Qb>! z1L2;F2DtvOg6seG;JIHf2G9QAhU@=h^!5K8T>lH4Tg$EZS^pcsy>GV&Uik689maa! z8*hMH?__j*UwRpCU2mb|zf1Ws+4jE;G3a(?OG+_s1N_Zkilo_(GO*XJ4NnA^qhkD9}%fBtqC+&@Q{4ga3|XSrc5 z`|k<&@3ZV5yq^C#k^gDIb6w}bt?OUt>wf~=+@1@b_nm{j^Z5hZedoKNtk-=zz^!+! z;CbJjgXemC!`=5_^zGwuaQ&PMcMd1OJuk1oox`t#XP>{q^||mr%Y6KMTg$-pzbRaw zM+MLOo&tB@v(WMTim!*OKMozw<7;r=C+DE!d&q(pmi5XzR`3nr=HCPEzfay9z7Oa0 zM7aIBB6!Yi4BXuALdU*54&R%78{zu@4Q>ug4KMR?eUA!00B#OL;NIsW;O28f@cOwM z68Fqg!E-(@!_DU{^v$6OuFtj?mG$bUBV7OM2hTox2hTnahU@ca^z}ImuFqTH&d;N8 z{l5@A`Z zEOzd%Xt|x=%x?X}? zS0nn?)#_iRPyM$Gp7-52c;0twxcl}&-`tL@&>zNn^SP>G{RGyV^K%vJXS3d%+g;jn z4$BA6Icys|=dc_6cR8SM{(pm8?~vem-<#3*z36VZ`#yrc`_6=Wem_RX^Sjh#wS0z={ubGvQa z!-ogYeHjF|FQ=hz{$t_#c@FM8d=xzUS>VcYo;^oP!}YUD@ZxtlC+oxY*%R(O_k}yp zgW!G+c2V%`|E}OU&&S~UpMt(VXTkM353bK8t}5q2pX&wBK6ekEeI5wc=K%EmcLo~Z zeoi$EZe4f5z26=PUik5T`w;H^_A@%3m!(IRImkP~Jx80s&3SvcIUfvno-YiZ^Sl~v zo;Rc8+>VEv+tYAAr+OXk{q}kA!jHMle|5|Gbg1B6;NEY0R`3S6Igf_hm+^4dzYq65 znG5%R>u^o2uKJvJi~DWU;JGh7;Pz$L;Dws`H^B9C72J6kA3XbcBY5`n5nMlCq3@jh z2G?hYYs>yR&t2foa}T)p#(}}J|1*MT{};jaKN5X?PJrukDqNrM!}a+~@a%KtQMDYh z&-LK?>=wNEUEXg!;ofh3;MVnbxcA#Xf){?g-@anK^V8wFvX7pN9&kT5Yk<4{o(lc} z+LKDHTM^I80?{|(^I&j7gV zM_2Gy;qLo=@SH>I8*6?FZVv5&=Nvl2?blYp>-l$z`8fc6=jRBx`wm0j`MI`2e*)|E z^J2yNS*$nDpDWg{cvG2={?~%*f1}_zw}ar$&p>pXpUdFBC)|OK&+Dfv`0H^0{JIIQ zPTMiHdW)a^^XQG>uHO+pmHXtcaGxWm!ky2Hg4gG#ZOqSI!Smcc3^)I$(f8ha9qxPD zM{xf?fURyWb1=6x;pVU<+}!%XT|XFZZlmGmHXiPCc1rM^+pOR@w{PL*w!|%Ez3$ry zKArw{3!eAgllAHx25&^Cp+aXQ>(zM(?)2u z6R!Uw;rjo3@SNwh!L$F{;rf37ef>WJ*Z&)E{r?2_zWT$hwR{Rc-dBGKUi_+c9TvP^ z*RKmTFKGU84m#eem%y#-8uYE}5x72|Ku4eJk1hMF&pvRU3q#>PmnXno|8)gl^|qGx z-7$FXZ*RCc9E^@RG{E2Hd|ep4p8wp){|@xc|3SF>Hlpuy`SS|>Hn*4c>Su-E*-tmt zo9C_->jwtUxt#*n|5@mp+g)(yXCgYz&xdfI%Ri&zJ-_rFWe)OAaGx(d;jZrs_xW-b z-1S$&eZJfd_g;D)?zwn3c)edUVt#%Np7URLT&>=MoBz_mi(fVWPH;aT-URNwv?tu$ zPKKMqKjG$f58U-n!_Dn$xVg2yv+S?W;Hw| z+5hLkv;Uvq`d{GgG9Udf1K0l=aQ*KN_rB^Iyzt|FbsF6J>N0ek|8W(3BHYg#UxS<5 zN5Sj4O^thFfqQB>Epf?d>CB)=PUR^50v_@?^(ec;QD#Eg1;QRK0l*k{(lIbbDr

&)yU&mRW0hR> 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 NvwH&lk^D + + +// Constants for MD5Transform routine. +#define S11 7 +#define S12 12 +#define S13 17 +#define S14 22 +#define S21 5 +#define S22 9 +#define S23 14 +#define S24 20 +#define S31 4 +#define S32 11 +#define S33 16 +#define S34 23 +#define S41 6 +#define S42 10 +#define S43 15 +#define S44 21 + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wold-style-cast" + +/////////////////////////////////////////////// + +// F, G, H and I are basic MD5 functions. +inline MD5::uint4 MD5::F(uint4 x, uint4 y, uint4 z) { + return (x & y) | (~x & z); +} + +inline MD5::uint4 MD5::G(uint4 x, uint4 y, uint4 z) { + return (x & z) | (y & ~z); +} + +inline MD5::uint4 MD5::H(uint4 x, uint4 y, uint4 z) { + return x^y^z; +} + +inline MD5::uint4 MD5::I(uint4 x, uint4 y, uint4 z) { + return y ^ (x | ~z); +} + +// rotate_left rotates x left n bits. +inline MD5::uint4 MD5::rotate_left(uint4 x, unsigned n) { + return (x << n) | (x >> (32-n)); +} + +// FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4. +// Rotation is separate from addition to prevent recomputation. +inline void MD5::FF(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) { + a = rotate_left(a+ F(b,c,d) + x + ac, s) + b; +} + +inline void MD5::GG(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) { + a = rotate_left(a + G(b,c,d) + x + ac, s) + b; +} + +inline void MD5::HH(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) { + a = rotate_left(a + H(b,c,d) + x + ac, s) + b; +} + +inline void MD5::II(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac) { + a = rotate_left(a + I(b,c,d) + x + ac, s) + b; +} + +////////////////////////////////////////////// + +// default ctor, just initailize +MD5::MD5() +{ + init(); +} + +////////////////////////////////////////////// + +// nifty shortcut ctor, compute MD5 for string and finalize it right away +MD5::MD5(const std::string &text) +{ + init(); + update(text.c_str(), text.length()); + finalize(); +} + +////////////////////////////// + +void MD5::init() +{ + finalized=false; + + count[0] = 0; + count[1] = 0; + + // load magic initialization constants. + state[0] = 0x67452301; + state[1] = 0xefcdab89; + state[2] = 0x98badcfe; + state[3] = 0x10325476; +} + +////////////////////////////// + +// decodes input (unsigned char) into output (uint4). Assumes len is a multiple of 4. +void MD5::decode(uint4 output[], const uint1 input[], size_t len) +{ + for (auto i = 0U, j = 0U; j < len; i++, j += 4) + output[i] = ((uint4)input[j]) | (((uint4)input[j+1]) << 8) | + (((uint4)input[j+2]) << 16) | (((uint4)input[j+3]) << 24); +} + +////////////////////////////// + +// encodes input (uint4) into output (unsigned char). Assumes len is +// a multiple of 4. +void MD5::encode(uint1 output[], const uint4 input[], size_t len) +{ + for (auto i = 0U, j = 0U; j < len; i++, j += 4) { + output[j] = input[i] & 0xff; + output[j+1] = (input[i] >> 8) & 0xff; + output[j+2] = (input[i] >> 16) & 0xff; + output[j+3] = (input[i] >> 24) & 0xff; + } +} + +////////////////////////////// + +// apply MD5 algo on a block +void MD5::transform(const uint1 block[blocksize]) +{ + uint4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; + decode (x, block, blocksize); + + /* Round 1 */ + FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ + FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ + FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ + FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ + FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ + FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ + FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ + FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ + FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ + FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ + FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ + FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ + FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ + FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ + FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ + FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ + + /* Round 2 */ + GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ + GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ + GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ + GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ + GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ + GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ + GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ + GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ + GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ + GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ + GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ + GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ + GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ + GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ + GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ + GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ + + /* Round 3 */ + HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ + HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ + HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ + HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ + HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ + HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */ + HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ + HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ + HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ + HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ + HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ + HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ + HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ + HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ + HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ + HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */ + + /* Round 4 */ + II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ + II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ + II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ + II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ + II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ + II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ + II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ + II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ + II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ + II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ + II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ + II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ + II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ + II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ + II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ + II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */ + + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + + // Zeroize sensitive information. + memset(x, 0, sizeof x); +} + +////////////////////////////// + +// MD5 block update operation. Continues an MD5 message-digest +// operation, processing another message block +void MD5::update(const unsigned char input[], size_t length) +{ + // compute number of bytes mod 64 + size_t index = (count[0] / 8) % blocksize; + + // Update number of bits + if ((count[0] += (length << 3)) < (length << 3)) + count[1]++; + count[1] += (length >> 29); + + // number of bytes we need to fill in buffer + size_t firstpart = 64 - index; + size_t i = 0; + + // transform as many times as possible. + if (length >= firstpart) + { + // fill buffer first, transform + memcpy(&buffer[index], input, firstpart); + transform(buffer); + + // transform chunks of blocksize (64 bytes) + for (i = firstpart; i + blocksize <= length; i += blocksize) + transform(&input[i]); + + index = 0; + } + else + i = 0; + + // buffer remaining input + memcpy(&buffer[index], &input[i], length-i); +} + +////////////////////////////// + +// for convenience provide a verson with signed char +void MD5::update(const char input[], size_t length) +{ + update((const unsigned char*)input, length); +} + +////////////////////////////// + +// MD5 finalization. Ends an MD5 message-digest operation, writing the +// the message digest and zeroizing the context. +MD5& MD5::finalize() +{ + static unsigned char padding[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + if (!finalized) { + // Save number of bits + unsigned char bits[8]; + encode(bits, count, 8); + + // pad out to 56 mod 64. + size_t index = (count[0] / 8) % 64; + size_t padLen = (index < 56) ? (56 - index) : (120 - index); + update(padding, padLen); + + // Append length (before padding) + update(bits, 8); + + // Store state in digest + encode(digest, state, 16); + + // Zeroize sensitive information. + memset(buffer, 0, sizeof buffer); + memset(count, 0, sizeof count); + + finalized=true; + } + + return *this; +} + +////////////////////////////// + +// return hex representation of digest as string +std::string MD5::hexdigest() const +{ + if (!finalized) + return ""; + + char buf[33]; + for (int i=0; i<16; i++) + sprintf(buf+i*2, "%02x", digest[i]); + buf[32]=0; + + return std::string(buf); +} + +////////////////////////////// + +std::ostream& operator<<(std::ostream& out, MD5 md5) +{ + return out << md5.hexdigest(); +} + +////////////////////////////// + +std::string md5(const std::string str) +{ + MD5 md5 = MD5(str); + + return md5.hexdigest(); +} + +#pragma clang diagnostic pop diff --git a/third_party/md5/md5.h b/third_party/md5/md5.h new file mode 100644 index 0000000..e347530 --- /dev/null +++ b/third_party/md5/md5.h @@ -0,0 +1,96 @@ +/* MD5 + converted to C++ class by Frank Thilo (thilo@unix-ag.org) + for bzflag (http://www.bzflag.org) + + based on: + + md5.h and md5.c + reference implementation of RFC 1321 + + Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +rights reserved. + +License to copy and use this software is granted provided that it +is identified as the "RSA Data Security, Inc. MD5 Message-Digest +Algorithm" in all material mentioning or referencing this software +or this function. + +License is also granted to make and use derivative works provided +that such works are identified as "derived from the RSA Data +Security, Inc. MD5 Message-Digest Algorithm" in all material +mentioning or referencing the derived work. + +RSA Data Security, Inc. makes no representations concerning either +the merchantability of this software or the suitability of this +software for any particular purpose. It is provided "as is" +without express or implied warranty of any kind. + +These notices must be retained in any copies of any part of this +documentation and/or software. + +*/ + +#ifndef BZF_MD5_H +#define BZF_MD5_H + +#include +#include + + +// a small class for calculating MD5 hashes of strings or byte arrays +// it is not meant to be fast or secure +// +// usage: 1) feed it blocks of uchars with update() +// 2) finalize() +// 3) get hexdigest() string +// or +// MD5(std::string).hexdigest() +// +// assumes that char is 8 bit and int is 32 bit +class MD5 +{ +public: + MD5(); + MD5(const std::string& text); + void update(const unsigned char *buf, size_t length); + void update(const char *buf, size_t length); + + inline void update(const std::string& text) { + return update(text.data(), text.length()); + } + + MD5& finalize(); + std::string hexdigest() const; + friend std::ostream& operator<<(std::ostream&, MD5 md5); + +private: + void init(); + typedef unsigned char uint1; // 8bit + typedef unsigned int uint4; // 32bit + enum {blocksize = 64}; // VC6 won't eat a const static int here + + void transform(const uint1 block[blocksize]); + static void decode(uint4 output[], const uint1 input[], size_t len); + static void encode(uint1 output[], const uint4 input[], size_t len); + + bool finalized; + uint1 buffer[blocksize]; // bytes that didn't fit in last 64 byte chunk + uint4 count[2]; // 64bit counter for number of bits (lo, hi) + uint4 state[4]; // digest so far + uint1 digest[16]; // the result + + // low level logic operations + static inline uint4 F(uint4 x, uint4 y, uint4 z); + static inline uint4 G(uint4 x, uint4 y, uint4 z); + static inline uint4 H(uint4 x, uint4 y, uint4 z); + static inline uint4 I(uint4 x, uint4 y, uint4 z); + static inline uint4 rotate_left(uint4 x, unsigned n); + static inline void FF(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); + static inline void GG(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); + static inline void HH(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); + static inline void II(uint4 &a, uint4 b, uint4 c, uint4 d, uint4 x, uint4 s, uint4 ac); +}; + +std::string md5(const std::string str); + +#endif diff --git a/third_party/radamsa/LICENSE b/third_party/radamsa/LICENSE new file mode 100644 index 0000000..47c06fc --- /dev/null +++ b/third_party/radamsa/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2013 Aki Helin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/third_party/radamsa/radamsa.c b/third_party/radamsa/radamsa.c new file mode 100644 index 0000000..9b0bd57 --- /dev/null +++ b/third_party/radamsa/radamsa.c @@ -0,0 +1,5592 @@ + +#define read radamsa_read +#define write radamsa_write +#define malloc radamsa_malloc +#define realloc radamsa_realloc +#define free radamsa_free +#define main radamsa_main + +#define IGNORE_FD 9999 + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" + +__thread unsigned char heap[] = {2,3,9,114,101,99,117,114,115,105,118,101,2,3,1,43,2, +3,1,45,2,3,4,105,111,116,97,2,3,7,112,97,116,116,101,114,110,2,3,1,61,2,3,1, +42,2,3,1,47,2,3,2,60,60,2,3,2,62,62,2,3,4,116,121,112,101,2,3,3,97,100,100,1, +4,1,12,1,4,1,10,1,4,1,10,1,4,1,14,1,4,1,14,1,4,1,11,1,4,1,11,1,4,1,14,1,4,1, +11,1,4,1,13,1,4,1,12,1,4,1,12,2,3,5,101,114,114,111,114,1,4,1,1,2,3,4,98,97, +110,100,1,4,1,1,2,3,3,98,111,114,1,4,1,1,2,3,4,98,120,111,114,1,4,1,1,2,3,6, +110,101,103,97,116,101,1,4,1,1,2,3,4,100,111,110,101,1,4,1,1,2,3,4,108,105,115, +116,1,4,1,1,2,3,4,114,111,111,116,1,4,1,1,2,3,8,102,105,110,105,115,104,101, +100,1,4,1,1,2,3,7,99,114,97,115,104,101,100,1,4,1,1,2,3,8,101,120,112,101,99, +116,101,100,1,4,1,1,2,3,9,100,101,108,105,118,101,114,101,100,1,4,1,1,2,3,3, +109,111,100,1,4,1,1,2,3,4,101,120,112,116,1,4,1,1,2,3,3,114,101,109,1,4,1,1, +2,3,7,113,117,111,116,114,101,109,1,4,1,1,2,3,4,104,101,108,112,1,4,1,1,2,3, +3,100,105,118,1,4,1,1,2,3,3,105,110,99,1,4,1,1,2,3,7,99,111,109,109,101,110, +116,1,4,1,1,2,3,4,116,97,105,108,1,4,1,1,2,3,4,105,110,116,60,1,4,1,1,2,3,5, +97,98,111,117,116,1,4,1,1,2,3,7,118,101,114,115,105,111,110,1,4,1,1,2,3,4,99, +111,111,107,1,4,1,1,2,3,9,109,97,110,100,97,116,111,114,121,1,4,1,1,2,3,6,112, +108,117,114,97,108,1,4,1,1,2,3,7,100,101,102,97,117,108,116,1,4,1,1,2,3,3,97, +98,115,1,4,1,1,2,3,6,108,101,110,103,116,104,1,4,1,1,2,3,3,109,117,108,1,4,1, +1,2,3,12,109,101,109,111,114,121,45,108,105,109,105,116,1,4,1,1,2,3,7,107,105, +108,108,105,110,103,1,4,1,1,2,3,9,107,105,108,108,101,100,45,98,121,1,4,1,1, +2,3,12,113,114,45,98,105,103,45,115,109,97,108,108,1,4,1,1,2,3,9,110,101,103, +97,116,105,118,101,63,1,4,1,1,2,3,7,114,101,115,117,109,101,100,1,4,1,1,2,3, +8,114,101,108,101,97,115,101,100,1,4,1,1,2,3,4,108,105,110,107,2,3,7,109,97, +105,108,98,111,120,1,4,1,2,1,4,1,2,2,3,6,115,116,100,111,117,116,1,4,1,1,2,3, +5,115,116,100,105,110,1,4,1,1,2,3,4,112,111,114,116,1,4,1,1,2,3,5,97,119,97, +107,101,1,4,1,1,2,3,12,114,105,115,101,45,110,45,115,104,105,110,101,1,4,1,1, +2,3,1,110,1,4,1,1,2,3,6,111,117,116,112,117,116,1,4,1,1,2,3,8,116,101,114,109, +105,110,97,108,1,4,1,1,2,3,2,105,100,2,3,4,112,114,101,100,1,4,1,2,1,4,1,2,2, +3,5,115,104,111,114,116,2,3,4,108,111,110,103,1,4,1,2,1,4,1,2,2,3,3,98,117,103, +1,4,1,1,2,3,2,116,99,2,3,17,97,108,114,101,97,100,121,45,112,114,111,102,105, +108,105,110,103,2,3,4,112,114,111,102,2,3,17,115,116,97,114,116,101,100,45,112, +114,111,102,105,108,105,110,103,2,3,22,110,111,116,45,112,114,111,102,105,108, +105,110,103,45,121,111,117,45,102,111,111,108,1,4,1,5,1,4,1,5,1,4,1,5,1,4,1, +5,1,4,1,5,2,3,14,110,111,116,45,97,45,102,117,110,99,116,105,111,110,1,4,1,1, +2,3,6,114,97,110,100,111,109,1,4,1,1,2,3,10,116,99,112,45,99,108,105,101,110, +116,1,4,1,1,2,3,2,111,102,1,4,1,1,2,3,4,112,108,117,115,1,4,1,1,2,16,28,25,1, +0,23,1,1,2,4,1,1,3,5,1,1,4,6,9,4,8,5,5,4,6,5,2,8,3,17,2,16,3,0,7,184,2,16,3, +0,7,183,2,16,3,0,7,182,2,16,3,0,7,181,2,16,3,0,7,180,2,16,3,0,7,179,2,16,3,0, +7,178,2,16,3,0,7,177,2,16,3,0,7,176,2,16,3,0,7,175,2,16,3,0,7,174,2,16,3,0,7, +173,2,16,3,0,7,172,2,16,3,0,7,171,2,16,3,0,7,170,2,16,3,0,7,169,2,16,3,0,7,168, +2,16,3,0,7,167,2,16,3,0,7,166,2,16,3,0,7,165,2,16,3,0,7,164,2,16,46,25,2,0,10, +1,1,2,5,9,4,3,2,5,1,25,3,0,12,1,1,2,6,5,4,3,5,4,2,6,2,89,1,0,11,1,2,2,5,1,1, +2,3,2,5,2,17,2,16,3,0,7,163,2,16,3,0,7,162,2,16,3,0,7,161,2,16,25,25,2,0,20, +1,1,4,5,1,1,3,6,1,1,2,7,27,4,5,6,7,8,24,8,17,2,16,3,0,7,160,2,16,3,0,7,159,2, +16,34,25,3,0,29,1,1,3,6,77,7,51,6,7,8,51,4,8,9,1,1,2,10,14,4,4,5,5,6,9,5,2,10, +4,17,2,16,3,0,7,158,2,16,3,0,7,157,2,16,25,25,1,0,20,1,1,2,4,14,7,5,141,6,9, +4,9,5,5,4,6,5,2,9,4,17,2,16,3,0,7,156,2,16,3,0,7,155,2,16,3,0,7,154,2,16,29, +25,1,0,24,1,1,2,4,14,13,5,205,6,141,7,5,4,9,5,4,5,6,5,7,6,2,9,4,17,2,16,3,0, +7,153,2,16,3,0,7,152,2,16,3,0,7,151,2,16,3,0,7,150,2,16,3,0,7,149,2,16,3,0,7, +148,2,16,3,0,7,147,2,16,3,0,7,146,2,16,3,0,7,145,2,16,3,0,7,144,2,16,3,0,7,143, +2,16,3,0,7,142,2,16,3,0,7,141,2,16,3,0,7,140,2,16,3,0,7,139,2,16,3,0,7,138,2, +16,3,0,7,137,2,16,3,0,7,136,2,16,3,0,7,135,2,16,3,0,7,134,2,16,3,0,7,133,2,16, +3,0,7,132,2,16,3,0,7,131,2,16,37,25,1,0,32,1,1,2,4,53,4,5,1,1,5,6,1,1,4,7,1, +1,3,8,5,3,4,7,3,5,6,7,8,6,2,7,5,17,2,16,28,25,5,0,23,80,5,17,0,52,5,8,7,6,2, +5,6,3,7,3,9,8,5,2,6,3,24,4,17,2,16,3,0,7,130,2,16,3,0,7,129,2,16,3,0,7,128,2, +16,3,0,7,127,2,16,3,0,7,126,2,16,3,0,7,125,2,16,3,0,7,124,2,16,3,0,7,123,2,16, +3,0,7,122,2,16,3,0,7,121,2,16,3,0,7,120,2,16,3,0,7,119,2,16,3,0,7,118,2,16,3, +0,7,117,2,16,3,0,7,116,2,16,3,0,7,115,2,16,3,0,7,114,2,16,3,0,7,113,2,16,3,0, +7,112,2,16,3,0,7,111,2,16,3,0,7,110,2,16,49,25,3,0,7,1,1,2,6,2,6,4,89,3,0,19, +1,1,3,7,6,5,4,5,4,3,3,5,6,4,7,5,2,5,3,25,2,0,2,24,4,25,1,0,4,77,4,24,4,17,2, +16,3,0,7,109,2,16,3,0,7,108,2,16,3,0,7,107,2,16,3,0,7,106,2,16,3,0,7,105,2,16, +3,0,7,104,2,16,3,0,7,103,2,16,3,0,7,102,2,16,3,0,7,101,2,16,3,0,7,100,2,16,3, +0,7,99,2,16,3,0,7,98,2,16,3,0,7,97,2,16,3,0,7,96,2,16,3,0,7,95,2,16,3,0,7,94, +2,16,3,0,7,93,2,16,3,0,7,92,2,16,3,0,7,91,2,16,3,0,7,90,2,16,3,0,7,89,2,16,3, +0,7,88,2,16,3,0,7,87,2,16,3,0,7,86,2,16,3,0,7,85,2,16,3,0,7,84,2,16,3,0,7,83, +2,16,3,0,7,82,2,16,3,0,7,81,2,16,3,0,7,80,2,16,3,0,7,79,2,16,3,0,7,78,2,16,3, +0,7,77,2,16,3,0,7,76,2,16,3,0,7,75,2,16,3,0,7,74,2,16,3,0,7,73,2,16,3,0,7,72, +2,16,3,0,7,71,2,16,3,0,7,70,2,16,3,0,7,69,2,16,3,0,7,68,2,16,3,0,7,67,2,16,3, +0,7,66,2,16,3,0,7,65,2,16,3,0,7,64,2,16,3,0,7,63,2,16,3,0,7,62,2,16,3,0,7,61, +2,16,3,0,7,60,2,16,3,0,7,59,2,16,3,0,7,58,2,16,3,0,7,57,2,16,3,0,7,56,2,16,3, +0,7,55,2,16,3,0,7,54,2,16,3,0,7,53,2,16,3,0,7,52,2,16,3,0,7,51,2,16,3,0,7,50, +2,16,3,0,7,49,2,16,3,0,7,48,2,16,3,0,7,47,2,16,3,0,7,46,2,16,3,0,7,45,2,16,3, +0,7,44,2,16,3,0,7,43,2,16,3,0,7,42,2,16,3,0,7,41,2,16,3,0,7,40,2,16,3,0,7,39, +2,16,3,0,7,38,2,16,3,0,7,37,2,16,3,0,7,36,2,16,3,0,7,35,2,16,3,0,7,34,2,16,3, +0,7,33,2,16,3,0,7,32,2,16,3,0,7,31,2,16,3,0,7,30,2,16,3,0,7,29,2,16,3,0,7,28, +2,16,3,0,7,27,2,16,3,0,7,26,2,16,3,0,7,25,2,16,3,0,7,24,2,16,3,0,7,23,2,16,3, +0,7,22,2,16,3,0,7,21,2,16,3,0,7,20,2,16,3,0,7,19,2,16,3,0,7,18,2,16,3,0,7,17, +2,16,3,0,7,16,2,16,3,0,7,15,2,16,3,0,7,14,2,16,3,0,7,13,2,16,3,0,7,12,2,16,3, +0,7,11,2,16,3,0,7,10,2,16,3,0,7,9,2,16,3,0,7,8,2,16,3,0,7,7,2,16,3,0,7,6,2,16, +3,0,7,5,2,16,3,0,7,4,2,16,3,0,7,3,2,16,3,0,7,2,2,16,3,0,7,1,2,16,3,0,7,0,2,16, +3,0,6,255,2,16,3,0,6,254,2,16,3,0,6,253,2,16,3,0,6,252,2,16,3,0,6,251,2,16,3, +0,6,250,2,16,3,0,6,249,2,16,3,0,6,248,2,16,3,0,6,247,2,16,3,0,6,246,2,16,3,0, +6,245,2,16,3,0,6,244,2,16,3,0,6,243,2,16,3,0,6,242,2,16,3,0,6,241,2,16,3,0,6, +240,2,16,3,0,6,239,2,16,3,0,6,238,2,16,3,0,6,237,2,16,3,0,6,236,2,16,3,0,6,235, +2,16,3,0,6,234,2,16,3,0,6,233,2,16,3,0,6,232,2,16,3,0,6,231,2,16,3,0,6,230,2, +16,3,0,6,229,2,16,3,0,6,228,2,16,3,0,6,227,2,16,3,0,6,226,2,16,3,0,6,225,2,16, +3,0,6,224,2,16,3,0,6,223,2,16,3,0,6,222,2,16,3,0,6,221,2,16,3,0,6,220,2,16,3, +0,6,219,2,16,3,0,6,218,2,16,3,0,6,217,2,16,3,0,6,216,2,16,3,0,6,215,2,16,3,0, +6,214,2,16,3,0,6,213,2,16,3,0,6,212,2,16,3,0,6,211,2,16,3,0,6,210,2,16,3,0,6, +209,2,16,3,0,6,208,2,16,3,0,6,207,2,16,3,0,6,206,2,16,3,0,6,205,2,16,3,0,6,204, +2,16,3,0,6,203,2,16,3,0,6,202,2,16,3,0,6,201,2,16,3,0,6,200,2,16,3,0,6,199,2, +16,3,0,6,198,2,16,3,0,6,197,2,16,3,0,6,196,2,16,3,0,6,195,2,16,3,0,6,194,2,16, +3,0,6,193,2,16,3,0,6,192,2,16,3,0,6,191,2,16,3,0,6,190,2,16,3,0,6,189,2,16,3, +0,6,188,2,16,3,0,6,187,2,16,3,0,6,186,2,16,3,0,6,185,2,16,3,0,6,184,2,16,3,0, +6,183,2,16,3,0,6,182,2,16,3,0,6,181,2,16,3,0,6,180,2,16,3,0,6,179,2,16,3,0,6, +178,2,16,3,0,6,177,2,16,3,0,6,176,2,16,3,0,6,175,2,16,3,0,6,174,2,16,3,0,6,173, +2,16,3,0,6,172,2,16,3,0,6,171,2,16,3,0,6,170,2,16,3,0,6,169,2,16,3,0,6,168,2, +16,3,0,6,167,2,16,3,0,6,166,2,16,3,0,6,165,2,16,3,0,6,164,2,16,3,0,6,163,2,16, +3,0,6,162,2,16,3,0,6,161,2,16,3,0,6,160,2,16,3,0,6,159,2,16,3,0,6,158,2,16,3, +0,6,157,2,16,3,0,6,156,2,16,3,0,6,155,2,16,3,0,6,154,2,16,3,0,6,153,2,16,3,0, +6,152,2,16,3,0,6,151,2,16,3,0,6,150,2,16,3,0,6,149,2,16,3,0,6,148,2,16,3,0,6, +147,2,16,3,0,6,146,2,16,3,0,6,145,2,16,3,0,6,144,2,16,3,0,6,143,2,16,3,0,6,142, +2,16,3,0,6,141,2,16,3,0,6,140,2,16,3,0,6,139,2,16,3,0,6,138,2,16,3,0,6,137,2, +16,3,0,6,136,2,16,3,0,6,135,2,16,3,0,6,134,2,16,3,0,6,133,2,16,3,0,6,132,2,16, +3,0,6,131,2,16,3,0,6,130,2,16,3,0,6,129,2,16,43,25,3,0,7,1,1,2,6,2,6,3,89,1, +0,27,1,1,3,5,1,1,2,6,14,0,7,9,5,9,5,6,10,4,6,5,7,5,10,4,2,9,4,17,2,16,59,25, +3,0,7,1,1,2,6,2,6,3,25,2,0,18,1,1,2,5,14,0,6,9,5,8,5,4,5,6,4,2,8,3,89,3,0,21, +1,1,3,7,6,5,4,5,4,3,3,1,1,5,4,14,0,5,2,7,4,17,2,16,52,25,3,0,7,1,1,2,6,2,6,3, +89,3,0,21,1,1,3,7,6,5,4,5,4,3,3,1,1,2,4,14,1,5,2,7,4,25,2,0,2,24,4,25,1,0,5, +14,1,4,24,4,17,2,16,54,25,3,0,7,1,1,2,6,2,6,3,25,2,0,18,1,1,2,5,14,1,6,9,5,8, +5,4,5,6,4,2,8,3,89,2,0,16,1,1,3,6,6,4,4,4,3,3,9,5,4,2,6,2,17,2,16,3,0,6,128, +2,16,3,0,6,127,2,16,37,25,3,0,7,1,1,2,6,2,6,3,89,2,0,21,1,2,2,6,1,1,2,7,5,6, +9,5,6,5,4,5,7,4,2,9,4,17,2,16,3,0,6,126,2,16,86,25,3,0,7,1,1,2,6,2,6,3,25,2, +0,2,24,4,89,2,0,21,1,2,2,6,1,1,2,7,5,6,9,5,6,5,4,5,7,4,2,9,4,25,1,0,39,1,1,3, +4,208,4,2,0,24,4,1,2,3,5,4,3,2,4,3,6,1,2,5,4,1,1,2,8,9,5,9,5,6,3,8,5,2,9,3,17, +2,16,3,0,6,125,2,16,3,0,6,124,2,16,3,0,6,123,2,16,3,0,6,122,2,16,3,0,6,121,2, +16,3,0,6,120,2,16,3,0,6,119,2,16,3,0,6,118,2,16,3,0,6,117,2,16,3,0,6,116,2,16, +3,0,6,115,2,16,3,0,6,114,2,16,3,0,6,113,2,16,3,0,6,112,2,16,3,0,6,111,2,16,3, +0,6,110,2,16,3,0,6,109,2,16,3,0,6,108,2,16,3,0,6,107,2,16,3,0,6,106,2,16,3,0, +6,105,2,16,3,0,6,104,2,16,3,0,6,103,2,16,3,0,6,102,2,16,3,0,6,101,2,16,3,0,6, +100,2,16,3,0,6,99,2,16,3,0,6,98,2,16,3,0,6,97,2,16,3,0,6,96,2,16,3,0,6,95,2, +16,3,0,6,94,2,16,3,0,6,93,2,16,54,25,1,0,49,1,2,2,4,1,1,3,5,1,1,4,6,1,1,5,7, +1,1,6,8,1,1,7,9,3,7,2,3,5,6,7,8,9,10,1,1,2,5,9,4,8,5,3,4,10,3,2,8,3,17,2,16, +3,0,6,92,2,16,67,25,1,0,62,1,2,2,4,1,1,2,5,1,1,3,6,1,1,4,7,1,1,5,8,1,1,6,9,1, +1,7,10,1,1,8,11,1,1,9,12,3,10,2,3,5,6,7,8,9,10,11,12,13,5,4,8,3,4,5,6,5,13,3, +2,8,3,17,2,16,3,0,6,91,2,16,3,0,6,90,2,16,3,0,6,89,2,16,3,0,6,88,2,16,3,0,6, +87,2,16,3,0,6,86,2,16,3,0,6,85,2,16,3,0,6,84,2,16,3,0,6,83,2,16,3,0,6,82,2,16, +3,0,6,81,2,16,3,0,6,80,2,16,3,0,6,79,2,16,3,0,6,78,2,16,3,0,6,77,2,16,3,0,6, +76,2,16,3,0,6,75,2,16,3,0,6,74,2,16,3,0,6,73,2,16,3,0,6,72,2,16,3,0,6,71,2,16, +3,0,6,70,2,16,3,0,6,69,2,16,3,0,6,68,2,16,3,0,6,67,2,16,3,0,6,66,2,16,3,0,6, +65,2,16,3,0,6,64,2,16,3,0,6,63,2,16,3,0,6,62,2,16,3,0,6,61,2,16,3,0,6,60,2,16, +3,0,6,59,2,16,3,0,6,58,2,16,3,0,6,57,2,16,3,0,6,56,2,16,3,0,6,55,2,16,3,0,6, +54,2,16,3,0,6,53,2,16,3,0,6,52,2,16,3,0,6,51,2,16,3,0,6,50,2,16,3,0,6,49,2,16, +3,0,6,48,2,16,3,0,6,47,2,16,3,0,6,46,2,16,3,0,6,45,2,16,3,0,6,44,2,16,3,0,6, +43,2,16,3,0,6,42,2,16,3,0,6,41,2,16,3,0,6,40,2,16,3,0,6,39,2,16,3,0,6,38,2,16, +3,0,6,37,2,16,3,0,6,36,2,16,3,0,6,35,2,16,3,0,6,34,2,16,3,0,6,33,2,16,3,0,6, +32,2,16,3,0,6,31,2,16,3,0,6,30,2,16,3,0,6,29,2,16,3,0,6,28,2,16,32,25,1,0,27, +1,1,2,4,51,3,4,5,14,21,6,1,1,3,7,35,6,7,5,3,1,1,4,9,2,9,1,17,2,16,3,0,6,27,2, +16,3,0,6,26,2,16,31,25,1,0,26,1,1,2,4,51,3,4,5,14,21,6,14,5,7,35,6,7,5,3,1,1, +3,9,2,9,1,17,2,16,3,0,6,25,2,16,3,0,6,24,2,16,3,0,6,23,2,16,3,0,6,22,2,16,3, +0,6,21,2,16,3,0,6,20,2,16,3,0,6,19,2,16,3,0,6,18,2,16,3,0,6,17,2,16,24,25,1, +0,19,14,22,4,1,1,2,5,35,4,5,3,3,1,1,3,7,2,7,1,17,2,16,3,0,6,16,2,16,3,0,6,15, +2,16,3,0,6,14,2,16,3,0,6,13,2,16,3,0,6,12,2,16,3,0,6,11,2,16,3,0,6,10,2,16,3, +0,6,9,2,16,3,0,6,8,2,16,3,0,6,7,2,16,3,0,6,6,2,16,3,0,6,5,2,16,3,0,6,4,2,16, +3,0,6,3,2,16,3,0,6,2,2,16,3,0,6,1,2,16,3,0,6,0,2,16,3,0,5,255,2,16,3,0,5,254, +2,16,3,0,5,253,2,16,3,0,5,252,2,16,3,0,5,251,2,16,3,0,5,250,2,16,3,0,5,249,2, +16,3,0,5,248,2,16,3,0,5,247,2,16,3,0,5,246,2,16,3,0,5,245,2,16,3,0,5,244,2,16, +3,0,5,243,2,16,22,25,3,0,17,1,1,2,6,6,5,3,5,4,3,3,9,5,4,2,6,2,17,2,16,3,0,5, +242,2,16,3,0,5,241,2,16,3,0,5,240,2,16,3,0,5,239,2,16,3,0,5,238,2,16,3,0,5,237, +2,16,3,0,5,236,2,16,3,0,5,235,2,16,3,0,5,234,2,16,3,0,5,233,2,16,3,0,5,232,2, +16,24,25,1,0,19,14,11,4,1,1,2,5,35,4,5,3,3,1,1,3,7,2,7,1,17,2,16,3,0,5,231,2, +16,3,0,5,230,2,16,3,0,5,229,2,16,3,0,5,228,2,16,3,0,5,227,2,16,3,0,5,226,2,16, +3,0,5,225,2,16,3,0,5,224,2,16,3,0,5,223,2,16,3,0,5,222,2,16,3,0,5,221,2,16,3, +0,5,220,2,16,3,0,5,219,2,16,3,0,5,218,2,16,3,0,5,217,2,16,3,0,5,216,2,16,53, +25,1,0,48,1,1,3,4,52,4,5,1,1,2,6,51,5,6,7,14,15,8,35,8,3,7,9,53,4,5,1,1,5,6, +1,1,6,12,4,4,2,2,9,12,3,1,1,4,4,2,6,4,17,2,16,3,0,5,215,2,16,3,0,5,214,2,16, +3,0,5,213,2,16,3,0,5,212,2,16,40,25,1,0,35,1,1,3,4,1,1,2,5,51,4,5,6,1,1,4,7, +51,7,6,8,14,15,9,35,9,3,8,3,1,1,5,11,2,11,1,17,2,16,3,0,5,211,2,16,3,0,5,210, +2,16,3,0,5,209,2,16,3,0,5,208,2,16,3,0,5,207,2,16,3,0,5,206,2,16,3,0,5,205,2, +16,3,0,5,204,2,16,3,0,5,203,2,16,3,0,5,202,2,16,3,0,5,201,2,16,3,0,5,200,2,16, +3,0,5,199,2,16,3,0,5,198,2,16,3,0,5,197,2,16,3,0,5,196,2,16,3,0,5,195,2,16,3, +0,5,194,2,16,3,0,5,193,2,16,3,0,5,192,2,16,3,0,5,191,2,16,3,0,5,190,2,16,3,0, +5,189,2,16,3,0,5,188,2,16,3,0,5,187,2,16,3,0,5,186,2,16,3,0,5,185,2,16,3,0,5, +184,2,16,3,0,5,183,2,16,3,0,5,182,2,16,3,0,5,181,2,16,3,0,5,180,2,16,3,0,5,179, +2,16,3,0,5,178,2,16,3,0,5,177,2,16,3,0,5,176,2,16,3,0,5,175,2,16,3,0,5,174,2, +16,3,0,5,173,2,16,3,0,5,172,2,16,3,0,5,171,2,16,3,0,5,170,2,16,3,0,5,169,2,16, +3,0,5,168,2,16,3,0,5,167,2,16,3,0,5,166,2,16,3,0,5,165,2,16,3,0,5,164,2,16,3, +0,5,163,2,16,3,0,5,162,2,16,3,0,5,161,2,16,3,0,5,160,2,16,3,0,5,159,2,16,3,0, +5,158,2,16,3,0,5,157,2,16,3,0,5,156,2,16,3,0,5,155,2,16,3,0,5,154,2,16,3,0,5, +153,2,16,3,0,5,152,2,16,3,0,5,151,2,16,3,0,5,150,2,16,3,0,5,149,2,16,3,0,5,148, +2,16,3,0,5,147,2,16,3,0,5,146,2,16,3,0,5,145,2,16,3,0,5,144,2,16,3,0,5,143,2, +16,3,0,5,142,2,16,3,0,5,141,2,16,3,0,5,140,2,16,3,0,5,139,2,16,3,0,5,138,2,16, +3,0,5,137,2,16,3,0,5,136,2,16,3,0,5,135,2,16,3,0,5,134,2,16,3,0,5,133,2,16,3, +0,5,132,2,16,3,0,5,131,2,16,3,0,5,130,2,16,3,0,5,129,2,16,3,0,5,128,2,16,3,0, +5,127,2,16,3,0,5,126,2,16,3,0,5,125,2,16,3,0,5,124,2,16,3,0,5,123,2,16,3,0,5, +122,2,16,3,0,5,121,2,16,3,0,5,120,2,16,3,0,5,119,2,16,3,0,5,118,2,16,3,0,5,117, +2,16,3,0,5,116,2,16,3,0,5,115,2,16,3,0,5,114,2,16,3,0,5,113,2,16,3,0,5,112,2, +16,3,0,5,111,2,16,3,0,5,110,2,16,3,0,5,109,2,16,3,0,5,108,2,16,3,0,5,107,2,16, +3,0,5,106,2,16,3,0,5,105,2,16,3,0,5,104,2,16,3,0,5,103,2,16,3,0,5,102,2,16,3, +0,5,101,2,16,3,0,5,100,2,16,3,0,5,99,2,16,3,0,5,98,2,16,3,0,5,97,2,16,3,0,5, +96,2,16,3,0,5,95,2,16,3,0,5,94,2,16,3,0,5,93,2,16,3,0,5,92,2,16,3,0,5,91,2,16, +3,0,5,90,2,16,3,0,5,89,2,16,3,0,5,88,2,16,3,0,5,87,2,16,3,0,5,86,2,16,3,0,5, +85,2,16,3,0,5,84,2,16,3,0,5,83,2,16,3,0,5,82,2,16,3,0,5,81,2,16,3,0,5,80,2,16, +3,0,5,79,2,16,3,0,5,78,2,16,3,0,5,77,2,16,3,0,5,76,2,16,3,0,5,75,2,16,3,0,5, +74,2,16,3,0,5,73,2,16,3,0,5,72,2,16,3,0,5,71,2,16,3,0,5,70,2,16,3,0,5,69,2,16, +3,0,5,68,2,16,3,0,5,67,2,16,3,0,5,66,2,16,3,0,5,65,2,16,3,0,5,64,2,16,3,0,5, +63,2,16,3,0,5,62,2,16,3,0,5,61,2,16,3,0,5,60,2,16,3,0,5,59,2,16,3,0,5,58,2,16, +58,25,6,0,53,80,5,36,0,208,6,11,0,53,5,9,205,6,9,9,5,2,8,6,53,4,9,53,5,5,52, +4,11,51,11,7,7,141,6,9,9,4,2,8,6,1,1,2,9,6,4,3,7,3,3,2,9,2,17,2,16,21,25,2,0, +16,1,1,2,5,205,6,77,7,5,5,8,4,5,2,8,6,17,2,16,20,25,3,0,15,32,5,2,6,7,51,4,7, +8,51,6,8,9,24,9,17,2,16,25,25,2,0,20,52,3,5,53,3,6,51,6,4,4,1,1,2,8,9,5,3,2, +8,2,17,2,16,85,25,3,0,80,32,4,2,6,7,80,6,18,0,52,6,8,53,6,9,51,9,7,4,5,3,7,8, +3,2,7,2,80,7,37,0,53,7,8,80,8,15,0,1,1,3,9,7,3,4,3,3,9,7,4,2,9,2,52,7,9,1,1, +2,4,5,3,7,9,3,2,7,2,1,1,2,4,5,3,7,5,3,2,7,2,17,2,16,3,0,5,57,2,16,3,0,5,56,2, +16,3,0,5,55,2,16,3,0,5,54,2,16,3,0,5,53,2,16,3,0,5,52,2,16,3,0,5,51,2,16,3,0, +5,50,2,16,3,0,5,49,2,16,3,0,5,48,2,16,3,0,5,47,2,16,3,0,5,46,2,16,3,0,5,45,2, +16,3,0,5,44,2,16,3,0,5,43,2,16,3,0,5,42,2,16,3,0,5,41,2,16,3,0,5,40,2,16,3,0, +5,39,2,16,57,25,1,0,52,208,3,39,0,1,1,3,4,1,1,2,5,34,4,5,6,208,6,14,0,1,2,2, +7,1,1,4,3,9,6,4,2,7,2,1,1,4,7,205,3,2,7,1,1,1,4,4,205,3,2,4,1,17,2,16,41,25, +1,0,36,1,1,2,4,52,4,5,53,5,6,51,3,6,7,53,4,8,51,7,8,9,1,1,3,10,51,10,9,3,1,1, +4,12,2,12,1,17,2,16,97,25,1,0,92,208,3,44,0,1,1,4,4,1,1,2,5,51,4,5,6,1,2,2,7, +1,1,6,8,1,1,7,9,4,5,2,4,8,6,9,3,1,1,5,11,5,4,5,11,4,2,7,3,1,1,6,4,52,4,5,1,2, +2,6,1,1,2,7,1,1,3,8,1,1,7,9,3,7,2,3,7,4,8,5,9,3,1,1,4,4,1,1,5,5,2,6,3,17,2,16, +53,25,1,0,48,1,2,2,4,1,1,2,5,1,1,3,6,1,1,4,7,1,1,5,8,1,1,6,9,3,8,2,3,5,6,7,3, +8,9,10,5,4,8,3,5,5,7,4,10,3,2,8,3,17,2,16,37,25,5,0,32,80,4,16,0,1,1,2,8,6,7, +3,5,7,6,4,3,3,2,8,2,51,6,5,8,77,9,51,8,9,10,24,10,17,2,16,31,25,1,0,26,1,1,2, +4,14,1,5,40,4,5,6,7,1,1,4,5,1,1,3,3,9,6,4,2,5,3,17,2,16,35,25,1,0,30,37,3,4, +208,4,14,0,1,2,2,5,1,1,2,3,14,0,4,2,5,2,1,1,2,5,205,3,2,5,1,17,2,16,76,25,1, +0,71,208,3,32,0,1,2,4,4,1,1,4,5,3,3,2,5,5,6,14,10,7,1,1,2,5,9,4,9,5,6,3,7,4, +2,9,3,1,2,2,4,1,1,2,5,1,1,4,6,1,1,3,7,4,5,2,3,5,6,7,3,14,1,9,5,4,7,9,4,2,7,2, +17,2,16,28,25,1,0,23,1,1,2,4,53,4,5,1,1,4,6,1,1,3,3,5,5,4,6,5,2,5,3,17,2,16, +44,25,1,0,39,1,2,2,4,1,1,2,5,1,1,3,6,1,1,4,7,4,5,2,3,5,6,7,8,1,2,4,5,9,4,10, +5,3,4,8,3,2,10,3,17,2,16,25,25,3,0,20,80,4,14,0,1,1,2,6,6,5,3,4,3,5,3,2,6,2, +24,4,17,2,16,37,25,1,0,32,1,1,2,4,53,4,5,1,2,2,6,1,1,3,7,1,1,4,8,4,4,2,3,7,8, +3,9,5,4,2,6,2,17,2,16,37,25,1,0,32,1,2,2,4,1,1,2,5,1,1,3,6,1,1,4,7,3,5,2,3,5, +6,7,3,5,4,7,5,4,2,7,2,17,2,16,77,25,1,0,72,208,3,36,0,1,2,4,4,1,1,3,5,1,1,4, +6,4,4,2,5,5,6,7,1,1,2,8,5,4,9,3,5,5,7,3,8,4,2,9,3,1,2,2,4,1,1,2,5,1,1,3,6,1, +1,4,7,3,5,2,3,5,6,7,3,5,4,7,5,4,2,7,2,17,2,16,37,25,3,0,32,80,4,14,0,1,1,4,6, +6,5,5,4,3,5,3,2,6,1,1,1,2,6,6,5,3,4,3,5,3,2,6,1,17,2,16,27,25,1,0,22,1,2,2,4, +1,1,2,5,14,1,6,9,4,7,5,5,3,6,4,2,7,2,17,2,16,17,25,1,0,12,1,1,2,4,6,3,3,3,3, +2,4,1,17,2,16,3,0,5,38,2,16,3,0,5,37,2,16,3,0,5,36,2,16,3,0,5,35,2,16,3,0,5, +34,2,16,3,0,5,33,2,16,3,0,5,32,2,16,3,0,5,31,2,16,3,0,5,30,2,16,3,0,5,29,2,16, +3,0,5,28,2,16,3,0,5,27,2,16,3,0,5,26,2,16,3,0,5,25,2,16,3,0,5,24,2,16,3,0,5, +23,2,16,36,89,2,0,31,1,1,2,6,6,4,3,4,3,7,1,1,4,4,1,1,5,9,5,6,10,5,6,5,7,3,9, +5,2,10,4,17,2,16,3,0,5,22,2,16,61,25,2,0,19,1,1,2,5,1,1,3,6,9,5,8,5,4,5,6,4, +2,8,3,89,1,0,33,1,1,4,5,6,3,5,3,6,1,1,6,7,1,1,7,8,9,5,9,5,6,3,4,6,5,7,4,8,5, +2,9,4,17,2,16,3,0,5,21,2,16,3,0,5,20,2,16,34,25,2,0,29,28,4,5,1,1,2,6,14,0,7, +14,1,8,9,6,10,5,4,6,7,4,5,5,7,8,5,2,10,5,17,2,16,28,25,1,0,23,1,2,2,4,1,1,2, +5,1,2,3,6,9,4,7,5,5,3,6,4,2,7,2,17,2,16,34,25,2,0,29,28,4,5,1,1,2,6,14,0,7,14, +2,8,9,6,10,5,4,6,7,4,5,5,7,8,5,2,10,5,17,2,16,14,25,2,0,9,14,1,5,47,4,5,6,24, +6,17,2,16,3,0,5,19,2,16,3,0,5,18,2,16,3,0,5,17,2,16,3,0,5,16,2,16,3,0,5,15,2, +16,3,0,5,14,2,16,3,0,5,13,2,16,3,0,5,12,2,16,3,0,5,11,2,16,3,0,5,10,2,16,3,0, +5,9,2,16,3,0,5,8,2,16,3,0,5,7,2,16,3,0,5,6,2,16,3,0,5,5,2,16,3,0,5,4,2,16,3, +0,5,3,2,16,3,0,5,2,2,16,3,0,5,1,2,16,3,0,5,0,2,16,3,0,4,255,2,16,3,0,4,254,2, +16,3,0,4,253,2,16,3,0,4,252,2,16,3,0,4,251,2,16,3,0,4,250,2,16,3,0,4,249,2,16, +3,0,4,248,2,16,26,25,1,0,21,1,1,3,4,1,1,2,5,205,6,9,4,7,5,5,3,6,4,2,7,2,17,2, +16,43,25,1,0,38,1,2,2,4,1,1,2,5,1,1,3,6,3,4,2,3,5,6,7,1,2,4,8,77,5,5,4,10,3, +6,5,7,3,8,4,2,10,4,17,2,16,3,0,4,247,2,16,3,0,4,246,2,16,3,0,4,245,2,16,3,0, +4,244,2,16,3,0,4,243,2,16,3,0,4,242,2,16,3,0,4,241,2,16,3,0,4,240,2,16,3,0,4, +239,2,16,3,0,4,238,2,16,3,0,4,237,2,16,3,0,4,236,2,16,3,0,4,235,2,16,3,0,4,234, +2,16,3,0,4,233,2,16,3,0,4,232,2,16,3,0,4,231,2,16,3,0,4,230,2,16,3,0,4,229,2, +16,3,0,4,228,2,16,3,0,4,227,2,16,3,0,4,226,2,16,3,0,4,225,2,16,3,0,4,224,2,16, +3,0,4,223,2,16,3,0,4,222,2,16,3,0,4,221,2,16,3,0,4,220,2,16,3,0,4,219,2,16,3, +0,4,218,2,16,3,0,4,217,2,16,3,0,4,216,2,16,3,0,4,215,2,16,3,0,4,214,2,16,3,0, +4,213,2,16,3,0,4,212,2,16,3,0,4,211,2,16,3,0,4,210,2,16,3,0,4,209,2,16,3,0,4, +208,2,16,3,0,4,207,2,16,3,0,4,206,2,16,3,0,4,205,2,16,3,0,4,204,2,16,3,0,4,203, +2,16,3,0,4,202,2,16,3,0,4,201,2,16,3,0,4,200,2,16,3,0,4,199,2,16,3,0,4,198,2, +16,3,0,4,197,2,16,3,0,4,196,2,16,3,0,4,195,2,16,3,0,4,194,2,16,3,0,4,193,2,16, +3,0,4,192,2,16,3,0,4,191,2,16,3,0,4,190,2,16,3,0,4,189,2,16,3,0,4,188,2,16,3, +0,4,187,2,16,3,0,4,186,2,16,3,0,4,185,2,16,3,0,4,184,2,16,3,0,4,183,2,16,3,0, +4,182,2,16,3,0,4,181,2,16,3,0,4,180,2,16,3,0,4,179,2,16,3,0,4,178,2,16,3,0,4, +177,2,16,3,0,4,176,2,16,3,0,4,175,2,16,3,0,4,174,2,16,3,0,4,173,2,16,3,0,4,172, +2,16,3,0,4,171,2,16,3,0,4,170,2,16,3,0,4,169,2,16,3,0,4,168,2,16,3,0,4,167,2, +16,3,0,4,166,2,16,3,0,4,165,2,16,3,0,4,164,2,16,3,0,4,163,2,16,3,0,4,162,2,16, +3,0,4,161,2,16,3,0,4,160,2,16,3,0,4,159,2,16,3,0,4,158,2,16,3,0,4,157,2,16,3, +0,4,156,2,16,3,0,4,155,2,16,3,0,4,154,2,16,3,0,4,153,2,16,3,0,4,152,2,16,3,0, +4,151,2,16,3,0,4,150,2,16,3,0,4,149,2,16,3,0,4,148,2,16,3,0,4,147,2,16,3,0,4, +146,2,16,3,0,4,145,2,16,3,0,4,144,2,16,3,0,4,143,2,16,3,0,4,142,2,16,3,0,4,141, +2,16,3,0,4,140,2,16,3,0,4,139,2,16,3,0,4,138,2,16,3,0,4,137,2,16,3,0,4,136,2, +16,3,0,4,135,2,16,3,0,4,134,2,16,3,0,4,133,2,16,3,0,4,132,2,16,3,0,4,131,2,16, +3,0,4,130,2,16,3,0,4,129,2,16,3,0,4,128,2,16,3,0,4,127,2,16,27,25,1,0,22,1,2, +2,4,1,1,2,5,14,42,6,9,4,7,5,5,3,6,4,2,7,2,17,2,16,25,25,4,0,20,1,1,2,7,6,3,3, +3,3,1,1,4,4,1,1,5,5,2,7,3,17,2,16,3,0,4,126,2,16,48,25,1,0,43,1,2,2,4,1,1,2, +5,1,1,3,6,1,1,4,7,1,1,5,8,3,6,2,3,5,6,7,8,9,14,1,5,9,4,8,5,3,4,9,3,2,8,3,17, +2,16,3,0,4,125,2,16,3,0,4,124,2,16,19,25,1,0,14,1,1,2,4,141,5,5,4,7,5,4,2,7, +2,17,2,16,19,25,1,0,14,1,1,2,4,205,5,5,4,7,5,4,2,7,2,17,2,16,12,25,1,0,7,1,1, +2,4,2,4,1,17,2,16,35,25,1,0,30,1,2,2,4,1,1,2,5,1,1,3,6,4,4,2,3,5,6,7,9,4,8,5, +3,4,7,3,2,8,2,17,2,16,37,25,1,0,32,1,1,2,4,1,1,4,5,1,1,5,6,4,4,2,2,5,6,7,23, +2,1,4,7,4,1,1,3,9,2,9,2,17,2,16,43,25,1,0,38,1,2,2,4,1,1,4,5,4,3,2,3,5,6,1,1, +3,7,1,1,2,5,9,4,9,5,6,10,3,6,5,7,4,10,3,2,9,4,17,2,16,46,25,1,0,41,1,2,2,4,1, +1,2,5,1,1,3,6,1,1,4,7,1,1,5,8,3,7,2,3,5,3,6,7,8,9,9,4,7,5,3,4,9,3,2,7,2,17,2, +16,22,25,4,0,17,1,1,2,7,6,6,3,6,5,4,3,3,205,6,2,7,4,17,2,16,121,25,2,0,116,208, +4,58,0,1,1,2,5,51,4,5,6,1,1,3,7,53,7,8,1,1,8,9,1,1,7,10,1,1,6,11,1,1,5,12,1, +1,4,13,5,6,4,3,6,5,8,7,10,3,5,9,10,11,5,5,12,8,13,9,2,10,8,1,1,3,5,53,5,6,1, +1,8,7,1,1,7,8,1,1,2,9,1,1,6,10,1,1,5,11,1,1,4,12,5,10,5,7,10,5,6,7,3,6,5,8,3, +9,4,5,11,8,12,9,2,10,8,17,2,16,51,25,8,0,46,80,7,29,0,52,7,11,1,1,2,12,7,9,3, +4,7,9,8,5,3,10,3,9,6,4,5,8,6,11,5,2,12,4,5,6,7,5,6,5,4,5,9,4,2,4,5,17,2,16,37, +25,1,0,32,1,1,5,4,1,1,4,5,1,1,3,6,1,1,2,7,9,5,10,5,6,5,7,6,5,3,7,10,3,2,4,5, +17,2,16,56,25,1,0,51,1,2,2,4,1,1,7,5,1,1,6,6,1,1,5,7,1,1,4,8,1,1,3,9,1,1,2,10, +5,4,12,6,4,5,3,6,5,3,5,7,5,8,7,5,9,8,10,9,2,12,7,17,2,16,70,25,1,0,65,1,2,2, +4,1,1,3,5,1,1,4,6,1,1,5,7,1,1,6,8,1,1,7,9,1,1,8,10,1,1,9,11,3,9,2,3,5,6,7,8, +9,10,11,12,1,1,2,13,1,2,4,5,5,4,9,3,6,5,12,3,13,4,2,9,4,17,2,16,46,25,4,0,41, +80,4,35,0,52,4,7,14,1,8,47,7,8,9,8,9,5,15,0,52,4,10,53,4,4,7,4,2,10,3,3,2,6, +4,53,4,10,24,10,24,4,17,2,16,59,25,1,0,54,1,2,2,4,1,1,7,5,1,1,6,6,1,1,5,7,1, +1,4,8,1,1,3,9,1,1,2,10,9,4,12,5,5,13,3,5,5,6,4,7,6,5,8,7,9,8,5,10,9,13,3,2,12, +7,17,2,16,55,25,1,0,50,1,2,2,4,1,1,3,5,1,1,4,6,1,1,5,7,1,1,6,8,1,1,7,9,3,8,2, +3,5,6,7,8,3,9,3,1,1,2,11,9,4,8,5,7,5,11,4,2,8,3,17,2,16,30,25,7,0,25,1,1,2,10, +6,8,3,6,9,8,4,7,3,3,9,5,8,5,4,5,8,4,2,10,3,17,2,16,20,25,2,0,15,1,1,2,5,51,5, +4,4,1,1,3,7,2,7,2,17,2,16,57,25,4,0,52,80,4,38,0,52,4,7,14,1,8,47,7,8,9,8,5, +9,12,0,53,4,4,7,4,2,7,3,3,2,6,4,53,4,4,5,3,8,7,3,2,8,2,205,7,5,3,8,7,3,2,8,2, +17,2,16,26,25,9,0,21,23,2,1,4,5,12,51,12,9,6,9,8,5,5,10,7,11,4,2,4,5,17,2,16, +45,25,9,0,40,1,1,3,12,23,2,3,12,5,6,7,13,23,2,1,4,13,14,1,1,2,15,5,4,7,8,4,5, +9,5,10,6,5,11,9,14,8,2,15,7,17,2,16,46,25,1,0,41,1,1,2,4,77,5,51,4,5,6,1,2,2, +7,1,1,4,8,1,1,5,9,3,4,2,3,8,9,10,1,1,3,5,5,3,4,10,3,2,7,4,17,2,16,88,25,3,0, +83,1,2,2,6,8,5,6,42,0,1,2,7,7,8,5,7,18,0,1,2,10,8,4,4,2,11,4,3,3,1,2,12,4,2, +8,2,1,2,8,8,1,1,3,5,1,2,9,6,2,8,4,1,2,3,7,1,1,2,8,1,1,3,9,3,6,2,4,8,9,4,3,3, +1,2,5,5,1,2,6,6,2,7,4,17,2,16,61,25,9,0,56,52,6,12,23,2,1,12,7,13,7,4,5,12,5, +14,23,2,1,4,14,15,51,15,8,16,51,13,16,17,53,6,5,1,1,2,19,7,6,3,9,17,3,11,3,6, +4,4,4,12,6,9,10,4,2,19,4,17,2,16,55,25,1,0,50,1,2,2,4,1,1,4,5,1,1,5,6,1,1,6, +7,1,1,7,8,4,6,2,3,5,6,7,8,9,1,1,3,10,1,1,2,5,5,4,12,3,6,5,9,3,10,4,2,12,4,17, +2,16,21,25,1,0,16,1,1,2,4,1,2,2,5,5,4,7,5,4,2,7,2,17,2,16,80,25,1,0,75,1,1,4, +4,1,1,9,5,3,3,2,5,5,6,23,2,1,4,6,7,1,1,2,8,51,7,8,9,1,2,2,10,1,1,5,11,1,1,6, +12,1,1,7,13,1,1,8,14,3,8,2,3,4,11,12,9,13,14,15,1,2,4,4,1,1,3,6,5,3,5,15,3,2, +10,4,17,2,16,33,25,9,0,28,1,1,2,12,6,10,3,8,6,4,10,9,3,11,5,3,1,1,4,6,5,4,5, +10,4,2,12,4,17,2,16,43,25,1,0,38,1,1,4,4,4,4,2,3,3,4,5,1,1,3,6,80,6,5,0,205, +3,2,5,1,1,2,2,7,1,1,2,4,9,5,3,2,7,2,17,2,16,33,25,9,0,28,6,5,2,9,8,5,12,23,2, +1,4,12,13,51,13,8,5,9,9,6,5,10,7,11,4,2,4,5,17,2,16,79,25,2,0,74,208,4,38,0, +1,1,2,5,52,5,6,53,5,7,51,4,7,8,51,6,8,5,1,1,5,4,1,1,4,11,1,1,3,6,5,3,7,11,3, +2,4,5,1,1,5,5,1,1,4,6,1,1,2,7,1,1,3,8,9,5,4,5,7,5,3,7,5,6,3,8,6,2,4,5,17,2,16, +49,25,9,0,44,6,3,4,5,12,23,2,1,4,12,13,51,13,8,14,23,2,1,4,7,15,1,1,2,16,7,6, +3,14,9,3,11,3,9,6,5,5,10,4,15,6,2,16,4,17,2,16,37,25,1,0,32,1,1,5,4,1,1,4,5, +1,1,3,6,1,1,2,7,9,3,9,5,4,3,5,4,5,6,5,7,6,2,9,4,17,2,16,54,25,1,0,49,1,1,2,4, +51,4,3,5,1,2,2,6,1,1,3,7,1,1,4,4,1,1,5,9,4,6,2,3,7,4,5,9,3,1,2,4,5,1,2,5,12, +5,6,9,12,6,2,9,4,17,2,16,31,25,9,0,26,23,2,1,4,5,12,1,1,2,13,6,6,3,12,11,10, +3,3,5,8,4,9,5,2,13,3,17,2,16,18,25,9,0,13,77,12,9,6,5,5,11,4,12,6,2,4,5,17,2, +16,42,25,9,0,37,7,3,5,5,12,23,2,1,4,12,13,51,13,8,14,1,1,2,15,7,6,3,9,14,3,11, +3,1,1,4,5,9,10,4,2,15,4,17,2,16,129,51,25,2,0,174,208,3,66,0,1,1,4,5,1,1,9,6, +4,4,2,7,3,6,7,23,2,1,5,7,8,1,1,3,9,51,8,9,10,1,2,5,11,1,1,6,12,1,1,7,13,1,1, +8,14,4,6,2,6,12,10,13,14,3,1,1,5,16,5,4,6,16,4,2,11,4,1,1,2,5,208,5,47,0,1,1, +4,6,1,1,9,7,4,3,2,4,7,8,23,2,1,6,8,9,1,1,3,10,51,9,10,5,1,1,8,4,1,1,7,3,1,1, +6,6,1,1,5,7,2,4,5,1,2,2,6,1,1,6,7,1,1,3,8,1,1,7,9,1,1,8,10,4,6,2,3,7,8,9,10, +3,1,1,5,4,1,1,4,5,1,1,9,14,5,6,9,14,6,2,9,4,17,2,16,67,25,1,0,62,1,2,2,4,1,1, +2,5,1,1,3,6,1,1,4,7,1,1,5,8,1,1,6,9,1,1,7,10,1,1,8,11,1,1,9,12,3,10,2,3,5,6, +7,8,9,10,11,12,13,205,5,9,4,8,5,3,4,13,3,2,8,3,17,2,16,33,25,9,0,28,1,1,2,12, +6,10,3,7,8,4,10,9,3,11,5,3,1,1,4,6,5,4,5,10,4,2,12,4,17,2,16,74,25,1,0,69,1, +2,3,4,1,2,4,5,1,1,3,6,1,1,2,7,23,2,3,4,5,6,7,8,1,1,5,9,23,2,1,9,8,10,1,2,2,11, +1,1,9,3,1,1,8,4,1,1,7,5,1,1,6,6,1,1,4,16,9,9,7,5,10,8,16,9,2,11,7,17,2,16,28, +25,9,0,23,1,1,2,12,6,10,3,7,6,11,4,10,9,8,3,3,1,1,4,4,2,12,2,17,2,16,26,25,1, +0,21,1,2,2,4,1,1,2,5,23,2,1,4,5,4,1,1,3,7,2,7,2,17,2,16,48,25,2,0,43,1,1,2,5, +1,1,7,6,3,3,2,2,6,7,23,2,1,5,7,8,1,1,3,9,51,8,9,5,1,1,6,4,1,1,5,6,1,1,4,7,2, +4,5,17,2,16,42,25,9,0,37,6,8,3,4,8,10,9,11,5,12,7,4,2,12,5,13,23,2,1,4,13,14, +51,14,8,5,9,9,6,5,10,7,11,4,2,4,5,17,2,16,47,25,2,0,42,1,1,2,5,1,1,6,6,4,4,2, +2,3,6,7,23,2,1,5,7,8,51,8,4,4,1,1,5,10,1,1,4,3,77,5,1,1,3,6,2,10,4,17,2,16,58, +25,9,0,53,208,6,22,0,1,1,3,12,6,8,4,7,4,10,3,11,5,3,5,8,4,9,5,2,12,3,6,3,2,5, +12,23,2,1,4,12,13,51,7,8,14,51,13,14,4,5,9,5,10,6,2,11,4,17,2,16,24,25,1,0,19, +1,1,3,4,1,1,2,5,51,4,5,4,1,1,4,7,2,7,2,17,2,16,54,25,1,0,49,1,1,7,4,1,1,8,5, +4,5,2,2,3,4,5,6,23,2,1,4,6,7,1,1,2,8,51,7,8,5,1,1,6,4,1,1,5,3,1,1,4,6,1,1,3, +7,2,4,5,17,2,16,69,25,1,0,64,1,2,2,4,1,1,3,5,1,1,4,6,1,1,5,7,1,1,6,8,1,1,7,9, +1,1,8,10,1,1,9,11,3,9,2,3,5,6,7,8,9,10,11,12,1,1,2,13,9,4,9,5,3,5,7,6,5,12,3, +13,4,2,9,4,17,2,16,18,25,3,0,13,14,1,6,47,5,6,7,51,7,4,8,24,8,17,2,16,35,25, +9,0,30,1,1,4,12,1,1,2,13,6,10,3,12,8,10,9,3,11,4,5,3,77,5,5,8,6,12,4,2,13,4, +17,2,16,43,25,9,0,38,7,4,5,6,5,12,23,2,1,4,12,13,51,13,8,14,1,1,2,15,7,6,3,9, +14,3,11,3,1,1,4,5,9,10,4,2,15,4,17,2,16,31,25,9,0,26,6,3,2,5,12,23,2,1,4,12, +13,51,13,8,5,9,9,6,5,10,7,11,4,2,4,5,17,2,16,70,25,1,0,65,1,1,2,4,1,1,8,5,4, +4,2,5,3,5,6,23,2,1,4,6,7,1,1,3,8,51,7,8,9,1,2,2,10,1,1,5,11,1,1,6,12,1,1,7,13, +4,6,2,3,11,9,12,13,3,1,1,4,4,1,2,4,5,2,10,3,17,2,16,61,25,1,0,56,1,2,2,4,1,1, +3,5,1,1,4,6,1,1,5,7,1,1,6,8,1,1,7,9,1,1,8,10,3,9,2,3,5,6,7,8,9,3,10,3,1,1,2, +12,1,2,4,5,5,4,8,12,4,2,8,3,17,2,16,62,25,1,0,57,1,2,2,4,1,1,2,5,1,1,3,6,1,1, +4,7,1,1,5,8,1,1,6,9,1,1,7,10,3,9,2,3,3,5,6,7,8,9,10,11,1,2,4,5,205,6,9,4,9,5, +3,4,11,3,2,9,4,17,2,16,31,25,9,0,26,1,1,2,12,6,8,3,4,8,10,9,3,5,3,1,1,4,5,205, +6,9,10,4,2,12,4,17,2,16,27,25,2,0,22,1,1,2,5,1,1,3,6,14,0,7,9,5,9,5,6,5,7,6, +2,9,4,17,2,16,51,25,1,0,46,208,3,31,0,1,1,2,4,14,1,5,47,4,5,6,1,1,5,7,1,1,4, +3,1,1,3,5,5,6,4,7,6,2,6,4,1,1,4,4,1,1,3,3,2,4,1,17,2,16,57,25,1,0,52,208,3,11, +0,1,1,4,4,1,1,2,3,2,4,1,1,2,2,4,1,1,2,5,1,1,3,6,1,1,4,7,1,1,5,8,4,6,2,3,5,6, +7,8,3,5,4,7,5,4,2,7,2,17,2,16,43,25,1,0,38,1,2,2,4,1,1,3,5,4,3,2,3,5,6,1,1,2, +7,1,2,4,5,9,4,9,5,6,10,3,6,5,7,4,10,3,2,9,4,17,2,16,45,25,1,0,40,1,2,2,4,1,1, +4,5,1,1,5,6,3,4,2,3,5,6,7,1,1,3,8,1,1,2,5,5,4,10,3,6,5,7,3,8,4,2,10,4,17,2,16, +44,25,1,0,39,1,2,2,4,1,1,2,5,1,1,3,6,1,1,4,7,3,6,2,3,5,3,6,7,8,14,0,6,9,4,10, +5,3,4,8,3,2,10,4,17,2,16,44,25,1,0,39,1,2,2,4,1,1,2,5,1,1,3,6,3,5,2,3,3,5,6, +7,1,2,4,8,205,6,5,4,10,5,4,5,7,3,8,5,2,10,4,17,2,16,60,25,1,0,55,208,3,40,0, +1,1,2,4,36,4,5,47,4,5,6,1,2,2,7,1,1,3,8,1,1,4,9,3,4,2,3,8,9,3,1,2,4,5,9,6,4, +2,7,3,1,1,4,4,1,1,3,3,2,4,1,17,2,16,55,25,1,0,50,1,2,2,4,1,1,3,5,1,1,4,6,1,1, +5,7,1,1,6,8,4,6,2,3,5,6,7,8,9,1,1,2,10,1,2,4,5,5,4,12,3,6,5,9,3,10,4,2,12,4, +17,2,16,110,25,4,0,105,14,1,7,8,3,7,60,0,1,2,2,8,47,8,3,9,1,1,7,10,1,1,6,11, +1,1,5,12,1,1,4,13,1,1,3,14,1,1,2,15,5,9,16,6,7,5,5,6,4,5,5,10,3,11,4,5,12,8, +13,9,5,14,10,15,11,2,16,9,1,1,6,8,23,2,1,8,4,9,1,1,4,10,51,9,10,6,1,1,2,4,1, +1,7,3,1,1,5,5,1,1,3,7,2,4,5,17,2,16,55,25,1,0,50,1,2,2,4,1,1,3,5,1,1,4,6,1,1, +5,7,1,1,6,8,1,1,7,9,3,8,2,3,5,3,6,7,8,9,3,1,1,2,11,14,0,5,5,4,8,11,4,2,8,3,17, +2,16,65,25,5,0,60,80,5,32,0,32,5,2,8,9,32,8,2,10,11,1,1,3,12,6,8,4,11,4,6,9, +10,3,3,5,7,4,11,5,2,12,3,80,6,10,0,77,8,5,6,5,8,6,2,4,5,1,1,2,8,9,7,4,2,8,2, +17,2,16,51,25,9,0,46,1,1,7,12,6,3,6,5,13,23,2,1,4,13,14,51,14,8,15,1,1,2,16, +6,7,3,10,9,15,3,12,3,1,1,4,4,1,1,5,5,9,11,6,2,16,4,17,2,16,35,25,1,0,30,1,2, +2,4,1,1,3,5,1,1,2,6,77,7,9,5,10,5,6,5,7,6,5,3,7,10,3,2,4,5,17,2,16,3,0,4,123, +2,16,25,25,1,0,20,61,4,5,1,1,2,6,6,4,3,5,3,3,1,1,4,5,2,6,3,17,2,16,3,0,4,122, +2,16,3,0,4,121,2,16,3,0,4,120,2,16,3,0,4,119,2,16,3,0,4,118,2,16,3,0,4,117,2, +16,3,0,4,116,2,16,3,0,4,115,2,16,3,0,4,114,2,16,3,0,4,113,2,16,3,0,4,112,2,16, +3,0,4,111,2,16,3,0,4,110,2,16,3,0,4,109,2,16,3,0,4,108,2,16,3,0,4,107,2,16,3, +0,4,106,2,16,3,0,4,105,2,16,3,0,4,104,2,16,3,0,4,103,2,16,3,0,4,102,2,16,3,0, +4,101,2,16,3,0,4,100,2,16,3,0,4,99,2,16,3,0,4,98,2,16,3,0,4,97,2,16,3,0,4,96, +2,16,3,0,4,95,2,16,3,0,4,94,2,16,3,0,4,93,2,16,3,0,4,92,2,16,3,0,4,91,2,16,3, +0,4,90,2,16,3,0,4,89,2,16,3,0,4,88,2,16,3,0,4,87,2,16,3,0,4,86,2,16,3,0,4,85, +2,16,3,0,4,84,2,16,3,0,4,83,2,16,3,0,4,82,2,16,3,0,4,81,2,16,3,0,4,80,2,16,3, +0,4,79,2,16,3,0,4,78,2,16,3,0,4,77,2,16,3,0,4,76,2,16,3,0,4,75,2,16,3,0,4,74, +2,16,3,0,4,73,2,16,3,0,4,72,2,16,3,0,4,71,2,16,3,0,4,70,2,16,3,0,4,69,2,16,3, +0,4,68,2,16,3,0,4,67,2,16,3,0,4,66,2,16,3,0,4,65,2,16,3,0,4,64,2,16,3,0,4,63, +2,16,3,0,4,62,2,16,3,0,4,61,2,16,3,0,4,60,2,16,3,0,4,59,2,16,3,0,4,58,2,16,3, +0,4,57,2,16,3,0,4,56,2,16,3,0,4,55,2,16,3,0,4,54,2,16,3,0,4,53,2,16,3,0,4,52, +2,16,3,0,4,51,2,16,3,0,4,50,2,16,3,0,4,49,2,16,3,0,4,48,2,16,3,0,4,47,2,16,3, +0,4,46,2,16,3,0,4,45,2,16,3,0,4,44,2,16,3,0,4,43,2,16,3,0,4,42,2,16,3,0,4,41, +2,16,3,0,4,40,2,16,3,0,4,39,2,16,3,0,4,38,2,16,3,0,4,37,2,16,3,0,4,36,2,16,3, +0,4,35,2,16,3,0,4,34,2,16,3,0,4,33,2,16,3,0,4,32,2,16,3,0,4,31,2,16,3,0,4,30, +2,16,3,0,4,29,2,16,3,0,4,28,2,16,3,0,4,27,2,16,3,0,4,26,2,16,3,0,4,25,2,16,3, +0,4,24,2,16,3,0,4,23,2,16,3,0,4,22,2,16,3,0,4,21,2,16,3,0,4,20,2,16,3,0,4,19, +2,16,3,0,4,18,2,16,3,0,4,17,2,16,3,0,4,16,2,16,3,0,4,15,2,16,3,0,4,14,2,16,3, +0,4,13,2,16,3,0,4,12,2,16,3,0,4,11,2,16,3,0,4,10,2,16,35,25,1,0,30,1,2,2,4,1, +1,3,5,1,1,2,6,77,7,9,4,9,5,3,4,5,3,5,6,5,7,6,2,9,4,17,2,16,59,25,1,0,54,208, +3,19,0,1,2,5,4,1,1,3,5,9,4,7,5,3,4,5,3,2,7,2,1,2,2,4,1,1,2,5,1,1,3,6,4,4,2,3, +5,6,3,1,2,4,8,5,4,9,8,4,2,9,2,17,2,16,35,25,2,0,30,1,2,2,5,1,1,2,6,4,4,2,3,3, +6,3,1,2,4,8,9,5,9,5,4,5,8,4,2,9,3,17,2,16,31,25,1,0,26,1,1,3,4,1,1,4,5,3,3,2, +2,5,3,1,1,2,7,5,4,8,7,4,2,8,2,17,2,16,28,25,1,0,23,1,2,2,4,1,1,2,5,1,1,3,6,3, +5,2,3,5,6,3,3,2,4,1,17,2,16,67,25,2,0,62,1,2,3,5,1,1,2,6,3,4,2,7,4,6,7,23,2, +1,5,7,8,77,9,51,8,9,4,1,2,5,11,1,2,6,12,51,11,12,13,1,2,4,14,51,5,14,15,51,15, +9,16,51,13,16,5,1,2,2,18,2,18,3,17,2,16,41,25,1,0,36,1,2,2,4,1,1,2,5,1,1,3,6, +1,1,4,7,3,5,2,3,5,6,7,3,1,2,4,9,5,4,7,9,4,2,7,2,17,2,16,16,25,1,0,11,1,1,2,4, +1,2,2,3,2,4,1,17,2,16,3,0,4,9,2,16,3,0,4,8,2,16,3,0,4,7,2,16,3,0,4,6,2,16,3, +0,4,5,2,16,3,0,4,4,2,16,3,0,4,3,2,16,3,0,4,2,2,16,3,0,4,1,2,16,34,25,3,0,29, +1,1,2,6,6,4,3,5,3,7,1,1,4,5,1,1,5,9,9,6,10,5,7,3,9,6,2,10,4,17,2,16,3,0,4,0, +2,16,40,25,1,0,35,1,2,2,4,1,1,3,5,1,1,4,6,3,4,2,3,5,6,3,1,1,2,8,1,2,4,5,5,4, +10,8,4,2,10,3,17,2,16,129,4,25,1,0,127,208,3,40,0,1,2,8,4,1,1,4,5,1,1,5,6,1, +1,6,7,3,5,2,9,5,6,7,3,1,1,2,9,1,1,3,5,5,4,11,9,4,2,11,3,1,1,3,4,208,4,44,0,1, +2,5,5,1,1,4,6,1,1,6,7,1,1,2,8,3,6,2,6,6,7,8,4,3,1,1,5,4,1,2,7,11,9,5,12,5,6, +5,11,6,2,12,4,1,2,2,5,1,1,2,6,1,1,5,7,1,1,6,8,3,5,2,3,6,7,8,3,1,2,4,4,2,5,2, +17,2,16,118,25,1,0,113,80,3,64,0,1,2,4,4,1,1,2,5,1,1,3,6,1,1,4,7,1,1,5,8,1,1, +6,9,1,1,7,10,1,1,8,11,3,10,2,5,5,6,7,8,3,9,10,11,3,1,2,6,13,1,2,7,6,9,4,9,5, +5,4,13,5,2,9,4,1,2,2,4,1,1,6,5,1,1,7,6,1,1,8,7,1,1,4,8,4,6,2,3,5,6,7,8,3,1,1, +2,10,1,1,3,5,5,4,8,10,4,2,8,3,17,2,16,28,25,7,0,23,1,1,2,10,6,9,3,6,7,9,8,5, +4,3,3,5,6,4,7,5,2,10,3,17,2,16,75,25,1,0,70,1,2,3,4,1,1,4,5,1,1,3,6,1,1,2,7, +23,2,3,4,5,6,7,8,1,1,6,9,23,2,1,9,8,10,1,2,2,11,1,1,9,12,1,1,8,4,1,1,7,5,1,1, +5,15,9,3,6,5,9,7,10,8,5,12,3,15,9,2,11,7,17,2,16,35,25,9,0,30,1,1,2,12,6,10, +3,7,6,5,11,4,9,8,3,3,1,1,4,5,1,1,5,6,9,10,4,2,12,4,17,2,16,53,25,1,0,48,1,1, +2,4,1,1,8,5,4,4,2,2,3,5,6,23,2,1,4,6,7,1,1,3,8,51,7,8,5,1,1,7,4,1,1,6,3,1,1, +5,6,1,1,4,7,2,4,5,17,2,16,65,25,1,0,60,1,2,2,4,1,1,2,5,1,1,3,6,1,1,4,7,1,1,5, +8,1,1,6,9,1,1,7,10,1,1,8,11,3,10,2,3,3,5,6,7,8,9,10,11,3,1,2,4,13,9,4,9,5,8, +5,13,4,2,9,3,17,2,16,30,25,9,0,25,1,1,2,12,6,9,3,4,8,10,9,3,11,5,3,1,1,4,4,9, +8,5,2,12,3,17,2,16,54,25,9,0,49,6,4,4,6,5,12,23,2,1,4,12,13,51,13,8,5,1,1,3, +15,23,2,1,15,4,16,23,2,1,6,16,8,1,1,2,18,5,6,4,9,6,5,10,7,11,9,2,18,7,17,2,16, +33,25,9,0,28,23,2,2,5,6,7,12,23,2,1,4,12,13,51,13,8,5,9,9,6,5,10,7,11,4,2,4, +5,17,2,16,50,25,2,0,45,80,3,32,0,1,1,2,5,51,4,5,6,1,1,4,7,1,1,3,8,23,2,2,7,8, +6,4,1,1,5,10,205,3,2,10,2,1,1,5,5,77,3,2,5,2,17,2,16,33,25,1,0,28,1,2,2,4,14, +22,5,1,1,3,6,1,1,2,7,5,4,9,5,4,5,6,5,7,6,2,9,4,17,2,16,35,25,1,0,30,1,1,2,4, +1,1,4,5,1,1,5,6,3,4,2,2,5,6,7,51,4,7,4,1,1,3,9,2,9,2,17,2,16,38,25,1,0,33,1, +1,5,4,1,1,4,5,1,1,3,6,1,1,2,7,23,2,3,4,5,6,7,4,1,1,6,9,77,3,2,9,2,17,2,16,129, +32,25,4,0,155,14,1,7,8,3,7,115,0,14,2,8,8,3,8,77,0,14,22,9,8,3,9,30,0,1,2,3, +10,1,1,5,11,4,7,2,4,6,5,4,3,11,12,1,2,5,4,5,3,5,12,3,2,10,3,23,2,2,4,5,6,10, +1,1,2,11,51,10,11,12,1,1,4,13,1,1,3,14,23,2,2,13,14,12,4,1,1,5,16,205,3,2,16, +2,1,1,5,9,141,3,1,1,4,11,1,1,2,12,1,1,3,13,3,6,2,2,4,11,12,13,4,2,9,2,1,1,2, +8,51,4,8,9,1,1,4,10,1,1,3,11,23,2,2,10,11,9,4,1,1,5,13,205,3,2,13,2,17,2,16, +98,25,3,0,93,32,4,3,6,7,8,80,7,52,0,32,7,2,9,10,15,9,11,14,2,12,8,11,12,22,0, +1,1,4,13,6,6,5,8,10,6,3,3,1,1,6,5,9,9,4,2,13,3,7,6,3,8,10,6,3,3,9,9,4,2,5,3, +80,8,12,0,77,9,23,2,2,6,8,9,4,2,5,3,141,9,7,3,2,6,4,5,3,7,9,3,2,7,2,17,2,16, +114,25,2,0,109,208,3,65,0,141,5,8,3,5,21,0,1,2,2,6,1,1,7,7,3,3,2,3,7,3,1,2,4, +4,2,6,2,1,1,2,6,23,2,1,6,4,7,1,1,3,8,51,7,8,6,1,1,6,4,1,1,7,3,1,1,5,5,1,1,4, +7,2,4,5,1,1,2,5,23,2,1,5,4,6,1,1,3,7,51,6,7,8,1,1,6,4,1,1,7,3,1,1,5,5,1,1,4, +7,9,8,6,2,4,5,17,2,16,98,25,5,0,93,80,5,65,0,32,5,2,8,9,32,8,2,10,11,15,11,12, +14,2,13,8,12,13,24,0,1,1,5,14,6,8,6,4,7,6,9,10,3,3,1,1,7,5,9,11,4,2,14,3,1,1, +3,14,6,8,4,10,6,7,9,4,3,3,9,11,4,2,14,2,80,6,10,0,77,8,5,6,5,8,6,2,4,5,1,1,2, +8,9,7,4,2,8,2,17,2,16,36,25,3,0,31,16,4,25,0,14,1,6,40,4,6,7,8,1,1,2,9,7,5,3, +7,3,5,3,14,0,4,2,9,2,24,4,17,2,16,3,0,3,255,2,16,3,0,3,254,2,16,3,0,3,253,2, +16,3,0,3,252,2,16,3,0,3,251,2,16,3,0,3,250,2,16,3,0,3,249,2,16,3,0,3,248,2,16, +3,0,3,247,2,16,3,0,3,246,2,16,3,0,3,245,2,16,3,0,3,244,2,16,3,0,3,243,2,16,3, +0,3,242,2,16,3,0,3,241,2,16,3,0,3,240,2,16,3,0,3,239,2,16,3,0,3,238,2,16,3,0, +3,237,2,16,3,0,3,236,2,16,3,0,3,235,2,16,3,0,3,234,2,16,3,0,3,233,2,16,3,0,3, +232,2,16,3,0,3,231,2,16,3,0,3,230,2,16,3,0,3,229,2,16,3,0,3,228,2,16,3,0,3,227, +2,16,3,0,3,226,2,16,3,0,3,225,2,16,3,0,3,224,2,16,3,0,3,223,2,16,3,0,3,222,2, +16,3,0,3,221,2,16,3,0,3,220,2,16,3,0,3,219,2,16,3,0,3,218,2,16,3,0,3,217,2,16, +3,0,3,216,2,16,3,0,3,215,2,16,3,0,3,214,2,16,3,0,3,213,2,16,3,0,3,212,2,16,3, +0,3,211,2,16,3,0,3,210,2,16,3,0,3,209,2,16,3,0,3,208,2,16,3,0,3,207,2,16,3,0, +3,206,2,16,3,0,3,205,2,16,3,0,3,204,2,16,3,0,3,203,2,16,3,0,3,202,2,16,3,0,3, +201,2,16,3,0,3,200,2,16,3,0,3,199,2,16,3,0,3,198,2,16,3,0,3,197,2,16,3,0,3,196, +2,16,3,0,3,195,2,16,3,0,3,194,2,16,3,0,3,193,2,16,3,0,3,192,2,16,3,0,3,191,2, +16,3,0,3,190,2,16,3,0,3,189,2,16,3,0,3,188,2,16,3,0,3,187,2,16,3,0,3,186,2,16, +3,0,3,185,2,16,3,0,3,184,2,16,3,0,3,183,2,16,3,0,3,182,2,16,3,0,3,181,2,16,3, +0,3,180,2,16,3,0,3,179,2,16,3,0,3,178,2,16,3,0,3,177,2,16,3,0,3,176,2,16,3,0, +3,175,2,16,3,0,3,174,2,16,3,0,3,173,2,16,3,0,3,172,2,16,3,0,3,171,2,16,3,0,3, +170,2,16,3,0,3,169,2,16,3,0,3,168,2,16,3,0,3,167,2,16,3,0,3,166,2,16,44,25,3, +0,39,32,5,2,6,7,15,7,8,16,8,15,0,1,1,2,9,14,10,10,5,6,5,10,6,2,9,4,1,1,2,9,5, +6,5,7,6,2,9,4,17,2,16,25,25,3,0,20,16,4,14,0,1,1,2,6,6,5,3,4,5,3,3,2,6,1,24, +4,17,2,16,52,25,1,0,47,16,3,11,0,1,1,3,4,1,1,2,3,2,4,1,1,2,2,4,1,1,2,5,1,1,3, +6,1,1,4,7,3,5,2,3,5,6,7,3,5,4,7,5,4,2,7,2,17,2,16,3,0,3,165,2,16,3,0,3,164,2, +16,3,0,3,163,2,16,3,0,3,162,2,16,3,0,3,161,2,16,3,0,3,160,2,16,3,0,3,159,2,16, +3,0,3,158,2,16,3,0,3,157,2,16,3,0,3,156,2,16,3,0,3,155,2,3,3,116,97,103,1,4, +1,1,2,16,3,0,3,154,2,16,3,0,3,153,2,16,3,0,3,152,2,16,3,0,3,151,2,16,3,0,3,150, +2,16,3,0,3,149,2,16,3,0,3,148,2,16,3,0,3,147,2,16,3,0,3,146,2,16,3,0,3,145,2, +16,3,0,3,144,2,16,3,0,3,143,2,16,3,0,3,142,2,16,3,0,3,141,2,16,3,0,3,140,2,16, +3,0,3,139,2,16,3,0,3,138,2,16,3,0,3,137,2,16,3,0,3,136,2,16,3,0,3,135,2,16,3, +0,3,134,2,16,3,0,3,133,2,16,3,0,3,132,2,16,3,0,3,131,2,16,3,0,3,130,2,16,3,0, +3,129,2,16,3,0,3,128,2,16,3,0,3,127,2,16,3,0,3,126,2,16,3,0,3,125,2,16,3,0,3, +124,2,16,1,84,1,17,2,137,76,1,1,17,2,137,76,1,1,17,3,137,73,1,137,74,1,17,2, +137,53,1,1,17,2,137,39,137,40,1,17,2,137,44,1,1,17,2,136,113,0,13,3,1,17,2,137, +46,1,1,17,4,136,72,1,136,73,0,13,3,1,17,2,137,48,1,1,17,2,136,73,3,1,17,5,129, +21,4,1,0,13,3,2,2,3,9,66,97,100,32,109,97,116,104,58,2,3,12,66,97,100,32,110, +117,109,98,101,114,58,32,1,40,2,0,0,1,0,13,0,1,40,2,0,0,0,1,1,17,2,137,107,136, +76,1,17,3,136,76,14,5,1,17,2,137,109,136,76,1,17,2,137,58,136,76,1,17,5,129, +29,1,137,9,3,138,73,1,17,6,129,29,3,136,77,136,76,4,138,122,1,17,2,137,113,1, +1,17,4,129,29,20,10,138,48,1,17,7,129,29,0,0,135,255,255,127,9,136,78,10,7,138, +83,1,17,2,137,113,1,1,17,3,136,78,12,136,79,1,17,2,137,118,1,1,17,7,136,79,14, +1,136,81,136,81,136,81,136,81,1,17,2,137,68,1,1,17,2,129,33,129,34,1,17,2,137, +70,1,1,17,3,136,82,1,129,34,1,17,4,136,82,2,129,37,129,37,1,17,2,137,65,1,1, +17,3,136,83,1,129,36,1,17,3,136,83,17,1,1,17,2,136,83,23,1,17,4,129,38,136,83, +21,138,125,1,17,2,137,127,1,1,17,13,129,39,26,13,8,23,139,9,3,9,136,84,11,4, +136,84,136,84,1,17,13,129,39,27,9,14,24,139,17,4,136,85,10,5,12,136,85,136,85, +1,17,2,129,38,129,39,1,17,2,137,74,1,1,17,2,136,87,1,1,17,2,138,8,129,40,1,17, +2,137,50,2,1,17,3,136,89,3,129,49,1,17,11,86,9,4,129,50,31,139,20,3,2,1,7,137, +127,1,17,2,138,12,1,1,17,2,129,44,136,103,1,17,2,137,90,1,1,17,2,138,15,129, +45,1,17,2,137,57,1,1,17,3,136,96,2,136,98,1,17,4,136,96,14,138,6,0,0,135,255, +255,127,1,17,11,93,4,136,100,136,100,5,3,2,39,139,27,1,0,0,135,255,255,127,1, +17,2,138,20,1,1,17,2,136,98,129,50,1,17,2,138,22,1,1,17,4,129,50,43,139,25,1, +1,17,4,129,48,136,114,136,114,136,114,1,17,2,137,101,1,1,17,2,136,99,136,117, +1,17,2,136,99,136,117,1,17,7,129,50,129,51,25,24,2,136,118,1,1,17,2,137,105, +1,1,17,2,138,25,27,1,17,3,136,102,6,1,1,17,2,136,102,1,1,17,2,138,33,1,1,17, +2,102,55,1,17,2,138,32,1,1,17,3,136,102,1,136,103,1,17,3,136,102,136,106,1,1, +17,3,136,102,3,1,1,17,3,136,105,4,136,106,1,17,3,136,105,136,109,1,1,17,3,136, +105,6,1,1,17,4,136,105,136,111,4,1,1,17,2,136,111,1,1,17,2,137,21,15,1,17,3, +129,66,25,1,1,17,3,129,66,17,1,1,17,3,138,39,43,1,1,17,3,136,110,45,1,1,17,2, +136,110,1,1,17,3,136,110,47,1,1,17,3,136,110,48,1,1,17,2,136,110,1,1,17,3,136, +110,1,20,1,17,4,129,73,29,11,1,1,17,2,138,55,1,1,17,13,129,74,129,95,31,129, +95,76,139,0,129,95,137,9,137,9,1,137,9,137,9,137,9,1,17,2,138,57,1,1,17,2,138, +53,75,1,17,3,136,115,2,1,1,17,2,138,55,77,1,17,2,136,116,78,1,17,6,136,116,5, +3,2,1,79,1,17,2,138,3,129,80,1,17,2,136,110,1,1,17,5,129,4,85,139,1,86,1,1,17, +3,129,82,62,136,111,1,17,2,138,15,1,1,17,4,129,83,64,80,136,113,1,17,2,138,17, +1,1,17,3,136,114,3,0,0,131,255,255,127,1,17,3,136,114,2,4,1,17,7,129,17,0,0, +135,255,255,127,68,2,69,1,136,117,1,17,2,138,21,1,1,17,3,136,104,88,136,105, +1,17,3,136,104,71,1,1,17,2,138,76,1,1,17,3,136,105,73,138,60,1,17,4,136,105, +58,1,2,1,17,3,136,105,6,1,1,17,2,136,105,1,1,17,2,138,81,137,50,1,17,2,129,96, +1,1,17,2,138,80,1,1,17,3,136,102,80,136,103,1,17,4,129,29,136,105,65,1,1,17, +4,129,99,3,63,1,1,17,2,136,108,1,1,40,2,0,0,0,0,13,0,1,17,3,136,106,77,138,77, +1,17,3,129,102,78,1,1,17,5,129,102,68,1,4,3,1,17,3,136,108,69,1,1,17,2,138,93, +1,1,17,2,136,109,92,1,17,2,136,109,1,1,17,2,136,109,1,1,17,2,136,111,3,1,17, +2,136,111,1,1,17,5,136,111,97,3,1,6,1,17,2,138,100,1,1,17,2,138,96,21,1,17,2, +136,110,100,1,17,2,136,111,101,1,17,2,136,118,102,1,17,3,137,0,25,1,1,17,2,136, +120,104,1,17,3,136,114,27,1,1,17,3,136,118,106,1,1,17,14,129,116,129,1,139,89, +107,44,136,118,136,118,29,8,7,6,4,1,139,85,1,17,3,129,115,1,138,98,1,17,2,138, +111,1,1,17,2,129,116,0,0,132,128,128,0,1,24,2,0,0,2,0,0,1,1,24,2,0,0,8,0,0,3, +1,24,2,0,0,32,0,0,5,1,24,4,0,0,4,0,0,2,3,2,1,24,2,0,0,129,0,0,0,7,1,24,2,0,0, +132,0,0,0,9,1,24,4,0,0,64,0,0,6,4,2,1,24,2,0,0,144,0,0,0,11,1,24,2,0,0,192,0, +0,0,13,1,24,4,0,0,136,0,0,0,10,4,2,1,24,4,0,0,16,0,0,4,7,4,1,24,2,0,0,130,128, +0,0,0,15,1,24,2,0,0,136,128,0,0,0,17,1,24,4,0,0,129,128,0,0,0,14,5,2,1,24,2, +0,0,160,128,0,0,0,19,1,24,2,0,0,129,128,128,0,0,0,21,1,24,2,0,0,132,128,128, +0,0,0,23,1,24,4,0,0,144,128,0,0,0,18,5,3,1,24,4,0,0,130,128,128,0,0,0,22,3,2, +1,24,4,0,0,160,0,0,0,12,10,6,1,24,4,0,0,192,128,0,0,0,20,3,2,1,26,4,0,0,132, +128,0,0,0,16,2,1,1,24,4,0,0,130,0,0,0,8,12,1,1,17,3,137,8,129,5,137,53,1,17, +3,138,124,25,1,1,17,4,130,13,26,1,138,102,1,17,3,137,9,129,9,137,10,1,17,3,137, +9,129,26,1,1,17,3,137,9,129,9,1,1,17,3,139,6,129,2,1,1,17,4,137,10,129,45,1, +8,1,17,3,139,7,129,4,1,1,17,6,130,19,33,138,24,129,47,1,10,1,17,4,130,19,123, +8,1,1,17,4,130,19,127,124,1,1,17,2,138,96,1,1,17,2,129,87,1,1,17,8,129,87,129, +20,137,16,137,16,139,10,139,10,39,1,1,17,2,139,23,1,1,17,3,137,16,129,22,139, +12,1,17,3,137,17,129,23,139,13,1,17,3,137,17,54,137,19,1,17,3,137,17,55,1,1, +17,3,137,17,129,43,1,1,17,3,137,17,6,1,1,17,6,130,98,129,28,6,5,130,29,1,1,17, +2,139,31,1,1,17,2,137,19,137,114,1,17,2,137,20,137,115,1,17,2,137,21,137,116, +1,17,2,137,22,137,117,1,17,2,138,77,5,1,17,2,139,32,6,1,17,3,137,23,109,1,1, +17,2,138,26,1,1,17,3,137,24,111,1,1,17,2,137,23,137,24,1,17,2,138,105,130,40, +1,17,28,130,40,129,66,129,53,129,48,114,11,137,29,129,63,140,57,129,51,129,49, +129,44,10,137,29,129,43,137,124,9,137,29,137,124,137,124,8,137,29,7,3,137,29, +2,1,137,29,1,17,2,139,44,1,1,17,3,137,49,129,43,137,25,1,17,3,137,50,129,44, +137,26,1,17,3,137,51,129,45,137,27,1,17,3,137,52,129,46,137,28,1,17,2,138,90, +18,1,17,2,139,45,19,1,17,3,137,36,122,1,1,17,3,139,45,129,48,1,1,17,3,137,32, +124,1,1,17,3,137,58,129,52,137,34,1,17,3,137,83,129,51,137,38,1,17,2,138,119, +130,54,1,17,29,130,53,129,80,129,62,129,67,129,0,137,38,12,129,77,140,70,129, +57,138,10,129,63,137,38,11,129,58,129,65,137,38,10,138,10,138,10,137,38,9,129, +53,8,4,3,2,1,137,43,1,17,2,139,58,1,1,17,3,137,1,15,129,91,1,17,2,139,55,2,1, +17,3,139,55,17,1,1,17,5,137,3,4,129,94,1,18,1,17,2,137,0,137,1,1,17,2,139,12, +1,1,17,2,137,1,1,1,18,2,1,129,4,2,3,29,115,116,114,105,110,103,45,108,101,110, +103,116,104,58,32,110,111,116,32,97,32,115,116,114,105,110,103,58,32,2,3,24, +115,116,114,45,105,116,101,114,58,32,110,111,116,32,97,32,115,116,114,105,110, +103,58,32,1,17,3,136,43,129,103,2,1,17,2,136,42,136,43,1,17,2,139,11,1,1,17, +2,136,42,136,43,1,17,2,139,21,1,1,17,2,130,52,3,1,17,3,136,85,16,139,58,1,17, +2,136,45,1,1,17,7,136,45,8,3,4,1,129,111,9,1,17,2,139,78,1,1,17,2,139,1,1,2, +3,36,66,97,100,32,118,101,99,116,111,114,32,110,111,100,101,32,105,110,32,100, +105,115,112,97,116,99,104,45,49,58,32,116,121,112,101,32,2,3,27,76,101,97,102, +32,118,101,99,116,111,114,32,105,110,32,100,105,115,112,97,116,99,104,45,50, +58,32,2,3,35,66,97,100,32,118,101,99,116,111,114,32,110,111,100,101,32,105,110, +32,100,105,115,112,97,116,99,104,45,50,58,32,111,98,106,32,2,3,24,118,101,99, +45,108,101,97,102,45,111,102,58,32,98,97,100,32,105,110,100,101,120,58,32,2, +3,23,118,101,99,45,108,101,110,58,32,110,111,116,32,97,32,118,101,99,116,111, +114,58,32,1,17,4,135,126,0,0,159,127,129,119,5,1,17,4,130,22,129,120,5,4,1,17, +2,139,0,2,1,17,2,139,1,3,1,17,6,136,1,3,2,4,0,0,160,0,1,1,17,2,139,90,1,1,17, +2,138,18,5,1,17,3,136,1,2,1,1,17,6,130,66,7,0,0,160,0,1,129,127,10,1,17,5,136, +1,130,0,10,139,104,140,101,1,17,2,139,43,130,63,1,17,2,137,5,1,1,17,3,130,64, +35,1,1,17,2,139,98,1,1,17,3,135,102,33,135,103,1,17,4,135,102,41,1,0,0,160,0, +1,17,3,135,102,3,1,1,17,3,135,102,9,1,1,17,4,135,102,9,137,5,1,2,3,17,104,111, +119,32,100,111,32,105,32,105,116,101,114,97,116,101,32,1,17,2,133,90,136,88, +1,17,3,133,90,139,62,1,1,17,2,133,88,133,89,1,17,4,133,88,1,130,6,133,86,1,17, +3,133,88,139,65,1,1,17,2,139,113,1,1,17,2,133,85,133,86,1,17,2,133,85,139,11, +1,17,3,133,85,1,139,61,1,17,2,133,85,1,1,17,3,133,85,53,137,75,1,17,2,130,70, +1,1,17,2,133,86,1,1,1,2,0,0,0,0,13,0,1,1,2,1,0,13,0,1,17,3,133,78,1,133,80,1, +17,4,133,76,139,109,1,133,77,1,17,4,133,76,2,139,78,1,1,17,2,139,123,1,1,17, +4,133,77,130,30,20,21,1,17,4,133,77,136,3,1,46,1,17,3,133,77,136,101,1,1,17, +3,139,24,139,83,1,1,17,2,139,123,5,1,17,3,133,79,2,1,1,17,2,139,125,10,1,17, +3,133,81,4,1,1,17,2,140,8,140,9,2,16,3,0,3,123,2,16,3,0,3,122,2,16,3,0,3,121, +2,16,11,25,3,0,6,50,4,5,6,24,6,17,2,16,10,25,2,0,5,62,4,5,24,5,17,2,16,3,0,3, +120,1,17,3,131,59,2,140,7,1,17,2,140,9,1,2,16,1,84,1,17,2,140,0,4,1,17,2,140, +0,2,1,17,2,140,0,1,1,17,3,139,125,1,139,126,1,17,2,139,125,1,1,17,3,139,125, +2,140,73,1,17,2,139,107,3,1,17,2,139,126,4,1,17,2,139,126,5,1,17,2,139,126,6, +1,17,2,139,126,6,1,17,3,139,126,8,1,1,17,2,139,126,9,1,17,2,139,126,10,1,17, +5,139,123,2,139,125,7,139,124,1,17,2,139,123,1,1,17,4,139,123,4,140,0,1,1,17, +4,139,120,1,139,122,139,121,1,17,3,139,120,10,1,1,17,3,139,110,139,117,139,111, +1,17,2,140,31,1,1,17,2,139,109,139,110,1,17,2,139,112,1,1,17,2,139,109,139,110, +1,17,2,139,114,1,1,17,2,139,110,140,38,1,17,2,139,110,1,1,17,2,139,110,1,1,17, +2,139,118,1,1,17,2,139,109,139,110,1,17,2,139,112,1,1,17,2,139,109,139,110,1, +17,2,139,122,1,1,17,2,139,110,140,46,1,17,2,139,110,1,1,17,2,140,49,1,1,17,2, +139,110,139,111,1,17,2,140,51,1,1,17,2,139,108,139,109,1,17,2,140,1,1,1,17,2, +140,52,140,53,1,17,2,139,110,1,1,17,2,139,110,1,1,17,2,139,112,3,1,17,3,139, +111,4,1,1,17,4,139,111,5,3,1,1,17,2,140,60,139,111,1,17,2,139,111,1,1,17,3,139, +109,1,139,110,1,17,4,139,109,2,139,112,1,1,17,2,139,109,1,1,17,2,139,108,139, +109,1,17,3,139,108,20,1,1,17,2,139,106,139,107,1,17,3,139,106,30,1,1,17,3,139, +106,53,1,1,17,2,139,105,139,106,1,17,2,140,19,1,1,17,4,139,105,11,140,77,139, +106,1,17,2,139,105,1,1,17,4,139,104,13,139,122,139,105,1,17,2,139,104,1,2,3, +17,102,117,112,100,58,32,110,111,116,32,116,104,101,114,101,58,32,2,3,3,102, +111,111,1,17,2,139,102,0,13,3,1,17,2,139,100,139,101,1,17,2,139,100,139,103, +1,17,6,139,98,0,13,3,2,1,139,100,139,99,1,17,2,140,30,1,1,17,2,139,99,0,13,3, +1,17,2,140,32,1,1,17,7,139,98,0,13,3,65,9,139,100,139,99,139,100,1,17,2,140, +34,1,1,17,5,139,98,10,5,139,99,1,1,17,3,139,98,1,11,1,17,2,139,97,139,98,1,17, +2,139,96,139,97,1,17,3,139,96,139,98,1,1,17,5,139,96,140,98,3,0,13,3,1,1,17, +4,139,96,0,13,3,140,99,1,1,17,2,140,42,1,1,17,2,139,97,139,102,1,17,2,139,102, +139,103,1,17,3,139,98,139,106,1,1,17,5,139,98,140,104,3,0,13,3,1,1,17,4,139, +98,140,105,1,0,13,3,1,17,4,139,98,140,106,1,0,13,3,1,17,2,140,49,1,1,17,2,139, +99,14,1,17,4,139,99,65,1,0,13,3,1,17,3,139,98,10,139,99,1,17,3,139,98,139,127, +139,124,1,17,3,139,97,140,1,139,98,1,17,2,139,95,2,1,17,2,139,95,1,1,17,3,139, +95,139,99,1,1,17,2,139,94,139,95,1,17,3,139,97,139,101,1,1,17,7,139,95,0,13, +3,139,101,3,140,2,140,3,1,1,17,2,140,113,1,1,17,2,139,96,8,1,17,2,139,96,10, +1,17,4,139,96,3,2,1,1,17,4,139,96,140,123,1,0,13,3,1,17,2,140,118,1,1,17,3,139, +97,1,140,3,1,17,3,139,114,26,139,95,2,3,9,66,97,100,32,109,97,116,104,58,2,3, +12,66,97,100,32,110,117,109,98,101,114,58,32,2,3,17,100,105,118,105,115,105, +111,110,32,98,121,32,122,101,114,111,32,2,3,10,98,97,100,32,109,97,116,104,58, +32,2,3,17,78,111,32,97,114,103,117,109,101,110,116,115,32,102,111,114,32,1,40, +2,0,0,1,0,13,0,1,40,2,0,0,0,1,1,17,2,141,0,139,97,1,17,3,139,97,109,8,1,17,2, +141,2,139,97,1,17,2,140,79,139,97,1,17,5,132,50,1,140,30,3,141,94,1,17,6,132, +50,3,139,98,139,97,4,142,15,1,17,2,141,6,1,1,17,4,132,50,115,13,141,69,1,17, +7,132,50,0,0,135,255,255,127,9,139,99,10,7,141,104,1,17,2,141,6,1,1,17,3,139, +99,12,139,100,1,17,2,141,11,1,1,17,7,139,100,14,1,139,102,139,102,139,102,139, +102,1,17,2,140,89,1,1,17,2,132,54,132,55,1,17,2,140,91,1,1,17,3,139,103,1,132, +55,1,17,4,139,103,2,132,58,132,58,1,17,2,140,86,1,1,17,3,139,104,1,132,57,1, +17,3,139,104,17,1,1,17,2,139,104,23,1,17,4,132,59,139,104,21,142,18,1,17,2,141, +20,1,1,17,13,132,60,26,13,8,23,142,30,3,9,139,105,11,4,139,105,139,105,1,17, +13,132,60,27,9,14,24,142,38,4,139,106,10,5,12,139,106,139,106,1,17,2,132,59, +132,60,1,17,2,140,95,1,1,17,2,139,108,1,1,17,2,141,29,132,61,1,17,2,140,71,2, +1,17,3,139,110,3,132,70,1,17,11,131,107,9,4,132,71,31,142,41,3,2,1,7,141,20, +1,17,2,141,33,1,1,17,2,132,65,139,124,1,17,2,140,111,1,1,17,2,141,36,132,66, +1,17,2,140,78,1,1,17,3,139,117,2,139,119,1,17,4,139,117,14,141,27,0,0,135,255, +255,127,1,17,11,131,114,4,139,121,139,121,5,3,2,39,142,48,1,0,0,135,255,255, +127,1,17,2,141,41,1,1,17,2,139,119,132,71,1,17,2,141,43,1,1,17,2,139,120,140, +6,1,17,2,141,45,1,1,17,2,139,121,132,74,1,17,2,141,47,1,1,17,3,140,26,1,139, +122,1,17,4,132,76,48,142,51,6,1,17,4,132,76,49,142,50,5,1,17,4,132,76,50,142, +49,3,1,17,4,132,76,140,14,140,14,140,14,1,17,2,141,1,1,1,17,2,139,127,140,17, +1,17,2,139,127,140,17,1,17,7,132,78,132,79,32,31,2,140,18,1,1,17,2,141,5,1,1, +17,2,141,53,34,1,17,3,140,2,6,1,1,17,2,140,2,1,1,17,2,141,61,1,1,17,2,132,2, +62,1,17,2,141,60,1,1,17,3,140,2,1,140,3,1,17,3,140,2,140,6,1,1,17,3,140,2,3, +1,1,17,3,140,5,4,140,6,1,17,3,140,5,140,9,1,1,17,3,140,5,6,1,1,17,4,140,5,140, +11,4,1,1,17,2,140,11,1,1,17,2,140,49,15,1,17,3,132,94,32,1,1,17,3,132,94,17, +1,1,17,3,141,67,50,1,1,17,3,140,10,52,1,1,17,2,140,10,1,1,17,3,140,10,54,1,1, +17,3,140,10,55,1,1,17,2,140,10,1,1,17,3,140,10,1,20,1,17,4,132,101,29,11,1,1, +17,2,141,83,1,1,17,13,132,102,132,123,31,132,123,83,142,28,132,123,140,37,140, +37,1,140,37,140,37,140,37,1,17,2,141,85,1,1,17,2,141,81,82,1,17,3,140,15,2,1, +1,17,2,141,83,84,1,17,2,140,16,85,1,17,6,140,16,5,3,2,1,86,1,17,3,140,16,85, +140,118,1,17,3,140,16,2,1,1,17,2,140,16,3,1,17,2,140,17,2,1,17,3,140,16,5,140, +17,1,17,3,140,16,6,140,18,1,17,2,141,37,132,114,1,17,2,140,16,1,1,17,5,132,38, +98,142,35,99,1,1,17,3,132,116,75,140,17,1,17,2,141,49,1,1,17,4,132,117,77,93, +140,19,1,17,2,141,51,1,1,17,3,140,20,3,0,0,131,255,255,127,1,17,3,140,20,2,4, +1,17,7,132,51,0,0,135,255,255,127,81,2,82,1,140,23,1,17,2,141,55,1,1,17,3,140, +22,99,140,25,1,17,3,140,22,102,1,1,17,3,140,22,85,1,1,17,2,141,59,1,1,17,3,140, +23,88,141,100,1,17,3,140,23,72,1,1,17,3,141,106,89,1,1,17,4,140,24,74,1,4,1, +17,3,140,24,9,1,1,17,2,140,24,1,1,17,2,140,24,95,1,17,3,140,24,2,1,1,17,3,140, +22,113,140,23,1,17,3,140,22,96,1,1,17,2,141,122,1,1,17,3,140,23,98,141,106,1, +17,4,140,23,83,1,2,1,17,3,140,23,18,1,1,17,2,140,23,1,1,17,2,141,127,140,96, +1,17,2,133,14,1,1,17,2,141,126,1,1,17,3,140,20,105,140,21,1,17,4,132,75,140, +23,90,1,1,17,4,133,17,3,83,1,1,17,2,140,26,1,1,40,2,0,0,0,0,13,0,1,17,3,140, +24,102,141,123,1,17,3,133,20,103,1,1,17,5,133,20,88,1,4,3,1,17,3,140,26,89,1, +1,17,2,142,11,1,1,17,2,140,27,117,1,17,2,140,27,1,1,17,2,140,27,1,1,17,2,140, +29,3,1,17,2,140,29,1,1,17,5,140,29,122,3,1,6,1,17,2,142,18,1,1,17,2,141,60,1, +1,17,3,142,14,123,1,1,17,3,140,32,23,1,1,17,3,141,0,51,133,31,1,17,2,142,18, +32,1,17,2,141,65,33,1,17,2,142,20,4,1,17,3,140,36,129,3,1,1,17,13,133,35,129, +26,142,125,133,37,56,140,59,5,6,129,4,4,140,59,3,1,1,17,2,142,23,30,1,17,2,140, +37,129,6,1,17,2,140,38,129,7,1,17,2,140,45,129,8,1,17,3,140,55,34,1,1,17,2,140, +47,129,10,1,17,3,140,41,36,1,1,17,3,140,45,129,12,1,1,17,14,133,43,129,35,143, +16,129,13,65,140,45,140,45,38,8,7,6,4,1,143,12,1,17,3,140,42,129,14,141,85,1, +17,3,140,43,129,15,141,86,1,17,3,140,46,50,1,1,17,3,140,44,129,17,142,45,1,17, +3,140,45,129,18,142,46,1,17,3,140,45,129,19,1,1,17,3,140,45,129,20,142,48,1, +17,3,140,48,129,21,142,49,1,17,3,140,48,129,22,1,1,17,3,140,69,57,1,1,17,3,140, +49,129,24,142,52,1,17,3,140,55,59,1,1,17,3,140,59,129,26,1,1,17,16,133,56,129, +49,143,24,129,27,141,98,79,140,56,61,13,11,10,142,55,8,7,4,1,1,17,3,133,56,15, +142,39,1,17,2,142,52,1,1,17,2,133,57,0,0,132,128,128,0,1,24,2,0,0,2,0,0,1,1, +24,2,0,0,8,0,0,3,1,24,2,0,0,32,0,0,5,1,24,4,0,0,4,0,0,2,3,2,1,24,2,0,0,129,0, +0,0,7,1,24,2,0,0,132,0,0,0,9,1,24,4,0,0,64,0,0,6,4,2,1,24,2,0,0,144,0,0,0,11, +1,24,2,0,0,192,0,0,0,13,1,24,4,0,0,136,0,0,0,10,4,2,1,24,4,0,0,16,0,0,4,7,4, +1,24,2,0,0,130,128,0,0,0,15,1,24,2,0,0,136,128,0,0,0,17,1,24,4,0,0,129,128,0, +0,0,14,5,2,1,24,2,0,0,160,128,0,0,0,19,1,24,2,0,0,129,128,128,0,0,0,21,1,24, +2,0,0,132,128,128,0,0,0,23,1,24,4,0,0,144,128,0,0,0,18,5,3,1,24,4,0,0,130,128, +128,0,0,0,22,3,2,1,24,4,0,0,160,0,0,0,12,10,6,1,24,4,0,0,192,128,0,0,0,20,3, +2,1,26,4,0,0,132,128,0,0,0,16,2,1,1,24,4,0,0,130,0,0,0,8,12,1,1,17,3,140,77, +129,53,140,122,1,17,3,142,65,25,1,1,17,4,133,82,26,1,142,43,1,17,3,140,78,129, +57,140,79,1,17,3,140,78,129,74,1,1,17,3,140,78,129,57,1,1,17,3,142,75,129,50, +1,1,17,4,140,79,130,0,1,8,1,17,3,142,76,129,52,1,1,17,6,133,88,33,141,93,130, +2,1,10,1,17,4,133,88,129,38,8,1,1,17,4,133,88,129,47,129,39,1,1,17,2,142,37, +1,1,17,2,133,28,1,1,17,8,133,28,129,68,140,85,140,85,142,79,142,79,39,1,1,17, +2,142,92,1,1,17,3,140,85,129,70,142,81,1,17,3,140,86,129,71,142,82,1,17,3,140, +86,77,140,88,1,17,3,140,86,78,1,1,17,3,140,86,129,91,1,1,17,3,140,86,6,1,1,17, +6,134,39,129,76,6,5,133,98,1,1,17,2,142,100,1,1,17,2,140,88,141,55,1,17,2,140, +89,141,56,1,17,2,140,90,141,57,1,17,2,140,91,141,58,1,17,2,142,18,5,1,17,2,142, +101,6,1,17,3,140,92,129,22,1,1,17,2,141,95,1,1,17,3,140,93,129,24,1,1,17,2,140, +92,140,93,1,17,2,142,46,133,109,1,17,28,133,109,129,114,129,101,129,96,129,27, +11,140,98,129,111,143,126,129,99,129,97,129,92,10,140,98,129,91,141,65,9,140, +98,141,65,141,65,8,140,98,7,3,140,98,2,1,140,98,1,17,2,142,113,1,1,17,3,140, +118,129,91,140,94,1,17,3,140,119,129,92,140,95,1,17,3,140,120,129,93,140,96, +1,17,3,140,121,129,94,140,97,1,17,2,142,31,18,1,17,2,142,114,19,1,17,3,140,105, +129,35,1,1,17,3,142,114,129,96,1,1,17,3,140,101,129,37,1,1,17,3,140,127,129, +100,140,103,1,17,3,141,24,129,99,140,107,1,17,2,142,60,133,123,1,17,29,133,122, +130,0,129,110,129,115,129,41,140,107,12,129,125,144,11,129,105,141,79,129,111, +140,107,11,129,106,129,113,140,107,10,141,79,141,79,140,107,9,129,101,8,4,3, +2,1,140,112,1,17,2,142,127,1,1,17,2,140,106,28,1,17,2,142,64,133,127,1,17,2, +140,108,30,1,17,2,142,66,134,1,1,17,2,140,110,32,1,17,2,142,68,134,3,1,17,2, +140,112,34,1,17,2,142,70,134,5,1,17,2,143,3,36,1,17,2,141,33,1,1,17,2,142,73, +134,8,1,17,2,140,117,39,1,17,3,141,40,27,134,10,1,17,2,140,118,1,1,17,2,140, +118,1,1,17,3,143,5,16,1,1,17,2,140,119,1,1,17,2,142,80,134,15,1,17,27,134,13, +129,93,134,57,134,57,18,17,130,17,143,90,134,57,141,99,16,15,129,63,141,99,141, +99,14,13,141,99,141,99,12,11,9,8,7,2,1,144,30,1,17,2,143,19,1,1,17,2,141,7,134, +18,1,17,3,143,13,22,1,1,17,3,140,124,3,1,1,17,3,140,124,4,1,1,17,2,140,124,1, +1,17,3,143,14,40,1,1,17,3,140,125,7,1,1,17,3,140,125,8,1,1,17,3,143,18,43,1, +1,17,3,140,126,10,1,1,17,2,141,17,134,28,1,17,3,140,127,12,1,1,17,2,140,127, +1,1,17,3,140,127,14,1,1,17,2,141,21,134,32,1,17,3,141,0,36,1,1,17,3,141,4,17, +1,1,17,2,141,4,1,1,17,3,141,2,19,1,1,17,3,143,30,54,1,1,17,3,141,3,21,1,1,17, +2,143,36,69,1,17,3,141,4,23,1,1,17,2,143,38,71,1,17,2,141,99,72,1,17,12,134, +39,131,25,130,50,144,56,26,16,12,5,3,2,1,73,1,17,2,143,46,1,1,17,2,141,8,48, +1,17,6,134,41,130,41,1,131,28,130,52,143,124,1,17,3,141,96,131,11,30,1,17,2, +143,45,65,1,17,2,141,8,1,1,17,3,141,8,129,90,1,1,17,3,141,7,131,15,141,8,1,17, +3,141,56,2,142,102,1,17,3,141,8,129,5,1,1,17,5,141,8,131,14,3,1,142,26,1,17, +2,141,6,141,7,1,17,4,141,6,2,6,141,59,1,17,2,141,5,141,6,1,17,5,141,5,129,98, +2,61,1,1,17,7,141,5,141,12,0,32,1,129,99,4,142,68,1,1,17,2,143,10,1,1,17,3,141, +5,78,131,25,1,17,2,143,59,65,1,17,3,143,59,80,1,1,17,5,141,7,67,131,28,1,81, +1,17,2,143,62,48,1,17,3,143,62,49,1,1,17,4,141,9,50,131,31,1,1,17,2,143,65,24, +1,17,4,141,10,25,22,1,1,17,2,141,9,141,10,1,17,2,143,21,1,1,17,2,141,10,1,1, +18,2,1,130,69,1,18,2,2,129,114,1,18,2,3,129,112,1,18,2,4,129,114,1,18,2,5,129, +113,1,17,5,141,14,131,42,131,60,142,107,130,83,1,18,3,1,129,114,0,13,1,1,18, +3,2,129,114,0,13,1,2,3,17,108,114,101,102,58,32,111,117,116,32,111,102,32,108, +105,115,116,2,3,30,108,105,115,116,45,115,101,116,58,32,111,117,116,32,111,102, +32,108,105,115,116,32,115,101,116,116,105,110,103,32,2,3,28,108,105,115,116, +45,100,101,108,58,32,111,117,116,32,111,102,32,108,105,115,116,44,32,108,101, +102,116,32,2,3,29,108,101,100,110,58,32,111,117,116,32,111,102,32,108,105,115, +116,44,32,114,101,109,97,105,110,105,110,103,32,2,3,24,108,105,110,115,58,32, +111,117,116,32,111,102,32,108,105,115,116,44,32,108,101,102,116,32,2,3,10,98, +97,100,32,105,111,116,97,58,32,1,17,5,134,81,131,69,6,23,143,77,1,17,2,143,90, +1,1,17,2,141,23,143,90,1,17,5,134,83,131,72,8,26,1,1,17,2,143,41,1,1,17,2,141, +76,143,93,1,17,5,134,85,131,75,10,29,1,1,17,2,143,96,1,1,17,2,141,29,143,96, +1,17,5,134,87,131,78,12,32,1,1,17,2,143,47,1,1,17,2,141,32,143,99,1,17,5,134, +89,131,81,14,35,1,1,17,2,143,50,1,1,17,2,141,34,40,1,17,3,141,34,131,66,1,1, +17,2,141,87,143,104,1,17,3,134,93,40,1,1,17,2,143,107,1,1,17,3,134,94,42,143, +96,1,17,2,143,109,1,1,17,2,141,39,143,109,1,17,3,141,39,48,1,1,17,3,141,39,36, +1,1,17,2,143,61,1,1,17,2,141,43,143,113,1,17,3,141,43,52,1,1,17,3,141,43,39, +1,1,17,2,143,65,1,1,17,4,141,44,131,98,30,145,6,1,17,2,141,44,2,1,17,5,141,44, +45,2,43,1,1,17,2,141,46,8,1,17,4,141,45,46,2,1,1,17,3,141,45,46,1,1,17,6,134, +109,131,63,143,44,143,44,58,142,41,1,17,2,141,46,1,1,17,2,141,46,143,125,1,17, +2,141,46,1,1,17,2,143,76,1,1,17,3,141,47,144,0,144,0,1,17,2,141,47,1,1,17,2, +143,79,1,1,17,2,143,67,144,3,1,17,3,141,49,2,1,1,17,2,144,6,1,1,17,4,141,49, +144,6,7,141,50,1,17,2,143,76,1,1,17,3,141,50,3,143,125,1,17,2,144,10,1,1,17, +2,141,51,1,1,17,3,141,51,4,1,1,17,2,141,51,1,1,17,3,141,50,130,109,143,21,1, +17,3,141,50,74,142,60,1,17,3,141,50,130,111,1,1,17,4,135,1,76,3,1,1,17,3,135, +1,130,97,1,1,17,2,143,95,1,1,17,2,141,53,1,1,17,2,141,54,2,1,17,2,141,54,79, +1,17,2,142,45,1,1,17,2,141,56,81,1,17,2,142,47,1,1,17,10,135,8,85,129,27,6,5, +131,3,3,1,131,25,145,4,1,17,2,144,27,1,1,17,2,141,47,142,22,1,17,3,141,47,143, +113,1,1,17,2,144,30,1,1,17,3,141,48,142,76,143,104,1,17,3,141,48,143,116,1,1, +17,2,143,109,1,1,17,3,141,49,142,79,143,107,1,17,3,141,51,143,119,1,1,17,2,143, +112,1,1,17,2,141,51,142,31,1,17,3,141,51,1,144,37,1,17,3,141,51,143,123,1,1, +17,2,144,40,1,1,17,3,141,47,144,24,144,40,1,17,3,141,47,143,126,1,1,17,2,144, +40,1,2,3,33,117,116,102,56,32,101,110,99,111,100,101,58,32,99,111,100,101,32, +112,111,105,110,116,32,116,111,111,32,104,105,103,104,32,1,17,3,135,26,95,0, +0,128,255,255,127,1,17,2,141,50,0,0,129,0,1,17,3,144,29,130,126,1,1,17,3,142, +114,1,141,51,1,17,3,141,51,2,1,1,17,3,141,51,131,17,1,1,17,3,141,51,4,1,1,17, +3,141,51,131,19,1,1,17,4,141,51,131,3,1,0,0,129,112,1,17,3,141,51,131,5,1,1, +17,5,141,51,132,35,11,131,22,1,1,17,3,141,50,9,141,51,1,17,3,141,57,10,1,1,17, +3,141,51,131,25,1,1,17,4,141,57,131,9,1,0,0,129,96,1,17,3,141,52,131,11,1,1, +17,6,141,52,113,6,0,0,129,128,128,0,131,28,1,1,17,3,141,51,15,141,52,1,17,4, +141,61,131,13,1,0,0,129,64,1,17,3,141,52,131,15,1,1,17,6,141,52,117,4,0,0,132, +128,0,131,32,1,1,17,4,141,52,118,1,0,0,144,0,1,17,4,141,52,119,1,0,0,129,0,1, +17,3,141,91,131,18,141,111,1,17,3,141,51,131,20,1,1,17,3,141,51,131,29,1,1,17, +6,141,51,141,54,0,0,129,0,129,5,1,0,0,129,64,1,17,5,135,52,124,141,56,144,28, +1,1,17,2,144,13,1,1,17,9,135,53,0,0,129,64,1,0,0,129,0,0,0,129,96,0,0,144,0, +0,0,129,112,0,0,132,128,0,0,0,129,120,1,17,4,141,53,144,39,1,141,54,1,17,4,141, +53,132,15,144,32,1,1,17,2,144,25,1,1,17,2,141,54,1,2,3,29,115,116,114,105,110, +103,45,108,101,110,103,116,104,58,32,110,111,116,32,97,32,115,116,114,105,110, +103,58,32,2,3,24,115,116,114,45,105,116,101,114,58,32,110,111,116,32,97,32,115, +116,114,105,110,103,58,32,2,3,25,115,116,114,45,105,116,101,114,114,58,32,110, +111,116,32,97,32,115,116,114,105,110,103,58,32,2,3,23,70,97,105,108,101,100, +32,116,111,32,109,97,107,101,32,115,116,114,105,110,103,58,32,1,1,2,0,0,0,0, +13,0,1,1,2,0,0,0,0,13,0,1,17,3,141,59,132,65,6,1,17,2,141,58,141,59,1,17,2,144, +27,1,1,17,2,141,58,141,59,1,17,2,144,37,1,1,17,2,135,68,3,1,17,3,141,101,129, +28,144,74,1,17,2,141,61,1,1,17,7,141,61,8,3,4,1,132,73,13,1,17,2,144,94,1,1, +17,2,144,17,1,1,17,2,135,73,141,63,1,17,2,144,45,1,1,17,2,141,64,141,65,1,17, +2,144,47,1,1,17,2,143,77,3,1,17,3,135,77,129,35,1,1,17,3,141,112,129,36,144, +85,1,17,2,141,68,1,1,17,7,141,68,19,3,5,1,132,84,23,1,17,2,144,105,1,1,17,2, +144,28,1,1,17,2,143,84,71,1,17,3,141,71,2,1,1,17,2,141,71,42,1,17,3,143,104, +2,43,1,17,3,144,41,3,44,1,17,3,143,106,4,135,23,1,17,3,144,43,5,4,1,17,5,135, +89,132,53,144,34,129,48,143,31,1,17,2,144,63,1,1,17,4,141,76,132,78,141,77,129, +53,1,17,4,141,76,132,68,1,32,1,17,4,141,75,132,80,141,76,129,55,1,17,4,141,75, +132,70,1,34,1,17,4,141,75,132,71,1,144,117,1,17,3,141,75,6,1,1,17,3,141,75,7, +1,1,17,3,141,75,8,1,1,17,5,141,75,129,61,7,130,97,1,1,17,3,141,75,129,48,1,1, +17,3,141,75,129,22,1,1,17,2,144,124,1,1,17,3,141,75,132,108,46,1,17,4,141,75, +132,68,141,77,1,1,17,2,143,16,3,1,17,3,141,76,132,70,1,1,17,3,141,74,129,55, +0,0,130,0,1,17,4,141,73,129,57,0,0,129,0,141,74,1,17,3,141,73,129,71,1,1,17, +5,141,73,90,1,6,141,79,1,17,6,141,73,141,79,129,60,4,0,0,129,0,1,1,17,7,141, +73,8,6,0,0,160,0,141,81,144,93,1,1,17,2,143,31,1,1,17,2,141,74,1,1,18,3,133, +8,62,1,1,17,2,143,27,1,1,17,3,143,21,31,1,1,17,3,141,77,32,1,1,17,2,141,77,145, +4,1,17,3,141,76,129,70,141,77,1,17,3,141,76,144,102,1,1,17,4,141,76,1,129,72, +141,79,1,17,5,141,76,144,104,4,143,14,1,1,17,3,141,76,144,105,1,1,17,2,145,22, +1,1,17,2,145,18,1,1,17,3,143,34,57,1,1,17,3,141,79,58,1,1,17,3,142,113,129,79, +1,1,17,3,141,80,70,1,1,17,3,142,99,71,1,1,17,4,141,79,129,79,141,80,0,0,131, +255,127,1,17,3,141,79,129,54,1,1,17,8,141,79,51,141,83,135,70,76,1,92,75,2,3, +36,66,97,100,32,118,101,99,116,111,114,32,110,111,100,101,32,105,110,32,100, +105,115,112,97,116,99,104,45,49,58,32,116,121,112,101,32,2,3,27,76,101,97,102, +32,118,101,99,116,111,114,32,105,110,32,100,105,115,112,97,116,99,104,45,50, +58,32,2,3,35,66,97,100,32,118,101,99,116,111,114,32,110,111,100,101,32,105,110, +32,100,105,115,112,97,116,99,104,45,50,58,32,111,98,106,32,2,3,39,98,97,100, +32,118,101,99,116,111,114,32,110,111,100,101,32,105,110,32,118,101,99,45,114, +101,102,45,100,105,103,105,116,58,32,116,121,112,101,32,2,3,20,118,101,99,45, +114,101,102,58,32,98,97,100,32,105,110,100,101,120,58,32,2,3,24,118,101,99,45, +108,101,97,102,45,111,102,58,32,98,97,100,32,105,110,100,101,120,58,32,2,3,23, +118,101,99,45,108,101,110,58,32,110,111,116,32,97,32,118,101,99,116,111,114, +58,32,2,3,34,111,117,116,32,111,102,32,108,101,97,118,101,115,32,98,101,102, +111,114,101,32,111,117,116,32,111,102,32,100,97,116,97,58,32,1,17,4,141,81,0, +0,159,127,133,20,8,1,17,4,135,105,133,21,8,7,1,17,2,144,83,2,1,17,2,144,84,3, +1,17,6,141,84,3,2,4,0,0,160,0,1,1,17,2,145,45,1,1,17,5,141,85,0,0,159,127,0, +0,160,0,133,26,11,1,17,2,145,47,1,1,17,2,143,103,1,1,17,3,141,87,8,1,1,17,3, +141,87,5,1,1,17,3,141,87,4,0,0,159,127,1,17,8,136,26,11,1,5,0,0,160,0,2,133, +32,16,1,17,2,143,108,12,1,17,3,141,91,9,1,1,17,6,136,28,14,0,0,160,0,1,133,35, +18,1,17,5,141,91,133,36,18,145,66,146,63,2,19,0,1,17,2,143,72,141,92,1,17,4, +141,91,132,126,141,92,1,1,17,2,136,32,0,0,129,127,1,17,3,141,90,129,126,141, +91,1,17,3,141,90,3,1,1,17,3,143,54,130,0,145,68,1,17,3,141,91,133,3,1,1,17,3, +141,88,5,141,89,1,17,5,141,88,141,92,130,3,141,91,1,1,17,9,141,88,0,0,160,0, +8,5,133,6,144,115,3,145,23,1,1,17,2,141,99,1,1,17,6,136,40,133,8,144,118,144, +117,130,3,142,77,1,17,2,145,18,1,1,17,2,143,53,145,70,1,17,4,141,90,130,3,1, +0,0,160,0,1,17,3,141,90,3,1,1,17,2,145,74,1,1,17,3,142,100,133,55,36,1,17,2, +141,92,145,75,1,17,3,141,97,130,14,1,1,17,3,141,97,129,102,1,1,17,6,141,94,129, +103,4,9,1,0,0,160,0,1,17,2,141,94,1,1,17,3,141,94,133,35,1,1,17,4,141,94,8,1, +0,0,159,127,1,17,3,141,93,130,20,141,94,1,17,3,141,93,129,108,1,1,17,4,141,93, +28,3,1,1,17,2,141,93,1,1,17,4,136,22,30,19,1,1,17,2,145,36,136,58,1,17,2,141, +94,1,1,17,3,136,59,130,24,1,1,17,2,145,39,136,59,1,17,2,143,1,1,1,17,3,136,60, +130,27,1,1,17,2,145,94,1,1,17,3,141,98,130,19,141,99,1,17,4,141,98,130,33,1, +0,0,160,0,1,17,3,141,98,3,1,1,17,3,141,98,43,1,1,17,4,141,98,43,143,1,1,1,17, +2,141,97,142,111,1,17,3,136,67,130,35,1,1,17,2,145,50,1,1,17,3,141,99,130,37, +144,110,1,17,2,141,99,1,1,17,2,145,53,1,1,17,3,141,100,4,1,1,17,2,145,107,1, +1,17,4,141,101,130,42,145,96,0,0,160,0,1,17,3,141,110,2,1,1,17,3,141,102,55, +1,1,17,2,145,111,1,1,17,2,145,107,1,1,17,2,145,108,2,1,17,4,136,79,130,48,2, +1,1,17,4,141,106,132,66,1,0,0,159,127,1,17,3,145,13,60,1,1,17,2,144,94,129,84, +1,17,3,142,81,19,1,1,17,2,144,96,129,83,1,17,3,142,83,4,1,1,17,4,141,111,31, +1,136,32,2,3,0,2,3,2,124,124,1,18,2,134,18,0,0,32,1,17,2,145,65,1,1,18,2,133, +125,1,2,3,1,124,2,3,1,124,2,3,14,78,111,116,32,97,32,115,121,109,98,111,108, +58,32,1,17,3,141,118,115,2,1,17,4,141,118,116,1,4,1,17,4,141,118,6,1,9,1,17, +6,141,118,105,1,11,133,113,4,1,17,3,141,116,130,68,141,117,1,17,3,141,116,130, +60,1,1,17,2,145,84,1,1,17,2,141,117,1,1,17,3,141,115,141,117,141,116,1,17,2, +136,103,141,114,1,17,2,145,80,1,1,17,2,145,89,136,104,1,17,2,144,119,1,1,17, +2,141,117,142,75,1,17,7,136,106,4,146,16,130,78,2,145,100,1,1,17,3,141,118,145, +101,1,1,17,2,141,118,118,1,17,5,141,118,142,8,2,142,122,1,1,17,3,141,118,142, +123,1,1,17,2,146,21,1,2,3,26,114,115,101,116,58,32,111,117,116,32,111,102,32, +108,105,115,116,32,115,101,116,116,105,110,103,32,1,17,3,141,118,130,88,141, +119,1,17,3,141,118,130,89,1,1,17,3,141,118,130,78,1,1,17,2,141,118,145,41,1, +17,3,146,17,130,89,1,1,17,2,141,120,141,119,1,17,5,141,119,130,94,2,130,91,1, +1,17,3,141,119,130,80,1,1,17,3,136,120,132,126,1,1,17,2,145,100,1,1,17,2,141, +120,141,121,1,17,5,141,119,130,96,1,2,141,120,1,17,5,141,119,134,15,13,130,87, +1,1,17,2,145,112,1,1,17,2,141,120,145,102,1,17,2,141,120,1,1,17,2,145,115,1, +1,17,2,143,77,1,1,17,2,141,122,1,1,17,2,145,118,1,1,17,3,145,37,1,136,82,1,17, +2,145,72,0,13,4,2,3,5,35,116,114,117,101,2,3,6,35,102,97,108,115,101,2,3,11, +35,60,102,117,110,99,116,105,111,110,62,2,3,6,35,60,87,84,70,62,2,3,5,35,116, +114,117,101,2,3,6,35,102,97,108,115,101,2,3,2,35,60,2,3,1,62,2,3,11,35,60,102, +117,110,99,116,105,111,110,62,2,3,6,35,60,87,84,70,62,1,17,3,142,37,130,117, +142,38,1,17,3,142,37,130,109,1,1,17,2,146,5,1,1,17,2,142,38,1,1,17,3,142,4,134, +21,146,59,1,17,3,142,4,2,1,1,17,2,145,38,133,103,1,17,5,142,5,133,102,2,130, +127,1,1,17,3,142,5,133,107,1,1,17,2,142,5,1,1,17,3,142,5,146,66,1,1,17,3,142, +5,0,13,3,1,1,17,2,144,81,133,91,1,17,3,144,101,2,1,1,17,2,145,110,134,10,1,17, +5,142,5,0,13,3,129,86,1,22,1,17,2,142,4,142,5,1,17,5,142,4,28,2,142,18,1,1,17, +2,142,6,142,4,1,17,5,142,4,142,26,2,142,20,1,1,17,2,142,8,142,4,1,17,5,142,6, +142,26,2,142,22,1,1,17,2,142,10,137,11,1,17,5,142,8,142,29,2,69,1,1,17,2,142, +6,142,7,1,17,5,142,10,142,64,2,133,104,1,1,17,2,142,8,142,7,1,17,6,142,7,0,13, +3,134,4,2,39,1,1,17,2,142,7,137,16,1,17,2,142,6,142,7,1,17,4,142,6,134,47,2, +1,1,17,6,137,18,142,55,4,130,91,1,0,32,1,1,17,2,142,11,137,21,1,17,2,142,10, +142,11,1,17,4,142,10,134,51,2,1,1,17,6,137,21,137,31,4,130,95,1,0,32,1,1,17, +4,142,11,142,75,1,44,1,17,2,142,19,142,20,1,17,5,142,12,83,2,100,1,1,17,5,142, +12,142,100,1,89,144,88,1,17,2,146,8,134,36,1,17,3,142,34,129,112,1,1,17,6,142, +14,142,86,3,51,52,1,1,17,2,142,22,142,21,1,17,3,142,13,142,14,1,1,17,3,142,13, +146,56,1,1,17,5,142,13,146,58,4,142,17,1,1,17,4,142,13,146,58,1,129,119,1,17, +4,142,13,143,78,1,131,41,1,17,3,142,13,138,20,1,1,17,2,146,105,1,1,17,3,142, +13,134,47,146,26,1,17,8,142,13,0,13,3,2,146,27,129,123,1,53,146,27,1,17,5,142, +13,64,1,3,146,28,1,17,5,142,14,142,61,1,4,146,29,1,17,5,142,15,142,60,1,5,146, +30,1,17,2,137,41,146,31,1,17,3,137,41,137,46,1,1,17,5,137,41,142,64,3,104,1, +1,17,2,142,18,142,42,1,17,5,137,42,142,99,2,134,11,1,1,17,2,142,20,142,42,1, +17,7,142,20,0,13,3,146,37,134,39,2,74,1,1,17,8,142,20,13,65,146,38,134,72,146, +38,67,66,1,17,5,142,20,142,88,2,134,35,1,1,17,2,142,24,142,48,1,17,5,142,21, +111,2,129,0,1,1,17,3,142,29,17,146,42,1,17,5,142,22,143,1,2,118,1,1,17,3,142, +31,134,65,146,44,1,17,3,144,83,130,13,1,1,17,6,142,24,142,115,3,76,77,1,1,17, +2,142,22,146,47,1,17,2,142,22,142,51,1,17,2,142,22,1,1,17,4,142,22,142,26,3, +1,1,17,3,142,22,134,43,147,8,1,17,3,142,22,131,66,1,1,17,2,142,22,1,1,17,2,142, +22,1,1,17,3,144,119,134,16,1,1,17,3,142,22,31,142,23,1,17,4,142,22,2,146,57, +1,1,17,3,142,22,131,62,1,1,17,5,142,22,146,95,9,131,91,1,1,17,4,142,22,146,60, +134,56,1,1,17,5,142,22,146,98,15,142,38,1,1,17,6,142,21,146,98,1,130,29,142, +22,146,62,1,17,5,142,21,143,118,1,131,81,146,63,1,17,3,142,21,39,142,72,1,17, +3,142,36,134,57,147,22,1,17,3,142,36,131,80,1,1,17,2,142,23,1,1,17,3,142,23, +4,1,1,17,4,142,23,44,142,77,146,69,1,17,5,142,23,134,31,2,131,102,1,1,17,6,142, +23,142,59,138,67,8,131,75,1,1,17,3,142,23,134,68,1,1,17,3,142,23,146,101,1,1, +17,2,142,23,0,13,3,1,17,3,142,23,142,124,1,1,17,3,142,24,146,111,1,1,17,3,142, +25,142,108,1,1,17,3,142,26,142,108,1,1,17,3,142,27,142,111,1,1,17,3,142,28,129, +22,1,1,17,3,142,29,146,118,1,1,17,3,142,30,144,9,1,1,17,3,146,60,138,79,1,1, +17,3,142,30,1,142,31,1,17,3,143,13,142,116,146,64,1,17,3,142,34,142,116,1,1, +17,3,142,35,142,119,1,1,17,2,145,54,147,46,1,17,4,142,34,143,30,2,1,1,17,3,146, +67,129,32,1,1,17,3,142,35,131,108,145,88,1,17,3,142,35,134,84,1,1,17,3,142,35, +0,13,3,1,1,17,4,144,70,135,8,1,142,35,1,17,4,143,59,107,1,5,1,17,2,147,43,12, +1,17,3,142,37,1,142,113,1,17,4,142,37,0,13,3,3,1,1,17,2,142,37,1,1,17,3,143, +98,27,1,1,17,2,145,67,131,10,1,17,2,142,39,1,1,17,2,142,41,1,1,17,3,143,102, +4,1,1,1,2,0,13,0,0,13,0,1,17,3,145,62,134,125,147,63,1,17,3,142,43,134,126,1, +1,17,2,142,43,1,1,17,4,142,41,4,1,142,42,2,3,7,10,32,32,32,32,32,32,1,1,2,0, +0,10,0,13,0,1,1,2,0,0,10,0,13,0,1,1,2,0,0,10,0,13,0,1,1,2,0,0,10,0,13,0,1,17, +2,142,46,135,57,1,17,2,142,46,135,58,1,17,3,143,113,130,38,1,1,17,4,142,45,135, +21,142,47,142,46,1,17,3,142,45,131,76,1,1,17,2,142,45,135,62,1,17,4,142,45,143, +25,1,135,63,1,17,3,143,72,143,24,1,1,17,6,138,35,135,43,142,46,0,12,131,255, +127,4,145,69,1,17,3,142,46,2,1,1,17,2,138,36,1,1,17,2,147,78,1,1,17,2,142,48, +143,28,1,17,3,142,48,11,1,1,17,2,142,50,143,30,1,17,3,142,49,13,1,1,17,4,142, +48,135,51,142,49,0,12,131,255,127,1,17,3,142,48,135,74,1,1,17,2,147,33,1,1,17, +2,142,49,1,1,17,2,142,47,143,34,1,17,2,138,46,1,1,17,2,146,33,147,88,1,17,4, +142,48,132,24,1,142,49,1,17,3,142,48,132,15,1,1,17,3,142,48,147,46,1,1,17,2, +147,41,1,1,17,2,138,51,1,1,17,2,142,49,135,86,1,17,5,142,49,135,84,142,51,132, +27,1,1,17,3,138,53,135,74,1,1,17,2,147,95,1,1,17,4,142,50,135,77,142,51,148, +15,1,17,3,138,55,147,52,1,1,17,3,142,51,147,55,1,1,17,2,147,99,1,1,17,3,146, +3,9,147,86,1,17,3,142,53,2,147,87,1,17,4,144,103,135,83,1,148,23,1,17,3,142, +54,147,58,1,1,17,3,145,65,9,1,1,17,5,142,55,147,62,1,14,147,91,1,17,5,142,55, +135,83,6,135,82,1,1,17,2,147,107,1,1,17,2,147,32,1,1,17,4,147,119,135,93,0,12, +131,255,127,1,1,17,2,142,58,135,101,1,17,3,142,58,2,1,1,17,2,145,121,48,1,17, +3,142,59,132,53,147,104,1,17,3,142,59,39,1,1,17,4,142,59,145,112,144,32,1,1, +17,3,142,59,147,75,1,1,17,2,146,27,1,1,17,6,142,60,135,89,147,117,0,12,131,255, +127,143,68,147,126,1,17,3,142,60,135,112,1,1,17,2,147,120,1,1,17,2,142,61,145, +5,1,17,3,142,61,2,1,1,17,2,147,123,1,1,17,2,142,96,143,75,1,17,3,142,89,135, +118,1,1,17,2,142,64,3,1,17,2,142,64,1,1,17,3,144,49,3,1,1,17,3,142,64,54,142, +65,1,17,2,142,64,55,1,17,5,142,64,0,0,160,0,135,73,2,1,1,17,2,147,75,1,1,17, +2,142,65,1,1,17,2,142,65,2,1,17,5,142,65,135,92,1,129,33,75,1,17,2,142,67,4, +1,17,3,144,74,129,35,1,1,17,3,147,99,1,0,12,1,1,17,3,142,68,7,0,12,1,1,17,7, +142,68,5,0,12,1,135,97,1,129,38,79,1,17,2,142,72,9,1,17,5,142,69,135,99,1,129, +40,80,1,17,3,142,72,11,0,12,1,1,17,5,142,70,135,101,1,129,42,81,1,17,2,142,70, +136,10,1,17,3,142,70,1,87,1,17,3,144,68,2,1,1,17,2,142,71,136,13,2,3,12,101, +110,100,32,111,102,32,105,110,112,117,116,2,3,8,98,97,100,32,98,121,116,101, +2,3,1,58,2,3,1,32,2,3,1,58,2,3,1,32,2,3,11,111,117,116,32,111,102,32,100,97, +116,97,2,3,5,105,110,112,117,116,1,1,2,148,74,0,13,0,1,1,2,149,17,1,1,1,2,0, +0,32,0,13,0,1,1,2,0,0,32,1,1,1,2,0,0,32,1,1,1,2,0,0,10,0,13,0,1,1,2,0,0,39,1, +1,1,2,0,0,10,0,13,0,1,1,2,0,0,94,1,1,17,4,142,84,145,24,132,106,142,85,1,17, +4,142,84,18,147,126,1,1,17,2,147,111,1,1,17,2,142,84,142,85,1,17,2,142,84,20, +1,17,2,142,84,1,1,17,3,142,84,4,1,1,17,2,145,111,1,1,17,2,142,85,16,1,17,3,142, +85,7,1,1,17,2,145,114,1,1,17,3,142,84,132,104,142,85,1,17,2,142,84,1,1,17,2, +142,84,1,1,17,2,145,116,1,1,17,3,142,84,135,123,146,123,1,17,4,142,84,148,13, +147,84,1,1,17,3,142,84,142,87,1,1,17,2,142,84,1,1,17,2,145,121,1,1,17,2,142, +85,1,1,17,2,142,85,2,1,17,4,142,79,55,0,12,2,23,1,17,4,142,79,56,1,0,12,2,1, +17,4,142,80,136,16,1,142,79,1,17,3,142,79,132,71,1,1,17,3,142,79,133,4,1,1,17, +4,142,79,60,1,0,12,2,1,17,4,145,76,136,10,1,31,1,17,3,142,80,132,27,1,1,17,5, +142,80,63,1,0,12,2,35,1,17,4,142,80,62,1,0,12,2,1,17,2,147,50,1,1,17,3,142,81, +133,8,1,1,17,3,142,81,136,14,1,1,17,3,148,34,64,0,12,2,1,17,2,147,54,5,1,17, +3,148,71,133,12,1,1,17,3,142,83,133,16,1,1,17,3,142,83,133,14,1,1,17,3,147,18, +132,105,1,1,17,3,142,84,136,21,1,1,17,3,143,75,133,20,142,84,1,17,8,142,84,136, +33,2,71,56,55,133,21,1,1,17,5,142,84,133,22,142,90,133,8,1,1,17,4,142,84,145, +117,133,11,1,1,17,8,142,84,136,36,12,11,61,60,148,43,1,1,17,2,142,84,1,1,17, +2,142,84,148,72,1,17,3,142,84,148,46,1,1,17,2,148,88,1,1,17,2,143,10,148,75, +1,17,3,143,10,148,49,1,1,17,2,148,91,1,1,17,2,142,88,65,1,17,3,142,88,2,1,1, +17,2,147,74,25,1,17,2,147,118,10,1,17,5,142,90,133,33,2,68,1,1,17,5,142,90,9, +147,127,1,148,68,1,17,3,142,90,5,1,2,3,17,104,111,119,32,100,111,32,105,32,105, +116,101,114,97,116,101,32,1,17,2,142,90,145,86,1,17,3,142,90,148,60,1,1,17,2, +148,45,1,1,17,2,142,91,145,89,1,17,3,142,91,148,63,1,1,17,2,142,89,142,90,1, +17,4,142,89,1,136,25,142,92,1,17,3,142,89,148,66,1,1,17,2,148,114,1,1,17,2,142, +89,148,11,1,17,2,142,89,1,1,17,2,142,88,142,89,1,17,2,142,88,148,14,1,17,3,142, +88,1,148,64,1,17,2,142,88,1,1,17,3,142,88,133,52,146,78,1,17,2,139,73,1,1,17, +2,142,89,1,1,17,2,142,94,148,20,1,17,3,142,92,133,56,146,82,1,17,3,139,76,2, +1,1,17,2,142,93,1,1,17,2,148,73,142,93,1,17,4,142,92,1,142,93,148,125,1,17,2, +148,75,1,1,17,3,142,92,1,142,93,1,17,2,142,92,1,1,17,3,142,92,133,67,1,1,17, +3,142,92,148,85,1,1,17,2,149,4,142,91,1,1,2,0,0,0,0,13,0,1,1,2,1,0,13,0,1,17, +3,142,93,1,142,95,1,17,3,142,94,2,142,93,1,17,4,142,92,148,125,2,142,93,1,17, +4,142,92,3,148,94,1,1,17,2,149,11,1,1,17,4,142,93,136,120,38,131,41,1,17,4,142, +93,145,19,1,132,46,1,17,3,142,93,145,117,1,1,17,3,148,40,148,99,1,1,17,2,149, +11,5,1,17,3,142,95,2,1,1,17,2,149,13,11,1,17,3,142,97,4,1,1,17,3,146,41,132, +9,144,85,1,17,3,142,98,136,88,1,1,17,2,142,98,149,21,1,17,3,146,25,132,12,1, +1,17,3,142,99,136,91,1,1,17,4,142,99,146,56,17,1,1,17,4,142,99,5,148,110,1,1, +17,2,148,95,1,1,17,2,142,100,1,1,17,3,142,100,14,1,1,17,2,142,100,136,99,1,17, +3,149,25,27,1,1,17,3,142,101,133,94,1,1,17,2,142,101,1,1,17,3,142,101,136,116, +1,1,17,2,148,12,1,1,17,3,142,102,2,1,1,17,5,142,102,149,36,38,1,32,1,17,4,142, +102,149,21,30,1,1,17,3,142,102,148,123,1,1,17,2,142,102,1,1,17,2,142,102,1,1, +17,2,147,56,132,31,1,17,3,142,103,3,1,1,17,5,142,103,29,3,132,77,1,1,17,3,142, +103,146,20,1,1,18,2,67,0,0,46,1,17,2,148,115,1,2,3,10,98,97,100,32,100,105,103, +105,116,32,1,17,2,145,21,133,99,1,17,3,142,103,133,100,1,1,24,2,0,0,48,0,0,0, +1,24,2,0,0,50,0,0,2,1,24,2,0,0,52,0,0,4,1,24,4,0,0,49,0,0,1,3,2,1,24,2,0,0,54, +0,0,6,1,24,2,0,0,56,0,0,8,1,24,4,0,0,53,0,0,5,4,2,1,24,2,0,0,65,0,0,10,1,24, +2,0,0,67,0,0,12,1,24,4,0,0,57,0,0,9,4,2,1,24,4,0,0,51,0,0,3,7,4,1,24,2,0,0,69, +0,0,14,1,24,2,0,0,97,0,0,10,1,24,4,0,0,68,0,0,13,5,2,1,24,2,0,0,99,0,0,12,1, +26,2,0,0,102,0,0,15,1,25,3,0,0,101,0,0,14,1,1,26,4,0,0,100,0,0,13,3,1,1,24,4, +0,0,98,0,0,11,6,1,1,26,4,0,0,70,0,0,15,6,1,1,24,4,0,0,66,0,0,11,11,1,1,24,4, +0,0,55,0,0,7,11,1,1,17,2,142,124,23,1,17,2,148,115,133,126,1,17,4,142,125,136, +119,1,3,1,17,3,142,125,3,1,1,17,2,148,118,134,14,1,17,5,142,126,134,9,1,137, +58,30,1,17,4,142,126,134,0,148,106,1,1,17,3,144,42,149,86,1,1,17,4,142,127,136, +125,1,9,1,17,3,142,127,137,44,1,1,18,2,129,33,0,0,43,1,18,2,129,34,0,0,45,1, +17,2,143,126,0,0,43,1,18,3,129,32,2,1,1,18,3,129,33,4,1,1,17,3,143,4,6,148,27, +1,17,2,143,18,1,1,17,3,143,14,129,28,1,1,17,3,143,15,129,43,1,1,17,3,143,7,16, +1,1,17,2,147,28,1,1,17,3,143,8,134,28,148,33,1,17,2,143,24,1,1,17,3,143,118, +3,1,1,17,3,144,6,10,1,1,17,2,147,33,1,1,17,3,143,119,133,72,148,38,1,17,2,143, +29,1,1,17,3,143,14,3,1,1,17,2,143,31,1,1,17,3,143,15,129,52,1,1,17,3,143,15, +129,49,1,1,17,3,143,15,129,61,1,1,17,2,143,15,134,40,1,17,4,143,15,149,109,1, +148,46,1,17,3,144,1,21,1,1,17,2,143,36,148,48,1,17,3,143,17,134,41,1,1,17,3, +143,17,134,48,1,1,17,2,143,38,1,1,17,3,143,18,8,1,1,17,2,143,40,1,1,17,3,147, +10,134,44,148,54,1,17,3,149,106,133,89,1,1,17,3,143,21,134,13,1,1,17,3,143,21, +36,1,1,17,2,143,48,1,1,17,3,143,44,129,59,1,1,17,3,143,45,129,73,1,1,17,3,143, +35,46,1,1,17,2,143,52,1,1,17,3,143,26,129,73,1,1,17,4,143,26,129,70,11,1,1,17, +3,143,26,129,82,1,1,17,2,143,55,1,1,17,3,143,27,35,1,1,17,3,144,36,21,1,1,17, +2,147,65,1,1,17,2,143,28,129,30,1,17,3,146,51,2,1,1,17,2,149,46,1,1,17,3,146, +50,133,22,1,1,17,3,143,31,1,140,87,2,3,9,109,99,112,47,108,105,110,107,115,2, +3,9,109,99,112,47,98,114,101,97,107,2,3,18,115,116,111,112,112,105,110,103,32, +111,110,32,115,105,103,110,97,108,1,17,2,143,34,137,125,1,17,5,143,34,130,2, +1,0,12,2,2,2,3,40,111,108,58,32,100,114,111,112,112,105,110,103,32,101,110,118, +101,108,111,112,101,32,116,111,32,109,105,115,115,105,110,103,32,116,104,114, +101,97,100,10,2,3,13,111,108,58,32,101,110,118,101,108,111,112,101,32,2,3,4, +114,118,97,108,2,3,19,102,111,114,107,58,32,98,97,100,32,112,97,114,97,109,101, +116,101,114,2,3,49,115,121,115,99,97,108,108,32,49,52,32,45,32,109,101,109,108, +105,109,105,116,32,101,120,99,101,101,100,101,100,44,32,100,114,111,112,112, +105,110,103,32,97,32,116,104,114,101,97,100,2,3,27,98,97,100,32,115,121,115, +99,97,108,108,32,111,112,32,119,105,116,104,105,110,32,112,97,114,58,32,2,3, +7,71,79,78,68,79,82,33,2,3,7,71,79,78,68,79,82,33,1,1,2,0,0,10,0,13,0,1,17,3, +143,36,129,127,144,40,1,17,3,145,89,133,11,1,1,17,3,145,90,133,12,1,1,17,4,141, +92,131,48,1,4,1,17,4,141,106,130,3,1,12,1,17,2,143,40,149,75,1,17,3,143,40,137, +70,143,44,1,17,9,141,95,130,6,3,16,137,71,2,130,100,145,11,1,1,17,3,143,41,149, +114,1,1,17,3,143,41,137,75,1,1,17,3,143,40,1,143,41,1,17,2,146,64,1,1,17,2,141, +120,137,78,1,17,5,141,104,137,79,1,27,0,13,3,1,17,2,143,42,3,1,17,3,143,72,137, +46,1,1,17,4,143,43,137,80,1,30,1,17,3,147,65,137,48,1,1,17,7,141,105,137,49, +143,47,137,84,1,32,0,13,3,1,17,3,141,105,6,1,1,17,2,143,46,150,41,1,17,2,150, +43,1,1,17,2,143,47,3,1,17,3,143,47,2,1,1,17,3,143,47,3,1,1,17,2,143,46,143,47, +1,17,2,150,48,1,1,17,3,143,46,8,151,37,1,17,3,141,113,9,151,36,1,17,5,141,113, +137,91,1,36,0,0,127,1,17,3,148,96,137,92,44,1,17,3,143,49,137,93,1,1,17,12,143, +49,150,109,137,98,1,46,0,13,3,150,108,137,94,130,125,130,32,150,22,38,1,17,5, +143,49,138,19,143,62,1,149,103,1,17,3,143,53,15,151,60,1,17,3,143,50,137,97, +143,64,1,17,2,143,50,151,52,1,17,5,143,50,138,13,2,145,41,1,1,17,4,143,50,137, +104,1,131,3,1,17,3,143,50,150,16,150,66,1,17,2,143,50,1,1,17,2,141,124,149,111, +1,17,3,150,53,138,5,1,1,17,4,141,125,138,16,1,144,112,1,17,4,141,125,138,17, +1,144,113,1,17,2,143,59,151,49,1,17,4,143,54,37,143,55,1,1,17,5,143,53,137,113, +143,54,60,57,1,17,3,143,53,138,11,1,1,17,5,143,52,137,111,143,78,62,143,88,1, +17,7,143,52,137,112,143,79,143,88,137,114,143,79,149,120,1,17,3,143,52,131,12, +1,1,17,4,143,52,137,118,1,131,17,1,17,4,143,52,34,151,61,151,17,1,17,4,143,52, +130,54,1,59,1,17,2,143,52,151,17,1,17,4,142,8,32,151,16,1,1,17,2,143,71,151, +11,1,17,2,143,54,1,1,17,3,143,54,150,1,1,1,17,2,143,74,151,12,1,17,2,143,55, +150,3,1,17,3,147,112,36,1,1,17,4,143,56,3,138,26,1,1,17,2,143,55,143,56,1,17, +3,143,55,138,49,1,1,17,4,143,54,138,50,1,143,55,1,17,5,143,54,138,1,143,96,74, +150,9,1,17,2,143,82,150,111,1,17,2,143,55,1,1,17,5,143,55,137,101,143,99,150, +112,150,12,1,17,4,143,55,137,102,1,150,115,1,17,4,143,55,138,10,1,150,116,1, +17,4,143,55,138,11,1,150,115,1,2,22,143,94,47,45,41,40,36,34,30,28,26,143,78, +25,22,20,18,15,11,8,7,5,1,142,25,1,17,3,143,56,138,13,82,1,17,3,143,55,132,88, +143,56,1,17,3,147,26,146,78,1,1,17,2,150,100,1,1,17,4,143,57,138,15,143,116, +150,121,1,17,3,143,57,138,14,1,1,17,3,143,123,135,40,1,1,17,3,143,58,138,20, +1,1,17,4,143,58,138,21,1,150,125,1,17,4,143,58,6,1,150,122,1,17,3,147,24,146, +91,1,1,17,2,143,100,150,126,1,17,2,143,73,1,1,17,4,143,61,138,22,143,117,151, +2,1,17,2,143,103,151,2,1,17,2,143,62,16,1,17,3,143,62,138,105,1,1,17,4,143,62, +17,7,1,1,17,7,143,62,138,27,5,0,13,3,151,9,4,1,1,2,22,143,114,67,65,61,60,56, +54,50,48,46,143,98,45,42,40,38,35,31,28,27,1,7,142,45,1,17,2,142,44,138,100, +1,17,2,142,44,1,1,17,5,142,43,1,130,104,142,44,101,1,17,6,142,43,150,41,142, +48,138,112,1,0,0,206,16,1,17,2,150,118,1,1,17,2,142,73,102,1,17,4,142,45,130, +108,1,104,1,17,2,143,74,8,1,17,7,142,46,28,4,2,138,117,1,0,0,206,16,1,17,2,143, +72,1,1,17,3,147,46,138,24,1,1,17,2,150,41,135,65,1,17,4,143,73,135,60,1,0,0, +135,104,1,40,2,0,0,2,0,13,0,1,40,2,0,0,130,233,171,36,1,1,40,2,0,0,131,185,187, +41,1,1,40,2,0,0,132,241,227,71,1,2,3,16,98,97,100,32,114,97,110,100,32,108,105, +109,105,116,58,32,2,3,19,114,97,110,100,45,101,108,101,109,58,32,119,104,97, +116,32,98,101,32,2,3,22,114,110,100,45,114,97,110,103,101,58,32,98,97,100,32, +114,97,110,103,101,58,32,1,17,2,151,9,143,80,1,17,2,141,89,1,1,17,2,151,8,1, +1,17,2,143,82,0,0,129,191,159,25,1,17,2,150,89,1,1,17,4,141,68,1,143,83,0,0, +132,128,128,9,1,17,4,141,68,135,74,1,10,1,17,4,143,83,3,143,84,0,0,132,128,128, +9,1,17,4,141,69,4,143,86,0,0,132,128,128,9,1,17,7,141,69,5,143,87,0,0,132,128, +128,9,2,0,0,129,191,159,25,1,1,17,8,141,69,135,84,4,6,143,88,0,0,132,128,128, +9,135,72,1,1,17,2,143,86,148,29,1,17,3,145,55,2,1,1,17,2,151,19,1,1,17,3,148, +45,136,101,141,72,1,17,4,141,72,135,83,1,0,0,135,255,255,127,1,17,3,141,72,134, +123,1,1,17,2,151,21,1,1,17,6,141,72,0,0,135,255,255,127,134,125,141,73,135,92, +1,1,17,3,141,72,17,151,33,1,17,3,141,73,18,151,34,1,17,7,141,72,5,2,3,1,135, +0,141,73,1,17,2,141,72,1,1,17,5,141,110,7,1,139,12,26,1,17,3,143,98,133,109, +151,38,1,17,3,151,28,2,1,1,17,5,143,99,139,15,28,133,107,1,1,17,3,143,98,135, +101,143,99,1,17,5,143,98,147,43,2,5,1,1,17,3,143,103,135,76,151,43,1,17,3,151, +33,7,1,1,17,5,143,100,147,24,3,135,64,1,1,17,3,143,100,150,125,1,1,17,3,143, +100,137,120,151,47,1,17,3,143,100,11,1,1,17,3,148,64,138,3,1,1,17,3,141,122, +135,107,1,1,17,3,143,101,135,111,147,115,1,17,3,143,101,133,11,1,1,17,3,143, +101,135,100,1,1,17,4,143,101,143,105,17,1,1,17,5,143,101,133,7,151,55,151,6, +1,1,17,2,149,72,1,1,17,3,143,102,133,27,144,71,1,17,4,143,102,143,109,135,118, +1,1,17,2,143,102,3,1,17,5,143,102,151,11,2,135,120,1,1,17,5,143,102,133,13,151, +61,135,109,1,1,17,2,149,78,1,1,17,2,143,103,1,1,17,3,143,103,14,149,65,1,17, +3,143,103,28,1,1,17,3,143,103,135,114,1,1,17,3,143,120,135,127,151,67,1,17,3, +151,57,31,1,1,17,5,143,105,139,44,56,135,126,1,1,17,3,143,105,135,117,1,1,17, +3,143,104,135,36,143,105,1,17,4,143,102,139,18,150,38,141,107,1,17,4,143,102, +151,20,143,104,1,1,17,4,143,101,139,5,1,143,102,1,17,3,143,101,151,24,1,1,17, +2,151,11,1,1,17,3,143,102,1,151,20,1,17,4,143,102,135,60,1,143,110,1,17,4,143, +102,139,30,1,8,1,17,2,151,23,1,1,17,2,143,103,1,1,17,3,143,103,136,11,149,122, +1,17,3,143,103,46,1,1,17,3,143,103,136,4,1,1,17,2,143,103,1,1,17,3,144,11,136, +5,151,86,1,17,4,142,30,50,143,104,1,1,18,2,139,105,0,0,45,1,17,2,151,24,1,1, +24,2,0,0,45,0,13,2,1,24,2,0,13,1,1,1,18,3,139,106,139,105,1,1,18,3,139,99,0, +0,2,1,1,18,2,139,103,2,1,18,3,139,107,2,1,1,18,3,139,108,7,1,1,18,2,139,89,1, +2,3,3,110,97,110,2,3,28,109,97,110,100,97,116,111,114,121,32,111,112,116,105, +111,110,32,110,111,116,32,103,105,118,101,110,58,32,2,3,9,40,109,105,115,115, +105,110,103,41,2,3,2,45,45,2,3,1,39,2,3,23,39,32,114,101,113,117,105,114,101, +115,32,97,110,32,97,114,103,117,109,101,110,116,46,2,3,2,45,45,2,3,14,84,104, +101,32,97,114,103,117,109,101,110,116,32,39,2,3,18,39,32,100,105,100,32,110, +111,116,32,97,99,99,101,112,116,32,39,2,3,2,39,46,2,3,1,45,2,3,18,85,110,107, +110,111,119,110,32,97,114,103,117,109,101,110,116,58,32,2,3,2,32,32,2,3,3,32, +124,32,2,3,5,32,32,32,32,32,2,3,6,32,60,97,114,103,62,2,3,0,2,3,2,44,32,2,3, +0,2,3,1,93,2,3,2,32,91,2,3,0,2,3,12,32,40,109,97,110,100,97,116,111,114,121, +41,2,3,0,2,3,17,32,40,99,97,110,32,98,101,32,115,101,118,101,114,97,108,41,2, +3,0,2,3,11,32,40,116,101,114,109,105,110,97,108,41,2,3,0,1,1,2,0,0,10,0,13,0, +1,1,2,0,0,10,0,13,0,1,17,3,148,38,133,102,151,22,1,17,5,144,16,139,40,1,152, +26,144,17,1,17,3,144,16,133,104,1,1,17,4,144,16,139,42,1,152,29,1,17,2,151,127, +1,1,17,2,144,17,134,117,1,17,3,144,17,139,80,1,1,17,3,145,23,135,20,1,1,17,3, +151,28,39,1,1,17,4,144,19,131,124,144,77,0,12,2,1,17,5,146,56,139,87,1,133,28, +12,1,17,2,144,20,41,1,17,4,144,20,139,51,1,42,1,17,2,150,22,152,14,1,17,3,150, +42,2,1,1,17,4,144,25,132,2,144,83,0,12,2,1,17,6,144,23,139,93,1,133,34,17,45, +1,17,5,144,23,139,56,1,152,42,45,1,17,3,152,6,6,1,1,17,4,144,24,139,58,1,152, +49,1,17,4,144,24,139,59,1,152,97,1,17,3,149,45,139,106,1,1,17,2,150,122,139, +57,1,17,2,144,26,1,1,17,4,144,26,139,63,1,152,99,1,17,2,144,26,1,1,17,4,144, +26,139,65,1,152,99,1,17,4,144,26,139,66,1,152,106,1,17,4,144,26,14,152,101,1, +1,17,3,144,26,17,1,1,17,4,144,26,139,69,1,152,60,1,17,3,151,2,139,116,1,1,17, +3,150,31,139,94,144,26,1,17,3,144,26,2,1,1,17,3,144,26,24,53,1,17,6,144,26,135, +2,1,55,139,99,149,61,1,17,3,144,26,139,71,149,74,1,17,3,149,59,136,97,1,1,17, +5,144,27,28,61,60,59,1,17,2,144,27,63,1,17,2,144,27,139,104,1,17,3,144,31,139, +76,149,79,1,17,4,144,28,139,81,2,1,1,17,4,144,28,139,82,1,152,118,1,17,4,144, +28,151,118,5,1,1,17,6,144,28,151,121,7,139,84,1,152,78,1,17,2,144,28,1,1,17, +5,144,28,139,86,1,152,76,152,44,1,17,2,144,28,1,1,17,8,144,28,139,88,12,39,75, +74,151,125,1,1,17,4,144,28,139,89,1,152,80,1,17,6,144,28,43,16,139,90,1,153, +2,1,17,3,145,65,139,116,144,28,1,17,5,144,28,49,2,139,115,1,1,17,4,144,28,135, +21,1,81,1,17,5,144,28,34,22,144,50,1,1,17,2,151,119,1,1,17,4,144,29,132,42,144, +125,0,12,2,1,17,4,144,29,2,1,0,13,3,2,3,1,10,1,17,2,150,69,135,44,1,17,3,149, +81,135,41,74,1,17,5,144,32,140,11,135,42,73,72,1,17,5,144,32,140,12,133,81,81, +4,1,17,4,144,32,67,68,1,1,17,4,144,32,139,104,1,152,98,1,17,4,144,34,71,72,1, +1,17,4,144,33,139,106,1,153,14,1,17,4,144,33,75,76,1,1,17,4,144,33,139,108,1, +153,18,1,17,6,144,33,79,139,109,8,153,15,1,1,17,4,144,33,139,110,1,153,16,1, +17,6,144,33,84,139,111,11,153,33,1,1,17,4,144,33,139,112,1,153,34,1,17,4,144, +33,88,89,1,1,17,4,144,33,139,114,1,153,26,1,17,4,144,33,139,115,1,152,101,1, +17,5,144,33,93,135,57,94,1,1,17,4,144,33,139,117,1,152,104,1,17,4,144,33,140, +28,19,1,1,18,3,140,71,1,132,62,2,3,43,119,97,114,110,105,110,103,58,32,98,97, +100,32,85,84,70,45,56,32,105,110,32,99,111,109,109,97,110,100,32,108,105,110, +101,32,97,114,103,117,109,101,110,116,1,17,5,144,34,132,55,152,45,1,135,66,1, +17,3,148,16,136,0,1,1,17,4,146,96,136,43,1,142,118,1,17,3,151,105,135,102,1, +1,17,4,144,37,140,32,152,86,1,1,17,2,150,96,140,57,1,17,2,144,38,1,1,17,3,144, +38,132,98,1,1,17,7,144,38,129,86,153,75,133,28,130,76,130,73,1,2,3,1,46,2,3, +2,46,46,1,17,3,148,76,137,10,0,0,131,255,127,1,17,4,144,38,136,4,1,144,39,1, +17,3,149,8,135,59,1,1,17,2,144,38,152,74,1,17,4,144,38,134,71,1,5,1,17,4,144, +38,134,72,1,7,1,17,3,145,120,134,50,1,1,17,3,144,39,144,43,1,1,17,2,144,39,1, +1,17,3,144,39,7,1,1,17,3,151,92,1,150,53,2,3,10,103,101,110,101,114,97,116,111, +114,115,2,3,8,112,97,116,116,101,114,110,115,2,3,9,109,117,116,97,116,105,111, +110,115,2,3,3,105,110,102,2,3,8,105,110,102,105,110,105,116,121,2,3,2,45,49, +2,3,7,102,111,114,101,118,101,114,2,3,8,105,110,102,105,110,105,116,121,2,3, +11,82,97,100,97,109,115,97,32,48,46,52,2,3,37,85,115,97,103,101,58,32,114,97, +100,97,109,115,97,32,91,97,114,103,117,109,101,110,116,115,93,32,91,102,105, +108,101,32,46,46,46,93,2,3,130,29,82,97,100,97,109,115,97,32,105,115,32,97,32, +103,101,110,101,114,97,108,32,112,117,114,112,111,115,101,32,102,117,122,122, +101,114,46,32,73,116,32,109,111,100,105,102,105,101,115,32,103,105,118,101,110, +32,115,97,109,112,108,101,32,100,97,116,97,32,10,105,110,32,119,97,121,115,44, +32,119,104,105,99,104,32,109,105,103,104,116,32,101,120,112,111,115,101,32,101, +114,114,111,114,115,32,105,110,32,112,114,111,103,114,97,109,115,32,105,110, +116,101,110,100,101,100,32,116,111,32,112,114,111,99,101,115,115,32,10,116,104, +101,32,100,97,116,97,46,32,70,111,114,32,109,111,114,101,32,105,110,102,111, +114,109,97,116,105,111,110,44,32,114,101,97,100,32,116,104,101,32,102,105,110, +101,32,109,97,110,117,97,108,32,112,97,103,101,44,32,111,114,32,118,105,115, +105,116,10,118,105,115,105,116,32,104,116,116,112,58,47,47,99,111,100,101,46, +103,111,111,103,108,101,46,99,111,109,47,112,47,111,117,115,112,103,47,10,10, +82,97,100,97,109,115,97,32,119,97,115,32,119,114,105,116,116,101,110,32,98,121, +32,65,107,105,32,72,101,108,105,110,32,97,116,32,79,85,83,80,71,46,2,3,2,45, +104,2,3,6,45,45,104,101,108,112,2,3,15,115,104,111,119,32,116,104,105,115,32, +116,104,105,110,103,2,3,2,45,97,2,3,7,45,45,97,98,111,117,116,2,3,19,119,104, +97,116,32,105,115,32,116,104,105,115,32,116,104,105,110,103,63,2,3,2,45,86,2, +3,9,45,45,118,101,114,115,105,111,110,2,3,20,115,104,111,119,32,112,114,111, +103,114,97,109,32,118,101,114,115,105,111,110,2,3,14,111,117,116,112,117,116, +45,112,97,116,116,101,114,110,2,3,2,45,111,2,3,8,45,45,111,117,116,112,117,116, +2,3,1,45,2,3,61,111,117,116,112,117,116,32,112,97,116,116,101,114,110,44,32, +101,46,103,46,32,47,116,109,112,47,102,117,122,122,45,37,110,46,102,111,111, +44,32,45,44,32,58,56,48,32,111,114,32,49,50,55,46,48,46,48,46,49,58,56,48,2, +3,5,99,111,117,110,116,2,3,2,45,110,2,3,7,45,45,99,111,117,110,116,2,3,1,49, +2,3,44,104,111,119,32,109,97,110,121,32,111,117,116,112,117,116,115,32,116,111, +32,103,101,110,101,114,97,116,101,32,40,110,117,109,98,101,114,32,111,114,32, +105,110,102,41,2,3,4,115,101,101,100,2,3,2,45,115,2,3,6,45,45,115,101,101,100, +2,3,36,114,97,110,100,111,109,32,115,101,101,100,32,40,110,117,109,98,101,114, +44,32,100,101,102,97,117,108,116,32,114,97,110,100,111,109,41,2,3,2,45,109,2, +3,11,45,45,109,117,116,97,116,105,111,110,115,2,3,22,119,104,105,99,104,32,109, +117,116,97,116,105,111,110,115,32,116,111,32,117,115,101,2,3,2,45,112,2,3,10, +45,45,112,97,116,116,101,114,110,115,2,3,30,119,104,105,99,104,32,109,117,116, +97,116,105,111,110,32,112,97,116,116,101,114,110,115,32,116,111,32,117,115,101, +2,3,2,45,103,2,3,12,45,45,103,101,110,101,114,97,116,111,114,115,2,3,28,119, +104,105,99,104,32,100,97,116,97,32,103,101,110,101,114,97,116,111,114,115,32, +116,111,32,117,115,101,2,3,38,114,97,110,100,111,109,44,102,105,108,101,61,49, +48,48,48,44,106,117,109,112,61,50,48,48,44,115,116,100,105,110,61,49,48,48,48, +48,48,2,3,8,109,101,116,97,100,97,116,97,2,3,2,45,77,2,3,6,45,45,109,101,116, +97,2,3,48,115,97,118,101,32,109,101,116,97,100,97,116,97,32,97,98,111,117,116, +32,103,101,110,101,114,97,116,101,100,32,102,105,108,101,115,32,116,111,32,116, +104,105,115,32,102,105,108,101,2,3,2,45,114,2,3,11,45,45,114,101,99,117,114, +115,105,118,101,2,3,31,105,110,99,108,117,100,101,32,102,105,108,101,115,32, +105,110,32,115,117,98,100,105,114,101,99,116,111,114,105,101,115,2,3,2,45,108, +2,3,6,45,45,108,105,115,116,2,3,39,108,105,115,116,32,109,117,116,97,116,105, +111,110,115,44,32,112,97,116,116,101,114,110,115,32,97,110,100,32,103,101,110, +101,114,97,116,111,114,115,2,3,7,118,101,114,98,111,115,101,2,3,2,45,118,2,3, +9,45,45,118,101,114,98,111,115,101,2,3,31,115,104,111,119,32,112,114,111,103, +114,101,115,115,32,100,117,114,105,110,103,32,103,101,110,101,114,97,116,105, +111,110,2,3,12,47,100,101,118,47,117,114,97,110,100,111,109,2,3,14,77,117,116, +97,116,105,111,110,115,32,40,45,109,41,2,3,2,32,32,2,3,2,58,32,2,3,0,2,3,22, +77,117,116,97,116,105,111,110,32,112,97,116,116,101,114,110,115,32,40,45,112, +41,2,3,2,32,32,2,3,2,58,32,2,3,0,2,3,15,71,101,110,101,114,97,116,111,114,115, +32,40,45,103,41,2,3,78,32,115,116,100,105,110,58,32,114,101,97,100,32,100,97, +116,97,32,102,114,111,109,32,115,116,97,110,100,97,114,100,32,105,110,112,117, +116,32,105,102,32,110,111,32,112,97,116,104,115,32,97,114,101,32,103,105,118, +101,110,32,111,114,32,45,32,105,115,32,97,109,111,110,103,32,116,104,101,109, +2,3,33,32,102,105,108,101,58,32,114,101,97,100,32,100,97,116,97,32,102,114,111, +109,32,103,105,118,101,110,32,102,105,108,101,115,2,3,29,32,114,97,110,100,111, +109,58,32,103,101,110,101,114,97,116,101,32,114,97,110,100,111,109,32,100,97, +116,97,2,3,0,2,3,1,75,2,3,1,77,2,3,1,84,2,3,1,80,2,3,4,112,97,116,104,2,3,5, +99,108,111,115,101,2,3,13,82,97,110,100,111,109,32,115,101,101,100,58,32,2,3, +3,32,45,32,2,3,2,105,112,2,3,6,111,117,116,112,117,116,2,3,2,58,32,2,3,1,45, +2,3,29,67,97,110,110,111,116,32,111,112,101,110,32,109,101,116,97,100,97,116, +97,32,108,111,103,32,102,105,108,101,2,3,43,69,114,114,111,114,32,114,101,97, +100,105,110,103,32,115,97,109,112,108,101,32,102,105,108,101,115,46,32,84,111, +111,32,108,111,110,103,32,112,97,116,104,115,63,2,3,1,47,2,3,0,2,3,1,45,2,3, +3,110,116,104,1,4,1,90,1,4,1,90,1,4,1,90,1,1,2,87,0,13,0,1,1,2,89,1,1,1,2,91, +1,1,1,2,93,1,1,4,1,90,1,4,1,78,1,4,1,74,1,4,1,70,1,4,1,57,1,4,1,48,1,1,2,28, +0,13,0,1,1,2,30,1,1,1,2,32,1,1,1,2,34,1,1,1,2,36,1,1,1,2,0,0,10,0,13,0,1,4,1, +33,1,4,1,33,1,4,1,31,1,4,1,23,2,3,4,104,101,97,100,2,3,5,98,121,116,101,115, +1,40,2,0,0,149,215,71,0,13,0,1,40,2,0,0,130,248,218,99,1,1,40,2,0,0,192,128, +0,1,2,3,9,103,101,110,101,114,97,116,111,114,1,40,2,0,0,134,215,252,1,0,13,0, +1,40,2,0,0,134,251,190,93,1,1,40,2,0,0,129,210,156,84,1,1,40,2,0,0,152,163,71, +1,1,40,2,0,0,241,227,71,1,2,3,23,69,114,114,111,114,58,32,102,97,105,108,101, +100,32,116,111,32,111,112,101,110,32,39,2,3,65,39,46,32,80,108,101,97,115,101, +32,117,115,101,32,45,114,32,105,102,32,121,111,117,32,119,97,110,116,32,116, +111,32,105,110,99,108,117,100,101,32,115,97,109,112,108,101,115,32,102,114,111, +109,32,100,105,114,101,99,116,111,114,105,101,115,46,2,3,23,69,114,114,111,114, +58,32,102,97,105,108,101,100,32,116,111,32,111,112,101,110,32,39,2,3,1,39,2, +3,4,102,105,108,101,2,3,6,115,111,117,114,99,101,1,40,2,0,0,159,127,0,13,0,1, +40,2,0,0,135,255,255,127,1,2,3,4,106,117,109,112,1,18,2,132,125,0,0,61,1,17, +2,153,45,1,1,18,3,132,77,0,13,1,1,1,18,2,133,0,0,0,44,1,17,2,153,48,1,1,18,3, +132,80,0,13,1,1,2,3,1,45,2,3,5,115,116,100,105,110,2,3,1,45,2,3,4,102,105,108, +101,2,3,4,106,117,109,112,2,3,6,114,97,110,100,111,109,2,3,24,85,110,107,110, +111,119,110,32,100,97,116,97,32,103,101,110,101,114,97,116,111,114,58,32,2,3, +22,66,97,100,32,103,101,110,101,114,97,116,111,114,32,112,114,105,111,114,105, +116,121,2,3,13,110,111,32,103,101,110,101,114,97,116,111,114,115,1,4,1,35,1, +4,1,35,1,4,1,32,1,4,1,23,1,1,2,2,1,1,4,1,24,1,4,1,22,1,1,2,5,1,1,42,2,0,0,4, +0,0,5,2,3,14,66,97,100,32,112,114,105,111,114,105,116,121,58,32,2,3,15,73,110, +99,111,110,99,101,105,118,97,98,108,101,58,32,2,3,17,84,111,111,32,109,97,110, +121,32,116,104,105,110,103,115,58,32,2,16,3,0,3,119,1,17,2,1,141,46,2,16,3,0, +3,118,1,17,4,1,141,46,138,71,2,2,16,3,0,3,117,1,17,3,1,141,52,2,2,16,3,0,3,116, +2,16,3,0,3,115,2,16,3,0,3,114,1,17,3,1,138,74,2,1,17,2,4,1,2,16,3,0,3,113,2, +16,3,0,3,112,1,17,3,1,135,123,2,1,17,2,8,1,2,16,3,0,3,111,1,17,2,1,138,70,2, +16,3,0,3,110,1,17,5,1,134,4,146,94,0,12,2,19,2,16,3,0,3,109,1,17,5,1,134,6,146, +96,0,12,2,23,1,17,5,2,134,7,146,97,0,12,2,23,2,16,3,0,3,108,1,17,3,1,153,107, +2,2,16,3,0,3,107,1,17,5,1,153,109,5,138,80,2,2,16,3,0,3,106,1,17,3,1,132,24, +2,2,16,3,0,3,105,1,17,5,1,138,85,11,153,113,2,2,16,3,0,3,104,1,17,3,1,138,87, +2,2,16,3,0,3,103,1,17,3,1,138,60,2,2,16,3,0,3,102,1,17,4,1,138,100,28,153,118, +2,16,3,0,3,101,1,17,3,1,138,92,2,2,16,3,0,3,100,1,17,3,1,153,124,2,1,17,2,34, +1,2,16,3,0,3,99,2,16,3,0,3,98,2,16,3,0,3,97,1,17,2,1,2,2,16,3,0,3,96,1,17,4, +1,138,111,2,0,0,144,0,2,16,3,0,3,95,1,17,3,1,150,85,2,2,16,3,0,3,94,1,17,4,1, +138,72,2,0,0,144,0,2,16,3,0,3,93,2,16,3,0,3,92,1,17,6,1,138,77,3,0,0,144,0,150, +90,2,2,16,3,0,3,91,1,17,4,1,138,110,2,0,0,144,0,2,16,3,0,3,90,1,17,4,1,138,84, +16,2,2,16,3,0,3,89,1,40,2,0,0,129,0,0,13,0,1,40,2,0,0,0,1,1,40,2,0,0,127,0,13, +0,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,1,4,1,40,2,0,0,130,0,0,13,0,1,40,2, +0,0,0,1,1,40,2,0,0,129,127,0,13,0,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,1, +4,1,40,2,0,0,130,128,0,0,13,0,1,40,2,0,0,0,1,1,40,2,0,0,0,1,1,40,2,0,0,129,255, +127,0,13,0,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,135,255,255,127,1,1,40,2, +0,0,1,5,1,40,2,0,0,132,128,0,0,13,0,1,40,2,0,0,0,1,1,40,2,0,0,0,1,1,40,2,0,0, +131,255,127,0,13,0,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,135,255,255,127,1, +1,40,2,0,0,1,5,1,40,2,0,0,129,0,0,13,0,1,40,2,0,0,0,1,1,40,2,0,0,0,1,1,40,2, +0,0,0,1,1,40,2,0,0,0,1,1,40,2,0,0,0,1,1,40,2,0,0,127,0,13,0,1,40,2,0,0,135,255, +255,127,1,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,135,255,255,127,1,1,40,2,0, +0,135,255,255,127,1,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,1,8,1,40,2,0,0,130, +0,0,13,0,1,40,2,0,0,0,1,1,40,2,0,0,0,1,1,40,2,0,0,0,1,1,40,2,0,0,0,1,1,40,2, +0,0,0,1,1,40,2,0,0,129,127,0,13,0,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,135, +255,255,127,1,1,40,2,0,0,135,255,255,127,1,1,40,2,0,0,135,255,255,127,1,1,40, +2,0,0,135,255,255,127,1,1,40,2,0,0,1,8,1,11,33,2,8,1,15,21,14,28,31,27,35,38, +34,42,44,41,47,49,46,0,0,131,255,127,0,0,132,128,0,0,0,132,128,1,0,0,129,255, +127,0,0,130,128,0,0,0,130,128,1,0,0,129,127,0,0,130,0,0,0,130,1,0,0,127,0,0, +129,0,0,0,129,1,0,0,1,0,0,2,0,0,3,2,16,3,0,3,88,2,16,3,0,3,87,1,17,3,1,139,52, +2,2,16,3,0,3,86,1,17,3,1,139,51,4,1,17,3,4,139,52,5,2,16,3,0,3,85,1,17,3,1,131, +88,2,2,16,3,0,3,84,1,17,2,1,9,2,16,3,0,3,83,1,17,4,1,139,58,139,61,2,2,16,3, +0,3,82,1,17,3,1,131,94,2,2,16,3,0,3,81,1,17,3,1,131,67,2,2,16,3,0,3,80,1,17, +14,1,139,67,17,139,64,17,131,89,18,15,13,139,61,10,131,65,2,0,0,129,1,2,16,3, +0,3,79,1,17,3,1,131,100,2,2,16,3,0,3,78,2,16,3,0,3,77,1,17,2,1,90,1,17,2,3,1, +2,16,3,0,3,76,2,16,3,0,3,75,1,17,2,1,94,1,17,2,3,1,2,16,3,0,3,74,1,17,2,1,142, +54,2,16,3,0,3,73,1,17,3,1,142,60,2,2,16,3,0,3,72,1,17,4,1,142,108,2,0,13,3,2, +16,3,0,3,71,2,16,3,0,3,70,1,17,3,1,131,108,2,2,16,3,0,3,69,1,17,3,1,131,110, +2,2,16,3,0,3,68,1,17,3,1,131,112,2,2,16,3,0,3,67,2,16,3,0,3,66,1,17,3,1,142, +72,2,2,16,3,0,3,65,1,17,3,1,142,57,2,2,16,3,0,3,64,1,17,3,1,14,2,2,16,3,0,3, +63,1,17,3,1,16,2,2,16,3,0,3,62,2,16,3,0,3,61,1,17,3,1,139,99,2,2,16,3,0,3,60, +1,17,4,1,14,139,63,2,2,16,3,0,3,59,1,17,5,1,16,143,3,2,7,2,16,3,0,3,58,1,17, +4,1,132,11,2,18,2,16,3,0,3,57,1,17,3,1,139,97,2,2,16,3,0,3,56,1,17,3,1,0,0,134, +141,32,2,2,16,3,0,3,55,1,17,3,1,37,2,2,16,3,0,3,54,1,17,3,1,39,2,2,16,3,0,3, +53,1,17,3,1,45,68,2,16,3,0,3,52,1,17,3,1,4,2,2,16,3,0,3,51,1,17,4,1,139,103, +72,0,0,130,0,2,16,3,0,3,50,1,17,4,1,132,27,2,0,0,160,0,1,17,2,127,137,101,2, +16,3,0,3,49,1,17,4,1,137,70,2,143,55,2,16,3,0,3,48,1,17,4,1,137,72,2,143,57, +2,16,3,0,3,47,2,16,3,0,3,46,1,17,3,1,151,101,2,2,16,3,0,3,45,1,17,4,1,131,117, +2,0,0,130,0,2,16,3,0,3,44,1,17,3,1,132,39,2,2,16,3,0,3,43,1,17,3,1,142,32,2, +2,16,3,0,3,42,1,17,3,1,132,10,2,1,17,3,6,132,44,1,2,16,3,0,3,41,1,17,3,1,140, +15,2,2,16,3,0,3,40,2,16,3,0,3,39,2,16,3,0,3,38,1,17,3,1,140,19,2,2,16,3,0,3, +37,1,17,2,1,2,2,16,3,0,3,36,1,17,3,1,27,2,2,16,3,0,3,35,2,16,3,0,3,34,1,17,3, +1,140,23,2,2,16,3,0,3,33,1,17,3,1,13,129,46,2,16,3,0,3,32,1,17,4,1,15,140,30, +2,2,16,3,0,3,31,1,17,8,1,0,12,0,136,28,16,31,9,6,2,2,16,3,0,3,30,1,17,3,1,137, +53,2,2,16,3,0,3,29,1,17,3,1,136,13,2,2,16,3,0,3,28,1,17,2,1,2,2,16,3,0,3,27, +1,17,3,1,44,2,2,16,3,0,3,26,1,17,2,1,2,2,16,3,0,3,25,1,17,3,1,132,85,2,2,16, +3,0,3,24,1,17,2,1,2,2,16,3,0,3,23,1,17,4,1,132,79,2,130,23,2,16,3,0,3,22,2,16, +3,0,3,21,1,17,6,1,143,26,2,0,13,3,129,121,156,36,2,16,3,0,3,20,1,17,2,1,2,2, +16,3,0,3,19,1,17,3,1,139,75,2,2,16,3,0,3,18,1,17,4,1,9,2,0,12,0,2,16,3,0,3,17, +1,17,2,1,0,0,129,127,2,16,3,0,3,16,1,17,3,1,140,58,2,2,16,3,0,3,15,1,17,5,1, +152,32,129,13,139,96,2,1,17,2,122,1,2,16,3,0,3,14,2,16,3,0,3,13,1,17,2,1,2,2, +16,3,0,3,12,1,17,3,1,132,100,2,2,16,3,0,3,11,1,17,3,1,132,69,2,2,16,3,0,3,10, +1,17,3,1,9,2,2,16,3,0,3,9,1,17,4,1,132,73,2,0,0,160,0,1,17,2,129,2,1,2,16,3, +0,3,8,1,17,6,1,143,53,29,0,13,3,130,20,156,27,2,16,3,0,3,7,1,17,3,1,4,2,2,16, +3,0,3,6,1,17,3,1,132,123,2,1,17,4,88,132,114,1,130,52,2,16,3,0,3,5,1,17,2,1, +144,6,2,16,3,0,3,4,1,17,8,1,136,5,0,12,2,130,53,130,52,130,55,130,54,2,1,17, +3,129,116,131,53,1,2,16,3,0,3,3,1,17,5,1,143,50,41,130,30,130,29,2,16,3,0,3, +2,1,17,4,1,4,44,2,2,16,3,0,3,1,1,17,3,1,136,77,2,2,16,3,0,3,0,1,17,3,1,138,107, +2,2,16,3,0,2,255,1,17,3,1,133,1,2,2,16,3,0,2,254,1,17,2,1,2,2,16,3,0,2,253,1, +17,3,1,138,109,2,2,16,3,0,2,252,2,16,3,0,2,251,1,17,2,1,129,123,2,16,3,0,2,250, +1,17,4,1,129,125,140,12,2,2,16,3,0,2,249,1,17,3,1,133,12,2,2,16,3,0,2,248,1, +17,3,1,140,16,2,2,16,3,0,2,247,1,17,3,1,138,89,129,122,2,16,3,0,2,246,1,17,3, +1,123,2,2,16,3,0,2,245,1,17,3,1,138,59,2,2,16,3,0,2,244,1,17,3,1,138,61,2,2, +16,3,0,2,243,1,17,4,1,133,24,10,2,1,17,2,19,1,2,16,3,0,2,242,1,17,2,1,2,2,16, +3,0,2,241,1,17,3,1,140,31,2,2,16,3,0,2,240,1,17,3,1,140,33,2,2,16,3,0,2,239, +1,17,6,1,143,90,81,130,67,157,29,130,74,2,16,3,0,2,238,1,17,3,1,4,2,2,16,3,0, +2,237,1,17,3,1,133,47,2,2,16,3,0,2,236,1,17,4,1,133,39,2,130,97,2,16,3,0,2,235, +1,17,3,1,90,2,2,16,3,0,2,234,1,17,3,1,136,123,2,2,16,3,0,2,233,1,17,3,1,94,2, +2,16,3,0,2,232,1,17,4,1,56,136,127,2,2,16,3,0,2,231,1,17,3,1,137,1,2,2,16,3, +0,2,230,1,17,3,1,137,3,2,2,16,3,0,2,229,1,17,3,1,139,33,2,2,16,3,0,2,228,1,17, +3,1,139,35,2,2,16,3,0,2,227,1,17,3,1,133,57,2,2,16,3,0,2,226,1,17,3,1,133,59, +2,1,17,2,58,1,1,17,3,57,139,37,1,2,16,3,0,2,225,2,16,3,0,2,224,1,17,4,1,144, +27,2,156,98,2,16,3,0,2,223,1,17,4,1,144,49,2,130,62,1,17,4,2,144,50,1,130,121, +2,16,3,0,2,222,1,17,3,1,130,120,2,2,16,3,0,2,221,1,17,3,129,117,130,60,1,1,17, +3,72,133,72,1,1,17,2,71,1,2,16,3,0,2,220,1,17,4,1,144,69,2,141,44,2,16,3,0,2, +219,1,17,4,1,144,60,2,144,104,2,16,3,0,2,218,1,17,4,1,140,98,2,130,92,2,16,3, +0,2,217,1,17,3,1,130,125,95,2,16,3,0,2,216,1,17,6,1,138,94,2,131,0,22,130,70, +2,16,3,0,2,215,1,17,6,1,138,96,2,131,3,80,130,72,2,16,3,0,2,214,1,17,3,1,127, +130,74,2,16,3,0,2,213,1,17,3,1,138,100,131,9,2,16,3,0,2,212,1,17,7,1,138,102, +6,131,10,144,52,4,2,2,16,3,0,2,211,1,17,5,1,131,8,138,104,2,131,14,2,16,3,0, +2,210,1,17,3,1,139,40,2,1,17,2,130,67,157,6,1,17,4,129,71,138,108,1,131,19,2, +16,3,0,2,209,1,17,4,1,144,65,4,2,2,16,3,0,2,208,1,17,2,1,2,2,16,3,0,2,207,1, +17,4,1,131,17,156,87,24,2,16,3,0,2,206,1,17,4,1,144,71,2,157,11,2,16,3,0,2,205, +1,17,3,1,144,90,2,2,16,3,0,2,204,1,17,3,1,8,2,2,3,11,102,105,108,101,45,119, +114,105,116,101,114,2,3,45,87,97,114,110,105,110,103,58,32,116,101,115,116,99, +97,115,101,32,112,97,100,100,105,110,103,32,115,104,111,117,108,100,32,98,101, +32,37,48,91,48,45,57,93,43,110,2,3,42,87,97,114,110,105,110,103,58,32,117,110, +107,110,111,119,110,32,112,97,116,116,101,114,110,32,105,110,32,111,117,116, +112,117,116,32,112,97,116,104,58,32,39,2,3,21,39,46,32,68,105,100,32,121,111, +117,32,109,101,97,110,32,39,37,110,39,63,2,3,24,69,114,114,111,114,58,32,99, +97,110,110,111,116,32,119,114,105,116,101,32,116,111,32,39,2,3,1,39,2,3,24,32, +99,111,110,110,101,99,116,105,111,110,32,97,116,116,101,109,112,116,115,32,116, +111,32,2,3,1,58,2,3,10,116,99,112,45,115,101,114,118,101,114,2,3,1,45,1,18,2, +136,45,0,0,58,1,17,2,156,93,1,1,24,2,0,0,48,0,13,2,1,24,2,0,0,50,0,13,2,1,24, +2,0,0,52,0,13,2,1,24,4,0,0,49,0,13,2,3,2,1,24,2,0,0,54,0,13,2,1,26,2,0,0,57, +0,13,2,1,25,3,0,0,56,0,13,2,1,1,26,4,0,0,55,0,13,2,3,1,1,24,4,0,0,53,0,13,2, +6,1,1,24,4,0,0,51,0,13,2,6,1,1,18,3,136,54,136,53,1,1,18,2,136,48,1,1,18,3,136, +52,2,1,1,18,3,136,53,1,136,62,1,18,3,136,54,15,1,1,18,2,136,22,1,1,18,2,136, +63,0,0,58,1,17,2,156,111,1,1,18,5,135,127,0,13,1,0,13,1,0,13,0,1,2,3,28,67,111, +117,108,100,110,39,116,32,98,105,110,100,32,116,111,32,108,111,99,97,108,32, +112,111,114,116,32,2,3,14,73,110,118,97,108,105,100,32,112,111,114,116,58,32, +1,24,2,0,0,48,0,13,2,1,24,2,0,0,50,0,13,2,1,24,2,0,0,52,0,13,2,1,24,4,0,0,49, +0,13,2,3,2,1,24,2,0,0,54,0,13,2,1,26,2,0,0,57,0,13,2,1,25,3,0,0,56,0,13,2,1, +1,26,4,0,0,55,0,13,2,3,1,1,24,4,0,0,53,0,13,2,6,1,1,24,4,0,0,51,0,13,2,6,1,1, +18,3,136,75,136,74,1,1,24,2,0,0,48,0,13,2,1,24,2,0,0,50,0,13,2,1,24,2,0,0,52, +0,13,2,1,24,4,0,0,49,0,13,2,3,2,1,24,2,0,0,54,0,13,2,1,26,2,0,0,57,0,13,2,1, +25,3,0,0,56,0,13,2,1,1,26,4,0,0,55,0,13,2,3,1,1,24,4,0,0,53,0,13,2,6,1,1,24, +4,0,0,51,0,13,2,6,1,1,18,3,136,86,136,85,1,1,18,3,136,73,0,0,2,1,1,18,3,136, +84,2,1,1,18,3,136,85,136,24,1,1,18,2,136,69,1,1,18,2,136,94,0,0,58,1,17,2,157, +14,1,1,24,2,0,0,48,0,13,2,1,24,2,0,0,50,0,13,2,1,24,2,0,0,52,0,13,2,1,24,4,0, +0,49,0,13,2,3,2,1,24,2,0,0,54,0,13,2,1,26,2,0,0,57,0,13,2,1,25,3,0,0,56,0,13, +2,1,1,26,4,0,0,55,0,13,2,3,1,1,24,4,0,0,53,0,13,2,6,1,1,24,4,0,0,51,0,13,2,6, +1,1,18,3,136,103,136,102,1,1,18,2,136,97,1,1,18,3,136,101,2,1,1,18,3,136,102, +1,136,111,1,18,3,136,103,15,1,1,18,3,136,98,0,0,3,18,1,18,3,136,105,1,2,1,18, +3,136,96,0,0,2,35,1,18,3,136,107,36,1,1,18,3,136,108,1,3,1,18,2,136,76,1,1,18, +2,136,117,0,0,58,1,17,2,157,37,1,1,18,3,136,69,0,13,1,1,1,18,3,136,70,0,13,1, +136,52,2,3,20,78,111,116,32,97,32,118,97,108,105,100,32,116,97,114,103,101,116, +58,32,1,18,2,136,122,0,0,37,1,17,2,157,42,1,1,18,2,136,124,0,0,48,1,17,2,157, +44,1,1,24,2,0,0,49,0,13,2,1,24,2,0,0,51,0,13,2,1,24,2,0,0,53,0,13,2,1,24,4,0, +0,50,0,13,2,3,2,1,24,2,0,0,55,0,13,2,1,24,2,0,0,57,0,13,2,1,26,4,0,0,56,0,13, +2,2,1,1,24,4,0,0,54,0,13,2,5,1,1,24,4,0,0,52,0,13,2,5,1,1,18,3,137,4,137,3,1, +1,24,2,0,0,48,0,13,2,1,24,2,0,0,50,0,13,2,1,24,2,0,0,52,0,13,2,1,24,4,0,0,49, +0,13,2,3,2,1,24,2,0,0,54,0,13,2,1,26,2,0,0,57,0,13,2,1,25,3,0,0,56,0,13,2,1, +1,26,4,0,0,55,0,13,2,3,1,1,24,4,0,0,53,0,13,2,6,1,1,24,4,0,0,51,0,13,2,6,1,1, +18,3,137,15,137,14,1,1,18,2,137,9,1,1,18,3,137,13,13,1,1,18,3,137,14,24,1,1, +18,2,136,126,1,1,18,2,137,23,0,0,110,1,17,2,157,71,1,1,18,3,137,19,3,151,120, +1,18,3,137,19,1,2,1,18,3,137,20,32,1,1,18,2,136,118,1,2,3,28,82,101,102,117, +115,105,110,103,32,116,111,32,111,118,101,114,119,114,105,116,101,32,102,105, +108,101,32,39,2,3,60,39,32,109,97,110,121,32,116,105,109,101,115,46,32,89,111, +117,32,115,104,111,117,108,100,32,97,100,100,32,37,110,32,111,114,32,37,48,91, +112,97,100,100,105,110,103,93,110,32,116,111,32,116,104,101,32,112,97,116,104, +46,1,4,1,124,1,4,1,117,2,16,3,0,2,203,2,16,3,0,2,202,1,17,4,1,0,12,1,138,27, +2,2,16,3,0,2,201,1,17,4,1,141,111,2,157,75,2,16,3,0,2,200,1,17,3,1,154,2,2,2, +16,3,0,2,199,1,17,3,1,157,104,2,2,16,3,0,2,198,1,17,3,1,138,30,2,2,16,3,0,2, +197,1,17,3,1,131,15,0,12,1,2,16,3,0,2,196,1,17,5,1,145,66,2,158,66,158,78,1, +17,2,131,18,1,2,16,3,0,2,195,1,17,3,1,142,94,132,19,2,16,3,0,2,194,1,17,3,1, +142,93,2,2,16,3,0,2,193,1,17,3,1,142,92,2,2,16,3,0,2,192,1,17,3,1,142,85,2,2, +16,3,0,2,191,1,17,3,1,142,87,2,2,16,3,0,2,190,1,17,3,1,142,9,2,2,16,3,0,2,189, +1,17,2,1,2,2,16,3,0,2,188,1,17,2,1,146,29,2,16,3,0,2,187,1,17,2,1,131,36,2,16, +3,0,2,186,1,17,4,1,145,87,2,132,95,2,16,3,0,2,185,1,17,5,1,145,89,2,158,89,39, +2,16,3,0,2,184,1,17,7,1,138,34,8,0,12,2,129,33,129,32,2,2,16,3,0,2,183,1,17, +3,1,138,99,2,2,16,3,0,2,182,1,17,3,1,141,44,2,2,16,3,0,2,181,2,16,3,0,2,180, +1,17,6,1,138,41,2,0,12,2,129,42,129,41,1,17,2,130,83,146,0,1,17,3,131,69,142, +79,1,2,16,3,0,2,179,1,17,3,1,142,124,2,1,17,3,11,142,87,1,1,17,3,3,146,5,1,2, +16,3,0,2,178,2,16,3,0,2,177,1,17,4,1,146,18,3,2,2,16,3,0,2,176,1,17,3,1,142, +74,2,2,16,3,0,2,175,1,17,3,1,143,5,2,2,16,3,0,2,174,1,17,3,1,142,97,2,2,16,3, +0,2,173,1,17,3,1,139,98,2,2,16,3,0,2,172,1,17,8,1,138,60,21,0,12,2,129,62,145, +121,2,132,122,2,16,3,0,2,171,1,17,3,1,140,58,2,2,16,3,0,2,170,1,17,3,1,142,51, +2,2,16,3,0,2,169,1,17,5,1,141,72,25,42,2,2,16,3,0,2,168,1,17,2,1,139,108,2,16, +3,0,2,167,1,17,6,1,140,66,4,146,3,2,133,4,2,16,3,0,2,166,1,17,3,1,140,68,2,2, +16,3,0,2,165,1,17,3,1,158,47,2,2,16,3,0,2,164,1,17,4,1,141,113,38,2,2,16,3,0, +2,163,1,17,3,1,131,86,2,1,17,2,132,35,141,85,2,16,3,0,2,162,1,17,2,1,139,121, +2,16,3,0,2,161,1,17,2,1,2,2,16,3,0,2,160,1,17,4,1,140,110,6,2,2,16,3,0,2,159, +2,16,3,0,2,158,1,17,3,1,143,42,2,2,16,3,0,2,157,1,17,6,1,138,90,0,12,2,129,87, +129,86,2,2,16,3,0,2,156,1,17,3,1,143,34,2,2,16,3,0,2,155,1,17,4,1,145,62,2,0, +0,131,255,127,1,17,2,68,131,103,1,17,4,67,146,25,1,159,33,2,16,3,0,2,154,1,17, +4,1,146,27,2,133,33,2,16,3,0,2,153,1,17,8,1,146,85,6,0,12,131,255,127,146,29, +2,159,29,159,1,2,16,3,0,2,152,1,17,3,1,139,31,2,2,16,3,0,2,151,1,17,2,1,2,2, +16,3,0,2,150,1,17,3,1,131,114,2,2,16,3,0,2,149,1,17,3,1,23,2,2,16,3,0,2,148, +1,17,2,1,24,2,16,3,0,2,147,1,17,3,1,158,85,2,1,17,2,131,121,1,2,16,3,0,2,146, +1,17,4,1,146,44,131,20,133,50,1,17,3,130,82,31,1,2,16,3,0,2,145,1,17,5,1,146, +47,2,159,47,124,2,16,3,0,2,144,1,17,2,1,2,2,16,3,0,2,143,1,17,3,1,9,2,1,17,2, +156,73,1,1,17,2,132,4,1,1,17,2,132,81,159,20,2,16,3,0,2,142,1,17,7,1,49,139, +6,151,89,0,12,2,129,8,129,7,2,16,3,0,2,141,1,17,4,1,129,11,4,2,2,16,3,0,2,140, +1,17,3,1,143,72,0,0,132,128,0,2,16,3,0,2,139,1,17,3,1,150,66,2,1,17,3,130,31, +143,75,0,0,130,0,1,17,2,131,48,27,2,16,3,0,2,138,1,17,7,1,139,16,151,99,0,12, +2,129,54,141,67,2,2,16,3,0,2,137,1,17,5,1,146,87,6,5,2,2,16,3,0,2,136,1,17,4, +1,146,89,2,150,74,2,16,3,0,2,135,1,17,2,1,137,26,2,16,3,0,2,134,1,17,4,1,146, +113,4,2,2,16,3,0,2,133,1,17,3,1,129,65,2,2,16,3,0,2,132,1,17,3,1,137,32,2,2, +16,3,0,2,131,1,17,3,1,158,121,2,1,17,5,133,10,143,92,23,129,71,1,2,16,3,0,2, +130,1,17,5,1,139,28,151,116,129,126,30,2,16,3,0,2,129,1,17,7,1,139,35,151,118, +0,12,2,129,127,139,42,2,2,16,3,0,2,128,1,17,4,1,143,99,0,0,132,128,0,2,2,16, +3,0,2,127,1,17,3,1,150,93,2,2,16,3,0,2,126,1,17,3,1,137,45,2,2,16,3,0,2,125, +1,17,5,1,129,86,12,130,9,2,2,16,3,0,2,124,1,17,4,1,130,14,2,129,28,2,16,3,0, +2,123,1,17,4,1,141,36,2,130,34,2,3,8,111,110,99,101,45,100,101,99,2,3,8,109, +97,110,121,45,100,101,99,2,3,5,98,117,114,115,116,2,3,2,111,100,2,3,11,77,117, +116,97,116,101,32,111,110,99,101,2,3,2,110,100,2,3,26,77,117,116,97,116,101, +32,112,111,115,115,105,98,108,121,32,109,97,110,121,32,116,105,109,101,115,2, +3,2,98,117,2,3,35,77,97,107,101,32,115,101,118,101,114,97,108,32,109,117,116, +97,116,105,111,110,115,32,99,108,111,115,101,98,121,32,111,110,99,101,2,3,8, +111,100,44,110,100,44,98,117,2,3,17,85,110,107,110,111,119,110,32,112,97,116, +116,101,114,110,58,32,1,18,2,138,90,0,0,61,1,17,2,159,10,1,1,18,3,138,42,0,13, +1,1,1,18,2,138,93,0,0,44,1,17,2,159,13,1,1,18,3,138,45,0,13,1,1,1,4,1,17,1,4, +1,17,1,4,1,17,2,16,3,0,2,122,2,16,3,0,2,121,2,16,3,0,2,120,1,17,3,1,144,18,2, +2,16,3,0,2,119,2,16,3,0,2,118,1,17,3,1,3,2,2,16,3,0,2,117,1,17,4,1,159,41,8, +2,2,16,3,0,2,116,1,17,4,1,136,56,2,132,1,2,16,3,0,2,115,1,17,3,1,141,80,2,2, +16,3,0,2,114,1,17,2,1,2,2,16,3,0,2,113,1,17,3,1,143,64,2,2,16,3,0,2,112,1,17, +3,1,136,64,2,2,16,3,0,2,111,1,17,2,1,143,58,2,16,3,0,2,110,1,17,3,1,4,2,2,16, +3,0,2,109,1,17,5,1,147,14,2,160,117,27,2,16,3,0,2,108,2,16,3,0,2,107,1,17,2, +1,143,65,2,16,3,0,2,106,1,17,4,1,136,25,2,133,108,2,16,3,0,2,105,1,17,3,1,13, +2,2,16,3,0,2,104,1,17,5,1,147,23,2,160,126,35,1,17,2,9,1,2,16,3,0,2,103,2,16, +3,0,2,102,1,17,3,1,144,52,2,2,16,3,0,2,101,1,17,3,1,143,77,2,2,16,3,0,2,100, +1,17,4,1,144,43,41,2,2,16,3,0,2,99,1,17,4,1,136,39,2,133,122,2,16,3,0,2,98,1, +17,2,1,2,1,17,3,25,28,1,1,17,5,24,147,37,1,161,12,48,1,2,3,65,24,64,1,2,3,64, +15,63,1,2,3,63,3,62,1,1,2,1,0,13,0,1,1,2,3,1,1,1,2,5,1,2,16,3,0,2,97,1,17,5, +1,139,116,152,78,0,12,2,65,2,16,3,0,2,96,1,17,4,1,133,118,2,4,2,16,3,0,2,95, +2,16,3,0,2,94,1,17,3,1,133,95,2,2,16,3,0,2,93,1,17,3,1,136,108,2,2,16,3,0,2, +92,1,17,2,1,2,1,17,4,131,37,147,105,1,144,80,1,17,4,131,36,147,95,1,148,11,1, +17,4,131,35,144,4,1,133,126,2,16,3,0,2,91,1,17,2,1,2,2,16,3,0,2,90,1,17,4,1, +147,80,2,160,23,1,17,4,131,53,147,101,1,15,1,17,4,131,54,147,102,1,133,115,1, +17,4,131,55,147,103,1,81,1,17,3,131,53,79,1,1,42,2,0,0,11,0,0,20,2,3,8,109,117, +116,97,45,110,117,109,2,3,9,98,121,116,101,45,100,114,111,112,2,3,8,98,121,116, +101,45,105,110,99,2,3,8,98,121,116,101,45,100,101,99,2,3,11,98,121,116,101,45, +105,110,115,101,114,116,2,3,11,98,121,116,101,45,114,101,112,101,97,116,2,3, +11,98,121,116,101,45,114,97,110,100,111,109,2,3,9,98,121,116,101,45,112,101, +114,109,2,3,9,102,117,115,101,45,116,104,105,115,2,3,9,102,117,115,101,45,110, +101,120,116,2,3,8,102,117,115,101,45,111,108,100,2,3,10,115,101,113,45,114,101, +112,101,97,116,2,3,11,115,101,100,45,115,101,113,45,100,101,108,2,3,8,108,105, +110,101,45,100,101,108,2,3,12,108,105,110,101,45,100,101,108,45,115,101,113, +2,3,8,108,105,110,101,45,100,117,112,2,3,10,108,105,110,101,45,99,108,111,110, +101,2,3,11,108,105,110,101,45,114,101,112,101,97,116,2,3,9,108,105,110,101,45, +115,119,97,112,2,3,9,108,105,110,101,45,112,101,114,109,2,3,8,108,105,115,116, +45,105,110,115,2,3,12,108,105,115,116,45,114,101,112,108,97,99,101,2,3,10,117, +116,102,56,45,119,105,100,101,110,2,3,11,117,116,102,56,45,105,110,115,101,114, +116,2,3,13,116,114,101,101,45,115,119,97,112,45,111,110,101,2,3,13,116,114,101, +101,45,115,119,97,112,45,116,119,111,2,3,8,116,114,101,101,45,100,101,108,2, +3,8,116,114,101,101,45,100,117,112,2,3,12,116,114,101,101,45,115,116,117,116, +116,101,114,2,3,4,98,121,116,101,2,3,4,116,101,120,116,2,3,9,100,101,108,105, +109,105,116,101,100,2,3,37,115,116,114,105,110,103,45,102,108,97,116,116,101, +110,58,32,119,104,97,116,32,107,105,110,100,32,111,102,32,110,111,100,101,32, +105,115,32,2,3,23,115,116,114,105,110,103,45,109,117,116,97,116,101,58,32,119, +104,97,116,32,105,115,32,2,3,9,97,98,45,115,116,114,105,110,103,2,3,2,97,98, +2,3,50,101,110,104,97,110,99,101,32,115,105,108,108,121,32,105,115,115,117,101, +115,32,105,110,32,65,83,67,73,73,32,115,116,114,105,110,103,32,100,97,116,97, +32,104,97,110,100,108,105,110,103,2,3,2,98,100,2,3,11,100,114,111,112,32,97, +32,98,121,116,101,2,3,2,98,102,2,3,12,102,108,105,112,32,111,110,101,32,98,105, +116,2,3,2,98,105,2,3,20,105,110,115,101,114,116,32,97,32,114,97,110,100,111, +109,32,98,121,116,101,2,3,2,98,114,2,3,13,114,101,112,101,97,116,32,97,32,98, +121,116,101,2,3,2,98,112,2,3,18,112,101,114,109,117,116,101,32,115,111,109,101, +32,98,121,116,101,115,2,3,3,98,101,105,2,3,23,105,110,99,114,101,109,101,110, +116,32,97,32,98,121,116,101,32,98,121,32,111,110,101,2,3,3,98,101,100,2,3,23, +100,101,99,114,101,109,101,110,116,32,97,32,98,121,116,101,32,98,121,32,111, +110,101,2,3,3,98,101,114,2,3,29,115,119,97,112,32,97,32,98,121,116,101,32,119, +105,116,104,32,97,32,114,97,110,100,111,109,32,111,110,101,2,3,2,115,114,2,3, +26,114,101,112,101,97,116,32,97,32,115,101,113,117,101,110,99,101,32,111,102, +32,98,121,116,101,115,2,3,2,115,100,2,3,26,100,101,108,101,116,101,32,97,32, +115,101,113,117,101,110,99,101,32,111,102,32,98,121,116,101,115,2,3,2,108,100, +2,3,13,100,101,108,101,116,101,32,97,32,108,105,110,101,2,3,3,108,100,115,2, +3,17,100,101,108,101,116,101,32,109,97,110,121,32,108,105,110,101,115,2,3,3, +108,114,50,2,3,16,100,117,112,108,105,99,97,116,101,32,97,32,108,105,110,101, +2,3,2,108,105,2,3,19,99,111,112,121,32,97,32,108,105,110,101,32,99,108,111,115, +101,98,121,2,3,2,108,114,2,3,13,114,101,112,101,97,116,32,97,32,108,105,110, +101,2,3,2,108,115,2,3,14,115,119,97,112,32,116,119,111,32,108,105,110,101,115, +2,3,2,108,112,2,3,19,115,119,97,112,32,111,114,100,101,114,32,111,102,32,108, +105,110,101,115,2,3,3,108,105,115,2,3,28,105,110,115,101,114,116,32,97,32,108, +105,110,101,32,102,114,111,109,32,101,108,115,101,119,104,101,114,101,2,3,3, +108,114,115,2,3,38,114,101,112,108,97,99,101,32,97,32,108,105,110,101,32,119, +105,116,104,32,111,110,101,32,102,114,111,109,32,101,108,115,101,119,104,101, +114,101,2,3,2,116,100,2,3,13,100,101,108,101,116,101,32,97,32,110,111,100,101, +2,3,3,116,114,50,2,3,16,100,117,112,108,105,99,97,116,101,32,97,32,110,111,100, +101,2,3,3,116,115,49,2,3,30,115,119,97,112,32,111,110,101,32,110,111,100,101, +32,119,105,116,104,32,97,110,111,116,104,101,114,32,111,110,101,2,3,3,116,115, +50,2,3,23,115,119,97,112,32,116,119,111,32,110,111,100,101,115,32,112,97,105, +114,119,105,115,101,2,3,2,116,114,2,3,31,114,101,112,101,97,116,32,97,32,112, +97,116,104,32,111,102,32,116,104,101,32,112,97,114,115,101,32,116,114,101,101, +2,3,2,117,119,2,3,33,116,114,121,32,116,111,32,109,97,107,101,32,97,32,99,111, +100,101,32,112,111,105,110,116,32,116,111,111,32,119,105,100,101,2,3,2,117,105, +2,3,20,105,110,115,101,114,116,32,102,117,110,110,121,32,117,110,105,99,111, +100,101,2,3,3,110,117,109,2,3,30,116,114,121,32,116,111,32,109,111,100,105,102, +121,32,97,32,116,101,120,116,117,97,108,32,110,117,109,98,101,114,2,3,2,120, +112,2,3,30,116,114,121,32,116,111,32,112,97,114,115,101,32,88,77,76,32,97,110, +100,32,109,117,116,97,116,101,32,105,116,2,3,2,102,116,2,3,35,106,117,109,112, +32,116,111,32,97,32,115,105,109,105,108,97,114,32,112,111,115,105,116,105,111, +110,32,105,110,32,98,108,111,99,107,2,3,2,102,110,2,3,43,108,105,107,101,108, +121,32,99,108,111,110,101,32,100,97,116,97,32,98,101,116,119,101,101,110,32, +115,105,109,105,108,97,114,32,112,111,115,105,116,105,111,110,115,2,3,2,102, +111,2,3,35,102,117,115,101,32,112,114,101,118,105,111,117,115,108,121,32,115, +101,101,110,32,100,97,116,97,32,101,108,115,101,119,104,101,114,101,2,3,116, +102,116,61,50,44,102,111,61,50,44,102,110,44,110,117,109,61,53,44,116,100,44, +116,114,50,44,116,115,49,44,116,114,44,116,115,50,44,108,100,44,108,100,115, +44,108,114,50,44,108,105,44,108,115,44,108,112,44,108,114,44,108,105,115,44, +108,114,115,44,115,114,44,115,100,44,98,100,44,98,102,44,98,105,44,98,114,44, +98,112,44,98,101,105,44,98,101,100,44,98,101,114,44,117,119,44,117,105,61,50, +44,120,112,61,57,44,97,98,2,3,18,85,110,107,110,111,119,110,32,109,117,116,97, +116,105,111,110,58,32,1,18,2,140,21,0,0,61,1,17,2,160,69,1,1,18,3,139,101,0, +13,1,1,1,18,2,140,24,0,0,44,1,17,2,160,72,1,1,18,3,139,104,0,13,1,1,1,4,1,107, +1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1, +107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1, +4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107, +1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1,107,1,4,1, +107,1,4,1,105,2,16,3,0,2,89,1,17,2,1,134,123,1,17,2,134,36,1,1,17,3,134,56,145, +74,134,57,1,17,3,134,52,138,11,1,2,16,3,0,2,88,1,17,3,1,145,69,2,1,17,3,133, +84,148,115,134,61,2,16,3,0,2,87,1,17,3,1,145,67,2,2,16,3,0,2,86,1,17,3,1,145, +53,2,1,17,3,132,103,138,19,1,2,16,3,0,2,85,1,17,3,1,145,115,2,2,16,3,0,2,84, +1,17,3,1,138,23,2,2,16,3,0,2,83,1,17,3,1,145,110,2,2,16,3,0,2,82,1,17,3,1,145, +83,2,2,16,3,0,2,81,2,16,3,0,2,80,1,17,4,1,21,134,77,2,1,17,3,134,72,138,31,1, +1,17,3,20,145,88,1,2,16,3,0,2,79,2,16,3,0,2,78,1,17,3,1,146,1,2,1,17,2,134,63, +1,2,16,3,0,2,77,1,17,2,1,2,2,16,3,0,2,76,1,17,4,1,31,134,87,2,2,16,3,0,2,75, +1,17,3,1,145,120,2,2,16,3,0,2,74,1,17,3,1,138,15,2,1,17,3,134,86,138,45,1,1, +17,3,34,145,102,1,2,16,3,0,2,73,1,17,3,1,145,106,134,95,1,17,3,132,123,145,119, +1,1,17,3,132,122,138,50,1,2,16,3,0,2,72,1,17,3,1,138,52,2,1,17,3,41,145,109, +1,2,16,3,0,2,71,2,16,3,0,2,70,1,17,3,1,161,39,2,1,17,3,135,54,161,42,1,1,17, +4,29,49,134,105,1,1,17,3,134,100,138,59,1,2,16,3,0,2,69,1,17,3,1,146,27,2,2, +16,3,0,2,68,1,17,3,1,146,19,2,1,17,3,38,145,120,1,1,17,3,134,7,149,38,134,112, +1,17,3,133,22,149,39,1,2,16,3,0,2,67,1,17,3,1,145,119,2,1,17,3,133,29,138,25, +1,2,16,3,0,2,66,1,17,3,1,145,124,2,2,16,3,0,2,65,1,17,3,1,145,124,2,2,16,3,0, +2,64,1,17,3,1,146,0,2,2,16,3,0,2,63,1,17,3,1,146,27,2,2,16,3,0,2,62,1,17,3,1, +146,30,2,2,16,3,0,2,61,1,17,3,1,138,52,2,2,16,3,0,2,60,1,17,3,1,138,50,2,1,17, +3,64,146,50,1,1,17,3,133,41,138,85,1,2,16,3,0,2,59,1,17,3,1,146,53,2,2,16,3, +0,2,58,1,17,3,1,146,45,2,1,17,3,64,146,18,1,2,16,3,0,2,57,2,16,3,0,2,56,1,17, +3,1,146,35,2,2,16,3,0,2,55,1,17,4,1,86,135,14,2,2,16,3,0,2,54,1,17,3,1,146,66, +2,2,16,3,0,2,53,1,17,3,1,146,41,2,2,16,3,0,2,52,1,17,3,1,138,101,2,2,16,3,0, +2,51,1,17,3,1,146,59,2,2,16,3,0,2,50,2,16,3,0,2,49,1,17,3,1,146,48,2,2,16,3, +0,2,48,1,17,3,1,146,77,2,2,16,3,0,2,47,1,17,4,1,138,110,7,2,2,16,3,0,2,46,1, +17,3,1,146,68,2,1,17,2,130,42,1,2,16,3,0,2,45,1,17,3,1,146,57,135,34,2,16,3, +0,2,44,1,17,3,1,138,117,2,2,16,3,0,2,43,2,16,3,0,2,42,1,17,4,1,111,134,40,2, +2,16,3,0,2,41,1,17,3,1,138,122,2,2,16,3,0,2,40,1,17,3,1,7,2,2,16,3,0,2,39,1, +17,3,1,13,2,2,16,3,0,2,38,1,17,3,1,146,56,2,2,16,3,0,2,37,1,17,4,11,121,134, +50,1,1,17,3,10,139,3,1,1,17,3,9,15,1,1,17,3,8,20,1,1,17,3,7,146,62,1,2,3,4,111, +112,101,110,2,3,11,111,112,101,110,45,115,105,110,103,108,101,2,3,3,98,117,103, +2,3,36,98,117,103,32,45,32,101,118,101,114,121,116,104,105,110,103,32,115,104, +111,117,108,100,32,98,101,32,112,97,114,115,101,97,98,108,101,2,3,16,119,104, +97,116,32,102,105,110,101,32,110,111,100,101,58,32,2,3,16,119,104,97,116,32, +102,105,110,101,32,110,111,100,101,58,32,1,24,2,0,0,48,0,13,2,1,24,2,0,0,50, +0,13,2,1,24,2,0,0,52,0,13,2,1,24,4,0,0,49,0,13,2,3,2,1,24,2,0,0,54,0,13,2,1, +26,2,0,0,57,0,13,2,1,25,3,0,0,56,0,13,2,1,1,26,4,0,0,55,0,13,2,3,1,1,24,4,0, +0,53,0,13,2,6,1,1,24,4,0,0,51,0,13,2,6,1,1,18,3,141,73,141,72,1,1,18,2,141,67, +1,1,18,3,141,71,2,1,1,18,3,141,72,1,141,81,1,18,2,141,40,1,2,3,19,116,97,103, +45,105,110,102,111,58,32,98,97,100,32,110,111,100,101,32,2,3,7,87,84,78,32,73, +83,32,2,3,3,63,63,63,2,3,7,87,84,78,32,73,83,32,2,3,3,63,63,63,2,3,7,120,112, +45,115,119,97,112,2,3,36,103,101,110,101,114,97,116,101,45,110,111,100,101,58, +32,117,110,101,120,112,101,99,116,101,100,32,110,111,100,101,32,116,121,112, +101,32,2,3,9,120,112,45,105,110,115,101,114,116,2,3,6,120,112,45,100,117,112, +2,3,7,120,112,45,112,117,109,112,2,3,9,120,112,45,114,101,112,101,97,116,1,4, +1,32,1,4,1,32,1,4,1,8,1,4,1,7,1,4,1,7,1,4,1,7,1,4,1,7,2,16,3,0,2,36,2,16,3,0, +2,35,1,17,3,1,162,36,2,2,16,3,0,2,34,1,17,3,1,150,36,2,1,18,2,142,33,0,0,32, +1,18,2,142,34,0,0,10,1,18,3,142,31,2,1,1,18,3,142,27,1,0,13,2,1,18,2,142,37, +0,0,34,1,18,2,142,38,0,0,39,1,18,3,142,35,2,1,2,16,3,0,2,33,1,17,2,1,147,15, +2,16,3,0,2,32,1,17,4,1,147,16,2,147,17,2,16,3,0,2,31,1,17,4,1,147,18,2,147,19, +2,16,3,0,2,30,1,17,3,1,147,20,2,1,18,2,142,51,1,1,18,3,142,40,1,0,13,1,2,16, +3,0,2,29,2,16,3,0,2,28,1,17,3,1,150,43,2,2,16,3,0,2,27,1,17,2,1,2,2,16,3,0,2, +26,1,17,3,1,142,55,2,2,16,3,0,2,25,1,17,2,1,2,2,16,3,0,2,24,1,17,3,1,142,49, +2,2,16,3,0,2,23,2,16,3,0,2,22,1,17,3,1,142,70,2,2,16,3,0,2,21,1,17,2,1,2,2,16, +3,0,2,20,1,17,3,1,142,66,2,2,16,3,0,2,19,1,17,4,1,142,64,9,2,2,16,3,0,2,18,1, +17,2,1,162,127,2,16,3,0,2,17,1,17,4,1,142,75,4,2,1,17,2,160,59,1,2,16,3,0,2, +16,2,16,3,0,2,15,1,17,2,1,2,2,16,3,0,2,14,1,17,3,1,5,2,2,16,3,0,2,13,1,17,3, +1,42,2,1,18,3,142,78,1,33,2,16,3,0,2,12,2,16,3,0,2,11,1,17,3,1,53,2,1,17,2,29, +1,1,17,3,25,5,157,28,2,16,3,0,2,10,1,17,3,1,53,2,1,17,2,26,1,2,16,3,0,2,9,1, +17,3,1,142,91,2,1,17,4,25,142,88,7,1,2,16,3,0,2,8,1,17,3,1,142,101,2,2,16,3, +0,2,7,1,17,3,1,61,2,1,17,3,10,49,1,1,17,3,19,63,1,2,16,3,0,2,6,2,16,3,0,2,5, +1,17,2,1,2,2,16,3,0,2,4,1,17,2,1,83,1,17,2,41,1,2,16,3,0,2,3,1,17,3,1,142,106, +2,1,17,2,5,86,1,17,2,45,1,2,16,3,0,2,2,1,17,3,1,142,110,2,1,17,2,48,1,2,16,3, +0,2,1,1,17,3,1,142,113,2,2,16,3,0,2,0,1,17,5,1,142,111,14,9,2,2,16,3,0,1,255, +1,17,3,1,82,2,1,17,2,62,1,2,16,3,0,1,254,1,17,4,1,142,110,2,22,1,17,3,42,73, +1,2,16,3,0,1,253,1,17,2,1,157,65,2,16,3,0,1,252,1,17,2,1,137,95,1,17,2,70,1, +2,16,3,0,1,251,1,17,3,1,143,0,2,1,17,3,34,94,1,1,17,3,43,82,1,1,17,2,68,1,1, +17,3,20,143,4,1,2,16,3,0,1,250,1,17,5,1,143,2,11,2,13,1,17,2,72,1,2,16,3,0,1, +249,1,17,3,1,143,9,2,2,16,3,0,1,248,2,16,3,0,1,247,1,17,2,1,137,71,1,17,2,78, +1,2,16,3,0,1,246,1,17,3,1,143,5,2,2,16,3,0,1,245,1,17,4,1,143,20,2,7,2,16,3, +0,1,244,1,17,2,1,137,78,2,16,3,0,1,243,1,17,3,1,2,100,1,17,3,55,5,1,1,17,3,72, +143,31,1,1,18,3,143,21,15,1,1,18,3,143,17,1,0,13,2,2,16,3,0,1,242,1,17,5,1,142, +105,2,129,37,129,36,2,16,3,0,1,241,2,16,3,0,1,240,1,17,4,1,0,13,3,150,125,2, +1,17,2,137,73,1,1,17,2,137,80,150,123,2,16,3,0,1,239,1,17,2,1,2,2,16,3,0,1,238, +1,17,5,1,150,127,151,3,2,0,13,3,2,16,3,0,1,237,1,17,2,1,2,2,16,3,0,1,236,2,16, +3,0,1,235,1,17,3,1,3,2,2,16,3,0,1,234,1,17,3,1,12,2,2,16,3,0,1,233,2,16,3,0, +1,232,1,17,2,1,2,2,16,3,0,1,231,1,17,2,1,2,1,17,2,136,95,1,2,16,3,0,1,230,1, +17,3,1,151,77,0,0,127,2,16,3,0,1,229,1,17,2,1,129,33,2,16,3,0,1,228,2,16,3,0, +1,227,1,17,3,1,13,2,2,16,3,0,1,226,1,17,4,1,9,5,2,1,17,2,7,129,38,1,17,3,5,17, +6,1,17,4,4,12,2,1,2,16,3,0,1,225,1,17,2,1,138,33,1,17,3,14,151,90,0,0,127,2, +16,3,0,1,224,1,17,14,1,143,102,15,129,73,137,125,129,46,23,8,129,45,5,138,36, +3,2,129,74,2,16,3,0,1,223,1,17,2,1,24,2,16,3,0,1,222,1,17,4,1,159,105,4,2,2, +16,3,0,1,221,1,17,3,1,163,79,2,1,17,2,137,115,1,2,16,3,0,1,220,1,17,2,1,138, +6,2,16,3,0,1,219,1,17,4,1,138,8,151,69,2,2,16,3,0,1,218,1,17,3,1,151,84,2,2, +16,3,0,1,217,1,17,2,1,129,61,2,16,3,0,1,216,1,17,2,1,2,2,16,3,0,1,215,1,17,2, +1,154,78,2,16,3,0,1,214,1,17,7,1,151,77,138,18,129,67,138,57,4,2,1,17,2,138, +2,1,2,16,3,0,1,213,1,17,2,1,2,2,16,3,0,1,212,1,17,3,1,151,55,0,13,3,2,16,3,0, +1,211,1,17,3,1,151,61,2,2,16,3,0,1,210,1,17,2,1,129,88,2,16,3,0,1,209,2,16,3, +0,1,208,1,17,3,1,148,87,2,2,16,3,0,1,207,1,17,3,1,149,102,2,2,16,3,0,1,206,1, +17,2,1,2,2,16,3,0,1,205,1,17,3,1,2,137,43,2,16,3,0,1,204,1,17,3,1,137,26,2,1, +17,2,161,94,1,1,17,2,137,19,151,74,1,17,2,137,100,2,1,17,3,132,112,142,28,1, +1,17,2,138,32,151,75,2,16,3,0,1,203,1,17,4,1,147,26,3,2,2,16,3,0,1,202,1,17, +3,1,20,2,2,16,3,0,1,201,1,17,4,1,152,3,9,2,2,16,3,0,1,200,1,17,3,1,151,87,2, +2,16,3,0,1,199,1,17,3,1,28,2,2,16,3,0,1,198,1,17,2,1,2,2,16,3,0,1,197,1,17,13, +1,138,57,129,106,4,138,96,129,105,154,119,152,11,2,138,40,144,39,0,12,2,129, +117,2,16,3,0,1,196,1,17,4,1,152,13,138,42,2,2,16,3,0,1,195,2,16,3,0,1,194,1, +17,3,1,3,2,2,16,3,0,1,193,1,17,3,1,43,2,1,17,3,137,66,61,1,1,17,3,134,4,56,1, +2,16,3,0,1,192,1,17,3,1,110,2,2,16,3,0,1,191,2,16,3,0,1,190,2,16,3,0,1,189,1, +17,3,1,152,5,2,2,16,3,0,1,188,1,17,4,1,152,7,5,2,2,16,3,0,1,187,1,17,2,1,2,1, +17,2,138,60,1,2,16,3,0,1,186,1,17,3,8,152,12,1,2,16,3,0,1,185,1,17,3,1,4,2,1, +17,3,11,152,15,4,2,16,3,0,1,184,1,17,3,1,7,2,2,16,3,0,1,183,2,16,3,0,1,182,1, +17,3,1,152,20,2,2,16,3,0,1,181,1,17,2,1,152,56,1,17,2,138,79,9,2,16,3,0,1,180, +1,17,2,1,2,1,17,3,112,152,60,0,0,127,2,16,3,0,1,179,1,17,21,1,144,70,6,0,12, +2,130,24,130,23,138,95,152,28,155,29,8,3,130,16,14,130,15,11,139,6,164,95,138, +77,2,130,26,130,25,2,16,3,0,1,178,1,17,5,1,160,73,2,152,43,138,80,2,16,3,0,1, +177,1,17,3,1,152,57,2,2,16,3,0,1,176,1,17,2,1,2,2,16,3,0,1,175,1,17,3,1,152, +57,138,86,2,16,3,0,1,174,1,17,6,1,164,105,138,53,155,39,152,59,138,88,2,16,3, +0,1,173,1,17,2,1,2,2,16,3,0,1,172,1,17,2,1,2,2,16,3,0,1,171,1,17,4,1,164,59, +8,2,2,16,3,0,1,170,1,17,4,1,130,33,155,47,130,34,1,18,2,3,1,2,16,3,0,1,169,1, +17,2,1,155,50,1,18,2,6,1,1,18,2,7,164,112,2,16,3,0,1,168,1,17,3,1,155,54,138, +120,1,18,2,10,1,2,16,3,0,1,167,1,17,3,1,152,66,137,106,2,16,3,0,1,166,1,17,2, +1,155,59,2,16,3,0,1,165,1,17,5,1,155,61,152,70,2,137,110,2,16,3,0,1,164,1,17, +2,1,2,2,16,3,0,1,163,1,17,4,1,164,79,8,2,2,16,3,0,1,162,2,16,3,0,1,161,1,17, +4,1,3,137,14,2,2,16,3,0,1,160,1,17,3,1,141,52,2,2,16,3,0,1,159,1,17,4,1,164, +85,133,52,2,2,16,3,0,1,158,1,17,3,1,164,87,2,2,16,3,0,1,157,1,17,3,1,28,2,1, +17,2,134,38,141,94,2,16,3,0,1,156,1,17,3,1,152,17,2,2,16,3,0,1,155,2,16,3,0, +1,154,2,16,3,0,1,153,1,17,2,1,2,2,16,3,0,1,152,1,17,3,1,147,5,2,2,16,3,0,1,151, +1,17,3,1,141,113,2,2,16,3,0,1,150,1,17,4,1,152,43,9,2,2,16,3,0,1,149,1,17,8, +1,165,29,130,78,130,77,155,91,153,1,130,83,138,36,2,16,3,0,1,148,1,17,3,1,4, +2,2,16,3,0,1,147,1,17,3,1,152,69,2,2,16,3,0,1,146,1,17,3,1,18,2,2,16,3,0,1,145, +2,16,3,0,1,144,1,17,4,1,35,137,46,2,2,16,3,0,1,143,1,17,3,1,5,2,1,17,3,136,85, +141,120,1,2,16,3,0,1,142,1,17,3,1,53,2,1,17,3,31,51,1,2,16,3,0,1,141,1,17,2, +1,165,46,2,16,3,0,1,140,1,17,4,1,45,137,56,2,2,16,3,0,1,139,1,17,3,1,142,1,2, +1,17,3,38,65,1,2,16,3,0,1,138,1,17,3,1,149,110,138,60,2,16,3,0,1,137,1,17,5, +1,152,6,139,37,142,15,2,2,16,3,0,1,136,1,17,3,1,0,0,129,128,0,2,2,16,3,0,1,135, +1,17,3,1,149,21,2,2,16,3,0,1,134,1,17,2,1,2,2,16,3,0,1,133,2,16,3,0,1,132,1, +17,3,1,149,26,2,2,16,3,0,1,131,1,17,2,1,2,2,16,3,0,1,130,1,17,4,1,65,139,50, +32,2,16,3,0,1,129,1,17,6,1,67,137,78,34,149,124,2,2,16,3,0,1,128,1,17,2,1,2, +2,16,3,0,1,127,1,17,3,1,13,2,2,16,3,0,1,126,1,17,3,1,142,27,2,1,17,2,130,77, +165,75,2,16,3,0,1,125,1,17,4,1,153,5,3,2,2,16,3,0,1,124,1,17,3,1,88,2,2,16,3, +0,1,123,1,17,3,1,17,2,2,16,3,0,1,122,1,17,4,135,11,149,64,2,1,2,16,3,0,1,121, +1,17,3,1,98,2,2,16,3,0,1,120,1,17,4,1,150,15,139,71,165,89,2,16,3,0,1,119,1, +17,3,1,138,98,2,1,17,3,137,110,31,1,1,17,4,56,90,137,101,57,2,16,3,0,1,118,1, +17,3,1,3,2,1,17,3,47,142,47,1,1,17,3,84,111,1,2,16,3,0,1,117,1,17,11,1,85,131, +18,48,131,16,12,131,15,2,131,14,55,131,17,2,16,3,0,1,116,1,17,3,1,142,61,2,2, +16,3,0,1,115,2,16,3,0,1,114,1,17,2,1,2,2,16,3,0,1,113,1,17,3,1,5,2,1,17,2,138, +94,1,2,16,3,0,1,112,2,16,3,0,1,111,1,17,2,1,0,32,1,2,16,3,0,1,110,2,16,3,0,1, +109,1,17,3,1,139,97,2,2,16,3,0,1,108,1,17,3,1,139,47,2,2,16,3,0,1,107,1,17,2, +1,2,2,16,3,0,1,106,1,17,3,1,129,18,2,2,16,3,0,1,105,1,17,4,1,11,14,2,2,16,3, +0,1,104,1,17,3,1,15,2,2,16,3,0,1,103,1,17,3,1,129,57,2,2,16,3,0,1,102,1,17,3, +1,147,126,2,2,16,3,0,1,101,1,17,2,1,2,1,18,4,3,0,13,3,0,13,3,1,2,16,3,0,1,100, +1,17,2,1,0,32,1,2,16,3,0,1,99,1,17,3,1,149,96,2,2,16,3,0,1,98,1,17,2,1,0,32, +1,1,17,4,138,71,142,47,1,133,103,2,16,3,0,1,97,1,17,4,1,150,68,139,121,0,0,129, +0,1,17,2,135,92,1,2,16,3,0,1,96,1,17,2,139,73,162,40,2,16,3,0,1,95,1,17,4,1, +2,139,126,162,42,2,16,3,0,1,94,1,17,4,1,150,72,5,2,2,16,3,0,1,93,1,17,2,1,150, +74,2,16,3,0,1,92,1,17,3,1,150,79,138,107,1,17,3,137,71,150,80,1,2,16,3,0,1,91, +1,17,3,1,150,76,2,2,16,3,0,1,90,1,17,3,1,7,2,2,16,3,0,1,89,1,17,2,1,2,1,17,2, +139,16,139,105,1,17,2,139,18,1,2,16,3,0,1,88,2,16,3,0,1,87,1,17,2,1,0,32,1,2, +16,3,0,1,86,1,17,3,1,147,51,2,2,16,3,0,1,85,1,17,3,1,147,53,2,2,16,3,0,1,84, +1,17,3,1,9,138,48,2,16,3,0,1,83,1,17,5,1,139,30,4,150,96,2,2,16,3,0,1,82,1,17, +2,1,2,2,16,3,0,1,81,1,17,4,1,14,150,103,2,2,16,3,0,1,80,1,17,5,1,143,8,130,28, +19,2,1,17,2,139,36,1,2,16,3,0,1,79,1,17,4,1,139,38,0,32,1,139,38,2,16,3,0,1, +78,1,17,2,1,139,40,2,16,3,0,1,77,1,17,3,1,139,42,0,32,1,2,16,3,0,1,76,1,17,7, +1,143,17,6,140,41,4,133,43,2,2,16,3,0,1,75,1,17,3,1,139,119,2,2,16,3,0,1,74, +1,17,3,1,49,2,2,16,3,0,1,73,1,17,3,1,14,2,2,16,3,0,1,72,1,17,3,1,148,64,2,1, +17,2,139,53,1,2,16,3,0,1,71,1,17,2,1,139,55,2,16,3,0,1,70,1,17,4,1,140,54,2, +133,55,2,16,3,0,1,69,1,17,4,1,54,2,165,123,2,16,3,0,1,68,1,17,3,1,68,2,2,16, +3,0,1,67,1,17,3,1,143,36,2,1,17,2,139,64,1,1,17,2,11,139,65,1,17,4,10,140,63, +1,133,63,2,16,3,0,1,66,1,17,4,1,153,24,140,19,0,0,129,127,2,16,3,0,1,65,1,17, +3,1,151,12,2,1,17,4,13,66,5,1,1,17,3,12,79,1,1,17,3,11,143,46,1,1,17,2,139,74, +1,1,17,2,21,139,75,1,17,4,20,140,73,1,133,72,2,16,3,0,1,64,1,17,4,1,151,17,0, +0,129,127,140,29,2,16,3,0,1,63,1,17,3,1,151,10,2,1,17,4,23,76,5,1,1,17,3,22, +89,1,1,17,3,21,143,56,1,1,17,2,139,84,1,1,17,2,31,139,85,1,17,4,30,140,83,1, +133,83,2,16,3,0,1,62,1,17,3,1,153,42,140,39,2,16,3,0,1,61,1,17,4,1,85,4,2,2, +16,3,0,1,60,1,17,3,1,153,56,2,2,16,3,0,1,59,1,17,3,1,101,2,2,16,3,0,1,58,1,17, +3,1,143,69,2,1,17,3,35,143,70,1,1,17,2,139,98,1,1,17,2,45,139,99,1,17,4,44,140, +97,1,133,95,2,16,3,0,1,57,2,16,3,0,1,56,1,17,4,1,98,3,2,2,16,3,0,1,55,1,17,4, +1,143,78,2,0,0,130,0,1,17,3,46,113,1,1,17,3,45,143,80,1,1,17,2,139,108,1,2,16, +3,0,1,54,1,17,4,1,153,74,140,105,143,83,2,16,3,0,1,53,1,17,5,1,143,85,151,42, +2,0,0,136,128,0,2,16,3,0,1,52,1,17,3,1,143,87,2,1,17,2,129,68,1,2,16,3,0,1,51, +2,16,3,0,1,50,1,17,3,1,151,57,2,1,17,2,139,119,1,1,17,2,66,139,120,1,17,4,65, +140,118,1,133,115,2,16,3,0,1,49,1,17,2,1,4,2,16,3,0,1,48,1,17,4,1,120,4,2,2, +16,3,0,1,47,1,17,3,1,12,2,1,17,3,68,129,7,1,1,17,3,67,143,102,1,1,17,2,140,2, +1,1,17,2,77,140,3,1,17,4,76,141,1,1,133,125,2,16,3,0,1,46,1,17,4,32,129,1,2, +1,1,17,4,31,143,108,1,0,0,130,0,1,17,3,76,129,15,1,1,17,3,75,143,110,1,1,17, +2,140,10,1,1,17,2,85,140,11,1,17,4,84,141,9,1,134,4,2,16,3,0,1,45,1,17,2,1,154, +88,2,16,3,0,1,44,1,17,3,1,143,73,2,2,16,3,0,1,43,1,17,3,1,151,42,2,2,16,3,0, +1,42,1,17,3,1,151,46,2,2,16,3,0,1,41,1,17,3,1,143,90,2,2,16,3,0,1,40,1,17,4, +1,129,19,12,2,1,17,3,93,129,32,1,1,17,3,92,143,127,1,1,17,2,140,27,1,1,17,2, +102,140,28,2,16,3,0,1,39,1,17,4,1,141,27,2,134,21,2,16,3,0,1,38,1,17,3,1,140, +105,2,2,16,3,0,1,37,1,17,3,1,129,38,2,2,16,3,0,1,36,1,17,3,1,139,114,2,1,17, +3,114,149,49,1,1,17,2,140,38,1,2,16,3,0,1,35,1,17,4,1,154,112,131,83,131,83, +2,16,3,0,1,34,1,17,2,1,2,1,17,2,117,140,43,1,17,4,15,141,41,1,134,34,2,16,3, +0,1,33,1,17,3,1,140,119,2,1,17,3,14,129,51,1,2,16,3,0,1,32,1,17,3,1,139,127, +2,1,17,3,129,67,140,0,1,2,16,3,0,1,31,1,17,3,1,149,64,2,2,16,3,0,1,30,1,17,3, +1,151,29,2,1,17,3,131,123,13,1,2,16,3,0,1,29,1,17,3,1,149,69,2,1,17,2,140,58, +1,2,16,3,0,1,28,2,16,3,0,1,27,1,17,4,1,141,58,132,94,134,50,2,16,3,0,1,26,1, +17,3,1,141,8,2,2,16,3,0,1,25,1,17,3,1,141,10,2,2,16,3,0,1,24,1,17,2,1,2,2,16, +3,0,1,23,1,17,2,1,2,2,16,3,0,1,22,1,17,3,1,129,75,2,2,16,3,0,1,21,1,17,3,1,144, +46,2,2,16,3,0,1,20,1,17,3,1,140,25,2,2,16,3,0,1,19,1,17,3,1,140,27,2,2,16,3, +0,1,18,1,17,3,1,155,9,2,2,16,3,0,1,17,1,17,3,1,149,93,2,1,17,3,132,106,155,12, +1,2,16,3,0,1,16,1,17,3,1,149,96,2,1,17,2,165,23,1,2,16,3,0,1,15,1,17,3,1,28, +2,1,17,2,129,34,140,88,1,17,4,60,141,86,1,134,77,2,16,3,0,1,14,1,17,4,1,164, +2,141,42,2,2,16,3,0,1,13,2,16,3,0,1,12,1,17,4,1,155,61,3,2,2,16,3,0,1,11,1,17, +3,1,151,106,2,2,16,3,0,1,10,1,17,4,1,164,9,133,108,2,2,16,3,0,1,9,1,17,3,1,129, +107,2,2,16,3,0,1,8,1,17,3,1,152,25,2,2,16,3,0,1,7,1,17,3,1,144,48,2,2,16,3,0, +1,6,1,17,3,1,164,17,2,2,16,3,0,1,5,2,16,3,0,1,4,1,17,4,1,155,65,3,2,2,16,3,0, +1,3,1,17,3,1,151,121,2,2,16,3,0,1,2,1,17,4,1,155,69,2,6,2,16,3,0,1,1,1,17,3, +1,151,125,2,2,16,3,0,1,0,1,17,4,1,155,73,2,10,2,16,3,0,0,255,1,17,3,1,152,1, +2,2,16,3,0,0,254,1,17,3,1,144,61,2,2,16,3,0,0,253,1,17,3,1,152,65,2,2,16,3,0, +0,252,1,17,3,1,144,65,2,2,16,3,0,0,251,1,17,4,1,152,66,2,140,127,2,16,3,0,0, +250,1,17,3,1,152,58,2,1,17,2,141,2,1,1,17,2,129,77,141,3,1,17,4,103,142,1,1, +134,119,2,16,3,0,0,249,1,17,4,1,164,45,134,16,2,1,17,3,129,75,130,14,1,1,17, +3,139,69,134,82,1,1,17,3,129,86,150,21,1,1,17,2,141,10,1,2,16,3,0,0,248,2,16, +3,0,0,247,1,17,2,1,155,85,2,16,3,0,0,246,2,16,3,0,0,245,1,17,4,1,155,88,3,2, +2,16,3,0,0,244,1,17,4,1,150,30,7,2,2,16,3,0,0,243,2,16,3,0,0,242,1,17,3,1,130, +22,2,1,17,3,139,55,4,1,1,17,3,133,75,155,110,155,97,2,16,3,0,0,241,1,17,2,1, +141,25,2,16,3,0,0,240,1,17,3,1,142,24,2,2,16,3,0,0,239,1,17,3,1,141,102,2,2, +16,3,0,0,238,1,17,3,1,8,2,2,16,3,0,0,237,1,17,4,1,141,33,0,32,1,2,2,16,3,0,0, +236,1,17,3,1,13,2,1,17,2,130,68,0,32,1,1,17,3,130,66,142,34,130,67,1,17,3,10, +141,111,1,2,16,3,0,0,235,1,17,3,1,17,2,2,16,3,0,0,234,1,17,2,1,2,2,16,3,0,0, +233,1,17,3,1,8,2,2,16,3,0,0,232,1,17,3,1,24,2,2,16,3,0,0,231,1,17,2,1,2,1,18, +3,14,135,9,135,35,1,17,2,141,50,1,1,18,3,16,134,125,135,36,1,17,2,141,52,1,1, +18,3,18,134,122,135,37,1,17,2,141,54,1,1,18,3,20,134,103,135,38,1,17,2,141,56, +1,1,18,3,22,134,112,135,39,1,17,2,141,58,1,1,18,3,24,134,96,135,40,1,17,2,141, +60,1,1,18,3,26,134,72,135,41,1,17,2,141,62,1,1,1,2,0,0,0,0,13,0,1,18,3,16,134, +37,135,43,1,18,5,19,134,38,2,1,135,44,1,1,2,0,0,0,0,13,0,1,18,3,19,134,34,135, +45,1,18,5,22,134,35,2,1,135,46,1,1,2,0,0,129,63,0,13,0,1,1,2,0,0,129,63,1,1, +1,2,0,0,129,111,1,1,1,2,0,0,129,0,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,16, +1,1,1,2,0,0,129,112,1,1,1,2,0,0,129,63,0,13,0,1,1,2,0,0,129,59,1,1,1,2,0,0,129, +111,1,1,1,2,0,0,129,127,0,13,0,1,1,2,0,0,129,126,1,1,1,2,0,0,129,126,0,13,0, +1,1,2,0,0,129,127,1,1,1,2,0,0,129,127,0,13,0,1,1,2,0,0,129,127,1,1,1,2,0,0,0, +1,1,1,2,0,0,0,1,1,1,2,0,0,0,0,13,0,1,1,2,0,0,0,1,1,1,2,0,0,129,127,1,1,1,2,0, +0,129,127,1,1,1,2,0,0,56,0,13,0,1,1,2,0,0,118,1,1,1,2,0,0,47,1,1,1,2,0,0,43, +1,1,1,2,0,0,57,0,13,0,1,1,2,0,0,118,1,1,1,2,0,0,47,1,1,1,2,0,0,43,1,1,1,2,0, +0,43,0,13,0,1,1,2,0,0,118,1,1,1,2,0,0,47,1,1,1,2,0,0,43,1,1,1,2,0,0,47,0,13, +0,1,1,2,0,0,118,1,1,1,2,0,0,47,1,1,1,2,0,0,43,1,1,1,2,0,0,76,0,13,0,1,1,2,0, +0,100,1,1,1,2,0,0,129,119,1,1,1,2,0,0,115,0,13,0,1,1,2,0,0,102,1,1,1,2,0,0,115, +1,1,1,2,0,0,129,93,1,1,1,2,0,0,129,127,0,13,0,1,1,2,0,0,129,126,1,1,1,2,0,0, +14,1,1,1,2,0,0,40,0,13,0,1,1,2,0,0,129,110,1,1,1,2,0,0,129,123,1,1,1,2,0,0,129, +127,0,13,0,1,1,2,0,0,40,1,1,1,2,0,0,129,110,1,1,1,2,0,0,129,123,1,1,1,2,0,0, +51,0,13,0,1,1,2,0,0,129,21,1,1,1,2,0,0,49,1,1,1,2,0,0,129,4,1,1,1,2,0,0,129, +41,0,13,0,1,1,2,0,0,129,18,1,1,1,2,0,0,129,31,1,1,1,2,0,0,129,112,1,1,1,2,0, +0,129,0,0,13,0,1,1,2,0,0,129,57,1,1,1,2,0,0,129,96,1,1,1,2,0,0,129,1,0,13,0, +1,1,2,0,0,129,57,1,1,1,2,0,0,129,96,1,1,1,2,0,0,129,2,0,13,0,1,1,2,0,0,129,57, +1,1,1,2,0,0,129,96,1,1,1,2,0,0,129,3,0,13,0,1,1,2,0,0,129,57,1,1,1,2,0,0,129, +96,1,1,1,2,0,0,129,4,0,13,0,1,1,2,0,0,129,57,1,1,1,2,0,0,129,96,1,1,1,2,0,0, +129,32,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2, +0,0,129,33,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1, +1,2,0,0,129,34,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115, +1,1,1,2,0,0,129,35,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129, +115,1,1,1,2,0,0,129,36,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0, +129,115,1,1,1,2,0,0,129,37,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2, +0,0,129,115,1,1,1,2,0,0,129,38,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1, +1,2,0,0,129,115,1,1,1,2,0,0,129,39,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32, +1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,40,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129, +32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,41,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0, +129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,42,0,13,0,1,1,2,0,0,129,0,1,1,1,2, +0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,43,0,13,0,1,1,2,0,0,129,0,1,1, +1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,44,0,13,0,1,1,2,0,0,129,0, +1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,45,0,13,0,1,1,2,0,0,129, +0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,46,0,13,0,1,1,2,0,0, +129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,47,0,13,0,1,1,2, +0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,48,0,13,0,1, +1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,49,0,13, +0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,50, +0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129, +51,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0, +129,52,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2, +0,0,129,53,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1, +1,2,0,0,129,54,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115, +1,1,1,2,0,0,129,55,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129, +115,1,1,1,2,0,0,129,56,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0, +129,115,1,1,1,2,0,0,129,57,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2, +0,0,129,115,1,1,1,2,0,0,129,58,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1, +1,2,0,0,129,115,1,1,1,2,0,0,129,59,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,32, +1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,60,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129, +32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,61,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0, +129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,62,0,13,0,1,1,2,0,0,129,0,1,1,1,2, +0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,63,0,13,0,1,1,2,0,0,129,0,1,1, +1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,0,0,13,0,1,1,2,0,0,129,1, +1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,1,0,13,0,1,1,2,0,0,129, +1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,2,0,13,0,1,1,2,0,0, +129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,3,0,13,0,1,1,2, +0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,4,0,13,0,1, +1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,5,0,13, +0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,6,0, +13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129, +7,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0, +129,8,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2, +0,0,129,9,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1, +1,2,0,0,129,10,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115, +1,1,1,2,0,0,129,11,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129, +115,1,1,1,2,0,0,129,12,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0, +129,115,1,1,1,2,0,0,129,13,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2, +0,0,129,115,1,1,1,2,0,0,129,14,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1, +1,2,0,0,129,115,1,1,1,2,0,0,129,15,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32, +1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,16,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129, +32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,17,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0, +129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,18,0,13,0,1,1,2,0,0,129,1,1,1,1,2, +0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,19,0,13,0,1,1,2,0,0,129,1,1,1, +1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,20,0,13,0,1,1,2,0,0,129,1, +1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,21,0,13,0,1,1,2,0,0,129, +1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,22,0,13,0,1,1,2,0,0, +129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,23,0,13,0,1,1,2, +0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,24,0,13,0,1, +1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,25,0,13, +0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,26, +0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129, +27,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0, +129,28,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2, +0,0,129,29,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1, +1,2,0,0,129,30,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115, +1,1,1,2,0,0,129,31,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129, +115,1,1,1,2,0,0,129,32,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0, +129,115,1,1,1,2,0,0,129,33,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2, +0,0,129,115,1,1,1,2,0,0,129,34,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1, +1,2,0,0,129,115,1,1,1,2,0,0,129,35,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32, +1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,36,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129, +32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,37,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0, +129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,38,0,13,0,1,1,2,0,0,129,1,1,1,1,2, +0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,39,0,13,0,1,1,2,0,0,129,1,1,1, +1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,40,0,13,0,1,1,2,0,0,129,1, +1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,41,0,13,0,1,1,2,0,0,129, +1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,42,0,13,0,1,1,2,0,0, +129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,43,0,13,0,1,1,2, +0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,44,0,13,0,1, +1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,45,0,13, +0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,46, +0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129, +47,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0, +129,48,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2, +0,0,129,49,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1, +1,2,0,0,129,50,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115, +1,1,1,2,0,0,129,51,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129, +115,1,1,1,2,0,0,129,52,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0, +129,115,1,1,1,2,0,0,129,53,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2, +0,0,129,115,1,1,1,2,0,0,129,54,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32,1,1, +1,2,0,0,129,115,1,1,1,2,0,0,129,55,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,32, +1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,56,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129, +32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,57,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0, +129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,58,0,13,0,1,1,2,0,0,129,1,1,1,1,2, +0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,59,0,13,0,1,1,2,0,0,129,1,1,1, +1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,60,0,13,0,1,1,2,0,0,129,1, +1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,61,0,13,0,1,1,2,0,0,129, +1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,62,0,13,0,1,1,2,0,0, +129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,63,0,13,0,1,1,2, +0,0,129,1,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,1,0,13,0,1, +1,2,0,0,129,0,1,1,1,2,0,0,129,32,1,1,1,2,0,0,129,115,1,1,1,2,0,0,129,32,0,13, +0,1,1,2,0,0,129,62,1,1,1,2,0,0,129,111,1,1,1,2,0,0,129,36,0,13,0,1,1,2,0,0,129, +5,1,1,1,2,0,0,129,99,1,1,1,2,0,0,129,37,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129, +98,1,1,1,2,0,0,129,38,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,98,1,1,1,2,0,0, +129,39,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,40,0,13,0,1, +1,2,0,0,129,1,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,41,0,13,0,1,1,2,0,0,129,1,1, +1,1,2,0,0,129,98,1,1,1,2,0,0,129,31,0,13,0,1,1,2,0,0,129,5,1,1,1,2,0,0,129,97, +1,1,1,2,0,0,129,32,0,13,0,1,1,2,0,0,129,5,1,1,1,2,0,0,129,97,1,1,1,2,0,0,129, +15,0,13,0,1,1,2,0,0,129,77,1,1,1,2,0,0,129,16,0,13,0,1,1,2,0,0,129,55,1,1,1, +2,0,0,129,111,1,1,1,2,0,0,129,48,0,13,0,1,1,2,0,0,129,74,1,1,1,2,0,0,129,49, +0,13,0,1,1,2,0,0,129,74,1,1,1,2,0,0,129,50,0,13,0,1,1,2,0,0,129,74,1,1,1,2,0, +0,129,51,0,13,0,1,1,2,0,0,129,74,1,1,1,2,0,0,129,52,0,13,0,1,1,2,0,0,129,74, +1,1,1,2,0,0,129,53,0,13,0,1,1,2,0,0,129,74,1,1,1,2,0,0,129,54,0,13,0,1,1,2,0, +0,129,74,1,1,1,2,0,0,129,55,0,13,0,1,1,2,0,0,129,74,1,1,1,2,0,0,129,56,0,13, +0,1,1,2,0,0,129,74,1,1,1,2,0,0,129,48,0,13,0,1,1,2,0,0,129,61,1,1,1,2,0,0,129, +111,1,1,1,2,0,0,129,16,0,13,0,1,1,2,0,0,129,75,1,1,1,2,0,0,129,17,0,13,0,1,1, +2,0,0,129,75,1,1,1,2,0,0,129,55,0,13,0,1,1,2,0,0,129,66,1,1,1,2,0,0,129,5,0, +13,0,1,1,2,0,0,129,77,1,1,1,2,0,0,129,12,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0, +129,98,1,1,1,2,0,0,129,13,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2, +0,0,129,42,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,43,0,13, +0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,44,0,13,0,1,1,2,0,0,129, +0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,45,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129, +98,1,1,1,2,0,0,129,46,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0, +129,14,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,15,0,13,0,1, +1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,0,0,13,0,1,1,2,0,0,129,0,1, +1,1,2,0,0,129,99,1,1,1,2,0,0,129,31,0,13,0,1,1,2,0,0,129,1,1,1,1,2,0,0,129,98, +1,1,1,2,0,0,129,47,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129, +41,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,40,0,13,0,1,1,2, +0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,0,0,13,0,1,1,2,0,0,129,0,1,1,1, +2,0,0,129,98,1,1,1,2,0,0,129,1,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1, +1,2,0,0,129,2,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,3,0, +13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,4,0,13,0,1,1,2,0,0,129, +0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,5,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129, +98,1,1,1,2,0,0,129,6,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129, +7,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,8,0,13,0,1,1,2,0, +0,129,0,1,1,1,2,0,0,129,98,1,1,1,2,0,0,129,9,0,13,0,1,1,2,0,0,129,0,1,1,1,2, +0,0,129,98,1,1,1,2,0,0,129,10,0,13,0,1,1,2,0,0,129,0,1,1,1,2,0,0,129,98,1,1, +1,2,0,0,129,14,0,13,0,1,1,2,0,0,129,32,1,1,1,2,0,0,129,97,1,1,1,2,0,0,129,0, +0,13,0,1,1,2,0,0,129,26,1,1,1,2,0,0,129,97,1,1,1,2,0,0,129,32,0,13,0,1,1,2,0, +0,129,66,1,1,1,2,0,0,9,0,13,0,1,1,2,0,0,10,0,13,0,1,1,2,0,0,11,0,13,0,1,1,2, +0,0,12,0,13,0,1,1,2,0,0,13,0,13,0,1,2,129,50,132,101,132,97,132,94,132,92,132, +90,132,86,132,82,132,78,132,74,132,70,132,66,132,63,132,59,132,56,132,53,132, +49,132,45,132,41,132,38,132,35,132,32,132,29,132,26,132,22,132,18,132,14,132, +10,132,6,132,2,131,126,131,122,131,118,131,114,131,110,131,106,131,102,131,98, +131,94,131,90,131,86,131,82,131,78,131,74,131,70,131,66,131,62,131,58,131,54, +131,50,131,46,131,42,131,38,131,34,131,30,131,26,131,22,131,18,131,14,131,10, +131,6,131,2,130,126,130,122,130,118,130,114,130,110,130,106,130,102,130,98,130, +94,130,90,130,86,130,82,130,78,130,74,130,70,130,66,130,62,130,58,130,54,130, +50,130,46,130,42,130,38,130,34,130,30,130,26,130,22,130,18,130,14,130,10,130, +6,130,2,129,126,129,122,129,118,129,114,129,110,129,106,129,102,129,98,129,94, +129,90,129,86,129,82,129,78,129,74,129,70,129,66,129,62,129,58,129,54,129,50, +129,46,129,42,129,38,129,34,129,30,129,26,129,22,129,19,129,16,129,13,129,10, +129,7,129,4,129,1,126,123,121,118,116,114,112,110,108,106,104,102,100,97,95, +93,91,89,86,83,80,77,74,71,68,65,62,59,56,53,50,47,44,41,38,35,32,29,26,23,20, +17,14,11,8,6,5,4,3,2,1,1,17,2,134,119,146,45,1,17,4,134,118,147,43,1,140,23, +2,16,3,0,0,230,1,17,2,1,0,0,129,64,2,16,3,0,0,229,1,17,4,1,160,5,2,0,0,129,0, +2,16,3,0,0,228,1,17,3,1,160,8,2,1,17,4,134,123,135,48,7,1,1,17,3,134,122,135, +61,1,1,17,3,134,121,150,28,1,1,17,2,146,56,1,1,17,2,135,3,146,57,1,17,4,135, +2,147,55,1,140,34,2,16,3,0,0,227,1,17,2,1,161,6,1,17,4,134,65,135,56,3,1,1,17, +4,134,86,150,26,1,18,1,17,3,135,3,135,70,1,1,17,3,135,2,150,37,1,1,17,2,146, +65,1,1,26,2,0,0,123,0,0,125,1,25,3,0,0,91,0,0,93,1,1,24,2,0,0,34,0,0,34,1,24, +2,0,0,40,0,0,41,1,26,4,0,0,39,0,0,39,2,1,1,24,4,0,0,60,0,0,62,1,4,2,16,3,0,0, +226,2,16,3,0,0,225,1,17,3,1,161,20,2,2,16,3,0,0,224,1,17,3,1,161,20,2,2,16,3, +0,0,223,1,17,2,1,2,2,16,3,0,0,222,1,17,7,1,161,24,8,137,123,161,1,2,9,1,17,2, +146,81,1,2,16,3,0,0,221,1,17,2,1,147,78,2,16,3,0,0,220,1,17,3,1,173,46,2,1,17, +2,136,127,1,1,17,3,146,106,158,2,146,107,1,17,3,146,102,150,61,1,2,16,3,0,0, +219,1,17,3,1,157,119,2,1,17,3,136,88,5,1,2,16,3,0,0,218,1,17,2,1,147,53,2,16, +3,0,0,217,1,17,2,1,2,2,16,3,0,0,216,1,17,3,1,173,58,2,1,17,2,146,98,1,2,16,3, +0,0,215,1,17,2,1,147,60,1,17,2,2,147,61,2,16,3,0,0,214,1,17,3,1,3,2,2,16,3,0, +0,213,1,17,4,1,147,65,161,26,2,2,16,3,0,0,212,1,17,3,1,173,68,2,2,16,3,0,0,211, +1,17,3,1,173,70,2,1,17,2,147,106,1,2,16,3,0,0,210,1,17,2,1,161,58,2,16,3,0,0, +209,1,17,3,1,161,58,2,2,16,3,0,0,208,1,17,3,1,35,2,2,16,3,0,0,207,1,17,5,1,161, +62,161,39,2,47,2,16,3,0,0,206,1,17,2,1,2,2,16,3,0,0,205,1,17,3,1,135,123,2,2, +16,3,0,0,204,1,17,2,1,147,119,2,16,3,0,0,203,1,17,3,1,173,87,2,1,17,2,147,123, +1,2,16,3,0,0,202,1,17,2,1,147,1,2,16,3,0,0,201,1,17,3,1,147,76,2,2,16,3,0,0, +200,1,17,3,1,6,2,2,16,3,0,0,199,1,17,3,1,37,2,2,16,3,0,0,198,1,17,3,1,46,2,2, +16,3,0,0,197,1,17,3,1,17,2,2,16,3,0,0,196,1,17,3,1,156,25,2,2,16,3,0,0,195,1, +17,3,1,147,15,0,32,1,2,16,3,0,0,194,1,17,4,1,148,14,4,2,2,16,3,0,0,193,1,17, +3,1,162,8,2,1,17,2,133,124,147,20,1,17,4,147,102,148,18,1,140,124,1,17,3,20, +147,95,1,1,17,3,19,24,1,2,16,3,0,0,192,1,17,4,1,55,2,139,125,2,16,3,0,0,191, +1,17,3,1,173,113,2,2,16,3,0,0,190,1,17,3,1,150,86,2,2,16,3,0,0,189,1,17,5,1, +150,106,2,147,31,0,32,1,2,16,3,0,0,188,1,17,3,1,148,25,2,2,16,3,0,0,187,1,17, +3,1,158,64,2,2,16,3,0,0,186,1,17,3,1,79,2,2,16,3,0,0,185,1,17,3,1,45,2,1,17, +3,26,147,40,0,32,1,2,16,3,0,0,184,1,17,4,1,156,54,3,2,2,16,3,0,0,183,1,17,3, +1,162,33,2,1,17,2,147,45,1,1,17,2,134,22,147,46,1,17,4,148,0,148,44,1,141,21, +1,17,3,46,147,121,1,1,17,3,45,50,1,1,17,3,134,116,68,1,2,16,3,0,0,182,1,17,5, +1,161,82,2,169,121,169,121,2,16,3,0,0,181,1,17,3,1,174,12,2,1,17,5,25,151,2, +1,147,55,0,32,1,2,16,3,0,0,180,1,17,3,1,148,49,2,1,17,3,22,100,1,1,17,3,21,65, +1,1,17,3,46,147,60,0,32,1,1,17,4,20,156,73,2,1,1,17,3,19,162,51,1,1,17,2,147, +63,1,2,16,3,0,0,179,1,18,3,46,141,38,1,1,17,2,147,66,1,2,16,3,0,0,178,1,18,3, +49,141,40,1,1,17,2,147,69,1,2,16,3,0,0,177,1,17,2,1,140,81,2,16,3,0,0,176,1, +17,3,1,159,12,2,2,16,3,0,0,175,1,17,3,1,105,2,2,16,3,0,0,174,1,17,3,1,159,6, +2,1,17,2,147,78,1,2,16,3,0,0,173,1,17,2,1,151,44,1,17,3,137,78,123,1,2,16,3, +0,0,172,2,16,3,0,0,171,1,17,3,1,3,2,1,17,2,148,81,1,1,17,2,134,62,147,86,1,17, +4,148,40,148,84,1,141,58,1,17,3,86,148,33,1,1,17,3,85,90,1,2,16,3,0,0,170,1, +17,3,1,13,140,101,2,16,3,0,0,169,1,17,6,1,147,93,0,32,1,123,4,2,2,16,3,0,0,168, +1,17,3,1,151,39,2,1,17,3,68,11,1,1,17,3,135,35,151,26,1,1,17,3,62,129,12,1,1, +17,3,61,105,1,1,17,3,86,147,100,0,32,1,1,17,4,60,156,113,2,1,1,17,3,59,162,91, +1,1,17,2,147,103,1,2,16,3,0,0,167,2,16,3,0,0,166,2,16,3,0,0,165,1,17,3,1,159, +35,2,2,16,3,0,0,164,1,17,3,1,159,37,2,2,16,3,0,0,163,1,17,3,1,159,40,2,2,16, +3,0,0,162,1,17,3,1,159,52,148,108,2,16,3,0,0,161,1,17,3,1,4,2,2,16,3,0,0,160, +1,17,2,1,2,2,16,3,0,0,159,2,16,3,0,0,158,1,17,3,1,162,64,2,2,16,3,0,0,157,2, +16,3,0,0,156,2,16,3,0,0,155,1,17,2,148,68,162,68,1,17,4,147,69,5,1,141,94,2, +16,3,0,0,154,1,17,2,1,141,96,2,16,3,0,0,153,1,17,4,1,162,73,2,141,97,2,16,3, +0,0,152,2,16,3,0,0,151,1,17,3,1,174,90,2,2,16,3,0,0,150,1,17,3,1,174,90,2,2, +16,3,0,0,149,1,17,3,1,25,2,2,16,3,0,0,148,2,16,3,0,0,147,1,17,4,1,19,2,141,108, +2,16,3,0,0,146,1,17,3,1,162,87,2,2,16,3,0,0,145,1,17,9,1,162,89,18,162,87,14, +174,101,7,32,2,1,17,2,148,88,162,88,2,16,3,0,0,144,1,17,4,1,26,9,141,115,2,16, +3,0,0,143,1,17,3,1,37,2,2,16,3,0,0,142,1,17,6,1,30,6,141,119,46,2,1,17,2,148, +95,162,95,2,16,3,0,0,141,2,16,3,0,0,140,1,17,4,1,34,2,141,124,2,16,3,0,0,139, +1,17,7,1,162,100,36,5,141,126,39,2,2,16,3,0,0,138,1,17,7,1,37,36,35,15,8,2,2, +16,3,0,0,137,1,17,8,1,142,2,162,106,142,0,148,120,142,1,163,17,142,106,1,17, +3,140,85,162,120,1,2,16,3,0,0,136,1,17,2,1,142,5,1,17,3,149,6,159,65,1,1,1,2, +0,0,110,0,13,0,1,1,2,0,0,37,1,1,1,2,0,0,110,0,13,0,1,1,2,0,0,37,1,1,1,2,0,0, +115,0,13,0,1,1,2,0,0,37,1,1,1,2,0,0,100,0,13,0,1,1,2,0,0,37,1,1,1,2,0,0,112, +0,13,0,1,1,2,0,0,37,1,1,1,2,0,0,120,0,13,0,1,1,2,0,0,35,1,1,1,2,0,0,37,1,1,1, +2,0,0,48,0,13,0,1,1,2,0,0,92,1,1,1,2,0,0,110,0,13,0,1,1,2,0,0,37,1,1,1,2,0,0, +100,1,1,1,2,0,0,37,1,1,1,2,0,0,97,1,1,1,2,0,0,97,1,1,1,2,0,0,97,1,1,1,2,0,0, +97,1,1,1,2,1,0,13,0,1,1,2,10,1,1,1,2,13,1,1,1,2,17,1,1,1,2,20,1,1,1,2,23,1,1, +1,2,26,1,1,1,2,29,1,2,16,3,0,0,135,1,17,4,1,159,112,148,89,2,2,16,3,0,0,134, +1,17,3,1,152,44,2,2,16,3,0,0,133,1,17,3,137,102,163,19,148,43,2,16,3,0,0,132, +1,17,3,1,160,14,2,2,16,3,0,0,131,1,17,3,1,6,2,2,16,3,0,0,130,1,17,4,1,160,21, +7,2,2,16,3,0,0,129,1,17,3,1,152,54,2,2,16,3,0,0,128,1,17,2,1,149,43,2,16,3,0, +0,127,1,17,2,1,2,2,16,3,0,0,126,1,17,3,1,175,48,2,1,17,2,149,84,1,2,16,3,0,0, +125,2,16,3,0,0,124,1,17,14,1,0,0,127,0,0,129,0,0,0,129,127,0,0,130,0,0,0,128, +255,127,0,0,129,128,0,0,0,129,255,127,0,0,130,128,0,0,0,131,255,127,0,0,132, +128,0,152,64,2,0,0,136,0,2,16,3,0,0,123,1,17,3,1,152,66,2,2,16,3,0,0,122,1,17, +2,149,91,1,2,16,3,0,0,121,1,17,2,1,163,43,2,16,3,0,0,120,1,17,4,1,160,5,148, +119,2,2,16,3,0,0,119,1,17,3,1,20,2,1,17,3,148,116,152,75,1,1,17,2,7,15,1,17, +4,6,160,10,148,124,1,1,17,3,5,24,1,1,17,3,148,120,152,79,1,1,17,2,11,12,2,16, +3,0,0,118,1,17,4,1,160,15,149,1,2,1,17,3,147,39,152,83,1,2,16,3,0,0,117,1,17, +3,1,160,13,2,2,16,3,0,0,116,1,17,8,1,160,15,12,8,21,2,163,60,149,6,2,16,3,0, +0,115,1,17,3,1,152,89,2,2,16,3,0,0,114,1,17,4,1,160,30,149,10,142,87,2,16,3, +0,0,113,1,17,4,1,160,32,149,12,142,88,2,16,3,0,0,112,1,17,9,1,142,91,6,4,142, +92,142,90,2,163,107,143,67,2,16,3,0,0,111,1,17,3,1,160,39,2,2,16,3,0,0,110,1, +17,3,1,152,99,2,1,17,2,148,127,1,1,17,2,137,74,149,0,1,17,4,136,100,149,126, +1,142,96,1,17,3,135,102,149,75,1,2,16,3,0,0,109,1,17,3,1,99,2,1,17,3,137,73, +138,9,1,2,16,3,0,0,108,1,17,5,1,149,7,0,32,1,8,2,2,16,3,0,0,107,1,17,3,1,101, +2,1,17,3,140,78,108,1,1,17,3,137,88,158,23,1,1,17,2,149,12,1,1,2,3,143,84,1, +143,83,1,2,3,143,83,137,78,143,82,1,2,3,143,82,137,45,143,81,1,2,3,143,81,137, +36,143,80,1,2,3,143,80,137,15,143,79,1,2,3,143,79,136,119,143,78,1,2,3,143,78, +137,73,143,77,1,2,3,143,77,137,64,143,76,1,2,3,143,76,137,11,143,75,1,2,3,143, +75,136,20,143,74,1,2,3,143,74,136,13,143,73,1,2,3,143,73,135,102,143,72,1,2, +3,143,72,135,101,143,71,1,2,3,143,71,135,100,143,70,1,2,3,143,70,135,99,143, +69,1,2,3,143,69,135,98,143,68,1,2,3,143,68,135,97,143,67,1,2,3,143,67,135,96, +143,66,1,2,3,143,66,135,94,143,65,1,2,3,143,65,135,92,143,64,1,2,3,143,64,129, +95,143,63,1,2,3,143,63,129,93,143,62,1,2,3,143,62,129,118,143,61,1,2,3,143,61, +129,101,143,60,1,2,3,143,60,129,62,143,59,1,2,3,143,59,130,110,143,58,1,2,3, +143,58,130,102,143,57,1,2,3,143,57,137,115,143,56,1,2,3,143,56,138,52,143,55, +1,2,3,143,55,137,4,143,54,1,2,3,143,54,136,113,143,53,1,2,3,143,53,136,85,143, +52,1,1,2,1,0,13,0,1,1,2,3,1,1,1,2,5,1,1,1,2,7,1,1,1,2,9,1,1,1,2,11,1,1,1,2,13, +1,1,1,2,15,1,1,1,2,17,1,1,1,2,19,1,1,1,2,21,1,1,1,2,23,1,1,1,2,25,1,1,1,2,27, +1,1,1,2,29,1,1,1,2,31,1,1,1,2,33,1,1,1,2,35,1,1,1,2,37,1,1,1,2,39,1,1,1,2,41, +1,1,1,2,43,1,1,1,2,45,1,1,1,2,47,1,1,1,2,49,1,1,1,2,51,1,1,1,2,53,1,1,1,2,55, +1,1,1,2,57,1,1,1,2,59,1,1,1,2,61,1,1,1,2,63,1,2,16,3,0,0,106,2,16,3,0,0,105, +1,17,5,1,156,67,2,0,12,2,143,85,2,16,3,0,0,104,1,17,4,1,150,69,2,5,2,16,3,0, +0,103,2,16,3,0,0,102,1,17,3,1,3,2,2,16,3,0,0,101,1,17,2,1,161,9,2,16,3,0,0,100, +1,17,3,1,161,12,2,2,16,3,0,0,99,1,17,3,1,161,32,2,1,17,4,138,24,164,47,149,111, +164,90,1,17,4,147,89,160,84,1,150,78,2,16,3,0,0,98,1,17,4,1,160,86,2,150,80, +2,16,3,0,0,97,1,17,3,149,11,153,69,1,2,16,3,0,0,96,1,17,3,1,161,34,2,2,16,3, +0,0,95,1,17,4,1,164,32,6,2,2,16,3,0,0,94,2,16,3,0,0,93,1,17,2,1,2,2,16,3,0,0, +92,1,17,3,1,164,51,2,2,16,3,0,0,91,1,17,3,1,158,91,2,2,16,3,0,0,90,1,17,3,1, +176,70,2,2,16,3,0,0,89,1,17,3,1,21,2,2,16,3,0,0,88,1,17,3,1,12,2,2,16,3,0,0, +87,1,17,2,1,2,2,16,3,0,0,86,1,17,5,1,16,146,19,17,2,2,16,3,0,0,85,1,17,3,1,176, +80,2,2,16,3,0,0,84,1,17,2,1,2,1,17,2,174,60,1,1,17,2,149,119,1,2,16,3,0,0,83, +2,16,3,0,0,82,1,17,3,1,161,49,2,2,16,3,0,0,81,1,17,5,1,5,150,20,153,101,2,2, +16,3,0,0,80,1,17,2,1,2,1,17,4,148,41,164,67,148,42,177,10,1,17,4,148,40,164, +88,1,48,1,17,4,148,41,164,89,1,150,102,1,17,4,148,42,164,90,1,144,9,1,17,3,148, +40,144,7,1,2,16,3,0,0,79,1,17,3,1,161,65,148,48,2,16,3,0,0,78,1,17,4,1,155,10, +2,151,76,2,16,3,0,0,77,1,17,5,1,164,93,2,158,125,151,79,2,16,3,0,0,76,1,17,3, +1,161,69,148,54,1,17,3,148,49,155,14,1,1,24,2,177,52,152,39,1,26,2,177,117,152, +39,1,24,3,177,59,177,124,1,1,24,4,177,56,152,43,1,3,1,24,2,177,56,152,40,1,26, +2,177,121,152,40,1,24,3,177,63,177,116,1,1,24,4,177,60,152,44,1,3,1,24,2,177, +60,152,41,1,26,2,177,125,152,41,1,24,3,177,67,177,118,1,1,24,4,177,64,152,45, +1,3,1,24,2,177,64,152,41,1,24,2,177,70,151,94,1,26,2,178,2,152,41,1,24,3,177, +121,177,39,1,1,26,4,177,116,152,44,1,3,1,24,4,177,70,152,47,1,5,1,24,2,177,70, +152,42,1,24,2,177,76,151,99,1,26,2,178,8,152,42,1,24,3,177,127,25,1,1,26,4,177, +122,152,45,1,3,1,24,4,177,76,152,48,1,5,1,24,2,177,76,152,43,1,24,2,178,13,152, +43,1,24,2,177,83,151,105,1,26,4,178,5,28,2,1,1,24,4,177,81,152,48,1,4,1,24,2, +177,81,152,45,1,24,2,178,18,152,45,1,26,2,178,3,144,55,1,24,3,177,89,151,119, +1,1,26,4,178,11,43,3,1,1,24,4,177,87,152,51,1,5,1,24,2,177,87,152,48,1,24,2, +178,24,152,48,1,26,2,178,9,145,120,1,24,3,177,95,151,126,1,1,26,4,178,17,145, +36,3,1,1,24,4,177,93,152,54,1,5,1,24,2,177,93,152,51,1,24,2,178,30,152,51,1, +26,2,178,15,152,51,1,24,3,177,101,152,5,1,1,26,4,178,23,148,94,3,1,1,24,4,177, +99,152,57,1,5,1,24,2,177,99,152,52,1,24,2,178,36,152,52,1,24,2,177,106,151,127, +1,26,4,178,28,177,74,2,1,1,24,4,177,104,152,57,1,4,1,24,2,177,104,152,54,1,26, +2,178,41,152,54,1,24,3,177,111,178,93,1,1,24,4,177,108,152,58,1,3,1,24,2,177, +108,152,55,1,26,2,178,45,152,55,1,24,3,177,115,178,72,1,1,24,4,177,112,152,59, +1,3,1,24,2,177,112,152,55,1,26,2,178,49,152,55,1,24,3,177,119,152,11,1,1,24, +4,177,116,152,59,1,3,1,1,2,1,0,13,0,1,1,2,6,1,1,1,2,11,1,1,1,2,16,1,1,1,2,22, +1,1,1,2,29,1,1,1,2,36,1,1,1,2,43,1,1,1,2,49,1,1,1,2,56,1,1,1,2,63,1,1,1,2,68, +1,1,1,2,73,1,1,17,2,147,2,162,36,2,16,3,0,0,75,1,17,3,1,164,60,2,2,16,3,0,0, +74,1,17,3,1,159,113,2,2,16,3,0,0,73,1,17,3,1,173,111,2,2,16,3,0,0,72,1,17,3, +1,157,120,2,2,16,3,0,0,71,1,17,3,1,158,23,2,2,16,3,0,0,70,1,17,4,1,158,31,2, +152,82,2,16,3,0,0,69,1,17,2,1,154,112,1,17,3,142,13,157,99,152,73,2,16,3,0,0, +68,1,17,4,1,157,101,2,152,76,1,17,4,2,157,102,1,152,78,1,17,4,3,157,103,1,152, +80,1,17,4,4,157,104,1,152,82,2,16,3,0,0,67,1,17,4,1,157,102,152,86,152,85,2, +16,3,0,0,66,1,17,5,1,165,72,4,2,145,120,1,17,4,9,157,109,1,152,90,1,17,4,10, +157,110,1,152,92,1,17,4,6,157,107,152,95,152,94,1,17,5,5,165,76,2,1,129,46,1, +17,4,18,157,113,1,152,98,1,17,2,151,68,160,118,1,17,2,147,33,159,25,2,16,3,0, +0,65,1,17,6,1,163,105,142,53,0,0,136,0,159,27,2,2,16,3,0,0,64,1,17,4,1,177,89, +146,56,2,2,16,3,0,0,63,1,17,4,1,162,60,2,0,0,136,0,2,16,3,0,0,62,1,17,4,1,9, +152,60,2,2,16,3,0,0,61,1,17,2,1,159,35,2,16,3,0,0,60,1,17,2,1,2,2,16,3,0,0,59, +1,17,3,1,152,65,2,2,16,3,0,0,58,1,17,5,1,159,41,158,90,0,13,3,2,1,17,3,141,14, +174,122,1,2,16,3,0,0,57,1,17,3,1,165,48,2,1,17,3,151,115,165,72,1,2,16,3,0,0, +56,1,17,5,1,158,7,0,12,2,152,102,152,99,1,17,3,150,11,15,1,2,16,3,0,0,55,1,17, +4,1,165,71,2,178,101,2,16,3,0,0,54,1,17,6,1,165,73,146,79,152,75,152,105,2,2, +16,3,0,0,53,1,17,7,1,165,75,2,152,79,158,14,0,12,2,152,110,2,16,3,0,0,52,1,17, +5,1,152,80,165,77,2,152,90,1,17,2,147,65,158,26,2,16,3,0,0,51,2,16,3,0,0,50, +1,17,7,1,152,84,0,12,1,158,50,15,3,2,2,16,3,0,0,49,1,17,3,1,152,112,2,2,16,3, +0,0,48,1,17,4,1,158,87,0,12,1,2,2,16,3,0,0,47,1,17,5,1,178,45,160,22,2,152,117, +2,16,3,0,0,46,1,17,4,1,178,47,12,2,2,16,3,0,0,45,1,17,2,1,151,12,2,16,3,0,0, +44,1,17,4,1,161,34,2,152,120,1,17,3,132,9,153,80,1,2,16,3,0,0,43,1,17,7,1,158, +42,170,125,0,12,2,152,124,161,37,2,2,16,3,0,0,42,1,17,3,1,152,124,2,1,17,4,147, +52,165,95,152,11,152,112,2,16,3,0,0,41,1,17,4,1,72,146,107,2,2,16,3,0,0,40,1, +17,4,1,165,99,152,15,178,99,1,17,3,149,116,147,3,1,2,16,3,0,0,39,1,17,4,1,165, +106,2,152,120,2,16,3,0,0,38,2,16,3,0,0,37,1,17,5,1,165,109,2,178,105,178,93, +2,16,3,0,0,36,1,17,3,1,163,4,146,82,2,16,3,0,0,35,1,17,2,1,2,2,16,3,0,0,34,1, +17,4,1,165,111,2,179,17,1,17,3,132,57,148,50,1,2,16,3,0,0,33,1,17,2,1,2,2,16, +3,0,0,32,1,17,2,1,2,2,16,3,0,0,31,1,17,4,1,165,118,2,152,123,2,16,3,0,0,30,1, +17,2,1,2,2,16,3,0,0,29,2,16,3,0,0,28,1,17,5,1,166,67,3,2,153,2,2,16,3,0,0,27, +1,17,3,1,163,9,2,2,16,3,0,0,26,1,17,3,1,170,3,2,2,16,3,0,0,25,1,17,5,1,166,5, +24,153,27,2,2,16,3,0,0,24,1,17,2,1,2,2,16,3,0,0,23,1,17,5,1,166,5,2,0,13,3,153, +22,2,16,3,0,0,22,1,17,4,1,166,11,2,153,24,2,16,3,0,0,21,1,17,3,1,149,84,2,2, +16,3,0,0,20,1,17,4,1,166,15,2,153,29,2,16,3,0,0,19,1,17,4,1,166,17,2,153,40, +2,16,3,0,0,18,1,17,3,1,129,96,2,2,16,3,0,0,17,1,17,4,1,166,21,2,153,42,2,16, +3,0,0,16,1,17,4,1,166,23,2,153,37,2,16,3,0,0,15,1,17,3,1,64,2,2,16,3,0,0,14, +1,17,4,1,166,27,2,153,38,2,16,3,0,0,13,1,17,4,1,166,29,2,153,41,2,16,3,0,0,12, +1,17,3,1,155,93,2,2,16,3,0,0,11,1,17,3,142,90,158,102,1,2,16,3,0,0,10,1,17,5, +1,166,35,4,153,48,2,2,16,3,0,0,9,1,17,4,1,166,2,152,77,180,10,2,16,3,0,0,8,1, +17,5,1,166,107,4,69,2,2,16,3,0,0,7,1,17,6,1,166,41,2,180,14,125,44,2,16,3,0, +0,6,1,17,7,1,166,43,2,179,119,158,112,46,154,18,2,16,3,0,0,5,1,17,4,1,154,54, +48,129,31,2,16,3,0,0,4,1,17,7,1,166,47,4,179,91,158,116,2,154,23,2,16,3,0,0, +3,1,17,6,1,166,49,71,153,64,2,179,105,1,17,7,8,166,50,1,179,46,158,119,53,154, +27,2,16,3,0,0,2,1,17,6,1,129,25,79,166,52,2,179,94,2,16,3,0,0,1,1,17,5,1,153, +79,166,54,2,153,67,1,17,2,153,2,1,2,16,3,0,0,0,1,17,5,1,154,88,129,43,154,33, +2,1,18,2,154,57,1,1,18,2,154,62,1,0}; + /* Owl Lisp runtime */ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/*** Portability Issues ***/ + +#ifdef WIN32 +#include +#include +#include +#include +typedef unsigned long in_addr_t; +#define EWOULDBLOCK WSAEWOULDBLOCK +#else +#include +#include +#include +#include +#ifndef O_BINARY +#define O_BINARY 0 +#endif +#endif + +#ifdef __gnu_linux__ +#ifndef NO_SECCOMP +#include +#include +/* normal exit() segfaults in seccomp */ +#define EXIT(n) syscall(__NR_exit, n); exit(n) +#else +#define EXIT(n) exit(n) +#endif +#else +#define EXIT(n) exit(n) +#endif + +typedef uintptr_t word; + +#ifdef _LP64 +typedef int64_t wdiff; +#else +typedef int32_t wdiff; +#endif + + +#define nanosleep(...) 0 +#define usleep(...) 0 +#define sleep(...) 0 +#define setsockopt(...) 0 +#define bind(...) 0 +#define accept(...) IGNORE_FD +#define socket(...) IGNORE_FD +#define bind(...) 0 +#define fcntl(...) 0 +#define sendto radamsa_sendo + +/*** Macros ***/ + +#define IPOS 8 /* offset of immediate payload */ +#define SPOS 16 /* offset of size bits in header immediate values */ +#define TPOS 2 /* offset of type bits in header */ +#define V(ob) *((word *) (ob)) +#define W sizeof(word) +#define NWORDS 1024*1024*8 /* static malloc'd heap size if used as a library */ +#define FBITS 24 /* bits in fixnum, on the way to 24 and beyond */ +#define FMAX ((1<> IPOS) +#define fixnump(desc) (((desc)&255) == 2) +#define fliptag(ptr) ((word)ptr^2) /* make a pointer look like some (usually bad) immediate object */ +#define NR 190 /* fixme, should be ~32, see n-registers in register.scm */ +#define header(x) *(word *x) +#define imm_type(x) (((x) >> TPOS) & 63) +#define imm_val(x) ((x) >> IPOS) +#define hdrsize(x) ((((word)x) >> SPOS) & MAXOBJ) +#define immediatep(x) (((word)x)&2) +#define allocp(x) (!immediatep(x)) +#define rawp(hdr) ((hdr)&RAWBIT) +#define NEXT(n) ip += n; op = *ip++; goto main_dispatch /* default NEXT, smaller vm */ +#define NEXT_ALT(n) ip += n; op = *ip++; EXEC /* more branch predictor friendly, bigger vm */ +#define PAIRHDR make_header(3,1) +#define NUMHDR make_header(3,40) /* <- on the way to 40, see type-int+ in defmac.scm */ +#define pairp(ob) (allocp(ob) && V(ob)==PAIRHDR) +#define INULL make_immediate(0,13) +#define IFALSE make_immediate(1,13) +#define ITRUE make_immediate(2,13) +#define IEMPTY make_immediate(3,13) /* empty ff */ +#define IEOF make_immediate(4,13) +#define IHALT INULL /* FIXME: adde a distinct IHALT */ +#define TTUPLE 2 +#define TTHREAD 31 +#define TFF 24 +#define FFRIGHT 1 +#define FFRED 2 +#define TBVEC 19 +#define TBYTECODE 16 +#define TPROC 17 +#define TCLOS 18 +#define cont(n) V((word)n&(~1)) +#define flagged(n) (n&1) +#define flag(n) (((word)n)^1) +#define A0 R[*ip] +#define A1 R[ip[1]] +#define A2 R[ip[2]] +#define A3 R[ip[3]] +#define A4 R[ip[4]] +#define A5 R[ip[5]] +#define G(ptr,n) ((word *)(ptr))[n] +#define flagged_or_raw(hdr) (hdr&(RAWBIT|1)) +#define TICKS 10000 /* # of function calls in a thread quantum */ +#define allocate(size, to) to = fp; fp += size; +#define error(opcode, a, b) R[4] = F(opcode); R[5] = (word) a; R[6] = (word) b; goto invoke_mcp; +#define likely(x) __builtin_expect((x),1) +#define unlikely(x) __builtin_expect((x),0) +#define assert(exp,val,code) if(unlikely(!(exp))) {error(code, val, ITRUE);} +#define assert_not(exp,val,code) if(unlikely(exp)) {error(code, val, ITRUE);} +#define OGOTO(f,n); ob = (word *) R[f]; acc = n; goto apply +#define RET(n) ob=(word *)R[3]; R[3] = R[n]; acc = 1; goto apply +#define MEMPAD (NR+2)*8 /* space at end of heap for starting GC */ +#define MINGEN 1024*32 /* minimum generation size before doing full GC */ +#define INITCELLS 1000 +#define OCLOSE(proctype) { word size = *ip++, tmp; word *ob; allocate(size, ob); tmp = R[*ip++]; tmp = ((word *) tmp)[*ip++]; *ob = make_header(size, proctype); ob[1] = tmp; tmp = 2; while(tmp != size) { ob[tmp++] = R[*ip++]; } R[*ip++] = (word) ob; } +#define CLOSE1(proctype) { word size = *ip++, tmp; word *ob; allocate(size, ob); tmp = R[1]; tmp = ((word *) tmp)[*ip++]; *ob = make_header(size, proctype); ob[1] = tmp; tmp = 2; while(tmp != size) { ob[tmp++] = R[*ip++]; } R[*ip++] = (word) ob; } +#define EXEC switch(op&63) { \ + case 0: goto op0; case 1: goto op1; case 2: goto op2; case 3: goto op3; case 4: goto op4; case 5: goto op5; \ + case 6: goto op6; case 7: goto op7; case 8: goto op8; case 9: goto op9; \ + case 10: goto op10; case 11: goto op11; case 12: goto op12; case 13: goto op13; case 14: goto op14; case 15: goto op15; \ + case 16: goto op16; case 17: goto op17; case 18: goto op18; case 19: goto op19; case 20: goto op20; case 21: goto op21; \ + case 22: goto op22; case 23: goto op23; case 24: goto op24; case 25: goto op25; case 26: goto op26; case 27: goto op27; \ + case 28: goto op28; case 29: goto op29; case 30: goto op30; case 31: goto op31; case 32: goto op32; case 33: goto op33; \ + case 34: goto op34; case 35: goto op35; case 36: goto op36; case 37: goto op37; case 38: goto op38; case 39: goto op39; \ + case 40: goto op40; case 41: goto op41; case 42: goto op42; case 43: goto op43; case 44: goto op44; case 45: goto op45; \ + case 46: goto op46; case 47: goto op47; case 48: goto op48; case 49: goto op49; case 50: goto op50; case 51: goto op51; \ + case 52: goto op52; case 53: goto op53; case 54: goto op54; case 55: goto op55; case 56: goto op56; case 57: goto op57; \ + case 58: goto op58; case 59: goto op59; case 60: goto op60; case 61: goto op61; case 62: goto op62; case 63: goto op63; \ + } + +/*** Globals and Prototypes ***/ + +/* memstart <= genstart <= memend */ +static __thread word *genstart; +static __thread word *memstart; +static __thread word *memend; +static __thread word max_heap_mb; /* max heap size in MB */ +static __thread int breaked; /* set in signal handler, passed over to owl in thread switch */ +static __thread unsigned char *hp; /* heap pointer when loading heap */ +static __thread int seccompp; /* are we in seccomp? */ +static __thread unsigned long seccomp_time; /* virtual time within seccomp sandbox in ms */ +static __thread word *fp; +static __thread int usegc; +static __thread int slice; + +word vm(); +void exit(int rval); +void *realloc(void *ptr, size_t size); +void *malloc(size_t size); +void free(void *ptr); +char *getenv(const char *name); +DIR *opendir(const char *name); +DIR *fdopendir(int fd); +pid_t fork(void); +pid_t waitpid(pid_t pid, int *status, int options); +int chdir(const char *path); +#ifndef WIN32 +int execv(const char *path, char *const argv[]); +#endif + +/*** Garbage Collector, based on "Efficient Garbage Compaction Algorithm" by Johannes Martin (1982) ***/ + +static __inline__ void rev(word pos) { + word val = V(pos); + word next = cont(val); + *(word *) pos = next; + cont(val) = (val&1)^(pos|1); +} + +static __inline__ word *chase(word *pos) { + word val = cont(pos); + while (allocp(val) && flagged(val)) { + pos = (word *) val; + val = cont(pos); + } + return pos; +} + +static void mark(word *pos, word *end) { + while (pos != end) { + word val = *pos; + if (allocp(val) && val >= ((word) genstart)) { + if (flagged(val)) { + pos = ((word *) flag(chase((word *) val))) - 1; + } else { + word hdr = V(val); + rev((word) pos); + if (flagged_or_raw(hdr)) { + pos--; + } else { + pos = ((word *) val) + (hdrsize(hdr)-1); + } + } + } else { + pos--; + } + } +} + +static word *compact() { + word *new = genstart; + word *old = new; + word *end = memend - 1; + while (((word)old) < ((word)end)) { + if (flagged(*old)) { + word h; + *new = *old; + while (flagged(*new)) { + rev((word) new); + if (immediatep(*new) && flagged(*new)) { + *new = flag(*new); + } + } + h = hdrsize(*new); + if (old == new) { + old += h; + new += h; + } else { + while (--h) *++new = *++old; + old++; + new++; + } + } else { + old += hdrsize(*old); + } + } + return new; +} + +void fix_pointers(word *pos, wdiff delta, word *end) { + while(1) { + word hdr = *pos; + int n = hdrsize(hdr); + if (hdr == 0) return; /* end marker reached. only dragons beyond this point.*/ + if (rawp(hdr)) { + pos += n; /* no pointers in raw objects */ + } else { + pos++; + n--; + while(n--) { + word val = *pos; + if (allocp(val)) + *pos = val + delta; + pos++; + } + } + } +} + +/* n-cells-wanted → heap-delta (to be added to pointers), updates memstart and memend */ +wdiff adjust_heap(int cells) { + /* add new realloc + heap fixer here later */ + word *old = memstart; + word nwords = memend - memstart + MEMPAD; /* MEMPAD is after memend */ + word new_words = nwords + ((cells > 0xffffff) ? 0xffffff : cells); /* limit heap growth speed */ + if (!usegc) { /* only run when the vm is running (temp) */ + return 0; + } + if (seccompp) /* realloc is not allowed within seccomp */ + return 0; + if (((cells > 0) && (new_words*W < nwords*W)) || ((cells < 0) && (new_words*W > nwords*W))) + return 0; /* don't try to adjust heap if the size_t would overflow in realloc */ + memstart = realloc(memstart, new_words*W); + if (memstart == old) { /* whee, no heap slide \o/ */ + memend = memstart + new_words - MEMPAD; /* leave MEMPAD words alone */ + return 0; + } else if (memstart) { /* d'oh! we need to O(n) all the pointers... */ + wdiff delta = (word)memstart - (word)old; + memend = memstart + new_words - MEMPAD; /* leave MEMPAD words alone */ + fix_pointers(memstart, delta, memend); + return delta; + } else { + breaked |= 8; /* will be passed over to mcp at thread switch*/ + return 0; + } +} + +/* input desired allocation size and (the only) pointer to root object + return a pointer to the same object after heap compaction, possible heap size change and relocation */ +static word *gc(int size, word *regs) { + word *root; + word *realend = memend; + int nfree; + fp = regs + hdrsize(*regs); + root = fp+1; + *root = (word) regs; + memend = fp; + mark(root, fp); + fp = compact(); + regs = (word *) *root; + memend = realend; + nfree = (word)memend - (word)regs; + if (genstart == memstart) { + word heapsize = (word) memend - (word) memstart; + word nused = heapsize - nfree; + if ((heapsize/(1024*1024)) > max_heap_mb) { + breaked |= 8; /* will be passed over to mcp at thread switch*/ + } + nfree -= size*W + MEMPAD; /* how much really could be snipped off */ + if (nfree < (heapsize / 10) || nfree < 0) { + /* increase heap size if less than 10% is free by ~10% of heap size (growth usually implies more growth) */ + regs[hdrsize(*regs)] = 0; /* use an invalid descriptor to denote end live heap data */ + regs = (word *) ((word)regs + adjust_heap(size*W + nused/10 + 4096)); + nfree = memend - regs; + if (nfree <= size) { + breaked |= 8; /* will be passed over to mcp at thread switch. may cause owl<->gc loop if handled poorly on lisp side! */ + } + } else if (nfree > (heapsize/5)) { + /* decrease heap size if more than 20% is free by 10% of the free space */ + int dec = -(nfree/10); + int new = nfree - dec; + if (new > size*W*2 + MEMPAD) { + regs[hdrsize(*regs)] = 0; /* as above */ + regs = (word *) ((word)regs + adjust_heap(dec+MEMPAD*W)); + heapsize = (word) memend - (word) memstart; + nfree = (word) memend - (word) regs; + } + } + genstart = regs; /* always start new generation */ + } else if (nfree < MINGEN || nfree < size*W*2) { + genstart = memstart; /* start full generation */ + return gc(size, regs); + } else { + genstart = regs; /* start new generation */ + } + return regs; +} + + +/*** OS Interaction and Helpers ***/ + +void set_blocking(int sock, int blockp) { + +} + + +/* small functions defined locally after hitting some portability issues */ +static void bytecopy(char *from, char *to, int n) { while(n--) *to++ = *from++; } +static void wordcopy(word *from, word *to, int n) { while(n--) *to++ = *from++; } + +unsigned int lenn(char *pos, unsigned int max) { /* added here, strnlen was missing in win32 compile */ + unsigned int p = 0; + while(p < max && *pos++) p++; + return p; +} + +/* list length, no overflow or valid termination checks */ +int llen(word *ptr) { + int len = 0; + while(allocp(ptr) && *ptr == PAIRHDR) { + len++; + ptr = (word *) ptr[2]; + } + return len; +} + +/* make a byte vector object to hold len bytes (compute size, advance fp, set padding count) */ +static word *mkbvec(int len, int type) { + int nwords = (len/W) + ((len % W) ? 2 : 1); + int pads = (nwords-1)*W - len; + word *ob = fp; + fp += nwords; + *ob = make_raw_header(nwords, type, pads); + return ob; +} + +/* map a null or C-string to False, Null or owl-string, false being null or too large string */ +word strp2owl(char *sp) { + int len; + word *res; + if (!sp) return IFALSE; + len = lenn(sp, FMAX+1); + if (len == FMAX+1) return INULL; /* can't touch this */ + res = mkbvec(len, TBVEC); /* make a bvec instead of a string since we don't know the encoding */ + bytecopy(sp, ((char *)res)+W, len); + return (word)res; +} + +/* Initial FASL image decoding */ + +word get_nat() { + word result = 0; + word new, i; + do { + i = *hp++; + new = result << 7; + if (result != (new >> 7)) exit(9); /* overflow kills */ + result = new + (i & 127); + } while (i & 128); + return result; +} + +word *get_field(word *ptrs, int pos) { + if (0 == *hp) { + unsigned char type; + word val; + hp++; + type = *hp++; + val = make_immediate(get_nat(), type); + *fp++ = val; + } else { + word diff = get_nat(); + if (ptrs != NULL) *fp++ = ptrs[pos-diff]; + } + return fp; +} + +word *get_obj(word *ptrs, int me) { + int type, size; + if(ptrs != NULL) ptrs[me] = (word) fp; + switch(*hp++) { /* todo: adding type information here would reduce fasl and executable size */ + case 1: { + type = *hp++; + size = get_nat(); + *fp++ = make_header(size+1, type); /* +1 to include header in size */ + while(size--) { fp = get_field(ptrs, me); } + break; } + case 2: { + int bytes, pads; + unsigned char *wp; + type = *hp++ & 31; /* low 5 bits, the others are pads */ + bytes = get_nat(); + size = ((bytes % W) == 0) ? (bytes/W)+1 : (bytes/W) + 2; + pads = (size-1)*W - bytes; + *fp++ = make_raw_header(size, type, pads); + wp = (unsigned char *) fp; + while (bytes--) { *wp++ = *hp++; }; + while (pads--) { *wp++ = 0; }; + fp = (word *) wp; + break; } + default: puts("bad object in heap"); exit(42); + } + return fp; +} + +/* count number of objects and measure heap size */ +int count_objs(word *words) { + word *orig_fp = fp; + word nwords = 0; + unsigned char *orig_hp = hp; + int n = 0; + while(*hp != 0) { + get_obj(NULL, 0); /* dry run just to count the objects */ + nwords += ((word)fp - (word)orig_fp)/W; + fp = orig_fp; + n++; + } + *words = nwords; + hp = orig_hp; + return n; +} + +unsigned char *load_heap(char *path) { + struct stat st; + int fd, pos = 0; + if(stat(path, &st)) exit(1); + hp = realloc(NULL, st.st_size); + if (hp == NULL) exit(2); + fd = open(path, O_RDONLY | O_BINARY); + if (fd < 0) exit(3); + while(pos < st.st_size) { + int n = read(fd, hp+pos, st.st_size-pos); + if (n < 0) exit(4); + pos += n; + } + close(fd); + return hp; +} + + +/*** Primops called from VM and generated C-code ***/ + +static word prim_connect(word *host, word port) { + int sock; + unsigned char *ip = ((unsigned char *) host) + W; + unsigned long ipfull; + struct sockaddr_in addr; + port = fixval(port); + if (!allocp(host)) /* bad host type */ + return IFALSE; + if ((sock = socket(PF_INET, SOCK_STREAM, 0)) == -1) + return IFALSE; + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + addr.sin_addr.s_addr = (in_addr_t) host[1]; + ipfull = (ip[0]<<24) | (ip[1]<<16) | (ip[2]<<8) | ip[3]; + addr.sin_addr.s_addr = htonl(ipfull); + if (connect(sock, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)) < 0) { + close(sock); + return IFALSE; + } + set_blocking(sock,0); + return F(sock); +} + +static word prim_less(word a, word b) { + if (immediatep(a)) { + return immediatep(b) ? BOOL(a < b) : ITRUE; /* imm < alloc */ + } else { + return immediatep(b) ? IFALSE : BOOL(a < b); /* alloc > imm */ + } +} + +static word prim_get(word *ff, word key, word def) { /* ff assumed to be valid */ + while((word) ff != IEMPTY) { /* ff = [header key value [maybe left] [maybe right]] */ + word this = ff[1], hdr; + if (this == key) + return ff[2]; + hdr = *ff; + switch(hdrsize(hdr)) { + case 3: return def; + case 4: + if (key < this) { + ff = (word *) ((hdr & (1 << TPOS)) ? IEMPTY : ff[3]); + } else { + ff = (word *) ((hdr & (1 << TPOS)) ? ff[3] : IEMPTY); + } + break; + default: + ff = (word *) ((key < this) ? ff[3] : ff[4]); + } + } + return def; +} + +static word prim_cast(word *ob, int type) { + if (immediatep((word)ob)) { + return make_immediate(imm_val((word)ob), type); + } else { /* make a clone of more desired type */ + word hdr = *ob++; + int size = hdrsize(hdr); + word *new, *res; /* <- could also write directly using *fp++ */ + allocate(size, new); + res = new; + /* (hdr & 0b...11111111111111111111100000000111) | tttttttt000 */ + //*new++ = (hdr&(~2040))|(type<>8)&7); /* bytes - pads */ + if (pos >= hsize) + return IFALSE; + return F(((unsigned char *) ob)[pos+W]); +} + +static word prim_ref(word pword, word pos) { + word *ob = (word *) pword; + word hdr, size; + pos = fixval(pos); + if(immediatep(ob)) { return IFALSE; } + hdr = *ob; + if (rawp(hdr)) { /* raw data is #[hdrbyte{W} b0 .. bn 0{0,W-1}] */ + size = ((hdrsize(hdr)-1)*W) - ((hdr>>8)&7); + if (pos >= size) { return IFALSE; } + return F(((unsigned char *) ob)[pos+W]); + } + size = hdrsize(hdr); + if (!pos || size <= pos) /* tuples are indexed from 1 (probably later 0-255)*/ + return IFALSE; + return ob[pos]; +} + +static word prim_set(word wptr, word pos, word val) { + word *ob = (word *) wptr; + word hdr; + word *new; + int p = 0; + pos = fixval(pos); + if(immediatep(ob)) { return IFALSE; } + hdr = *ob; + if (rawp(hdr) || hdrsize(hdr) < pos) { return IFALSE; } + hdr = hdrsize(hdr); + allocate(hdr, new); + while(p <= hdr) { + new[p] = (pos == p && p) ? val : ob[p]; + p++; + } + return (word) new; +} + +/* system- and io primops */ +static word prim_sys(int op, word a, word b, word c) { + switch(op) { + case 0: { /* 0 fsend fd buff len r → n if wrote n, 0 if busy, False if error (argument or write) */ + int fd = fixval(a); + word *buff = (word *) b; + int wrote, size, len = fixval(c); + if (immediatep(buff)) return IFALSE; + size = (hdrsize(*buff)-1)*W; + if (len > size) return IFALSE; + wrote = write(fd, ((char *)buff)+W, len); + if (wrote > 0) return F(wrote); + if (errno == EAGAIN || errno == EWOULDBLOCK) return F(0); + return IFALSE; } + case 1: { /* 1 = fopen */ + char *path = (char *) a; + int mode = fixval(b); + int val; + struct stat sb; + if (!(allocp(path) && imm_type(*path) == 3)) + return IFALSE; + mode |= O_BINARY | ((mode > 0) ? O_CREAT | O_TRUNC : 0); + val = open(((char *) path) + W, mode,(S_IRUSR|S_IWUSR)); + if (val < 0 || fstat(val, &sb) == -1 || sb.st_mode & S_IFDIR) { + close(val); + return IFALSE; + } + set_blocking(val,0); + return F(val); } + case 2: + return close(fixval(a)) ? IFALSE : ITRUE; + case 3: { /* 3 = sopen port -> False | fd */ + int port = fixval(a); + int s; + int opt = 1; /* TRUE */ + struct sockaddr_in myaddr; + myaddr.sin_family = AF_INET; + myaddr.sin_port = htons(port); + myaddr.sin_addr.s_addr = INADDR_ANY; + s = socket(AF_INET, SOCK_STREAM, 0); +#ifndef WIN32 + if (s < 0) return IFALSE; +#else + if (s == INVALID_SOCKET) return IFALSE; +#endif + if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(opt)) \ + || bind(s, (struct sockaddr *) &myaddr, sizeof(myaddr)) != 0 \ + || listen(s, 5) != 0) { + close(s); + return IFALSE; + } + set_blocking(s,0); + return F(s); } + case 4: { /* 4 = accept port -> rval=False|(ip . fd) */ + int sock = fixval(a); + struct sockaddr_in addr; + socklen_t len = sizeof(addr); + int fd; + word *pair; + char *ipa; + fd = accept(sock, (struct sockaddr *)&addr, &len); + if (fd < 0) return IFALSE; + set_blocking(fd,0); + ipa = (char *) &addr.sin_addr; + *fp = make_raw_header(2, TBVEC, 4%W); + bytecopy(ipa, ((char *) fp) + W, 4); + fp[2] = PAIRHDR; + fp[3] = (word) fp; + fp[4] = F(fd); + pair = fp+2; + fp += 5; + return (word)pair; } + case 5: { /* fread fd max -> obj | eof | F (read error) | T (would block) */ + word fd = fixval(a); + word max = fixval(b); + word *res; + int n, nwords = (max/W) + 2; + allocate(nwords, res); +#ifndef WIN32 + n = read(fd, ((char *) res) + W, max); +#else + if (fd == 0) { /* windows stdin in special apparently */ + if(!_isatty(0) || _kbhit()) { /* we don't get hit by kb in pipe */ + n = read(fd, ((char *) res) + W, max); + } else { + n = -1; + errno = EAGAIN; + } + + } else { + n = read(fd, ((char *) res) + W, max); + } +#endif + if (n > 0) { /* got some bytes */ + word read_nwords = (n/W) + ((n%W) ? 2 : 1); + int pads = (read_nwords-1)*W - n; + fp = res + read_nwords; + *res = make_raw_header(read_nwords, TBVEC, pads); + return (word)res; + } + fp = res; + if (n == 0) + return IEOF; + return BOOL(errno == EAGAIN || errno == EWOULDBLOCK); } + case 6: + EXIT(fixval(a)); /* stop the press */ + case 7: /* set memory limit (in mb) */ + max_heap_mb = fixval(a); + return a; + case 8: /* get machine word size (in bytes) */ + return F(W); + case 9: /* get memory limit (in mb) */ + return F(max_heap_mb); + case 10: /* enter linux seccomp mode */ +#ifdef __gnu_linux__ +#ifndef NO_SECCOMP + if (seccompp) /* a true value, but different to signal that we're already in seccomp */ + return INULL; + seccomp_time = 1000 * time(NULL); /* no time calls are allowed from seccomp, so start emulating a time if success */ +#ifdef PR_SET_SECCOMP + if (prctl(PR_SET_SECCOMP,1) != -1) { /* true if no problem going seccomp */ + seccompp = 1; + return ITRUE; + } +#endif +#endif +#endif + return IFALSE; /* seccomp not supported in current repl */ + /* dirops only to be used via exposed functions */ + case 11: { /* sys-opendir path _ _ -> False | dirobjptr */ + char *path = W + (char *) a; /* skip header */ + DIR *dirp = opendir(path); + if(!dirp) return IFALSE; + return fliptag(dirp); } + case 12: { /* sys-readdir dirp _ _ -> bvec | eof | False */ + DIR *dirp = (DIR *)fliptag(a); + word *res; + unsigned int len; + struct dirent *dire = readdir(dirp); + if (!dire) return IEOF; /* eof at end of dir stream */ + len = lenn(dire->d_name, FMAX+1); + if (len == FMAX+1) return IFALSE; /* false for errors, like too long file names */ + res = mkbvec(len, 3); /* make a fake raw string (OS may not use valid UTF-8) */ + bytecopy((char *)&dire->d_name, (char *) (res + 1), len); /* *no* terminating null, this is an owl bvec */ + return (word)res; } + case 13: /* sys-closedir dirp _ _ -> ITRUE */ + closedir((DIR *)fliptag(a)); + return ITRUE; + case 14: { /* set-ticks n _ _ -> old */ + word old = F(slice); + slice = fixval(a); + return old; } + case 15: { /* 0 fsocksend fd buff len r → n if wrote n, 0 if busy, False if error (argument or write) */ + int fd = fixval(a); + word *buff = (word *) b; + int wrote, size, len = fixval(c); + if (immediatep(buff)) return IFALSE; + size = (hdrsize(*buff)-1)*W; + if (len > size) return IFALSE; + wrote = send(fd, ((char *)buff)+W, len, 0); /* <- no MSG_DONTWAIT in win32 */ + if (wrote > 0) return F(wrote); + if (errno == EAGAIN || errno == EWOULDBLOCK) return F(0); + return IFALSE; } + case 16: { /* getenv */ + char *name = (char *)a; + if (!allocp(name)) return IFALSE; + return strp2owl(getenv(name + W)); } + case 17: { /* exec[v] path argl ret */ + char *path = ((char *) a) + W; + int nargs = llen((word *)b); + char **args = malloc((nargs+1) * sizeof(char *)); + char **argp = args; +#ifndef WIN32 + if (args == NULL) + return IFALSE; + while(nargs--) { + *argp++ = ((char *) ((word *) b)[1]) + W; + b = ((word *) b)[2]; + } + *argp = NULL; + set_blocking(0,1); /* try to return stdio to blocking mode */ + set_blocking(1,1); /* warning, other file descriptors will stay in nonblocking mode */ + set_blocking(2,1); + execv(path, args); /* may return -1 and set errno */ + set_blocking(0,0); /* exec failed, back to nonblocking io for owl */ + set_blocking(1,0); + set_blocking(2,0); +#endif + return IFALSE; } + case 20: { /* chdir path res */ + char *path = ((char *)a) + W; + if (chdir(path) < 0) + return IFALSE; + return ITRUE; } +#ifndef WIN32 + case 19: { /* wait _ */ + pid_t pid = (a == IFALSE) ? -1 : fixval(a); + int status; + word *r = (word *) b; + pid = waitpid(pid, &status, WNOHANG|WUNTRACED|WCONTINUED); + if (pid == -1) + return IFALSE; /* error */ + if (pid == 0) + return ITRUE; /* no changes, would block */ + if (WIFEXITED(status)) { + r[1] = F(1); + r[2] = F(WEXITSTATUS(status)); + } else if (WIFSIGNALED(status)) { + r[1] = F(2); + r[2] = F(WTERMSIG(status)); + } else if (WIFSTOPPED(status)) { + r[1] = F(3); + r[2] = F(WSTOPSIG(status)); + } else if (WIFCONTINUED(status)) { + r[1] = F(4); + r[2] = F(1); + } else { + fprintf(stderr, "vm: unexpected process exit status: %d\n", status); + r = (word *)IFALSE; + } + return (word)r; } + case 18: { /* fork ret → #false=failed, fixnum=ok we're in parent process, #true=ok we're in child process */ + pid_t pid = fork(); + if (pid == -1) /* fork failed */ + return IFALSE; + if (pid == 0) /* we're in child, return true */ + return ITRUE; + if ((int)pid > FMAX) + fprintf(stderr, "vm: child pid larger than max fixnum: %d\n", pid); + return F(pid&FMAX); } + case 21: /* kill pid signal → fixnum */ + return (kill(fixval(a), fixval(b)) < 0) ? IFALSE : ITRUE; +#endif + default: + return IFALSE; + } +} + +static word prim_lraw(word wptr, int type, word revp) { + word *lst = (word *) wptr; + int nwords, len = 0, pads; + unsigned char *pos; + word *raw, *ob; + if (revp != IFALSE) { exit(1); } /* <- to be removed */ + ob = lst; + while (allocp(ob) && *ob == PAIRHDR) { + len++; + ob = (word *) ob[2]; + } + if ((word) ob != INULL) return IFALSE; + if (len > FMAX) return IFALSE; + nwords = (len/W) + ((len % W) ? 2 : 1); + allocate(nwords, raw); + pads = (nwords-1)*W - len; /* padding byte count, usually stored to top 3 bits */ + *raw = make_raw_header(nwords, type, pads); + ob = lst; + pos = ((unsigned char *) raw) + W; + while ((word) ob != INULL) { + *pos++ = fixval(ob[1])&255; + ob = (word *) ob[2]; + } + while(pads--) { *pos++ = 0; } /* clear the padding bytes */ + return (word)raw; +} + + +static word prim_mkff(word t, word l, word k, word v, word r) { + word *ob = fp; + ob[1] = k; + ob[2] = v; + if (l == IEMPTY) { + if (r == IEMPTY) { + *ob = make_header(3, t); + fp += 3; + } else { + *ob = make_header(4, t|FFRIGHT); + ob[3] = r; + fp += 4; + } + } else if (r == IEMPTY) { + *ob = make_header(4, t); + ob[3] = l; + fp += 4; + } else { + *ob = make_header(5, t); + ob[3] = l; + ob[4] = r; + fp += 5; + } + return (word) ob; +} + +/* Load heap, convert arguments and start VM */ + +word radamsa_boot(int nargs, char **argv) { + int this, pos, nobjs; + unsigned char *file_heap = NULL; + word *entry; + word *oargs = (word *) INULL; + word *ptrs; + word nwords; + usegc = seccompp = 0; + slice = TICKS; /* default thread slice (n calls per slice) */ + hp = (unsigned char *) &heap; + max_heap_mb = (W == 4) ? 4096 : 65535; /* can be set at runtime */ + memstart = genstart = fp = (word *) realloc(NULL, (INITCELLS + FMAX + MEMPAD)*W); /* at least one argument string always fits */ + if (!memstart) { + fprintf(stderr, "Failed to allocate initial memory\n"); + exit(4); + } + memend = memstart + FMAX + INITCELLS - MEMPAD; + this = nargs-1; + usegc = 1; + while(this >= 0) { /* build an owl string list to oargs at bottom of heap */ + char *str = argv[this]; + char *pos = str; + int pads; + word *tmp; + int len = 0, size; + while(*pos++) len++; + if (len > FMAX) { + puts("owl: command line argument too long"); + exit(1); + } + size = ((len % W) == 0) ? (len/W)+1 : (len/W) + 2; + if ((word)fp + size >= (word)memend) { + oargs = gc(FMAX, oargs); /* oargs points to topmost pair, may move as a result of gc */ + fp = oargs + 3; + } + pads = (size-1)*W - len; + tmp = fp; + fp += size; + *tmp = make_raw_header(size, 3, pads); + pos = ((char *) tmp) + W; + while(*str) *pos++ = *str++; + *fp = PAIRHDR; + fp[1] = (word) tmp; + fp[2] = (word) oargs; + oargs = fp; + fp += 3; + this--; + } + nobjs = count_objs(&nwords); + oargs = gc(nwords+(128*1024), oargs); /* get enough space to load the heap without triggering gc */ + fp = oargs + 3; + ptrs = fp; + fp += nobjs+1; + pos = 0; + while(pos < nobjs) { /* or until fasl stream end mark */ + if (fp >= memend) { + puts("gc needed during heap import\n"); + exit(1); + } + fp = get_obj(ptrs, pos); + pos++; + } + entry = (word *) ptrs[pos-1]; + + + + /* clear the pointers */ + /* fixme, wrong when heap has > 65534 objects */ + ptrs[0] = make_raw_header(nobjs+1,0,0); + if (file_heap != NULL) free((void *) file_heap); + return vm(entry, oargs); +} + +static __thread word R[NR]; + +word vm(word *ob, word *args) { + unsigned char *ip; + int bank = 0; /* ticks deposited at syscall */ + int ticker = slice; /* any initial value ok */ + unsigned short acc = 0; /* no support for >255arg functions */ + int op; /* opcode to execute */ + + word load_imms[] = {F(0), INULL, ITRUE, IFALSE}; /* for ldi and jv */ + usegc = 1; /* enble gc (later have if always evabled) */ + + /* clear blank regs */ + while(acc < NR) { R[acc++] = INULL; } + R[0] = IFALSE; + R[3] = IHALT; + R[4] = (word) args; + acc = 2; /* boot always calls with 2 args*/ + +apply: /* apply something at ob to values in regs, or maybe switch context */ + + if (likely(allocp(ob))) { + word hdr = *ob & 4095; /* cut size out, take just header info */ + if (hdr == make_header(0,TPROC)) { /* proc */ + R[1] = (word) ob; ob = (word *) ob[1]; + } else if (hdr == make_header(0,TCLOS)) { /* clos */ + R[1] = (word) ob; ob = (word *) ob[1]; + R[2] = (word) ob; ob = (word *) ob[1]; + } else if (((hdr>>TPOS)&60) == TFF) { /* low bits have special meaning */ + word *cont = (word *) R[3]; + if (acc == 3) { + R[3] = prim_get(ob, R[4], R[5]); + } else if (acc == 2) { + R[3] = prim_get(ob, R[4], (word) 0); + if (!R[3]) { error(260, ob, R[4]); } + } else { + error(259, ob, INULL); + } + ob = cont; + acc = 1; + goto apply; + } else if (((hdr >> TPOS) & 63) != TBYTECODE) { /* not even code, extend bits later */ + error(259, ob, INULL); + } + if (unlikely(!ticker--)) goto switch_thread; + ip = ((unsigned char *) ob) + W; + goto invoke; + } else if ((word)ob == IEMPTY && acc > 1) { /* ff application: (False key def) -> def */ + ob = (word *) R[3]; /* call cont */ + R[3] = (acc > 2) ? R[5] : IFALSE; /* default arg or false if none */ + acc = 1; + goto apply; + } else if ((word)ob == IHALT) { + /* a tread or mcp is calling the final continuation */ + ob = (word *) R[0]; + if (allocp(ob)) { + R[0] = IFALSE; + breaked = 0; + R[4] = R[3]; + R[3] = F(2); + R[5] = IFALSE; + R[6] = IFALSE; + ticker = 0xffffff; + bank = 0; + acc = 4; + goto apply; + } + return fixval(R[3]); + } /* <- add a way to call the new vm prim table also here? */ + error(257, ob, INULL); /* not callable */ + +switch_thread: /* enter mcp if present */ + if (R[0] == IFALSE) { /* no mcp, ignore */ + ticker = TICKS; + goto apply; + } else { + /* save vm state and enter mcp cont at R0 */ + word *state, pos = 1; + ticker=0xffffff; + bank = 0; + acc = acc + 4; + R[acc] = (word) ob; + allocate(acc, state); + *state = make_header(acc, TTHREAD); + state[acc-1] = R[acc]; + while(pos < acc-1) { + state[pos] = R[pos]; + pos++; + } + ob = (word *) R[0]; + R[0] = IFALSE; /* remove mcp cont */ + /* R3 marks the syscall to perform */ + R[3] = breaked ? ((breaked & 8) ? F(14) : F(10)) : F(1); /* fixme - handle also differnet signals via one handler */ + R[4] = (word) state; + R[5] = F(breaked); + R[6] = IFALSE; + acc = 4; + breaked = 0; + goto apply; + } +invoke: /* nargs and regs ready, maybe gc and execute ob */ + if (((word)fp) + 1024*64 >= ((word) memend)) + //(1) // always gc + { + int p = 0; + *fp = make_header(NR+2, 50); /* hdr r_0 .. r_(NR-1) ob */ + while(p < NR) { fp[p+1] = R[p]; p++; } + fp[p+1] = (word) ob; + fp = gc(1024*64, fp); + ob = (word *) fp[p+1]; + while(--p >= 0) { R[p] = fp[p+1]; } + ip = ((unsigned char *) ob) + W; + } + + op = *ip++; + + if (op) { + main_dispatch: + EXEC; + } else { + op = *ip<<8 | ip[1]; + goto super_dispatch; + } + + op0: op = (*ip << 8) | ip[1]; goto super_dispatch; + op1: {word *ob = (word *)R[*ip]; R[ip[2]] = ob[ip[1]]; NEXT(3);} + op2: OGOTO(*ip,ip[1]); /* fixme, these macros are not used in cgen output anymore*/ + op3: OCLOSE(TCLOS); NEXT(0); + op4: OCLOSE(TPROC); NEXT(0); + op5: /* mov2 from1 to1 from2 to2 */ + R[ip[1]] = R[ip[0]]; + R[ip[3]] = R[ip[2]]; + NEXT(4); + op6: CLOSE1(TCLOS); NEXT(0); + op7: CLOSE1(TPROC); NEXT(0); + op8: /* jlq a b o, extended jump */ + if(R[*ip] == A1) { ip += ip[2] + (ip[3] << 8); } + NEXT(4); + op9: R[ip[1]] = R[*ip]; NEXT(2); + op11: /* unused */ + error(11, IFALSE, IFALSE); + op10: /* unused */ + error(10, IFALSE, IFALSE); + op12: /* jb n */ + ip -= ip[0]; + if (ticker) /* consume thread time */ + ticker--; + NEXT(0); + op13: /* ldi{2bit what} [to] */ + R[*ip++] = load_imms[op>>6]; + NEXT(0); + op14: R[ip[1]] = F(*ip); NEXT(2); + op15: { /* type-byte o r <- actually sixtet */ + word ob = R[*ip++]; + if (allocp(ob)) ob = V(ob); + R[*ip++] = F((ob>>TPOS)&63); + NEXT(0); } + op16: /* jv[which] a o1 a2*/ + /* FIXME, convert this to jump-const comparing to make_immediate(,TCONST) */ + if(R[*ip] == load_imms[op>>6]) { ip += ip[1] + (ip[2] << 8); } + NEXT(3); + op17: /* arity error */ + error(17, ob, F(acc)); + op18: /* goto-code p */ + ob = (word *) R[*ip]; /* needed in opof gc */ + acc = ip[1]; + ip = ((unsigned char *) R[*ip]) + W; + goto invoke; + op19: { /* goto-proc p */ + word *this = (word *) R[*ip]; + R[1] = (word) this; + acc = ip[1]; + ob = (word *) this[1]; + ip = ((unsigned char *) ob) + W; + goto invoke; } + op20: { /* apply */ + int reg, arity; + word *lst; + if (op == 20) { /* normal apply: cont=r3, fn=r4, a0=r5, */ + reg = 4; /* include cont */ + arity = 1; + ob = (word *) R[reg]; + acc -= 3; /* ignore cont, function and stop before last one (the list) */ + while(acc--) { /* move explicitly given arguments down by one to correct positions */ + R[reg] = R[reg+1]; /* copy args down*/ + reg++; + arity++; + } + lst = (word *) R[reg+1]; + } else { /* _sans_cps apply: func=r3, a0=r4, */ + reg = 3; /* include cont */ + arity = 0; + ob = (word *) R[reg]; + acc -= 2; /* ignore function and stop before last one (the list) */ + while(acc--) { /* move explicitly given arguments down by one to correct positions */ + R[reg] = R[reg+1]; /* copy args down*/ + reg++; + arity++; + } + lst = (word *) R[reg+1]; + } + while(allocp(lst) && *lst == PAIRHDR) { /* unwind argument list */ + /* FIXME: unwind only up to last register and add limited rewinding to arity check */ + if (reg > 128) { /* dummy handling for now */ + fprintf(stderr, "TOO LARGE APPLY\n"); + exit(3); + } + R[reg++] = lst[1]; + lst = (word *) lst[2]; + arity++; + } + acc = arity; + goto apply; } + op21: { /* goto-clos p */ + word *this = (word *) R[*ip]; + R[1] = (word) this; + acc = ip[1]; + this = (word *) this[1]; + R[2] = (word) this; + ob = (word *) this[1]; + ip = ((unsigned char *) ob) + W; + goto invoke; } + op22: { /* cast o t r */ + word *ob = (word *) R[*ip]; + word type = fixval(A1) & 63; + A2 = prim_cast(ob, type); + NEXT(3); } + op23: { /* mkt t s f1 .. fs r */ + word t = *ip++; + word s = *ip++ + 1; /* the argument is n-1 to allow making a 256-tuple with 255, and avoid 0-tuples */ + word *ob, p = 0; + allocate(s+1, ob); /* s fields + header */ + *ob = make_header(s+1, t); + while (p < s) { + ob[p+1] = R[ip[p]]; + p++; + } + R[ip[p]] = (word) ob; + NEXT(s+1); } + op24: /* ret val == implicit call r3 with 1 arg */ + ob = (word *) R[3]; + R[3] = R[*ip]; + acc = 1; + goto apply; + op25: { /* jmp-nargs(>=?) a hi lo */ + int needed = *ip; + if (acc == needed) { + if (op & 64) /* add empty extra arg list */ + R[acc + 3] = INULL; + } else if ((op & 64) && acc > needed) { + word tail = INULL; /* todo: no call overflow handling yet */ + while (acc > needed) { + fp[0] = PAIRHDR; + fp[1] = R[acc + 2]; + fp[2] = tail; + tail = (word) fp; + fp += 3; + acc--; + } + R[acc + 3] = tail; + } else { + ip += (ip[1] << 8) | ip[2]; + } + NEXT(3); } + op26: { /* fxqr ah al b qh ql r, b != 0, int32 / int16 -> int32, as fixnums */ + uint64_t a = (((uint64_t) fixval(A0))<>FBITS); + A4 = F(q&FMAX); + A5 = F(a - q*b); + NEXT(6); } + op27: /* syscall cont op arg1 arg2 */ + ob = (word *) R[0]; + R[0] = IFALSE; + R[3] = A1; R[4] = R[*ip]; R[5] = A2; R[6] = A3; + acc = 4; + if (ticker > 10) bank = ticker; /* deposit remaining ticks for return to thread */ + goto apply; + op28: { /* sizeb obj to */ + word ob = R[*ip]; + if (immediatep(ob)) { + A1 = IFALSE; + } else { + word hdr = V(ob); + A1 = (rawp(hdr)) ? F((hdrsize(hdr)-1)*W - ((hdr >> 8) & 7)) : IFALSE; + } + NEXT(2); } + op29: { /* ncons a b r */ + *fp = NUMHDR; + fp[1] = A0; + fp[2] = A1; + A2 = (word) fp; + fp += 3; + NEXT(3); } + op30: { /* ncar a rd */ + word *ob = (word *) R[*ip]; + assert(allocp(ob), ob, 30); + A1 = ob[1]; + NEXT(2); } + op31: { /* ncdr a r */ + word *ob = (word *) R[*ip]; + assert(allocp(ob), ob, 31); + A1 = ob[2]; + NEXT(2); } + op32: { /* bind tuple .. */ + word *tuple = (word *) R[*ip++]; + word hdr, pos = 1, n = *ip++; + assert(allocp(tuple), tuple, 32); + hdr = *tuple; + assert_not((rawp(hdr) || hdrsize(hdr)-1 != n), tuple, 32); + while(n--) { R[*ip++] = tuple[pos++]; } + NEXT(0); } + op33: + error(33, IFALSE, IFALSE); + op34: { /* connect -> fd | False, via an ipv4 tcp stream */ + A2 = prim_connect((word *) A0, A1); /* fixme: remove and put to prim-sys*/ + NEXT(3); } + op35: { /* listuple type size lst to */ + word type = fixval(R[*ip]); + word size = fixval(A1); + word *lst = (word *) A2; + word *ob; + allocate(size+1, ob); + A3 = (word) ob; + *ob++ = make_header(size+1, type); + while(size--) { + assert((allocp(lst) && *lst == PAIRHDR), lst, 35); + *ob++ = lst[1]; + lst = (word *) lst[2]; + } + NEXT(4); } + op36: { /* size o r */ + word *ob = (word *) R[ip[0]]; + R[ip[1]] = (immediatep(ob)) ? IFALSE : F(hdrsize(*ob)-1); + NEXT(2); } + op37: { /* ms r */ +#ifndef WIN32 + if (!seccompp) + usleep(fixval(A0)*1000); +#else + Sleep(fixval(A0)); +#endif + A1 = BOOL(errno == EINTR); + NEXT(2); } + op38: { /* fx+ a b r o, types prechecked, signs ignored, assume fixnumbits+1 fits to machine word */ + word res = fixval(A0) + fixval(A1); + word low = res & FMAX; + A3 = (res & (1 << FBITS)) ? ITRUE : IFALSE; + A2 = F(low); + NEXT(4); } + op39: { /* fx* a b l h */ + uint64_t res = ((uint64_t) ((uint64_t) fixval(R[*ip])) * ((uint64_t) fixval(A1))); + A2 = F(((word)(res&FMAX))); + A3 = F(((word)(res>>FBITS)&FMAX)); + NEXT(4); } + op40: { /* fx- a b r u, args prechecked, signs ignored */ + word r = (fixval(A0)|(1<> a b hi lo */ + uint64_t r = ((uint64_t) fixval(A0)) << (FBITS - fixval(A1)); + A2 = F(r>>FBITS); + A3 = F(r&FMAX); + NEXT(4); } + op59: { /* fx<< a b hi lo */ + uint64_t res = (uint64_t) fixval(R[*ip]) << fixval(A1); + A2 = F(res>>FBITS); + A3 = F(res&FMAX); + NEXT(4); } + op60: /* lraw lst type dir r (fixme, alloc amount testing compiler pass not in place yet!) */ + A3 = prim_lraw(A0, fixval(A1), A2); + NEXT(4); + op61: /* clock */ { /* fixme: sys */ + struct timeval tp; + word *ob; + allocate(6, ob); /* space for 32-bit bignum - [NUM hi [NUM lo null]] */ + ob[0] = ob[3] = NUMHDR; + A0 = (word) (ob + 3); + ob[2] = INULL; + ob[5] = (word) ob; + if (seccompp) { + unsigned long secs = seccomp_time / 1000; + A1 = F(seccomp_time - (secs * 1000)); + ob[1] = F(secs >> FBITS); + ob[4] = F(secs & FMAX); + seccomp_time += ((seccomp_time + 10) > seccomp_time) ? 10 : 0; /* virtual 10ms passes */ + } else { + gettimeofday(&tp, NULL); + A1 = F(tp.tv_usec / 1000); + ob[1] = F(tp.tv_sec >> FBITS); + ob[4] = F(tp.tv_sec & FMAX); + } + NEXT(2); } + op62: /* set-ticker -> old ticker value */ /* fixme: sys */ + A1 = F(ticker & FMAX); + ticker = fixval(A0); + NEXT(2); + op63: { /* sys-prim op arg1 arg2 arg3 r1 */ + A4 = prim_sys(fixval(A0), A1, A2, A3); + NEXT(5); } + +super_dispatch: /* run macro instructions */ + switch(op) { + case 0:if(acc==2){assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=R[6];R[4]=R[5];R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1:if(acc==4){if(R[5]==INULL){R[7]=G(R[1],2);R[8]=INULL;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[5]=(word)fp;fp+=3;ob=(word *)R[6];acc=4;}else{R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[1],5);R[6]=IFALSE;ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 2:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[1],5);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],6);R[11]=IFALSE;R[12]=R[4];R[4]=R[6];R[6]=R[11];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 3:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[1],5);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[12];acc=4;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],6);R[11]=IFALSE;R[12]=R[4];R[4]=R[6];R[6]=R[11];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 4:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],4);R[11]=IFALSE;R[12]=R[4];R[4]=R[6];R[6]=R[11];ob=(word *)R[12];acc=4;}else{R[4]=G(R[2],5);R[5]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[2],6);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[2],7);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 5:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[2],4);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 6:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],4);R[11]=IFALSE;R[12]=R[4];R[4]=R[6];R[6]=R[11];ob=(word *)R[12];acc=4;}else{R[4]=G(R[2],5);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],6);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[2],7);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 7:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],5);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],4);R[11]=IFALSE;R[12]=R[4];R[4]=R[6];R[6]=R[11];ob=(word *)R[12];acc=4;}else{R[4]=G(R[2],5);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],6);fp[2]=R[5];R[3]=(word)fp;fp+=3;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 8:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[7]=R[4];R[3]=R[5];R[4]=R[8];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 9:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=F(2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[5]=G(R[2],4);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 10:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[2],5);fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],2);R[4]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],4);R[11]=IFALSE;R[12]=R[6];R[6]=R[11];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 11:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=F(1);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 12:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 13:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[5]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[7];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 14:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[5]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 15:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 16:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 17:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[5]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 18:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[12]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[11];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 19:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[3];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=10;R[13]=G(R[2],4);R[6]=IFALSE;R[9]=R[5];R[4]=R[8];R[5]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 20:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[12];fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=11;R[5]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 21:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);R[10]=G(R[1],10);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[5]=G(R[1],4);R[6]=G(R[1],3);R[14]=G(R[1],2);R[15]=R[4];R[8]=R[3];R[4]=R[7];R[3]=R[11];R[7]=R[14];ob=(word *)R[15];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 22:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[12]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[5];R[5]=R[12];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 23:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;R[13]=G(R[2],4);R[5]=G(R[2],5);R[9]=R[4];R[6]=R[3];R[3]=R[12];R[4]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 24:if(acc==1){R[4]=G(R[1],8);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[4];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=9;R[7]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 25:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],7);R[6]=G(R[1],8);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;R[8]=G(R[2],2);R[4]=G(R[1],2);R[10]=G(R[1],3);R[11]=G(R[1],4);R[12]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[7];fp[5]=R[12];fp[4]=R[11];fp[3]=R[10];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[5]=G(R[2],4);R[6]=IFALSE;ob=(word *)R[8];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 26:if(acc==7){R[10]=G(R[2],2);R[11]=G(R[1],2);R[12]=G(R[1],3);R[13]=G(R[1],4);*fp=make_header(12,TCLOS);fp[1]=G(R[2],3);fp[11]=R[3];fp[10]=R[9];fp[9]=R[6];fp[8]=R[8];fp[7]=R[13];fp[6]=R[5];fp[5]=R[7];fp[4]=R[12];fp[3]=R[4];fp[2]=R[11];R[3]=(word)fp;fp+=12;R[4]=R[11];ob=(word *)R[10];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 27:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);R[11]=G(R[1],10);R[12]=G(R[1],11);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[12];fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[13]=(word)fp;fp+=11;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[13];acc=1;}else{R[14]=G(R[2],2);R[4]=G(R[1],2);R[5]=R[9];R[3]=R[13];ob=(word *)R[14];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 28:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],10);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);R[13]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[13];fp[8]=R[12];fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[14]=(word)fp;fp+=10;R[7]=R[4];R[3]=R[5];R[4]=R[14];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],6);R[5]=G(R[1],10);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[2],5);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 29:if(acc==1){R[4]=G(R[1],2);R[3]=F(0);ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 30:if(acc==2){R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[11];fp[7]=R[3];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[4]=G(R[1],2);ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 31:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],7);R[13]=G(R[1],8);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[13];fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=11;R[15]=G(R[2],4);R[9]=R[6];R[4]=R[5];R[6]=R[10];R[5]=R[15];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 32:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);R[12]=G(R[1],10);*fp=make_header(10,TCLOS);fp[1]=G(R[2],2);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[13]=(word)fp;fp+=10;R[7]=R[4];R[4]=R[3];R[3]=R[13];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 33:if(acc==3){R[6]=G(R[1],7);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[10];fp[7]=R[9];fp[6]=R[6];fp[5]=R[3];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=G(R[1],4);R[13]=G(R[1],3);R[14]=G(R[1],2);R[10]=R[6];R[7]=R[5];R[5]=R[13];R[6]=R[14];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 34:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);R[12]=G(R[1],6);R[13]=G(R[1],7);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[13];fp[8]=R[12];fp[7]=R[3];fp[6]=R[4];fp[5]=R[11];fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=10;R[15]=G(R[2],4);R[4]=R[5];R[5]=R[15];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 35:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;R[7]=R[4];R[4]=R[3];R[3]=R[12];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 36:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[12]=G(R[1],2);R[5]=F(1);R[8]=R[4];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 37:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[5]=G(R[2],4);R[6]=G(R[2],5);R[13]=R[4];R[4]=R[10];ob=(word *)R[13];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 38:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=F(1);R[12]=R[6];R[13]=R[5];R[5]=R[7];R[7]=R[3];R[6]=R[8];R[8]=R[9];R[9]=R[4];R[4]=R[12];R[3]=R[13];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 39:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[10]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 40:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=F(1);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=G(R[2],4);R[11]=R[4];R[6]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 41:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){R[9]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[8];R[3]=(word)fp;fp+=3;ob=(word *)R[9];acc=1;}else{ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 42:if(acc==2){R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=INULL;R[10]=R[6];R[6]=R[7];R[7]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 43:if(acc==5){if(R[5]==INULL){ob=(word *)R[3];R[3]=R[6];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);if(R[8]==IFALSE){R[9]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=G(R[1],4);R[5]=G(R[1],5);ob=(word *)R[9];acc=3;}else{R[9]=G(R[5],1);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[1],7);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=R[9];ob=(word *)R[10];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 44:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=G(R[1],7);R[3]=G(R[1],6);R[4]=G(R[1],5);R[6]=R[8];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[5];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=G(R[1],3);R[5]=G(R[2],4);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 45:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=6;R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 46:if(acc==4){*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[6];fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=6;if(R[5]==IFALSE){R[3]=G(R[1],2);ob=(word *)R[7];acc=1;}else{R[3]=G(R[1],3);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 47:if(acc==1){R[4]=G(R[1],3);if(R[4]==IFALSE){R[5]=G(R[1],2);if(R[5]==IFALSE){R[6]=G(R[1],4);R[3]=G(R[2],2);ob=(word *)R[6];acc=1;}else{R[6]=G(R[1],4);ob=(word *)R[6];acc=1;}}else{R[5]=G(R[2],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[9]=G(R[2],5);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 48:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;if(R[3]==IFALSE){R[8]=G(R[2],2);R[4]=G(R[1],2);R[3]=R[7];ob=(word *)R[8];acc=2;}else{R[3]=G(R[2],3);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 49:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=G(R[2],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],2);R[5]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 50:if(acc==2){R[5]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],7);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=5;R[7]=G(R[2],2);if(R[4]==R[7]){R[8]=G(R[1],2);R[9]=G(R[2],3);if(R[8]==R[9]){R[3]=IFALSE;ob=(word *)R[6];acc=1;}else{R[10]=G(R[2],4);R[3]=R[6];R[4]=R[8];ob=(word *)R[10];acc=2;}}else{R[8]=G(R[2],5);R[9]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],6);fp[3]=R[6];fp[2]=R[9];R[3]=(word)fp;fp+=4;ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 51:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 52:if(acc==2){R[5]=G(R[1],2);if(R[4]==R[5]){R[6]=F(42);ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[5]=G(R[1],5);R[9]=IFALSE;R[10]=R[6];R[3]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 53:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[2],4);R[6]=IFALSE;R[10]=R[4];R[4]=R[5];R[3]=R[7];R[5]=R[8];ob=(word *)R[10];acc=4;}else{R[4]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],7);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[8]=G(R[2],5);R[3]=G(R[1],3);R[4]=G(R[2],6);ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 54:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],6);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;if(R[3]==IFALSE){R[7]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[6];R[3]=(word)fp;fp+=3;R[5]=G(R[2],4);R[6]=G(R[2],5);ob=(word *)R[7];acc=4;}else{ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 55:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[1],2);R[5]=G(R[2],4);R[9]=F(0);R[10]=R[4];R[3]=R[6];R[4]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 56:if(acc==1){R[4]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[5]=(word)fp;fp+=3;R[12]=G(R[2],2);R[3]=G(R[1],3);R[4]=G(R[2],3);ob=(word *)R[12];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 57:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[2],3);R[7]=INULL;R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 58:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[8];acc=1;}else{R[9]=G(R[2],3);R[4]=G(R[2],4);R[3]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 59:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[6];fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[7]=(word)fp;fp+=6;R[8]=G(R[1],2);if(R[8]==INULL){R[3]=G(R[2],2);ob=(word *)R[7];acc=1;}else{R[9]=F(32);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=F(44);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[3]=(word)fp;fp+=3;ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 60:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 61:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(58);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[8]=G(R[2],2);R[3]=G(R[1],3);R[4]=G(R[1],2);ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 62:if(acc==2){R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[3]=R[6];R[6]=R[5];R[5]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 63:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[1],4);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 64:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){assert(pairp(R[4]),R[4],1053);R[4]=G(R[4],2);R[10]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[8];R[3]=(word)fp;fp+=3;ob=(word *)R[10];acc=2;}else{ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 65:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],4);R[5]=G(R[2],4);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],5);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],6);fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=4;R[10]=INULL;R[4]=R[5];R[5]=R[10];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 66:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=G(R[2],5);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 67:if(acc==2){R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=F(3);R[8]=prim_ref(R[4],R[7]);R[9]=INULL;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[10]=(word)fp;fp+=3;R[11]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[12];R[13]=(word)fp;fp+=3;R[14]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[14];fp[2]=R[13];R[4]=(word)fp;fp+=3;R[16]=G(R[1],2);ob=(word *)R[16];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 68:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[2],4);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 69:if(acc==1){R[4]=G(R[1],2);ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 70:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],4);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 71:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[5]=F(10);R[8]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 72:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 73:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 74:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[2],3);R[7]=F(0);R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 75:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=F(8);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 76:if(acc==1){R[4]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=4;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[5];acc=1;}else{R[6]=G(R[2],2);R[7]=F(0);R[4]=R[3];R[3]=R[5];R[5]=R[7];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 77:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=R[5];R[3]=R[6];R[6]=R[4];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 78:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[5]=F(10);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],3);R[3]=G(R[2],4);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 79:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[5]=F(0);R[8]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 80:if(acc==3){R[6]=G(R[1],2);R[7]=INULL;R[10]=R[7];R[7]=R[6];R[6]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 81:if(acc==5){if(R[5]==INULL){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[8];acc=2;}else{R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[1],5);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=F(10);ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 82:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[5],1);R[8]=G(R[2],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[3];fp[4]=R[6];fp[3]=R[9];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[13]=F(2);R[5]=R[4];R[4]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 83:if(acc==1){R[4]=G(R[1],2);R[5]=F(1);R[6]=prim_set(R[4],R[5],R[3]);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=G(R[1],7);R[3]=G(R[1],6);R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 84:if(acc==4){R[7]=G(R[1],2);R[8]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[6];fp[3]=R[4];fp[2]=R[7];R[9]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[9];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 85:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[4];fp[6]=R[9];fp[5]=R[3];fp[4]=R[5];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=9;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 86:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);if(R[4]==INULL){R[5]=G(R[1],8);R[6]=G(R[1],6);R[7]=G(R[1],3);R[8]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=G(R[1],2);ob=(word *)R[5];acc=3;}else{R[5]=G(R[1],5);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 87:if(acc==2){R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=INULL;R[6]=R[3];R[7]=R[8];R[3]=R[9];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 88:if(acc==5){if(R[4]==INULL){R[8]=G(R[1],4);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[3];fp[4]=R[6];fp[3]=R[10];fp[2]=R[9];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[8];ob=(word *)R[5];acc=3;}else{assert(pairp(R[4]),R[4],1052);R[8]=G(R[4],1);{word *ob=(word *)R[8];word hdr;assert(allocp(R[8]),R[8],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=5),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];R[11]=ob[3];R[12]=ob[4];}R[13]=G(R[1],3);R[14]=G(R[1],4);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[7];fp[9]=R[3];fp[8]=R[14];fp[7]=R[4];fp[6]=R[13];fp[5]=R[5];fp[4]=R[10];fp[3]=R[12];fp[2]=R[9];R[3]=(word)fp;fp+=11;R[16]=G(R[1],2);R[4]=R[6];R[5]=R[13];R[6]=R[16];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 89:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);R[12]=G(R[1],6);R[13]=G(R[1],7);R[14]=G(R[1],8);R[15]=G(R[1],9);R[16]=G(R[1],10);*fp=make_header(14,TCLOS);fp[1]=G(R[2],3);fp[13]=R[16];fp[12]=R[15];fp[11]=R[4];fp[10]=R[5];fp[9]=R[6];fp[8]=R[14];fp[7]=R[13];fp[6]=R[12];fp[5]=R[11];fp[4]=R[10];fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=14;R[4]=G(R[1],2);R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 90:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);*fp=make_header(5,2);fp[1]=R[3];fp[2]=R[4];fp[3]=R[5];fp[4]=R[6];R[7]=(word)fp;fp+=5;R[8]=G(R[1],5);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=G(R[2],2);R[11]=G(R[1],6);R[12]=G(R[1],7);R[13]=G(R[1],8);R[14]=G(R[1],9);R[4]=G(R[1],10);R[16]=G(R[1],11);R[17]=G(R[1],12);R[18]=G(R[1],13);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[18];fp[9]=R[17];fp[8]=R[9];fp[7]=R[16];fp[6]=R[4];fp[5]=R[14];fp[4]=R[13];fp[3]=R[12];fp[2]=R[11];R[3]=(word)fp;fp+=11;ob=(word *)R[10];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 91:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);R[11]=G(R[1],10);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[12]=(word)fp;fp+=10;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[12];acc=1;}else{R[13]=G(R[1],2);assert(pairp(R[13]),R[13],1052);R[4]=G(R[13],1);assert(pairp(R[7]),R[7],1052);R[5]=G(R[7],1);R[16]=G(R[2],2);R[3]=R[12];ob=(word *)R[16];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 92:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],7);ob=(word *)R[6];acc=3;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],9);R[7]=G(R[1],8);R[8]=G(R[1],7);R[9]=G(R[1],6);R[4]=R[5];R[3]=R[7];R[7]=R[6];R[5]=R[8];R[6]=R[9];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 93:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[5]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 94:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[4]=R[5];R[5]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 95:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[7]=(word)fp;fp+=3;R[8]=G(R[1],4);R[9]=R[6];R[6]=R[5];R[5]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 96:if(acc==3){R[6]=F(1);R[7]=prim_ref(R[5],R[6]);R[8]=F(2);R[9]=prim_ref(R[5],R[8]);R[10]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[7];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 97:if(acc==2){R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[4]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 98:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[2],4);R[9]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 99:if(acc==3){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 100:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=F(10);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 101:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=F(2);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 102:if(acc==2){if(R[4]==IFALSE){R[5]=IFALSE;ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 103:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=F(10);*fp=make_header(5,2);fp[1]=R[7];fp[2]=R[5];fp[3]=R[3];fp[4]=R[6];R[3]=(word)fp;fp+=5;R[9]=G(R[1],3);ob=(word *)R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 104:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[1],4);R[8]=R[5];R[5]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 105:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[5]=(word)fp;fp+=3;R[9]=G(R[2],2);R[10]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[10];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],3);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 106:if(acc==1){R[4]=IFALSE;if(R[4]==IFALSE){R[5]=G(R[1],2);R[3]=R[4];ob=(word *)R[5];acc=1;}else{R[5]=G(R[1],2);R[3]=R[4];ob=(word *)R[5];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 107:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[10]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 108:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],7);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[2],3);R[11]=R[4];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],3);R[5]=G(R[1],2);R[12]=R[4];R[6]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 109:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[3];fp[4]=R[4];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[4]=G(R[1],2);ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 110:if(acc==5){R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[5];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 111:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[4];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[9]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 112:if(acc==1){R[4]=F(1);R[5]=prim_ref(R[3],R[4]);R[6]=G(R[2],2);if(R[5]==R[6]){{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[7]=ob[1];R[8]=ob[2];}R[9]=G(R[2],3);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[12];fp[3]=R[11];fp[2]=R[10];R[3]=(word)fp;fp+=5;R[4]=G(R[1],4);R[5]=R[8];ob=(word *)R[9];acc=3;}else{R[7]=G(R[2],5);if(R[5]==R[7]){{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[7]=G(R[1],3);R[3]=G(R[1],7);R[4]=G(R[1],4);R[5]=G(R[1],6);R[6]=G(R[1],2);ob=(word *)R[7];acc=5;}else{R[8]=G(R[2],6);if(R[5]==R[8]){{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=5),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];R[11]=ob[3];R[12]=ob[4];}R[13]=G(R[2],3);R[14]=G(R[1],5);R[15]=G(R[1],6);R[16]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],7);fp[6]=R[16];fp[5]=R[15];fp[4]=R[14];fp[3]=R[10];fp[2]=R[12];R[3]=(word)fp;fp+=7;R[4]=G(R[1],4);R[5]=R[11];ob=(word *)R[13];acc=3;}else{R[9]=G(R[2],8);R[10]=G(R[1],7);R[4]=G(R[2],9);R[5]=R[3];R[3]=R[10];ob=(word *)R[9];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 113:if(acc==2){R[5]=G(R[2],4);R[6]=G(R[1],3);R[7]=G(R[1],2);*fp=make_header(5,2);fp[1]=R[5];fp[2]=R[6];fp[3]=R[4];fp[4]=R[7];R[6]=(word)fp;fp+=5;R[9]=G(R[2],2);R[10]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[10];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=G(R[1],5);R[5]=G(R[1],4);ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 114:if(acc==2){R[5]=G(R[2],4);*fp=make_header(3,2);fp[1]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=G(R[1],3);R[5]=G(R[1],2);ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 115:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=F(4);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 116:if(acc==2){if(R[4]==F(0)){R[5]=G(R[2],2);R[4]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=5;ob=(word *)R[5];acc=2;}else{R[5]=F(1);if(R[4]==R[5]){R[6]=G(R[2],2);R[4]=G(R[1],2);R[8]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[8];fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{R[6]=F(2);if(R[4]==R[6]){R[7]=G(R[2],5);R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],6);fp[3]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=4;R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{R[7]=F(0);R[8]=INULL;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[10]=G(R[2],7);R[11]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],8);fp[3]=R[11];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=G(R[1],2);ob=(word *)R[10];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 117:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 118:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[9];R[6]=(word)fp;fp+=3;R[9]=R[5];R[5]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 119:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[8]=(word)fp;fp+=5;R[4]=R[3];R[3]=R[8];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 120:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[9]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[4];R[6]=(word)fp;fp+=3;R[11]=R[5];R[3]=R[7];R[4]=R[8];R[5]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 121:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 122:if(acc==4){if(R[4]==F(0)){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[7]=F(1);{word r=(fixval(R[4])|(1< */ + case 123:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(11);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 124:if(acc==2){if(R[4]==F(0)){R[5]=G(R[1],2);R[4]=G(R[2],2);ob=(word *)R[5];acc=2;}else{R[5]=F(1);if(R[4]==R[5]){R[6]=G(R[1],2);R[4]=G(R[2],3);ob=(word *)R[6];acc=2;}else{R[6]=F(2);if(R[4]==R[6]){R[7]=G(R[1],2);R[4]=G(R[2],4);ob=(word *)R[7];acc=2;}else{R[7]=F(3);if(R[4]==R[7]){R[8]=G(R[1],2);R[4]=G(R[2],5);ob=(word *)R[8];acc=2;}else{R[8]=F(4);if(R[4]==R[8]){R[9]=G(R[1],2);R[4]=G(R[2],6);ob=(word *)R[9];acc=2;}else{R[9]=F(5);if(R[4]==R[9]){R[10]=G(R[1],2);R[4]=G(R[2],7);ob=(word *)R[10];acc=2;}else{R[10]=F(6);if(R[4]==R[10]){R[11]=G(R[1],2);R[4]=G(R[2],8);ob=(word *)R[11];acc=2;}else{R[11]=F(7);if(R[4]==R[11]){R[12]=G(R[1],2);R[4]=G(R[2],9);ob=(word *)R[12];acc=2;}else{R[12]=F(8);if(R[4]==R[12]){R[13]=G(R[1],2);R[4]=G(R[2],10);ob=(word *)R[13];acc=2;}else{R[13]=F(9);if(R[4]==R[13]){R[14]=G(R[1],2);R[4]=G(R[2],11);ob=(word *)R[14];acc=2;}else{R[14]=G(R[2],12);R[15]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],13);fp[2]=R[15];R[16]=(word)fp;fp+=3;R[5]=G(R[2],14);R[4]=R[3];R[3]=R[16];ob=(word *)R[14];acc=3;}}}}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 125:if(acc==2){R[5]=G(R[1],2);ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 126:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=G(R[4],2);R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[3];fp[5]=R[7];fp[4]=R[6];fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 127:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){R[3]=G(R[1],2);ob=(word *)R[8];acc=1;}else{R[9]=G(R[1],2);assert(pairp(R[9]),R[9],1053);R[3]=G(R[9],2);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 128:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 129:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(20);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 130:if(acc==2){R[5]=G(R[2],4);R[6]=G(R[2],2);R[7]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[5];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[5]=F(1);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 131:if(acc==5){if(R[5]==F(0)){R[7]=R[3];R[3]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 132:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=G(R[1],2);R[11]=F(1);R[8]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 133:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=INULL;R[10]=R[6];R[11]=R[5];R[5]=R[3];R[6]=R[7];R[7]=R[4];R[4]=R[10];R[3]=R[11];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 134:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(8);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 135:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[2],4);R[9]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 136:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=F(1);R[7]=prim_ref(R[5],R[6]);R[8]=G(R[2],2);if(R[8]==R[7]){R[9]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[9];acc=1;}else{R[9]=G(R[1],3);ob=(word *)R[9];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 137:if(acc==3){R[6]=F(1);R[7]=prim_ref(R[4],R[6]);R[8]=G(R[1],2);if(R[7]==R[8]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];}R[11]=G(R[1],3);R[4]=R[10];ob=(word *)R[11];acc=3;}else{R[9]=G(R[1],4);if(R[7]==R[9]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=5),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];R[12]=ob[3];R[13]=ob[4];}*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[15]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[11];R[3]=(word)fp;fp+=4;R[4]=R[12];ob=(word *)R[15];acc=3;}else{R[10]=G(R[1],6);if(R[7]==R[10]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[11]=ob[1];R[12]=ob[2];}R[13]=G(R[1],3);R[4]=R[12];ob=(word *)R[13];acc=3;}else{R[11]=G(R[1],7);R[12]=G(R[1],8);R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 138:if(acc==2){R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(5,TPROC);fp[1]=G(R[1],2);fp[4]=R[5];fp[3]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=5;*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[7];R[9]=(word)fp;fp+=5;*fp=make_header(5,TPROC);fp[1]=G(R[1],4);fp[4]=R[7];fp[3]=R[5];fp[2]=R[6];R[10]=(word)fp;fp+=5;R[5]=INULL;R[6]=R[5];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 139:if(acc==7){if(R[4]==INULL){if(R[5]==INULL){R[10]=G(R[1],2);R[4]=R[6];ob=(word *)R[10];acc=2;}else{R[10]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=G(R[1],5);ob=(word *)R[10];acc=4;}}else{R[10]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[1],7);fp[8]=R[8];fp[7]=R[3];fp[6]=R[4];fp[5]=R[7];fp[4]=R[9];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;ob=(word *)R[10];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 140:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],4);R[10]=G(R[1],7);R[6]=G(R[1],3);R[7]=G(R[1],5);R[13]=G(R[1],8);R[4]=R[5];R[5]=R[8];R[3]=R[10];R[8]=R[13];ob=(word *)R[9];acc=7;}else{R[4]=G(R[1],2);if(R[4]==INULL){R[5]=G(R[1],8);R[6]=G(R[1],7);R[7]=G(R[1],6);R[8]=INULL;R[9]=G(R[1],3);R[10]=G(R[1],5);R[11]=G(R[1],4);R[12]=R[8];R[8]=R[5];R[3]=R[6];R[4]=R[7];R[6]=R[9];R[7]=R[10];R[9]=R[11];R[5]=R[12];ob=(word *)R[8];acc=7;}else{R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[12]=G(R[2],4);R[6]=G(R[1],3);R[9]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[9];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 141:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=INULL;R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[5];R[5]=R[7];R[7]=R[8];R[8]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[12];ob=(word *)R[8];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 142:if(acc==7){if(R[4]==INULL){R[10]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=G(R[1],4);ob=(word *)R[10];acc=4;}else{assert(pairp(R[4]),R[4],1052);R[10]=G(R[4],1);R[11]=G(R[1],5);*fp=make_header(9,TCLOS);fp[1]=G(R[1],6);fp[8]=R[7];fp[7]=R[3];fp[6]=R[6];fp[5]=R[8];fp[4]=R[9];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=R[10];ob=(word *)R[11];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 143:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],8);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],5);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[12];fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=R[5];ob=(word *)R[6];acc=2;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[4],1);R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=G(R[1],8);R[11]=G(R[1],7);R[12]=INULL;R[13]=G(R[1],6);R[14]=G(R[1],5);R[15]=G(R[1],4);R[4]=R[5];R[5]=R[6];R[6]=R[3];R[8]=R[9];R[3]=R[11];R[7]=R[12];R[9]=R[13];R[11]=R[14];R[12]=R[15];ob=(word *)R[10];acc=10;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 144:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],8);R[6]=G(R[1],5);R[7]=G(R[1],2);R[8]=G(R[1],7);R[9]=G(R[1],4);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],6);R[9]=R[4];R[4]=R[11];ob=(word *)R[9];acc=4;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],8);R[10]=G(R[1],7);R[6]=G(R[1],6);R[7]=G(R[1],5);R[13]=G(R[1],4);R[4]=R[5];R[5]=R[8];R[8]=R[9];R[3]=R[10];R[9]=R[13];ob=(word *)R[8];acc=7;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 145:if(acc==10){if(R[4]==INULL){R[13]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;R[4]=R[7];R[5]=R[8];ob=(word *)R[13];acc=3;}else{assert(pairp(R[4]),R[4],1052);R[13]=G(R[4],1);if(R[13]==R[6]){assert(pairp(R[8]),R[8],1053);R[14]=G(R[8],2);R[15]=G(R[1],4);*fp=make_header(11,TCLOS);fp[1]=G(R[1],5);fp[10]=R[12];fp[9]=R[3];fp[8]=R[10];fp[7]=R[11];fp[6]=R[9];fp[5]=R[14];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=11;R[4]=R[7];ob=(word *)R[15];acc=2;}else{R[14]=F(92);if(R[13]==R[14]){R[15]=G(R[4],2);if(R[15]==INULL){R[4]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[14];fp[2]=R[7];R[7]=(word)fp;fp+=3;ob=(word *)R[10];acc=10;}else{R[16]=G(R[1],6);*fp=make_header(12,TCLOS);fp[1]=G(R[1],7);fp[11]=R[10];fp[10]=R[3];fp[9]=R[5];fp[8]=R[6];fp[7]=R[8];fp[6]=R[9];fp[5]=R[11];fp[4]=R[12];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=12;ob=(word *)R[16];acc=2;}}else{R[15]=G(R[1],8);*fp=make_header(12,TCLOS);fp[1]=G(R[1],9);fp[11]=R[10];fp[10]=R[3];fp[9]=R[5];fp[8]=R[6];fp[7]=R[8];fp[6]=R[9];fp[5]=R[11];fp[4]=R[12];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=12;R[4]=R[13];ob=(word *)R[15];acc=2;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 146:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],11);R[8]=G(R[1],2);R[9]=G(R[1],10);R[10]=G(R[1],4);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[12]=G(R[1],3);R[5]=G(R[1],7);R[8]=R[4];R[4]=R[12];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],11);R[10]=G(R[1],10);R[11]=G(R[1],9);R[12]=G(R[1],8);R[13]=G(R[1],7);R[14]=G(R[1],6);R[15]=G(R[1],5);R[16]=G(R[1],4);R[4]=R[5];R[7]=R[8];R[3]=R[10];R[10]=R[9];R[5]=R[11];R[6]=R[12];R[8]=R[13];R[9]=R[14];R[11]=R[15];R[12]=R[16];ob=(word *)R[10];acc=10;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 147:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[2],4);R[6]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 148:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=INULL;R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[5];R[5]=R[7];R[7]=R[8];R[8]=R[9];R[9]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[12];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 149:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);R[13]=G(R[1],10);R[14]=G(R[1],11);*fp=make_header(12,TCLOS);fp[1]=G(R[2],3);fp[11]=R[14];fp[10]=R[13];fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[15]=(word)fp;fp+=12;R[7]=R[4];R[4]=R[3];R[3]=R[15];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 150:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],11);R[10]=G(R[1],10);R[11]=G(R[1],9);R[12]=G(R[1],8);R[13]=G(R[1],7);R[14]=G(R[1],6);R[15]=G(R[1],5);R[16]=G(R[1],4);R[4]=R[5];R[7]=R[8];R[3]=R[10];R[10]=R[9];R[5]=R[11];R[6]=R[12];R[8]=R[13];R[9]=R[14];R[11]=R[15];R[12]=R[16];ob=(word *)R[10];acc=10;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);R[13]=G(R[1],10);R[14]=G(R[1],11);*fp=make_header(12,TCLOS);fp[1]=G(R[2],3);fp[11]=R[14];fp[10]=R[13];fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=12;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 151:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);R[12]=G(R[1],10);R[13]=G(R[1],11);*fp=make_header(12,TPROC);fp[1]=G(R[2],3);fp[11]=R[13];fp[10]=R[12];fp[9]=R[3];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=12;R[15]=G(R[1],2);R[7]=R[4];R[4]=R[15];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 152:if(acc==1){R[4]=F(92);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],11);R[9]=G(R[1],10);R[10]=G(R[1],9);R[11]=G(R[1],8);R[12]=G(R[1],7);R[13]=G(R[1],6);R[14]=G(R[1],5);R[15]=G(R[1],4);R[16]=G(R[1],3);R[4]=R[10];R[10]=R[8];R[3]=R[9];R[5]=R[11];R[6]=R[12];R[8]=R[13];R[9]=R[14];R[11]=R[15];R[12]=R[16];ob=(word *)R[10];acc=10;}else{{error(17,ob,F(acc));}}break; /* # */ + case 153:if(acc==1){R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],2);*fp=make_header(5,2);fp[1]=R[4];fp[2]=R[5];fp[3]=R[3];fp[4]=R[6];R[7]=(word)fp;fp+=5;R[8]=G(R[1],5);if(R[8]==INULL){R[9]=G(R[1],4);assert(pairp(R[9]),R[9],1053);R[10]=G(R[9],2);R[11]=G(R[1],6);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[11];R[6]=(word)fp;fp+=3;R[9]=G(R[1],10);R[3]=G(R[1],9);R[5]=INULL;R[7]=G(R[1],8);R[8]=G(R[1],7);R[4]=R[10];ob=(word *)R[9];acc=7;}else{R[9]=G(R[1],4);assert(pairp(R[9]),R[9],1053);R[10]=G(R[9],2);R[11]=G(R[2],2);R[12]=G(R[1],6);R[13]=G(R[1],7);R[14]=G(R[1],8);R[15]=G(R[1],9);R[16]=G(R[1],10);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[16];fp[7]=R[15];fp[6]=R[10];fp[5]=R[14];fp[4]=R[13];fp[3]=R[7];fp[2]=R[12];R[3]=(word)fp;fp+=9;R[4]=R[8];ob=(word *)R[11];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 154:if(acc==1){R[4]=G(R[2],2);*fp=make_header(3,2);fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=G(R[1],8);R[3]=G(R[1],7);R[4]=G(R[1],6);R[5]=INULL;R[7]=G(R[1],5);R[8]=G(R[1],4);R[6]=R[9];R[9]=R[10];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 155:if(acc==4){R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[8];R[8]=R[9];R[9]=R[7];R[7]=R[12];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 156:if(acc==4){R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[8];R[8]=R[7];R[7]=R[12];ob=(word *)R[8];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 157:if(acc==7){R[10]=G(R[1],4);R[11]=G(R[1],3);R[12]=G(R[1],2);ob=(word *)R[10];acc=10;}else{{error(17,ob,F(acc));}}break; /* # */ + case 158:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 159:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 160:if(acc==2){R[5]=G(R[1],2);R[6]=F(6);R[9]=R[6];R[6]=R[5];R[5]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 161:if(acc==4){if(R[4]==INULL){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[5]==F(0)){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[7];ob=(word *)R[8];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 162:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=G(R[1],3);R[5]=F(1);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 163:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[4];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=F(9);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 164:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=F(126);R[9]=R[4];R[4]=R[6];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 165:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=F(31);R[9]=R[4];R[4]=R[6];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 166:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=F(9);if(R[4]==R[5]){R[6]=G(R[1],2);R[3]=ITRUE;ob=(word *)R[6];acc=1;}else{R[6]=F(10);if(R[4]==R[6]){R[7]=G(R[1],2);R[3]=ITRUE;ob=(word *)R[7];acc=1;}else{R[7]=F(13);if(R[4]==R[7]){R[8]=G(R[1],2);R[3]=ITRUE;ob=(word *)R[8];acc=1;}else{R[8]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[8];acc=1;}}}}else{R[4]=G(R[1],2);R[3]=ITRUE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 167:if(acc==2){R[5]=F(39);if(R[4]==R[5]){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[6]=F(34);if(R[4]==R[6]){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 168:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[4];fp[7]=R[5];fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[12]=(word)fp;fp+=9;R[5]=F(10);R[4]=R[3];R[3]=R[12];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 169:if(acc==2){R[5]=G(R[1],8);if(R[5]==IFALSE){R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[7];R[8]=(word)fp;fp+=3;R[5]=G(R[1],3);R[10]=G(R[1],4);R[7]=G(R[2],3);R[12]=R[6];R[4]=R[3];R[3]=R[8];R[6]=R[10];ob=(word *)R[12];acc=5;}else{R[6]=G(R[2],4);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[10];fp[5]=R[9];fp[4]=R[3];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[12]=G(R[1],2);R[13]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],6);fp[4]=R[5];fp[3]=R[13];fp[2]=R[4];R[14]=(word)fp;fp+=5;R[9]=R[6];R[4]=R[12];R[5]=R[13];R[6]=R[14];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 170:if(acc==2){R[5]=G(R[2],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[5];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 171:if(acc==4){if(R[5]==INULL){R[5]=IFALSE;R[8]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[8];acc=3;}else{assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 172:if(acc==2){if(R[4]==IFALSE){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[4]=R[3];R[5]=R[6];R[6]=R[7];R[3]=R[8];ob=(word *)R[6];acc=4;}else{R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[1],4);R[5]=R[4];R[4]=R[6];ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 173:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=IFALSE;R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 174:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[4];fp[4]=R[5];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[5]=F(2);R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 175:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[6];fp[3]=R[7];fp[2]=R[8];R[10]=(word)fp;fp+=6;R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[10];ob=(word *)R[9];acc=4;}else{R[4]=G(R[1],2);R[3]=G(R[1],5);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 176:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[3];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=G(R[1],2);R[11]=F(1);R[8]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 177:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[6]=R[3];R[3]=R[7];R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 178:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 179:if(acc==2){R[5]=INULL;ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 180:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[11]=(word)fp;fp+=9;R[5]=F(2);R[8]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 181:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[5];fp[7]=R[11];fp[6]=R[10];fp[5]=R[3];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=9;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 182:if(acc==1){R[4]=G(R[1],8);*fp=make_header(3,TPROC);fp[1]=G(R[2],5);fp[2]=R[3];R[5]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[4];R[7]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=INULL;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[10]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[10];R[4]=(word)fp;fp+=3;R[12]=G(R[2],2);R[13]=G(R[1],2);R[14]=G(R[1],3);R[15]=G(R[1],4);R[16]=G(R[1],5);R[17]=G(R[1],6);R[18]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[18];fp[6]=R[17];fp[5]=R[16];fp[4]=R[15];fp[3]=R[14];fp[2]=R[13];R[3]=(word)fp;fp+=8;ob=(word *)R[12];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 183:if(acc==5){R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[4]=(word)fp;fp+=6;ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 184:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=7;assert(pairp(R[6]),R[6],1052);R[4]=G(R[6],1);R[11]=G(R[2],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[8];fp[6]=R[3];fp[5]=R[5];fp[4]=R[6];fp[3]=R[7];fp[2]=R[9];R[3]=(word)fp;fp+=8;ob=(word *)R[11];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 185:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 186:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[10]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 187:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[11]=(word)fp;fp+=9;R[7]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 188:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[13]=F(2);R[8]=R[4];R[4]=R[5];R[5]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 189:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],3);R[5]=G(R[1],2);R[6]=F(2);R[9]=R[4];R[4]=R[11];ob=(word *)R[9];acc=4;}else{R[4]=G(R[1],7);R[5]=G(R[1],8);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[2],5);R[11]=R[4];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 190:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[11]=(word)fp;fp+=7;R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 191:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[3];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=9;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 192:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],3);R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[9]=R[4];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 193:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[7];fp[6]=R[4];fp[5]=R[5];fp[4]=R[6];fp[3]=R[10];fp[2]=R[9];R[4]=(word)fp;fp+=8;ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 194:if(acc==2){R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[10]=G(R[2],2);R[11]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[8];fp[6]=R[3];fp[5]=R[6];fp[4]=R[11];fp[3]=R[7];fp[2]=R[9];R[3]=(word)fp;fp+=8;R[13]=G(R[1],2);R[4]=R[5];R[5]=R[13];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 195:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],6);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=G(R[2],3);R[11]=R[4];R[4]=R[6];R[5]=R[7];R[6]=R[8];R[7]=R[9];R[8]=R[10];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 196:if(acc==1){R[4]=G(R[1],5);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[3];fp[5]=R[4];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 197:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 198:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[10]=(word)fp;fp+=8;R[11]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 199:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[11]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 200:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[5]=INULL;R[8]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 201:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[11]=(word)fp;fp+=6;R[4]=R[3];R[3]=R[11];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 202:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=F(1);R[10]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 203:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 204:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],5);R[8]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=G(R[1],3);R[4]=R[6];R[6]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 205:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 206:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=INULL;R[9]=R[6];R[6]=R[4];R[3]=R[5];R[5]=R[7];R[4]=R[9];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],2);R[3]=G(R[1],4);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 207:if(acc==4){if(R[4]==INULL){R[7]=G(R[1],2);R[4]=R[5];ob=(word *)R[7];acc=2;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[1],5);R[6]=IFALSE;R[5]=R[7];ob=(word *)R[8];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 208:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[6]=G(R[1],5);R[3]=G(R[1],4);R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[2],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[5];R[11]=(word)fp;fp+=6;R[12]=INULL;R[5]=R[3];R[4]=R[6];R[3]=R[11];R[6]=R[12];ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 209:if(acc==2){if(R[4]==IFALSE){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[4]=G(R[1],3);ob=(word *)R[5];acc=2;}else{R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[5]=(word)fp;fp+=3;R[6]=G(R[1],5);R[3]=G(R[1],4);ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 210:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],4);R[4]=R[3];R[5]=R[6];R[3]=R[8];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 211:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 212:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 213:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=G(R[1],4);R[4]=R[6];R[6]=R[7];ob=(word *)R[6];acc=4;}else{R[4]=G(R[2],3);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[1],2);R[11]=IFALSE;R[12]=R[4];R[4]=R[6];R[6]=R[11];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 214:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[6];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[7];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[9]=(word)fp;fp+=6;R[7]=R[3];R[4]=R[5];R[3]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 215:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[9]=G(R[1],3);R[4]=R[5];R[5]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 216:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[3];fp[5]=R[7];fp[4]=R[5];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=7;ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 217:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],4);if(R[5]==R[6]){R[7]=G(R[1],3);R[3]=G(R[1],6);ob=(word *)R[7];acc=2;}else{R[7]=G(R[4],1);R[8]=G(R[1],5);R[9]=G(R[1],3);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[10];fp[5]=R[8];fp[4]=R[6];fp[3]=R[9];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[5]=R[6];R[4]=R[7];R[7]=R[8];R[6]=R[9];ob=(word *)R[7];acc=5;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 218:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[3];R[8]=(word)fp;fp+=4;R[9]=G(R[1],4);R[10]=G(R[1],3);R[4]=R[5];R[7]=R[6];R[3]=R[8];R[5]=R[9];R[6]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 219:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=IFALSE;R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[7]=(word)fp;fp+=5;R[8]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 220:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[6];fp[5]=R[3];fp[4]=R[7];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 221:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],6);R[7]=G(R[1],5);R[8]=G(R[1],3);R[4]=R[5];R[3]=R[7];R[5]=R[8];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],4);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],6);R[10]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[9];fp[3]=R[10];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=R[6];R[5]=R[8];R[6]=R[9];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 222:if(acc==5){if(R[4]==INULL){R[8]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=R[6];ob=(word *)R[8];acc=2;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}if(R[8]==R[5]){*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[4]=(word)fp;fp+=3;R[11]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=2;}else{R[10]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[1],6);fp[7]=R[7];fp[6]=R[3];fp[5]=R[5];fp[4]=R[6];fp[3]=R[8];fp[2]=R[9];R[3]=(word)fp;fp+=8;R[4]=G(R[1],7);R[6]=IFALSE;R[5]=R[8];ob=(word *)R[10];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 223:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],7);R[8]=G(R[1],6);R[4]=G(R[1],2);R[5]=G(R[1],5);R[3]=R[8];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],7);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[4];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[10]=G(R[1],2);R[6]=INULL;R[5]=R[3];R[7]=R[4];R[3]=R[9];R[4]=R[10];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 224:if(acc==2){if(R[4]==IFALSE){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[4]=G(R[1],3);ob=(word *)R[5];acc=2;}else{R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=G(R[1],6);R[3]=G(R[1],5);R[5]=G(R[1],4);R[6]=R[8];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 225:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[8];R[9]=(word)fp;fp+=3;R[4]=R[3];R[5]=R[6];R[3]=R[9];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 226:if(acc==1){R[4]=G(R[1],2);R[5]=IFALSE;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 227:if(acc==3){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[4]=G(R[1],2);R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 228:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[5]=F(63);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 229:if(acc==1){R[4]=G(R[1],2);if(R[4]==R[3]){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[9]=G(R[2],4);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{R[5]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 230:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],3);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 231:if(acc==3){R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[5];fp[3]=R[4];fp[2]=R[6];R[8]=(word)fp;fp+=6;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 232:if(acc==4){assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);R[11]=G(R[1],4);R[12]=G(R[1],5);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[3];fp[8]=R[6];fp[7]=R[12];fp[6]=R[5];fp[5]=R[11];fp[4]=R[4];fp[3]=R[10];fp[2]=R[9];R[3]=(word)fp;fp+=10;R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 233:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[5]=G(R[1],8);R[6]=G(R[1],6);R[7]=G(R[1],4);R[8]=G(R[1],9);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],3);R[5]=R[4];R[4]=R[10];ob=(word *)R[5];acc=3;}else{R[4]=G(R[1],2);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],4);R[5]=G(R[1],3);R[9]=R[4];R[6]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 234:if(acc==3){R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],2);fp[7]=R[10];fp[6]=R[3];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=R[6];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 235:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[11]=G(R[1],2);R[7]=R[4];R[4]=R[11];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 236:if(acc==5){assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);R[9]=G(R[2],2);R[10]=G(R[1],2);R[11]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[7];fp[7]=R[3];fp[6]=R[6];fp[5]=R[11];fp[4]=R[5];fp[3]=R[4];fp[2]=R[10];R[3]=(word)fp;fp+=9;R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 237:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);R[5]=G(R[1],8);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],6);R[10]=G(R[2],3);R[11]=R[4];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}else{R[4]=G(R[1],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],3);R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 238:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 239:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[12]=(word)fp;fp+=7;R[4]=R[3];R[3]=R[12];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 240:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 241:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=F(1);R[10]=R[4];R[11]=R[6];R[6]=R[3];R[4]=R[7];R[5]=R[8];R[7]=R[9];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 242:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{assert(pairp(R[3]),R[3],1052);R[4]=G(R[3],1);R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 243:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 244:if(acc==2){R[5]=G(R[1],4);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 245:if(acc==5){if(R[4]==INULL){if(R[5]==INULL){R[8]=G(R[1],2);R[4]=R[6];ob=(word *)R[8];acc=2;}else{R[8]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[8];acc=2;}}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[10]=F(10);if(R[8]==R[10]){*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[5];R[4]=(word)fp;fp+=3;R[12]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],4);fp[5]=R[7];fp[4]=R[3];fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[12];acc=2;}else{*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[4]=R[9];ob=(word *)R[7];acc=5;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 246:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=INULL;R[3]=R[7];R[7]=R[6];R[6]=R[5];R[4]=R[8];R[5]=R[9];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 247:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[3]=G(R[1],3);R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 248:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=INULL;R[7]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 249:if(acc==2){R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[7];fp[5]=R[6];fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[8]=(word)fp;fp+=7;R[9]=G(R[1],2);if(R[9]==INULL){R[10]=G(R[1],3);assert(pairp(R[10]),R[10],1053);R[3]=G(R[10],2);ob=(word *)R[8];acc=1;}else{R[10]=G(R[2],2);R[11]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[11];R[3]=(word)fp;fp+=4;R[4]=R[9];ob=(word *)R[10];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 250:if(acc==5){assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);if(immediatep(R[8])){R[9]=IFALSE;}else{word h=V(R[8]);R[9]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[10]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[1],3);fp[7]=R[7];fp[6]=R[5];fp[5]=R[3];fp[4]=R[6];fp[3]=R[9];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[5]=F(2);R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 251:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],7);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=F(1);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],5);R[5]=G(R[1],7);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=G(R[1],6);R[9]=G(R[1],4);R[10]=F(0);R[11]=R[4];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 252:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],2);R[5]=F(0);R[9]=R[4];R[6]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 253:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[4];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[12]=F(1);R[8]=R[5];R[5]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 254:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 255:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=F(0);R[13]=F(1);R[9]=R[5];R[5]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 256:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[11];R[13]=(word)fp;fp+=3;R[8]=R[4];R[5]=R[3];R[3]=R[12];R[4]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 257:if(acc==1){R[4]=G(R[1],8);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);if(immediatep(R[5])){R[6]=IFALSE;}else{word h=V(R[5]);R[6]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[7]=G(R[2],2);R[8]=G(R[1],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);R[12]=G(R[1],6);R[13]=G(R[1],7);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[4];fp[8]=R[13];fp[7]=R[12];fp[6]=R[11];fp[5]=R[3];fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=10;R[5]=F(1);R[4]=R[8];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 258:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[13]=(word)fp;fp+=10;*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[12];R[14]=(word)fp;fp+=3;R[8]=R[4];R[5]=R[3];R[3]=R[13];R[4]=R[14];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 259:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[12]=G(R[1],3);R[5]=F(1);R[6]=G(R[1],2);R[9]=R[4];R[4]=R[12];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 260:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],8);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[7];R[13]=(word)fp;fp+=3;R[8]=R[4];R[5]=R[3];R[3]=R[12];R[4]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 261:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=prim_ref(R[6],R[4]);ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 262:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;R[7]=R[4];R[4]=R[3];R[3]=R[12];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 263:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[3];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[12]=G(R[1],2);R[5]=F(10);R[8]=R[4];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 264:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=10;R[14]=F(2);R[8]=R[5];R[5]=R[4];R[4]=R[14];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 265:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=10;R[13]=G(R[1],2);R[7]=R[4];R[4]=R[13];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 266:if(acc==2){R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],4);fp[9]=R[10];fp[8]=R[9];fp[7]=R[8];fp[6]=R[3];fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=10;R[12]=G(R[1],2);if(R[12]==INULL){R[13]=G(R[1],3);assert(pairp(R[13]),R[13],1053);R[3]=G(R[13],2);ob=(word *)R[11];acc=1;}else{R[13]=G(R[2],2);R[14]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[11];fp[2]=R[14];R[3]=(word)fp;fp+=4;R[4]=R[12];ob=(word *)R[13];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 267:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=10;R[13]=F(0);R[5]=F(1);R[6]=G(R[1],2);R[9]=R[4];R[4]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 268:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[12]=G(R[1],9);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[12];R[13]=(word)fp;fp+=3;R[5]=G(R[1],2);R[9]=R[4];R[6]=R[3];R[3]=R[11];R[4]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 269:if(acc==3){R[6]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 270:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[9]=(word)fp;fp+=7;R[10]=G(R[1],2);if(R[10]==INULL){ob=(word *)R[9];acc=1;}else{R[11]=G(R[2],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=R[10];ob=(word *)R[11];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 271:if(acc==4){R[7]=G(R[1],3);assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[5]=R[7];R[4]=R[8];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 272:if(acc==4){assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[3];fp[6]=R[6];fp[5]=R[5];fp[4]=R[10];fp[3]=R[9];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 273:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=10;R[4]=R[7];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 274:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[13]=(word)fp;fp+=10;R[7]=R[4];R[4]=R[3];R[3]=R[13];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 275:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[12]=(word)fp;fp+=9;R[4]=G(R[1],3);R[14]=G(R[1],2);R[9]=R[5];R[6]=R[3];R[3]=R[12];R[5]=R[14];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 276:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[11]=(word)fp;fp+=8;R[12]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[5];R[4]=R[3];R[3]=R[11];R[5]=R[12];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 277:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[12]=(word)fp;fp+=9;R[13]=F(3);R[8]=R[5];R[4]=R[3];R[3]=R[12];R[5]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 278:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[13]=(word)fp;fp+=10;R[4]=R[3];R[3]=R[13];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 279:if(acc==2){R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],2);fp[9]=R[10];fp[8]=R[3];fp[7]=R[4];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=10;R[12]=G(R[1],3);if(R[12]==F(0)){assert(pairp(R[6]),R[6],1052);R[3]=G(R[6],1);ob=(word *)R[11];acc=1;}else{R[3]=G(R[1],2);ob=(word *)R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 280:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;R[5]=R[4];R[4]=R[3];R[3]=R[12];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 281:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[3];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=G(R[1],3);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 282:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 283:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[5]=G(R[2],4);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 284:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 285:if(acc==5){assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 286:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[5]=G(R[5],1);R[8]=G(R[2],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);R[12]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[12];fp[6]=R[11];fp[5]=R[10];fp[4]=R[4];fp[3]=R[9];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 287:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[12]=(word)fp;fp+=9;R[4]=R[3];R[3]=R[12];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 288:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[10]=(word)fp;fp+=6;R[6]=G(R[1],2);R[9]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 289:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);R[11]=G(R[1],2);R[8]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 290:if(acc==2){R[5]=G(R[1],2);R[6]=INULL;R[7]=R[5];R[5]=R[4];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 291:if(acc==5){if(R[5]==INULL){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[8];acc=2;}else{assert(pairp(R[5]),R[5],1053);R[8]=G(R[5],2);if(R[8]==INULL){R[9]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[9];acc=2;}else{assert(pairp(R[4]),R[4],1053);R[9]=G(R[4],2);assert(pairp(R[8]),R[8],1053);R[5]=G(R[8],2);R[11]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[6];R[6]=(word)fp;fp+=3;R[4]=R[9];ob=(word *)R[7];acc=5;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 292:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[11]=R[4];R[5]=R[3];R[6]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 293:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[10]=(word)fp;fp+=7;R[4]=R[3];R[3]=R[10];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 294:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[9];fp[4]=R[3];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 295:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[5]=G(R[2],4);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 296:if(acc==2){R[5]=G(R[1],3);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[8];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[3];R[13]=(word)fp;fp+=3;R[4]=R[6];R[3]=R[11];R[6]=R[13];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 297:if(acc==3){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[4]=G(R[1],2);R[5]=F(2);R[6]=F(20);ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 298:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[9]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 299:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 300:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 301:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 302:if(acc==3){R[6]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 303:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[11]=(word)fp;fp+=8;R[4]=R[3];R[3]=R[11];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 304:if(acc==2){R[5]=G(R[1],3);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[3];fp[4]=R[9];fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[4];R[14]=(word)fp;fp+=3;R[4]=R[6];R[6]=R[14];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 305:if(acc==3){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],2);R[5]=R[4];R[4]=R[8];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 306:if(acc==5){if(R[4]==F(0)){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[8]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[5]=F(1);ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 307:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],5);R[8]=G(R[1],4);R[5]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 308:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=F(2);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 309:if(acc==2){if(R[4]==F(0)){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=R[5];R[4]=R[3];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[5]=G(R[2],3);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=G(R[2],5);R[8]=R[5];R[4]=R[6];R[5]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 310:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 311:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[11]=(word)fp;fp+=8;R[12]=G(R[2],4);R[8]=R[5];R[4]=R[3];R[3]=R[11];R[5]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 312:if(acc==2){R[5]=G(R[1],3);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[3];fp[4]=R[9];fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[4];R[14]=(word)fp;fp+=3;R[4]=R[6];R[6]=R[14];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 313:if(acc==3){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 314:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[10]=(word)fp;fp+=7;R[11]=F(8);R[8]=R[5];R[4]=R[3];R[3]=R[10];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 315:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[11]=(word)fp;fp+=8;R[4]=R[3];R[3]=R[11];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 316:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[3];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[4]=F(1);R[13]=G(R[1],2);R[8]=R[5];R[5]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 317:if(acc==1){R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[12]=(word)fp;fp+=8;R[13]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[3];R[14]=(word)fp;fp+=3;R[9]=R[6];R[4]=R[5];R[3]=R[12];R[5]=R[13];R[6]=R[14];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 318:if(acc==3){R[6]=G(R[2],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=R[4];R[4]=R[8];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 319:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[5]=F(0);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 320:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;if(R[3]==IFALSE){R[7]=G(R[2],2);R[4]=G(R[1],2);R[5]=F(1);R[3]=R[6];ob=(word *)R[7];acc=3;}else{R[3]=G(R[2],3);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 321:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=F(1);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 322:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[2],4);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 323:if(acc==5){assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);if(immediatep(R[8])){R[9]=IFALSE;}else{word h=V(R[8]);R[9]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[10]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 324:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[10]=(word)fp;fp+=7;R[4]=R[3];R[3]=R[10];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 325:if(acc==2){R[5]=G(R[1],3);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=G(R[1],2);R[13]=G(R[2],4);R[4]=R[6];R[6]=R[13];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 326:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[6];fp[2]=R[8];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);R[5]=G(R[2],4);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 327:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],6);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[4];R[11]=R[6];R[6]=R[3];R[4]=R[7];R[5]=R[8];R[7]=R[9];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 328:if(acc==5){assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 329:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[6]=F(0);R[12]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 330:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 331:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[4]=G(R[1],3);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 332:if(acc==1){R[4]=G(R[1],3);if(R[4]==F(0)){R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=G(R[1],5);R[11]=F(10);R[8]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{R[5]=G(R[1],2);if(R[5]==IFALSE){R[6]=G(R[2],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[4]=G(R[1],4);R[5]=G(R[2],6);ob=(word *)R[6];acc=3;}else{R[6]=G(R[2],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],7);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[4]=G(R[1],4);R[5]=G(R[2],6);ob=(word *)R[6];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 333:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=G(R[2],3);R[10]=R[4];R[11]=R[6];R[6]=R[3];R[4]=R[7];R[5]=R[8];R[7]=R[9];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 334:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=F(2);R[10]=R[4];R[11]=R[6];R[6]=R[3];R[4]=R[7];R[5]=R[8];R[7]=R[9];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 335:if(acc==2){if(R[4]==F(0)){R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],3);R[6]=G(R[1],2);R[10]=G(R[2],3);R[11]=R[5];R[4]=R[3];R[3]=R[7];R[5]=R[8];R[7]=R[10];ob=(word *)R[11];acc=5;}else{R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],3);R[6]=G(R[1],2);R[10]=F(0);R[11]=R[5];R[4]=R[3];R[3]=R[7];R[5]=R[8];R[7]=R[10];ob=(word *)R[11];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 336:if(acc==5){if(R[5]==INULL){R[8]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=R[6];ob=(word *)R[8];acc=3;}else{R[8]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[1],5);fp[6]=R[3];fp[5]=R[5];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 337:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],5);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[1],4);R[8]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[4]=G(R[1],3);R[11]=G(R[1],2);R[5]=R[6];R[6]=R[11];ob=(word *)R[7];acc=5;}else{R[5]=G(R[2],3);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],4);fp[7]=R[9];fp[6]=R[8];fp[5]=R[4];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[4]=G(R[1],2);R[12]=F(1);R[8]=R[5];R[5]=R[12];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 338:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=R[6];R[6]=R[3];R[7]=R[4];R[3]=R[9];R[4]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 339:if(acc==3){if(R[4]==F(0)){R[6]=G(R[2],2);R[7]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[5];R[8]=(word)fp;fp+=4;R[5]=G(R[1],2);R[4]=R[3];R[3]=R[8];ob=(word *)R[6];acc=3;}else{R[6]=G(R[2],4);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[9];fp[5]=R[3];fp[4]=R[8];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=F(1);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 340:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[11]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 341:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[9]=R[5];R[5]=R[6];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 342:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 343:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=G(R[2],2);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 344:if(acc==3){R[6]=G(R[1],2);assert(pairp(R[6]),R[6],1052);R[7]=G(R[6],1);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[9]=G(R[1],3);ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 345:if(acc==2){R[5]=G(R[1],2);R[6]=F(0);R[7]=R[5];R[5]=R[6];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 346:if(acc==5){if(R[4]==INULL){if(R[6]==F(0)){R[8]=IFALSE;R[4]=INULL;R[7]=R[3];R[3]=R[8];ob=(word *)R[7];acc=2;}else{R[4]=INULL;R[7]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}}else{assert(pairp(R[4]),R[4],1052);R[8]=G(R[4],1);R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[4]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 347:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);if(R[4]==F(0)){R[5]=G(R[1],5);R[3]=IFALSE;R[4]=G(R[1],2);ob=(word *)R[5];acc=2;}else{R[5]=G(R[1],5);R[3]=G(R[1],3);R[4]=G(R[1],2);ob=(word *)R[5];acc=2;}}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[5];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);R[5]=F(10);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 348:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 349:if(acc==2){R[5]=F(48);R[6]=prim_less(R[4],R[5]);if(R[6]==IFALSE){R[7]=F(57);R[8]=prim_less(R[7],R[4]);if(R[8]==IFALSE){R[9]=G(R[1],2);ob=(word *)R[9];acc=3;}else{R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}}else{R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 350:if(acc==4){if(immediatep(R[4])){R[7]=IFALSE;}else{word h=V(R[4]);R[7]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(R[7]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{*fp=make_header(5,TCLOS);fp[1]=G(R[1],4);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[8];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[5]=F(1);R[4]=R[7];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 351:if(acc==4){R[7]=G(R[1],2);R[8]=prim_ref(R[7],R[4]);R[9]=G(R[1],3);if(R[4]==R[9]){if(R[4]==F(0)){R[10]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=R[8];ob=(word *)R[10];acc=3;}else{R[10]=F(1);{word r=(fixval(R[4])|(1< */ + case 352:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=INULL;R[9]=R[5];R[5]=R[6];R[6]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 353:if(acc==4){R[7]=F(8);if(R[5]==R[7]){R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{if(R[4]==INULL){R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[8]=G(R[4],1);if(R[8]==F(0)){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=G(R[4],1);R[10]=G(R[1],4);R[11]=R[10]&R[9];if(R[11]==F(0)){R[12]=G(R[4],2);R[13]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[12];R[3]=(word)fp;fp+=5;R[15]=F(1);R[4]=R[5];R[5]=R[15];ob=(word *)R[13];acc=3;}else{R[12]=ITRUE;ob=(word *)R[3];R[3]=R[12];acc=1;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 354:if(acc==2){if(R[4]==IFALSE){R[5]=G(R[1],2);R[4]=G(R[2],2);ob=(word *)R[5];acc=2;}else{R[5]=G(R[1],2);R[4]=F(1);ob=(word *)R[5];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 355:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=IFALSE;R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 356:if(acc==2){R[5]=F(1);R[6]=R[3]&R[5];if(R[6]==F(0)){R[7]=G(R[1],2);R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],2);R[8]=G(R[2],2);R[3]=R[4];R[4]=R[8];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 357:if(acc==4){*fp=make_header(5,TCLOS);fp[1]=G(R[1],2);fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=5;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 358:if(acc==4){assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);R[11]=G(R[1],4);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[3];fp[7]=R[6];fp[6]=R[5];fp[5]=R[11];fp[4]=R[4];fp[3]=R[10];fp[2]=R[9];R[3]=(word)fp;fp+=9;R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 359:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[6]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 360:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[3];fp[4]=R[7];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=10;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 361:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],8);R[6]=G(R[1],7);R[7]=G(R[1],4);R[8]=G(R[1],9);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],5);R[5]=G(R[1],3);R[6]=R[4];R[4]=R[10];ob=(word *)R[6];acc=4;}else{R[4]=G(R[2],3);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[4];R[4]=R[11];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 362:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);R[12]=G(R[1],6);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[12];fp[8]=R[3];fp[7]=R[11];fp[6]=R[6];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[4];R[3]=(word)fp;fp+=10;R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 363:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(8,TCLOS);fp[1]=G(R[2],2);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[11]=G(R[1],3);R[5]=G(R[1],2);R[6]=R[4];R[4]=R[11];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 364:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[3];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 365:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 366:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=F(1);R[10]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 367:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=G(R[2],2);R[10]=R[4];R[4]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 368:if(acc==2){if(R[4]==INULL){R[5]=IFALSE;ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);if(R[5]==INULL){R[6]=IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=ITRUE;ob=(word *)R[3];R[3]=R[6];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 369:if(acc==5){R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[7];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 370:if(acc==3){R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[5]=G(R[1],2);R[11]=R[4];R[4]=R[3];R[6]=R[8];R[3]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 371:if(acc==3){R[6]=G(R[1],5);if(R[5]==R[6]){R[7]=G(R[1],4);R[8]=G(R[1],3);R[5]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=5;}else{R[7]=G(R[1],3);R[6]=G(R[1],2);ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 372:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(6);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 373:if(acc==2){if(R[4]==F(0)){R[5]=G(R[1],2);R[6]=G(R[2],2);R[7]=G(R[2],3);R[8]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[5]=F(1);if(R[4]==R[5]){R[6]=G(R[1],2);R[4]=G(R[2],4);R[5]=G(R[2],5);ob=(word *)R[6];acc=3;}else{R[6]=F(2);if(R[4]==R[6]){R[7]=G(R[1],2);R[4]=G(R[2],6);R[5]=G(R[2],7);ob=(word *)R[7];acc=3;}else{R[7]=F(3);if(R[4]==R[7]){R[8]=G(R[1],2);R[4]=G(R[2],8);R[5]=G(R[2],9);ob=(word *)R[8];acc=3;}else{R[8]=G(R[1],2);R[4]=G(R[2],10);R[5]=G(R[2],11);ob=(word *)R[8];acc=3;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 374:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=6;R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 375:if(acc==2){R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 376:if(acc==4){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[7]=G(R[2],4);R[8]=G(R[1],2);*fp=make_header(4,2);fp[1]=R[7];fp[2]=R[8];fp[3]=R[4];R[9]=(word)fp;fp+=4;R[10]=G(R[2],2);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=5;R[12]=F(1);R[4]=R[5];R[5]=R[12];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 377:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[5];fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 378:if(acc==3){R[6]=prim_less(R[5],R[4]);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 379:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 380:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[4];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=7;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 381:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[9];R[11]=(word)fp;fp+=3;R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 382:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 383:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[4];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[10]=(word)fp;fp+=7;R[4]=R[3];R[3]=R[10];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 384:if(acc==2){R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[6]=(word)fp;fp+=7;R[3]=G(R[1],2);R[5]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 385:if(acc==4){if(R[4]==F(0)){R[7]=G(R[2],2);R[8]=G(R[1],3);R[9]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[3];fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);R[12]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[12];fp[2]=R[5];R[5]=(word)fp;fp+=4;ob=(word *)R[7];acc=3;}else{R[7]=G(R[2],5);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],6);fp[6]=R[9];fp[5]=R[5];fp[4]=R[6];fp[3]=R[3];fp[2]=R[8];R[3]=(word)fp;fp+=7;R[5]=F(1);ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 386:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[10];fp[2]=R[9];R[5]=(word)fp;fp+=4;R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 387:if(acc==3){R[6]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[5],2);R[5]=R[7];R[7]=R[6];R[6]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 388:if(acc==5){if(R[6]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[8]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=IFALSE;ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 389:if(acc==2){R[5]=F(1);R[6]=R[3]&R[5];if(R[6]==F(0)){R[7]=G(R[1],4);R[8]=G(R[1],2);R[3]=R[4];R[4]=R[8];ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],3);assert(pairp(R[7]),R[7],1052);R[8]=G(R[7],1);R[6]=G(R[7],2);R[7]=G(R[1],5);R[3]=G(R[1],4);R[5]=R[8];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 390:if(acc==2){R[5]=G(R[1],2);R[6]=F(2);R[9]=R[6];R[6]=R[5];R[5]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 391:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=IFALSE;ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 392:if(acc==2){R[5]=F(1);R[6]=R[3]&R[5];R[7]=F(0);R[8]=(R[7]==R[6])?ITRUE:IFALSE;R[9]=G(R[1],2);R[10]=G(R[1],3);R[11]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[11];fp[4]=R[10];fp[3]=R[4];fp[2]=R[9];R[12]=(word)fp;fp+=6;if(R[8]==IFALSE){R[13]=G(R[2],2);R[14]=(R[9]==R[13])?ITRUE:IFALSE;if(R[14]==IFALSE){R[3]=IFALSE;ob=(word *)R[12];acc=1;}else{R[3]=R[14];ob=(word *)R[12];acc=1;}}else{R[3]=R[8];ob=(word *)R[12];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 393:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[2],5);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 394:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=F(2);R[9]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 395:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],5);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 396:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 397:if(acc==2){R[5]=G(R[1],2);if(R[4]==R[5]){R[6]=G(R[2],2);*fp=make_header(4,2);fp[1]=R[6];fp[2]=R[4];fp[3]=R[4];R[7]=(word)fp;fp+=4;ob=(word *)R[3];R[3]=R[7];acc=1;}else{ob=(word *)R[3];R[3]=R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 398:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==INULL){R[9]=G(R[2],2);R[4]=R[5];R[3]=R[8];ob=(word *)R[9];acc=2;}else{ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 399:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=6;R[10]=R[5];R[6]=R[4];R[4]=R[3];R[5]=R[7];R[3]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 400:if(acc==2){R[5]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[2],2);R[8]=G(R[1],3);R[9]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[9];fp[3]=R[3];fp[2]=R[8];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 401:if(acc==2){R[5]=G(R[1],3);if(R[4]==R[5]){R[6]=G(R[1],2);ob=(word *)R[3];R[3]=R[6];acc=1;}else{ob=(word *)R[3];R[3]=R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 402:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 403:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[6]=IFALSE;R[11]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 404:if(acc==1){{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];}R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[1],2);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 405:if(acc==2){R[5]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],8);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[5]=G(R[1],2);if(R[5]==F(0)){R[8]=G(R[2],3);R[9]=G(R[1],4);*fp=make_header(4,2);fp[1]=R[8];fp[2]=R[9];fp[3]=R[4];R[10]=(word)fp;fp+=4;R[11]=G(R[2],2);R[12]=G(R[1],3);*fp=make_header(4,2);fp[1]=R[11];fp[2]=R[10];fp[3]=R[12];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=1;}else{R[8]=F(1);if(R[5]==R[8]){R[9]=G(R[2],4);R[10]=G(R[1],4);*fp=make_header(4,2);fp[1]=R[9];fp[2]=R[10];fp[3]=R[4];R[11]=(word)fp;fp+=4;R[12]=G(R[2],2);R[13]=G(R[1],3);*fp=make_header(4,2);fp[1]=R[12];fp[2]=R[11];fp[3]=R[13];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=1;}else{R[9]=F(2);if(R[5]==R[9]){R[10]=G(R[1],3);R[11]=INULL;*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;R[13]=G(R[2],5);R[14]=G(R[1],4);*fp=make_header(5,2);fp[1]=R[13];fp[2]=R[14];fp[3]=R[4];fp[4]=R[12];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=1;}else{R[10]=G(R[2],6);R[4]=G(R[2],7);R[3]=R[6];ob=(word *)R[10];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 406:if(acc==3){R[6]=G(R[1],4);R[7]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 407:if(acc==5){if(R[6]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[5]=F(3);ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 408:if(acc==2){if(R[4]==F(0)){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);assert(pairp(R[6]),R[6],1053);R[4]=G(R[6],2);R[8]=G(R[2],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[5];fp[4]=R[9];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=8;ob=(word *)R[8];acc=2;}else{R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[1],5);R[8]=G(R[1],4);R[5]=G(R[1],3);R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 409:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[4],2);R[9]=G(R[1],7);R[3]=G(R[1],6);R[4]=G(R[1],2);R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[4]=G(R[1],2);ob=(word *)R[5];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 410:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=3;R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[10]=G(R[1],4);assert(pairp(R[10]),R[10],1053);R[6]=G(R[10],2);R[7]=G(R[1],6);R[13]=G(R[1],5);R[4]=R[3];R[3]=R[13];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 411:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=INULL;R[10]=R[5];R[5]=R[7];R[7]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 412:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 413:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[5];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 414:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[9]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 415:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[9]=(word)fp;fp+=7;if(R[3]==IFALSE){assert(pairp(R[4]),R[4],1053);R[4]=G(R[4],2);R[11]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[9];R[3]=(word)fp;fp+=3;ob=(word *)R[11];acc=2;}else{ob=(word *)R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 416:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{R[4]=G(R[1],6);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 417:if(acc==2){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[5]=ob[1];R[6]=ob[2];}{word *ob=(word *)R[6];word hdr;assert(allocp(R[6]),R[6],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[7]=ob[1];R[8]=ob[2];}R[9]=G(R[2],2);R[10]=G(R[1],3);R[11]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[11];fp[3]=R[3];fp[2]=R[10];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[5];fp[2]=R[7];R[5]=(word)fp;fp+=4;ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 418:if(acc==2){R[5]=G(R[1],3);if(R[4]==R[5]){R[6]=G(R[1],2);ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],2);if(R[4]==R[6]){ob=(word *)R[3];R[3]=R[5];acc=1;}else{ob=(word *)R[3];R[3]=R[4];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 419:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 420:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 421:if(acc==1){R[4]=G(R[1],2);if(R[4]==R[3]){R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[2],2);if(R[6]==R[7]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=5),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];R[10]=ob[3];R[11]=ob[4];}R[12]=G(R[2],3);R[13]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[13];fp[3]=R[9];fp[2]=R[10];R[3]=(word)fp;fp+=5;R[15]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],5);fp[2]=R[15];R[4]=(word)fp;fp+=3;R[5]=R[11];ob=(word *)R[12];acc=3;}else{R[8]=G(R[1],3);R[3]=R[4];ob=(word *)R[8];acc=1;}}else{R[5]=G(R[1],3);ob=(word *)R[5];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 422:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);*fp=make_header(5,2);fp[1]=R[4];fp[2]=R[5];fp[3]=R[6];fp[4]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 423:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[3]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[5];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 424:if(acc==2){R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[1],3);R[8]=(R[6]==R[7])?ITRUE:IFALSE;if(R[8]==IFALSE){R[9]=G(R[1],2);R[10]=(R[6]==R[9])?ITRUE:IFALSE;if(R[10]==IFALSE){R[11]=IFALSE;ob=(word *)R[3];R[3]=R[11];acc=1;}else{ob=(word *)R[3];R[3]=R[10];acc=1;}}else{ob=(word *)R[3];R[3]=R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 425:if(acc==2){R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[1],2);R[8]=(R[6]==R[7])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 426:if(acc==2){R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[1],4);R[8]=(R[6]==R[7])?ITRUE:IFALSE;if(R[8]==IFALSE){R[9]=G(R[1],3);R[10]=(R[6]==R[9])?ITRUE:IFALSE;if(R[10]==IFALSE){R[11]=G(R[1],2);R[12]=(R[6]==R[11])?ITRUE:IFALSE;if(R[12]==IFALSE){R[13]=IFALSE;ob=(word *)R[3];R[3]=R[13];acc=1;}else{ob=(word *)R[3];R[3]=R[12];acc=1;}}else{ob=(word *)R[3];R[3]=R[10];acc=1;}}else{ob=(word *)R[3];R[3]=R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 427:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 428:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 429:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;if(R[3]==IFALSE){R[3]=G(R[1],2);ob=(word *)R[7];acc=1;}else{R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=3;ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 430:if(acc==1){R[4]=G(R[1],2);R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[2],2);if(R[6]==R[7]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];R[10]=ob[3];}R[6]=G(R[1],4);R[12]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[12];fp[2]=R[10];R[13]=(word)fp;fp+=5;R[4]=R[3];R[5]=R[9];R[3]=R[13];ob=(word *)R[6];acc=4;}else{R[8]=G(R[2],4);if(R[6]==R[8]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=5),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];R[11]=ob[3];R[12]=ob[4];}R[13]=G(R[2],5);R[14]=G(R[1],3);R[15]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],6);fp[2]=R[15];R[4]=(word)fp;fp+=3;R[5]=R[3];R[6]=R[12];R[3]=R[14];ob=(word *)R[13];acc=4;}else{R[9]=G(R[1],3);ob=(word *)R[9];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 431:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=INULL;R[7]=G(R[1],2);R[9]=R[6];R[6]=R[4];R[3]=R[5];R[5]=R[7];R[4]=R[9];ob=(word *)R[6];acc=4;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=INULL;R[6]=G(R[1],2);R[10]=R[4];R[3]=R[5];R[4]=R[7];R[5]=R[8];ob=(word *)R[10];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 432:if(acc==2){R[5]=G(R[1],2);R[6]=INULL;R[9]=R[6];R[6]=R[5];R[5]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 433:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 434:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],5);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],2);R[6]=G(R[1],3);R[10]=R[4];R[3]=R[5];R[4]=R[7];R[5]=R[8];ob=(word *)R[10];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 435:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],6);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;R[9]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[11]=G(R[2],2);R[12]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[12];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);ob=(word *)R[11];acc=3;}else{R[4]=G(R[1],4);R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[2],7);if(R[6]==R[7]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[10]=G(R[2],8);R[3]=G(R[1],5);R[5]=G(R[1],2);R[4]=R[9];ob=(word *)R[10];acc=3;}else{R[8]=G(R[2],9);if(R[6]==R[8]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=5),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];R[11]=ob[3];R[12]=ob[4];}R[13]=G(R[2],10);R[14]=G(R[1],3);R[15]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],11);fp[6]=R[15];fp[5]=R[10];fp[4]=R[11];fp[3]=R[14];fp[2]=R[12];R[3]=(word)fp;fp+=7;R[5]=G(R[1],2);R[4]=R[10];ob=(word *)R[13];acc=3;}else{R[9]=G(R[2],12);if(R[6]==R[9]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];R[12]=ob[3];}R[13]=G(R[2],13);R[3]=G(R[1],5);R[6]=G(R[1],2);R[4]=R[11];R[5]=R[12];ob=(word *)R[13];acc=4;}else{R[10]=G(R[2],14);if(R[6]==R[10]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[11]=ob[1];R[12]=ob[2];R[13]=ob[3];}R[14]=G(R[2],15);R[3]=G(R[1],5);R[6]=G(R[1],2);R[4]=R[12];R[5]=R[13];ob=(word *)R[14];acc=4;}else{R[11]=G(R[2],16);if(R[6]==R[11]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[12]=ob[1];R[13]=ob[2];}R[14]=G(R[2],10);R[3]=G(R[1],5);R[5]=G(R[1],2);R[4]=R[13];ob=(word *)R[14];acc=3;}else{R[12]=G(R[2],17);if(R[6]==R[12]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[13]=ob[1];R[14]=ob[2];R[15]=ob[3];}R[6]=G(R[1],3);R[17]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],18);fp[4]=R[6];fp[3]=R[17];fp[2]=R[14];R[3]=(word)fp;fp+=5;R[5]=G(R[1],2);R[4]=R[15];ob=(word *)R[6];acc=4;}else{R[13]=G(R[2],21);R[14]=INULL;*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[14];R[15]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[15];R[16]=(word)fp;fp+=3;R[17]=G(R[2],20);*fp=PAIRHDR;fp[1]=R[17];fp[2]=R[16];R[5]=(word)fp;fp+=3;R[19]=G(R[2],2);R[20]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[2],19);fp[2]=R[20];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);ob=(word *)R[19];acc=3;}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 436:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[8];R[4]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 437:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=F(126);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 438:if(acc==3){R[6]=F(62);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[8]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 439:if(acc==1){R[4]=F(47);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(60);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 440:if(acc==4){R[7]=F(62);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;R[9]=F(47);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=F(32);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;R[13]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[12];ob=(word *)R[13];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 441:if(acc==4){R[7]=F(62);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;R[9]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 442:if(acc==1){R[4]=F(60);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 443:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);{word *ob=(word *)R[7];word hdr;assert(allocp(R[7]),R[7],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[4]=G(R[4],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],2);fp[4]=R[3];fp[3]=R[8];fp[2]=R[9];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 444:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[1],2);if(R[7]==IFALSE){ob=(word *)R[6];acc=1;}else{R[8]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[6];R[9]=(word)fp;fp+=3;R[5]=R[3];R[4]=R[7];R[3]=R[9];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 445:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 446:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 447:if(acc==1){R[4]=F(61);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 448:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 449:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=5;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 450:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 451:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 452:if(acc==3){R[6]=G(R[1],4);R[7]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[6];R[8]=(word)fp;fp+=3;R[6]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 453:if(acc==4){R[7]=F(1);R[8]=prim_ref(R[5],R[7]);R[9]=G(R[1],2);if(R[8]==R[9]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];}ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[10]=G(R[1],3);if(R[8]==R[10]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[11]=ob[1];R[12]=ob[2];R[13]=ob[3];}R[14]=G(R[1],4);R[7]=F(0);R[5]=R[12];R[6]=R[13];ob=(word *)R[14];acc=5;}else{R[11]=G(R[1],5);if(R[8]==R[11]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[12]=ob[1];R[13]=ob[2];}R[14]=G(R[1],4);R[6]=INULL;R[7]=F(2);R[5]=R[13];ob=(word *)R[14];acc=5;}else{R[12]=G(R[1],6);if(R[8]==R[12]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[13]=ob[1];R[14]=ob[2];R[15]=ob[3];}R[16]=G(R[1],4);R[5]=R[14];R[6]=R[15];ob=(word *)R[16];acc=5;}else{R[13]=G(R[1],7);if(R[8]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=5),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];R[16]=ob[3];R[17]=ob[4];}R[18]=G(R[1],8);*fp=make_header(5,TCLOS);fp[1]=G(R[1],9);fp[4]=R[3];fp[3]=R[15];fp[2]=R[16];R[3]=(word)fp;fp+=5;*fp=make_header(3,TPROC);fp[1]=G(R[1],10);fp[2]=R[6];R[20]=(word)fp;fp+=3;R[5]=R[4];R[6]=R[17];R[4]=R[20];ob=(word *)R[18];acc=4;}else{R[14]=G(R[1],11);R[4]=G(R[1],12);R[16]=G(R[1],13);R[6]=R[5];R[5]=R[16];ob=(word *)R[14];acc=4;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 454:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=F(2);R[10]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 455:if(acc==5){R[8]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[6]=R[7];ob=(word *)R[8];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 456:if(acc==1){R[4]=G(R[1],2);if(R[4]==INULL){R[5]=G(R[1],4);ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[8]=(word)fp;fp+=6;R[9]=IFALSE;R[10]=R[5];R[4]=R[3];R[5]=R[6];R[3]=R[8];R[6]=R[9];ob=(word *)R[10];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 457:if(acc==1){{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];}R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[2],4);R[12]=G(R[1],2);R[9]=R[6];R[6]=R[12];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 458:if(acc==3){assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[5],2);R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 459:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;if(R[3]==IFALSE){R[8]=G(R[1],2);assert(pairp(R[8]),R[8],1053);R[3]=G(R[8],2);ob=(word *)R[7];acc=1;}else{R[8]=G(R[1],2);assert(pairp(R[8]),R[8],1053);R[4]=G(R[8],2);R[10]=G(R[2],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[7];R[3]=(word)fp;fp+=3;ob=(word *)R[10];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 460:if(acc==2){R[5]=G(R[2],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 461:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 462:if(acc==2){if(R[4]==F(0)){R[5]=F(48);R[6]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[5]=G(R[1],2);R[6]=INULL;R[9]=R[6];R[6]=R[5];R[5]=R[9];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 463:if(acc==4){if(R[4]==F(0)){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=F(10);ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 464:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=F(48);R[8]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 465:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],5);R[7]=G(R[1],4);R[4]=G(R[1],3);R[3]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 466:if(acc==2){if(R[4]==IFALSE){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[5]=G(R[1],2);ob=(word *)R[5];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 467:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[6]=IFALSE;ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 468:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[2],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[3]=G(R[1],5);R[4]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[7];acc=4;}else{assert(pairp(R[3]),R[3],1052);R[4]=G(R[3],1);R[5]=G(R[1],2);R[6]=prim_less(R[5],R[4]);if(R[6]==IFALSE){R[7]=G(R[1],5);R[3]=G(R[1],4);ob=(word *)R[7];acc=1;}else{R[7]=G(R[3],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[6]=(word)fp;fp+=3;R[9]=G(R[2],2);R[3]=G(R[1],5);R[4]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[9];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 469:if(acc==2){R[5]=G(R[1],2);R[6]=INULL;R[8]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 470:if(acc==4){if(R[4]==INULL){R[7]=G(R[1],2);R[4]=R[5];ob=(word *)R[7];acc=2;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=F(1);R[9]=prim_ref(R[7],R[8]);R[10]=G(R[1],3);if(R[9]==R[10]){{word *ob=(word *)R[7];word hdr;assert(allocp(R[7]),R[7],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[11]=ob[1];R[12]=ob[2];}R[4]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[5]=(word)fp;fp+=3;ob=(word *)R[6];acc=4;}else{R[11]=G(R[1],4);if(R[9]==R[11]){{word *ob=(word *)R[7];word hdr;assert(allocp(R[7]),R[7],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[12]=ob[1];R[13]=ob[2];R[14]=ob[3];}R[4]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[5]=(word)fp;fp+=3;ob=(word *)R[6];acc=4;}else{R[12]=G(R[1],5);if(R[9]==R[12]){{word *ob=(word *)R[7];word hdr;assert(allocp(R[7]),R[7],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[13]=ob[1];R[14]=ob[2];}R[15]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[1],7);fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[4]=R[5];R[5]=R[14];ob=(word *)R[15];acc=3;}else{R[4]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[5]=(word)fp;fp+=3;ob=(word *)R[6];acc=4;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 471:if(acc==3){if(R[3]==IFALSE){R[6]=G(R[1],4);assert(pairp(R[6]),R[6],1053);R[7]=G(R[6],2);R[8]=G(R[1],3);R[9]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[5]=(word)fp;fp+=3;R[6]=G(R[1],6);R[3]=G(R[1],5);R[4]=R[7];ob=(word *)R[6];acc=4;}else{{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[6]=ob[1];R[7]=ob[2];R[8]=ob[3];}R[9]=G(R[1],4);assert(pairp(R[9]),R[9],1053);R[10]=G(R[9],2);R[11]=G(R[2],2);*fp=make_header(5,2);fp[1]=R[11];fp[2]=R[7];fp[3]=R[8];fp[4]=R[4];R[12]=(word)fp;fp+=5;*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[6]=G(R[1],6);R[3]=G(R[1],5);R[4]=R[10];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 472:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=INULL;R[5]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 473:if(acc==4){if(R[4]==INULL){R[4]=IFALSE;R[8]=R[3];R[3]=R[4];R[5]=R[4];ob=(word *)R[8];acc=3;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=F(1);R[9]=prim_ref(R[7],R[8]);R[10]=G(R[2],2);if(R[9]==R[10]){R[11]=F(2);R[12]=prim_ref(R[7],R[11]);R[13]=G(R[1],2);if(R[12]==R[13]){R[14]=G(R[4],2);R[8]=R[3];R[4]=R[5];R[3]=R[7];R[5]=R[14];ob=(word *)R[8];acc=3;}else{R[4]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[5]=(word)fp;fp+=3;ob=(word *)R[6];acc=4;}}else{R[4]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[5]=(word)fp;fp+=3;ob=(word *)R[6];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 474:if(acc==2){if(R[4]==IFALSE){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=INULL;R[9]=R[5];R[10]=R[6];R[6]=R[4];R[5]=R[7];R[4]=R[10];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 475:if(acc==3){R[6]=F(1);R[7]=prim_ref(R[4],R[6]);R[8]=G(R[1],2);if(R[7]==R[8]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];}if(R[5]==INULL){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[11]=G(R[5],1);R[12]=prim_ref(R[11],R[6]);if(R[12]==R[8]){{word *ob=(word *)R[11];word hdr;assert(allocp(R[11]),R[11],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[13]=ob[1];R[14]=ob[2];}R[15]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[4]=R[10];R[5]=R[14];ob=(word *)R[15];acc=3;}else{*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[13]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[13];acc=1;}}}else{*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 476:if(acc==1){R[4]=G(R[2],2);*fp=make_header(3,2);fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],2);assert(pairp(R[6]),R[6],1053);R[7]=G(R[6],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=3;R[9]=G(R[1],3);ob=(word *)R[9];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 477:if(acc==4){if(R[5]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 478:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 479:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[4];R[9]=(word)fp;fp+=4;R[4]=R[3];R[5]=R[6];R[6]=R[7];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 480:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],2);R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[2],5);if(R[6]==R[7]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[10]=G(R[1],4);R[3]=G(R[1],3);ob=(word *)R[10];acc=2;}else{R[8]=G(R[2],6);if(R[6]==R[8]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];R[11]=ob[3];}R[12]=G(R[2],7);R[13]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],8);fp[3]=R[13];fp[2]=R[11];R[3]=(word)fp;fp+=4;R[4]=G(R[1],3);R[5]=R[10];ob=(word *)R[12];acc=3;}else{R[9]=G(R[2],9);if(R[6]==R[9]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];R[12]=ob[3];}R[13]=G(R[2],7);R[14]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],10);fp[3]=R[14];fp[2]=R[12];R[3]=(word)fp;fp+=4;R[4]=G(R[1],3);R[5]=R[11];ob=(word *)R[13];acc=3;}else{R[10]=G(R[2],11);if(R[6]==R[10]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[11]=ob[1];R[12]=ob[2];}R[13]=G(R[2],7);R[14]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],12);fp[2]=R[14];R[3]=(word)fp;fp+=3;R[4]=G(R[1],3);R[5]=R[12];ob=(word *)R[13];acc=3;}else{R[11]=G(R[2],2);R[12]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],13);fp[2]=R[12];R[3]=(word)fp;fp+=3;R[14]=G(R[2],14);R[5]=R[4];R[4]=R[14];ob=(word *)R[11];acc=3;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 481:if(acc==2){R[5]=G(R[2],2);*fp=make_header(3,2);fp[1]=R[5];fp[2]=R[4];R[4]=(word)fp;fp+=3;R[7]=G(R[1],2);ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 482:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[4]=G(R[2],4);R[6]=G(R[1],2);R[10]=R[5];R[5]=R[3];R[3]=R[7];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 483:if(acc==3){assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 484:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[6];R[4]=(word)fp;fp+=3;R[8]=G(R[1],3);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 485:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,2);fp[1]=R[5];fp[2]=R[6];fp[3]=R[4];R[4]=(word)fp;fp+=4;R[8]=G(R[1],3);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 486:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[2],3);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 487:if(acc==5){if(R[6]==INULL){R[7]=R[3];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{assert(pairp(R[6]),R[6],1052);R[8]=G(R[6],1);*fp=make_header(6,TCLOS);fp[1]=G(R[1],2);fp[5]=R[3];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 488:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[4];R[9]=(word)fp;fp+=4;R[4]=G(R[1],3);R[5]=R[3];R[3]=R[9];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 489:if(acc==2){R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[4];R[4]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 490:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 491:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],4);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 492:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 493:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 494:if(acc==4){if(R[5]==INULL){R[7]=G(R[2],2);R[5]=INULL;R[6]=G(R[1],2);ob=(word *)R[7];acc=4;}else{assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[5],1);R[9]=G(R[2],3);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[3];fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[6]=G(R[2],5);R[5]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 495:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[10]=(word)fp;fp+=5;R[4]=R[3];R[3]=R[10];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 496:if(acc==4){R[7]=G(R[1],2);if(R[4]==R[7]){R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{if(R[5]==INULL){R[8]=G(R[1],3);R[5]=INULL;R[6]=IFALSE;ob=(word *)R[8];acc=4;}else{assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);R[9]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[1],4);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[6]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 497:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],4);R[7]=G(R[1],3);R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 498:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=IFALSE;R[11]=R[5];R[5]=R[4];R[4]=R[6];R[6]=R[7];R[7]=R[8];R[8]=R[9];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 499:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],3);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],2);R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 500:if(acc==3){if(R[4]==IFALSE){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[6]=F(1);R[7]=prim_ref(R[5],R[6]);R[8]=G(R[1],2);if(R[7]==R[8]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];}*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[10];R[11]=(word)fp;fp+=3;*fp=make_header(3,2);fp[1]=R[8];fp[2]=R[11];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}else{*fp=make_header(3,2);fp[1]=R[8];fp[2]=R[4];R[9]=(word)fp;fp+=3;R[10]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[10];R[11]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[11];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 501:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[5];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],4);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 502:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 503:if(acc==5){R[8]=G(R[2],2);*fp=make_header(3,2);fp[1]=R[8];fp[2]=R[6];R[6]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 504:if(acc==2){R[5]=F(34);if(R[4]==R[5]){R[6]=IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=F(60);if(R[4]==R[6]){R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 505:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[5];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=F(60);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 506:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[2],4);R[5]=G(R[2],5);ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 507:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=F(62);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 508:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(3,2);fp[1]=R[8];fp[2]=R[9];R[6]=(word)fp;fp+=3;R[11]=G(R[1],3);ob=(word *)R[11];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 509:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 510:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=G(R[2],4);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 511:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[10];fp[3]=R[9];fp[2]=R[6];R[11]=(word)fp;fp+=5;R[6]=R[5];R[5]=R[11];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 512:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);R[11]=G(R[1],4);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=G(R[2],4);R[5]=G(R[2],5);ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 513:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[5];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=F(47);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 514:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=F(62);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 515:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[5];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=F(62);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 516:if(acc==5){R[8]=G(R[1],2);R[6]=G(R[2],2);ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 517:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=5;R[6]=G(R[1],3);R[7]=G(R[1],2);R[12]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[12];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 518:if(acc==5){R[8]=G(R[1],3);R[9]=G(R[1],2);*fp=make_header(4,2);fp[1]=R[6];fp[2]=R[8];fp[3]=R[9];R[6]=(word)fp;fp+=4;R[11]=G(R[1],4);ob=(word *)R[11];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 519:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[6];R[10]=(word)fp;fp+=4;R[6]=R[5];R[5]=R[10];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 520:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=IFALSE;ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 521:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[5];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=F(61);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 522:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[9];R[10]=(word)fp;fp+=3;R[6]=R[5];R[5]=R[10];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 523:if(acc==5){R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[3];fp[5]=R[4];fp[4]=R[5];fp[3]=R[7];fp[2]=R[8];R[10]=(word)fp;fp+=8;if(R[6]==IFALSE){R[3]=R[6];ob=(word *)R[10];acc=1;}else{R[11]=G(R[2],2);R[4]=R[6];R[3]=R[10];ob=(word *)R[11];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 524:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],7);R[7]=G(R[1],6);R[8]=G(R[1],5);R[9]=G(R[1],4);R[10]=G(R[1],3);R[11]=R[6];R[6]=R[5];R[3]=R[7];R[4]=R[8];R[5]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 525:if(acc==5){R[8]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[5];R[5]=(word)fp;fp+=3;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 526:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=R[6];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 527:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[6]=G(R[1],3);R[7]=G(R[1],2);R[11]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[11];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 528:if(acc==5){R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[6];R[6]=(word)fp;fp+=3;R[10]=G(R[1],3);ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 529:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[5];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=8;*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[9];R[4]=(word)fp;fp+=3;ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 530:if(acc==2){R[5]=G(R[1],2);R[4]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[2],2);ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 531:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[12]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[11];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 532:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[5];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=F(92);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 533:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 534:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[9];R[10]=(word)fp;fp+=3;R[6]=R[5];R[5]=R[10];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 535:if(acc==5){R[8]=F(92);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[6];R[6]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 536:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 537:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[6]=G(R[1],3);R[7]=G(R[1],2);R[11]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[11];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 538:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[6];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=R[9];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 539:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=5;R[6]=G(R[1],3);R[7]=G(R[1],2);R[12]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[12];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 540:if(acc==5){R[8]=G(R[1],2);R[9]=INULL;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[10]=(word)fp;fp+=3;R[11]=G(R[2],2);R[12]=G(R[1],4);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[12];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);R[5]=R[10];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 541:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 542:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=F(96);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 543:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=F(64);R[9]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=F(123);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 544:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=F(47);R[9]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=F(91);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 545:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=F(58);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 546:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=INULL;R[9]=R[5];R[10]=R[6];R[6]=R[4];R[5]=R[7];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 547:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 548:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[8];R[3]=(word)fp;fp+=3;R[10]=G(R[1],4);ob=(word *)R[10];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 549:if(acc==2){assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 550:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 551:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[4];R[11]=R[7];R[7]=R[3];R[6]=R[5];R[4]=R[8];R[5]=R[9];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 552:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[4];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=6;R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 553:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[8]=R[5];R[4]=R[3];R[3]=R[9];R[5]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 554:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[10];R[6]=(word)fp;fp+=3;R[10]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 555:if(acc==2){R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 556:if(acc==3){assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 557:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[2],2);R[8]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[5]=R[4];R[4]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 558:if(acc==6){assert(pairp(R[5]),R[5],1052);R[9]=G(R[5],1);R[10]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[1],3);fp[7]=R[8];fp[6]=R[3];fp[5]=R[6];fp[4]=R[7];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[5]=F(10);R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 559:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],6);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=F(20);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],2);R[8]=R[4];R[5]=R[6];R[4]=R[11];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 560:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[2],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[3];fp[5]=R[9];fp[4]=R[8];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=F(1);R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 561:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(9,TPROC);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 562:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;R[9]=G(R[1],8);R[3]=G(R[1],7);R[4]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[5]=R[8];R[8]=R[9];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 563:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[4];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[11]=F(10);R[8]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 564:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 565:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[4];fp[5]=R[8];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[8]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 566:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=F(1);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 567:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[10];fp[2]=R[9];R[6]=(word)fp;fp+=4;R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 568:if(acc==2){R[5]=G(R[2],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[4]=G(R[1],3);R[8]=G(R[1],2);R[9]=R[5];R[3]=R[6];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 569:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 570:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[8]=(word)fp;fp+=6;R[5]=F(3);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 571:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=F(3);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],5);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 572:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=F(2);R[11]=R[4];R[6]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 573:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[9]=(word)fp;fp+=6;R[10]=F(10);R[8]=R[5];R[4]=R[3];R[3]=R[9];R[5]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 574:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 575:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=F(2);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 576:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 577:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 578:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[8]=R[4];R[4]=R[3];R[5]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 579:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[1],3);R[10]=G(R[1],2);R[11]=R[5];R[5]=R[10];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 580:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[8]=(word)fp;fp+=6;R[5]=F(2);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 581:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{R[4]=G(R[1],5);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 582:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 583:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 584:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 585:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[6]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 586:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[8]=(word)fp;fp+=5;R[9]=F(10);R[10]=R[5];R[4]=R[3];R[3]=R[8];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 587:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=F(2);R[8]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 588:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[11]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 589:if(acc==2){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[9]=R[6];R[6]=R[4];R[4]=R[5];R[5]=R[7];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 590:if(acc==5){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[8]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=F(1);R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 591:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],5);R[8]=G(R[1],4);R[5]=R[3];R[3]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 592:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[6]=G(R[2],4);R[10]=R[5];R[5]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 593:if(acc==2){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 594:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 595:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[8]=(word)fp;fp+=6;R[5]=F(0);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 596:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[4]=R[9];ob=(word *)R[10];acc=3;}else{R[4]=G(R[1],5);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 597:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[10]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 598:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 599:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 600:if(acc==3){if(R[5]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 601:if(acc==5){if(R[5]==F(0)){ob=(word *)R[6];acc=2;}else{R[8]=F(1);{word r=(fixval(R[5])|(1< */ + case 602:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 603:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 604:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 605:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],3);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[3];fp[5]=R[5];fp[4]=R[6];fp[3]=R[7];fp[2]=R[9];R[3]=(word)fp;fp+=7;R[5]=G(R[1],2);ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 606:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[3];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[11]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 607:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 608:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=G(R[1],4);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 609:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[5]=(word)fp;fp+=3;R[10]=G(R[2],2);R[11]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[11];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);ob=(word *)R[10];acc=3;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 610:if(acc==5){R[8]=G(R[1],2);R[9]=F(1);R[12]=R[9];R[13]=R[5];R[5]=R[4];R[9]=R[8];R[8]=R[12];R[4]=R[13];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 611:if(acc==7){R[10]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[1],3);fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[5];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[5]=G(R[1],4);ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 612:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],4);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=9;if(R[4]==IFALSE){R[12]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[11];R[3]=(word)fp;fp+=3;R[5]=F(2);R[4]=R[8];ob=(word *)R[12];acc=3;}else{R[3]=R[4];ob=(word *)R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 613:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);*fp=make_header(4,2);fp[1]=R[4];fp[2]=R[5];fp[3]=R[6];R[7]=(word)fp;fp+=4;R[8]=INULL;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[10]=G(R[2],2);R[3]=G(R[1],7);R[4]=G(R[1],5);ob=(word *)R[10];acc=3;}else{R[4]=G(R[1],3);R[5]=G(R[1],6);R[6]=G(R[1],7);R[7]=G(R[1],8);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],2);R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 614:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],3);R[9]=G(R[1],4);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[4];fp[4]=R[5];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[4]=G(R[1],2);R[5]=F(1);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 615:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[5];R[5]=R[7];R[7]=R[9];R[9]=R[4];R[4]=R[6];R[6]=R[8];R[8]=R[3];R[3]=R[12];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 616:if(acc==6){R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[8];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[5]=G(R[1],4);R[6]=G(R[1],5);R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 617:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=G(R[1],6);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[9];R[10]=(word)fp;fp+=3;R[11]=R[4];R[12]=R[5];R[5]=R[7];R[7]=R[3];R[4]=R[6];R[6]=R[8];R[8]=R[10];R[3]=R[12];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 618:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[3];fp[5]=R[4];fp[4]=R[6];fp[3]=R[7];fp[2]=R[9];R[3]=(word)fp;fp+=7;R[11]=G(R[2],4);R[4]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 619:if(acc==2){if(R[4]==IFALSE){R[5]=G(R[1],4);R[6]=G(R[1],3);*fp=make_header(4,2);fp[1]=R[3];fp[2]=R[5];fp[3]=R[6];R[7]=(word)fp;fp+=4;R[8]=INULL;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[10]=G(R[2],2);R[3]=G(R[1],6);R[4]=G(R[1],5);ob=(word *)R[10];acc=3;}else{R[5]=G(R[1],2);R[6]=G(R[1],6);R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[4]=R[3];R[3]=R[6];R[6]=R[8];R[8]=R[5];R[5]=R[7];R[7]=R[9];ob=(word *)R[8];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 620:if(acc==5){R[8]=G(R[1],2);ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 621:if(acc==5){R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[5]=G(R[1],4);R[6]=G(R[1],5);R[4]=R[7];ob=(word *)R[8];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 622:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=G(R[2],3);R[11]=R[4];R[12]=R[5];R[5]=R[7];R[7]=R[3];R[4]=R[6];R[6]=R[8];R[8]=R[9];R[3]=R[12];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 623:if(acc==5){*fp=make_header(4,2);fp[1]=R[5];fp[2]=R[6];fp[3]=R[7];R[8]=(word)fp;fp+=4;R[9]=INULL;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[5]=(word)fp;fp+=3;R[11]=G(R[1],2);ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 624:if(acc==6){R[9]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[8];fp[5]=R[6];fp[4]=R[7];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=F(24);ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 625:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[4]=G(R[1],2);R[12]=IFALSE;R[8]=R[5];R[5]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 626:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],7);R[6]=G(R[1],4);R[7]=INULL;R[8]=G(R[1],3);R[9]=G(R[1],6);R[10]=G(R[1],5);R[11]=R[5];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}else{R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],4);R[10]=G(R[1],3);R[7]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 627:if(acc==6){R[9]=G(R[2],2);R[10]=G(R[1],2);R[11]=G(R[1],3);R[12]=G(R[1],4);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[8];fp[9]=R[3];fp[8]=R[4];fp[7]=R[5];fp[6]=R[7];fp[5]=R[12];fp[4]=R[11];fp[3]=R[10];fp[2]=R[6];R[3]=(word)fp;fp+=11;R[4]=R[6];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 628:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],7);R[6]=G(R[1],2);R[7]=G(R[1],6);R[8]=G(R[1],10);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],9);R[12]=G(R[1],5);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=10;R[14]=G(R[1],8);R[8]=R[4];R[5]=R[7];R[4]=R[14];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],2);R[5]=G(R[1],6);R[6]=G(R[1],7);R[7]=G(R[1],8);R[8]=G(R[1],9);R[9]=G(R[1],10);*fp=make_header(7,TPROC);fp[1]=G(R[2],4);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 629:if(acc==2){R[5]=F(0);R[6]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],7);R[13]=G(R[1],8);R[14]=G(R[1],9);*fp=make_header(11,TCLOS);fp[1]=G(R[2],4);fp[10]=R[14];fp[9]=R[13];fp[8]=R[12];fp[7]=R[3];fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[15]=(word)fp;fp+=11;if(R[6]==IFALSE){R[16]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[15];R[3]=(word)fp;fp+=3;R[4]=R[8];ob=(word *)R[16];acc=2;}else{R[3]=R[6];ob=(word *)R[15];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 630:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],7);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[9];R[3]=(word)fp;fp+=3;R[11]=G(R[1],9);ob=(word *)R[11];acc=1;}else{R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],8);R[8]=G(R[1],9);R[9]=G(R[1],10);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=4;R[4]=G(R[1],7);R[12]=G(R[1],6);R[5]=R[6];R[6]=R[12];ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 631:if(acc==4){R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[7];R[11]=R[5];R[7]=R[6];R[6]=R[3];R[5]=R[4];R[3]=R[8];R[4]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 632:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[3];fp[4]=R[8];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);R[5]=F(1);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 633:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[11]=R[6];R[12]=R[5];R[5]=R[7];R[7]=R[3];R[6]=R[8];R[8]=R[4];R[4]=R[11];R[3]=R[12];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 634:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 635:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=G(R[1],4);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 636:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],4);R[3]=G(R[2],4);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 637:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],5);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 638:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[5]=F(10);R[8]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 639:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 640:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[6];acc=1;}else{R[7]=G(R[2],2);R[5]=G(R[2],3);R[3]=R[6];ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 641:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=G(R[2],5);R[9]=G(R[1],2);R[10]=R[4];R[3]=R[6];R[4]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{R[4]=G(R[2],6);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],7);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 642:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{R[4]=G(R[2],5);R[5]=G(R[1],3);R[7]=R[4];R[4]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 643:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 644:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=F(10);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 645:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 646:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[2],4);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 647:if(acc==2){R[5]=G(R[1],2);R[6]=F(10);R[8]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 648:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[8]=(word)fp;fp+=6;R[9]=G(R[2],4);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 649:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[8];acc=1;}else{R[9]=G(R[2],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[11]=G(R[2],4);R[5]=R[4];R[4]=R[11];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 650:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=G(R[2],5);R[9]=G(R[1],3);R[10]=R[4];R[3]=R[6];R[4]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{R[4]=G(R[2],6);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],7);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 651:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 652:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[2],3);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 653:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[6];acc=1;}else{R[7]=G(R[2],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[6];R[3]=(word)fp;fp+=3;ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 654:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],3);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],5);R[8]=G(R[2],6);R[9]=G(R[1],2);R[10]=G(R[2],7);R[11]=R[4];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 655:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 656:if(acc==3){R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[4];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[6];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 657:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=G(R[2],4);R[6]=G(R[2],5);R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 658:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=G(R[2],4);R[11]=R[4];R[6]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 659:if(acc==3){if(R[4]==INULL){R[6]=IFALSE;R[5]=INULL;R[8]=R[3];R[3]=R[6];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 660:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[5],2);R[5]=G(R[4],2);R[9]=G(R[1],4);R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 661:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[5];fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 662:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=5;R[7]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[6];R[3]=(word)fp;fp+=3;ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 663:if(acc==3){R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[5];fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[5]=(word)fp;fp+=7;R[4]=F(1);ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 664:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[5];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=G(R[1],2);R[5]=R[9];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 665:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],3);R[8]=G(R[1],7);R[9]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[2],4);R[5]=F(2);R[8]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],5);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],6);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[5]=G(R[2],7);R[6]=G(R[2],8);R[13]=R[4];R[4]=R[10];ob=(word *)R[13];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 666:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[5]=G(R[2],4);R[6]=G(R[1],2);R[12]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 667:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=G(R[2],4);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 668:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=F(0);R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 669:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],6);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[7];acc=1;}else{R[8]=G(R[1],2);R[9]=INULL;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[10]=(word)fp;fp+=3;R[11]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;R[13]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[12];R[14]=(word)fp;fp+=3;R[15]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[15];fp[2]=R[14];R[16]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[16];R[5]=(word)fp;fp+=3;R[18]=G(R[2],2);R[4]=G(R[2],3);R[3]=R[7];ob=(word *)R[18];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 670:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=F(1);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 671:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 672:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=INULL;R[9]=R[5];R[3]=R[6];R[6]=R[4];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 673:if(acc==3){*fp=make_header(4,TCLOS);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;if(R[5]==INULL){R[3]=R[5];ob=(word *)R[6];acc=1;}else{R[7]=F(46);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=3;ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 674:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 675:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[4];R[5]=(word)fp;fp+=3;*fp=make_header(3,TPROC);fp[1]=G(R[1],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 676:if(acc==3){R[6]=G(R[2],2);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[7]=(word)fp;fp+=5;*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[4];R[4]=(word)fp;fp+=3;R[5]=INULL;R[10]=G(R[1],2);R[11]=R[6];R[3]=R[7];R[6]=R[10];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 677:if(acc==3){if(R[5]==INULL){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[3];fp[4]=R[5];fp[3]=R[4];fp[2]=R[6];R[7]=(word)fp;fp+=6;R[8]=F(37);if(R[4]==R[8]){R[9]=G(R[2],2);R[4]=R[5];R[3]=R[7];ob=(word *)R[9];acc=2;}else{R[3]=IFALSE;ob=(word *)R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 678:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],5);ob=(word *)R[7];acc=1;}else{R[4]=G(R[1],4);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=F(110);R[4]=R[5];R[5]=R[11];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 679:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=F(48);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TCLOS);fp[1]=G(R[2],5);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[2],6);R[6]=F(0);R[11]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 680:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],3);R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 681:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=G(R[2],2);R[11]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[11];fp[3]=R[8];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[9];ob=(word *)R[10];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 682:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[4];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[10]=(word)fp;fp+=7;R[11]=IFALSE;R[8]=R[5];R[4]=R[3];R[3]=R[10];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 683:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[4];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=8;if(R[8]==IFALSE){R[3]=IFALSE;ob=(word *)R[10];acc=1;}else{R[11]=G(R[2],2);R[5]=F(110);R[4]=R[3];R[3]=R[10];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 684:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],5);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],7);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=5;R[4]=G(R[2],4);R[5]=R[6];ob=(word *)R[7];acc=3;}else{R[4]=G(R[2],6);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],7);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=G(R[2],8);R[6]=F(0);R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 685:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=INULL;R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 686:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[8]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 687:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[8]=R[4];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 688:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=F(0);R[5]=F(1);R[12]=R[4];R[6]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 689:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 690:if(acc==2){R[5]=F(48);ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 691:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=G(R[1],2);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 692:if(acc==1){R[4]=G(R[2],6);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[5]=(word)fp;fp+=3;R[10]=G(R[2],2);R[11]=G(R[1],2);R[12]=G(R[1],3);R[13]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[13];fp[3]=R[12];fp[2]=R[11];R[3]=(word)fp;fp+=5;R[4]=G(R[2],4);ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 693:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 694:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 695:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[8]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 696:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],7);fp[6]=R[7];fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=7;if(R[3]==IFALSE){R[9]=G(R[2],6);R[10]=INULL;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[11];R[12]=(word)fp;fp+=3;R[13]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[12];R[5]=(word)fp;fp+=3;R[15]=G(R[2],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[8];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);ob=(word *)R[15];acc=3;}else{R[3]=IFALSE;ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 697:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=G(R[2],4);R[6]=G(R[2],5);R[13]=R[4];R[4]=R[10];ob=(word *)R[13];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 698:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=G(R[2],4);R[6]=G(R[1],2);R[11]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 699:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 700:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=F(1);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 701:if(acc==2){R[5]=G(R[1],2);R[6]=F(0);R[9]=R[6];R[6]=R[5];R[5]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 702:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=IFALSE;ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 703:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],3);R[6]=G(R[1],2);R[3]=R[4];R[4]=R[6];ob=(word *)R[5];acc=2;}else{R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[4];fp[3]=R[3];fp[2]=R[6];R[9]=(word)fp;fp+=7;R[4]=F(48);R[8]=R[5];R[5]=R[3];R[3]=R[9];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 704:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[9]=(word)fp;fp+=7;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[9];acc=1;}else{R[10]=G(R[2],2);R[11]=F(57);R[4]=R[5];R[3]=R[9];R[5]=R[11];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 705:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],5);R[4]=G(R[1],2);ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=F(10);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 706:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=F(48);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 707:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 708:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=4;R[5]=G(R[1],4);R[9]=G(R[1],5);R[10]=R[6];R[3]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 709:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],3);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 710:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 711:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[3];R[8]=(word)fp;fp+=6;R[4]=R[3];R[3]=R[8];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 712:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[8];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[4]=G(R[4],1);R[10]=G(R[2],2);R[3]=R[8];ob=(word *)R[10];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 713:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[2],4);R[5]=IFALSE;R[6]=G(R[1],2);R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 714:if(acc==1){{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];R[6]=ob[3];}R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(7,TPROC);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[4];fp[4]=R[5];fp[3]=R[6];fp[2]=R[7];R[9]=(word)fp;fp+=7;R[10]=G(R[1],2);R[11]=G(R[2],2);if(R[10]==R[11]){R[3]=IFALSE;ob=(word *)R[9];acc=1;}else{R[12]=G(R[2],3);R[3]=R[9];R[4]=R[10];ob=(word *)R[12];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 715:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 716:if(acc==6){R[9]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[9];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 717:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[5]=G(R[1],2);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 718:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[2],4);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 719:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[2],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{assert(pairp(R[3]),R[3],1053);R[4]=G(R[3],2);if(R[4]==INULL){R[5]=G(R[2],3);R[6]=G(R[1],3);R[4]=R[3];R[3]=R[6];ob=(word *)R[5];acc=2;}else{R[5]=G(R[2],4);R[6]=G(R[1],3);R[4]=R[3];R[3]=R[6];ob=(word *)R[5];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 720:if(acc==5){*fp=make_header(6,TCLOS);fp[1]=G(R[1],2);fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=6;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 721:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[4]=G(R[2],4);R[8]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 722:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[10]=(word)fp;fp+=8;if(R[3]==INULL){R[3]=IFALSE;ob=(word *)R[10];acc=1;}else{R[11]=G(R[2],2);R[4]=R[3];R[3]=R[10];ob=(word *)R[11];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 723:if(acc==1){R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[1],4);R[3]=G(R[1],7);R[4]=G(R[2],2);ob=(word *)R[5];acc=2;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[5]=ob[1];R[6]=ob[2];}R[7]=G(R[2],3);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],7);*fp=make_header(10,TCLOS);fp[1]=G(R[2],4);fp[9]=R[12];fp[8]=R[6];fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[5];fp[3]=R[3];fp[2]=R[8];R[3]=(word)fp;fp+=10;R[14]=G(R[2],5);R[4]=R[5];R[5]=R[14];ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 724:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=G(R[2],4);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],5);R[5]=G(R[1],6);R[6]=G(R[1],7);R[7]=G(R[1],8);R[8]=G(R[1],9);*fp=make_header(6,TCLOS);fp[1]=G(R[2],6);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[2],7);R[5]=G(R[1],2);R[6]=IFALSE;R[13]=R[4];R[4]=R[10];ob=(word *)R[13];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 725:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[8]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 726:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[5]=F(1);R[6]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=4;R[4]=G(R[1],3);R[5]=R[6];ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 727:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=G(R[2],4);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[1],6);R[3]=IFALSE;ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],5);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],6);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 728:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],4);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[1],6);R[3]=IFALSE;ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],5);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],6);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 729:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[4]=(word)fp;fp+=3;R[9]=G(R[1],4);R[3]=G(R[1],5);ob=(word *)R[9];acc=2;}else{R[4]=G(R[1],2);R[5]=G(R[2],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],5);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 730:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=R[5];R[5]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 731:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[5];R[6]=(word)fp;fp+=4;R[7]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 732:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[2],4);R[5]=F(0);R[10]=R[4];R[6]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 733:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[7]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 734:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 735:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 736:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 737:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 738:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[9]=R[5];R[5]=R[6];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 739:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[5];R[4]=R[3];R[3]=R[8];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 740:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[10]=R[5];R[4]=R[6];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 741:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 742:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 743:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 744:if(acc==1){R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[2],2);R[3]=G(R[1],6);R[4]=G(R[1],4);ob=(word *)R[5];acc=2;}else{if(R[3]==IFALSE){R[5]=G(R[2],2);R[3]=G(R[1],6);R[4]=G(R[1],5);ob=(word *)R[5];acc=2;}else{R[5]=G(R[2],3);R[6]=G(R[1],3);R[4]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[9];fp[4]=R[8];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[5];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 745:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 746:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[4]=R[7];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 747:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 748:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[10]=(word)fp;fp+=7;R[11]=G(R[2],4);R[8]=R[5];R[4]=R[3];R[3]=R[10];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 749:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[3];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 750:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[5]=G(R[1],3);R[6]=G(R[1],2);R[12]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 751:if(acc==1){R[4]=G(R[2],6);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],5);R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=INULL;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[11];R[12]=(word)fp;fp+=3;R[13]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[12];R[4]=(word)fp;fp+=3;R[15]=G(R[2],2);R[16]=G(R[1],4);R[17]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[17];fp[3]=R[16];fp[2]=R[3];R[3]=(word)fp;fp+=5;ob=(word *)R[15];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 752:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[9]=IFALSE;R[4]=R[5];R[5]=R[9];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 753:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],4);R[3]=G(R[1],2);ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=G(R[1],2);R[10]=IFALSE;R[11]=R[5];R[5]=R[10];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 754:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],4);R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],5);ob=(word *)R[8];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],5);R[7]=G(R[1],2);R[8]=G(R[1],4);R[9]=G(R[1],3);R[11]=R[5];R[5]=R[8];R[8]=R[4];R[4]=R[7];R[7]=R[3];R[3]=R[6];R[6]=R[9];ob=(word *)R[11];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 755:if(acc==7){*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[8];fp[4]=R[4];fp[3]=R[7];fp[2]=R[5];R[10]=(word)fp;fp+=6;R[11]=G(R[1],2);*fp=make_header(9,TCLOS);fp[1]=G(R[1],3);fp[8]=R[3];fp[7]=R[5];fp[6]=R[10];fp[5]=R[9];fp[4]=R[7];fp[3]=R[8];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[5]=F(4);ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 756:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 757:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 758:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[6]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 759:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 760:if(acc==2){if(R[4]==F(0)){R[5]=G(R[1],6);R[3]=G(R[1],8);ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=9;R[4]=G(R[1],2);R[14]=IFALSE;R[8]=R[5];R[5]=R[14];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 761:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],6);R[3]=G(R[1],8);ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[3];fp[4]=R[4];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=10;R[4]=G(R[1],2);R[14]=F(3);R[8]=R[5];R[5]=R[14];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 762:if(acc==2){if(R[4]==F(0)){R[5]=G(R[1],6);R[6]=G(R[1],8);R[7]=G(R[1],9);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[9]=G(R[1],5);R[10]=G(R[1],4);R[7]=G(R[1],3);R[12]=G(R[1],2);R[13]=R[9];R[4]=R[3];R[9]=R[5];R[3]=R[8];R[6]=R[10];R[8]=R[12];R[5]=R[13];ob=(word *)R[9];acc=7;}else{R[5]=G(R[2],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],4);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[4]=G(R[1],2);R[14]=IFALSE;R[8]=R[5];R[5]=R[14];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 763:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],6);R[3]=G(R[1],8);ob=(word *)R[5];acc=1;}else{R[5]=G(R[1],5);R[6]=G(R[1],7);R[7]=G(R[1],8);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[9]=G(R[1],4);R[10]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[3];R[3]=R[8];R[8]=R[4];R[4]=R[9];R[9]=R[5];R[5]=R[10];ob=(word *)R[9];acc=7;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 764:if(acc==6){R[9]=G(R[1],2);ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 765:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 766:if(acc==1){R[4]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 767:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 768:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 769:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[7]=(word)fp;fp+=5;R[8]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 770:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],3);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 771:if(acc==2){R[5]=G(R[2],5);R[6]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=INULL;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[11]=(word)fp;fp+=3;R[12]=G(R[2],2);R[13]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[13];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[11];ob=(word *)R[12];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 772:if(acc==1){R[4]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],8);fp[2]=R[4];R[5]=(word)fp;fp+=3;if(R[3]==IFALSE){R[6]=G(R[2],5);R[7]=INULL;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;R[13]=G(R[2],2);R[4]=G(R[2],3);R[3]=R[5];R[5]=R[12];ob=(word *)R[13];acc=3;}else{R[6]=G(R[2],7);R[7]=INULL;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=G(R[2],6);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;R[13]=G(R[2],2);R[4]=G(R[2],3);R[3]=R[5];R[5]=R[12];ob=(word *)R[13];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 773:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=F(2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 774:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 775:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 776:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=G(R[2],4);R[5]=G(R[2],5);R[6]=G(R[2],6);R[11]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 777:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=4;R[5]=F(32);R[9]=G(R[1],4);R[10]=R[6];R[3]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 778:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[6]=INULL;R[10]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 779:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[8]=(word)fp;fp+=5;R[9]=F(1);R[6]=F(100);R[11]=R[5];R[4]=R[3];R[3]=R[8];R[5]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 780:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=5;R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 781:if(acc==2){if(R[4]==F(0)){R[5]=G(R[1],2);R[6]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],3);ob=(word *)R[8];acc=1;}else{R[5]=G(R[1],2);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[3];R[7]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=3;R[9]=G(R[1],3);ob=(word *)R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 782:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 783:if(acc==5){if(R[5]==F(0)){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[8];acc=2;}else{R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[1],5);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=IFALSE;ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 784:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[4]=G(R[1],2);R[11]=F(1);R[8]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 785:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[2],2);R[6]=R[4]&R[5];R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=G(R[1],6);R[10]=G(R[1],5);R[4]=G(R[1],4);R[5]=R[3];R[6]=R[8];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 786:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=G(R[1],4);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 787:if(acc==2){R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);if(R[7]==IFALSE){R[8]=G(R[2],2);R[3]=R[6];ob=(word *)R[8];acc=2;}else{R[3]=R[4];ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 788:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 789:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[7]=(word)fp;fp+=5;R[4]=G(R[2],4);R[9]=G(R[2],5);R[6]=G(R[2],6);R[11]=R[5];R[3]=R[7];R[5]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 790:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 791:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[5]=G(R[1],4);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 792:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[4];R[4]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 793:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 794:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 795:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 796:if(acc==2){R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=IFALSE;R[9]=F(0);R[5]=R[8];R[8]=R[6];R[6]=R[4];R[4]=R[3];R[3]=R[7];R[7]=R[9];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 797:if(acc==6){R[9]=G(R[2],2);R[10]=G(R[1],2);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[3];fp[7]=R[5];fp[6]=R[4];fp[5]=R[7];fp[4]=R[10];fp[3]=R[8];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[5]=R[6];R[4]=R[10];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 798:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[12]=(word)fp;fp+=10;R[7]=R[4];R[4]=R[3];R[3]=R[12];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 799:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[1],8);R[6]=G(R[1],9);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],5);R[9]=G(R[2],2);if(R[8]==R[9]){R[3]=IFALSE;ob=(word *)R[7];acc=1;}else{R[10]=G(R[2],3);R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=2;}}else{if(immediatep(R[4])){R[5]=IFALSE;}else{word h=V(R[4]);R[5]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[6]=G(R[1],3);if(R[5]==R[6]){R[7]=G(R[2],5);R[8]=G(R[1],7);R[9]=G(R[1],9);R[10]=G(R[1],6);R[11]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],6);fp[5]=R[11];fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=6;R[13]=G(R[1],8);R[5]=R[4];R[4]=R[13];ob=(word *)R[7];acc=3;}else{R[7]=G(R[2],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],9);R[11]=G(R[1],4);*fp=make_header(8,TCLOS);fp[1]=G(R[2],7);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[13]=G(R[1],8);R[5]=R[4];R[4]=R[13];ob=(word *)R[7];acc=3;}}}else{R[4]=G(R[1],6);R[5]=G(R[1],7);R[6]=G(R[1],8);R[7]=G(R[1],9);*fp=make_header(6,TCLOS);fp[1]=G(R[2],8);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;R[9]=G(R[1],5);R[10]=G(R[2],2);if(R[9]==R[10]){R[3]=IFALSE;ob=(word *)R[8];acc=1;}else{R[11]=G(R[2],3);R[3]=R[8];R[4]=R[9];ob=(word *)R[11];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 800:if(acc==1){R[4]=G(R[1],4);if(R[4]==IFALSE){R[5]=G(R[2],2);R[6]=G(R[1],5);R[4]=G(R[1],3);R[8]=G(R[1],2);R[9]=R[5];R[3]=R[6];R[5]=R[8];ob=(word *)R[9];acc=3;}else{if(immediatep(R[4])){R[5]=IFALSE;}else{word h=V(R[4]);R[5]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[6]=G(R[2],3);R[7]=G(R[1],3);R[8]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[8];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 801:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 802:if(acc==1){R[4]=G(R[1],2);if(immediatep(R[4])){R[5]=IFALSE;}else{word h=V(R[4]);R[5]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 803:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[11]=R[5];R[5]=R[7];R[7]=R[8];R[8]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[11];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 804:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 805:if(acc==2){R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=7;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[8];R[3]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 806:if(acc==1){R[4]=G(R[1],2);if(immediatep(R[4])){R[5]=IFALSE;}else{word h=V(R[4]);R[5]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[3];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[4]=G(R[1],3);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 807:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=IFALSE;R[8]=G(R[1],2);R[11]=R[6];R[12]=R[5];R[5]=R[7];R[7]=R[3];R[6]=R[8];R[8]=R[4];R[4]=R[11];R[3]=R[12];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 808:if(acc==1){R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[1],3);R[3]=INULL;ob=(word *)R[5];acc=1;}else{R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 809:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[8]=F(1);R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 810:if(acc==2){if(R[4]==F(0)){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=F(1);R[6]=F(16);R[10]=R[5];R[4]=R[3];R[3]=R[7];R[5]=R[8];ob=(word *)R[10];acc=4;}else{R[5]=G(R[1],2);R[3]=INULL;ob=(word *)R[5];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 811:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=F(1);R[9]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 812:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 813:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[2],4);R[9]=R[5];R[6]=R[4];R[4]=R[3];R[3]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 814:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[6];R[3]=(word)fp;fp+=3;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 815:if(acc==1){R[4]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 816:if(acc==3){if(R[4]==IFALSE){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[4]=G(R[1],4);R[9]=INULL;R[10]=R[6];R[6]=R[5];R[3]=R[7];R[5]=R[9];ob=(word *)R[10];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 817:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 818:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 819:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[2],4);R[9]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 820:if(acc==4){if(R[5]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{if(R[6]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[7];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 821:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[9]=G(R[1],2);R[10]=R[6];R[6]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 822:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 823:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 824:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[2],3);R[3]=G(R[1],4);R[4]=G(R[1],3);R[6]=G(R[2],2);R[5]=R[7];R[7]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 825:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[5]=F(0);R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 826:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=F(8);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 827:if(acc==2){if(R[4]==F(0)){R[5]=G(R[2],2);R[6]=G(R[1],4);R[7]=G(R[1],2);R[8]=R[5];R[4]=R[3];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[5]=G(R[2],3);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[9];fp[5]=R[8];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=G(R[2],5);R[12]=INULL;R[9]=R[5];R[5]=R[12];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 828:if(acc==1){if(R[3]==INULL){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],3);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 829:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 830:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[10]=R[5];R[5]=R[7];R[7]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 831:if(acc==3){assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 832:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 833:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 834:if(acc==4){R[7]=G(R[2],2);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);R[6]=IFALSE;ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 835:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 836:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 837:if(acc==2){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[5]=ob[1];R[6]=ob[2];}R[7]=G(R[2],2);R[8]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[6];R[9]=(word)fp;fp+=4;R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 838:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[5];R[4]=R[3];R[3]=R[7];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 839:if(acc==2){R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 840:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[9]=R[5];R[10]=R[6];R[6]=R[4];R[5]=R[7];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 841:if(acc==3){if(R[5]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[5],2);R[5]=G(R[5],1);R[9]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[6]=INULL;ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 842:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],5);R[4]=G(R[1],4);R[9]=G(R[1],3);R[10]=R[6];R[6]=R[5];R[3]=R[7];R[5]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 843:if(acc==3){if(R[4]==INULL){R[6]=INULL;ob=(word *)R[3];R[3]=R[6];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[6]=G(R[4],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[5];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 844:if(acc==2){R[5]=G(R[1],2);ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 845:if(acc==5){if(R[4]==R[5]){ob=(word *)R[3];R[3]=R[6];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[8]=G(R[4],1);R[4]=G(R[4],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[8];R[3]=(word)fp;fp+=4;ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 846:if(acc==4){R[7]=G(R[1],2);ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 847:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=F(12);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 848:if(acc==2){if(R[4]==F(0)){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=G(R[1],2);R[9]=F(1);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{R[5]=F(1);if(R[4]==R[5]){R[6]=G(R[2],4);R[7]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],5);fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=G(R[1],2);ob=(word *)R[6];acc=3;}else{R[6]=F(2);if(R[4]==R[6]){R[7]=G(R[1],3);R[4]=F(0);ob=(word *)R[7];acc=2;}else{R[7]=F(3);if(R[4]==R[7]){R[8]=G(R[1],3);R[4]=R[5];ob=(word *)R[8];acc=2;}else{R[8]=F(4);if(R[4]==R[8]){R[9]=G(R[2],6);R[10]=G(R[1],3);R[5]=G(R[2],7);R[4]=R[3];R[3]=R[10];ob=(word *)R[9];acc=3;}else{R[9]=F(5);if(R[4]==R[9]){R[10]=G(R[2],6);R[11]=G(R[1],3);R[5]=G(R[2],7);R[4]=R[3];R[3]=R[11];ob=(word *)R[10];acc=3;}else{R[10]=F(6);if(R[4]==R[10]){R[11]=G(R[2],6);R[12]=G(R[1],3);R[5]=G(R[2],7);R[4]=R[3];R[3]=R[12];ob=(word *)R[11];acc=3;}else{R[11]=F(7);if(R[4]==R[11]){R[12]=G(R[2],6);R[13]=G(R[1],2);R[14]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],8);fp[3]=R[14];fp[2]=R[13];R[15]=(word)fp;fp+=4;R[5]=G(R[2],7);R[4]=R[3];R[3]=R[15];ob=(word *)R[12];acc=3;}else{R[12]=F(8);if(R[4]==R[12]){R[13]=G(R[2],6);R[14]=G(R[1],2);R[15]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],9);fp[3]=R[15];fp[2]=R[14];R[16]=(word)fp;fp+=4;R[5]=G(R[2],7);R[4]=R[3];R[3]=R[16];ob=(word *)R[13];acc=3;}else{R[13]=F(9);if(R[4]==R[13]){R[14]=G(R[2],10);R[4]=G(R[1],2);R[16]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],11);fp[4]=R[16];fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[5]=R[6];ob=(word *)R[14];acc=3;}else{R[14]=G(R[2],12);R[15]=G(R[1],2);R[16]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],13);fp[3]=R[16];fp[2]=R[15];R[17]=(word)fp;fp+=4;R[6]=G(R[2],14);R[4]=R[3];R[3]=R[17];ob=(word *)R[14];acc=4;}}}}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 849:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[9]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 850:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[8]=(word)fp;fp+=5;R[9]=F(3);R[10]=R[5];R[4]=R[3];R[3]=R[8];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 851:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=6;if(R[4]==F(0)){R[3]=G(R[2],2);ob=(word *)R[8];acc=1;}else{R[3]=G(R[2],3);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 852:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[4]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[3];R[3]=R[6];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 853:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 854:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 855:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 856:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 857:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 858:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 859:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[3];fp[5]=R[8];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=G(R[2],4);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 860:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[2],4);R[8]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],5);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],6);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 861:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 862:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=G(R[2],4);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 863:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 864:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=G(R[2],4);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 865:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[5]=G(R[1],2);R[6]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 866:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 867:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[5];R[5]=R[6];R[6]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 868:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 869:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[8]=R[4];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 870:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[6];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 871:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 872:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[5]=F(2);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 873:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=F(1);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],5);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 874:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[5]=F(10);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 875:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[7]=(word)fp;fp+=5;R[5]=F(0);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 876:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 877:if(acc==1){R[4]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[9];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 878:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[5]=(word)fp;fp+=3;R[9]=G(R[2],2);R[10]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[10];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=F(1);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],3);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 879:if(acc==3){assert(pairp(R[4]),R[4],1052);R[6]=G(R[4],1);assert(pairp(R[5]),R[5],1052);R[5]=G(R[5],1);R[8]=G(R[1],2);R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 880:if(acc==4){if(R[4]==INULL){R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=F(1);R[9]=prim_ref(R[7],R[8]);R[10]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 881:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],3);R[4]=R[5];R[3]=R[7];R[5]=R[8];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=F(2);R[3]=prim_ref(R[5],R[6]);R[8]=G(R[1],5);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 882:if(acc==4){if(R[5]==F(0)){R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[4]==INULL){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[7]=G(R[4],2);R[8]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[10]=F(1);R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 883:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[6];R[10]=R[5];R[5]=R[3];R[6]=R[4];R[4]=R[9];R[3]=R[10];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 884:if(acc==3){R[6]=G(R[1],2);ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 885:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=5;R[8]=IFALSE;R[9]=R[6];R[3]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 886:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=F(1);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{R[4]=G(R[2],3);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=F(1);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 887:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 888:if(acc==5){R[8]=prim_sys(fixval(R[4]), R[5], R[6], R[7]);ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 889:if(acc==3){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 890:if(acc==2){assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 891:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 892:if(acc==3){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 893:if(acc==2){assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 894:if(acc==3){R[6]=G(R[1],2);R[7]=INULL;R[8]=IFALSE;R[11]=R[7];R[7]=R[8];R[8]=R[6];R[6]=R[11];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 895:if(acc==6){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];}if(R[10]==INULL){if(R[7]==IFALSE){R[11]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[5]=R[9];ob=(word *)R[11];acc=3;}else{R[11]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[5]=R[9];ob=(word *)R[11];acc=3;}}else{R[11]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[1],7);fp[6]=R[8];fp[5]=R[3];fp[4]=R[10];fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[5]=IFALSE;ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 896:if(acc==2){R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=prim_less(R[3],R[7]);R[9]=G(R[1],6);R[3]=G(R[1],5);R[5]=G(R[1],4);R[7]=R[8];R[8]=R[9];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 897:if(acc==2){R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[4]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 898:if(acc==3){R[6]=G(R[1],2);if(R[5]==R[6]){R[7]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],4);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=R[4];ob=(word *)R[7];acc=3;}else{R[7]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[1],6);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[9]=F(1);R[4]=R[5];R[5]=R[9];ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 899:if(acc==2){R[5]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 900:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[4];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 901:if(acc==2){R[5]=G(R[2],4);if(R[3]==R[5]){R[6]=G(R[1],3);R[7]=F(0);R[3]=R[4];R[4]=R[7];ob=(word *)R[6];acc=2;}else{R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[4];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[4]=G(R[1],2);R[5]=R[3];R[3]=R[8];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 902:if(acc==2){R[5]=G(R[1],3);R[6]=G(R[1],2);R[4]=R[3];R[3]=R[6];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 903:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=F(1);ob=(word *)R[6];acc=3;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}R[7]=F(40);if(R[6]==R[7]){R[8]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[10]=G(R[1],6);R[6]=INULL;R[5]=R[4];R[4]=R[10];ob=(word *)R[8];acc=4;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];R[10]=ob[3];}R[11]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[1],8);fp[5]=R[3];fp[4]=R[9];fp[3]=R[8];fp[2]=R[10];R[3]=(word)fp;fp+=6;R[4]=R[9];R[5]=R[10];ob=(word *)R[11];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 904:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);if(R[4]==IFALSE){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[4]=G(R[2],4);R[10]=G(R[1],4);R[6]=INULL;R[12]=R[5];R[5]=R[10];ob=(word *)R[12];acc=4;}else{R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],5);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[4]=G(R[2],4);R[10]=G(R[1],4);R[6]=INULL;R[12]=R[5];R[5]=R[10];ob=(word *)R[12];acc=4;}}else{R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],7);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[1],3);if(R[7]==IFALSE){R[3]=G(R[2],6);ob=(word *)R[6];acc=1;}else{R[3]=G(R[2],4);ob=(word *)R[6];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 905:if(acc==1){R[4]=G(R[1],2);*fp=NUMHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[4]=G(R[2],4);R[10]=INULL;R[11]=R[6];R[6]=R[10];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 906:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[5]=G(R[2],4);R[8]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 907:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[2],4);R[8]=INULL;R[9]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 908:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],3);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 909:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],3);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 910:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=R[7];R[5]=R[3];R[7]=R[4];R[3]=R[6];R[6]=R[9];R[4]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 911:if(acc==2){R[5]=F(93);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[8]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 912:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[1],4);R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=F(93);R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[11]=G(R[2],4);R[12]=G(R[1],3);R[13]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[13];fp[5]=R[4];fp[4]=R[12];fp[3]=R[6];fp[2]=R[9];R[3]=(word)fp;fp+=7;R[15]=G(R[2],6);R[6]=R[5];R[4]=R[10];R[5]=R[15];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 913:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],2);R[7]=G(R[1],5);R[8]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],4);R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=F(125);R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[11]=G(R[2],4);R[12]=G(R[1],3);R[13]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[13];fp[5]=R[4];fp[4]=R[12];fp[3]=R[6];fp[2]=R[9];R[3]=(word)fp;fp+=7;R[15]=G(R[2],6);R[6]=R[5];R[4]=R[10];R[5]=R[15];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 914:if(acc==1){R[4]=F(123);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(35);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 915:if(acc==1){R[4]=F(91);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(35);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 916:if(acc==2){if(R[4]==INULL){R[5]=G(R[1],2);ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=INULL;R[8]=F(0);R[9]=ITRUE;R[12]=R[5];R[13]=R[8];R[3]=R[6];R[5]=R[7];R[6]=R[7];R[8]=R[9];R[7]=R[13];R[9]=R[13];ob=(word *)R[12];acc=7;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 917:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}R[7]=F(15);if(R[6]==R[7]){R[8]=F(12);{uint64_t r=(uint64_t)fixval(R[5])<<(FBITS-fixval(R[8]));R[9]=F(r>>FBITS);R[10]=F(r&FMAX);}R[11]=F(2);{word res=fixval(R[9])+fixval(R[11]);R[13]=BOOL(res&(1<>TPOS)&63);}R[10]=G(R[1],2);R[4]=G(R[1],4);ob=(word *)R[10];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 918:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(32);if(R[7]==R[8]){R[9]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[9];acc=2;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}R[10]=F(41);if(R[9]==R[10]){R[11]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],4);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[11];acc=2;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[11]=F((ob>>TPOS)&63);}if(R[11]==R[8]){R[12]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],5);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[12];acc=2;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[10]){R[13]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],6);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[13];acc=2;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==F(0)){R[14]=G(R[1],7);ob=(word *)R[14];acc=3;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[14]=F((ob>>TPOS)&63);}if(R[14]==F(0)){R[15]=G(R[1],7);ob=(word *)R[15];acc=3;}else{if(R[4]==R[5]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[15]=G(R[1],8);ob=(word *)R[15];acc=3;}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 919:if(acc==3){R[6]=F(1);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[9]=G(R[1],2);R[6]=F(0);R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 920:if(acc==3){if(R[5]==F(0)){R[6]=G(R[1],2);R[7]=G(R[1],3);R[9]=R[6];R[6]=R[5];R[5]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=INULL;ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 921:if(acc==3){if(R[4]==INULL){R[6]=F(0);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[6]=ob[1];R[7]=ob[2];}if(R[7]==INULL){ob=(word *)R[3];R[3]=R[6];acc=1;}else{if(R[6]==F(0)){R[4]=R[7];ob=(word *)R[5];acc=3;}else{R[8]=G(R[1],2);R[5]=INULL;ob=(word *)R[8];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 922:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(5);R[7]=(R[6]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 923:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],5);R[5]=F(23);if(R[4]==R[5]){R[6]=G(R[1],2);R[7]=G(R[6],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[11];fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[12]=(word)fp;fp+=6;R[13]=G(R[7],2);if(R[13]==INULL){R[3]=G(R[7],1);ob=(word *)R[12];acc=1;}else{R[3]=R[7];ob=(word *)R[12];acc=1;}}else{R[6]=G(R[1],6);R[7]=F(1);{uint64_t res=(uint64_t)fixval(R[6])<>FBITS);R[9]=F(res&FMAX);}{word res=fixval(R[4])+fixval(R[7]);R[11]=BOOL(res&(1< */ + case 924:if(acc==5){{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=F(0);ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=G(R[4],2);R[10]=G(R[5],2);if(R[9]==INULL){if(R[10]==INULL){R[11]=G(R[5],1);R[12]=G(R[1],2);if(R[11]==R[12]){if(R[6]==F(0)){R[13]=F(0);ob=(word *)R[3];R[3]=R[13];acc=1;}else{R[13]=G(R[4],1);R[14]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[13];R[3]=(word)fp;fp+=4;R[5]=F(1);R[4]=R[6];ob=(word *)R[14];acc=3;}}else{R[13]=G(R[4],1);R[14]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[1],6);fp[4]=R[3];fp[3]=R[6];fp[2]=R[13];R[3]=(word)fp;fp+=5;R[5]=F(1);R[4]=R[11];ob=(word *)R[14];acc=3;}}else{R[11]=F(0);ob=(word *)R[3];R[3]=R[11];acc=1;}}else{if(R[10]==INULL){R[11]=G(R[4],2);R[12]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[1],7);fp[5]=R[7];fp[4]=R[3];fp[3]=R[11];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=F(24);R[4]=R[6];ob=(word *)R[12];acc=3;}else{R[4]=G(R[4],2);R[5]=G(R[5],2);ob=(word *)R[7];acc=5;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 925:if(acc==4){if(R[4]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=F(0);R[9]=F(24);{uint64_t a=((uint64_t)fixval(R[8]))<>FBITS);R[11]=F(q&FMAX);R[12]=F(a-q*b);}{word ob=R[4];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==F(0)){{uint64_t res=(uint64_t)fixval(R[4])<>FBITS);R[15]=F(res&FMAX);}if(R[14]==F(0)){if(R[11]==F(0)){ob=(word *)R[3];R[3]=R[15];acc=1;}else{R[16]=INULL;*fp=NUMHDR;fp[1]=R[15];fp[2]=R[16];R[4]=(word)fp;fp+=3;R[18]=G(R[1],2);R[5]=R[11];ob=(word *)R[18];acc=3;}}else{if(R[11]==F(0)){R[16]=INULL;*fp=NUMHDR;fp[1]=R[14];fp[2]=R[16];R[17]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[15];fp[2]=R[17];R[18]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[18];acc=1;}else{R[16]=INULL;*fp=NUMHDR;fp[1]=R[14];fp[2]=R[16];R[17]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[15];fp[2]=R[17];R[4]=(word)fp;fp+=3;R[19]=G(R[1],2);R[5]=R[11];ob=(word *)R[19];acc=3;}}}else{R[14]=F(32);if(R[13]==R[14]){{uint64_t res=(uint64_t)fixval(R[4])<>FBITS);R[16]=F(res&FMAX);}if(R[15]==F(0)){if(R[11]==F(0)){R[17]=prim_cast((word *)R[16],fixval(R[14])&63);ob=(word *)R[3];R[3]=R[17];acc=1;}else{R[17]=INULL;*fp=NUMHDR;fp[1]=R[16];fp[2]=R[17];R[4]=(word)fp;fp+=3;R[19]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=R[11];ob=(word *)R[19];acc=3;}}else{R[17]=INULL;*fp=NUMHDR;fp[1]=R[15];fp[2]=R[17];R[18]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[16];fp[2]=R[18];R[4]=(word)fp;fp+=3;R[20]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],4);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=R[11];ob=(word *)R[20];acc=3;}}else{R[15]=F(40);if(R[13]==R[15]){R[16]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[1],6);fp[3]=R[3];fp[2]=R[11];R[3]=(word)fp;fp+=4;R[6]=R[8];R[5]=R[12];ob=(word *)R[16];acc=4;}else{R[16]=F(41);if(R[13]==R[16]){R[17]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[1],7);fp[3]=R[3];fp[2]=R[11];R[3]=(word)fp;fp+=4;R[6]=R[8];R[5]=R[12];ob=(word *)R[17];acc=4;}else{R[17]=G(R[1],8);R[18]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[18];ob=(word *)R[17];acc=4;}}}}}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(40);if(R[8]==R[9]){*fp=make_header(5,TCLOS);fp[1]=G(R[1],10);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=G(R[1],11);ob=(word *)R[6];acc=4;}else{R[10]=G(R[1],8);R[11]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=4;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 926:if(acc==4){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=F(0);R[9]=F(24);{uint64_t a=((uint64_t)fixval(R[8]))<>FBITS);R[11]=F(q&FMAX);R[12]=F(a-q*b);}if(R[11]==F(0)){{word ob=R[4];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==F(0)){{uint64_t r=(uint64_t)fixval(R[4])<<(FBITS-fixval(R[12]));R[14]=F(r>>FBITS);R[15]=F(r&FMAX);}ob=(word *)R[3];R[3]=R[14];acc=1;}else{R[14]=F(32);if(R[13]==R[14]){{uint64_t r=(uint64_t)fixval(R[4])<<(FBITS-fixval(R[12]));R[15]=F(r>>FBITS);R[16]=F(r&FMAX);}if(R[15]==F(0)){ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[17]=G(R[1],2);R[4]=R[15];ob=(word *)R[17];acc=2;}}else{R[15]=F(40);if(R[13]==R[15]){R[16]=G(R[1],3);R[5]=R[12];ob=(word *)R[16];acc=3;}else{R[16]=F(41);if(R[13]==R[16]){R[17]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],4);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=R[12];ob=(word *)R[17];acc=3;}else{R[17]=G(R[1],5);R[18]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[18];ob=(word *)R[17];acc=4;}}}}}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==F(0)){ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[14]=F(32);if(R[13]==R[14]){ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[15]=F(40);if(R[13]==R[15]){R[16]=G(R[1],7);*fp=make_header(4,TCLOS);fp[1]=G(R[1],8);fp[3]=R[3];fp[2]=R[12];R[3]=(word)fp;fp+=4;R[5]=R[11];ob=(word *)R[16];acc=3;}else{R[16]=F(41);if(R[13]==R[16]){R[17]=G(R[1],7);*fp=make_header(4,TCLOS);fp[1]=G(R[1],9);fp[3]=R[3];fp[2]=R[12];R[3]=(word)fp;fp+=4;R[5]=R[11];ob=(word *)R[17];acc=3;}else{R[17]=G(R[1],5);R[18]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[18];ob=(word *)R[17];acc=4;}}}}}}else{R[8]=F(40);if(R[7]==R[8]){if(R[4]==F(0)){R[9]=F(0);ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=G(R[4],2);R[10]=G(R[1],10);*fp=make_header(5,TPROC);fp[1]=G(R[1],11);fp[4]=R[6];fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=5;R[12]=F(24);R[4]=R[5];R[5]=R[12];ob=(word *)R[10];acc=3;}}else{R[9]=G(R[1],5);R[10]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 927:if(acc==3){{word ob=R[5];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}R[7]=F(42);if(R[6]==R[7]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[10]=F(1);if(R[8]==R[10]){R[11]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=R[9];ob=(word *)R[11];acc=3;}else{R[11]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[8];R[3]=(word)fp;fp+=4;R[5]=R[9];ob=(word *)R[11];acc=3;}}else{R[8]=F(32);if(R[6]==R[8]){R[9]=IFALSE;R[7]=R[3];R[3]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{R[9]=F(41);if(R[6]==R[9]){R[10]=IFALSE;R[7]=R[3];R[3]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{if(R[5]==F(0)){R[10]=IFALSE;R[7]=R[3];R[3]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{R[10]=ITRUE;R[7]=R[3];R[3]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 928:if(acc==3){if(R[5]==F(0)){R[6]=F(0);R[7]=R[3];R[3]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[8]=F(1);R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 929:if(acc==3){if(R[5]==F(0)){R[6]=F(0);R[7]=R[3];R[3]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){R[7]=G(R[1],2);ob=(word *)R[7];acc=3;}else{R[7]=F(40);if(R[6]==R[7]){R[8]=G(R[1],3);ob=(word *)R[8];acc=3;}else{R[8]=G(R[1],4);R[4]=G(R[1],5);ob=(word *)R[8];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 930:if(acc==3){if(R[4]==INULL){R[6]=F(0);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[6]=ob[1];R[7]=ob[2];}if(R[6]==F(0)){R[4]=R[7];ob=(word *)R[5];acc=3;}else{if(R[7]==INULL){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[8]=INULL;*fp=NUMHDR;fp[1]=R[6];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[10]=G(R[1],2);R[4]=R[7];ob=(word *)R[10];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 931:if(acc==1){{word ob=R[3];if(allocp(ob))ob=V(ob);R[4]=F((ob>>TPOS)&63);}if(R[4]==F(0)){R[5]=G(R[1],2);ob=(word *)R[5];acc=1;}else{{word ob=R[3];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(32);if(R[5]==R[6]){R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}else{{word ob=R[3];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(40);if(R[7]==R[8]){R[9]=G(R[1],2);ob=(word *)R[9];acc=1;}else{{word ob=R[3];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}R[10]=F(41);if(R[9]==R[10]){R[11]=G(R[1],2);ob=(word *)R[11];acc=1;}else{R[11]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[11];acc=1;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 932:if(acc==6){if(R[7]==F(0)){R[9]=G(R[1],3);ob=(word *)R[9];acc=4;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[3];fp[5]=R[10];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[7];R[7]=(word)fp;fp+=4;ob=(word *)R[9];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 933:if(acc==6){if(R[7]==F(0)){R[9]=G(R[1],3);ob=(word *)R[9];acc=4;}else{R[9]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[7];R[7]=(word)fp;fp+=4;ob=(word *)R[9];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 934:if(acc==3){{word ob=R[5];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){*fp=make_header(5,TCLOS);fp[1]=G(R[1],2);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=5;{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(19);if(R[8]==R[9]){if(immediatep(R[4])){R[10]=IFALSE;}else{word h=V(R[4]);R[10]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[11]=F(4);R[3]=(R[11]==R[10])?ITRUE:IFALSE;ob=(word *)R[7];acc=1;}else{R[3]=IFALSE;ob=(word *)R[7];acc=1;}}else{R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 935:if(acc==4){if(immediatep(R[4])){R[7]=IFALSE;}else{word h=V(R[4]);R[7]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(R[7]==F(0)){R[8]=ITRUE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{*fp=make_header(6,TCLOS);fp[1]=G(R[1],2);fp[5]=R[6];fp[4]=R[5];fp[3]=R[7];fp[2]=R[4];R[4]=(word)fp;fp+=6;ob=(word *)R[4];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 936:if(acc==1){R[4]=G(R[1],3);if(R[3]==R[4]){R[5]=G(R[1],6);R[3]=ITRUE;ob=(word *)R[5];acc=1;}else{if(R[3]==F(0)){R[5]=G(R[2],2);R[6]=G(R[1],6);R[7]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[4]=G(R[2],4);R[10]=F(2);R[11]=R[5];R[5]=R[10];ob=(word *)R[11];acc=3;}else{if(R[3]==IFALSE){R[5]=G(R[1],6);R[3]=IFALSE;ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],5);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(5,TPROC);fp[1]=G(R[2],6);fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=5;R[4]=G(R[1],2);R[8]=R[5];R[5]=R[3];R[3]=R[9];ob=(word *)R[8];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 937:if(acc==6){if(R[6]==F(0)){{word ob=R[4];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}R[10]=F(14);if(R[9]==R[10]){R[11]=F(1);R[12]=prim_set(R[4],R[11],R[7]);ob=(word *)R[3];R[3]=R[12];acc=1;}else{ob=(word *)R[3];R[3]=R[7];acc=1;}}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];R[11]=ob[3];}R[12]=G(R[1],2);*fp=make_header(9,TCLOS);fp[1]=G(R[1],3);fp[8]=R[3];fp[7]=R[4];fp[6]=R[8];fp[5]=R[10];fp[4]=R[7];fp[3]=R[11];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[14]=F(1);R[4]=R[5];R[5]=R[14];ob=(word *)R[12];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 938:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);if(R[5]==IFALSE){R[6]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[6];acc=1;}else{R[6]=G(R[1],3);R[7]=(immediatep(R[6]))?IFALSE:F(hdrsize(V(R[6]))-1);if(R[5]==R[7]){{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}{word ob=R[6];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[8]==R[9]){if(immediatep(R[4])){R[10]=IFALSE;}else{word h=V(R[4]);R[10]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(R[10]==IFALSE){R[11]=G(R[2],2);R[3]=G(R[1],4);R[13]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[13];R[14]=(word)fp;fp+=3;R[7]=R[5];R[5]=R[6];R[6]=R[14];ob=(word *)R[11];acc=5;}else{if(immediatep(R[4])){R[11]=IFALSE;}else{word h=V(R[4]);R[11]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(immediatep(R[6])){R[12]=IFALSE;}else{word h=V(R[6]);R[12]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(R[11]==R[12]){if(R[11]==F(0)){R[13]=G(R[1],4);R[3]=ITRUE;ob=(word *)R[13];acc=1;}else{R[13]=G(R[2],4);R[14]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[14];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[5]=F(1);R[4]=R[11];ob=(word *)R[13];acc=3;}}else{R[13]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[13];acc=1;}}}else{R[10]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[10];acc=1;}}else{R[8]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[8];acc=1;}}}else{R[4]=G(R[2],6);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],7);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 939:if(acc==5){R[8]=prim_ref(R[4],R[6]);R[9]=prim_ref(R[5],R[6]);if(R[8]==R[9]){if(R[6]==F(0)){R[10]=ITRUE;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[10]=F(1);{word r=(fixval(R[6])|(1< */ + case 940:if(acc==6){if(R[7]==F(0)){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=prim_ref(R[4],R[7]);R[10]=prim_ref(R[5],R[7]);*fp=make_header(8,TPROC);fp[1]=G(R[1],2);fp[7]=R[8];fp[6]=R[3];fp[5]=R[4];fp[4]=R[5];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=R[9];R[5]=R[10];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 941:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],2);if(R[4]==F(0)){R[5]=G(R[1],4);R[3]=INULL;ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[9]=F(1);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=F(1);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 942:if(acc==5){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[10]=F(1);R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 943:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(15);if(R[7]==R[8]){R[9]=F(1);R[4]=prim_ref(R[4],R[9]);ob=(word *)R[6];acc=4;}else{R[9]=F(19);if(R[7]==R[9]){if(immediatep(R[4])){R[10]=IFALSE;}else{word h=V(R[4]);R[10]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(R[10]==F(0)){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[11]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=F(1);R[4]=R[10];ob=(word *)R[11];acc=3;}}else{ob=(word *)R[3];R[3]=R[5];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 944:if(acc==5){if(R[5]==F(0)){R[8]=prim_ref(R[4],R[5]);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[6];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[8]=F(1);{word r=(fixval(R[5])|(1< */ + case 945:if(acc==2){if(immediatep(R[4])){R[5]=IFALSE;}else{word h=V(R[4]);R[5]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(R[5]==F(0)){R[6]=INULL;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[8]=F(1);R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 946:if(acc==5){if(R[5]==F(0)){R[8]=prim_ref(R[4],R[5]);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[6];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[8]=prim_ref(R[4],R[5]);R[9]=F(1);{word r=(fixval(R[5])|(1< */ + case 947:if(acc==5){if(R[4]==INULL){R[8]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=R[6];ob=(word *)R[8];acc=2;}else{if(R[5]==F(0)){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[8];acc=2;}else{assert(pairp(R[4]),R[4],1053);R[8]=G(R[4],2);R[9]=G(R[1],5);*fp=make_header(7,TPROC);fp[1]=G(R[1],6);fp[6]=R[7];fp[5]=R[3];fp[4]=R[8];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[11]=F(1);R[4]=R[5];R[5]=R[11];ob=(word *)R[9];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 948:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){R[6]=G(R[1],2);R[7]=R[4]&R[6];R[8]=(R[4]==R[7])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[6]=IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 949:if(acc==3){{word ob=R[5];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(19);if(R[7]==R[8]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[9]=G(R[1],3);R[10]=prim_less(R[5],R[9]);if(R[10]==IFALSE){R[11]=G(R[1],2);ob=(word *)R[11];acc=3;}else{ob=(word *)R[3];R[3]=R[4];acc=1;}}}else{R[7]=F(40);if(R[6]==R[7]){R[8]=G(R[1],4);ob=(word *)R[8];acc=3;}else{R[8]=G(R[1],5);R[4]=G(R[1],6);ob=(word *)R[8];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 950:if(acc==3){{word ob=R[5];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(19);if(R[7]==R[8]){R[9]=prim_ref(R[4],R[5]);ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=G(R[1],5);R[10]=prim_less(R[5],R[9]);if(R[10]==IFALSE){R[11]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=3;}else{R[11]=G(R[1],4);ob=(word *)R[11];acc=3;}}}else{R[7]=F(40);if(R[6]==R[7]){R[8]=G(R[1],6);ob=(word *)R[8];acc=3;}else{R[8]=G(R[1],7);R[4]=G(R[1],8);ob=(word *)R[8];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 951:if(acc==5){if(R[6]==F(0)){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[8];acc=2;}else{assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[4];R[9]=(word)fp;fp+=3;R[10]=G(R[5],2);R[11]=G(R[1],4);*fp=make_header(6,TPROC);fp[1]=G(R[1],5);fp[5]=R[7];fp[4]=R[3];fp[3]=R[9];fp[2]=R[10];R[3]=(word)fp;fp+=6;R[5]=F(1);R[4]=R[6];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 952:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],4);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=F(1);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 953:if(acc==5){if(R[6]==F(0)){R[8]=prim_ref(R[4],R[6]);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[5];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[8]=prim_ref(R[4],R[6]);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[7];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[9]=(word)fp;fp+=6;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 954:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],4);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=F(0);R[10]=R[4];R[11]=R[5];R[5]=R[7];R[7]=R[3];R[4]=R[6];R[6]=R[8];R[3]=R[11];ob=(word *)R[10];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 955:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],4);R[7]=R[5]&R[6];if(R[7]==F(0)){R[4]=G(R[4],2);R[7]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}else{R[8]=G(R[1],5);R[9]=R[5]&R[8];R[10]=G(R[1],2);if(R[10]==R[9]){R[4]=G(R[4],2);R[12]=F(31);R[13]=R[12]&R[5];R[14]=G(R[1],3);R[5]=F(1);R[7]=R[6];R[6]=R[13];ob=(word *)R[14];acc=5;}else{R[11]=G(R[1],7);R[12]=R[11]&R[5];if(R[8]==R[12]){R[4]=G(R[4],2);R[14]=F(15);R[6]=R[14]&R[5];R[16]=G(R[1],3);R[5]=F(2);R[7]=G(R[1],6);ob=(word *)R[16];acc=5;}else{R[13]=G(R[1],9);R[14]=R[13]&R[5];if(R[11]==R[14]){R[4]=G(R[4],2);R[16]=F(7);R[6]=R[16]&R[5];R[18]=G(R[1],3);R[5]=F(3);R[7]=G(R[1],8);ob=(word *)R[18];acc=5;}else{R[15]=IFALSE;R[7]=R[3];R[3]=R[15];ob=(word *)R[7];acc=2;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 956:if(acc==6){if(R[5]==F(0)){R[9]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[6];R[5]=R[7];ob=(word *)R[9];acc=3;}else{if(R[4]==INULL){R[9]=IFALSE;R[7]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{R[9]=G(R[1],4);*fp=make_header(8,TCLOS);fp[1]=G(R[1],5);fp[7]=R[8];fp[6]=R[3];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=8;ob=(word *)R[9];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 957:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){R[6]=ITRUE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}R[7]=F(40);if(R[6]==R[7]){R[8]=G(R[1],2);R[5]=G(R[1],3);ob=(word *)R[8];acc=3;}else{R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 958:if(acc==4){if(R[5]==F(0)){R[7]=F(1);ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(1);if(R[5]==R[7]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[8]=F(2);if(R[5]==R[8]){R[9]=G(R[1],2);R[5]=R[4];ob=(word *)R[9];acc=3;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[7];ob=(word *)R[10];acc=3;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}R[11]=F(40);if(R[10]==R[11]){R[12]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[7];ob=(word *)R[12];acc=3;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=F(32);if(R[12]==R[13]){R[14]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[1],7);fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[14];acc=2;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[14]=F((ob>>TPOS)&63);}R[15]=F(41);if(R[14]==R[15]){R[16]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[1],8);fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[16];acc=2;}else{R[16]=G(R[1],9);R[17]=G(R[1],10);R[6]=R[5];R[5]=R[4];R[4]=R[17];ob=(word *)R[16];acc=4;}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 959:if(acc==5){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=F(1);R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 960:if(acc==1){if(R[3]==F(0)){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[1],3);R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[8]=R[4];R[4]=R[6];R[5]=R[6];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 961:if(acc==5){if(R[4]==INULL){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[8];acc=2;}else{if(R[6]==F(0)){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[8];acc=2;}else{assert(pairp(R[4]),R[4],1053);R[8]=G(R[4],2);R[9]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[5];R[10]=(word)fp;fp+=3;R[11]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[1],6);fp[5]=R[7];fp[4]=R[3];fp[3]=R[8];fp[2]=R[10];R[3]=(word)fp;fp+=6;R[5]=F(1);R[4]=R[6];ob=(word *)R[11];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 962:if(acc==4){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{if(R[4]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[7]=G(R[4],2);R[8]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[10]=F(1);R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 963:if(acc==4){if(R[5]==F(0)){R[7]=INULL;ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[4]==INULL){R[7]=INULL;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=G(R[4],2);R[9]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[8];R[3]=(word)fp;fp+=6;R[11]=F(1);R[4]=R[5];R[5]=R[11];ob=(word *)R[9];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 964:if(acc==5){if(R[5]==F(0)){*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[4];R[8]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[8];acc=1;}else{if(R[4]==INULL){R[8]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[8];acc=3;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[10]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[1],5);fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[12]=F(1);R[4]=R[5];R[5]=R[12];ob=(word *)R[10];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 965:if(acc==5){if(R[5]==F(0)){ob=(word *)R[6];acc=2;}else{if(R[4]==INULL){R[8]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[8];acc=3;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];}R[10]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[1],5);fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[12]=F(1);R[4]=R[5];R[5]=R[12];ob=(word *)R[10];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 966:if(acc==4){if(R[4]==INULL){R[7]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[7];acc=3;}else{if(R[5]==F(0)){assert(pairp(R[4]),R[4],1053);R[7]=G(R[4],2);ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=G(R[4],2);R[9]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[1],5);fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[8];R[3]=(word)fp;fp+=6;R[11]=F(1);R[4]=R[5];R[5]=R[11];ob=(word *)R[9];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 967:if(acc==5){if(R[4]==INULL){R[8]=G(R[1],2);R[4]=G(R[1],3);R[5]=R[6];ob=(word *)R[8];acc=3;}else{if(R[5]==F(0)){assert(pairp(R[4]),R[4],1053);R[8]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[8];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[8]=G(R[4],1);R[9]=G(R[4],2);R[10]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[1],5);fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[12]=F(1);R[4]=R[5];R[5]=R[12];ob=(word *)R[10];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 968:if(acc==4){if(R[4]==INULL){R[7]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[7];acc=3;}else{if(R[5]==F(0)){assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[7]=G(R[4],2);R[8]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[1],5);fp[4]=R[6];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[10]=F(1);R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 969:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[6]=F(32);if(R[5]==R[6]){R[7]=F(0);R[8]=prim_cast((word *)R[4],fixval(R[7])&63);ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[7]=F(40);if(R[5]==R[7]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[8]=F(41);if(R[5]==R[8]){R[9]=G(R[4],1);R[10]=G(R[4],2);*fp=NUMHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[9]=F(42);if(R[5]==R[9]){R[10]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;ob=(word *)R[10];acc=2;}else{R[10]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[10];R[11]=(word)fp;fp+=3;R[12]=G(R[1],6);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[5]=(word)fp;fp+=3;R[14]=G(R[1],4);R[4]=G(R[1],5);ob=(word *)R[14];acc=3;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 970:if(acc==4){if(R[5]==F(0)){R[7]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[8]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[5]=(word)fp;fp+=3;R[12]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[12];acc=3;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(43);if(R[7]==R[8]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==R[8]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];}{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[12]=ob[1];R[13]=ob[2];}R[14]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[1],6);fp[7]=R[3];fp[6]=R[6];fp[5]=R[10];fp[4]=R[13];fp[3]=R[11];fp[2]=R[12];R[3]=(word)fp;fp+=8;R[4]=R[12];R[5]=R[12];ob=(word *)R[14];acc=3;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];}R[12]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[1],7);fp[6]=R[3];fp[5]=R[6];fp[4]=R[11];fp[3]=R[5];fp[2]=R[10];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[12];acc=3;}}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==R[8]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];}R[12]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[1],8);fp[6]=R[3];fp[5]=R[6];fp[4]=R[4];fp[3]=R[11];fp[2]=R[10];R[3]=(word)fp;fp+=7;R[4]=R[10];R[5]=R[10];ob=(word *)R[12];acc=3;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}R[11]=F(42);if(R[10]==R[11]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[11]){R[13]=G(R[4],1);R[14]=G(R[5],2);R[15]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[1],9);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[13];R[5]=R[14];ob=(word *)R[15];acc=3;}else{R[13]=G(R[4],1);R[4]=G(R[4],2);R[15]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[1],10);fp[3]=R[3];fp[2]=R[13];R[3]=(word)fp;fp+=4;ob=(word *)R[15];acc=3;}}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[11]){R[13]=G(R[5],2);R[14]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[1],11);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[13];ob=(word *)R[14];acc=3;}else{R[13]=G(R[1],12);ob=(word *)R[13];acc=3;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 971:if(acc==4){if(R[4]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[5]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[9]=F((word)(res&FMAX));R[10]=F((word)(res>>FBITS));}if(R[10]==F(0)){ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[11]=INULL;*fp=NUMHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[9];fp[2]=R[12];R[13]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[13];acc=1;}}else{R[9]=F(40);if(R[8]==R[9]){R[10]=G(R[1],2);R[6]=F(0);ob=(word *)R[10];acc=4;}else{R[10]=F(32);if(R[8]==R[10]){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[11]=F((word)(res&FMAX));R[12]=F((word)(res>>FBITS));}*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[13]=(word)fp;fp+=3;if(R[12]==F(0)){R[3]=R[11];ob=(word *)R[13];acc=1;}else{R[14]=INULL;*fp=NUMHDR;fp[1]=R[12];fp[2]=R[14];R[15]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[11];fp[2]=R[15];R[3]=(word)fp;fp+=3;ob=(word *)R[13];acc=1;}}else{R[11]=F(41);if(R[8]==R[11]){R[12]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],4);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);ob=(word *)R[12];acc=4;}else{R[12]=F(42);if(R[8]==R[12]){R[13]=G(R[5],1);*fp=make_header(4,TCLOS);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[13];ob=(word *)R[6];acc=4;}else{R[13]=F(43);if(R[8]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],6);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[15];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],7);R[15]=G(R[1],8);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[8]=F(32);if(R[7]==R[8]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[10]=F((word)(res&FMAX));R[11]=F((word)(res>>FBITS));}*fp=make_header(3,TPROC);fp[1]=G(R[1],9);fp[2]=R[3];R[12]=(word)fp;fp+=3;if(R[11]==F(0)){R[3]=R[10];ob=(word *)R[12];acc=1;}else{R[13]=INULL;*fp=NUMHDR;fp[1]=R[11];fp[2]=R[13];R[14]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[10];fp[2]=R[14];R[3]=(word)fp;fp+=3;ob=(word *)R[12];acc=1;}}else{R[10]=F(40);if(R[9]==R[10]){R[11]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],10);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);ob=(word *)R[11];acc=4;}else{if(R[9]==R[8]){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[11]=F((word)(res&FMAX));R[12]=F((word)(res>>FBITS));}if(R[12]==F(0)){ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[13]=INULL;*fp=NUMHDR;fp[1]=R[12];fp[2]=R[13];R[14]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[11];fp[2]=R[14];R[15]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[15];acc=1;}}else{R[11]=F(41);if(R[9]==R[11]){R[12]=G(R[1],2);R[6]=F(0);ob=(word *)R[12];acc=4;}else{R[12]=F(42);if(R[9]==R[12]){R[13]=G(R[5],1);*fp=make_header(4,TCLOS);fp[1]=G(R[1],11);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[13];ob=(word *)R[6];acc=4;}else{R[13]=F(43);if(R[9]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],12);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[15];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],7);R[15]=G(R[1],8);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[9]=F(40);if(R[7]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],2);R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{if(R[10]==R[9]){R[11]=G(R[1],13);ob=(word *)R[11];acc=3;}else{if(R[10]==R[8]){R[11]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],14);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{R[11]=F(41);if(R[10]==R[11]){R[12]=G(R[1],13);*fp=make_header(3,TPROC);fp[1]=G(R[1],15);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[12];acc=3;}else{R[12]=F(42);if(R[10]==R[12]){R[13]=G(R[5],1);*fp=make_header(4,TCLOS);fp[1]=G(R[1],16);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[13];ob=(word *)R[6];acc=4;}else{R[13]=F(43);if(R[10]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],17);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[15];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],7);R[15]=G(R[1],8);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[10]=F(41);if(R[7]==R[10]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[11]=F((ob>>TPOS)&63);}if(R[11]==F(0)){R[12]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],18);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{if(R[11]==R[9]){R[12]=G(R[1],13);*fp=make_header(3,TPROC);fp[1]=G(R[1],19);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[12];acc=3;}else{if(R[11]==R[8]){R[12]=G(R[1],2);R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{if(R[11]==R[10]){R[12]=G(R[1],13);ob=(word *)R[12];acc=3;}else{R[12]=F(42);if(R[11]==R[12]){R[13]=G(R[5],1);*fp=make_header(4,TCLOS);fp[1]=G(R[1],20);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[13];ob=(word *)R[6];acc=4;}else{R[13]=F(43);if(R[11]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],21);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[15];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],7);R[15]=G(R[1],8);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[11]=F(42);if(R[7]==R[11]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[11]){R[13]=G(R[4],1);R[14]=G(R[5],1);*fp=make_header(6,TCLOS);fp[1]=G(R[1],22);fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[13];R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[13]=F(43);if(R[12]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],23);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[15];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[4],1);*fp=make_header(4,TCLOS);fp[1]=G(R[1],24);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[14];ob=(word *)R[6];acc=4;}}}else{R[12]=F(43);if(R[7]==R[12]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==R[12]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[16]=ob[1];R[17]=ob[2];}*fp=make_header(8,TCLOS);fp[1]=G(R[1],25);fp[7]=R[3];fp[6]=R[6];fp[5]=R[14];fp[4]=R[17];fp[3]=R[15];fp[2]=R[16];R[3]=(word)fp;fp+=8;R[4]=R[14];R[5]=R[16];ob=(word *)R[6];acc=4;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],26);fp[5]=R[3];fp[4]=R[6];fp[3]=R[15];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=R[14];ob=(word *)R[6];acc=4;}}else{R[13]=G(R[1],7);R[14]=G(R[1],27);R[6]=R[5];R[5]=R[4];R[4]=R[14];ob=(word *)R[13];acc=4;}}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 972:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){{word r=(fixval(R[4])|(1<>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],10);ob=(word *)R[10];acc=3;}else{if(R[9]==R[8]){{word r=(fixval(R[5])|(1<>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],12);R[6]=ITRUE;ob=(word *)R[11];acc=4;}else{if(R[10]==R[8]){R[11]=G(R[1],4);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[11];acc=3;}else{if(R[10]==R[9]){R[11]=G(R[1],15);ob=(word *)R[11];acc=3;}else{R[11]=F(41);if(R[10]==R[11]){R[12]=G(R[1],16);R[6]=IFALSE;ob=(word *)R[12];acc=4;}else{R[12]=F(42);if(R[10]==R[12]){R[13]=G(R[5],2);R[14]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[1],17);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[13];R[3]=(word)fp;fp+=6;R[5]=R[13];ob=(word *)R[14];acc=3;}else{R[13]=F(43);if(R[10]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TCLOS);fp[1]=G(R[1],18);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],8);R[15]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[10]=F(41);if(R[7]==R[10]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[11]=F((ob>>TPOS)&63);}if(R[11]==F(0)){R[12]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[1],19);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[12];acc=3;}else{if(R[11]==R[8]){R[12]=G(R[1],3);R[6]=ITRUE;R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{if(R[11]==R[9]){R[12]=G(R[1],16);*fp=make_header(3,TPROC);fp[1]=G(R[1],20);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=IFALSE;ob=(word *)R[12];acc=4;}else{if(R[11]==R[10]){R[12]=G(R[1],15);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[12];acc=3;}else{R[12]=F(42);if(R[11]==R[12]){R[13]=G(R[5],2);R[14]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[1],21);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[13];R[3]=(word)fp;fp+=6;R[5]=R[13];ob=(word *)R[14];acc=3;}else{R[13]=F(43);if(R[11]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TCLOS);fp[1]=G(R[1],22);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],8);R[15]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[11]=F(42);if(R[7]==R[11]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[11]){R[13]=G(R[4],2);R[14]=G(R[5],2);if(R[13]==R[14]){R[4]=G(R[4],1);R[5]=G(R[5],1);R[17]=G(R[1],23);*fp=make_header(4,TCLOS);fp[1]=G(R[1],24);fp[3]=R[3];fp[2]=R[13];R[3]=(word)fp;fp+=4;ob=(word *)R[17];acc=3;}else{R[4]=G(R[4],1);R[16]=G(R[5],1);R[17]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[1],25);fp[5]=R[3];fp[4]=R[13];fp[3]=R[14];fp[2]=R[16];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[17];acc=3;}}else{R[13]=F(43);if(R[12]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TCLOS);fp[1]=G(R[1],26);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[4],1);R[15]=G(R[4],2);R[16]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[1],27);fp[4]=R[3];fp[3]=R[4];fp[2]=R[14];R[3]=(word)fp;fp+=5;R[4]=R[5];R[5]=R[15];ob=(word *)R[16];acc=3;}}}else{R[12]=F(43);if(R[7]==R[12]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==R[12]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[16]=ob[1];R[17]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],28);fp[5]=R[3];fp[4]=R[6];fp[3]=R[15];fp[2]=R[17];R[3]=(word)fp;fp+=6;R[4]=R[14];R[5]=R[16];ob=(word *)R[6];acc=4;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TPROC);fp[1]=G(R[1],29);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[4]=R[14];ob=(word *)R[6];acc=4;}}else{R[13]=G(R[1],8);R[14]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[14];ob=(word *)R[13];acc=4;}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 973:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){{word res=fixval(R[4])+fixval(R[5]);R[10]=BOOL(res&(1<>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],3);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{if(R[9]==R[8]){R[10]=G(R[1],10);R[6]=IFALSE;ob=(word *)R[10];acc=4;}else{R[10]=F(32);if(R[9]==R[10]){R[11]=G(R[1],11);R[6]=ITRUE;ob=(word *)R[11];acc=4;}else{R[11]=F(41);if(R[9]==R[11]){R[12]=G(R[1],12);ob=(word *)R[12];acc=3;}else{R[12]=F(42);if(R[9]==R[12]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[13]=ob[1];R[14]=ob[2];}R[15]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[1],13);fp[5]=R[3];fp[4]=R[14];fp[3]=R[6];fp[2]=R[13];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[15];acc=3;}else{R[13]=F(43);if(R[9]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TPROC);fp[1]=G(R[1],14);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],8);R[15]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[9]=F(32);if(R[7]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){{word r=(fixval(R[5])|(1<>TPOS)&63);}if(R[11]==F(0)){R[12]=G(R[1],4);R[6]=ITRUE;R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{if(R[11]==R[9]){R[12]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],19);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[12];acc=3;}else{if(R[11]==R[8]){R[12]=G(R[1],12);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[12];acc=3;}else{if(R[11]==R[10]){R[12]=G(R[1],10);*fp=make_header(3,TPROC);fp[1]=G(R[1],20);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=IFALSE;ob=(word *)R[12];acc=4;}else{R[12]=F(42);if(R[11]==R[12]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[13]=ob[1];R[14]=ob[2];}R[15]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[1],21);fp[5]=R[3];fp[4]=R[14];fp[3]=R[6];fp[2]=R[13];R[3]=(word)fp;fp+=6;R[5]=R[14];ob=(word *)R[15];acc=3;}else{R[13]=F(43);if(R[11]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TPROC);fp[1]=G(R[1],22);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[1],8);R[15]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[15];ob=(word *)R[14];acc=4;}}}}}}}else{R[11]=F(42);if(R[7]==R[11]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[11]){R[13]=G(R[4],2);R[14]=G(R[5],2);if(R[13]==R[14]){R[4]=G(R[4],1);R[5]=G(R[5],1);*fp=make_header(4,TCLOS);fp[1]=G(R[1],23);fp[3]=R[3];fp[2]=R[13];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=4;}else{R[4]=G(R[4],1);R[16]=G(R[5],1);R[17]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[1],24);fp[6]=R[3];fp[5]=R[13];fp[4]=R[14];fp[3]=R[6];fp[2]=R[16];R[3]=(word)fp;fp+=7;R[5]=R[14];ob=(word *)R[17];acc=3;}}else{R[13]=F(43);if(R[12]==R[13]){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TPROC);fp[1]=G(R[1],25);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[14]=G(R[4],1);R[15]=G(R[4],2);R[16]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[1],26);fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[14];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[15];ob=(word *)R[16];acc=3;}}}else{R[12]=F(43);if(R[7]==R[12]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==R[12]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[16]=ob[1];R[17]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],27);fp[5]=R[3];fp[4]=R[6];fp[3]=R[15];fp[2]=R[17];R[3]=(word)fp;fp+=6;R[4]=R[14];R[5]=R[16];ob=(word *)R[6];acc=4;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[14]=ob[1];R[15]=ob[2];}*fp=make_header(4,TPROC);fp[1]=G(R[1],28);fp[3]=R[3];fp[2]=R[15];R[3]=(word)fp;fp+=4;R[4]=R[14];ob=(word *)R[6];acc=4;}}else{R[13]=G(R[1],8);R[14]=G(R[1],9);R[6]=R[5];R[5]=R[4];R[4]=R[14];ob=(word *)R[13];acc=4;}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 974:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);*fp=make_header(3,43);fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 975:if(acc==3){{word ob=R[5];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=F(0);{uint64_t a=((uint64_t)fixval(R[8]))<>FBITS);R[10]=F(q&FMAX);R[11]=F(a-q*b);}if(R[11]==F(0)){ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[12]=IFALSE;ob=(word *)R[3];R[3]=R[12];acc=1;}}else{R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}}else{R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 976:if(acc==5){assert(pairp(R[4]),R[4],1053);R[8]=G(R[4],2);assert(pairp(R[5]),R[5],1053);R[9]=G(R[5],2);if(R[8]==F(0)){R[10]=G(R[1],2);R[5]=R[6];R[4]=R[9];ob=(word *)R[10];acc=3;}else{if(R[9]==F(0)){R[10]=G(R[1],2);R[5]=R[6];R[4]=R[8];ob=(word *)R[10];acc=3;}else{R[10]=G(R[4],1);R[11]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[1],4);fp[8]=R[7];fp[7]=R[3];fp[6]=R[6];fp[5]=R[9];fp[4]=R[5];fp[3]=R[8];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=R[8];R[5]=R[10];ob=(word *)R[11];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 977:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],4);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[9];fp[4]=R[4];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],5);ob=(word *)R[6];acc=3;}else{R[4]=G(R[1],4);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],4);fp[8]=R[12];fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[4];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=R[9];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 978:if(acc==1){if(R[3]==F(0)){R[4]=G(R[2],2);R[5]=G(R[1],6);R[6]=G(R[1],2);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],4);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],4);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],5);fp[7]=R[12];fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=G(R[2],6);R[15]=F(0);R[9]=R[6];R[6]=R[15];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 979:if(acc==1){if(R[3]==F(0)){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],4);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 980:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],2);if(R[5]==R[6]){R[7]=G(R[4],2);{word ob=R[7];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=F(1);R[10]=F(0);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[9]=G(R[7],2);R[10]=G(R[9],2);if(R[10]==INULL){R[11]=G(R[9],1);R[12]=F(1);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[13]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[13];acc=1;}else{R[11]=F(1);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[9];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}}}else{R[7]=F(1);{uint64_t res=(uint64_t)fixval(R[5])<>FBITS);R[9]=F(res&FMAX);}R[10]=G(R[4],2);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 981:if(acc==4){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[7]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 982:if(acc==3){if(R[5]==F(0)){R[6]=G(R[1],2);R[7]=G(R[1],3);R[9]=R[6];R[6]=R[5];R[5]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=F(0);{uint64_t a=((uint64_t)fixval(R[8]))<>FBITS);R[10]=F(q&FMAX);R[11]=F(a-q*b);}R[7]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[7];acc=2;}else{R[8]=F(40);if(R[7]==R[8]){R[9]=F(0);R[7]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{R[9]=F(32);if(R[7]==R[9]){R[10]=F(0);{uint64_t a=((uint64_t)fixval(R[10]))<>FBITS);R[12]=F(q&FMAX);R[13]=F(a-q*b);}R[14]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[13];R[3]=(word)fp;fp+=4;R[4]=R[12];ob=(word *)R[14];acc=2;}else{R[10]=F(41);if(R[7]==R[10]){R[11]=F(0);R[7]=R[3];R[3]=R[11];ob=(word *)R[7];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[7]=F(40);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=G(R[1],6);*fp=make_header(3,TPROC);fp[1]=G(R[1],7);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[9];acc=3;}else{if(R[8]==R[7]){R[9]=G(R[1],8);ob=(word *)R[9];acc=3;}else{R[9]=F(32);if(R[8]==R[9]){R[10]=G(R[1],6);*fp=make_header(3,TCLOS);fp[1]=G(R[1],9);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[10];acc=3;}else{R[10]=F(41);if(R[8]==R[10]){R[11]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],10);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[11];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[8]=F(32);if(R[6]==R[8]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){R[10]=F(0);{uint64_t a=((uint64_t)fixval(R[10]))<>FBITS);R[12]=F(q&FMAX);R[13]=F(a-q*b);}R[14]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],11);fp[3]=R[3];fp[2]=R[13];R[3]=(word)fp;fp+=4;R[4]=R[12];ob=(word *)R[14];acc=2;}else{if(R[9]==R[8]){R[10]=F(0);{uint64_t a=((uint64_t)fixval(R[10]))<>FBITS);R[12]=F(q&FMAX);R[13]=F(a-q*b);}R[14]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[1],12);fp[3]=R[3];fp[2]=R[12];R[3]=(word)fp;fp+=4;R[4]=R[13];ob=(word *)R[14];acc=2;}else{if(R[9]==R[7]){R[10]=F(0);R[7]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{R[10]=F(41);if(R[9]==R[10]){R[11]=F(0);R[7]=R[3];R[3]=R[11];ob=(word *)R[7];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[9]=F(41);if(R[6]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],6);*fp=make_header(3,TCLOS);fp[1]=G(R[1],13);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[11];acc=3;}else{if(R[10]==R[8]){R[11]=G(R[1],6);*fp=make_header(3,TCLOS);fp[1]=G(R[1],14);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[11];acc=3;}else{if(R[10]==R[7]){R[11]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],15);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=2;}else{if(R[10]==R[9]){R[11]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],16);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[10]=G(R[1],2);R[11]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=4;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 983:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=F(0);{uint64_t a=((uint64_t)fixval(R[8]))<>FBITS);R[10]=F(q&FMAX);R[11]=F(a-q*b);}ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[8]=F(32);if(R[7]==R[8]){R[9]=F(0);{uint64_t a=((uint64_t)fixval(R[9]))<>FBITS);R[11]=F(q&FMAX);R[12]=F(a-q*b);}ob=(word *)R[3];R[3]=R[12];acc=1;}else{R[9]=F(40);if(R[7]==R[9]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[10]=F(41);if(R[7]==R[10]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[7]=F(32);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=F(0);{uint64_t a=((uint64_t)fixval(R[9]))<>FBITS);R[11]=F(q&FMAX);R[12]=F(a-q*b);}R[13]=G(R[1],4);R[4]=R[12];ob=(word *)R[13];acc=2;}else{if(R[8]==R[7]){R[9]=F(0);{uint64_t a=((uint64_t)fixval(R[9]))<>FBITS);R[11]=F(q&FMAX);R[12]=F(a-q*b);}R[13]=G(R[1],4);R[4]=R[12];ob=(word *)R[13];acc=2;}else{R[9]=F(40);if(R[8]==R[9]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[10]=F(41);if(R[8]==R[10]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[8]=F(40);if(R[6]==R[8]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[1],6);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[10];acc=3;}else{if(R[9]==R[7]){R[10]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[1],7);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[10];acc=3;}else{if(R[9]==R[8]){R[10]=G(R[1],8);ob=(word *)R[10];acc=3;}else{R[10]=F(41);if(R[9]==R[10]){R[11]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],9);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[11];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[9]=F(41);if(R[6]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[1],10);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[11];acc=3;}else{if(R[10]==R[7]){R[11]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[1],11);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[11];acc=3;}else{if(R[10]==R[8]){R[11]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],12);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=2;}else{if(R[10]==R[9]){R[11]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[1],13);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],14);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[10]=G(R[1],2);R[11]=G(R[1],14);R[6]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=4;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 984:if(acc==3){if(R[5]==F(0)){R[6]=G(R[1],2);R[7]=G(R[1],3);R[9]=R[6];R[6]=R[5];R[5]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=F(0);{uint64_t a=((uint64_t)fixval(R[8]))<>FBITS);R[10]=F(q&FMAX);R[11]=F(a-q*b);}ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[8]=F(32);if(R[7]==R[8]){R[9]=G(R[1],4);ob=(word *)R[9];acc=3;}else{R[9]=F(40);if(R[7]==R[9]){R[10]=F(0);ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[10]=F(41);if(R[7]==R[10]){R[11]=F(0);ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[7]=F(32);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=G(R[1],4);ob=(word *)R[9];acc=3;}else{if(R[8]==R[7]){R[9]=F(0);{uint64_t a=((uint64_t)fixval(R[9]))<>FBITS);R[11]=F(q&FMAX);R[12]=F(a-q*b);}ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[9]=F(40);if(R[8]==R[9]){R[10]=F(0);ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[10]=F(41);if(R[8]==R[10]){R[11]=F(0);ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[8]=F(40);if(R[6]==R[8]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[1],6);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[10];acc=3;}else{if(R[9]==R[7]){R[10]=G(R[1],7);ob=(word *)R[10];acc=3;}else{if(R[9]==R[8]){R[10]=G(R[1],8);ob=(word *)R[10];acc=3;}else{R[10]=F(41);if(R[9]==R[10]){R[11]=G(R[1],9);*fp=make_header(4,TCLOS);fp[1]=G(R[1],10);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[11];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[9]=F(41);if(R[6]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],7);ob=(word *)R[11];acc=3;}else{if(R[10]==R[7]){R[11]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[1],11);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[11];acc=3;}else{if(R[10]==R[8]){R[11]=G(R[1],9);*fp=make_header(4,TCLOS);fp[1]=G(R[1],12);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=2;}else{if(R[10]==R[9]){R[11]=G(R[1],9);*fp=make_header(4,TCLOS);fp[1]=G(R[1],13);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[11];acc=2;}else{R[11]=G(R[1],2);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[10]=G(R[1],2);R[11]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=4;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 985:if(acc==2){{word ob=R[3];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){R[6]=F(32);R[3]=prim_cast((word *)R[3],fixval(R[6])&63);R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}else{R[6]=F(41);R[3]=prim_cast((word *)R[3],fixval(R[6])&63);R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 986:if(acc==3){R[6]=F(0);{uint64_t a=((uint64_t)fixval(R[6]))<>FBITS);R[8]=F(q&FMAX);R[9]=F(a-q*b);}if(R[8]==F(0)){ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[10]=F(32);R[11]=prim_cast((word *)R[8],fixval(R[10])&63);ob=(word *)R[3];R[3]=R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 987:if(acc==1){if(R[3]==F(0)){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=F(1);R[8]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=F(1);R[7]=F(0);R[8]=G(R[1],2);R[9]=G(R[1],3);R[10]=G(R[2],5);R[11]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];R[7]=R[9];R[8]=R[10];ob=(word *)R[11];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 988:if(acc==1){if(R[3]==F(0)){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 989:if(acc==7){{word ob=R[6];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}R[11]=F(32);if(R[10]==R[11]){R[12]=IFALSE;ob=(word *)R[3];R[3]=R[12];acc=1;}else{{word ob=R[6];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=F(41);if(R[12]==R[13]){R[14]=IFALSE;ob=(word *)R[3];R[3]=R[14];acc=1;}else{if(R[6]==F(0)){R[14]=G(R[1],2);R[4]=R[8];ob=(word *)R[14];acc=2;}else{R[14]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[1],4);fp[8]=R[9];fp[7]=R[3];fp[6]=R[4];fp[5]=R[5];fp[4]=R[7];fp[3]=R[8];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[5]=R[4];R[4]=R[6];ob=(word *)R[14];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 990:if(acc==3){R[6]=G(R[4],2);if(R[6]==INULL){R[7]=G(R[4],1);ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=G(R[4],1);if(R[7]==F(0)){R[4]=G(R[4],2);ob=(word *)R[5];acc=3;}else{R[8]=G(R[1],2);R[5]=INULL;ob=(word *)R[8];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 991:if(acc==5){if(R[4]==R[5]){R[8]=G(R[1],2);R[5]=F(1);R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[8]=prim_less(R[4],R[5]);if(R[8]==IFALSE){R[9]=F(1);{uint64_t res=(uint64_t)fixval(R[5])<>FBITS);R[11]=F(res&FMAX);}if(R[10]==F(0)){R[12]=G(R[1],3);*fp=make_header(6,TPROC);fp[1]=G(R[1],4);fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[11];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[12];acc=2;}else{R[12]=G(R[1],2);R[4]=R[6];R[5]=R[9];ob=(word *)R[12];acc=3;}}else{R[9]=G(R[1],2);R[5]=F(1);R[4]=R[6];ob=(word *)R[9];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 992:if(acc==5){if(R[6]==F(0)){R[8]=F(0);ob=(word *)R[3];R[3]=R[8];acc=1;}else{if(R[4]==R[5]){R[8]=G(R[1],2);R[5]=F(1);R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[8]=prim_less(R[5],R[4]);if(R[8]==IFALSE){R[9]=F(1);{uint64_t r=(uint64_t)fixval(R[5])<<(FBITS-fixval(R[9]));R[10]=F(r>>FBITS);R[11]=F(r&FMAX);}R[12]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[10];R[3]=(word)fp;fp+=6;R[4]=R[6];R[5]=R[9];ob=(word *)R[12];acc=3;}else{ob=(word *)R[3];R[3]=R[6];acc=1;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 993:if(acc==6){if(R[5]==INULL){R[9]=G(R[7],2);if(R[9]==INULL){R[10]=G(R[7],1);R[7]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{R[8]=R[3];R[3]=R[7];ob=(word *)R[8];acc=2;}}else{{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];}{uint64_t a=((uint64_t)fixval(R[4]))<>FBITS);R[12]=F(q&FMAX);R[13]=F(a-q*b);}if(R[11]==F(0)){*fp=NUMHDR;fp[1]=R[12];fp[2]=R[7];R[7]=(word)fp;fp+=3;R[5]=R[10];R[4]=R[13];ob=(word *)R[8];acc=6;}else{*fp=NUMHDR;fp[1]=R[11];fp[2]=R[7];R[14]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[12];fp[2]=R[14];R[7]=(word)fp;fp+=3;R[5]=R[10];R[4]=R[13];ob=(word *)R[8];acc=6;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 994:if(acc==4){if(R[4]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[5]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[9]=F((word)(res&FMAX));R[10]=F((word)(res>>FBITS));}if(R[10]==F(0)){ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[11]=INULL;*fp=NUMHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[9];fp[2]=R[12];R[13]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[13];acc=1;}}else{R[9]=F(32);if(R[8]==R[9]){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[10]=F((word)(res&FMAX));R[11]=F((word)(res>>FBITS));}*fp=make_header(3,TPROC);fp[1]=G(R[1],2);fp[2]=R[3];R[12]=(word)fp;fp+=3;if(R[11]==F(0)){R[3]=R[10];ob=(word *)R[12];acc=1;}else{R[13]=INULL;*fp=NUMHDR;fp[1]=R[11];fp[2]=R[13];R[14]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[10];fp[2]=R[14];R[3]=(word)fp;fp+=3;ob=(word *)R[12];acc=1;}}else{R[10]=F(40);if(R[8]==R[10]){R[11]=G(R[1],3);R[6]=F(0);ob=(word *)R[11];acc=4;}else{R[11]=F(41);if(R[8]==R[11]){R[12]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],4);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);ob=(word *)R[12];acc=4;}else{R[12]=G(R[1],5);R[13]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[13];ob=(word *)R[12];acc=4;}}}}}else{R[8]=F(32);if(R[7]==R[8]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[10]=F((word)(res&FMAX));R[11]=F((word)(res>>FBITS));}*fp=make_header(3,TPROC);fp[1]=G(R[1],7);fp[2]=R[3];R[12]=(word)fp;fp+=3;if(R[11]==F(0)){R[3]=R[10];ob=(word *)R[12];acc=1;}else{R[13]=INULL;*fp=NUMHDR;fp[1]=R[11];fp[2]=R[13];R[14]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[10];fp[2]=R[14];R[3]=(word)fp;fp+=3;ob=(word *)R[12];acc=1;}}else{if(R[9]==R[8]){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[10]=F((word)(res&FMAX));R[11]=F((word)(res>>FBITS));}if(R[11]==F(0)){ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[12]=INULL;*fp=NUMHDR;fp[1]=R[11];fp[2]=R[12];R[13]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[10];fp[2]=R[13];R[14]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[14];acc=1;}}else{R[10]=F(40);if(R[9]==R[10]){R[11]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],8);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);ob=(word *)R[11];acc=4;}else{R[11]=F(41);if(R[9]==R[11]){R[12]=G(R[1],3);R[6]=F(0);ob=(word *)R[12];acc=4;}else{R[12]=G(R[1],5);R[13]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[13];ob=(word *)R[12];acc=4;}}}}}else{R[9]=F(40);if(R[7]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],3);R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{if(R[10]==R[8]){R[11]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],9);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{if(R[10]==R[9]){R[11]=G(R[1],10);ob=(word *)R[11];acc=3;}else{R[11]=F(41);if(R[10]==R[11]){R[12]=G(R[1],10);*fp=make_header(3,TPROC);fp[1]=G(R[1],11);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[12];acc=3;}else{R[12]=G(R[1],5);R[13]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[13];ob=(word *)R[12];acc=4;}}}}}else{R[10]=F(41);if(R[7]==R[10]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[11]=F((ob>>TPOS)&63);}if(R[11]==F(0)){R[12]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],12);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{if(R[11]==R[8]){R[12]=G(R[1],3);R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{if(R[11]==R[9]){R[12]=G(R[1],10);*fp=make_header(3,TPROC);fp[1]=G(R[1],13);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[12];acc=3;}else{if(R[11]==R[10]){R[12]=G(R[1],10);ob=(word *)R[12];acc=3;}else{R[12]=G(R[1],5);R[13]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[13];ob=(word *)R[12];acc=4;}}}}}else{R[11]=F(42);if(R[7]==R[11]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[11]){R[13]=G(R[1],5);R[14]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[14];ob=(word *)R[13];acc=4;}else{R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[6];acc=4;}}else{R[12]=G(R[1],5);R[13]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[13];ob=(word *)R[12];acc=4;}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 995:if(acc==4){if(R[4]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[5]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(1);if(R[4]==R[7]){ob=(word *)R[3];R[3]=R[5];acc=1;}else{if(R[5]==R[7]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[5])));R[10]=F((word)(res&FMAX));R[11]=F((word)(res>>FBITS));}if(R[11]==F(0)){ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[12]=INULL;*fp=NUMHDR;fp[1]=R[11];fp[2]=R[12];R[13]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[10];fp[2]=R[13];R[14]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[14];acc=1;}}else{R[10]=G(R[1],2);R[6]=F(0);ob=(word *)R[10];acc=4;}}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],2);R[6]=F(0);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[10];acc=4;}else{R[10]=G(R[4],2);if(R[10]==INULL){R[11]=G(R[5],2);if(R[11]==INULL){R[12]=G(R[4],1);R[13]=G(R[5],1);{uint64_t res=(uint64_t) (((uint64_t) fixval(R[12]))*((uint64_t)fixval(R[13])));R[14]=F((word)(res&FMAX));R[15]=F((word)(res>>FBITS));}if(R[15]==F(0)){ob=(word *)R[3];R[3]=R[14];acc=1;}else{R[16]=INULL;*fp=NUMHDR;fp[1]=R[15];fp[2]=R[16];R[17]=(word)fp;fp+=3;*fp=NUMHDR;fp[1]=R[14];fp[2]=R[17];R[18]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[18];acc=1;}}else{R[4]=G(R[4],1);R[13]=G(R[1],2);R[6]=F(0);ob=(word *)R[13];acc=4;}}else{R[11]=G(R[5],2);if(R[11]==INULL){R[12]=G(R[5],1);R[13]=G(R[1],2);R[6]=F(0);R[5]=R[4];R[4]=R[12];ob=(word *)R[13];acc=4;}else{R[12]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=INULL;R[10]=ITRUE;R[11]=F(0);R[6]=R[4];R[7]=R[5];R[9]=R[8];ob=(word *)R[12];acc=9;}}}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 996:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;if(R[3]==F(0)){R[3]=G(R[1],2);ob=(word *)R[7];acc=1;}else{R[8]=G(R[2],2);R[9]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[7];R[4]=R[9];ob=(word *)R[8];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 997:if(acc==1){R[4]=G(R[1],3);if(R[4]==F(0)){R[5]=G(R[1],4);ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=G(R[1],2);R[9]=F(1);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 998:if(acc==5){if(R[6]==F(0)){if(R[4]==INULL){R[8]=G(R[1],2);R[4]=R[5];ob=(word *)R[8];acc=2;}else{R[8]=G(R[1],3);ob=(word *)R[8];acc=3;}}else{if(R[4]==INULL){R[8]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[1],5);fp[4]=R[3];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=F(1);R[4]=R[6];ob=(word *)R[8];acc=3;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=INULL;*fp=NUMHDR;fp[1]=R[4];fp[2]=R[9];R[4]=(word)fp;fp+=3;ob=(word *)R[7];acc=5;}else{{word ob=R[6];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==F(0)){R[10]=F(1);{word r=(fixval(R[6])|(1< */ + case 999:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){R[6]=INULL;*fp=NUMHDR;fp[1]=R[4];fp[2]=R[6];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}else{ob=(word *)R[3];R[3]=R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1000:if(acc==5){if(R[5]==INULL){if(R[6]==F(0)){R[8]=INULL;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=INULL;*fp=NUMHDR;fp[1]=R[6];fp[2]=R[8];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}}else{if(R[6]==F(0)){R[8]=G(R[5],1);{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[8])));R[9]=F((word)(res&FMAX));R[10]=F((word)(res>>FBITS));}R[5]=G(R[5],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;R[6]=R[10];ob=(word *)R[7];acc=5;}else{R[8]=G(R[5],1);{uint64_t res=(uint64_t) (((uint64_t) fixval(R[4]))*((uint64_t)fixval(R[8])));R[9]=F((word)(res&FMAX));R[10]=F((word)(res>>FBITS));}{word res=fixval(R[9])+fixval(R[6]);R[12]=BOOL(res&(1< */ + case 1001:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=R[4]^(R[5]^2);ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(40);if(R[7]==R[8]){R[9]=G(R[5],1);R[10]=R[4]^(R[9]^2);R[11]=G(R[5],2);*fp=NUMHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}}}else{R[7]=F(40);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=G(R[4],1);R[10]=R[5]^(R[9]^2);R[11]=G(R[4],2);*fp=NUMHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}else{if(R[8]==R[7]){R[9]=G(R[1],4);ob=(word *)R[9];acc=3;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}}}else{R[8]=G(R[1],2);R[9]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[8];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1002:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=R[4]|R[5];ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(40);if(R[7]==R[8]){R[9]=G(R[5],1);R[10]=R[4]|R[9];R[11]=G(R[5],2);*fp=NUMHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}}}else{R[7]=F(40);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=G(R[4],1);R[10]=R[5]|R[9];R[11]=G(R[4],2);*fp=NUMHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}else{if(R[8]==R[7]){R[9]=G(R[1],4);ob=(word *)R[9];acc=3;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}}}else{R[8]=G(R[1],2);R[9]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[8];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1003:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=R[4]&R[5];ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(40);if(R[7]==R[8]){R[9]=G(R[5],1);R[10]=R[4]&R[9];ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}}}else{R[7]=F(40);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=G(R[4],1);R[10]=R[9]&R[5];ob=(word *)R[3];R[3]=R[10];acc=1;}else{if(R[8]==R[7]){R[9]=G(R[1],4);ob=(word *)R[9];acc=3;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}}}else{R[8]=G(R[1],2);R[9]=G(R[1],3);R[6]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[8];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1004:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],2);if(R[4]==F(0)){R[5]=G(R[1],3);R[3]=INULL;ob=(word *)R[5];acc=1;}else{*fp=NUMHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}}else{R[4]=G(R[1],2);*fp=NUMHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1005:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{{word ob=R[3];if(allocp(ob))ob=V(ob);R[4]=F((ob>>TPOS)&63);}if(R[4]==F(0)){R[5]=INULL;*fp=NUMHDR;fp[1]=R[3];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);*fp=NUMHDR;fp[1]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[9]=G(R[1],3);ob=(word *)R[9];acc=1;}else{R[5]=G(R[1],2);*fp=NUMHDR;fp[1]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1006:if(acc==4){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[7]=F(1);{word r=(fixval(R[5])|(1< */ + case 1007:if(acc==5){if(R[4]==INULL){if(R[6]==F(0)){R[8]=INULL;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=INULL;*fp=NUMHDR;fp[1]=R[6];fp[2]=R[8];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}}else{R[8]=G(R[4],1);{uint64_t res=(uint64_t)fixval(R[8])<>FBITS);R[10]=F(res&FMAX);}R[11]=R[6]|R[10];R[4]=G(R[4],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[11];R[3]=(word)fp;fp+=4;R[6]=R[9];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1008:if(acc==4){if(R[5]==F(0)){ob=(word *)R[3];R[3]=R[4];acc=1;}else{if(R[4]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[7]=F(1);{word r=(fixval(R[5])|(1< */ + case 1009:if(acc==6){if(R[5]==INULL){if(R[7]==IFALSE){if(R[4]==F(0)){R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=INULL;*fp=NUMHDR;fp[1]=R[4];fp[2]=R[9];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}}else{ob=(word *)R[3];R[3]=R[4];acc=1;}}else{R[9]=G(R[5],1);{uint64_t r=(uint64_t)fixval(R[9])<<(FBITS-fixval(R[6]));R[10]=F(r>>FBITS);R[11]=F(r&FMAX);}R[12]=R[4]|R[11];R[5]=G(R[5],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],2);fp[4]=R[3];fp[3]=R[12];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[7]=IFALSE;R[4]=R[10];ob=(word *)R[8];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1010:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);if(R[4]==F(0)){R[5]=G(R[1],2);if(R[5]==IFALSE){R[6]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[6];acc=1;}else{R[6]=G(R[1],4);R[3]=F(0);ob=(word *)R[6];acc=1;}}else{R[5]=G(R[1],2);if(R[5]==IFALSE){R[6]=INULL;*fp=NUMHDR;fp[1]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}else{R[6]=G(R[1],4);R[3]=R[4];ob=(word *)R[6];acc=1;}}}else{R[4]=G(R[1],3);*fp=NUMHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],4);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1011:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){{word r=(fixval(R[4])|(1<>TPOS)&63);}if(R[8]==F(0)){R[9]=G(R[1],7);ob=(word *)R[9];acc=3;}else{if(R[8]==R[7]){{word r=(fixval(R[5])|(1<>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],9);R[6]=ITRUE;ob=(word *)R[10];acc=4;}else{if(R[9]==R[7]){R[10]=G(R[1],4);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{if(R[9]==R[8]){R[10]=G(R[1],10);ob=(word *)R[10];acc=3;}else{R[10]=F(41);if(R[9]==R[10]){R[11]=G(R[1],11);R[6]=IFALSE;ob=(word *)R[11];acc=4;}else{R[11]=G(R[1],5);R[12]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[9]=F(41);if(R[6]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[1],12);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[11];acc=3;}else{if(R[10]==R[7]){R[11]=G(R[1],3);R[6]=ITRUE;R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{if(R[10]==R[8]){R[11]=G(R[1],11);*fp=make_header(3,TPROC);fp[1]=G(R[1],13);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=IFALSE;ob=(word *)R[11];acc=4;}else{if(R[10]==R[9]){R[11]=G(R[1],10);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[11];acc=3;}else{R[11]=G(R[1],5);R[12]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[10]=G(R[1],5);R[11]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=4;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1012:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){{word res=fixval(R[4])+fixval(R[5]);R[9]=BOOL(res&(1<>TPOS)&63);}if(R[8]==F(0)){{word r=(fixval(R[5])|(1<>TPOS)&63);}if(R[9]==F(0)){R[10]=G(R[1],3);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{if(R[9]==R[7]){R[10]=G(R[1],8);R[6]=ITRUE;ob=(word *)R[10];acc=4;}else{if(R[9]==R[8]){R[10]=G(R[1],10);R[6]=IFALSE;ob=(word *)R[10];acc=4;}else{R[10]=F(41);if(R[9]==R[10]){R[11]=G(R[1],11);ob=(word *)R[11];acc=3;}else{R[11]=G(R[1],5);R[12]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[9]=F(41);if(R[6]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==F(0)){R[11]=G(R[1],4);R[6]=ITRUE;R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{if(R[10]==R[7]){R[11]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[1],12);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[11];acc=3;}else{if(R[10]==R[8]){R[11]=G(R[1],11);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[11];acc=3;}else{if(R[10]==R[9]){R[11]=G(R[1],10);*fp=make_header(3,TPROC);fp[1]=G(R[1],13);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=IFALSE;ob=(word *)R[11];acc=4;}else{R[11]=G(R[1],5);R[12]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}else{R[10]=G(R[1],5);R[11]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=4;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1013:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){if(R[4]==F(0)){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(32);R[8]=prim_cast((word *)R[4],fixval(R[7])&63);ob=(word *)R[3];R[3]=R[8];acc=1;}}else{R[7]=F(32);if(R[6]==R[7]){R[8]=F(0);R[9]=prim_cast((word *)R[4],fixval(R[8])&63);ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[8]=F(40);if(R[6]==R[8]){R[9]=G(R[4],1);R[10]=G(R[4],2);*fp=make_header(3,41);fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[9]=F(41);if(R[6]==R[9]){R[10]=G(R[4],1);R[11]=G(R[4],2);*fp=NUMHDR;fp[1]=R[10];fp[2]=R[11];R[12]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[12];acc=1;}else{R[10]=F(42);if(R[6]==R[10]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[11]=ob[1];R[12]=ob[2];}*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[12];R[3]=(word)fp;fp+=4;R[4]=R[11];ob=(word *)R[5];acc=3;}else{R[11]=G(R[1],3);R[12]=G(R[1],4);R[6]=IFALSE;R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=4;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1014:if(acc==1){if(R[3]==F(0)){R[4]=G(R[1],2);ob=(word *)R[4];acc=1;}else{{word ob=R[3];if(allocp(ob))ob=V(ob);R[4]=F((ob>>TPOS)&63);}if(R[4]==F(0)){R[5]=F(32);R[3]=prim_cast((word *)R[3],fixval(R[5])&63);R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}else{R[5]=F(41);R[3]=prim_cast((word *)R[3],fixval(R[5])&63);R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1015:if(acc==1){{word ob=R[3];if(allocp(ob))ob=V(ob);R[4]=F((ob>>TPOS)&63);}if(R[4]==F(0)){R[5]=F(32);R[3]=prim_cast((word *)R[3],fixval(R[5])&63);R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}else{R[5]=F(41);R[3]=prim_cast((word *)R[3],fixval(R[5])&63);R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1016:if(acc==5){R[8]=G(R[4],1);{word r=(fixval(R[8])|(1< */ + case 1017:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);if(R[4]==IFALSE){R[5]=G(R[1],2);if(R[5]==F(0)){R[6]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[6];acc=1;}else{R[6]=INULL;*fp=NUMHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}}else{R[5]=G(R[1],4);R[3]=G(R[1],2);ob=(word *)R[5];acc=1;}}else{R[4]=G(R[1],2);*fp=NUMHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],4);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1018:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){R[7]=G(R[1],2);if(R[4]==R[7]){R[8]=G(R[1],3);ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(1);{word res=fixval(R[4])+fixval(R[8]);R[10]=BOOL(res&(1< */ + case 1019:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){R[6]=IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=F(32);if(R[5]==R[6]){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(40);if(R[5]==R[7]){R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(41);if(R[5]==R[8]){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=F(42);if(R[5]==R[9]){R[10]=G(R[4],1);{word ob=R[10];if(allocp(ob))ob=V(ob);R[11]=F((ob>>TPOS)&63);}if(R[11]==F(0)){R[12]=IFALSE;ob=(word *)R[3];R[3]=R[12];acc=1;}else{if(R[11]==R[6]){R[12]=ITRUE;ob=(word *)R[3];R[3]=R[12];acc=1;}else{if(R[11]==R[7]){R[12]=IFALSE;ob=(word *)R[3];R[3]=R[12];acc=1;}else{if(R[11]==R[8]){R[12]=ITRUE;ob=(word *)R[3];R[3]=R[12];acc=1;}else{R[12]=G(R[1],2);R[13]=G(R[1],3);R[5]=R[4];R[4]=R[13];ob=(word *)R[12];acc=3;}}}}}else{R[10]=G(R[1],2);R[11]=G(R[1],4);R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=3;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1020:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}if(R[5]==F(0)){R[6]=ITRUE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=F(32);if(R[5]==R[6]){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(40);if(R[5]==R[7]){R[8]=ITRUE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(41);if(R[5]==R[8]){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=F(42);if(R[5]==R[9]){R[10]=ITRUE;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[10]=F(43);if(R[5]==R[10]){R[11]=ITRUE;ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[11]=IFALSE;ob=(word *)R[3];R[3]=R[11];acc=1;}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1021:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=(R[4]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(32);if(R[7]==R[8]){R[9]=(R[4]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=F(40);if(R[7]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==R[9]){R[11]=G(R[1],2);ob=(word *)R[11];acc=3;}else{R[11]=IFALSE;ob=(word *)R[3];R[3]=R[11];acc=1;}}else{R[10]=F(41);if(R[7]==R[10]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[11]=F((ob>>TPOS)&63);}if(R[11]==R[10]){R[12]=G(R[1],2);ob=(word *)R[12];acc=3;}else{R[12]=IFALSE;ob=(word *)R[3];R[3]=R[12];acc=1;}}else{R[11]=F(42);if(R[7]==R[11]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}if(R[12]==R[11]){R[13]=G(R[4],1);R[14]=G(R[5],1);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[13];R[5]=R[14];ob=(word *)R[6];acc=4;}else{R[13]=IFALSE;ob=(word *)R[3];R[3]=R[13];acc=1;}}else{R[12]=F(43);if(R[7]==R[12]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[13]=F((ob>>TPOS)&63);}if(R[13]==R[12]){R[14]=F(1);R[15]=prim_ref(R[4],R[14]);R[16]=prim_ref(R[5],R[14]);*fp=make_header(6,TPROC);fp[1]=G(R[1],4);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[15];R[5]=R[16];ob=(word *)R[6];acc=4;}else{R[14]=IFALSE;ob=(word *)R[3];R[3]=R[14];acc=1;}}else{R[13]=G(R[1],5);R[14]=G(R[1],6);R[6]=R[5];R[5]=R[4];R[4]=R[14];ob=(word *)R[13];acc=4;}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1022:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}if(R[6]==F(0)){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=prim_less(R[4],R[5]);ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(40);if(R[7]==R[8]){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}}}else{R[7]=F(32);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==F(0)){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{if(R[8]==R[7]){if(R[4]==R[5]){R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=prim_less(R[5],R[4]);ob=(word *)R[3];R[3]=R[9];acc=1;}}else{R[9]=F(40);if(R[8]==R[9]){R[10]=ITRUE;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[10]=IFALSE;ob=(word *)R[3];R[3]=R[10];acc=1;}}}}else{R[8]=F(40);if(R[6]==R[8]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}if(R[9]==R[8]){R[10]=G(R[1],2);R[6]=IFALSE;ob=(word *)R[10];acc=4;}else{R[10]=IFALSE;ob=(word *)R[3];R[3]=R[10];acc=1;}}else{R[9]=F(41);if(R[6]==R[9]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}if(R[10]==R[9]){R[11]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=IFALSE;ob=(word *)R[11];acc=4;}else{R[11]=ITRUE;ob=(word *)R[3];R[3]=R[11];acc=1;}}else{R[10]=G(R[1],4);R[11]=G(R[1],5);R[6]=R[5];R[5]=R[4];R[4]=R[11];ob=(word *)R[10];acc=4;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1023:if(acc==4){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}if(R[7]==F(0)){R[8]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[5]=IFALSE;R[6]=G(R[1],4);ob=(word *)R[8];acc=4;}else{R[8]=G(R[1],5);ob=(word *)R[8];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1024:if(acc==4){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(32);if(R[7]==R[8]){R[9]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[9];acc=2;}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}R[10]=F(41);if(R[9]==R[10]){R[11]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],4);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[11];acc=2;}else{R[11]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[1],6);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[11];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1025:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[4];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1026:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=4;R[6]=G(R[1],3);R[4]=G(R[1],2);R[3]=R[6];ob=(word *)R[5];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1027:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[5];fp[4]=R[3];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[1],2);ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1028:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[2],4);R[8]=R[4];R[4]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],5);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1029:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[2],4);R[8]=R[4];R[4]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],3);R[3]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[5];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1030:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],3);R[3]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[5];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1031:if(acc==2){R[5]=F(12);R[6]=IFALSE;R[7]=prim_sys(fixval(R[5]), R[4], R[6], R[6]);ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1032:if(acc==1){R[4]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=4;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[5];acc=1;}else{R[6]=G(R[2],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[7]=(word)fp;fp+=3;R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1033:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=F(11);R[5]=G(R[1],2);R[6]=IFALSE;R[3]=prim_sys(fixval(R[4]), R[5], R[6], R[6]);R[8]=G(R[1],3);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1034:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=INULL;R[9]=R[5];R[3]=R[6];R[6]=R[4];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1035:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;R[5]=G(R[1],4);R[9]=IFALSE;R[10]=R[6];R[3]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1036:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;if(R[3]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[7];acc=1;}else{R[8]=G(R[2],3);R[5]=G(R[2],4);R[4]=R[3];R[3]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1037:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[2],4);R[6]=IFALSE;R[11]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1038:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1039:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[9]=(word)fp;fp+=7;if(R[3]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[9];acc=1;}else{R[3]=G(R[2],3);ob=(word *)R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1040:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[11]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[5];R[5]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1041:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],6);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[10]=(word)fp;fp+=8;if(R[3]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[10];acc=1;}else{R[11]=G(R[2],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[10];R[3]=(word)fp;fp+=3;R[5]=G(R[2],5);R[6]=IFALSE;ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1042:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[12]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[5];R[5]=R[12];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1043:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],6);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[11]=(word)fp;fp+=9;if(R[3]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[11];acc=1;}else{R[12]=G(R[2],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[11];R[3]=(word)fp;fp+=3;R[5]=G(R[2],5);R[6]=IFALSE;ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1044:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=10;R[13]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[5];R[5]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1045:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],4);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[12]=(word)fp;fp+=10;if(R[3]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[12];acc=1;}else{R[3]=G(R[2],3);ob=(word *)R[12];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1046:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[12];fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=11;R[14]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[5];R[5]=R[14];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1047:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);R[12]=G(R[1],10);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[12];fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=11;R[14]=G(R[1],2);R[5]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[14];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1048:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);R[12]=G(R[1],10);*fp=make_header(11,TCLOS);fp[1]=G(R[2],4);fp[10]=R[12];fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[13]=(word)fp;fp+=11;if(R[3]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[13];acc=1;}else{R[3]=G(R[2],3);ob=(word *)R[13];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1049:if(acc==1){R[4]=G(R[2],5);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[11]=(word)fp;fp+=3;R[12]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[13]=(word)fp;fp+=3;R[14]=G(R[1],5);*fp=PAIRHDR;fp[1]=R[14];fp[2]=R[13];R[15]=(word)fp;fp+=3;R[16]=G(R[1],6);*fp=PAIRHDR;fp[1]=R[16];fp[2]=R[15];R[17]=(word)fp;fp+=3;R[18]=G(R[1],7);*fp=PAIRHDR;fp[1]=R[18];fp[2]=R[17];R[19]=(word)fp;fp+=3;R[20]=G(R[1],8);*fp=PAIRHDR;fp[1]=R[20];fp[2]=R[19];R[21]=(word)fp;fp+=3;R[22]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[22];fp[2]=R[21];R[6]=(word)fp;fp+=3;R[24]=G(R[2],2);R[3]=G(R[1],10);R[4]=G(R[2],3);R[5]=G(R[1],9);ob=(word *)R[24];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1050:if(acc==1){R[4]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=G(R[2],2);R[3]=G(R[1],2);R[4]=G(R[2],3);R[5]=G(R[2],4);R[6]=R[7];ob=(word *)R[8];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1051:if(acc==5){R[8]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[6]=G(R[1],4);R[7]=INULL;R[12]=R[5];R[5]=R[4];R[4]=R[12];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1052:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];}R[6]=G(R[1],4);R[3]=G(R[1],3);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1053:if(acc==6){if(R[5]==INULL){R[9]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[5]=R[4];R[4]=R[6];ob=(word *)R[9];acc=3;}else{assert(pairp(R[5]),R[5],1052);R[9]=G(R[5],1);R[10]=G(R[1],4);*fp=make_header(8,TCLOS);fp[1]=G(R[1],5);fp[7]=R[8];fp[6]=R[3];fp[5]=R[4];fp[4]=R[6];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[4]=R[9];ob=(word *)R[10];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1054:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],7);R[3]=G(R[1],6);R[4]=G(R[1],5);R[6]=G(R[1],4);R[7]=R[8];R[8]=R[9];ob=(word *)R[8];acc=6;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[13]=G(R[2],4);R[4]=R[5];R[5]=R[13];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1055:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[4]=R[5];R[5]=R[9];ob=(word *)R[6];acc=3;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],4);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1056:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=INULL;R[8]=G(R[1],2);R[11]=R[6];R[12]=R[5];R[5]=R[7];R[7]=R[3];R[6]=R[8];R[8]=R[4];R[4]=R[11];R[3]=R[12];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1057:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[4]=R[5];ob=(word *)R[6];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],5);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[11]=(word)fp;fp+=9;R[5]=G(R[2],6);R[6]=IFALSE;R[9]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1058:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=10;R[5]=G(R[2],4);R[14]=IFALSE;R[9]=R[4];R[4]=R[6];R[6]=R[14];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1059:if(acc==1){R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[1],3);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[2],2);R[4]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[12];fp[7]=R[11];fp[6]=R[10];fp[5]=R[6];fp[4]=R[9];fp[3]=R[4];fp[2]=R[3];R[13]=(word)fp;fp+=9;R[6]=F(0);R[5]=R[3];R[3]=R[13];ob=(word *)R[7];acc=4;}else{R[5]=G(R[1],3);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);if(R[6]==INULL){R[7]=G(R[5],1);R[8]=G(R[2],6);R[9]=INULL;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[10]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[10];R[11]=(word)fp;fp+=3;R[12]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[4]=(word)fp;fp+=3;R[14]=G(R[2],4);R[3]=G(R[1],8);ob=(word *)R[14];acc=2;}else{R[7]=G(R[2],7);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);R[13]=G(R[1],9);*fp=make_header(11,TCLOS);fp[1]=G(R[2],8);fp[10]=R[13];fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[8];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=11;R[4]=R[5];ob=(word *)R[7];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1060:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);R[12]=G(R[1],10);*fp=make_header(10,TCLOS);fp[1]=G(R[2],2);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[13]=(word)fp;fp+=10;R[7]=R[4];R[4]=R[3];R[3]=R[13];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1061:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);*fp=make_header(11,TCLOS);fp[1]=G(R[2],3);fp[10]=R[12];fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=11;R[5]=G(R[2],4);R[15]=G(R[2],5);R[9]=R[4];R[4]=R[6];R[6]=R[15];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1062:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);R[12]=G(R[1],10);*fp=make_header(11,TCLOS);fp[1]=G(R[2],2);fp[10]=R[12];fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[13]=(word)fp;fp+=11;R[7]=R[3];R[4]=R[6];R[3]=R[13];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1063:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],9);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);R[13]=G(R[1],10);*fp=make_header(11,TCLOS);fp[1]=G(R[2],5);fp[10]=R[13];fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=11;R[5]=G(R[2],6);R[16]=IFALSE;R[9]=R[4];R[4]=R[6];R[6]=R[16];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1064:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);R[11]=G(R[1],10);*fp=make_header(10,TCLOS);fp[1]=G(R[2],4);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[12]=(word)fp;fp+=10;if(R[3]==IFALSE){R[13]=G(R[2],2);R[4]=G(R[1],2);R[3]=R[12];ob=(word *)R[13];acc=2;}else{R[13]=G(R[2],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[12];R[3]=(word)fp;fp+=3;R[4]=G(R[1],2);ob=(word *)R[13];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1065:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=10;R[13]=G(R[1],2);R[5]=G(R[2],4);R[6]=IFALSE;R[9]=R[4];R[4]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1066:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],4);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[11]=(word)fp;fp+=9;if(R[3]==IFALSE){R[3]=G(R[1],2);ob=(word *)R[11];acc=1;}else{R[12]=G(R[2],2);R[13]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[11];fp[2]=R[13];R[3]=(word)fp;fp+=4;R[6]=INULL;R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1067:if(acc==1){R[4]=G(R[1],2);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],3);R[4]=R[3];R[5]=R[6];R[3]=R[8];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1068:if(acc==1){R[4]=G(R[2],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1069:if(acc==1){R[4]=G(R[2],5);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[11]=(word)fp;fp+=3;R[12]=G(R[2],3);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[4]=(word)fp;fp+=3;R[14]=G(R[2],2);R[3]=G(R[1],3);ob=(word *)R[14];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1070:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[6]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1071:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[13]=G(R[2],4);R[4]=R[5];R[5]=R[13];ob=(word *)R[6];acc=3;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],5);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],6);fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[12]=(word)fp;fp+=7;R[4]=R[3];R[3]=R[12];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1072:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[2],3);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[4]=(word)fp;fp+=3;R[10]=G(R[2],2);R[3]=G(R[1],6);ob=(word *)R[10];acc=2;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],7);R[3]=G(R[1],6);R[4]=G(R[1],5);R[6]=G(R[1],4);R[7]=R[8];R[8]=R[9];ob=(word *)R[8];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1073:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1074:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,2);fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1075:if(acc==2){if(immediatep(R[4])){R[5]=IFALSE;}else{word h=V(R[4]);R[5]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[6]=F(1);R[7]=prim_less(R[5],R[6]);if(R[7]==IFALSE){R[8]=F(0);R[9]=prim_ref(R[4],R[8]);R[10]=F(45);R[11]=(R[10]==R[9])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1076:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=5;R[8]=G(R[1],4);R[9]=IFALSE;R[10]=R[6];R[4]=R[5];R[3]=R[7];R[5]=R[8];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1077:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[8]=(word)fp;fp+=6;R[9]=R[4];R[5]=R[3];R[4]=R[6];R[3]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1078:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[8];acc=1;}else{R[9]=G(R[2],2);R[5]=G(R[2],3);R[3]=R[8];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1079:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=G(R[1],4);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1080:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[10]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1081:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1082:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1083:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;if(R[3]==IFALSE){R[3]=G(R[1],2);ob=(word *)R[7];acc=1;}else{R[8]=G(R[1],2);R[9]=INULL;*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[9];R[3]=(word)fp;fp+=3;ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1084:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[3];fp[4]=R[5];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[9]=G(R[2],4);R[10]=IFALSE;R[11]=R[6];R[4]=R[5];R[5]=R[9];R[6]=R[10];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1085:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[2],4);R[6]=IFALSE;R[12]=R[4];R[4]=R[7];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1086:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[5]=G(R[2],4);R[9]=G(R[2],5);R[10]=R[4];R[3]=R[6];R[4]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{R[4]=G(R[1],4);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1087:if(acc==1){R[4]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],6);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[9];R[3]=(word)fp;fp+=3;R[4]=G(R[2],4);R[5]=G(R[2],5);R[6]=R[7];ob=(word *)R[8];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1088:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[7]=(word)fp;fp+=3;R[8]=G(R[1],4);R[9]=R[6];R[3]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1089:if(acc==1){R[4]=G(R[2],2);R[3]=(R[4]==R[3])?ITRUE:IFALSE;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1090:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1091:if(acc==1){assert(pairp(R[3]),R[3],1053);R[4]=G(R[3],2);R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[2],3);R[8]=R[5];R[5]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1092:if(acc==2){R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=F(45);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[4]=(word)fp;fp+=3;R[9]=G(R[1],2);ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1093:if(acc==4){if(R[5]==INULL){R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[5]=G(R[1],4);R[6]=IFALSE;R[4]=R[7];ob=(word *)R[8];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1094:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[8]=R[4];R[5]=R[3];R[4]=R[7];R[3]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1095:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],5);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[9]=(word)fp;fp+=7;if(R[3]==IFALSE){R[10]=G(R[2],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[5]=G(R[2],4);R[6]=IFALSE;ob=(word *)R[10];acc=4;}else{ob=(word *)R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1096:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],6);R[7]=G(R[1],5);R[4]=G(R[1],4);R[3]=R[7];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],5);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1097:if(acc==2){R[5]=F(0);R[4]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[1],2);ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1098:if(acc==4){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=INULL;R[5]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1099:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[7];fp[6]=R[3];fp[5]=R[6];fp[4]=R[5];fp[3]=R[4];fp[2]=R[9];R[3]=(word)fp;fp+=8;R[5]=F(0);R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1100:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],6);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1101:if(acc==2){R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[8];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=G(R[1],3);R[5]=F(1);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1102:if(acc==3){if(R[5]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[6]=G(R[1],2);R[7]=INULL;R[9]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1103:if(acc==5){if(R[5]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[8]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[10]=G(R[1],4);R[6]=INULL;R[7]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[8];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1104:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=G(R[2],4);R[8]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1105:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=R[4];R[11]=R[5];R[5]=R[3];R[4]=R[6];R[6]=R[7];R[7]=R[9];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1106:if(acc==6){if(R[5]==INULL){R[7]=R[3];R[3]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[1],3);fp[7]=R[7];fp[6]=R[3];fp[5]=R[8];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[4]=R[5];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1107:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[3];R[11]=(word)fp;fp+=3;R[5]=G(R[1],2);R[8]=R[4];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1108:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],2);R[7]=(R[5]==R[6])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1109:if(acc==2){assert(pairp(R[3]),R[3],1053);R[5]=G(R[3],2);if(R[5]==INULL){R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],6);R[9]=G(R[1],3);R[10]=G(R[1],5);R[11]=G(R[1],4);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[4];fp[3]=R[8];fp[2]=R[7];R[12]=(word)fp;fp+=8;R[4]=R[3];R[3]=R[12];ob=(word *)R[6];acc=2;}else{R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],4);fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[9]=(word)fp;fp+=5;R[10]=G(R[1],3);R[11]=G(R[1],2);R[5]=R[4];R[7]=R[8];R[8]=R[6];R[3]=R[9];R[4]=R[10];R[6]=R[11];ob=(word *)R[8];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1110:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[2],4);R[10]=G(R[1],2);R[11]=R[5];R[5]=R[10];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1111:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],7);R[7]=G(R[1],6);R[8]=G(R[1],5);R[9]=G(R[1],4);R[10]=G(R[1],3);R[4]=R[8];R[8]=R[6];R[6]=R[5];R[3]=R[7];R[5]=R[9];R[7]=R[10];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1112:if(acc==3){assert(pairp(R[4]),R[4],1052);R[6]=G(R[4],1);assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=prim_less(R[6],R[7]);ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1113:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[5]=F(0);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1114:if(acc==2){R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],4);R[3]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1115:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[5];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1116:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[5]=(word)fp;fp+=3;R[9]=G(R[2],2);R[3]=G(R[1],5);R[4]=G(R[2],3);ob=(word *)R[9];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[6];R[4]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1117:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[8]=F(0);R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1118:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],4);R[3]=F(0);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1119:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1120:if(acc==4){R[7]=G(R[1],2);R[8]=F(0);R[9]=INULL;R[11]=R[7];R[7]=R[8];R[8]=R[9];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1121:if(acc==7){if(R[5]==INULL){R[10]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[8];ob=(word *)R[10];acc=2;}else{R[10]=G(R[1],4);*fp=make_header(9,TCLOS);fp[1]=G(R[1],5);fp[8]=R[3];fp[7]=R[4];fp[6]=R[5];fp[5]=R[6];fp[4]=R[8];fp[3]=R[9];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=R[6];R[5]=R[7];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1122:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],6);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=F(1);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1123:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[11]=R[4];R[12]=R[5];R[5]=R[7];R[7]=R[3];R[4]=R[6];R[6]=R[8];R[8]=R[9];R[3]=R[12];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1124:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],2);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TPROC);fp[1]=G(R[2],2);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],4);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[5];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=G(R[1],2);R[5]=F(1);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1125:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[13]=G(R[1],3);R[4]=R[5];R[5]=R[13];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1126:if(acc==7){if(R[5]==INULL){R[10]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[8];ob=(word *)R[10];acc=2;}else{R[10]=G(R[1],4);*fp=make_header(9,TCLOS);fp[1]=G(R[1],5);fp[8]=R[9];fp[7]=R[3];fp[6]=R[6];fp[5]=R[7];fp[4]=R[5];fp[3]=R[8];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=R[5];ob=(word *)R[10];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1127:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],2);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TPROC);fp[1]=G(R[2],2);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],3);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],4);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[12]=G(R[1],2);R[8]=R[4];R[5]=R[7];R[4]=R[12];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1128:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=10;R[8]=R[5];R[5]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1129:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[10]=(word)fp;fp+=8;if(R[3]==IFALSE){R[3]=G(R[1],3);ob=(word *)R[10];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[6]=G(R[4],1);R[12]=G(R[2],2);R[4]=G(R[1],3);R[5]=G(R[1],2);R[3]=R[10];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1130:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[5];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[4]=G(R[1],3);R[5]=F(1);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1131:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[6];R[13]=R[5];R[5]=R[3];R[6]=R[7];R[7]=R[8];R[8]=R[9];R[9]=R[4];R[4]=R[12];R[3]=R[13];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1132:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1133:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1134:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1135:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1136:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],3);R[5]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[6]=G(R[2],4);R[7]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],5);fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=G(R[1],2);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1137:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=5;R[9]=F(1);R[10]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1138:if(acc==1){R[4]=G(R[1],2);R[5]=prim_ref(R[4],R[3]);R[6]=G(R[1],4);R[3]=G(R[1],3);R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1139:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[2],3);R[7]=G(R[1],3);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1140:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1141:if(acc==1){R[4]=F(2);R[5]=prim_ref(R[3],R[4]);R[6]=G(R[5],1);R[7]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[3];R[8]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[8];R[3]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1142:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[2],4);R[5]=G(R[1],2);R[9]=INULL;R[10]=R[4];R[3]=R[6];R[4]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1143:if(acc==1){R[4]=IFALSE;R[5]=G(R[1],2);*fp=make_header(4,2);fp[1]=R[4];fp[2]=R[5];fp[3]=R[3];R[3]=(word)fp;fp+=4;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1144:if(acc==1){R[4]=ITRUE;R[5]=G(R[1],2);*fp=make_header(4,2);fp[1]=R[4];fp[2]=R[3];fp[3]=R[5];R[3]=(word)fp;fp+=4;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1145:if(acc==5){if(R[5]==INULL){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[8]=G(R[5],1);R[9]=G(R[1],2);{uint64_t res=(uint64_t) (((uint64_t) fixval(R[8]))*((uint64_t)fixval(R[9])));R[10]=F((word)(res&FMAX));R[11]=F((word)(res>>FBITS));}{word res=fixval(R[10])+fixval(R[4]);R[13]=BOOL(res&(1< */ + case 1146:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[7]=ob[1];R[8]=ob[2];}*fp=NUMHDR;fp[1]=R[7];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[4]=R[8];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1147:if(acc==1){R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1148:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1149:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[5];R[5]=R[7];R[7]=R[9];R[9]=R[4];R[4]=R[6];R[6]=R[8];R[8]=R[3];R[3]=R[12];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1150:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1151:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(10);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1152:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=IFALSE;R[11]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[8]=R[7];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1153:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[9]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1154:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=R[10];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1155:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);R[11]=G(R[1],4);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=10;R[4]=F(0);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1156:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],9);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[13]=(word)fp;fp+=10;*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[9];R[14]=(word)fp;fp+=3;R[8]=R[4];R[5]=R[3];R[3]=R[13];R[4]=R[14];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1157:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[5];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=F(46);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1158:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[3];fp[6]=R[4];fp[5]=R[5];fp[4]=R[7];fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[4]=R[6];R[5]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1159:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[12]=G(R[1],2);R[7]=R[4];R[4]=R[12];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1160:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=10;R[4]=G(R[1],2);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1161:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[3];fp[6]=R[4];fp[5]=R[5];fp[4]=R[7];fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=9;R[4]=G(R[1],3);R[5]=G(R[1],2);ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1162:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1163:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TPROC);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[9]=(word)fp;fp+=7;R[10]=F(43);if(R[6]==R[10]){R[3]=G(R[2],2);ob=(word *)R[9];acc=1;}else{R[3]=G(R[2],3);ob=(word *)R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1164:if(acc==2){R[5]=G(R[1],2);R[6]=F(0);R[8]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1165:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=F(1);ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1166:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[7];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1167:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[5];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=F(101);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1168:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=R[9];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1169:if(acc==5){R[8]=G(R[1],3);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[9]=(word)fp;fp+=7;R[10]=G(R[1],2);R[11]=F(43);if(R[10]==R[11]){R[3]=R[6];ob=(word *)R[9];acc=1;}else{R[12]=G(R[2],2);R[4]=F(0);R[5]=R[6];R[3]=R[9];ob=(word *)R[12];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1170:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[5];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=R[9];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1171:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],3);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[5]=G(R[1],2);R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1172:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[5];R[7]=(word)fp;fp+=3;R[5]=F(0);R[9]=R[6];R[6]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1173:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=G(R[2],4);R[10]=IFALSE;R[11]=R[6];R[6]=R[10];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1174:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[9]=(word)fp;fp+=7;if(R[3]==IFALSE){R[10]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[9];R[3]=(word)fp;fp+=3;R[4]=R[7];ob=(word *)R[10];acc=3;}else{ob=(word *)R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1175:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],4);R[5]=G(R[1],3);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],6);R[6]=G(R[2],5);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1176:if(acc==2){R[5]=F(10);if(R[4]==R[5]){R[6]=G(R[1],2);ob=(word *)R[3];R[3]=R[6];acc=1;}else{*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[4];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1177:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=4;R[8]=G(R[2],4);R[6]=F(100);R[10]=R[5];R[5]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1178:if(acc==2){R[5]=G(R[1],2);R[6]=F(48);R[7]=F(57);R[9]=R[5];R[5]=R[4];R[4]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1179:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1180:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=5;ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1181:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[10]=(word)fp;fp+=6;R[6]=G(R[1],3);R[7]=G(R[1],2);R[13]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[13];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1182:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1183:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=5;R[6]=G(R[1],3);R[7]=G(R[1],2);R[12]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[12];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1184:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[6]=G(R[1],3);R[7]=G(R[1],2);R[11]=R[3];R[3]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[11];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1185:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=8;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1186:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],2);R[7]=R[4];R[4]=R[11];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],2);R[7]=R[4];R[4]=R[11];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1187:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],6);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[10]=G(R[1],2);R[11]=R[4];R[4]=R[3];R[3]=R[6];R[5]=R[7];R[6]=R[8];R[7]=R[9];R[8]=R[10];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1188:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[11]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];R[8]=R[9];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1189:if(acc==6){*fp=make_header(6,TCLOS);fp[1]=G(R[1],2);fp[5]=R[6];fp[4]=R[7];fp[3]=R[8];fp[2]=R[5];R[5]=(word)fp;fp+=6;ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1190:if(acc==3){if(R[4]==INULL){R[6]=INULL;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[3];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[5];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=9;ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1191:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],8);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],3);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],4);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[12]=G(R[1],2);R[8]=R[4];R[4]=R[12];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1192:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);if(R[4]==IFALSE){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[4]=G(R[5],2);R[5]=G(R[1],3);R[9]=G(R[1],7);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[9];fp[2]=R[6];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=3;}else{R[5]=G(R[1],7);R[3]=G(R[1],2);ob=(word *)R[5];acc=1;}}else{{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];R[6]=ob[3];}R[7]=G(R[2],3);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],4);fp[7]=R[12];fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=8;R[14]=G(R[2],5);R[4]=R[6];R[6]=R[5];R[5]=R[14];ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1193:if(acc==1){R[4]=G(R[1],5);if(R[4]==IFALSE){R[5]=G(R[1],4);if(R[5]==IFALSE){R[6]=G(R[2],2);R[7]=G(R[1],7);R[4]=G(R[1],6);R[9]=G(R[1],3);R[10]=R[6];R[5]=R[3];R[3]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{R[6]=G(R[1],2);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[4]=G(R[1],3);R[5]=R[6];ob=(word *)R[5];acc=3;}}else{R[5]=G(R[2],2);R[6]=G(R[1],7);R[7]=G(R[1],6);R[8]=G(R[1],3);R[9]=R[5];R[5]=R[3];R[3]=R[6];R[4]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1194:if(acc==4){R[7]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[5];R[8]=(word)fp;fp+=3;R[5]=R[6];R[6]=R[4];R[4]=R[8];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1195:if(acc==3){R[6]=F(92);if(R[4]==R[6]){if(R[5]==INULL){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=F(47);R[9]=prim_less(R[8],R[7]);R[10]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[3];fp[4]=R[5];fp[3]=R[10];fp[2]=R[7];R[11]=(word)fp;fp+=6;if(R[9]==IFALSE){R[3]=IFALSE;ob=(word *)R[11];acc=1;}else{R[12]=F(58);R[3]=prim_less(R[7],R[12]);ob=(word *)R[11];acc=1;}}}else{*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1196:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=F(92);if(R[4]==R[5]){R[6]=G(R[1],5);R[3]=G(R[1],4);ob=(word *)R[6];acc=1;}else{R[6]=G(R[1],5);R[3]=G(R[1],4);ob=(word *)R[6];acc=1;}}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=F(48);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1197:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],3);R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1198:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=5;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1199:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=INULL;R[10]=R[4];R[11]=R[5];R[5]=R[3];R[4]=R[6];R[6]=R[7];R[7]=R[8];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1200:if(acc==6){if(R[5]==INULL){R[9]=G(R[1],2);R[4]=R[7];ob=(word *)R[9];acc=2;}else{R[9]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[1],4);fp[7]=R[3];fp[6]=R[6];fp[5]=R[8];fp[4]=R[4];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[4]=R[5];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1201:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],6);R[7]=G(R[1],4);R[8]=G(R[1],7);R[9]=G(R[1],5);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],3);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],4);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1202:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);if(R[4]==IFALSE){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[5],1);R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[8]=G(R[1],5);R[3]=G(R[1],7);R[12]=G(R[1],4);R[5]=R[6];R[6]=R[4];R[7]=R[9];R[4]=R[12];ob=(word *)R[8];acc=6;}else{R[5]=G(R[1],2);R[6]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=3;R[8]=G(R[1],7);ob=(word *)R[8];acc=1;}}else{{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];R[6]=ob[3];}R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1203:if(acc==1){R[4]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=4;R[6]=G(R[1],5);if(R[6]==IFALSE){R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[6]=IFALSE;R[11]=INULL;R[3]=R[5];R[4]=R[8];R[8]=R[7];R[5]=R[9];R[7]=R[11];ob=(word *)R[8];acc=6;}else{R[7]=G(R[1],2);R[8]=INULL;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[3]=(word)fp;fp+=3;ob=(word *)R[5];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1204:if(acc==2){if(R[4]==INULL){R[5]=INULL;ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[5];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1205:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1206:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);if(R[4]==INULL){R[5]=G(R[1],3);R[3]=R[4];ob=(word *)R[5];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}}else{R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1207:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1208:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[2],3);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1209:if(acc==4){if(R[5]==INULL){R[7]=G(R[1],2);ob=(word *)R[7];acc=3;}else{R[7]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[6];fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1210:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],3);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],4);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1211:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[4]=G(R[1],3);R[3]=R[7];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],4);R[3]=ITRUE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1212:if(acc==4){*fp=make_header(4,2);fp[1]=R[4];fp[2]=R[5];fp[3]=R[6];R[7]=(word)fp;fp+=4;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1213:if(acc==3){R[6]=INULL;R[7]=G(R[1],2);R[8]=G(R[1],3);R[10]=R[4];R[4]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1214:if(acc==4){if(R[4]==INULL){R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);assert(pairp(R[7]),R[7],1052);R[8]=G(R[7],1);if(R[5]==R[8]){R[9]=G(R[7],2);ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[4]=G(R[4],2);ob=(word *)R[6];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1215:if(acc==4){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1216:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[7];fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[4]=R[6];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1217:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[12]=F(1);R[8]=R[4];R[5]=R[3];R[3]=R[11];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1218:if(acc==1){R[4]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],6);R[3]=G(R[1],5);R[10]=G(R[1],4);R[11]=G(R[1],7);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[11];fp[2]=R[5];R[12]=(word)fp;fp+=4;R[5]=R[4];R[6]=R[7];R[4]=R[10];R[7]=R[12];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1219:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],3);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[4]=R[6];R[6]=R[5];R[5]=R[10];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1220:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1221:if(acc==5){assert(pairp(R[4]),R[4],1052);R[8]=G(R[4],1);if(R[5]==R[8]){assert(pairp(R[5]),R[5],1052);R[9]=G(R[5],1);R[5]=G(R[5],2);R[11]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[9];R[3]=(word)fp;fp+=5;R[13]=INULL;R[4]=R[6];R[6]=R[13];ob=(word *)R[11];acc=4;}else{R[9]=G(R[4],1);R[4]=G(R[4],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1222:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);assert(pairp(R[6]),R[6],1053);R[7]=G(R[6],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=3;R[9]=G(R[1],4);ob=(word *)R[9];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1223:if(acc==5){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[6];acc=1;}else{if(R[4]==R[5]){ob=(word *)R[3];R[3]=R[6];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[8]=G(R[4],2);R[9]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[6];R[6]=(word)fp;fp+=3;R[4]=R[8];ob=(word *)R[7];acc=5;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1224:if(acc==5){R[8]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=4;R[7]=G(R[1],2);R[8]=R[9];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1225:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],3);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=G(R[1],2);R[5]=F(1);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1226:if(acc==5){R[8]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[8];fp[2]=R[6];R[7]=(word)fp;fp+=5;ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1227:if(acc==5){R[8]=G(R[1],3);R[9]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[3];fp[5]=R[9];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[6]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[7];R[7]=(word)fp;fp+=3;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1228:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[5]=G(R[1],6);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[5]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[4];R[3]=R[6];R[4]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{R[4]=G(R[1],6);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1229:if(acc==5){R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[9];fp[2]=R[7];R[7]=(word)fp;fp+=4;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1230:if(acc==4){R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1231:if(acc==5){R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],2);fp[7]=R[3];fp[6]=R[9];fp[5]=R[4];fp[4]=R[5];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=8;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1232:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],7);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[10]=G(R[1],2);R[11]=R[4];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}else{R[4]=G(R[1],7);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1233:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],6);R[3]=G(R[1],5);R[6]=G(R[1],4);R[4]=R[5];R[5]=R[8];ob=(word *)R[9];acc=4;}else{R[4]=G(R[1],5);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1234:if(acc==5){if(R[4]==INULL){R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=G(R[2],2);R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[7];fp[7]=R[3];fp[6]=R[6];fp[5]=R[5];fp[4]=R[4];fp[3]=R[10];fp[2]=R[9];R[3]=(word)fp;fp+=9;ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1235:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],4);R[6]=G(R[1],8);R[7]=G(R[1],6);R[8]=G(R[1],5);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],3);R[5]=R[4];R[4]=R[11];ob=(word *)R[5];acc=3;}else{R[4]=G(R[1],4);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],3);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(7,TPROC);fp[1]=G(R[2],4);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[4]=G(R[1],3);R[13]=IFALSE;R[9]=R[6];R[6]=R[13];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1236:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1237:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1238:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],6);R[3]=G(R[1],5);R[6]=G(R[1],4);R[4]=R[5];R[5]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1239:if(acc==6){if(R[4]==INULL){R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=G(R[2],2);R[10]=G(R[1],2);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[7];fp[7]=R[3];fp[6]=R[6];fp[5]=R[10];fp[4]=R[5];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=9;ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1240:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],8);R[6]=G(R[1],6);R[7]=G(R[1],4);R[8]=G(R[1],7);R[9]=G(R[1],2);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],5);if(R[5]==R[6]){R[7]=G(R[4],2);R[8]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[10]=G(R[1],8);R[3]=G(R[1],7);R[6]=G(R[1],6);R[4]=R[7];ob=(word *)R[10];acc=4;}else{R[7]=G(R[1],7);R[3]=IFALSE;ob=(word *)R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1241:if(acc==6){if(R[4]==INULL){ob=(word *)R[7];acc=4;}else{R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[1],3);fp[7]=R[8];fp[6]=R[3];fp[5]=R[5];fp[4]=R[6];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=8;ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1242:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],6);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1243:if(acc==5){ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1244:if(acc==6){R[9]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[5];fp[2]=R[6];R[6]=(word)fp;fp+=6;R[7]=F(0);R[12]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[12];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1245:if(acc==3){R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],5);fp[3]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=4;R[8]=G(R[1],4);if(R[8]==IFALSE){R[3]=IFALSE;ob=(word *)R[7];acc=1;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[7];fp[5]=R[8];fp[4]=R[10];fp[3]=R[4];fp[2]=R[9];R[11]=(word)fp;fp+=7;if(R[9]==IFALSE){R[12]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[11];R[3]=(word)fp;fp+=3;R[4]=R[10];ob=(word *)R[12];acc=2;}else{R[3]=R[9];ob=(word *)R[11];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1246:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],3);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;R[9]=G(R[1],2);if(R[9]==IFALSE){R[10]=G(R[2],4);if(R[10]==IFALSE){R[3]=IFALSE;ob=(word *)R[8];acc=1;}else{R[3]=R[10];ob=(word *)R[8];acc=1;}}else{R[3]=R[9];ob=(word *)R[8];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1247:if(acc==5){R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[5];fp[4]=R[3];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1248:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[2],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],4);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1249:if(acc==3){if(R[4]==INULL){R[6]=IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1250:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=F(10);if(R[5]==R[6]){R[7]=G(R[1],3);R[3]=ITRUE;ob=(word *)R[7];acc=1;}else{R[4]=G(R[4],2);R[5]=G(R[1],4);R[3]=G(R[1],3);ob=(word *)R[5];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1251:if(acc==5){*fp=make_header(5,TCLOS);fp[1]=G(R[1],2);fp[4]=R[5];fp[3]=R[7];fp[2]=R[4];R[8]=(word)fp;fp+=5;R[9]=F(1);R[10]=F(0);R[7]=INULL;R[5]=R[6];R[4]=R[9];R[6]=R[10];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1252:if(acc==6){if(R[5]==INULL){R[9]=G(R[2],6);R[10]=INULL;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[11];R[12]=(word)fp;fp+=3;R[13]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[12];R[14]=(word)fp;fp+=3;R[15]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[15];fp[2]=R[14];R[5]=(word)fp;fp+=3;R[17]=G(R[2],2);R[18]=G(R[1],3);R[19]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[3];fp[5]=R[19];fp[4]=R[6];fp[3]=R[18];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[2],4);ob=(word *)R[17];acc=3;}else{R[9]=G(R[2],7);R[10]=G(R[1],2);R[11]=G(R[1],3);R[12]=G(R[1],4);*fp=make_header(11,TCLOS);fp[1]=G(R[2],8);fp[10]=R[8];fp[9]=R[3];fp[8]=R[6];fp[7]=R[5];fp[6]=R[12];fp[5]=R[11];fp[4]=R[7];fp[3]=R[10];fp[2]=R[4];R[3]=(word)fp;fp+=11;R[4]=R[5];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1253:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);R[5]=G(R[1],4);R[6]=G(R[1],8);R[7]=G(R[1],2);R[8]=G(R[1],9);R[9]=G(R[1],10);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],7);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],3);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],8);R[13]=G(R[1],9);R[14]=G(R[1],10);*fp=make_header(11,TCLOS);fp[1]=G(R[2],4);fp[10]=R[14];fp[9]=R[13];fp[8]=R[12];fp[7]=R[4];fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=11;R[16]=F(10);R[4]=R[5];R[5]=R[16];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1254:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],2);R[9]=G(R[1],9);R[10]=G(R[1],10);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[5];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=8;R[4]=G(R[1],8);R[5]=F(1);ob=(word *)R[6];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);R[12]=G(R[1],9);R[13]=G(R[1],10);*fp=make_header(11,TCLOS);fp[1]=G(R[2],5);fp[10]=R[13];fp[9]=R[12];fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=11;R[9]=R[4];R[4]=R[8];R[5]=R[11];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1255:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],6);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;R[9]=G(R[2],5);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[5]=(word)fp;fp+=3;R[13]=G(R[2],2);R[14]=G(R[1],4);R[15]=G(R[1],5);R[16]=G(R[1],8);R[17]=G(R[1],6);R[18]=G(R[1],9);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[18];fp[5]=R[17];fp[4]=R[16];fp[3]=R[15];fp[2]=R[14];R[3]=(word)fp;fp+=7;R[4]=G(R[2],4);ob=(word *)R[13];acc=3;}else{R[4]=G(R[2],7);R[5]=G(R[1],7);R[6]=G(R[1],8);R[7]=G(R[1],9);R[8]=G(R[1],10);*fp=make_header(6,TCLOS);fp[1]=G(R[2],8);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=F(1);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1256:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=INULL;R[11]=R[5];R[5]=R[7];R[7]=R[8];R[8]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[11];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1257:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1258:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1259:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=F(1);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1260:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],7);R[9]=G(R[1],6);R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=R[3];R[3]=R[9];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1261:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1262:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1263:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],4);R[5]=R[4];R[4]=R[9];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1264:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[2],4);R[5]=G(R[2],5);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1265:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1266:if(acc==1){R[4]=F(96);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=4;R[4]=G(R[2],4);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1267:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[5]=F(4);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1268:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=F(0);R[5]=F(1);R[9]=R[4];R[10]=R[6];R[6]=R[3];R[4]=R[7];R[3]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1269:if(acc==2){R[5]=F(32);ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1270:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1271:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[2],3);R[7]=G(R[2],4);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1272:if(acc==5){R[8]=G(R[1],2);ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1273:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],3);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[1],2);R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1274:if(acc==5){R[8]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[5];R[5]=(word)fp;fp+=3;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1275:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[6];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[3]=(word)fp;fp+=8;R[4]=G(R[1],2);ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1276:if(acc==2){R[5]=G(R[1],2);R[6]=IFALSE;R[8]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1277:if(acc==2){R[5]=G(R[1],2);R[6]=ITRUE;R[8]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1278:if(acc==5){R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[5];fp[4]=R[6];fp[3]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=6;R[5]=INULL;R[6]=R[7];R[7]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1279:if(acc==5){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[5];R[9]=(word)fp;fp+=4;R[10]=G(R[1],3);R[11]=G(R[1],4);R[12]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[12];fp[6]=R[4];fp[5]=R[11];fp[4]=R[6];fp[3]=R[5];fp[2]=R[10];R[13]=(word)fp;fp+=8;R[7]=R[6];R[5]=R[9];R[6]=R[13];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1280:if(acc==3){R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(10,TCLOS);fp[1]=G(R[2],4);fp[9]=R[10];fp[8]=R[3];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[11]=(word)fp;fp+=10;R[12]=G(R[1],2);if(R[12]==IFALSE){R[13]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[11];R[3]=(word)fp;fp+=3;R[4]=R[6];ob=(word *)R[13];acc=2;}else{R[3]=R[12];ob=(word *)R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1281:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],8);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],2);R[7]=R[4];R[4]=R[11];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1282:if(acc==5){R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[10]=G(R[1],3);R[6]=R[7];R[7]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1283:if(acc==5){R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[6];fp[5]=R[9];fp[4]=R[4];fp[3]=R[5];fp[2]=R[7];R[6]=(word)fp;fp+=7;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1284:if(acc==3){R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[9];fp[3]=R[4];fp[2]=R[5];R[10]=(word)fp;fp+=5;R[11]=G(R[1],2);R[12]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[10];R[7]=R[11];ob=(word *)R[12];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1285:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=R[4];R[4]=R[8];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1286:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1287:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1288:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[5];R[5]=(word)fp;fp+=4;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1289:if(acc==5){R[8]=G(R[1],3);if(R[6]==R[8]){R[9]=G(R[1],2);ob=(word *)R[9];acc=5;}else{R[9]=G(R[2],2);R[8]=R[5];R[4]=R[7];R[5]=R[9];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1290:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[9];R[5]=(word)fp;fp+=4;ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1291:if(acc==5){R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],2);fp[7]=R[5];fp[6]=R[3];fp[5]=R[7];fp[4]=R[9];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[4]=R[6];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1292:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[2],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],4);R[5]=G(R[1],6);R[6]=G(R[1],3);R[7]=G(R[1],7);R[8]=G(R[1],2);R[9]=G(R[1],5);R[10]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1293:if(acc==2){*fp=make_header(3,TPROC);fp[1]=G(R[1],2);fp[2]=R[4];R[5]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1294:if(acc==5){R[8]=G(R[1],2);R[10]=R[5];R[5]=R[6];R[6]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1295:if(acc==6){if(R[4]==INULL){R[5]=G(R[1],2);R[4]=R[7];ob=(word *)R[6];acc=3;}else{R[9]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[1],4);fp[7]=R[5];fp[6]=R[3];fp[5]=R[6];fp[4]=R[7];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=8;ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1296:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],7);R[8]=G(R[1],6);R[9]=G(R[1],2);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[2],3);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],4);fp[6]=R[10];fp[5]=R[9];fp[4]=R[5];fp[3]=R[8];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=G(R[1],4);R[5]=F(1);ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1297:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[4];R[11]=R[5];R[5]=R[7];R[7]=R[3];R[4]=R[6];R[6]=R[8];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1298:if(acc==3){if(R[4]==INULL){R[6]=ITRUE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1299:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1300:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=R[5];R[3]=R[6];R[6]=R[4];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1301:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[4]=G(R[1],4);R[9]=G(R[1],5);R[10]=R[6];R[6]=R[5];R[3]=R[7];R[5]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1302:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=F(0);R[7]=INULL;R[8]=G(R[2],3);R[10]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1303:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=F(0);R[7]=INULL;R[8]=G(R[1],2);R[10]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1304:if(acc==3){R[6]=G(R[1],2);R[7]=F(0);R[8]=INULL;R[10]=R[6];R[11]=R[5];R[5]=R[7];R[7]=R[4];R[6]=R[8];R[4]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1305:if(acc==6){R[9]=G(R[1],2);if(R[5]==R[9]){R[10]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[3];fp[4]=R[8];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[10];acc=2;}else{if(R[4]==INULL){R[10]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[10];acc=2;}else{R[10]=F(1);{word res=fixval(R[5])+fixval(R[10]);R[12]=BOOL(res&(1< */ + case 1306:if(acc==1){R[4]=F(19);R[5]=IFALSE;R[6]=prim_lraw(R[3],fixval(R[4]),R[5]);R[7]=G(R[2],2);R[3]=G(R[1],3);R[5]=G(R[1],2);R[4]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1307:if(acc==1){R[4]=F(19);R[5]=IFALSE;R[6]=prim_lraw(R[3],fixval(R[4]),R[5]);R[7]=G(R[2],2);R[5]=G(R[1],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[11];fp[4]=R[10];fp[3]=R[9];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1308:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],3);R[7]=F(0);R[8]=INULL;R[9]=G(R[1],2);R[11]=R[6];R[6]=R[8];R[8]=R[4];R[3]=R[5];R[5]=R[7];R[7]=R[9];R[4]=R[11];ob=(word *)R[8];acc=6;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1309:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1310:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1311:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[5];fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1312:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],2);R[3]=INULL;ob=(word *)R[5];acc=1;}else{*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[8];R[3]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1313:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;R[8]=F(4);R[9]=IFALSE;R[10]=R[6];R[5]=R[4];R[3]=R[7];R[4]=R[8];R[6]=R[9];R[7]=R[9];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1314:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[2],4);R[5]=F(2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];}R[6]=G(R[2],5);R[7]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],6);fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1315:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[6];fp[5]=R[3];fp[4]=R[5];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=7;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1316:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);if(R[4]==INULL){R[5]=G(R[1],5);R[6]=G(R[1],4);R[3]=R[4];R[4]=R[6];ob=(word *)R[5];acc=2;}else{R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],3);R[7]=G(R[1],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],4);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1317:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[11]=G(R[1],2);R[4]=R[5];R[5]=R[11];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1318:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);if(immediatep(R[6])){R[7]=IFALSE;}else{word h=V(R[6]);R[7]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[8]=G(R[2],2);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[10];fp[3]=R[9];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=G(R[1],3);R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1319:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(3);R[8]=IFALSE;R[10]=R[5];R[5]=R[4];R[3]=R[6];R[4]=R[7];R[6]=R[8];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1320:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1321:if(acc==3){R[6]=G(R[1],2);R[7]=ITRUE;R[9]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1322:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[10]=F(5);R[7]=F(0);R[6]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[8];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1323:if(acc==1){R[4]=ITRUE;if(R[3]==R[4]){R[5]=G(R[1],2);if(R[5]==IFALSE){R[6]=G(R[1],5);ob=(word *)R[6];acc=1;}else{R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[4]=G(R[2],4);R[5]=F(5);ob=(word *)R[6];acc=3;}}else{R[5]=G(R[1],5);ob=(word *)R[5];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1324:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=ITRUE;R[3]=R[5];R[5]=R[7];R[7]=R[4];R[4]=R[6];R[6]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1325:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(1);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1326:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(0);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1327:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1328:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[4];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[9]=R[5];R[5]=R[6];R[6]=R[7];R[4]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1329:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[3]=R[5];ob=(word *)R[4];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1330:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=F(15);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1331:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=F(0);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1332:if(acc==3){if(immediatep(R[4])){R[6]=IFALSE;}else{word h=V(R[4]);R[6]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[7]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[9]=F(1);R[4]=R[5];R[5]=R[9];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1333:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1334:if(acc==2){R[5]=G(R[1],2);R[6]=prim_ref(R[5],R[4]);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1335:if(acc==1){R[4]=F(19);R[5]=IFALSE;R[3]=prim_lraw(R[3],fixval(R[4]),R[5]);R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1336:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=F(1);R[7]=G(R[1],2);R[8]=IFALSE;R[10]=R[4];R[11]=R[5];R[5]=R[3];R[4]=R[6];R[6]=R[7];R[7]=R[8];R[3]=R[11];ob=(word *)R[10];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1337:if(acc==2){R[5]=G(R[1],2);R[6]=F(2);R[7]=IFALSE;R[10]=R[5];R[5]=R[4];R[4]=R[6];R[6]=R[7];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1338:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[3];R[7]=(word)fp;fp+=3;R[8]=ITRUE;R[9]=R[6];R[3]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1339:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1340:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[5];fp[4]=R[3];fp[3]=R[4];fp[2]=R[7];R[8]=(word)fp;fp+=6;if(R[6]==IFALSE){R[3]=G(R[2],2);ob=(word *)R[8];acc=1;}else{R[9]=G(R[2],3);R[3]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1341:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[8];R[6]=(word)fp;fp+=3;R[10]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1342:if(acc==3){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[6]=ob[1];R[7]=ob[2];}R[8]=F(1);if(R[7]==R[8]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[4];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1343:if(acc==1){R[4]=G(R[2],3);R[5]=G(R[1],2);R[6]=G(R[2],2);R[7]=F(1);R[10]=R[6];R[11]=R[5];R[5]=R[3];R[6]=R[7];R[7]=R[4];R[4]=R[10];R[3]=R[11];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1344:if(acc==5){if(R[5]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);R[9]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1345:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=G(R[1],3);R[5]=F(1);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1346:if(acc==1){R[4]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],4);fp[2]=R[4];R[5]=(word)fp;fp+=3;if(R[3]==IFALSE){R[6]=G(R[2],2);R[4]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{ob=(word *)R[5];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1347:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1348:if(acc==1){if(R[3]==IFALSE){R[4]=F(39);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1349:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=2;}else{R[4]=G(R[1],3);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1350:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[2],2);R[6]=(R[4]==R[5])?ITRUE:IFALSE;if(R[6]==IFALSE){R[7]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[7];acc=1;}else{R[7]=G(R[1],3);R[3]=R[6];ob=(word *)R[7];acc=1;}}else{R[4]=G(R[1],3);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1351:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[4];R[5]=(word)fp;fp+=3;*fp=make_header(3,TPROC);fp[1]=G(R[1],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1352:if(acc==5){R[8]=G(R[2],2);R[9]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[6];fp[6]=R[4];fp[5]=R[3];fp[4]=R[5];fp[3]=R[7];fp[2]=R[9];R[3]=(word)fp;fp+=8;R[6]=IFALSE;ob=(word *)R[8];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1353:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);if(R[4]==INULL){R[5]=G(R[1],7);R[6]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[6];R[3]=(word)fp;fp+=3;R[4]=G(R[1],6);ob=(word *)R[5];acc=2;}else{R[5]=G(R[2],3);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],4);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[4];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=8;ob=(word *)R[5];acc=2;}}else{R[4]=G(R[2],5);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],6);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[10]=(word)fp;fp+=8;R[5]=F(0);R[8]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1354:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],6);R[9]=R[4];R[5]=R[8];R[4]=R[11];ob=(word *)R[9];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],3);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1355:if(acc==1){R[4]=F(35);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[7];R[5]=(word)fp;fp+=3;R[9]=G(R[2],2);R[10]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[10];R[11]=(word)fp;fp+=3;R[4]=R[3];R[3]=R[11];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1356:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],4);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[9];fp[3]=R[8];fp[2]=R[5];R[6]=(word)fp;fp+=5;R[11]=R[7];R[7]=R[4];R[4]=R[3];R[5]=R[8];R[3]=R[11];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1357:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=6;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1358:if(acc==1){R[4]=F(61);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(35);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[8]=G(R[2],2);R[9]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[9];R[3]=(word)fp;fp+=3;R[4]=G(R[1],2);ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1359:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(4,TPROC);fp[1]=G(R[2],5);fp[3]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=4;R[10]=F(10);R[11]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[9];R[6]=R[10];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1360:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],6);R[8]=G(R[1],5);R[9]=G(R[1],3);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=F(34);R[5]=G(R[1],6);R[6]=G(R[1],7);*fp=make_header(4,TPROC);fp[1]=G(R[2],6);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[7];R[5]=(word)fp;fp+=3;R[9]=G(R[2],4);R[10]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],5);fp[2]=R[10];R[3]=(word)fp;fp+=3;R[4]=G(R[1],4);ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1361:if(acc==1){R[4]=F(34);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1362:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],6);R[7]=G(R[1],3);R[8]=G(R[1],5);R[9]=G(R[1],4);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[1],6);R[5]=G(R[1],7);*fp=make_header(4,TCLOS);fp[1]=G(R[2],5);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[7];R[3]=(word)fp;fp+=3;R[4]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1363:if(acc==4){if(R[5]==INULL){R[7]=F(41);R[8]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[4];R[9]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[9];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[7]=G(R[2],3);R[8]=G(R[1],2);R[9]=G(R[1],3);*fp=make_header(8,TCLOS);fp[1]=G(R[2],4);fp[7]=R[3];fp[6]=R[9];fp[5]=R[4];fp[4]=R[5];fp[3]=R[8];fp[2]=R[6];R[3]=(word)fp;fp+=8;R[6]=IFALSE;ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1364:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],7);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],2);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],5);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[10]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1365:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[3];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[5]=F(0);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1366:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],8);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;if(R[3]==IFALSE){R[7]=F(61);R[8]=G(R[1],5);R[9]=G(R[1],2);R[10]=G(R[1],3);R[11]=G(R[1],4);R[12]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[12];fp[5]=R[11];fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[13]=(word)fp;fp+=7;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[13];R[3]=(word)fp;fp+=3;ob=(word *)R[6];acc=1;}else{R[7]=F(41);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[10];R[3]=(word)fp;fp+=3;ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1367:if(acc==1){R[4]=F(35);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[7];R[3]=(word)fp;fp+=3;R[4]=G(R[1],2);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1368:if(acc==1){R[4]=F(35);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(32);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=F(46);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1369:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[8];fp[3]=R[6];fp[2]=R[7];R[9]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[9];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1370:if(acc==2){R[5]=F(41);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[4];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=6;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[9];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1371:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=F(0);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1372:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[10]=R[4];R[6]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1373:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],6);R[9]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[9];R[10]=(word)fp;fp+=3;R[11]=R[7];R[7]=R[4];R[3]=R[6];R[5]=R[8];R[6]=R[10];R[4]=R[11];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],6);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],7);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[9];fp[2]=R[4];R[10]=(word)fp;fp+=4;R[3]=R[7];R[7]=R[6];R[4]=R[8];R[6]=R[10];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1374:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=5;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1375:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);if(R[5]==INULL){R[6]=G(R[4],2);R[7]=G(R[1],4);R[4]=G(R[1],3);R[5]=R[6];R[6]=R[7];ob=(word *)R[6];acc=4;}else{R[6]=G(R[4],2);R[7]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=G(R[1],3);R[5]=R[6];R[6]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1376:if(acc==2){R[5]=F(41);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[8]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1377:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(46);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1378:if(acc==1){R[4]=F(40);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1379:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],5);R[5]=G(R[1],6);R[6]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],6);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=5;R[8]=G(R[1],4);if(R[8]==IFALSE){R[3]=G(R[2],4);ob=(word *)R[7];acc=1;}else{R[3]=G(R[2],5);ob=(word *)R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1380:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],7);R[8]=G(R[1],6);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],3);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1381:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],5);R[10]=G(R[1],4);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],3);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1382:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],7);R[7]=G(R[1],6);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=G(R[1],3);R[6]=IFALSE;R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1383:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[2],3);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=4;R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[9];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],8);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[2],7);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[6]=(word)fp;fp+=3;R[10]=G(R[2],5);R[3]=G(R[1],2);R[4]=G(R[2],2);R[13]=G(R[1],3);R[14]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],6);fp[3]=R[14];fp[2]=R[13];R[5]=(word)fp;fp+=4;ob=(word *)R[10];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1384:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[2],2);if(R[4]==R[5]){R[6]=F(121);R[7]=G(R[1],4);R[8]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=4;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[9];R[10]=(word)fp;fp+=3;R[11]=F(116);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;R[13]=F(112);*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[12];R[14]=(word)fp;fp+=3;R[15]=F(109);*fp=PAIRHDR;fp[1]=R[15];fp[2]=R[14];R[16]=(word)fp;fp+=3;R[17]=F(101);*fp=PAIRHDR;fp[1]=R[17];fp[2]=R[16];R[18]=(word)fp;fp+=3;R[19]=F(35);*fp=PAIRHDR;fp[1]=R[19];fp[2]=R[18];R[3]=(word)fp;fp+=3;R[21]=G(R[1],6);ob=(word *)R[21];acc=1;}else{R[6]=G(R[2],4);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],5);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=7;ob=(word *)R[6];acc=2;}}else{R[4]=G(R[2],6);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],7);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1385:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[7];R[5]=R[3];R[7]=R[4];R[3]=R[6];R[6]=R[8];R[4]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1386:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],5);fp[3]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=4;R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[9];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1387:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[2],2);if(R[4]==R[5]){R[6]=G(R[2],3);R[3]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[9];fp[2]=R[8];R[5]=(word)fp;fp+=4;ob=(word *)R[6];acc=3;}else{R[6]=G(R[2],5);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],6);fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[4]=G(R[2],7);ob=(word *)R[6];acc=2;}}else{R[4]=G(R[2],3);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],8);fp[3]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=4;R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[9];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1388:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=4;R[9]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1389:if(acc==1){R[4]=F(41);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(40);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=F(39);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1390:if(acc==4){if(R[4]==INULL){R[7]=F(41);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[5];R[8]=(word)fp;fp+=3;R[9]=F(40);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1391:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=F(10);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1392:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1393:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],5);*fp=make_header(3,TCLOS);fp[1]=G(R[2],5);fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=F(41);R[7]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[9];R[3]=(word)fp;fp+=3;R[4]=G(R[1],3);R[6]=R[5];R[5]=R[8];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1394:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[7]=G(R[2],2);R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[3];fp[5]=R[8];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=7;ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1395:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[5]=G(R[1],6);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[5]=G(R[1],3);R[3]=R[6];R[6]=R[4];R[4]=R[7];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[9];fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=G(R[1],3);R[4]=R[6];R[6]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1396:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(46);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=3;R[9]=G(R[1],2);ob=(word *)R[9];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1397:if(acc==1){assert(pairp(R[3]),R[3],1053);R[4]=G(R[3],2);R[5]=F(40);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=3;R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1398:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],6);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=G(R[1],3);if(R[7]==IFALSE){R[3]=G(R[2],4);ob=(word *)R[6];acc=1;}else{R[3]=G(R[2],5);ob=(word *)R[6];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1399:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],5);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1400:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=G(R[1],2);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1401:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[1],5);R[5]=G(R[1],3);R[6]=G(R[2],4);R[7]=G(R[1],2);R[9]=R[6];R[6]=R[4];R[3]=R[5];R[5]=R[7];R[4]=R[9];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1402:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],6);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[6];fp[2]=R[9];R[10]=(word)fp;fp+=4;R[5]=G(R[1],2);R[9]=R[4];R[6]=R[3];R[3]=R[8];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1403:if(acc==3){R[6]=G(R[1],2);R[7]=prim_ref(R[6],R[5]);R[6]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[5]=R[4];R[4]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1404:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1405:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[5]=R[3];R[3]=R[6];R[6]=R[4];R[4]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1406:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[2],2);if(R[4]==R[5]){R[6]=F(121);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=F(116);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=F(112);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;R[13]=F(109);*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[12];R[14]=(word)fp;fp+=3;R[15]=F(101);*fp=PAIRHDR;fp[1]=R[15];fp[2]=R[14];R[16]=(word)fp;fp+=3;R[17]=F(35);*fp=PAIRHDR;fp[1]=R[17];fp[2]=R[16];R[3]=(word)fp;fp+=3;R[19]=G(R[1],5);ob=(word *)R[19];acc=1;}else{R[6]=G(R[2],3);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=6;ob=(word *)R[6];acc=2;}}else{R[4]=G(R[2],5);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],6);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1407:if(acc==1){R[4]=F(114);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(35);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1408:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[9]=R[6];R[6]=R[4];R[4]=R[3];R[5]=R[7];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1409:if(acc==1){R[4]=F(35);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1410:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(116);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=F(101);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=F(107);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[11]=(word)fp;fp+=3;R[12]=F(99);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[13]=(word)fp;fp+=3;R[14]=F(111);*fp=PAIRHDR;fp[1]=R[14];fp[2]=R[13];R[15]=(word)fp;fp+=3;R[16]=F(115);*fp=PAIRHDR;fp[1]=R[16];fp[2]=R[15];R[17]=(word)fp;fp+=3;R[18]=F(91);*fp=PAIRHDR;fp[1]=R[18];fp[2]=R[17];R[19]=(word)fp;fp+=3;R[20]=F(35);*fp=PAIRHDR;fp[1]=R[20];fp[2]=R[19];R[3]=(word)fp;fp+=3;R[22]=G(R[1],2);ob=(word *)R[22];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1411:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1412:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(112);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=F(99);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=F(116);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[11]=(word)fp;fp+=3;R[12]=F(91);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[13]=(word)fp;fp+=3;R[14]=F(35);*fp=PAIRHDR;fp[1]=R[14];fp[2]=R[13];R[3]=(word)fp;fp+=3;R[16]=G(R[1],2);ob=(word *)R[16];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1413:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1414:if(acc==1){R[4]=F(93);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[8];R[9]=(word)fp;fp+=3;R[4]=R[3];R[5]=R[6];R[6]=R[7];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1415:if(acc==1){R[4]=F(32);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(100);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=F(102);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=F(91);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[11]=(word)fp;fp+=3;R[12]=F(35);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[3]=(word)fp;fp+=3;R[14]=G(R[1],2);ob=(word *)R[14];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1416:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[2],2);if(R[4]==R[5]){R[6]=F(121);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=F(116);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=F(112);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[12]=(word)fp;fp+=3;R[13]=F(109);*fp=PAIRHDR;fp[1]=R[13];fp[2]=R[12];R[14]=(word)fp;fp+=3;R[15]=F(101);*fp=PAIRHDR;fp[1]=R[15];fp[2]=R[14];R[16]=(word)fp;fp+=3;R[17]=F(35);*fp=PAIRHDR;fp[1]=R[17];fp[2]=R[16];R[3]=(word)fp;fp+=3;R[19]=G(R[1],4);ob=(word *)R[19];acc=1;}else{R[6]=G(R[2],3);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=4;R[4]=G(R[2],5);ob=(word *)R[6];acc=2;}}else{R[4]=F(102);R[5]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=F(111);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;R[9]=F(101);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=F(35);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[3]=(word)fp;fp+=3;R[13]=G(R[1],4);ob=(word *)R[13];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1417:if(acc==2){R[5]=G(R[1],2);ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1418:if(acc==1){R[4]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1419:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1420:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[5]=R[4];R[4]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1421:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[3];fp[5]=R[4];fp[4]=R[5];fp[3]=R[6];fp[2]=R[8];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1422:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],6);R[3]=G(R[1],5);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1423:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=G(R[1],4);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=IFALSE;R[11]=R[4];R[5]=R[6];R[4]=R[7];R[6]=R[10];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1424:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],4);R[6]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=F(1);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1425:if(acc==1){R[4]=G(R[1],2);if(immediatep(R[4])){R[5]=IFALSE;}else{word h=V(R[4]);R[5]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}if(R[5]==IFALSE){R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[7];fp[2]=R[3];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1426:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],2);R[9]=R[4];R[6]=R[3];R[3]=R[5];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1427:if(acc==2){R[5]=F(0);R[6]=prim_cast((word *)R[4],fixval(R[5])&63);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1428:if(acc==2){R[5]=F(62);R[6]=prim_cast((word *)R[4],fixval(R[5])&63);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1429:if(acc==2){R[5]=F(44);R[6]=prim_cast((word *)R[4],fixval(R[5])&63);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1430:if(acc==2){R[5]=F(12);R[6]=prim_cast((word *)R[4],fixval(R[5])&63);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1431:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(62);R[7]=(R[5]==R[6])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1432:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(44);R[7]=(R[5]==R[6])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1433:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(12);R[7]=(R[5]==R[6])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1434:if(acc==5){if(R[6]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{{word *ob=(word *)R[6];word hdr;assert(allocp(R[6]),R[6],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];R[10]=ob[3];}*fp=make_header(5,TCLOS);fp[1]=G(R[1],2);fp[4]=R[3];fp[3]=R[4];fp[2]=R[9];R[3]=(word)fp;fp+=5;R[6]=R[10];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1435:if(acc==5){{word ob=R[6];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(14);if(R[8]==R[9]){{word *ob=(word *)R[6];word hdr;assert(allocp(R[6]),R[6],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[10]=ob[1];R[11]=ob[2];R[12]=ob[3];}*fp=make_header(7,TCLOS);fp[1]=G(R[1],2);fp[6]=R[4];fp[5]=R[3];fp[4]=R[10];fp[3]=R[7];fp[2]=R[11];R[3]=(word)fp;fp+=7;R[6]=R[12];ob=(word *)R[7];acc=5;}else{R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1436:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[6]=G(R[1],2);R[10]=R[7];R[5]=R[3];R[7]=R[4];R[3]=R[8];R[4]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1437:if(acc==5){if(R[4]==INULL){R[8]=G(R[1],2);R[4]=G(R[1],3);R[5]=R[6];ob=(word *)R[8];acc=3;}else{{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[8]=ob[1];R[9]=ob[2];R[10]=ob[3];}R[11]=G(R[1],4);*fp=make_header(9,TCLOS);fp[1]=G(R[1],5);fp[8]=R[3];fp[7]=R[8];fp[6]=R[10];fp[5]=R[9];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[4]=R[5];R[5]=R[8];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1438:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],6);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[12]=G(R[1],2);R[8]=R[4];R[5]=R[9];R[4]=R[12];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],6);R[6]=G(R[1],7);R[7]=G(R[1],8);*fp=make_header(5,TPROC);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],5);R[10]=G(R[1],2);R[7]=G(R[1],3);R[12]=R[4];R[5]=R[6];R[3]=R[8];R[4]=R[9];R[6]=R[10];ob=(word *)R[12];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1439:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=make_header(4,10);fp[1]=R[4];fp[2]=R[3];fp[3]=R[5];R[3]=(word)fp;fp+=4;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1440:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],3);R[6]=G(R[1],2);R[5]=R[3];R[7]=R[4];R[3]=R[8];R[4]=R[9];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1441:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=make_header(4,10);fp[1]=R[4];fp[2]=R[5];fp[3]=R[3];R[3]=(word)fp;fp+=4;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1442:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=10;R[8]=R[4];R[4]=R[5];R[5]=R[3];R[3]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1443:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],3);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[5]=F(1);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(8,TCLOS);fp[1]=G(R[2],5);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[12]=G(R[1],2);R[5]=F(1);R[8]=R[4];R[4]=R[12];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1444:if(acc==1){R[4]=G(R[1],2);R[5]=F(2);R[3]=prim_set(R[4],R[5],R[3]);R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1445:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],6);R[6]=G(R[1],7);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],4);R[9]=G(R[1],3);R[10]=G(R[1],2);R[11]=R[8];R[6]=R[3];R[8]=R[4];R[3]=R[7];R[5]=R[9];R[7]=R[10];R[4]=R[11];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1446:if(acc==3){if(R[5]==INULL){R[6]=F(1);*fp=make_header(4,10);fp[1]=R[6];fp[2]=R[4];fp[3]=R[5];R[7]=(word)fp;fp+=4;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[6]=ob[1];R[7]=ob[2];R[8]=ob[3];}if(R[8]==INULL){R[9]=F(1);*fp=make_header(4,10);fp[1]=R[9];fp[2]=R[4];fp[3]=R[5];R[10]=(word)fp;fp+=4;ob=(word *)R[3];R[3]=R[10];acc=1;}else{{word *ob=(word *)R[8];word hdr;assert(allocp(R[8]),R[8],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=4),ob,IFALSE);R[9]=ob[1];R[10]=ob[2];R[11]=ob[3];}R[12]=G(R[1],2);*fp=make_header(10,TCLOS);fp[1]=G(R[1],3);fp[9]=R[3];fp[8]=R[11];fp[7]=R[4];fp[6]=R[7];fp[5]=R[10];fp[4]=R[5];fp[3]=R[6];fp[2]=R[9];R[3]=(word)fp;fp+=10;R[4]=R[6];R[5]=R[9];ob=(word *)R[12];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1447:if(acc==1){if(R[3]==IFALSE){R[4]=F(1);R[5]=G(R[1],7);R[6]=G(R[1],4);*fp=make_header(4,10);fp[1]=R[4];fp[2]=R[5];fp[3]=R[6];R[3]=(word)fp;fp+=4;R[8]=G(R[1],9);ob=(word *)R[8];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);R[9]=G(R[1],9);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1448:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[5]=F(1);R[8]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1449:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);*fp=make_header(4,14);fp[1]=R[4];fp[2]=R[5];fp[3]=R[6];R[7]=(word)fp;fp+=4;R[8]=G(R[1],5);*fp=make_header(4,10);fp[1]=R[3];fp[2]=R[7];fp[3]=R[8];R[3]=(word)fp;fp+=4;R[10]=G(R[1],6);ob=(word *)R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1450:if(acc==2){if(R[4]==INULL){R[5]=ITRUE;ob=(word *)R[3];R[3]=R[5];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(10);if(R[5]==R[6]){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1451:if(acc==4){if(R[4]==R[5]){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1452:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],5);R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1453:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1454:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1455:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],3);assert(pairp(R[6]),R[6],1052);R[7]=G(R[6],1);R[8]=G(R[1],5);R[9]=G(R[1],4);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[9];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[7];R[6]=R[8];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1456:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[5]=F(1);{word r=(fixval(R[4])|(1< */ + case 1457:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{R[4]=G(R[1],3);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1458:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1459:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(17);R[7]=(R[5]==R[6])?ITRUE:IFALSE;if(R[7]==IFALSE){{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(18);R[10]=(R[8]==R[9])?ITRUE:IFALSE;if(R[10]==IFALSE){R[11]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[11];acc=1;}else{R[11]=G(R[1],3);R[3]=R[10];ob=(word *)R[11];acc=1;}}else{R[8]=G(R[1],3);R[3]=R[7];ob=(word *)R[8];acc=1;}}else{R[4]=G(R[1],3);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1460:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(16);R[7]=(R[6]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1461:if(acc==2){R[5]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[6]=G(R[1],2);R[7]=INULL;R[9]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1462:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=F(0);R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1463:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[11]=F(1);R[8]=R[4];R[4]=R[5];R[5]=R[11];ob=(word *)R[8];acc=3;}else{R[4]=G(R[1],5);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1464:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],2);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=G(R[1],6);R[10]=G(R[1],5);R[5]=R[3];R[6]=R[8];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1465:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(2);R[7]=(R[5]==R[6])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1466:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(4);if(R[5]==R[6]){R[7]=F(1);R[4]=prim_ref(R[4],R[7]);R[9]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[5]=G(R[1],4);ob=(word *)R[9];acc=3;}else{R[7]=G(R[1],5);R[8]=G(R[1],6);R[5]=R[4];R[4]=R[8];ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1467:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=R[4];R[4]=R[5];ob=(word *)R[8];acc=2;}else{R[4]=G(R[1],3);R[3]=G(R[2],4);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1468:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1469:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[2],3);R[8]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1470:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(4);R[7]=(R[5]==R[6])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1471:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(19);if(R[5]==R[6]){R[7]=G(R[1],2);ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],3);R[8]=G(R[1],4);R[5]=INULL;R[6]=R[4];R[4]=R[8];ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1472:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[5]=G(R[2],4);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1473:if(acc==4){{word ob=R[5];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(32);if(R[8]==R[7]){R[9]=INULL;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[4];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1474:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[5]=G(R[2],4);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1475:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(15);if(R[7]==R[8]){R[9]=F(1);R[4]=prim_ref(R[4],R[9]);ob=(word *)R[6];acc=4;}else{R[9]=F(19);if(R[7]==R[9]){if(immediatep(R[4])){R[10]=IFALSE;}else{word h=V(R[4]);R[10]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}R[11]=G(R[1],2);R[6]=R[5];R[5]=R[10];ob=(word *)R[11];acc=4;}else{R[10]=F(11);if(R[7]==R[10]){R[11]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[12]=G(R[1],3);R[6]=R[5];R[5]=R[11];ob=(word *)R[12];acc=4;}else{ob=(word *)R[3];R[3]=R[5];acc=1;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1476:if(acc==5){R[8]=F(1);if(R[5]==R[8]){R[9]=prim_ref(R[4],R[5]);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[6];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[9]=prim_ref(R[4],R[5]);*fp=make_header(6,TCLOS);fp[1]=G(R[1],2);fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=6;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1477:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1478:if(acc==1){R[4]=G(R[1],4);R[5]=prim_ref(R[4],R[3]);R[6]=G(R[1],3);R[7]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[4];fp[3]=R[3];fp[2]=R[6];R[8]=(word)fp;fp+=6;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[8];R[3]=(word)fp;fp+=3;R[10]=G(R[1],2);ob=(word *)R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1479:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1480:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1481:if(acc==4){R[7]=G(R[2],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[6];fp[4]=R[4];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[4]=G(R[1],2);ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1482:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[8];fp[3]=R[7];fp[2]=R[6];R[9]=(word)fp;fp+=5;R[8]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1483:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[5]=G(R[2],4);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1484:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[8]=(word)fp;fp+=6;R[9]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1485:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=INULL;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[6];R[6]=R[4];R[3]=R[5];R[5]=R[7];R[4]=R[9];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1486:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=INULL;R[9]=R[4];R[10]=R[5];R[5]=R[3];R[4]=R[6];R[6]=R[7];R[3]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1487:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(19);if(R[5]==R[6]){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(11);if(R[5]==R[7]){R[8]=ITRUE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(15);if(R[5]==R[8]){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1488:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1489:if(acc==3){if(R[4]==INULL){R[6]=G(R[1],2);ob=(word *)R[3];R[3]=R[6];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[6]=G(R[4],2);if(R[6]==INULL){R[7]=G(R[4],1);ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=G(R[4],1);R[4]=G(R[4],2);R[9]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[1],4);fp[4]=R[3];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[9];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1490:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[8]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1491:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=F(2);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1492:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],4);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1493:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[2],3);R[7]=INULL;R[9]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1494:if(acc==3){R[6]=G(R[1],2);R[9]=R[5];R[5]=R[4];R[4]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1495:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{if(R[5]==INULL){R[7]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[1],5);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[5]=G(R[1],6);R[6]=INULL;ob=(word *)R[7];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1496:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[6]=INULL;ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1497:if(acc==2){if(R[4]==INULL){R[5]=INULL;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[1],2);R[10]=G(R[2],4);R[11]=R[5];R[5]=R[10];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1498:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[3];R[9]=(word)fp;fp+=7;R[4]=R[3];R[3]=R[9];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1499:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=F(1);R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1500:if(acc==8){R[11]=G(R[1],2);if(R[7]==R[11]){R[12]=G(R[1],3);*fp=make_header(10,TCLOS);fp[1]=G(R[1],4);fp[9]=R[10];fp[8]=R[3];fp[7]=R[4];fp[6]=R[9];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[8];R[3]=(word)fp;fp+=10;R[4]=R[5];R[5]=R[7];R[6]=R[8];ob=(word *)R[12];acc=4;}else{if(R[4]==INULL){if(R[5]==INULL){R[12]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[1],6);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[12];acc=2;}else{R[12]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[1],7);fp[5]=R[3];fp[4]=R[9];fp[3]=R[7];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[7];R[6]=R[8];ob=(word *)R[12];acc=4;}}else{R[12]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[1],9);fp[9]=R[10];fp[8]=R[3];fp[7]=R[6];fp[6]=R[9];fp[5]=R[4];fp[4]=R[7];fp[3]=R[5];fp[2]=R[8];R[3]=(word)fp;fp+=10;ob=(word *)R[12];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1501:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[5]=G(R[1],6);R[6]=G(R[1],2);R[7]=G(R[1],4);R[8]=G(R[1],7);R[9]=G(R[1],3);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TPROC);fp[1]=G(R[2],2);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);if(R[4]==IFALSE){R[5]=G(R[1],5);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[5],1);R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=G(R[2],3);R[11]=G(R[1],6);R[12]=G(R[1],7);R[13]=G(R[1],8);R[14]=G(R[1],9);*fp=make_header(8,TPROC);fp[1]=G(R[2],4);fp[7]=R[14];fp[6]=R[13];fp[5]=R[6];fp[4]=R[9];fp[3]=R[12];fp[2]=R[11];R[3]=(word)fp;fp+=8;R[4]=G(R[1],4);R[5]=F(1);ob=(word *)R[10];acc=3;}else{R[5]=G(R[1],5);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[5],1);R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=G(R[2],3);R[11]=G(R[1],6);R[12]=G(R[1],7);R[13]=G(R[1],8);R[14]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],5);fp[8]=R[14];fp[7]=R[13];fp[6]=R[6];fp[5]=R[9];fp[4]=R[12];fp[3]=R[11];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[4]=G(R[1],4);R[5]=F(1);ob=(word *)R[10];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1502:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);R[11]=G(R[1],7);R[12]=G(R[1],8);*fp=make_header(9,TPROC);fp[1]=G(R[2],3);fp[8]=R[12];fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1503:if(acc==1){R[4]=G(R[1],8);R[5]=G(R[1],7);R[6]=G(R[1],6);R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[10]=G(R[1],2);R[13]=R[10];R[10]=R[4];R[4]=R[6];R[6]=R[8];R[8]=R[3];R[3]=R[5];R[5]=R[7];R[7]=R[9];R[9]=R[13];ob=(word *)R[10];acc=8;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1504:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=IFALSE;R[10]=G(R[1],2);R[13]=R[6];R[14]=R[5];R[5]=R[7];R[7]=R[3];R[6]=R[8];R[8]=R[9];R[9]=R[10];R[10]=R[4];R[4]=R[13];R[3]=R[14];ob=(word *)R[10];acc=8;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1505:if(acc==1){R[4]=G(R[1],8);R[5]=G(R[1],7);R[6]=G(R[1],6);R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[10]=G(R[1],2);R[13]=R[9];R[9]=R[10];R[10]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];R[8]=R[13];ob=(word *)R[10];acc=8;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1506:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1507:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[12]=G(R[1],3);R[13]=G(R[1],2);R[9]=R[4];R[5]=R[6];R[4]=R[12];R[6]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1508:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[4]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1509:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=INULL;R[8]=G(R[1],2);R[9]=F(0);R[10]=ITRUE;R[13]=R[6];R[14]=R[5];R[5]=R[7];R[7]=R[9];R[9]=R[3];R[6]=R[8];R[8]=R[10];R[10]=R[4];R[4]=R[13];R[3]=R[14];ob=(word *)R[10];acc=8;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1510:if(acc==7){R[10]=G(R[1],2);ob=(word *)R[10];acc=8;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1511:if(acc==4){if(R[6]==IFALSE){R[7]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1512:if(acc==2){R[5]=F(19);R[6]=IFALSE;R[7]=prim_lraw(R[4],fixval(R[5]),R[6]);ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1513:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(19);if(R[5]==R[6]){if(immediatep(R[4])){R[7]=IFALSE;}else{word h=V(R[4]);R[7]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(15);if(R[5]==R[7]){R[8]=F(2);R[9]=prim_ref(R[4],R[8]);ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[8]=F(11);if(R[5]==R[8]){R[9]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);ob=(word *)R[3];R[3]=R[9];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}R[10]=INULL;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;R[12]=G(R[1],5);*fp=PAIRHDR;fp[1]=R[12];fp[2]=R[11];R[13]=(word)fp;fp+=3;R[14]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[14];fp[2]=R[13];R[15]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[15];R[5]=(word)fp;fp+=3;R[17]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[17];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1514:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[2],3);R[6]=R[4]&R[5];R[7]=G(R[2],2);R[8]=G(R[1],3);R[4]=R[3];R[5]=R[6];R[3]=R[8];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1515:if(acc==3){R[6]=G(R[5],2);R[7]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[6];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1516:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[4];R[8]=(word)fp;fp+=4;R[4]=R[3];R[3]=R[8];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1517:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(19);if(R[7]==R[8]){R[9]=G(R[1],2);R[10]=R[5]&R[9];R[11]=prim_ref(R[4],R[10]);ob=(word *)R[3];R[3]=R[11];acc=1;}else{R[9]=F(15);if(R[7]==R[9]){R[10]=F(1);R[4]=prim_ref(R[4],R[10]);ob=(word *)R[6];acc=4;}else{R[10]=F(11);if(R[7]==R[10]){R[11]=G(R[1],2);if(R[5]==R[11]){R[12]=G(R[1],3);R[13]=prim_ref(R[4],R[12]);ob=(word *)R[3];R[3]=R[13];acc=1;}else{R[12]=R[5]&R[11];R[13]=F(1);{word res=fixval(R[12])+fixval(R[13]);R[15]=BOOL(res&(1<>TPOS)&63);}R[12]=G(R[1],4);R[4]=G(R[1],5);ob=(word *)R[12];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1518:if(acc==4){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[7]=ob[1];R[8]=ob[2];}if(R[8]==INULL){R[9]=G(R[1],5);R[10]=prim_less(R[7],R[9]);if(R[10]==IFALSE){R[11]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=4;R[5]=R[7];ob=(word *)R[11];acc=3;}else{R[11]=G(R[1],4);R[5]=R[7];ob=(word *)R[11];acc=3;}}else{*fp=make_header(4,TCLOS);fp[1]=G(R[1],6);fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=4;R[5]=R[8];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1519:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}R[7]=F(15);if(R[6]==R[7]){R[8]=G(R[1],2);R[9]=R[5]&R[8];R[10]=F(2);{word res=fixval(R[9])+fixval(R[10]);R[12]=BOOL(res&(1<>TPOS)&63);}R[9]=G(R[1],3);R[4]=G(R[1],4);ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1520:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(19);R[7]=(R[5]==R[6])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1521:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1522:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1523:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1524:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1525:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(3);if(R[5]==R[6]){R[7]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[9]=G(R[1],4);R[5]=G(R[1],5);R[6]=R[4];R[4]=R[9];ob=(word *)R[7];acc=4;}else{R[7]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],6);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[9]=G(R[1],7);R[5]=G(R[1],8);R[6]=R[4];R[4]=R[9];ob=(word *)R[7];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1526:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1527:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[5]=G(R[2],4);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1528:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[5]=F(3);R[6]=IFALSE;R[3]=prim_lraw(R[4],fixval(R[5]),R[6]);R[8]=G(R[1],3);ob=(word *)R[8];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1529:if(acc==1){R[4]=F(3);R[5]=IFALSE;R[3]=prim_lraw(R[3],fixval(R[4]),R[5]);R[7]=G(R[1],2);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1530:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1531:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1532:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1533:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);if(R[4]==INULL){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=R[6];ob=(word *)R[5];acc=2;}else{R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],4);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1534:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);if(R[4]==INULL){R[5]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[5];acc=1;}else{R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],3);assert(pairp(R[6]),R[6],1052);R[7]=G(R[6],1);R[8]=G(R[2],3);R[9]=G(R[1],4);R[10]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],4);fp[5]=R[10];fp[4]=R[9];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1535:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[8]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1536:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[8]=(word)fp;fp+=6;if(R[3]==IFALSE){R[3]=IFALSE;ob=(word *)R[8];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[9]=G(R[5],1);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[11]=G(R[2],2);R[3]=R[8];R[4]=R[9];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1537:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],3);assert(pairp(R[6]),R[6],1053);R[7]=G(R[6],2);R[6]=G(R[1],5);R[3]=G(R[1],4);R[4]=R[5];R[5]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1538:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);if(R[4]==INULL){R[5]=G(R[1],4);R[3]=ITRUE;ob=(word *)R[5];acc=1;}else{R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1539:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[8]=INULL;R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1540:if(acc==2){R[5]=G(R[1],2);R[6]=INULL;R[7]=F(0);R[8]=ITRUE;R[11]=R[5];R[12]=R[6];R[6]=R[7];R[7]=R[8];R[5]=R[12];R[8]=R[12];ob=(word *)R[11];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1541:if(acc==7){if(R[4]==INULL){R[10]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[8];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[6];R[6]=R[7];ob=(word *)R[10];acc=4;}else{R[10]=G(R[1],4);if(R[6]==R[10]){R[11]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],5);fp[5]=R[9];fp[4]=R[3];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=6;R[4]=R[5];R[5]=R[6];R[6]=R[7];ob=(word *)R[11];acc=4;}else{R[11]=G(R[1],6);*fp=make_header(9,TCLOS);fp[1]=G(R[1],7);fp[8]=R[9];fp[7]=R[3];fp[6]=R[4];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;ob=(word *)R[11];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1542:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TPROC);fp[1]=G(R[2],2);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],6);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[11]=(word)fp;fp+=9;if(R[6]==IFALSE){R[3]=IFALSE;ob=(word *)R[11];acc=1;}else{assert(pairp(R[8]),R[8],1052);R[12]=G(R[8],1);R[13]=G(R[2],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],4);fp[3]=R[11];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[4]=G(R[2],5);R[5]=R[12];ob=(word *)R[13];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1543:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],7);R[12]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[12];fp[7]=R[11];fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[7];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=R[5];ob=(word *)R[6];acc=2;}else{R[4]=G(R[2],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(6,TPROC);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[13]=R[4];R[4]=R[10];ob=(word *)R[13];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1544:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[9]=G(R[2],2);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],7);R[13]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[13];fp[7]=R[12];fp[6]=R[6];fp[5]=R[8];fp[4]=R[11];fp[3]=R[10];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[4]=G(R[1],4);R[5]=F(1);ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1545:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(8,TPROC);fp[1]=G(R[2],4);fp[7]=R[8];fp[6]=R[7];fp[5]=R[6];fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[9]=(word)fp;fp+=8;R[10]=G(R[1],3);if(R[10]==IFALSE){R[3]=IFALSE;ob=(word *)R[9];acc=1;}else{R[11]=G(R[2],2);R[4]=G(R[1],2);R[5]=G(R[2],3);R[3]=R[9];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1546:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[6];R[13]=R[5];R[5]=R[7];R[7]=R[3];R[6]=R[8];R[8]=R[9];R[9]=R[4];R[4]=R[12];R[3]=R[13];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1547:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[2],3);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1548:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[12]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];R[8]=R[9];R[9]=R[4];R[4]=R[3];R[3]=R[12];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1549:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=INULL;R[10]=F(0);R[11]=ITRUE;R[4]=R[8];R[8]=R[5];R[5]=R[9];R[9]=R[6];R[3]=R[7];R[6]=R[10];R[7]=R[11];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1550:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[7];R[3]=(word)fp;fp+=3;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1551:if(acc==4){if(R[6]==IFALSE){R[7]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[7];acc=2;}else{R[7]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1552:if(acc==1){R[4]=F(3);R[5]=IFALSE;R[6]=prim_lraw(R[3],fixval(R[4]),R[5]);if(R[6]==IFALSE){R[7]=G(R[2],2);R[3]=G(R[1],3);R[4]=G(R[2],3);R[5]=G(R[1],2);ob=(word *)R[7];acc=3;}else{R[7]=G(R[1],3);R[3]=R[6];ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1553:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1554:if(acc==1){R[4]=F(1);if(R[3]==R[4]){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1052);R[3]=G(R[5],1);R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[9]=(word)fp;fp+=6;R[10]=F(4);R[8]=R[5];R[4]=R[3];R[3]=R[9];R[5]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1555:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=F(1);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=F(4);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1556:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=INULL;R[5]=G(R[1],2);R[10]=R[4];R[6]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1557:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=INULL;R[11]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1558:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[10]=INULL;R[6]=G(R[1],2);R[12]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[12];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1559:if(acc==2){R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[5]=(word)fp;fp+=3;R[12]=G(R[2],2);R[13]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[13];R[3]=(word)fp;fp+=3;R[15]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[15];R[4]=(word)fp;fp+=3;ob=(word *)R[12];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1560:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[2],4);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1561:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[2],4);R[5]=F(0);R[10]=R[4];R[6]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1562:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[8]=G(R[2],4);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1563:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[2],4);R[5]=F(0);R[11]=R[4];R[6]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1564:if(acc==3){R[6]=F(34);if(R[4]==R[6]){*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=F(92);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[7]=G(R[1],2);ob=(word *)R[7];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1565:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1566:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(3);if(R[7]==R[8]){R[9]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[9];acc=2;}else{R[9]=F(22);if(R[7]==R[9]){R[6]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[11]=G(R[1],4);ob=(word *)R[11];acc=4;}else{R[10]=F(21);if(R[7]==R[10]){*fp=make_header(5,TCLOS);fp[1]=G(R[1],5);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[5]=(word)fp;fp+=5;R[4]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);ob=(word *)R[5];acc=3;}else{R[11]=G(R[1],6);R[12]=G(R[1],7);R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1567:if(acc==3){R[6]=F(2);if(R[4]==R[6]){R[7]=G(R[1],2);R[4]=prim_ref(R[7],R[6]);R[6]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[6];acc=4;}else{R[7]=G(R[1],2);R[8]=prim_ref(R[7],R[4]);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[5];fp[2]=R[4];R[5]=(word)fp;fp+=4;R[4]=R[8];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1568:if(acc==5){R[8]=F(1);if(R[6]==R[8]){R[9]=prim_ref(R[4],R[6]);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[5];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[9]=prim_ref(R[4],R[6]);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[7];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[10]=(word)fp;fp+=6;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1569:if(acc==1){R[4]=G(R[1],2);R[5]=F(1);{word r=(fixval(R[4])|(1< */ + case 1570:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(3);if(R[7]==R[8]){R[9]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[9];acc=2;}else{R[9]=F(22);if(R[7]==R[9]){R[10]=G(R[1],4);R[6]=F(1);ob=(word *)R[10];acc=4;}else{R[10]=F(21);if(R[7]==R[10]){*fp=make_header(5,TCLOS);fp[1]=G(R[1],5);fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[5]=(word)fp;fp+=5;R[4]=F(2);ob=(word *)R[5];acc=3;}else{R[11]=G(R[1],6);R[12]=G(R[1],7);R[5]=R[4];R[4]=R[12];ob=(word *)R[11];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1571:if(acc==3){R[6]=G(R[1],2);R[7]=(immediatep(R[6]))?IFALSE:F(hdrsize(V(R[6]))-1);if(R[4]==R[7]){R[4]=prim_ref(R[6],R[4]);R[6]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[6];acc=4;}else{R[8]=prim_ref(R[6],R[4]);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[5];fp[2]=R[4];R[5]=(word)fp;fp+=4;R[4]=R[8];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1572:if(acc==5){R[8]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);if(R[6]==R[8]){R[9]=prim_ref(R[4],R[6]);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[5];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[9]=prim_ref(R[4],R[6]);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[7];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[10]=(word)fp;fp+=6;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1573:if(acc==1){R[4]=G(R[1],2);R[5]=F(1);{word res=fixval(R[4])+fixval(R[5]);R[7]=BOOL(res&(1< */ + case 1574:if(acc==6){if(R[6]==R[7]){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[9]=prim_ref(R[4],R[6]);*fp=make_header(7,TPROC);fp[1]=G(R[1],2);fp[6]=R[8];fp[5]=R[4];fp[4]=R[5];fp[3]=R[7];fp[2]=R[6];R[10]=(word)fp;fp+=7;*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[10];R[11]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1575:if(acc==1){R[4]=G(R[1],2);R[5]=F(1);{word res=fixval(R[4])+fixval(R[5]);R[7]=BOOL(res&(1< */ + case 1576:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(3);if(R[5]==R[6]){if(immediatep(R[4])){R[7]=IFALSE;}else{word h=V(R[4]);R[7]=(rawp(h))?F((hdrsize(h)-1)*W-((h>>8)&7)):IFALSE;}ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(22);if(R[5]==R[7]){R[8]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(21);if(R[5]==R[8]){R[9]=F(1);R[10]=prim_ref(R[4],R[9]);ob=(word *)R[3];R[3]=R[10];acc=1;}else{R[9]=G(R[1],2);R[10]=G(R[1],3);R[5]=R[4];R[4]=R[10];ob=(word *)R[9];acc=3;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1577:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(3);if(R[5]==R[6]){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=F(22);if(R[5]==R[7]){R[8]=ITRUE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=F(21);if(R[5]==R[8]){R[9]=ITRUE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1578:if(acc==2){R[5]=G(R[1],2);R[6]=INULL;R[7]=IFALSE;R[9]=R[5];R[5]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1579:if(acc==5){if(R[4]==INULL){R[8]=G(R[1],2);R[4]=R[5];ob=(word *)R[8];acc=2;}else{R[8]=G(R[1],3);*fp=make_header(7,TCLOS);fp[1]=G(R[1],4);fp[6]=R[7];fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=7;ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1580:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],3);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],4);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1581:if(acc==2){if(R[3]==IFALSE){R[5]=G(R[1],3);if(R[5]==IFALSE){R[6]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[6];acc=1;}else{R[6]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],5);R[3]=G(R[1],4);R[6]=R[5];R[5]=R[7];R[7]=R[8];ob=(word *)R[7];acc=5;}}else{R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[5]=R[6];R[3]=R[8];R[6]=R[9];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1582:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],2);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],6);R[7]=R[6]&R[5];R[8]=G(R[2],3);if(R[8]==R[7]){R[9]=G(R[4],2);R[10]=G(R[2],4);R[11]=G(R[1],4);R[12]=G(R[1],5);R[13]=G(R[1],6);R[14]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],5);fp[7]=R[14];fp[6]=R[13];fp[5]=R[9];fp[4]=R[12];fp[3]=R[5];fp[2]=R[11];R[3]=(word)fp;fp+=8;R[4]=G(R[1],3);R[5]=F(1);ob=(word *)R[10];acc=3;}else{R[9]=G(R[1],6);R[3]=IFALSE;ob=(word *)R[9];acc=2;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1583:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[11]=G(R[1],2);R[5]=F(6);R[8]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1584:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[11]=G(R[1],2);R[5]=F(63);R[8]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1585:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[11]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];R[8]=R[4];R[4]=R[3];R[3]=R[11];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1586:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],4);R[5]=IFALSE;R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1587:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[5]=G(R[1],4);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1588:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[2],4);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1589:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[2],4);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{R[4]=G(R[2],5);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],6);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=F(6);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1590:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=F(31);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1591:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1592:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1593:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[2],4);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{R[4]=G(R[2],5);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],6);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=F(12);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1594:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=F(15);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1595:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=F(6);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1596:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1597:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[3]=(word)fp;fp+=3;R[10]=G(R[1],5);ob=(word *)R[10];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1598:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[2],3);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],5);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=F(18);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1599:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=F(7);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1600:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=G(R[2],4);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1601:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=F(12);R[10]=R[4];R[4]=R[5];R[5]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1602:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1603:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=F(6);R[8]=R[4];R[4]=R[5];R[5]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1604:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1605:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=3;R[8]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[7];R[9]=(word)fp;fp+=3;R[10]=G(R[1],5);*fp=PAIRHDR;fp[1]=R[10];fp[2]=R[9];R[3]=(word)fp;fp+=3;R[12]=G(R[1],6);ob=(word *)R[12];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1606:if(acc==1){R[4]=G(R[2],2);R[3]=R[4]|R[3];R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1607:if(acc==3){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1608:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[1],4);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[4]=R[6];R[5]=R[7];ob=(word *)R[5];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1609:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[5]=G(R[2],4);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1610:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;R[8]=G(R[1],6);R[9]=G(R[1],5);R[4]=G(R[1],4);R[5]=R[3];R[6]=R[7];R[7]=R[8];R[3]=R[9];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1611:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1612:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[1],2);R[5]=F(1);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1613:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[10]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1614:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[6];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1615:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);if(R[4]==INULL){R[5]=G(R[1],5);R[3]=G(R[1],3);ob=(word *)R[5];acc=1;}else{R[5]=G(R[1],5);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[5];acc=1;}}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=G(R[1],3);R[4]=R[6];R[6]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1616:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1617:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);if(R[4]==INULL){R[5]=G(R[1],5);R[3]=G(R[1],2);ob=(word *)R[5];acc=1;}else{R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[4]=R[5];R[5]=R[10];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1618:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[4]=R[6];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1619:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);if(R[4]==INULL){R[5]=G(R[1],5);R[3]=G(R[1],2);ob=(word *)R[5];acc=1;}else{R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=G(R[1],2);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1620:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1621:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);if(R[4]==INULL){R[5]=G(R[1],5);R[3]=G(R[1],2);ob=(word *)R[5];acc=2;}else{R[5]=G(R[1],2);R[6]=G(R[1],5);R[7]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[4];acc=1;}}else{R[4]=G(R[1],4);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[4]=G(R[4],2);R[7]=G(R[1],5);R[3]=R[5];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1622:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=F(1);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1623:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1624:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[5]=G(R[1],2);R[9]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1625:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1626:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[2],4);R[5]=INULL;R[9]=R[4];R[10]=R[6];R[6]=R[3];R[4]=R[7];R[3]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1627:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[2],3);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1628:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;R[13]=F(1);R[8]=R[4];R[5]=R[3];R[3]=R[12];R[4]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1629:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[4];R[7]=(word)fp;fp+=3;R[8]=ITRUE;R[9]=R[6];R[6]=R[5];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1630:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=F(0);R[9]=R[5];R[5]=R[6];R[6]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1631:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[11]=R[6];R[12]=R[5];R[5]=R[3];R[6]=R[7];R[7]=R[8];R[8]=R[4];R[4]=R[11];R[3]=R[12];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1632:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=F(1);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1633:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[4];R[10]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1634:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[5]=F(1);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1635:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1636:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1637:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[10]=R[5];R[5]=R[3];R[4]=R[6];R[6]=R[7];R[3]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1638:if(acc==3){if(R[5]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);if(R[6]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[7]=G(R[1],2);ob=(word *)R[7];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1639:if(acc==3){if(R[5]==INULL){R[6]=INULL;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[8]=INULL;R[9]=F(0);R[10]=R[6];R[3]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1640:if(acc==1){assert(pairp(R[3]),R[3],1053);R[4]=G(R[3],2);if(R[4]==INULL){R[3]=G(R[3],1);R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{R[5]=G(R[2],2);R[6]=G(R[1],3);R[4]=G(R[1],2);R[8]=R[5];R[5]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1641:if(acc==4){assert(pairp(R[5]),R[5],1053);R[7]=G(R[5],2);if(R[7]==INULL){R[8]=G(R[5],1);ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1642:if(acc==6){if(R[5]==INULL){if(R[6]==INULL){R[9]=INULL;ob=(word *)R[3];R[3]=R[9];acc=1;}else{R[9]=INULL;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[9];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}}else{R[9]=F(10);if(R[7]==R[9]){assert(pairp(R[5]),R[5],1053);R[10]=G(R[5],2);R[11]=G(R[5],1);R[12]=INULL;*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[12];R[13]=(word)fp;fp+=3;*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[6];R[3]=(word)fp;fp+=4;R[7]=F(1);R[5]=R[10];R[6]=R[13];ob=(word *)R[8];acc=6;}else{R[10]=F(1);{word res=fixval(R[7])+fixval(R[10]);R[12]=BOOL(res&(1< */ + case 1643:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[11]=R[5];R[5]=R[7];R[7]=R[8];R[8]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[11];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1644:if(acc==4){if(R[5]==INULL){R[7]=INULL;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);R[8]=G(R[5],2);if(R[8]==INULL){R[9]=INULL;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[9];R[10]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[10];acc=1;}else{assert(pairp(R[8]),R[8],1052);R[9]=G(R[8],1);R[10]=G(R[8],2);R[11]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[10];R[3]=(word)fp;fp+=6;R[5]=R[7];R[6]=R[9];ob=(word *)R[11];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1645:if(acc==5){if(R[5]==INULL){ob=(word *)R[3];R[3]=R[6];acc=1;}else{if(R[6]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[6]),R[6],1052);R[8]=G(R[6],1);assert(pairp(R[5]),R[5],1052);R[9]=G(R[5],1);*fp=make_header(7,TCLOS);fp[1]=G(R[1],2);fp[6]=R[3];fp[5]=R[7];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[11]=R[4];R[4]=R[8];R[5]=R[9];ob=(word *)R[11];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1646:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[4]=G(R[1],4);R[11]=G(R[1],2);R[5]=R[6];R[6]=R[11];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[4]=G(R[1],4);R[5]=G(R[1],3);ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1647:if(acc==5){if(R[4]==INULL){R[8]=INULL;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[8];R[9]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[9];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[8]=G(R[4],1);*fp=make_header(7,TCLOS);fp[1]=G(R[1],2);fp[6]=R[3];fp[5]=R[7];fp[4]=R[5];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1648:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[8];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=G(R[1],4);R[11]=G(R[1],3);R[4]=R[6];R[6]=R[11];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],4);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],6);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1649:if(acc==3){R[6]=G(R[1],2);R[7]=INULL;R[10]=R[7];R[7]=R[6];R[6]=R[5];R[5]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1650:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[9]=F(0);R[4]=R[5];R[5]=R[9];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1651:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=F(0);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[5];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1652:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[5];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1653:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{R[4]=G(R[1],5);R[3]=INULL;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1654:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=INULL;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[6];R[8]=(word)fp;fp+=3;R[9]=G(R[1],4);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[8];R[10]=(word)fp;fp+=3;R[11]=G(R[2],4);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[10];R[5]=(word)fp;fp+=3;R[13]=G(R[2],2);R[3]=G(R[1],5);R[4]=G(R[2],3);ob=(word *)R[13];acc=3;}else{R[4]=G(R[1],5);R[3]=INULL;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1655:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[3];fp[5]=R[4];fp[4]=R[7];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1656:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[3]=INULL;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[9]=R[4];R[5]=R[6];R[4]=R[8];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1657:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[6]=G(R[1],2);R[10]=R[7];R[7]=R[4];R[4]=R[3];R[5]=R[8];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1658:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=F(0);R[9]=R[5];R[10]=R[6];R[6]=R[4];R[5]=R[7];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1659:if(acc==3){R[6]=G(R[1],2);R[5]=F(1);ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1660:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[6]=G(R[1],2);R[5]=R[3];R[3]=R[7];R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1661:if(acc==3){*fp=make_header(4,TCLOS);fp[1]=G(R[1],2);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1662:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[4];R[5]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1663:if(acc==5){if(R[6]==INULL){R[8]=ITRUE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{assert(pairp(R[6]),R[6],1052);R[8]=G(R[6],1);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1664:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],5);R[8]=G(R[1],4);R[4]=G(R[1],3);R[3]=R[8];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1665:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1666:if(acc==5){{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(42);if(R[8]==R[9]){R[10]=F(1);R[11]=prim_ref(R[4],R[10]);R[12]=F(2);R[4]=prim_ref(R[4],R[12]);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[7];fp[4]=R[3];fp[3]=R[11];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=5;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[10]=F((ob>>TPOS)&63);}R[11]=F(43);if(R[10]==R[11]){{word *ob=(word *)R[4];word hdr;assert(allocp(R[4]),R[4],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[12]=ob[1];R[13]=ob[2];}*fp=make_header(6,TPROC);fp[1]=G(R[1],6);fp[5]=R[7];fp[4]=R[3];fp[3]=R[12];fp[2]=R[6];R[14]=(word)fp;fp+=6;R[15]=F(1);if(R[13]==R[15]){R[16]=F(105);*fp=PAIRHDR;fp[1]=R[16];fp[2]=R[5];R[17]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[17];R[3]=(word)fp;fp+=3;ob=(word *)R[14];acc=1;}else{R[16]=G(R[1],3);if(R[13]==R[16]){R[17]=F(105);*fp=PAIRHDR;fp[1]=R[17];fp[2]=R[5];R[18]=(word)fp;fp+=3;R[19]=F(45);*fp=PAIRHDR;fp[1]=R[19];fp[2]=R[18];R[3]=(word)fp;fp+=3;ob=(word *)R[14];acc=1;}else{R[17]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[1],5);fp[6]=R[7];fp[5]=R[14];fp[4]=R[13];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=F(0);R[4]=R[13];ob=(word *)R[17];acc=3;}}}else{R[12]=G(R[1],4);*fp=make_header(7,TCLOS);fp[1]=G(R[1],7);fp[6]=R[3];fp[5]=R[7];fp[4]=R[5];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=7;R[5]=F(0);ob=(word *)R[12];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1667:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[1],4);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{R[4]=G(R[2],4);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],5);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=F(0);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1668:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[8]=G(R[1],2);R[5]=R[7];R[7]=R[4];R[4]=R[3];R[3]=R[6];R[6]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1669:if(acc==1){R[4]=F(45);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1670:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{R[4]=G(R[2],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],4);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],3);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1671:if(acc==1){if(R[3]==IFALSE){R[4]=F(105);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],6);R[8]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[8];R[3]=(word)fp;fp+=3;R[4]=G(R[1],4);R[11]=G(R[1],3);R[5]=R[6];R[6]=R[11];ob=(word *)R[7];acc=5;}else{R[4]=F(105);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],6);R[8]=G(R[1],5);R[4]=G(R[1],4);R[10]=G(R[1],3);R[5]=R[6];R[3]=R[8];R[6]=R[10];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1672:if(acc==1){R[4]=F(43);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1673:if(acc==1){R[4]=F(47);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[3]=R[7];R[7]=R[6];R[4]=R[8];R[6]=R[9];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1674:if(acc==4){R[7]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[6];R[9]=(word)fp;fp+=3;R[6]=G(R[1],5);R[5]=R[4];R[4]=R[9];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1675:if(acc==2){R[5]=G(R[2],2);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1676:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[2],3);R[7]=G(R[1],2);R[9]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1677:if(acc==3){*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1678:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=F(10);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1679:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[5];fp[2]=R[4];R[6]=(word)fp;fp+=4;if(R[3]==IFALSE){R[3]=F(87);ob=(word *)R[6];acc=1;}else{R[3]=F(48);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1680:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[7]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1681:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[5]=G(R[1],2);R[10]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1682:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[11]=R[6];R[12]=R[5];R[5]=R[7];R[7]=R[3];R[6]=R[8];R[8]=R[4];R[4]=R[11];R[3]=R[12];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1683:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=F(0);R[7]=G(R[1],2);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1684:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],2);R[6]=G(R[1],3);R[7]=G(R[6],1);R[8]=G(R[2],2);R[9]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1685:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[8]=R[4];R[4]=R[6];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1686:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1687:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=F(0);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1688:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1689:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[8];fp[5]=R[4];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[6]=R[4];R[4]=R[3];R[5]=R[7];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1690:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1691:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=9;R[8]=R[4];R[4]=R[7];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1692:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1693:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],7);R[11]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],3);fp[9]=R[11];fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=10;R[8]=R[4];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1694:if(acc==1){R[4]=G(R[1],7);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);R[10]=G(R[1],8);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[10];fp[7]=R[4];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=9;R[6]=R[4];R[4]=R[3];R[5]=R[9];R[3]=R[11];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1695:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[3];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[11]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1696:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[10]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1697:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[9];fp[7]=R[4];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=9;R[9]=R[6];R[6]=R[4];R[5]=R[7];R[4]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1698:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],2);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[9]=G(R[1],3);R[5]=G(R[1],2);R[6]=R[4];R[4]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1699:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[7]=(word)fp;fp+=5;R[8]=G(R[1],3);R[5]=G(R[1],2);R[6]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1700:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],2);R[6]=G(R[2],2);R[7]=G(R[1],3);R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1701:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[6];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1702:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,43);fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1703:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,42);fp[1]=R[3];fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[4]=R[5];R[3]=R[7];R[5]=R[8];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1704:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1705:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],2);*fp=make_header(3,42);fp[1]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1706:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[8]=R[4];R[5]=R[7];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1707:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1708:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,43);fp[1]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1709:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[5]=G(R[1],2);R[6]=R[4];R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1710:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=R[4];R[4]=R[5];R[5]=R[6];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],4);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1711:if(acc==1){R[4]=F(1);if(R[3]==R[4]){R[5]=G(R[1],3);if(R[5]==R[4]){R[6]=G(R[1],4);R[3]=G(R[1],2);ob=(word *)R[6];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(3,42);fp[1]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[8]=G(R[1],4);ob=(word *)R[8];acc=1;}}else{R[5]=G(R[2],2);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=G(R[1],4);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[3];fp[2]=R[6];R[9]=(word)fp;fp+=6;R[8]=R[5];R[4]=R[3];R[5]=R[7];R[3]=R[9];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1712:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[4]=R[9];ob=(word *)R[10];acc=3;}else{R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],2);R[7]=G(R[1],3);R[8]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1713:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1714:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1715:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,42);fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1716:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[5];R[5]=R[6];R[6]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1717:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=7;R[4]=G(R[2],4);R[13]=F(0);R[9]=R[6];R[6]=R[13];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1718:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[9]=(word)fp;fp+=7;R[8]=R[4];R[4]=R[5];R[5]=R[3];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1719:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[10]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1720:if(acc==1){if(R[3]==IFALSE){R[4]=F(2);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=F(1);R[8]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[8];R[5]=(word)fp;fp+=3;R[7]=G(R[1],7);R[3]=G(R[1],6);R[12]=G(R[1],5);R[4]=R[6];R[6]=R[12];ob=(word *)R[7];acc=5;}else{R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1721:if(acc==1){R[4]=F(2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=F(1);R[7]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=G(R[1],5);R[3]=G(R[1],4);R[6]=G(R[1],3);R[4]=R[5];R[5]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1722:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[5]=F(1);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1723:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1724:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1725:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[4]=R[3];R[3]=R[7];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1726:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1727:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[4];R[7]=(word)fp;fp+=4;R[4]=R[3];R[3]=R[7];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1728:if(acc==2){R[5]=G(R[1],2);ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1729:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[6];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1730:if(acc==2){R[5]=G(R[2],2);R[3]=G(R[1],2);ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1731:if(acc==2){R[5]=G(R[1],2);R[3]=R[4];ob=(word *)R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1732:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[7]=G(R[1],2);R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1733:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1734:if(acc==4){{word ob=R[4];if(allocp(ob))ob=V(ob);R[7]=F((ob>>TPOS)&63);}R[8]=F(32);if(R[7]==R[8]){R[9]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[9];acc=2;}else{R[9]=F(41);if(R[7]==R[9]){R[10]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],4);fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[10];acc=2;}else{R[10]=G(R[1],5);ob=(word *)R[10];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1735:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[9]=R[6];R[6]=R[4];R[4]=R[3];R[5]=R[7];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1736:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1737:if(acc==2){if(R[4]==IFALSE){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[5]=G(R[1],2);ob=(word *)R[5];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1738:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[9]=F(1);R[4]=R[5];R[5]=R[9];ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1739:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[5]=F(1);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1740:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TPROC);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[12]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[11];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1741:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],1);R[6]=G(R[1],5);R[7]=R[6]|R[5];R[8]=G(R[4],2);*fp=NUMHDR;fp[1]=R[7];fp[2]=R[8];R[9]=(word)fp;fp+=3;R[10]=G(R[1],7);R[11]=G(R[1],6);R[5]=G(R[1],4);R[7]=G(R[1],3);R[4]=R[6];R[6]=R[3];R[8]=R[9];R[9]=R[10];R[3]=R[11];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1742:if(acc==1){R[4]=F(0);R[5]=G(R[1],2);*fp=NUMHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=F(1);R[10]=G(R[1],3);R[12]=R[8];R[8]=R[6];R[6]=R[3];R[5]=R[4];R[4]=R[9];R[9]=R[7];R[7]=R[10];R[3]=R[12];ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1743:if(acc==6){R[9]=G(R[1],2);ob=(word *)R[9];acc=7;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1744:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(3,TCLOS);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[5]=R[3];R[3]=R[6];R[6]=R[4];R[4]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1745:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TCLOS);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1746:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],2);R[6]=G(R[1],3);R[7]=G(R[6],2);R[6]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(4,TCLOS);fp[1]=G(R[2],2);fp[3]=R[9];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1747:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[5]=R[6];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1748:if(acc==3){R[6]=G(R[2],2);R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[5];fp[4]=R[3];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[9]=F(0);R[10]=R[6];R[5]=R[7];R[6]=R[9];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1749:if(acc==1){R[4]=F(2);R[5]=prim_less(R[3],R[4]);if(R[5]==IFALSE){R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[9];fp[3]=R[8];fp[2]=R[7];R[10]=(word)fp;fp+=5;R[4]=G(R[1],2);R[5]=R[3];R[3]=R[10];ob=(word *)R[6];acc=3;}else{R[6]=G(R[2],4);R[3]=G(R[1],4);R[4]=G(R[1],3);R[5]=G(R[1],2);ob=(word *)R[6];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1750:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1751:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1752:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1753:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[9]=R[6];R[6]=R[4];R[3]=R[5];R[5]=R[7];R[4]=R[9];ob=(word *)R[6];acc=4;}else{R[4]=G(R[1],5);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1754:if(acc==2){R[5]=G(R[1],2);ob=(word *)R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1755:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1756:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],2);R[4]=R[3];R[3]=R[6];ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1757:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=F(0);R[5]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1758:if(acc==4){R[7]=G(R[2],2);R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[6];fp[5]=R[3];fp[4]=R[5];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=7;R[6]=F(0);R[5]=R[8];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1759:if(acc==1){R[4]=F(2);R[5]=prim_less(R[3],R[4]);if(R[5]==IFALSE){R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[10];fp[5]=R[9];fp[4]=R[8];fp[3]=R[3];fp[2]=R[7];R[11]=(word)fp;fp+=7;R[4]=G(R[1],2);R[5]=R[3];R[3]=R[11];ob=(word *)R[6];acc=3;}else{R[6]=G(R[2],4);R[7]=G(R[1],5);R[4]=G(R[1],3);R[5]=G(R[1],2);R[10]=G(R[1],4);R[11]=R[6];R[3]=R[7];R[6]=R[10];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1760:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=F(1);R[5]=G(R[1],2);R[11]=R[4];R[4]=R[9];ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1761:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1762:if(acc==5){R[8]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[5];fp[3]=R[6];fp[2]=R[4];R[3]=(word)fp;fp+=7;ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1763:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],6);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=8;R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1764:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[10]=G(R[1],3);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],6);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1765:if(acc==1){R[4]=G(R[1],2);R[5]=prim_less(R[4],R[3]);if(R[5]==IFALSE){R[6]=G(R[2],2);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=R[6];R[5]=R[3];R[3]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{R[6]=G(R[2],3);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=R[6];R[5]=R[3];R[3]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1766:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=G(R[2],3);R[9]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1767:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[10]=R[5];R[5]=R[7];R[7]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1768:if(acc==1){{word *ob=(word *)R[3];word hdr;assert(allocp(R[3]),R[3],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[4]=ob[1];R[5]=ob[2];}R[6]=G(R[2],2);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=INULL;R[10]=R[6];R[3]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1769:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);R[6]=G(R[4],2);R[7]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1770:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1771:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1772:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],4);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1773:if(acc==3){R[6]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1774:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1775:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],3);R[5]=G(R[1],2);R[9]=R[4];R[3]=R[6];R[4]=R[7];ob=(word *)R[9];acc=3;}else{R[4]=G(R[1],4);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1776:if(acc==3){{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}R[7]=F(42);if(R[6]==R[7]){{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==R[7]){R[9]=G(R[4],1);R[10]=G(R[5],2);R[11]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=5;R[4]=R[9];R[5]=R[10];ob=(word *)R[11];acc=3;}else{R[9]=G(R[4],1);R[10]=G(R[4],2);R[11]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[10];ob=(word *)R[11];acc=3;}}else{{word ob=R[5];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}if(R[8]==R[7]){R[9]=G(R[5],2);R[10]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[5]=R[9];ob=(word *)R[10];acc=3;}else{R[9]=G(R[1],6);ob=(word *)R[9];acc=3;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1777:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],1);R[6]=G(R[2],2);R[7]=G(R[1],3);R[4]=R[3];R[3]=R[7];ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1778:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],1);R[6]=G(R[1],3);R[7]=G(R[6],2);R[8]=G(R[2],2);R[9]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[9];fp[2]=R[3];R[3]=(word)fp;fp+=4;R[4]=R[5];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1779:if(acc==5){R[8]=F(30);R[9]=prim_less(R[7],R[8]);if(R[9]==IFALSE){R[10]=G(R[1],4);R[11]=G(R[1],5);*fp=make_header(9,TCLOS);fp[1]=G(R[2],2);fp[8]=R[11];fp[7]=R[7];fp[6]=R[10];fp[5]=R[5];fp[4]=R[6];fp[3]=R[3];fp[2]=R[4];R[12]=(word)fp;fp+=9;R[4]=R[3];R[6]=R[10];R[3]=R[12];ob=(word *)R[6];acc=4;}else{R[10]=G(R[2],3);R[3]=G(R[1],5);R[4]=G(R[1],3);R[5]=G(R[1],2);ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1780:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(10,TCLOS);fp[1]=G(R[2],2);fp[9]=R[10];fp[8]=R[3];fp[7]=R[9];fp[6]=R[4];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=10;R[6]=R[4];R[4]=R[5];R[5]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1781:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);R[10]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[10];fp[7]=R[9];fp[6]=R[8];fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=9;R[12]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1782:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[9];fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=8;R[11]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[4];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1783:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[9];R[4]=R[10];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1784:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1785:if(acc==10){if(R[4]==INULL){R[13]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[3];fp[5]=R[11];fp[4]=R[9];fp[3]=R[7];fp[2]=R[8];R[3]=(word)fp;fp+=7;R[4]=R[6];ob=(word *)R[13];acc=2;}else{if(R[5]==INULL){R[13]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],4);fp[6]=R[3];fp[5]=R[11];fp[4]=R[9];fp[3]=R[7];fp[2]=R[8];R[3]=(word)fp;fp+=7;R[4]=R[6];ob=(word *)R[13];acc=2;}else{if(R[10]==IFALSE){{word *ob=(word *)R[6];word hdr;assert(allocp(R[6]),R[6],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[13]=ob[1];R[14]=ob[2];}{word *ob=(word *)R[7];word hdr;assert(allocp(R[7]),R[7],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[15]=ob[1];R[16]=ob[2];}R[17]=F(1);{word res=fixval(R[11])+fixval(R[17]);R[19]=BOOL(res&(1< */ + case 1786:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[3];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1787:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1788:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(7,TPROC);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=G(R[1],2);R[7]=R[4];R[4]=R[10];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1789:if(acc==1){R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1790:if(acc==9){R[12]=G(R[1],2);ob=(word *)R[12];acc=10;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1791:if(acc==2){R[5]=G(R[4],2);if(R[5]==INULL){R[6]=G(R[4],1);ob=(word *)R[3];R[3]=R[6];acc=1;}else{ob=(word *)R[3];R[3]=R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1792:if(acc==4){if(R[4]==INULL){R[7]=INULL;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=G(R[4],1);R[4]=G(R[4],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],2);fp[4]=R[3];fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1793:if(acc==1){R[4]=F(0);*fp=NUMHDR;fp[1]=R[4];fp[2]=R[3];R[5]=(word)fp;fp+=3;R[6]=G(R[2],2);R[7]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[7];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[9]=G(R[1],3);R[5]=G(R[1],2);R[11]=R[6];R[6]=R[4];R[4]=R[9];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1794:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);R[6]=G(R[1],6);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[5]=G(R[1],2);R[6]=R[3];R[3]=R[7];R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1795:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],2);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=INULL;R[8]=G(R[1],2);R[10]=R[7];R[11]=R[6];R[6]=R[3];R[7]=R[4];R[5]=R[8];R[4]=R[10];R[3]=R[11];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1796:if(acc==1){if(R[3]==INULL){R[4]=G(R[1],2);R[3]=F(0);ob=(word *)R[4];acc=1;}else{R[4]=G(R[3],2);if(R[4]==INULL){R[3]=G(R[3],1);R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{R[5]=G(R[1],2);ob=(word *)R[5];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1797:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{if(R[5]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[7]=G(R[4],1);R[8]=G(R[5],1);R[9]=R[7]^(R[8]^2);R[4]=G(R[4],2);R[5]=G(R[5],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1798:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{if(R[5]==INULL){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[7]=G(R[4],1);R[8]=G(R[5],1);R[9]=R[7]|R[8];R[4]=G(R[4],2);R[5]=G(R[5],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1799:if(acc==4){if(R[4]==INULL){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[5]==INULL){R[7]=F(0);ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=G(R[4],1);R[8]=G(R[5],1);R[9]=R[7]&R[8];R[4]=G(R[4],2);R[5]=G(R[5],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[9];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1800:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(5,TPROC);fp[1]=G(R[2],3);fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=5;R[8]=G(R[1],2);R[5]=G(R[2],4);R[10]=R[4];R[4]=R[8];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1801:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[5]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1802:if(acc==3){if(R[4]==INULL){R[6]=F(0);ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[4],1);{uint64_t r=(uint64_t)fixval(R[6])<<(FBITS-fixval(R[5]));R[7]=F(r>>FBITS);R[8]=F(r&FMAX);}R[9]=G(R[4],2);R[10]=G(R[1],2);R[11]=ITRUE;R[6]=R[5];R[4]=R[7];R[5]=R[9];R[7]=R[11];ob=(word *)R[10];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1803:if(acc==1){R[4]=F(41);R[3]=prim_cast((word *)R[3],fixval(R[4])&63);R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1804:if(acc==1){R[4]=G(R[1],2);*fp=make_header(3,42);fp[1]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1805:if(acc==3){{word res=fixval(R[4])+fixval(R[5]);R[7]=BOOL(res&(1< */ + case 1806:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TCLOS);fp[1]=G(R[1],3);fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[7]=(word)fp;fp+=5;R[8]=IFALSE;R[9]=R[6];R[3]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1807:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=IFALSE;R[9]=ITRUE;R[10]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];R[7]=R[9];ob=(word *)R[10];acc=5;}else{R[4]=G(R[2],2);R[5]=G(R[1],4);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],2);R[8]=G(R[1],3);R[9]=IFALSE;R[10]=ITRUE;R[11]=R[4];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];R[7]=R[10];ob=(word *)R[11];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1808:if(acc==6){if(R[4]==INULL){R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}else{if(R[5]==INULL){if(R[6]==IFALSE){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[9]=G(R[1],2);R[5]=F(1);R[6]=R[7];ob=(word *)R[9];acc=4;}}else{R[9]=G(R[4],1);R[10]=G(R[5],1);{word r=(fixval(R[9])|(1< */ + case 1809:if(acc==4){R[7]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=ITRUE;R[10]=R[5];R[5]=R[4];R[4]=R[10];ob=(word *)R[7];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1810:if(acc==5){if(R[4]==INULL){if(R[5]==INULL){if(R[6]==IFALSE){R[8]=INULL;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=G(R[1],2);ob=(word *)R[3];R[3]=R[8];acc=1;}}else{if(R[6]==IFALSE){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[8]=G(R[1],3);R[4]=F(1);ob=(word *)R[8];acc=3;}}}else{if(R[5]==INULL){if(R[6]==IFALSE){ob=(word *)R[3];R[3]=R[4];acc=1;}else{R[8]=G(R[1],3);R[9]=F(1);R[5]=R[4];R[4]=R[9];ob=(word *)R[8];acc=3;}}else{R[8]=G(R[4],1);R[9]=G(R[5],1);{word res=fixval(R[8])+fixval(R[9]);R[11]=BOOL(res&(1< */ + case 1811:if(acc==4){{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[7]=ob[1];R[8]=ob[2];}{word res=fixval(R[4])+fixval(R[7]);R[10]=BOOL(res&(1< */ + case 1812:if(acc==1){R[4]=G(R[1],2);*fp=NUMHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1813:if(acc==1){R[4]=F(0);*fp=NUMHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1814:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[5]=F(2);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[1],3);R[5]=prim_ref(R[7],R[5]);R[9]=G(R[1],5);R[3]=G(R[1],4);R[4]=R[6];R[6]=R[9];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1815:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[5]=G(R[4],2);R[6]=G(R[1],3);R[7]=G(R[6],2);R[6]=G(R[1],5);R[3]=G(R[1],4);R[4]=R[5];R[5]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1816:if(acc==5){if(R[4]==R[5]){ob=(word *)R[3];R[3]=R[6];acc=1;}else{if(R[4]==INULL){R[8]=ITRUE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{if(R[5]==INULL){R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{R[8]=G(R[4],1);R[9]=G(R[5],1);R[10]=prim_less(R[8],R[9]);if(R[10]==IFALSE){if(R[8]==R[9]){R[4]=G(R[4],2);R[5]=G(R[5],2);ob=(word *)R[7];acc=5;}else{R[4]=G(R[4],2);R[5]=G(R[5],2);R[6]=IFALSE;ob=(word *)R[7];acc=5;}}else{R[4]=G(R[4],2);R[5]=G(R[5],2);R[6]=ITRUE;ob=(word *)R[7];acc=5;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1817:if(acc==4){if(R[4]==R[5]){R[7]=ITRUE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[4]==INULL){R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{if(R[5]==INULL){R[7]=IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=G(R[4],1);R[8]=G(R[5],1);if(R[7]==R[8]){R[4]=G(R[4],2);R[5]=G(R[5],2);ob=(word *)R[6];acc=4;}else{R[9]=IFALSE;ob=(word *)R[3];R[3]=R[9];acc=1;}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1818:if(acc==4){R[7]=INULL;*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[8];R[9]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[9];R[5]=(word)fp;fp+=3;R[11]=G(R[1],2);R[4]=G(R[1],3);ob=(word *)R[11];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1819:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[7]=G(R[4],2);R[8]=G(R[4],1);*fp=NUMHDR;fp[1]=R[8];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[4]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1820:if(acc==2){R[5]=F(0);R[6]=(R[4]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1821:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[10]=R[5];R[5]=R[3];R[4]=R[6];R[6]=R[7];R[3]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1822:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1823:if(acc==5){if(R[4]==IFALSE){ob=(word *)R[3];R[3]=R[6];acc=1;}else{if(R[5]==INULL){R[8]=G(R[1],2);R[5]=IFALSE;ob=(word *)R[8];acc=4;}else{R[8]=G(R[5],1);R[9]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[6]=G(R[1],4);R[5]=R[8];ob=(word *)R[9];acc=4;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1824:if(acc==1){R[4]=G(R[1],2);R[5]=G(R[4],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[4]=R[3];R[3]=R[7];R[7]=R[6];R[6]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1825:if(acc==4){*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[4];R[7]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1826:if(acc==3){R[6]=G(R[1],2);R[7]=G(R[1],3);R[9]=R[6];R[6]=R[5];R[5]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1827:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[4]=R[6];R[6]=R[3];R[3]=R[5];R[5]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1828:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[1],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1829:if(acc==4){R[7]=G(R[1],4);R[8]=(R[4]==R[7])?ITRUE:IFALSE;R[9]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[4]=R[8];ob=(word *)R[9];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1830:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=G(R[1],4);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],4);assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[6]=ob[1];R[7]=ob[2];switch(hdrsize(hdr)){case 3:R[5]=IEMPTY;R[8]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1831:if(acc==1){R[4]=G(R[1],3);if(R[3]==R[4]){R[5]=G(R[1],7);R[3]=G(R[1],2);ob=(word *)R[5];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(2);R[7]=R[5]&R[6];R[8]=(R[6]==R[7])?ITRUE:IFALSE;if(R[8]==IFALSE){R[9]=G(R[2],2);R[10]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],5);R[7]=G(R[1],4);R[4]=R[3];R[3]=R[10];ob=(word *)R[9];acc=5;}else{R[9]=G(R[1],6);R[10]=G(R[1],5);R[11]=G(R[1],4);R[3]=prim_mkff(TFF|FFRED,R[3],R[9],R[10],R[11]);R[13]=G(R[1],7);ob=(word *)R[13];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1832:if(acc==1){R[4]=G(R[1],3);if(R[3]==R[4]){R[5]=G(R[1],7);R[3]=G(R[1],2);ob=(word *)R[5];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(2);R[7]=R[5]&R[6];R[8]=(R[6]==R[7])?ITRUE:IFALSE;if(R[8]==IFALSE){R[9]=G(R[2],2);R[10]=G(R[1],7);R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=R[3];R[3]=R[10];ob=(word *)R[9];acc=5;}else{R[9]=G(R[1],6);R[10]=G(R[1],5);R[11]=G(R[1],4);R[3]=prim_mkff(TFF|FFRED,R[9],R[10],R[11],R[3]);R[13]=G(R[1],7);ob=(word *)R[13];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1833:if(acc==4){R[7]=G(R[1],2);if(R[4]==R[7]){ob=(word *)R[3];R[3]=R[5];acc=1;}else{if(R[5]==R[7]){ob=(word *)R[3];R[3]=R[4];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(2);R[10]=R[8]&R[9];R[11]=(R[9]==R[10])?ITRUE:IFALSE;if(R[11]==IFALSE){{word ob=R[5];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=R[12]&R[9];R[14]=(R[9]==R[13])?ITRUE:IFALSE;if(R[14]==IFALSE){R[15]=G(R[1],3);*fp=make_header(6,TCLOS);fp[1]=G(R[1],4);fp[5]=R[3];fp[4]=R[5];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;ob=(word *)R[15];acc=2;}else{assert(allocp(R[5]),R[5],1049);{word *ob=(word *)R[5];word hdr=*ob;R[16]=ob[1];R[17]=ob[2];switch(hdrsize(hdr)){case 3:R[15]=IEMPTY;R[18]=IEMPTY;break;case 4:if(hdr&(1<>TPOS)&63);}R[13]=R[12]&R[9];R[14]=(R[9]==R[13])?ITRUE:IFALSE;if(R[14]==IFALSE){assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[16]=ob[1];R[17]=ob[2];switch(hdrsize(hdr)){case 3:R[15]=IEMPTY;R[18]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1834:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[8];R[4]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1835:if(acc==1){{word ob=R[3];if(allocp(ob))ob=V(ob);R[4]=F((ob>>TPOS)&63);}R[5]=F(2);R[6]=R[4]&R[5];R[7]=(R[5]==R[6])?ITRUE:IFALSE;if(R[7]==IFALSE){R[8]=G(R[1],2);assert(allocp(R[8]),R[8],1049);{word *ob=(word *)R[8];word hdr=*ob;R[10]=ob[1];R[11]=ob[2];switch(hdrsize(hdr)){case 3:R[9]=IEMPTY;R[12]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1836:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[8]=G(R[1],5);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[8];fp[5]=R[7];fp[4]=R[6];fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=7;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1837:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(5,TCLOS);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[8];R[4]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1838:if(acc==1){{word ob=R[3];if(allocp(ob))ob=V(ob);R[4]=F((ob>>TPOS)&63);}R[5]=F(2);R[6]=R[4]&R[5];R[7]=(R[5]==R[6])?ITRUE:IFALSE;if(R[7]==IFALSE){R[8]=G(R[1],2);assert(allocp(R[8]),R[8],1049);{word *ob=(word *)R[8];word hdr=*ob;R[10]=ob[1];R[11]=ob[2];switch(hdrsize(hdr)){case 3:R[9]=IEMPTY;R[12]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1839:if(acc==2){assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[6]=ob[1];R[7]=ob[2];switch(hdrsize(hdr)){case 3:R[5]=IEMPTY;R[8]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1840:if(acc==2){assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[6]=ob[1];R[7]=ob[2];switch(hdrsize(hdr)){case 3:R[5]=IEMPTY;R[8]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1841:if(acc==5){{word ob=R[7];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(2);R[10]=R[8]&R[9];R[11]=(R[9]==R[10])?ITRUE:IFALSE;if(R[11]==IFALSE){{word ob=R[4];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=R[12]&R[9];R[14]=(R[9]==R[13])?ITRUE:IFALSE;if(R[14]==IFALSE){{word ob=R[4];if(allocp(ob))ob=V(ob);R[15]=F((ob>>TPOS)&63);}R[16]=R[15]^(R[9]^2);R[4]=prim_cast((word *)R[4],fixval(R[16])&63);R[18]=G(R[1],2);ob=(word *)R[18];acc=5;}else{assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[16]=ob[1];R[17]=ob[2];switch(hdrsize(hdr)){case 3:R[15]=IEMPTY;R[18]=IEMPTY;break;case 4:if(hdr&(1<>TPOS)&63);}R[24]=R[23]^(R[9]^2);R[4]=prim_cast((word *)R[15],fixval(R[24])&63);R[26]=G(R[1],2);*fp=make_header(9,TPROC);fp[1]=G(R[1],3);fp[8]=R[3];fp[7]=R[20];fp[6]=R[21];fp[5]=R[22];fp[4]=R[5];fp[3]=R[6];fp[2]=R[7];R[3]=(word)fp;fp+=9;R[5]=R[16];R[6]=R[17];R[7]=R[19];ob=(word *)R[26];acc=5;}}else{{word ob=R[7];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=R[12]^(R[9]^2);R[14]=prim_cast((word *)R[7],fixval(R[13])&63);R[15]=prim_mkff(TFF|FFRED,R[4],R[5],R[6],R[14]);ob=(word *)R[3];R[3]=R[15];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1842:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[8]=prim_mkff(TFF,R[4],R[5],R[6],R[7]);R[9]=G(R[1],7);R[10]=G(R[1],6);R[3]=prim_mkff(TFF|FFRED,R[3],R[9],R[10],R[8]);R[12]=G(R[1],8);ob=(word *)R[12];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1843:if(acc==5){{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(2);R[10]=R[8]&R[9];R[11]=(R[9]==R[10])?ITRUE:IFALSE;if(R[11]==IFALSE){{word ob=R[7];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=R[12]&R[9];R[14]=(R[9]==R[13])?ITRUE:IFALSE;if(R[14]==IFALSE){{word ob=R[7];if(allocp(ob))ob=V(ob);R[15]=F((ob>>TPOS)&63);}R[16]=R[15]^(R[9]^2);R[7]=prim_cast((word *)R[7],fixval(R[16])&63);R[18]=G(R[1],2);ob=(word *)R[18];acc=5;}else{assert(allocp(R[7]),R[7],1049);{word *ob=(word *)R[7];word hdr=*ob;R[16]=ob[1];R[17]=ob[2];switch(hdrsize(hdr)){case 3:R[15]=IEMPTY;R[18]=IEMPTY;break;case 4:if(hdr&(1<>TPOS)&63);}R[25]=R[24]^(R[9]^2);R[7]=prim_cast((word *)R[18],fixval(R[25])&63);R[27]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[1],3);fp[5]=R[3];fp[4]=R[23];fp[3]=R[20];fp[2]=R[21];R[3]=(word)fp;fp+=6;R[5]=R[16];R[6]=R[17];R[4]=R[22];ob=(word *)R[27];acc=5;}}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=R[12]^(R[9]^2);R[14]=prim_cast((word *)R[4],fixval(R[13])&63);R[15]=prim_mkff(TFF|FFRED,R[14],R[5],R[6],R[7]);ob=(word *)R[3];R[3]=R[15];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1844:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=INULL;R[9]=R[5];R[10]=R[6];R[6]=R[4];R[5]=R[7];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1845:if(acc==4){*fp=PAIRHDR;fp[1]=R[5];fp[2]=R[6];R[7]=(word)fp;fp+=3;*fp=PAIRHDR;fp[1]=R[7];fp[2]=R[4];R[8]=(word)fp;fp+=3;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1846:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[7]=G(R[1],4);R[9]=R[5];R[10]=R[6];R[6]=R[4];R[5]=R[7];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1847:if(acc==3){assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);R[7]=G(R[5],2);R[8]=G(R[1],2);R[5]=R[6];R[6]=R[7];ob=(word *)R[8];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1848:if(acc==5){R[8]=G(R[1],4);R[9]=(R[6]==R[8])?ITRUE:IFALSE;R[10]=G(R[1],2);*fp=make_header(7,TCLOS);fp[1]=G(R[1],3);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=7;R[4]=R[9];ob=(word *)R[10];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1849:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],5);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[6]=ob[1];R[7]=ob[2];switch(hdrsize(hdr)){case 3:R[5]=IEMPTY;R[8]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1850:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[2],4);R[6]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[2],2);R[8]=G(R[1],4);R[9]=G(R[1],5);R[10]=G(R[1],3);R[11]=G(R[1],7);R[12]=G(R[1],8);R[13]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[13];fp[7]=R[12];fp[6]=R[11];fp[5]=R[4];fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=9;R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],6);R[5]=G(R[2],4);R[6]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[2],2);R[8]=G(R[1],2);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);R[12]=G(R[1],7);R[13]=G(R[1],8);R[14]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],5);fp[9]=R[14];fp[8]=R[13];fp[7]=R[12];fp[6]=R[4];fp[5]=R[11];fp[4]=R[10];fp[3]=R[9];fp[2]=R[8];R[3]=(word)fp;fp+=10;R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1851:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],9);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],8);R[8]=G(R[1],7);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],9);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[4];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1852:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],6);R[5]=G(R[1],7);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{R[4]=G(R[1],6);R[5]=G(R[1],5);R[6]=G(R[1],7);R[7]=G(R[1],8);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1853:if(acc==5){R[8]=G(R[1],2);if(R[6]==R[8]){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(allocp(R[6]),R[6],1049);{word *ob=(word *)R[6];word hdr=*ob;R[10]=ob[1];R[11]=ob[2];switch(hdrsize(hdr)){case 3:R[9]=IEMPTY;R[12]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1854:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[5]=G(R[2],4);R[6]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[2],2);R[8]=G(R[1],9);R[9]=G(R[1],3);R[10]=G(R[1],4);R[11]=G(R[1],5);R[12]=G(R[1],8);R[13]=G(R[1],7);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[13];fp[7]=R[12];fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[4];R[3]=(word)fp;fp+=9;R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],2);R[5]=G(R[2],4);R[6]=(R[4]==R[5])?ITRUE:IFALSE;R[7]=G(R[2],2);R[8]=G(R[1],3);R[9]=G(R[1],4);R[10]=G(R[1],5);R[11]=G(R[1],6);R[12]=G(R[1],7);R[13]=G(R[1],8);R[14]=G(R[1],9);*fp=make_header(10,TCLOS);fp[1]=G(R[2],5);fp[9]=R[14];fp[8]=R[13];fp[7]=R[12];fp[6]=R[11];fp[5]=R[10];fp[4]=R[9];fp[3]=R[8];fp[2]=R[4];R[3]=(word)fp;fp+=10;R[4]=R[6];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1855:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],7);R[5]=G(R[1],6);R[6]=G(R[1],8);R[7]=G(R[1],9);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],3);R[5]=G(R[1],5);R[6]=G(R[1],4);R[12]=R[4];R[4]=R[9];ob=(word *)R[12];acc=4;}else{R[4]=G(R[1],9);R[5]=G(R[1],4);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],7);R[9]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[4];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=8;R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1856:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],6);R[7]=G(R[1],7);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[8]=(word)fp;fp+=6;R[5]=G(R[1],3);R[6]=G(R[1],2);R[11]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[11];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1857:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[10]=R[6];R[11]=R[5];R[5]=R[3];R[6]=R[7];R[7]=R[4];R[4]=R[10];R[3]=R[11];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1858:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],8);R[5]=G(R[1],7);R[6]=G(R[1],4);R[7]=G(R[1],6);R[8]=G(R[1],5);R[9]=R[4];R[3]=R[5];R[4]=R[6];R[5]=R[7];R[6]=R[8];ob=(word *)R[9];acc=4;}else{R[4]=G(R[1],3);R[5]=G(R[1],5);R[6]=G(R[1],6);R[7]=G(R[1],7);R[8]=G(R[1],8);*fp=make_header(6,TPROC);fp[1]=G(R[2],2);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=G(R[1],4);R[6]=G(R[1],2);R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1859:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[9]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1860:if(acc==4){*fp=make_header(6,TCLOS);fp[1]=G(R[1],2);fp[5]=R[3];fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[8]=G(R[1],3);R[9]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1861:if(acc==1){R[4]=G(R[2],2);if(R[3]==R[4]){R[5]=G(R[2],3);R[6]=G(R[1],5);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[6];R[7]=(word)fp;fp+=3;R[4]=G(R[1],4);R[9]=G(R[1],3);R[6]=G(R[1],2);R[11]=R[5];R[3]=R[7];R[5]=R[9];ob=(word *)R[11];acc=4;}else{R[5]=G(R[2],5);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[9]=G(R[1],2);R[10]=R[5];R[3]=R[6];R[4]=R[7];R[5]=R[8];R[6]=R[9];ob=(word *)R[10];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1862:if(acc==1){{word ob=R[3];if(allocp(ob))ob=V(ob);R[4]=F((ob>>TPOS)&63);}R[5]=F(2);R[6]=R[4]&R[5];R[7]=(R[5]==R[6])?ITRUE:IFALSE;if(R[7]==IFALSE){R[8]=G(R[1],2);ob=(word *)R[8];acc=1;}else{{word ob=R[3];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=R[8]^(R[5]^2);R[3]=prim_cast((word *)R[3],fixval(R[9])&63);R[11]=G(R[1],2);ob=(word *)R[11];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1863:if(acc==5){R[8]=G(R[1],2);if(R[4]==R[8]){R[9]=G(R[1],3);R[4]=G(R[1],4);ob=(word *)R[9];acc=3;}else{R[9]=F(1);R[10]=prim_ref(R[4],R[9]);if(R[5]==R[10]){R[11]=F(2);R[12]=prim_set(R[4],R[11],R[6]);ob=(word *)R[3];R[3]=R[12];acc=1;}else{R[11]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[12]=F(2);if(R[11]==R[12]){R[4]=R[8];ob=(word *)R[7];acc=5;}else{R[13]=F(3);if(R[11]==R[13]){R[14]=prim_ref(R[4],R[13]);*fp=make_header(4,TPROC);fp[1]=G(R[1],5);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[14];ob=(word *)R[7];acc=5;}else{R[14]=prim_less(R[5],R[10]);if(R[14]==IFALSE){R[15]=F(4);R[16]=prim_ref(R[4],R[15]);*fp=make_header(4,TPROC);fp[1]=G(R[1],6);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[16];ob=(word *)R[7];acc=5;}else{R[15]=prim_ref(R[4],R[13]);*fp=make_header(4,TPROC);fp[1]=G(R[1],7);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[15];ob=(word *)R[7];acc=5;}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1864:if(acc==1){R[4]=G(R[1],2);R[5]=F(4);R[3]=prim_set(R[4],R[5],R[3]);R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1865:if(acc==1){R[4]=G(R[1],2);R[5]=F(3);R[3]=prim_set(R[4],R[5],R[3]);R[7]=G(R[1],3);ob=(word *)R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1866:if(acc==5){R[8]=G(R[1],2);if(R[4]==R[8]){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[9]=F(1);R[10]=prim_ref(R[4],R[9]);if(R[10]==R[5]){R[11]=F(2);R[12]=prim_ref(R[4],R[11]);ob=(word *)R[3];R[3]=R[12];acc=1;}else{R[11]=prim_less(R[5],R[10]);if(R[11]==IFALSE){R[12]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[13]=F(4);if(R[12]==R[13]){R[4]=prim_ref(R[4],R[13]);ob=(word *)R[7];acc=5;}else{R[14]=F(2);if(R[12]==R[14]){ob=(word *)R[3];R[3]=R[6];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[15]=F((ob>>TPOS)&63);}R[16]=R[15]&R[9];R[17]=(R[9]==R[16])?ITRUE:IFALSE;if(R[17]==IFALSE){ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[18]=F(3);R[4]=prim_ref(R[4],R[18]);ob=(word *)R[7];acc=5;}}}}else{R[12]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[13]=F(4);if(R[12]==R[13]){R[14]=F(3);R[4]=prim_ref(R[4],R[14]);ob=(word *)R[7];acc=5;}else{R[14]=F(2);if(R[12]==R[14]){ob=(word *)R[3];R[3]=R[6];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[15]=F((ob>>TPOS)&63);}R[16]=R[15]&R[9];R[17]=(R[9]==R[16])?ITRUE:IFALSE;if(R[17]==IFALSE){R[18]=F(3);R[4]=prim_ref(R[4],R[18]);ob=(word *)R[7];acc=5;}else{ob=(word *)R[3];R[3]=R[6];acc=1;}}}}}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1867:if(acc==5){R[8]=G(R[1],2);if(R[4]==R[8]){R[9]=prim_mkff(TFF|FFRED,R[8],R[5],R[6],R[8]);ob=(word *)R[3];R[3]=R[9];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[9]=F((ob>>TPOS)&63);}R[10]=F(2);R[11]=R[9]&R[10];R[12]=(R[10]==R[11])?ITRUE:IFALSE;if(R[12]==IFALSE){assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[14]=ob[1];R[15]=ob[2];switch(hdrsize(hdr)){case 3:R[13]=IEMPTY;R[16]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1868:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[3]=prim_mkff(TFF|FFRED,R[3],R[4],R[5],R[6]);R[8]=G(R[1],5);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1869:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[3]=prim_mkff(TFF|FFRED,R[4],R[5],R[6],R[3]);R[8]=G(R[1],5);ob=(word *)R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1870:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[8];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1871:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],5);R[6]=G(R[1],4);R[7]=G(R[1],3);R[8]=G(R[1],2);R[10]=R[4];R[11]=R[5];R[5]=R[7];R[7]=R[3];R[4]=R[6];R[6]=R[8];R[3]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1872:if(acc==5){{word ob=R[7];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(2);R[10]=R[8]&R[9];R[11]=(R[9]==R[10])?ITRUE:IFALSE;if(R[11]==IFALSE){R[12]=prim_mkff(TFF,R[4],R[5],R[6],R[7]);ob=(word *)R[3];R[3]=R[12];acc=1;}else{assert(allocp(R[7]),R[7],1049);{word *ob=(word *)R[7];word hdr=*ob;R[13]=ob[1];R[14]=ob[2];switch(hdrsize(hdr)){case 3:R[12]=IEMPTY;R[15]=IEMPTY;break;case 4:if(hdr&(1<>TPOS)&63);}R[17]=R[16]&R[9];R[18]=(R[9]==R[17])?ITRUE:IFALSE;if(R[18]==IFALSE){{word ob=R[15];if(allocp(ob))ob=V(ob);R[19]=F((ob>>TPOS)&63);}R[20]=R[19]&R[9];R[21]=(R[9]==R[20])?ITRUE:IFALSE;if(R[21]==IFALSE){R[22]=prim_mkff(TFF,R[4],R[5],R[6],R[7]);ob=(word *)R[3];R[3]=R[22];acc=1;}else{assert(allocp(R[15]),R[15],1049);{word *ob=(word *)R[15];word hdr=*ob;R[23]=ob[1];R[24]=ob[2];switch(hdrsize(hdr)){case 3:R[22]=IEMPTY;R[25]=IEMPTY;break;case 4:if(hdr&(1< */ + case 1873:if(acc==5){{word ob=R[4];if(allocp(ob))ob=V(ob);R[8]=F((ob>>TPOS)&63);}R[9]=F(2);R[10]=R[8]&R[9];R[11]=(R[9]==R[10])?ITRUE:IFALSE;if(R[11]==IFALSE){R[12]=prim_mkff(TFF,R[4],R[5],R[6],R[7]);ob=(word *)R[3];R[3]=R[12];acc=1;}else{{word ob=R[7];if(allocp(ob))ob=V(ob);R[12]=F((ob>>TPOS)&63);}R[13]=R[12]&R[9];R[14]=(R[9]==R[13])?ITRUE:IFALSE;if(R[14]==IFALSE){assert(allocp(R[4]),R[4],1049);{word *ob=(word *)R[4];word hdr=*ob;R[16]=ob[1];R[17]=ob[2];switch(hdrsize(hdr)){case 3:R[15]=IEMPTY;R[18]=IEMPTY;break;case 4:if(hdr&(1<>TPOS)&63);}R[20]=R[19]&R[9];R[21]=(R[9]==R[20])?ITRUE:IFALSE;if(R[21]==IFALSE){{word ob=R[18];if(allocp(ob))ob=V(ob);R[22]=F((ob>>TPOS)&63);}R[23]=R[22]&R[9];R[24]=(R[9]==R[23])?ITRUE:IFALSE;if(R[24]==IFALSE){R[25]=prim_mkff(TFF,R[4],R[5],R[6],R[7]);ob=(word *)R[3];R[3]=R[25];acc=1;}else{assert(allocp(R[18]),R[18],1049);{word *ob=(word *)R[18];word hdr=*ob;R[26]=ob[1];R[27]=ob[2];switch(hdrsize(hdr)){case 3:R[25]=IEMPTY;R[28]=IEMPTY;break;case 4:if(hdr&(1<>TPOS)&63);}R[16]=R[15]^(R[9]^2);R[17]=prim_cast((word *)R[4],fixval(R[16])&63);{word ob=R[7];if(allocp(ob))ob=V(ob);R[18]=F((ob>>TPOS)&63);}R[19]=R[18]^(R[9]^2);R[20]=prim_cast((word *)R[7],fixval(R[19])&63);R[21]=prim_mkff(TFF|FFRED,R[17],R[5],R[6],R[20]);ob=(word *)R[3];R[3]=R[21];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1874:if(acc==2){R[5]=G(R[1],2);if(R[4]==R[5]){R[6]=ITRUE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{word ob=R[4];if(allocp(ob))ob=V(ob);R[6]=F((ob>>TPOS)&63);}R[7]=F(124);R[8]=R[6]&R[7];R[9]=F(24);R[10]=(R[9]==R[8])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[10];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1875:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1876:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[3]=ITRUE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1877:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1878:if(acc==2){R[5]=G(R[1],2);R[6]=(R[4]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1879:if(acc==2){R[5]=G(R[1],2);R[6]=INULL;R[7]=R[5];R[5]=R[4];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1880:if(acc==5){if(R[5]==INULL){R[8]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[8];acc=2;}else{assert(pairp(R[5]),R[5],1053);R[8]=G(R[5],2);if(R[8]==INULL){assert(pairp(R[4]),R[4],1052);R[9]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[9];fp[2]=R[6];R[10]=(word)fp;fp+=3;R[11]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],4);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[10];ob=(word *)R[11];acc=2;}else{assert(pairp(R[4]),R[4],1053);R[9]=G(R[4],2);assert(pairp(R[8]),R[8],1053);R[5]=G(R[8],2);R[11]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[11];fp[2]=R[6];R[6]=(word)fp;fp+=3;R[4]=R[9];ob=(word *)R[7];acc=5;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1881:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],3);R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1882:if(acc==4){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[4];R[7]=(word)fp;fp+=3;R[8]=INULL;R[4]=R[5];R[5]=R[6];R[6]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1883:if(acc==5){if(R[5]==INULL){R[8]=G(R[2],2);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=4;R[4]=R[6];ob=(word *)R[8];acc=2;}else{assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);R[9]=G(R[1],2);*fp=make_header(6,TPROC);fp[1]=G(R[2],4);fp[5]=R[7];fp[4]=R[3];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[5]=R[8];ob=(word *)R[9];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1884:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=G(R[1],5);R[10]=G(R[1],4);R[4]=R[3];R[5]=R[6];R[6]=R[8];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1885:if(acc==5){if(R[5]==INULL){ob=(word *)R[3];R[3]=R[6];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);*fp=make_header(7,TPROC);fp[1]=G(R[1],2);fp[6]=R[3];fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1886:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],5);R[7]=G(R[1],6);R[8]=G(R[1],4);R[9]=G(R[1],3);R[3]=R[7];R[7]=R[6];R[4]=R[8];R[6]=R[9];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1052);R[3]=G(R[4],1);R[6]=G(R[1],6);ob=(word *)R[6];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1887:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[4];fp[2]=R[5];R[4]=(word)fp;fp+=4;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1888:if(acc==2){R[5]=G(R[2],2);R[6]=G(R[1],3);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[4];fp[2]=R[6];R[7]=(word)fp;fp+=4;R[8]=ITRUE;R[6]=G(R[1],2);R[10]=R[5];R[4]=R[7];R[5]=R[8];ob=(word *)R[10];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1889:if(acc==3){R[6]=G(R[1],2);R[7]=G(R[1],3);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[7];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1890:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=IFALSE;R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1891:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[4]=R[3];R[3]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1892:if(acc==3){R[6]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[4];R[7]=(word)fp;fp+=3;R[8]=INULL;R[9]=R[6];R[6]=R[5];R[4]=R[7];R[5]=R[8];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1893:if(acc==3){R[6]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[2],2);fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1894:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[3]=G(R[1],3);ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);R[5]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],4);ob=(word *)R[7];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1895:if(acc==3){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[4];R[6]=(word)fp;fp+=3;R[7]=INULL;R[4]=R[5];R[5]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1896:if(acc==4){if(R[4]==INULL){R[7]=G(R[2],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[3];R[3]=(word)fp;fp+=3;R[4]=R[5];ob=(word *)R[7];acc=2;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[8]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],4);fp[5]=R[6];fp[4]=R[3];fp[3]=R[5];fp[2]=R[4];R[3]=(word)fp;fp+=6;R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1897:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);*fp=make_header(4,TPROC);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],3);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[4],1);R[7]=G(R[1],3);*fp=PAIRHDR;fp[1]=R[6];fp[2]=R[7];R[8]=(word)fp;fp+=3;R[6]=G(R[1],5);R[3]=G(R[1],4);R[4]=R[5];R[5]=R[8];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1898:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1899:if(acc==1){R[4]=G(R[1],2);R[5]=INULL;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1900:if(acc==2){R[5]=G(R[1],2);R[6]=INULL;R[8]=R[5];R[5]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1901:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[4]),R[4],1053);R[7]=G(R[4],2);R[8]=G(R[4],1);*fp=PAIRHDR;fp[1]=R[8];fp[2]=R[5];R[5]=(word)fp;fp+=3;R[4]=R[7];ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1902:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[5]=R[3];R[6]=R[4];R[3]=R[7];R[4]=R[8];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1903:if(acc==3){assert(pairp(R[4]),R[4],1053);R[6]=G(R[4],2);if(R[6]==INULL){R[7]=G(R[4],1);ob=(word *)R[3];R[3]=R[7];acc=1;}else{R[7]=G(R[4],1);R[4]=G(R[4],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1904:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[6];R[10]=R[5];R[5]=R[3];R[6]=R[4];R[4]=R[9];R[3]=R[10];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1905:if(acc==5){if(R[5]==INULL){R[8]=IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[8]=G(R[5],1);*fp=make_header(7,TPROC);fp[1]=G(R[1],2);fp[6]=R[7];fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[10]=R[4];R[5]=R[6];R[4]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1906:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],6);R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[3]=R[7];R[7]=R[6];R[4]=R[8];R[6]=R[9];ob=(word *)R[7];acc=5;}else{R[4]=G(R[1],5);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1907:if(acc==3){R[6]=G(R[1],2);R[7]=G(R[1],3);R[9]=R[6];R[6]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1908:if(acc==3){ob=(word *)R[3];R[3]=R[5];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1909:if(acc==4){if(R[5]==INULL){R[7]=INULL;ob=(word *)R[3];R[3]=R[7];acc=1;}else{assert(pairp(R[5]),R[5],1052);R[7]=G(R[5],1);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[6];fp[4]=R[3];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=R[4];R[4]=R[7];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1910:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[4]=G(R[1],3);R[3]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1911:if(acc==4){if(R[5]==INULL){R[7]=INULL;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{word *ob=(word *)R[5];word hdr;assert(allocp(R[5]),R[5],IFALSE);hdr=*ob;assert_not((rawp(hdr)||hdrsize(hdr)!=3),ob,IFALSE);R[7]=ob[1];R[8]=ob[2];}*fp=make_header(6,TCLOS);fp[1]=G(R[1],2);fp[5]=R[3];fp[4]=R[6];fp[3]=R[4];fp[2]=R[8];R[3]=(word)fp;fp+=6;R[8]=R[4];R[4]=R[7];ob=(word *)R[8];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1912:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[5];fp[2]=R[3];R[6]=(word)fp;fp+=4;R[7]=G(R[1],3);R[5]=G(R[1],2);R[3]=R[6];R[6]=R[4];R[4]=R[7];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1913:if(acc==5){if(R[6]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[6]),R[6],1052);R[8]=G(R[6],1);R[6]=G(R[6],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],2);fp[4]=R[4];fp[3]=R[3];fp[2]=R[8];R[3]=(word)fp;fp+=5;ob=(word *)R[7];acc=5;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1914:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1915:if(acc==6){if(R[7]==INULL){R[7]=R[3];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{assert(pairp(R[7]),R[7],1052);R[9]=G(R[7],1);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[8];fp[4]=R[3];fp[3]=R[4];fp[2]=R[7];R[3]=(word)fp;fp+=6;R[11]=R[4];R[4]=R[5];R[5]=R[6];R[6]=R[9];ob=(word *)R[11];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1916:if(acc==2){R[5]=G(R[1],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);R[7]=G(R[1],5);R[8]=G(R[1],4);R[9]=G(R[1],3);R[5]=R[3];R[3]=R[8];R[8]=R[7];R[7]=R[6];R[6]=R[4];R[4]=R[9];ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1917:if(acc==5){R[8]=G(R[1],2);ob=(word *)R[8];acc=6;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1918:if(acc==5){*fp=make_header(7,TCLOS);fp[1]=G(R[1],2);fp[6]=R[3];fp[5]=R[7];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=7;R[4]=R[5];ob=(word *)R[6];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1919:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],5);R[7]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[7];fp[4]=R[6];fp[3]=R[4];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{R[4]=G(R[1],6);R[3]=INULL;ob=(word *)R[4];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1920:if(acc==2){R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[3];R[7]=(word)fp;fp+=4;R[8]=G(R[1],3);R[6]=G(R[1],2);R[3]=R[7];R[7]=R[5];R[5]=R[4];R[4]=R[8];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1921:if(acc==5){if(R[6]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[6]),R[6],1052);R[8]=G(R[6],1);*fp=make_header(6,TPROC);fp[1]=G(R[1],2);fp[5]=R[7];fp[4]=R[3];fp[3]=R[4];fp[2]=R[6];R[3]=(word)fp;fp+=6;R[10]=R[4];R[4]=R[5];R[5]=R[8];ob=(word *)R[10];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1922:if(acc==1){R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],5);R[7]=G(R[1],4);R[8]=G(R[1],3);R[10]=R[7];R[7]=R[6];R[6]=R[5];R[5]=R[3];R[4]=R[8];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1923:if(acc==4){R[7]=G(R[1],2);ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1924:if(acc==3){if(R[4]==INULL){R[6]=ITRUE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{R[6]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[5];fp[3]=R[3];fp[2]=R[4];R[3]=(word)fp;fp+=5;ob=(word *)R[6];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1925:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[1],3);R[3]=IFALSE;ob=(word *)R[4];acc=1;}else{R[4]=G(R[1],2);assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);R[6]=G(R[1],4);R[3]=G(R[1],3);R[4]=R[5];R[5]=R[6];ob=(word *)R[5];acc=3;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1926:if(acc==2){assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1927:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);assert(pairp(R[5]),R[5],1053);R[6]=G(R[5],2);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1928:if(acc==2){assert(pairp(R[4]),R[4],1053);R[5]=G(R[4],2);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1929:if(acc==2){assert(pairp(R[4]),R[4],1052);R[5]=G(R[4],1);assert(pairp(R[5]),R[5],1052);R[6]=G(R[5],1);ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1930:if(acc==2){R[5]=INULL;R[6]=(R[4]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1931:if(acc==2){{word ob=R[4];if(allocp(ob))ob=V(ob);R[5]=F((ob>>TPOS)&63);}R[6]=F(1);R[7]=(R[6]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1932:if(acc==2){R[5]=ITRUE;if(R[4]==R[5]){ob=(word *)R[3];R[3]=R[5];acc=1;}else{if(R[4]==IFALSE){ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[6]=IFALSE;ob=(word *)R[3];R[3]=R[6];acc=1;}}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1933:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);R[8]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1934:if(acc==3){R[6]=G(R[1],2);R[7]=F(5);R[9]=R[6];R[6]=R[5];R[5]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1935:if(acc==3){R[6]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1936:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],2);*fp=make_header(3,TPROC);fp[1]=G(R[2],3);fp[2]=R[5];R[3]=(word)fp;fp+=3;R[7]=G(R[1],3);*fp=make_header(3,TPROC);fp[1]=G(R[2],4);fp[2]=R[7];R[8]=(word)fp;fp+=3;R[7]=R[4];R[4]=R[8];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1937:if(acc==2){R[5]=F(1);R[6]=prim_ref(R[4],R[5]);R[7]=G(R[1],2);R[8]=(R[6]==R[7])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[8];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1938:if(acc==1){R[4]=F(2);R[3]=prim_ref(R[3],R[4]);R[6]=G(R[1],2);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1939:if(acc==1){R[4]=G(R[1],5);R[5]=G(R[1],4);R[6]=G(R[1],3);R[7]=G(R[1],2);R[10]=R[5];R[5]=R[6];R[6]=R[7];R[7]=R[4];R[4]=R[3];R[3]=R[10];ob=(word *)R[7];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1940:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[1],4);fp[2]=R[4];R[5]=(word)fp;fp+=3;R[6]=G(R[1],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],3);fp[3]=R[5];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1941:if(acc==4){R[7]=G(R[1],2);*fp=make_header(6,TCLOS);fp[1]=G(R[2],2);fp[5]=R[3];fp[4]=R[4];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1942:if(acc==1){if(R[3]==IFALSE){R[4]=G(R[2],2);R[5]=G(R[1],2);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],3);*fp=make_header(6,TPROC);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=6;ob=(word *)R[4];acc=1;}else{R[4]=G(R[2],4);R[5]=G(R[1],4);R[6]=G(R[1],5);*fp=make_header(4,TPROC);fp[1]=G(R[2],5);fp[3]=R[6];fp[2]=R[5];R[3]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[4]=R[8];ob=(word *)R[9];acc=2;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1943:if(acc==1){R[4]=G(R[1],3);R[3]=G(R[1],2);ob=(word *)R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1944:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=3;R[7]=G(R[1],5);R[8]=G(R[1],4);R[4]=R[3];R[5]=R[6];R[6]=R[7];R[3]=R[8];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1945:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[6]=INULL;R[9]=R[5];R[5]=R[6];R[6]=R[4];R[4]=R[3];R[3]=R[9];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1946:if(acc==1){R[4]=G(R[1],2);R[5]=F(13);R[6]=IFALSE;R[9]=R[4];R[4]=R[5];R[5]=R[6];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1947:if(acc==2){R[5]=G(R[1],2);*fp=make_header(4,TCLOS);fp[1]=G(R[1],3);fp[3]=R[3];fp[2]=R[4];R[6]=(word)fp;fp+=4;R[7]=F(19);R[9]=R[5];R[5]=R[4];R[3]=R[6];R[6]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1948:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[7]=R[4];R[3]=R[5];R[4]=R[6];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1949:if(acc==3){R[6]=G(R[1],2);R[7]=F(9);R[9]=R[6];R[6]=R[5];R[5]=R[4];R[4]=R[7];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1950:if(acc==2){R[5]=G(R[1],2);R[6]=F(6);R[9]=R[5];R[10]=R[6];R[5]=R[4];R[6]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1951:if(acc==2){R[5]=G(R[1],2);R[6]=F(2);R[9]=R[5];R[10]=R[6];R[5]=R[4];R[6]=R[4];R[4]=R[10];ob=(word *)R[9];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1952:if(acc==4){R[7]=G(R[1],2);*fp=make_header(5,TPROC);fp[1]=G(R[1],3);fp[4]=R[4];fp[3]=R[5];fp[2]=R[6];R[4]=(word)fp;fp+=5;ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1953:if(acc==2){R[5]=G(R[1],2);*fp=make_header(3,TCLOS);fp[1]=G(R[1],3);fp[2]=R[3];R[6]=(word)fp;fp+=3;R[7]=F(63);R[8]=R[5];R[3]=R[6];R[5]=R[7];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1954:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[8]=R[5];R[5]=R[4];R[4]=R[3];R[3]=R[8];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1955:if(acc==2){*fp=make_header(3,TCLOS);fp[1]=G(R[1],2);fp[2]=R[3];R[5]=(word)fp;fp+=3;R[7]=R[4];R[4]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1956:if(acc==2){R[5]=G(R[1],2);R[6]=F(6);R[10]=R[5];R[11]=R[6];R[5]=R[4];R[6]=R[4];R[7]=R[4];R[4]=R[11];ob=(word *)R[10];acc=5;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1957:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[7];fp[4]=R[6];fp[3]=R[3];fp[2]=R[5];R[3]=(word)fp;fp+=6;R[9]=G(R[1],2);R[7]=R[4];R[4]=R[9];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1958:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[9]=R[6];R[10]=R[5];R[5]=R[3];R[6]=R[4];R[4]=R[9];R[3]=R[10];ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1959:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);R[11]=G(R[1],9);*fp=make_header(9,TCLOS);fp[1]=G(R[2],3);fp[8]=R[11];fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[12]=(word)fp;fp+=9;R[13]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[12];R[4]=R[13];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1960:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);R[10]=G(R[1],8);*fp=make_header(8,TCLOS);fp[1]=G(R[2],3);fp[7]=R[10];fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[11]=(word)fp;fp+=8;R[12]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[11];R[4]=R[12];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1961:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);R[9]=G(R[1],7);*fp=make_header(7,TCLOS);fp[1]=G(R[2],3);fp[6]=R[9];fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[10]=(word)fp;fp+=7;R[11]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[10];R[4]=R[11];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1962:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);R[8]=G(R[1],6);*fp=make_header(6,TCLOS);fp[1]=G(R[2],3);fp[5]=R[8];fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[9]=(word)fp;fp+=6;R[10]=G(R[1],2);R[8]=R[4];R[5]=R[3];R[3]=R[9];R[4]=R[10];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1963:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);R[7]=G(R[1],5);*fp=make_header(5,TCLOS);fp[1]=G(R[2],3);fp[4]=R[7];fp[3]=R[6];fp[2]=R[5];R[8]=(word)fp;fp+=5;R[9]=G(R[1],2);R[10]=R[4];R[5]=R[3];R[3]=R[8];R[4]=R[9];ob=(word *)R[10];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1964:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],4);*fp=make_header(4,TCLOS);fp[1]=G(R[2],3);fp[3]=R[6];fp[2]=R[5];R[7]=(word)fp;fp+=4;R[8]=G(R[1],2);R[9]=R[4];R[5]=R[3];R[3]=R[7];R[4]=R[8];ob=(word *)R[9];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1965:if(acc==1){R[4]=G(R[2],2);R[5]=G(R[1],3);R[6]=G(R[1],2);R[8]=R[4];R[9]=R[5];R[5]=R[3];R[4]=R[6];R[3]=R[9];ob=(word *)R[8];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1966:if(acc==1){R[4]=G(R[1],4);R[5]=G(R[1],3);R[6]=G(R[1],2);R[3]=R[5];R[5]=R[4];R[4]=R[6];ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1967:if(acc==2){R[5]=G(R[1],2);ob=(word *)R[5];acc=3;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1968:if(acc==4){if(R[4]==INULL){ob=(word *)R[3];R[3]=R[5];acc=1;}else{assert(pairp(R[4]),R[4],1052);R[7]=G(R[4],1);R[4]=G(R[4],2);*fp=make_header(4,TPROC);fp[1]=G(R[1],2);fp[3]=R[3];fp[2]=R[7];R[3]=(word)fp;fp+=4;ob=(word *)R[6];acc=4;}}else{{error(17,ob,F(acc));}}break; /* # */ + case 1969:if(acc==1){R[4]=G(R[1],2);*fp=PAIRHDR;fp[1]=R[4];fp[2]=R[3];R[3]=(word)fp;fp+=3;R[6]=G(R[1],3);ob=(word *)R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1970:if(acc==3){R[6]=G(R[1],2);ob=(word *)R[6];acc=4;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1971:if(acc==2){R[5]=(immediatep(R[4]))?IFALSE:F(hdrsize(V(R[4]))-1);R[6]=IFALSE;R[7]=(R[6]==R[5])?ITRUE:IFALSE;ob=(word *)R[3];R[3]=R[7];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1972:if(acc==2){ob=(word *)R[3];R[3]=R[4];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1973:if(acc==3){*fp=make_header(4,TCLOS);fp[1]=G(R[1],2);fp[3]=R[4];fp[2]=R[5];R[6]=(word)fp;fp+=4;ob=(word *)R[3];R[3]=R[6];acc=1;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1974:if(acc==2){R[5]=G(R[1],2);R[6]=G(R[1],3);*fp=make_header(4,TPROC);fp[1]=G(R[2],2);fp[3]=R[6];fp[2]=R[3];R[3]=(word)fp;fp+=4;ob=(word *)R[5];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1975:if(acc==1){R[4]=G(R[1],3);R[5]=G(R[1],2);R[7]=R[4];R[4]=R[3];R[3]=R[5];ob=(word *)R[7];acc=2;}else{{error(17,ob,F(acc));}}break; /* # */ + case 1976:if(acc==2){if(R[4]==IFALSE){R[5]=ITRUE;ob=(word *)R[3];R[3]=R[5];acc=1;}else{R[5]=IFALSE;ob=(word *)R[3];R[3]=R[5];acc=1;}}else{{error(17,ob,F(acc));}}break; /* # */ + + default: + error(258, F(op), ITRUE); + } + goto apply; + +invoke_mcp: /* R4-R6 set, set R3=cont and R4=syscall and call mcp */ + ob = (word *) R[0]; + R[0] = IFALSE; + R[3] = F(3); + if (allocp(ob)) { + acc = 4; + goto apply; + } + return 1; /* no mcp to handle error (fail in it?), so nonzero exit */ +} + +#pragma clang diagnostic pop diff --git a/third_party/radamsa/radamsa.cc b/third_party/radamsa/radamsa.cc new file mode 100644 index 0000000..bf6894a --- /dev/null +++ b/third_party/radamsa/radamsa.cc @@ -0,0 +1,121 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#include "../../third_party/radamsa/radamsa.h" + +#include + +#include +#include +#include +#include "../../third_party/xxhash/xxhash.h" + +namespace radamsa { +namespace { + +static struct X { + // Input/output to Radamsa. + const std::string *input; + std::string output; + + // Where are we in the process of reading `input`? + size_t input_index; + + // Set of objects that remain unfreed by Radamsa. + std::set allocations; + +} gRadamsa; + +// Radamsa's `main` function. +extern "C" void *radamsa_boot(int argc, const char *argv[]); + +// Pretend to do a `read` system call from within Radamsa. +extern "C" ssize_t radamsa_read(int, uint8_t *buff, size_t buff_size) { + auto count = std::min( + buff_size, gRadamsa.input->length() - gRadamsa.input_index); + + memcpy(buff, gRadamsa.input->data() + gRadamsa.input_index, count); + gRadamsa.input_index += count; + return static_cast(count); +} + +// Pretend to do a `write` system call from within Radamsa. +extern "C" ssize_t radamsa_write(int, uint8_t *buff, size_t buff_size) { + gRadamsa.output.insert(gRadamsa.output.end(), buff, buff + buff_size); + return static_cast(buff_size); +} + +// Interposes on `malloc`s performed by Radamsa. +extern "C" void *radamsa_malloc(size_t size) { + auto ptr = malloc(size); + gRadamsa.allocations.insert(ptr); + return ptr; +} + +// Interposes on `free`s performed by Radamsa. +extern "C" void radamsa_free(void *ptr) { + gRadamsa.allocations.erase(ptr); + free(ptr); +} + +// Interposes on `realloc`s performed by Radamsa. The OWL scheme compiler uses +// `realloc` for heap allocation. +extern "C" void *radamsa_realloc(void *ptr, size_t size) { + gRadamsa.allocations.erase(ptr); + ptr = realloc(ptr, size); + gRadamsa.allocations.insert(ptr); + return ptr; +} + +static inline uint64_t CurrentTSC(void) { + uint64_t x; + __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); + return x; +} + +static XXH64_state_t gRadamsaRandState; +static auto gRadamsaRandStateInitialized = false; +static char gRadamsaSeed[32] = {'\0'}; +} // namespace + +std::string Mutate(const std::string &input) { + if (!gRadamsaRandStateInitialized) { + gRadamsaRandStateInitialized = true; + XXH64_reset(&gRadamsaRandState, CurrentTSC()); + } + + XXH64_update(&gRadamsaRandState, input.data(), input.size()); + + gRadamsa.input = &input; + gRadamsa.input_index = 0; + gRadamsa.output.clear(); + gRadamsa.output.reserve(input.size()); + + sprintf(gRadamsaSeed, "%ld", XXH64_digest(&gRadamsaRandState) & 0xFFFFFFFFU); + + const char *args[] = { + "radamsa", + "--seed", + gRadamsaSeed, + nullptr + }; +#if 1 + // I am not sure if this is even valid, due to the Radamsa heap being a + // static char array. + radamsa_boot(3, args); +#else + pthread_t radamsa; + pthread_create(&radamsa, nullptr, radamsa_boot, nullptr); + pthread_join(radamsa, nullptr); +#endif + + for (auto ptr : gRadamsa.allocations) free(ptr); + + gRadamsa.input = nullptr; + gRadamsa.allocations.clear(); + + std::string output; + output.swap(gRadamsa.output); + return output; +} + +} // namespace fuzz diff --git a/third_party/radamsa/radamsa.h b/third_party/radamsa/radamsa.h new file mode 100644 index 0000000..d608ed4 --- /dev/null +++ b/third_party/radamsa/radamsa.h @@ -0,0 +1,16 @@ +/* Copyright 2015 Peter Goodman, all rights reserved. */ + +#ifndef THIRD_PARTY_RADAMSA_RADAMSA_H_ +#define THIRD_PARTY_RADAMSA_RADAMSA_H_ + +#include "granary/base/base.h" + +#include + +namespace radamsa { + +std::string Mutate(const std::string &input); + +} // namespace radamsa + +#endif // THIRD_PARTY_RADAMSA_RADAMSA_H_ diff --git a/third_party/xed-intel64/BUG-REPORTS.txt b/third_party/xed-intel64/BUG-REPORTS.txt new file mode 100644 index 0000000..6f341cc --- /dev/null +++ b/third_party/xed-intel64/BUG-REPORTS.txt @@ -0,0 +1,2 @@ +Send bugs to mark.charney@intel.com + diff --git a/third_party/xed-intel64/LICENSE.txt b/third_party/xed-intel64/LICENSE.txt new file mode 100644 index 0000000..8243578 --- /dev/null +++ b/third_party/xed-intel64/LICENSE.txt @@ -0,0 +1,144 @@ +IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING. + +Do not copy, install, or use the "Materials" provided under this +license agreement ("Agreement"), until you have carefully read the +following terms and conditions. By copying, installing, or otherwise +using the Materials, you agree to be bound by the terms of this +Agreement. If you do not agree to the terms of this Agreement, do not +copy, install, or use the Materials. + +Pre-Release License Agreement for Pre-Release Software + +1. PRE-RELEASE: The Materials are pre-release code, which may not be +fully functional and which Intel may substantially modify in producing +any final version. Intel can provide no assurance that it will ever +produce or make generally available a final version. + +2. LICENSE DEFINITIONS: + +A. "Materials" are defined as the software, documentation, license key +codes and other materials, including any updates and upgrade thereto, +for the applicable pre-release software (which may be found at +http://whatif.intel.com/), that are provided to you under this +Agreement. + +3. LICENSE GRANT: + +A. Subject to all of the terms and conditions of this Agreement, Intel +Corporation ("Intel") grants to you a non-exclusive, non-assignable +copyright license to make only the minimum number of copies of the +Materials reasonably necessary for your internal testing and +development of your products. + +B. Subject to all of the terms and conditions of this Agreement, Intel +grants to you a non-exclusive, non-assignable copyright license to +modify the Materials that are provided in source code (human readable) +form. + +C. If the Materials include the file named 'redist.txt', then subject +to all of the terms and conditions of this Agreement and any specific +restrictions which may appear in the 'redist.txt' file, Intel grants +to you a non-exclusive, non-assignable copyright license to +redistribute the files (unmodified or modified by you) listed in the +'redist.txt' file only as part of the application you develop with the +Materials. + +4. LICENSE RESTRICTIONS: + +A. You may not reverse-assemble, reverse-compile, or otherwise +reverse-engineer any software provided solely in binary form. + +B. You may not distribute any portion of Materials, whether in source +or binary form, to any third party, except as specified in this +Agreement. + +5. COPYRIGHT: Title to the Materials and all copies thereof remain +with Intel or its suppliers. The Materials are copyrighted and are +protected by United States copyright laws and international treaty +provisions. You will not remove any copyright notice from the +Materials. You agree to prevent any unauthorized copying of the +Materials. Except as expressly provided herein, Intel does not grant +any express or implied right to you under Intel patents, copyrights, +trademarks, or trade secret information. Subject to Intel's ownership +of the Materials, all right, title and interest in and to your +modifications shall belong to you. + +6. REPLACEMENTS: The Materials are provided "AS IS" without warranty +of any kind. If the media on which the Materials are furnished are +found to be defective in material or workmanship under normal use for +a period of ninety (90) days from the date of receipt, Intel's entire +liability and your exclusive remedy shall be the replacement of the +media. This offer is void if the media defect results from accident, +abuse, or misapplication. + +7. LIMITATION OF LIABILITY: THE ABOVE REPLACEMENT PROVISION IS THE +ONLY WARRANTY OF ANY KIND. INTEL OFFERS NO OTHER WARRANTY EITHER +EXPRESS OR IMPLIED INCLUDING THOSE OF MERCHANTABILITY, NONINFRINGEMENT +OF THIRD- PARTY INTELLECTUAL PROPERTY OR FITNESS FOR A PARTICULAR +PURPOSE. NEITHER INTEL NOR ITS SUPPLIERS SHALL BE LIABLE FOR ANY +DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF +BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, +OR OTHER LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE +SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. BECAUSE SOME JURISDICTIONS PROHIBIT THE EXCLUSION OR +LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE +ABOVE LIMITATION MAY NOT APPLY TO YOU. + +8. UNAUTHORIZED USE: THE MATERIALS ARE NOT DESIGNED, INTENDED, OR +AUTHORIZED FOR USE IN ANY TYPE OF SYSTEM OR APPLICATION IN WHICH THE +FAILURE OF THE MATERIALS COULD CREATE A SITUATION WHERE PERSONAL +INJURY OR DEATH MAY OCCUR (E.G MEDICAL SYSTEMS, LIFE SUSTAINING OR +LIFE SAVING SYSTEMS). Should the buyer purchase or use the Materials +for any such unintended or unauthorized use, the buyer shall indemnify +and hold Intel and its officers, subsidiaries and affiliates harmless +against all claims, costs, damages, and expenses, and reasonable +attorney fees arising out of, directly or indirectly, any claim of +product liability, personal injury or death associated with such +unintended or unauthorized use, even if such claim alleges that Intel +was negligent regarding the design or manufacture of the part. + +9. USER SUBMISSIONS: You agree that any material, information or other +communication, including all data, images, sounds, text, and other +things embodied therein, you transmit or post to an Intel website or +provide to Intel under this Agreement will be considered +non-confidential ("Communications"). Intel will have no +confidentiality obligations with respect to the Communications. You +agree that Intel and its designees will be free to copy, modify, +create derivative works, publicly display, disclose, distribute, +license and sublicense through multiple tiers of distribution and +licensees, incorporate and otherwise use the Communications, including +derivative works thereto, for any and all commercial or non-commercial +purposes. + +10. TERMINATION OF THIS LICENSE: The term of this Agreement will +commence on the date this Agreement is accepted by You and will +continue until terminated. This Agreement will terminate without +notice on the last day of the pre-release period, which is specified +elsewhere in the Materials, or upon the commercial release of the +Materials. Intel may terminate this Agreement at any time, with or +without cause, with written notice to you. Upon termination, you will +immediately destroy the Materials or return all copies of the +Materials to Intel along with any copies you have made. + +11. U.S. GOVERNMENT RESTRICTED RIGHTS: The Materials are provided with +"RESTRICTED RIGHTS". Use, duplication or disclosure by the Government +is subject to restrictions set forth in FAR52.227-14 and +DFAR252.227-7013 et seq. or its successor. Use of the Materials by the +Government constitutes acknowledgment of Intel's rights in them. + +12. EXPORT RESTRICTED RIGHTS: This software is subject to the +U.S. Export Administration Regulations and other U.S. law, and may not +be exported or re-exported to certain countries (Burma, Cuba, Iran, +North Korea, Sudan, and Syria) or to persons or entities prohibited +from receiving U.S. exports (including Denied Parties, Specially +Designated Nationals, and entities on the Bureau of Export +Administration Entity List or involved with missile technology or +nuclear, chemical or biological weapons). + +13. APPLICABLE LAWS: Any claim arising under or relating to this +Agreement shall be governed by the internal substantive laws of the +State of Delaware or federal courts located in Delaware, without +regard to principles of conflict of laws. You may not export the +Materials in violation of applicable export laws. + +* Other names and brands may be claimed as the property of others diff --git a/third_party/xed-intel64/README.txt b/third_party/xed-intel64/README.txt new file mode 100644 index 0000000..d2adcf1 --- /dev/null +++ b/third_party/xed-intel64/README.txt @@ -0,0 +1,148 @@ +Documentation: + +Internal Intel: http://sde.intel.com/xed +External World: http://software.intel.com/en-us/articles/pintool-downloads + +Send bugs to mark.charney@intel.com + + +================================================================================ + +If you are programming: + +decoder: look at examples/xed-ex1.cpp +encoder: look at examples/xed-ex5-enc.c (for the high-level encoder API) + +================================================================================ + +Examples of using hte command line tool: + +% obj/xed -h +Copyright (C) 2003-2014, Intel Corporation. All rights reserved. +XED version: [6.26.0-5-gb6a5c90 2014-04-17] + +Usage: obj/xed [options] +One of the following is required: + -i input_file (decode file) + -ir raw_input_file (decode a raw unformatted binary file) + -ih hex_input_file (decode a raw unformatted ASCII hex file) + -d hex-string (decode one instruction, must be last) + -ide input_file (decode/encode file) + -e instruction (encode, must be last) + -ie file-to-assemble (assemble the contents of the file) + -de hex-string (decode-then-encode, must be last) + +Optional arguments: + + -v N (0=quiet, 1=errors, 2=useful-info, 3=trace, + 5=very verbose) + -xv N (XED engine verbosity, 0...99) + + -chip-check CHIP (count instructions that are not valid for CHIP) + -chip-check-list (list the valid chips) + + -s section (target section for file disassembly, + PECOFF and ELF formats only) + + -n N (number of instructions to decode. Default 100M, + accepts K/M/G qualifiers) + + -perftail N (number of instructions to skip in performance + measurements. Default 0, accepts K/M/G qualifiers) + + -b addr (Base address offset, for DLLs/shared libraries. + Use 0x for hex addresses) + -as addr (Address to start disassembling. + Use 0x for hex addresses) + -ae addr (Address to end disassembling. + Use 0x for hex addresses) + -no-resync (Disable symbol-based resynchronization algorithm + for disassembly) + -ast (Show the AVX/SSE transition classfication) + + -I (Intel syntax for disassembly) + -A (ATT SYSV syntax for disassembly) + -xml (XML formatting) + -nwm (Format AVX512 without curly braces for writemasks, include k0) + -emit (Output __emit statements for the Intel compiler) + -dot FN (Emit a register dependence graph file in dot format. + Best used with -as ADDR -ae ADDR to limit graph size.) + + -r (for REAL_16 mode, 16b addressing (20b addresses), + 16b default data size) + -16 (for LEGACY_16 mode, 16b addressing, + 16b default data size) + -32 (for LEGACY_32 mode, 32b addressing, + 32b default data size -- default) + -64 (for LONG_64 mode w/64b addressing + Optional on windows/linux) + -mpx (Turn on MPX mode for disassembly, default is off) + -s32 (32b stack addressing, default, not in LONG_64 mode) + -s16 (16b stack addressing, not in LONG_64 mode) + + +================================================================================ + +Examples of use: + +Disassemble a file + +% obj/xed -i /bin/ls > dis.txt +% obj/xed -i foo.o > dis.txt + + +Disassemble an instruction: + +% obj/xed -64 -d 00 00 +0000 +ICLASS: ADD CATEGORY: BINARY EXTENSION: BASE IFORM: ADD_MEMb_GPR8 ISA_SET: I86 +SHORT: add byte ptr [rax], al + + +Encode an instruction (only some features available) + +% obj/xed -64 -e vaddps xmm1 xmm2 xmm3 +Request: VADDPS MODE:2, REG0:XMM1, REG1:XMM2, REG2:XMM3, SMODE:2 +OPERAND ORDER: REG0 REG1 REG2 +Encodable! C5E858CB +.byte 0xc5,0xe8,0x58,0xcb + + +Decode and then re-encode an instruction: + +% obj/xed -64 -de C5E858CB +C5E858CB +ICLASS: VADDPS CATEGORY: AVX EXTENSION: AVX IFORM: VADDPS_XMMdq_XMMdq_XMMdq ISA_SET: AVX +SHORT: vaddps xmm1, xmm2, xmm3 +Encodable! C5E858CB +Identical re-encoding + + +Find out detailed information about an instruction: + + +% obj/xed-ex1 -64 C5E858CB +Attempting to decode: c5 e8 58 cb +iclass VADDPS category AVX ISA-extension AVX ISA-set AVX +instruction-length 4 +operand-width 32 +effective-operand-width 32 +effective-address-width 64 +stack-address-width 64 +iform-enum-name VADDPS_XMMdq_XMMdq_XMMdq +iform-enum-name-dispatch (zero based) 1 +iclass-max-iform-dispatch 10 +Operands +# TYPE DETAILS VIS RW OC2 BITS BYTES NELEM ELEMSZ ELEMTYPE +# ==== ======= === == === ==== ===== ===== ====== ======== +0 REG0 REG0=XMM1 EXPLICIT W DQ 128 16 4 32 SINGLE +1 REG1 REG1=XMM2 EXPLICIT R DQ 128 16 4 32 SINGLE +2 REG2 REG2=XMM3 EXPLICIT R DQ 128 16 4 32 SINGLE +Memory Operands + MemopBytes = 0 +ATTRIBUTES: MXCSR +EXCEPTION TYPE: AVX_TYPE_2 +Vector length: 128 + + +================================================================================ diff --git a/third_party/xed-intel64/include/xed-address-width-enum.h b/third_party/xed-intel64/include/xed-address-width-enum.h new file mode 100644 index 0000000..ab682bf --- /dev/null +++ b/third_party/xed-intel64/include/xed-address-width-enum.h @@ -0,0 +1,63 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-address-width-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_ADDRESS_WIDTH_ENUM_H_) +# define _XED_ADDRESS_WIDTH_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_ADDRESS_WIDTH_INVALID=0, + XED_ADDRESS_WIDTH_16b=2, ///< 16b addressing + XED_ADDRESS_WIDTH_32b=4, ///< 32b addressing + XED_ADDRESS_WIDTH_64b=8, ///< 64b addressing + XED_ADDRESS_WIDTH_LAST +} xed_address_width_enum_t; + +/// This converts strings to #xed_address_width_enum_t types. +/// @param s A C-string. +/// @return #xed_address_width_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_address_width_enum_t str2xed_address_width_enum_t(const char* s); +/// This converts strings to #xed_address_width_enum_t types. +/// @param p An enumeration element of type xed_address_width_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_address_width_enum_t2str(const xed_address_width_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_address_width_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_address_width_enum_t xed_address_width_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-agen.h b/third_party/xed-intel64/include/xed-agen.h new file mode 100644 index 0000000..f89f99f --- /dev/null +++ b/third_party/xed-intel64/include/xed-agen.h @@ -0,0 +1,74 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-agen.h +/// + + +#ifndef _XED_AGEN_H_ +# define _XED_AGEN_H_ +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-error-enum.h" + + +/// A function for obtaining register values. 32b return values should be +/// zero extended to 64b. The error value is set to nonzero if the callback +/// experiences some sort of problem. @ingroup AGEN +typedef xed_uint64_t (*xed_register_callback_fn_t)(xed_reg_enum_t reg, void* context, xed_bool_t* error); + +/// A function for obtaining the segment base values. 32b return values +/// should be zero extended zero extended to 64b. The error value is set to +/// nonzero if the callback experiences some sort of problem. +/// @ingroup AGEN +typedef xed_uint64_t (*xed_segment_base_callback_fn_t)(xed_reg_enum_t reg, void* context, xed_bool_t* error); + + +/// Initialize the callback functions. Tell XED what to call when using +/// #xed_agen. +/// @ingroup AGEN +XED_DLL_EXPORT void xed_agen_register_callback(xed_register_callback_fn_t register_fn, + xed_segment_base_callback_fn_t segment_fn); + +/// Using the registered callbacks, compute the memory address for a +/// specified memop in a decoded instruction. memop_index can have the +/// value 0 for XED_OPERAND_MEM0, XED_OPERAND_AGEN, or 1 for +/// XED_OPERAND_MEM1. Any other value results in an error being +/// returned. The context parameter which is passed to the registered +/// callbacks can be used to identify which thread's state is being +/// referenced. +/// @ingroup AGEN +XED_DLL_EXPORT xed_error_enum_t xed_agen(xed_decoded_inst_t* xedd, + unsigned int memop_index, + void* context, + xed_uint64_t* out_address); + + +#endif diff --git a/third_party/xed-intel64/include/xed-attribute-enum.h b/third_party/xed-intel64/include/xed-attribute-enum.h new file mode 100644 index 0000000..d6360fa --- /dev/null +++ b/third_party/xed-intel64/include/xed-attribute-enum.h @@ -0,0 +1,146 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-attribute-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_ATTRIBUTE_ENUM_H_) +# define _XED_ATTRIBUTE_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_ATTRIBUTE_INVALID, + XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION, + XED_ATTRIBUTE_AVX_REQUIRES_ALIGNMENT, + XED_ATTRIBUTE_BROADCAST_ENABLED, + XED_ATTRIBUTE_BYTEOP, + XED_ATTRIBUTE_DISP8_EIGHTHMEM, + XED_ATTRIBUTE_DISP8_FULL, + XED_ATTRIBUTE_DISP8_FULLMEM, + XED_ATTRIBUTE_DISP8_GPR_READER, + XED_ATTRIBUTE_DISP8_GPR_READER_BYTE, + XED_ATTRIBUTE_DISP8_GPR_READER_WORD, + XED_ATTRIBUTE_DISP8_GPR_WRITER_LDOP_D, + XED_ATTRIBUTE_DISP8_GPR_WRITER_LDOP_Q, + XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE, + XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE_BYTE, + XED_ATTRIBUTE_DISP8_GPR_WRITER_STORE_WORD, + XED_ATTRIBUTE_DISP8_GSCAT, + XED_ATTRIBUTE_DISP8_HALF, + XED_ATTRIBUTE_DISP8_HALFMEM, + XED_ATTRIBUTE_DISP8_MEM128, + XED_ATTRIBUTE_DISP8_MOVDDUP, + XED_ATTRIBUTE_DISP8_QUARTERMEM, + XED_ATTRIBUTE_DISP8_SCALAR, + XED_ATTRIBUTE_DISP8_TUPLE1, + XED_ATTRIBUTE_DISP8_TUPLE1_BYTE, + XED_ATTRIBUTE_DISP8_TUPLE1_WORD, + XED_ATTRIBUTE_DISP8_TUPLE2, + XED_ATTRIBUTE_DISP8_TUPLE4, + XED_ATTRIBUTE_DISP8_TUPLE8, + XED_ATTRIBUTE_DOUBLE_WIDE_MEMOP, + XED_ATTRIBUTE_DOUBLE_WIDE_OUTPUT, + XED_ATTRIBUTE_DWORD_INDICES, + XED_ATTRIBUTE_ELEMENT_SIZE_D, + XED_ATTRIBUTE_ELEMENT_SIZE_Q, + XED_ATTRIBUTE_EXCEPTION_BR, + XED_ATTRIBUTE_FAR_XFER, + XED_ATTRIBUTE_FIXED_BASE0, + XED_ATTRIBUTE_FIXED_BASE1, + XED_ATTRIBUTE_GATHER, + XED_ATTRIBUTE_HALF_WIDE_OUTPUT, + XED_ATTRIBUTE_HLE_ACQ_ABLE, + XED_ATTRIBUTE_HLE_REL_ABLE, + XED_ATTRIBUTE_IGNORES_OSFXSR, + XED_ATTRIBUTE_IMPLICIT_ONE, + XED_ATTRIBUTE_INDEX_REG_IS_POINTER, + XED_ATTRIBUTE_KMASK, + XED_ATTRIBUTE_LOCKABLE, + XED_ATTRIBUTE_LOCKED, + XED_ATTRIBUTE_MASKOP, + XED_ATTRIBUTE_MASKOP_EVEX, + XED_ATTRIBUTE_MASK_AS_CONTROL, + XED_ATTRIBUTE_MASK_VARIABLE_MEMOP, + XED_ATTRIBUTE_MEMORY_FAULT_SUPPRESSION, + XED_ATTRIBUTE_MMX_EXCEPT, + XED_ATTRIBUTE_MPX_PREFIX_ABLE, + XED_ATTRIBUTE_MXCSR, + XED_ATTRIBUTE_MXCSR_RD, + XED_ATTRIBUTE_NOP, + XED_ATTRIBUTE_NOTSX, + XED_ATTRIBUTE_NOTSX_COND, + XED_ATTRIBUTE_NO_RIP_REL, + XED_ATTRIBUTE_PREFETCH, + XED_ATTRIBUTE_PROTECTED_MODE, + XED_ATTRIBUTE_QWORD_INDICES, + XED_ATTRIBUTE_REP, + XED_ATTRIBUTE_REQUIRES_ALIGNMENT, + XED_ATTRIBUTE_RING0, + XED_ATTRIBUTE_SCALABLE, + XED_ATTRIBUTE_SCATTER, + XED_ATTRIBUTE_SIMD_PACKED_ALIGNMENT, + XED_ATTRIBUTE_SIMD_SCALAR, + XED_ATTRIBUTE_SKIPLOW32, + XED_ATTRIBUTE_SKIPLOW64, + XED_ATTRIBUTE_SPECIAL_AGEN_REQUIRED, + XED_ATTRIBUTE_STACKPOP0, + XED_ATTRIBUTE_STACKPOP1, + XED_ATTRIBUTE_STACKPUSH0, + XED_ATTRIBUTE_STACKPUSH1, + XED_ATTRIBUTE_UNALIGNED, + XED_ATTRIBUTE_X87_CONTROL, + XED_ATTRIBUTE_X87_MMX_STATE_CW, + XED_ATTRIBUTE_X87_MMX_STATE_R, + XED_ATTRIBUTE_X87_MMX_STATE_W, + XED_ATTRIBUTE_X87_NOWAIT, + XED_ATTRIBUTE_XMM_STATE_CW, + XED_ATTRIBUTE_XMM_STATE_R, + XED_ATTRIBUTE_XMM_STATE_W, + XED_ATTRIBUTE_LAST +} xed_attribute_enum_t; + +/// This converts strings to #xed_attribute_enum_t types. +/// @param s A C-string. +/// @return #xed_attribute_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_attribute_enum_t str2xed_attribute_enum_t(const char* s); +/// This converts strings to #xed_attribute_enum_t types. +/// @param p An enumeration element of type xed_attribute_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_attribute_enum_t2str(const xed_attribute_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_attribute_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_attribute_enum_t xed_attribute_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-attributes.h b/third_party/xed-intel64/include/xed-attributes.h new file mode 100644 index 0000000..9a1fa61 --- /dev/null +++ b/third_party/xed-intel64/include/xed-attributes.h @@ -0,0 +1,42 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ + +#if !defined(_XED_ATTRIBUTES_H_) +# define _XED_ATTRIBUTES_H_ +#include "../../../third_party/xed-intel64/include/xed-types.h" + +typedef struct { + xed_uint64_t a1; + xed_uint64_t a2; +} xed_attributes_t; + +#endif diff --git a/third_party/xed-intel64/include/xed-build-defines.h b/third_party/xed-intel64/include/xed-build-defines.h new file mode 100644 index 0000000..d4b1e93 --- /dev/null +++ b/third_party/xed-intel64/include/xed-build-defines.h @@ -0,0 +1,53 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +#if !defined(_XED_BUILD_DEFINES_H_) +# define _XED_BUILD_DEFINES_H_ + +# if !defined(XED_AMD_ENABLED) +# define XED_AMD_ENABLED +# endif +# if !defined(XED_AVX) +# define XED_AVX +# endif +# if !defined(XED_GIT_VERSION) +# define XED_GIT_VERSION "7.22.0-19-gc0dc743 2015-04-10" +# endif +# if !defined(XED_MPX) +# define XED_MPX +# endif +# if !defined(XED_SUPPORTS_AVX512) +# define XED_SUPPORTS_AVX512 +# endif +# if !defined(XED_SUPPORTS_SHA) +# define XED_SUPPORTS_SHA +# endif +#endif diff --git a/third_party/xed-intel64/include/xed-category-enum.h b/third_party/xed-intel64/include/xed-category-enum.h new file mode 100644 index 0000000..26d6274 --- /dev/null +++ b/third_party/xed-intel64/include/xed-category-enum.h @@ -0,0 +1,134 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-category-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_CATEGORY_ENUM_H_) +# define _XED_CATEGORY_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_CATEGORY_INVALID, + XED_CATEGORY_3DNOW, + XED_CATEGORY_AES, + XED_CATEGORY_AVX, + XED_CATEGORY_AVX2, + XED_CATEGORY_AVX2GATHER, + XED_CATEGORY_AVX512, + XED_CATEGORY_AVX512VBMI, + XED_CATEGORY_BDW, + XED_CATEGORY_BINARY, + XED_CATEGORY_BITBYTE, + XED_CATEGORY_BLEND, + XED_CATEGORY_BMI1, + XED_CATEGORY_BMI2, + XED_CATEGORY_BROADCAST, + XED_CATEGORY_CALL, + XED_CATEGORY_CLFLUSHOPT, + XED_CATEGORY_CLWB, + XED_CATEGORY_CMOV, + XED_CATEGORY_COMPRESS, + XED_CATEGORY_COND_BR, + XED_CATEGORY_CONFLICT, + XED_CATEGORY_CONVERT, + XED_CATEGORY_DATAXFER, + XED_CATEGORY_DECIMAL, + XED_CATEGORY_EXPAND, + XED_CATEGORY_FCMOV, + XED_CATEGORY_FLAGOP, + XED_CATEGORY_FMA4, + XED_CATEGORY_GATHER, + XED_CATEGORY_IFMA, + XED_CATEGORY_INTERRUPT, + XED_CATEGORY_IO, + XED_CATEGORY_IOSTRINGOP, + XED_CATEGORY_KMASK, + XED_CATEGORY_LOGICAL, + XED_CATEGORY_LOGICAL_FP, + XED_CATEGORY_LZCNT, + XED_CATEGORY_MISC, + XED_CATEGORY_MMX, + XED_CATEGORY_MPX, + XED_CATEGORY_NOP, + XED_CATEGORY_PCLMULQDQ, + XED_CATEGORY_PCOMMIT, + XED_CATEGORY_POP, + XED_CATEGORY_PREFETCH, + XED_CATEGORY_PUSH, + XED_CATEGORY_RDRAND, + XED_CATEGORY_RDSEED, + XED_CATEGORY_RDWRFSGS, + XED_CATEGORY_RET, + XED_CATEGORY_ROTATE, + XED_CATEGORY_SCATTER, + XED_CATEGORY_SEGOP, + XED_CATEGORY_SEMAPHORE, + XED_CATEGORY_SETCC, + XED_CATEGORY_SGX, + XED_CATEGORY_SHA, + XED_CATEGORY_SHIFT, + XED_CATEGORY_SMAP, + XED_CATEGORY_SSE, + XED_CATEGORY_STRINGOP, + XED_CATEGORY_STTNI, + XED_CATEGORY_SYSCALL, + XED_CATEGORY_SYSRET, + XED_CATEGORY_SYSTEM, + XED_CATEGORY_TBM, + XED_CATEGORY_UNCOND_BR, + XED_CATEGORY_VFMA, + XED_CATEGORY_VTX, + XED_CATEGORY_WIDENOP, + XED_CATEGORY_X87_ALU, + XED_CATEGORY_XOP, + XED_CATEGORY_XSAVE, + XED_CATEGORY_XSAVEOPT, + XED_CATEGORY_LAST +} xed_category_enum_t; + +/// This converts strings to #xed_category_enum_t types. +/// @param s A C-string. +/// @return #xed_category_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_category_enum_t str2xed_category_enum_t(const char* s); +/// This converts strings to #xed_category_enum_t types. +/// @param p An enumeration element of type xed_category_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_category_enum_t2str(const xed_category_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_category_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_category_enum_t xed_category_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-chip-enum.h b/third_party/xed-intel64/include/xed-chip-enum.h new file mode 100644 index 0000000..2fe9fdd --- /dev/null +++ b/third_party/xed-intel64/include/xed-chip-enum.h @@ -0,0 +1,105 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-chip-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_CHIP_ENUM_H_) +# define _XED_CHIP_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_CHIP_INVALID, + XED_CHIP_I86, + XED_CHIP_I86FP, + XED_CHIP_I186, + XED_CHIP_I186FP, + XED_CHIP_I286REAL, + XED_CHIP_I286, + XED_CHIP_I2186FP, + XED_CHIP_I386REAL, + XED_CHIP_I386, + XED_CHIP_I386FP, + XED_CHIP_I486REAL, + XED_CHIP_I486, + XED_CHIP_PENTIUMREAL, + XED_CHIP_PENTIUM, + XED_CHIP_QUARK, + XED_CHIP_PENTIUMMMXREAL, + XED_CHIP_PENTIUMMMX, + XED_CHIP_ALLREAL, + XED_CHIP_PENTIUMPRO, + XED_CHIP_PENTIUM2, + XED_CHIP_PENTIUM3, + XED_CHIP_PENTIUM4, + XED_CHIP_P4PRESCOTT, + XED_CHIP_P4PRESCOTT_NOLAHF, + XED_CHIP_P4PRESCOTT_VTX, + XED_CHIP_CORE2, + XED_CHIP_PENRYN, + XED_CHIP_PENRYN_E, + XED_CHIP_NEHALEM, + XED_CHIP_WESTMERE, + XED_CHIP_BONNELL, + XED_CHIP_SALTWELL, + XED_CHIP_SILVERMONT, + XED_CHIP_AMD, + XED_CHIP_GOLDMONT, + XED_CHIP_SANDYBRIDGE, + XED_CHIP_IVYBRIDGE, + XED_CHIP_HASWELL, + XED_CHIP_BROADWELL, + XED_CHIP_SKYLAKE, + XED_CHIP_SKYLAKE_SERVER, + XED_CHIP_MEMORY_FUTURE, + XED_CHIP_KNL, + XED_CHIP_AVX512_FUTURE, + XED_CHIP_ALL, + XED_CHIP_LAST +} xed_chip_enum_t; + +/// This converts strings to #xed_chip_enum_t types. +/// @param s A C-string. +/// @return #xed_chip_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_chip_enum_t str2xed_chip_enum_t(const char* s); +/// This converts strings to #xed_chip_enum_t types. +/// @param p An enumeration element of type xed_chip_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_chip_enum_t2str(const xed_chip_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_chip_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_chip_enum_t xed_chip_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-common-defs.h b/third_party/xed-intel64/include/xed-common-defs.h new file mode 100644 index 0000000..c3ce6ea --- /dev/null +++ b/third_party/xed-intel64/include/xed-common-defs.h @@ -0,0 +1,81 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-common-defs.h +/// @brief some pervasive defines + + + +#ifndef _XED_COMMON_DEFS_H_ +# define _XED_COMMON_DEFS_H_ + +//////////////////////////////////////////////////////////////////////////// + +#define XED_MAX_OPERANDS 11 +#define XED_MAX_NONTERMINALS_PER_INSTRUCTION 20 // FIXME somewhat arbitrary + + // for most things it is 4, but one 64b mov allows 8 +#define XED_MAX_DISPLACEMENT_BYTES 8 + + // for most things it is max 4, but one 64b mov allows 8. +#define XED_MAX_IMMEDIATE_BYTES 8 + +#define XED_MAX_INSTRUCTION_BYTES 15 + + +#define XED_BYTE_MASK(x) ((x) & 0xFF) +#define XED_BYTE_CAST(x) (XED_STATIC_CAST(xed_uint8_t,x)) + +//////////////////////////////////////////////////////////////////////////// +// used for defining bit-field widths +// Microsoft's compiler treats enumerations as signed and if you pack +// the bit-field with values, when you assign it to a full-width enumeration, +// you get junk-- a big negative number. This compensates for cases that I've +// encountered +#if defined(__GNUC__) +# define XED_BIT_FIELD_PSEUDO_WIDTH4 4 +# define XED_BIT_FIELD_PSEUDO_WIDTH8 8 +#else +# define XED_BIT_FIELD_PSEUDO_WIDTH4 8 +# define XED_BIT_FIELD_PSEUDO_WIDTH8 16 +#endif + + +#endif + + + + + + + + + diff --git a/third_party/xed-intel64/include/xed-common-hdrs.h b/third_party/xed-intel64/include/xed-common-hdrs.h new file mode 100644 index 0000000..5847f79 --- /dev/null +++ b/third_party/xed-intel64/include/xed-common-hdrs.h @@ -0,0 +1,98 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-common-hdrs.h +/// + + + +#ifndef _XED_COMMON_HDRS_H_ +# define _XED_COMMON_HDRS_H_ + + + +#if defined(__FreeBSD__) +# define XED_BSD +#endif +#if defined(__linux__) +# define XED_LINUX +#endif +#if defined(_MSC_VER) +# define XED_WINDOWS +#endif +#if defined(__APPLE__) +# define XED_MAC +#endif + + +#if defined(XED_DLL) +// __declspec(dllexport) works with GNU GCC or MS compilers, but not ICC +// on linux + +# if defined(XED_WINDOWS) +# define XED_DLL_EXPORT __declspec(dllexport) +# define XED_DLL_IMPORT __declspec(dllimport) +# elif defined(XED_LINUX) || defined(XED_BSD) || defined(XED_MAC) +# define XED_DLL_EXPORT __attribute__((visibility("default"))) +# define XED_DLL_IMPORT +# else +# define XED_DLL_EXPORT +# define XED_DLL_IMPORT +# endif + +# if defined(XED_BUILD) + /* when building XED, we export symbols */ +# define XED_DLL_GLOBAL XED_DLL_EXPORT +# else + /* when building XED clients, we import symbols */ +# define XED_DLL_GLOBAL XED_DLL_IMPORT +# endif +#else +# define XED_DLL_EXPORT +# define XED_DLL_IMPORT +# define XED_DLL_GLOBAL +#endif + + +#if defined(XED_OMIT_ENCODER) + /* do not emit an encoder */ +#else +# define XED_ENCODER +#endif + +#if defined(XED_OMIT_DECODER) + /* do not emit a decoder */ +#else +# define XED_DECODER +#endif + +#endif + diff --git a/third_party/xed-intel64/include/xed-convert-table-init.h b/third_party/xed-intel64/include/xed-convert-table-init.h new file mode 100644 index 0000000..9a49219 --- /dev/null +++ b/third_party/xed-intel64/include/xed-convert-table-init.h @@ -0,0 +1,50 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-convert-table-init.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_CONVERT_TABLE_INIT_H_) +# define _XED_CONVERT_TABLE_INIT_H_ +#include "xed-internal-header.h" +typedef struct { + + const char** table_name; + + xed_operand_enum_t opnd; + + unsigned int limit; + +} xed_convert_table_t; +extern xed_convert_table_t xed_convert_table[XED_OPERAND_CONVERT_LAST]; +#endif diff --git a/third_party/xed-intel64/include/xed-cpuid-bit-enum.h b/third_party/xed-intel64/include/xed-cpuid-bit-enum.h new file mode 100644 index 0000000..1f81aa9 --- /dev/null +++ b/third_party/xed-intel64/include/xed-cpuid-bit-enum.h @@ -0,0 +1,115 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-cpuid-bit-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_CPUID_BIT_ENUM_H_) +# define _XED_CPUID_BIT_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_CPUID_BIT_INVALID, + XED_CPUID_BIT_ADOXADCX, + XED_CPUID_BIT_AES, + XED_CPUID_BIT_AVX, + XED_CPUID_BIT_AVX2, + XED_CPUID_BIT_AVX512BW, + XED_CPUID_BIT_AVX512CD, + XED_CPUID_BIT_AVX512DQ, + XED_CPUID_BIT_AVX512ER, + XED_CPUID_BIT_AVX512F, + XED_CPUID_BIT_AVX512IFMA, + XED_CPUID_BIT_AVX512PF, + XED_CPUID_BIT_AVX512VBMI, + XED_CPUID_BIT_AVX512VL, + XED_CPUID_BIT_BMI1, + XED_CPUID_BIT_BMI2, + XED_CPUID_BIT_CLFLUSH, + XED_CPUID_BIT_CLFLUSHOPT, + XED_CPUID_BIT_CLWB, + XED_CPUID_BIT_CMPXCHG16B, + XED_CPUID_BIT_F16C, + XED_CPUID_BIT_FMA, + XED_CPUID_BIT_FXSAVE, + XED_CPUID_BIT_INTEL64, + XED_CPUID_BIT_INTELPT, + XED_CPUID_BIT_INVPCID, + XED_CPUID_BIT_LAHF, + XED_CPUID_BIT_LZCNT, + XED_CPUID_BIT_MOVEBE, + XED_CPUID_BIT_MPX, + XED_CPUID_BIT_OSXSAVE, + XED_CPUID_BIT_PCLMULQDQ, + XED_CPUID_BIT_PCOMMIT, + XED_CPUID_BIT_POPCNT, + XED_CPUID_BIT_PREFETCHW, + XED_CPUID_BIT_PREFETCHWT1, + XED_CPUID_BIT_RDRAND, + XED_CPUID_BIT_RDSEED, + XED_CPUID_BIT_RDTSCP, + XED_CPUID_BIT_RDWRFSGS, + XED_CPUID_BIT_RTM, + XED_CPUID_BIT_SGX, + XED_CPUID_BIT_SHA, + XED_CPUID_BIT_SMAP, + XED_CPUID_BIT_SMX, + XED_CPUID_BIT_SSE, + XED_CPUID_BIT_SSE2, + XED_CPUID_BIT_SSE3, + XED_CPUID_BIT_SSE4, + XED_CPUID_BIT_SSE42, + XED_CPUID_BIT_SSSE3, + XED_CPUID_BIT_VMX, + XED_CPUID_BIT_XSAVE, + XED_CPUID_BIT_XSAVEC, + XED_CPUID_BIT_XSAVEOPT, + XED_CPUID_BIT_XSAVES, + XED_CPUID_BIT_LAST +} xed_cpuid_bit_enum_t; + +/// This converts strings to #xed_cpuid_bit_enum_t types. +/// @param s A C-string. +/// @return #xed_cpuid_bit_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_cpuid_bit_enum_t str2xed_cpuid_bit_enum_t(const char* s); +/// This converts strings to #xed_cpuid_bit_enum_t types. +/// @param p An enumeration element of type xed_cpuid_bit_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_cpuid_bit_enum_t2str(const xed_cpuid_bit_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_cpuid_bit_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_cpuid_bit_enum_t xed_cpuid_bit_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-cpuid-rec.h b/third_party/xed-intel64/include/xed-cpuid-rec.h new file mode 100644 index 0000000..6845266 --- /dev/null +++ b/third_party/xed-intel64/include/xed-cpuid-rec.h @@ -0,0 +1,69 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ + +#ifndef _XED_CPUID_REC_H_ +# define _XED_CPUID_REC_H_ +#include "../../../third_party/xed-intel64/include/xed-cpuid-bit-enum.h" +#include "../../../third_party/xed-intel64/include/xed-isa-set-enum.h" +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +typedef struct { + xed_uint32_t leaf; // cpuid leaf + xed_uint32_t subleaf; // cpuid subleaf + xed_uint32_t bit; // the bit number for the feature + xed_reg_enum_t reg; // the register containing the bit (EAX,EBX,ECX,EDX) +} xed_cpuid_rec_t; + +#define XED_MAX_CPUID_BITS_PER_ISA_SET (4) + +/// Returns the name of the i'th cpuid bit associated with this isa-set. +/// Call this repeatedly, with 0 <= i < +/// XED_MAX_CPUID_BITS_PER_ISA_SET. Give up when i == +/// XED_MAX_CPUID_BITS_PER_ISA_SET or the return value is +/// XED_CPUID_BIT_INVALID. +XED_DLL_EXPORT +xed_cpuid_bit_enum_t +xed_get_cpuid_bit_for_isa_set(xed_isa_set_enum_t isaset, + xed_uint_t i); + +/// This provides the details of the CPUID bit specification, if the +/// enumeration value is not sufficient. Returns 1 on success and fills in +/// the structure pointed to by p. Returns 0 on failure. +XED_DLL_EXPORT +xed_int_t +xed_get_cpuid_rec(xed_cpuid_bit_enum_t cpuid_bit, + xed_cpuid_rec_t* p); + +#endif + diff --git a/third_party/xed-intel64/include/xed-decode.h b/third_party/xed-intel64/include/xed-decode.h new file mode 100644 index 0000000..8f17882 --- /dev/null +++ b/third_party/xed-intel64/include/xed-decode.h @@ -0,0 +1,71 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-decode.h + + +#ifndef _XED_DECODE_H_ +# define _XED_DECODE_H_ + +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-error-enum.h" + +/// This is the main interface to the decoder. +/// @param xedd the decoded instruction of type #xed_decoded_inst_t . Mode/state sent in via xedd; See the #xed_state_t +/// @param itext the pointer to the array of instruction text bytes +/// @param bytes the length of the itext input array. 1 to 15 bytes, anything more is ignored. +/// @return #xed_error_enum_t indiciating success (#XED_ERROR_NONE) or failure. Note failure can be due to not +/// enough bytes in the input array. +/// +/// The maximum instruction is 15B and XED will tell you how long the +/// actual instruction is via an API function call +/// xed_decoded_inst_get_length(). However, it is not always safe or +/// advisable for XED to read 15 bytes if the decode location is at the +/// boundary of some sort of protection limit. For example, if one is +/// decoding near the end of a page and the XED user does not want to cause +/// extra page faults, one might send in the number of bytes that would +/// stop at the page boundary. In this case, XED might not be able to +/// decode the instruction and would return an error. The XED user would +/// then have to decide if it was safe to touch the next page and try again +/// to decode with more bytes. Also sometimes the user process does not +/// have read access to the next page and this allows the user to prevent +/// XED from causing process termination by limiting the memory range that +/// XED will access. +/// +/// @ingroup DEC +XED_DLL_EXPORT xed_error_enum_t +xed_decode(xed_decoded_inst_t* xedd, + const xed_uint8_t* itext, + const unsigned int bytes); + + +#endif + diff --git a/third_party/xed-intel64/include/xed-decoded-inst-api.h b/third_party/xed-intel64/include/xed-decoded-inst-api.h new file mode 100644 index 0000000..54dc35d --- /dev/null +++ b/third_party/xed-intel64/include/xed-decoded-inst-api.h @@ -0,0 +1,667 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-decoded-inst-api.h +/// + +#if !defined(_XED_DECODED_INST_API_H_) +# define _XED_DECODED_INST_API_H_ + +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-operand-accessors.h" +#include "../../../third_party/xed-intel64/include/xed-operand-values-interface.h" +#include "../../../third_party/xed-intel64/include/xed-print-info.h" +#include "../../../third_party/xed-intel64/include/xed-state.h" + +/////////////////////////////////////////////////////// +/// API +/////////////////////////////////////////////////////// + +/// @name xed_decoded_inst_t High-level accessors +//@{ +/// @ingroup DEC +/// Return true if the instruction is valid +static XED_INLINE xed_bool_t +xed_decoded_inst_valid(const xed_decoded_inst_t* p ) { + return XED_STATIC_CAST(xed_bool_t,(p->_inst != 0)); +} +/// @ingroup DEC +/// Return the #xed_inst_t structure for this instruction. This is the +/// route to the basic operands form information. +static XED_INLINE const xed_inst_t* +xed_decoded_inst_inst( const xed_decoded_inst_t* p) { + return p->_inst; +} + + +/// @ingroup DEC +/// Return the instruction #xed_category_enum_t enumeration +static XED_INLINE xed_category_enum_t +xed_decoded_inst_get_category(const xed_decoded_inst_t* p) { + xed_assert(p->_inst != 0); + return xed_inst_category(p->_inst); +} +/// @ingroup DEC +/// Return the instruction #xed_extension_enum_t enumeration +static XED_INLINE xed_extension_enum_t +xed_decoded_inst_get_extension( const xed_decoded_inst_t* p) { + xed_assert(p->_inst != 0); + return xed_inst_extension(p->_inst); +} +/// @ingroup DEC +/// Return the instruction #xed_isa_set_enum_t enumeration +static XED_INLINE xed_isa_set_enum_t +xed_decoded_inst_get_isa_set(xed_decoded_inst_t const* const p) { + xed_assert(p->_inst != 0); + return xed_inst_isa_set(p->_inst); +} +/// @ingroup DEC +/// Return the instruction #xed_iclass_enum_t enumeration. +static XED_INLINE xed_iclass_enum_t +xed_decoded_inst_get_iclass( const xed_decoded_inst_t* p){ + xed_assert(p->_inst != 0); + return xed_inst_iclass(p->_inst); +} + +/// @name xed_decoded_inst_t Attirbutes and properties +//@{ +/// @ingroup DEC +/// Returns 1 if the attribute is defined for this instruction. +XED_DLL_EXPORT xed_uint32_t +xed_decoded_inst_get_attribute(const xed_decoded_inst_t* p, + xed_attribute_enum_t attr); + +/// @ingroup DEC +/// Returns the attribute bitvector +XED_DLL_EXPORT xed_attributes_t +xed_decoded_inst_get_attributes(const xed_decoded_inst_t* p); +//@} + +/// @ingroup DEC +/// Returns 1 if the instruction is xacquire. +XED_DLL_EXPORT xed_uint32_t +xed_decoded_inst_is_xacquire(const xed_decoded_inst_t* p); + +/// @ingroup DEC +/// Returns 1 if the instruction is xrelease. +XED_DLL_EXPORT xed_uint32_t +xed_decoded_inst_is_xrelease(const xed_decoded_inst_t* p); + +/// @ingroup DEC +/// Returns 1 if the instruction has mpx prefix. +XED_DLL_EXPORT xed_uint32_t +xed_decoded_inst_has_mpx_prefix(const xed_decoded_inst_t* p); + +/// @ingroup DEC +/// Returns the modrm byte +XED_DLL_EXPORT xed_uint8_t +xed_decoded_inst_get_modrm(const xed_decoded_inst_t* p); + +/// @ingroup DEC +/// Returns 1 iff the instruction uses destination-masking. This is 0 for +/// blend operations that use their mask field as a control. +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_masked_vector_operation(xed_decoded_inst_t* p); + +/// @ingroup DEC +/// Returns 128, 256 or 512 for operations in the VEX, EVEX (or XOP) +/// encoding space and returns 0 for (most) nonvector operations. +/// This usually the content of the VEX.L or EVEX.LL field, reinterpreted. +/// Some GPR instructions (like the BMI1/BMI2) are encoded in the VEX space +/// and return non-zero values from this API. +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_vector_length_bits(xed_decoded_inst_t const* const p); + +/// @ingroup DEC +/// Returns the number of legacy prefixes. +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_nprefixes(xed_decoded_inst_t* p); + +//@} + + +/// @name xed_decoded_inst_t Operands +//@{ +/// @ingroup DEC +/// Obtain a constant pointer to the operands +static XED_INLINE const xed_operand_values_t* +xed_decoded_inst_operands_const(const xed_decoded_inst_t* p) { + return p; +} +/// @ingroup DEC +/// Obtain a non-constant pointer to the operands +static XED_INLINE xed_operand_values_t* +xed_decoded_inst_operands(xed_decoded_inst_t* p) { + return p; +} + +/// Return the length in bits of the operand_index'th operand. +/// @ingroup DEC +XED_DLL_EXPORT unsigned int +xed_decoded_inst_operand_length_bits(const xed_decoded_inst_t* p, + unsigned int operand_index); + + +/// Deprecated -- returns the length in bytes of the operand_index'th +/// operand. Use #xed_decoded_inst_operand_length_bits() instead. +/// @ingroup DEC +XED_DLL_EXPORT unsigned int +xed_decoded_inst_operand_length(const xed_decoded_inst_t* p, + unsigned int operand_index); + + +/// Return the number of operands +/// @ingroup DEC +static XED_INLINE unsigned int +xed_decoded_inst_noperands(const xed_decoded_inst_t* p) { + unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p)); + return noperands; +} + + +/// Return the number of element in the operand (for SSE and AVX operands) +/// @ingroup DEC +XED_DLL_EXPORT unsigned int +xed_decoded_inst_operand_elements(const xed_decoded_inst_t* p, + unsigned int operand_index); + +/// Return the size of an element in bits (for SSE and AVX operands) +/// @ingroup DEC +XED_DLL_EXPORT unsigned int +xed_decoded_inst_operand_element_size_bits(const xed_decoded_inst_t* p, + unsigned int operand_index); + +/// Return the type of an element of type #xed_operand_element_type_enum_t +/// (for SSE and AVX operands) +/// @ingroup DEC +XED_DLL_EXPORT xed_operand_element_type_enum_t +xed_decoded_inst_operand_element_type(const xed_decoded_inst_t* p, + unsigned int operand_index); + +/// Interpret the operand action in light of AVX512 masking and +/// zeroing/merging. If masking and merging are used together, the dest +/// operand may also be read. If masking and merging are used together, +/// the elemnents of dest operand register may be conditionally written (so +/// that input values live on in the output register). +/// @ingroup DEC +XED_DLL_EXPORT xed_operand_action_enum_t +xed_decoded_inst_operand_action(const xed_decoded_inst_t* p, + unsigned int operand_index); + +//@} + +/// @name xed_decoded_inst_t AVX512 Masking +//@{ +/// Returns true if the instruction uses write-masking +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_masking(const xed_decoded_inst_t* p); + +/// Returns true if the instruction uses write-masking with merging +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_merging(const xed_decoded_inst_t* p); + +/// Returns true if the instruction uses write-masking with zeroing +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_zeroing(const xed_decoded_inst_t* p); +//@} + +/// @name xed_decoded_inst_t Initialization +//@{ +/// @ingroup DEC +/// Zero the decode structure, but set the machine state/mode +/// information. Re-initializes all operands. +XED_DLL_EXPORT void +xed_decoded_inst_zero_set_mode(xed_decoded_inst_t* p, + const xed_state_t* dstate); + +/// @ingroup DEC +/// Zero the decode structure, but preserve the existing machine state/mode +/// information. Re-initializes all operands. +XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode(xed_decoded_inst_t* p); + + +/// @ingroup DEC +/// Zero the decode structure completely. Re-initializes all operands. +XED_DLL_EXPORT void xed_decoded_inst_zero(xed_decoded_inst_t* p); + +/// @ingroup DEC +/// Set the machine mode and stack addressing width directly. This is NOT a +/// full initialization; Call #xed_decoded_inst_zero() before using this if +/// you want a clean slate. +static XED_INLINE void +xed_decoded_inst_set_mode(xed_decoded_inst_t* p, + xed_machine_mode_enum_t mmode, + xed_address_width_enum_t stack_addr_width) +{ + xed_state_t dstate; + dstate.mmode = mmode; + dstate.stack_addr_width = stack_addr_width; + xed_operand_values_set_mode(p, &dstate); +} + + + +/// @ingroup DEC +/// Zero the decode structure, but copy the existing machine state/mode +/// information from the supplied operands pointer. Same as +/// #xed_decoded_inst_zero_keep_mode. +XED_DLL_EXPORT void +xed_decoded_inst_zero_keep_mode_from_operands( + xed_decoded_inst_t* p, + const xed_operand_values_t* operands); + +/// @name xed_decoded_inst_t Length +//@{ +/// @ingroup DEC +/// Return the length of the decoded instruction in bytes. +static XED_INLINE xed_uint_t +xed_decoded_inst_get_length(const xed_decoded_inst_t* p) { + return p->_decoded_length; +} + +//@} + + +/// @name xed_decoded_inst_t get Byte +//@{ +/// @ingroup DEC +/// Read itext byte. +static XED_INLINE xed_uint8_t +xed_decoded_inst_get_byte(const xed_decoded_inst_t* p, xed_uint_t byte_index) +{ + /// Read a whole byte from the normal input bytes. + xed_uint8_t out = p->_byte_array._dec[byte_index]; + return out; +} + +//@} + +/// @name Modes +//@{ +/// @ingroup DEC +/// Returns 16/32/64 indicating the machine mode with in bits. This is +/// derived from the input mode information. +static XED_INLINE xed_uint_t +xed_decoded_inst_get_machine_mode_bits(const xed_decoded_inst_t* p) { + xed_uint8_t mode = xed3_operand_get_mode(p); + if (mode == 2) return 64; + if (mode == 1) return 32; + return 16; +} +/// @ingroup DEC +/// Returns 16/32/64 indicating the stack addressing mode with in +/// bits. This is derived from the input mode information. +static XED_INLINE xed_uint_t +xed_decoded_inst_get_stack_address_mode_bits(const xed_decoded_inst_t* p) { + xed_uint8_t smode = xed3_operand_get_smode(p); + if (smode == 2) return 64; + if (smode == 1) return 32; + return 16; +} + +/// Returns the operand width in bits: 8/16/32/64. This is different than +/// the #xed_operand_values_get_effective_operand_width() which only +/// returns 16/32/64. This factors in the BYTEOP attribute when computing +/// its return value. This is a convenience function. +/// @ingroup DEC +XED_DLL_EXPORT xed_uint32_t +xed_decoded_inst_get_operand_width(const xed_decoded_inst_t* p); + +/// Return the user-specified #xed_chip_enum_t chip name, or +/// XED_CHIP_INVALID if not set. +/// @ingroup DEC +static XED_INLINE xed_chip_enum_t +xed_decoded_inst_get_input_chip(const xed_decoded_inst_t* p) { + return xed3_operand_get_chip(p); +} + +/// Set a user-specified #xed_chip_enum_t chip name for restricting decode +/// @ingroup DEC +static XED_INLINE void +xed_decoded_inst_set_input_chip(xed_decoded_inst_t* p, + xed_chip_enum_t chip) { + xed3_operand_set_chip(p,chip); +} + + +/// Indicate if this decoded instruction is valid for the specified +/// #xed_chip_enum_t chip +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_valid_for_chip(xed_decoded_inst_t const* const p, + xed_chip_enum_t chip); + +//@} + + + + +/// @name IFORM handling +//@{ + +/// @ingroup DEC +/// Return the instruction iform enum of type #xed_iform_enum_t . +static XED_INLINE xed_iform_enum_t +xed_decoded_inst_get_iform_enum(const xed_decoded_inst_t* p) { + xed_assert(p->_inst != 0); + return xed_inst_iform_enum(p->_inst); +} + +/// @ingroup DEC +/// Return the instruction zero-based iform number based on masking the +/// corresponding #xed_iform_enum_t. This value is suitable for +/// dispatching. The maximum value for a particular iclass is provided by +/// #xed_iform_max_per_iclass() . +static XED_INLINE unsigned int +xed_decoded_inst_get_iform_enum_dispatch(const xed_decoded_inst_t* p) { + xed_assert(p->_inst != 0); + return xed_inst_iform_enum(p->_inst) - + xed_iform_first_per_iclass(xed_inst_iclass(p->_inst)); +} +//@} + + + + +/// @name xed_decoded_inst_t Printers +//@{ +/// @ingroup PRINT +/// Print out all the information about the decoded instruction to the +/// buffer buf whose length is maximally buflen. This is for debugging. +XED_DLL_EXPORT void +xed_decoded_inst_dump(const xed_decoded_inst_t* p, char* buf, int buflen); + + + +/// @ingroup PRINT +/// Print the instruction information in a verbose format. +/// This is for debugging. +/// @param p a #xed_decoded_inst_t for a decoded instruction +/// @param buf a buffer to write the disassembly in to. +/// @param buflen maximum length of the disassembly buffer +/// @param runtime_address the address of the instruction being disassembled. If zero, the offset is printed for relative branches. If nonzero, XED attempts to print the target address for relative branches. +/// @return Returns 0 if the disassembly fails, 1 otherwise. +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_dump_xed_format(const xed_decoded_inst_t* p, + char* buf, + int buflen, + xed_uint64_t runtime_address) ; + + +/// Disassemble the decoded instruction using the specified syntax. +/// The output buffer must be at least 25 bytes long. Returns true if +/// disassembly proceeded without errors. +/// @param syntax a #xed_syntax_enum_t the specifies the disassembly format +/// @param xedd a #xed_decoded_inst_t for a decoded instruction +/// @param out_buffer a buffer to write the disassembly in to. +/// @param buffer_len maximum length of the disassembly buffer +/// @param runtime_instruction_address the address of the instruction being disassembled. If zero, the offset is printed for relative branches. If nonzero, XED attempts to print the target address for relative branches. +/// @param context A void* used only for the call back routine for symbolic disassembly if one is provided. Can be zero. +/// @param symbolic_callback A function pointer for obtaining symbolic disassembly. Can be zero. +/// @return Returns 0 if the disassembly fails, 1 otherwise. +///@ingroup PRINT +XED_DLL_EXPORT xed_bool_t +xed_format_context(xed_syntax_enum_t syntax, + const xed_decoded_inst_t* xedd, + char* out_buffer, + int buffer_len, + xed_uint64_t runtime_instruction_address, + void* context, + xed_disassembly_callback_fn_t symbolic_callback); + + +/// @ingroup PRINT +/// Disassemble the instruction information to a buffer. See the +/// #xed_print_info_t for the required public fields of the argument. +/// This is the preferred method of doing disassembly. +/// The output buffer must be at least 25 bytes long. +/// @param pi a #xed_print_info_t +/// @return Returns 0 if the disassembly fails, 1 otherwise. +XED_DLL_EXPORT xed_bool_t +xed_format_generic(xed_print_info_t* pi); + +//@} + +/// @name xed_decoded_inst_t Operand Field Details +//@{ +/// @ingroup DEC +XED_DLL_EXPORT xed_reg_enum_t +xed_decoded_inst_get_seg_reg(const xed_decoded_inst_t* p, + unsigned int mem_idx); +/// @ingroup DEC +XED_DLL_EXPORT xed_reg_enum_t +xed_decoded_inst_get_base_reg(const xed_decoded_inst_t* p, + unsigned int mem_idx); +XED_DLL_EXPORT xed_reg_enum_t +xed_decoded_inst_get_index_reg(const xed_decoded_inst_t* p, + unsigned int mem_idx); +/// @ingroup DEC +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_scale(const xed_decoded_inst_t* p, + unsigned int mem_idx); +/// @ingroup DEC +XED_DLL_EXPORT xed_int64_t +xed_decoded_inst_get_memory_displacement(const xed_decoded_inst_t* p, + unsigned int mem_idx); +/// @ingroup DEC +/// Result in BYTES +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_memory_displacement_width(const xed_decoded_inst_t* p, + unsigned int mem_idx); +/// @ingroup DEC +/// Result in BITS +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_memory_displacement_width_bits(const xed_decoded_inst_t* p, + unsigned int mem_idx); +/// @ingroup DEC +XED_DLL_EXPORT xed_int32_t +xed_decoded_inst_get_branch_displacement(const xed_decoded_inst_t* p); +/// @ingroup DEC +/// Result in BYTES +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_branch_displacement_width(const xed_decoded_inst_t* p); +/// @ingroup DEC +/// Result in BITS +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_branch_displacement_width_bits( + const xed_decoded_inst_t* p); +/// @ingroup DEC +XED_DLL_EXPORT xed_uint64_t +xed_decoded_inst_get_unsigned_immediate(const xed_decoded_inst_t* p); +/// @ingroup DEC +/// Return true if the first immediate (IMM0) is signed +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_immediate_is_signed(const xed_decoded_inst_t* p); +/// @ingroup DEC +/// Return the immediate width in BYTES. +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_immediate_width(const xed_decoded_inst_t* p); +/// @ingroup DEC +/// Return the immediate width in BITS. +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_get_immediate_width_bits(const xed_decoded_inst_t* p); +/// @ingroup DEC +XED_DLL_EXPORT xed_int32_t +xed_decoded_inst_get_signed_immediate(const xed_decoded_inst_t* p); +/// @ingroup DEC +/// Return the second immediate. +static XED_INLINE xed_uint8_t +xed_decoded_inst_get_second_immediate(const xed_decoded_inst_t* p) { + return xed3_operand_get_uimm1(p); +} + +/// @ingroup DEC +/// Return the specified register operand. The specifier is of type +/// #xed_operand_enum_t . +XED_DLL_EXPORT xed_reg_enum_t +xed_decoded_inst_get_reg(const xed_decoded_inst_t* p, + xed_operand_enum_t reg_operand); + + +/// See the comment on xed_decoded_inst_uses_rflags(). This can return +/// 0 if the flags are really not used by this instruction. +/// @ingroup DEC +XED_DLL_EXPORT const xed_simple_flag_t* +xed_decoded_inst_get_rflags_info( const xed_decoded_inst_t* p ); + +/// This returns 1 if the flags are read or written. This will return 0 +/// otherwise. This will return 0 if the flags are really not used by this +/// instruction. For some shifts/rotates, XED puts a flags operand in the +/// operand array before it knows if the flags are used because of +/// mode-dependent masking effects on the immediate. +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_uses_rflags(const xed_decoded_inst_t* p); + +/// @ingroup DEC +XED_DLL_EXPORT xed_uint_t +xed_decoded_inst_number_of_memory_operands(const xed_decoded_inst_t* p); +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_mem_read(const xed_decoded_inst_t* p, unsigned int mem_idx); +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_mem_written(const xed_decoded_inst_t* p, unsigned int mem_idx); +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_mem_written_only(const xed_decoded_inst_t* p, + unsigned int mem_idx); +/// @ingroup DEC +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_conditionally_writes_registers(const xed_decoded_inst_t* p); +/// returns bytes +/// @ingroup DEC +XED_DLL_EXPORT unsigned int +xed_decoded_inst_get_memory_operand_length(const xed_decoded_inst_t* p, + unsigned int memop_idx); + +/// Returns the addressing width in bits (16,32,64) for MEM0 (memop_idx==0) +/// or MEM1 (memop_idx==1). This factors in things like whether or not the +/// reference is an implicit stack push/pop reference, the machine mode and +// 67 prefixes if present. +/// @ingroup DEC +XED_DLL_EXPORT unsigned int +xed_decoded_inst_get_memop_address_width(const xed_decoded_inst_t* p, + xed_uint_t memop_idx); + + + +/// @ingroup DEC +/// Returns true if the instruction is a prefetch +XED_DLL_EXPORT xed_bool_t +xed_decoded_inst_is_prefetch(const xed_decoded_inst_t* p); +//@} + + +/// @name xed_decoded_inst_t Modification +//@{ +// Modifying decoded instructions before re-encoding +/// @ingroup DEC +XED_DLL_EXPORT void +xed_decoded_inst_set_scale(xed_decoded_inst_t* p, xed_uint_t scale); +/// @ingroup DEC +/// Set the memory displacement using a BYTE length +XED_DLL_EXPORT void +xed_decoded_inst_set_memory_displacement(xed_decoded_inst_t* p, + xed_int64_t disp, + xed_uint_t length_bytes); +/// @ingroup DEC +/// Set the branch displacement using a BYTE length +XED_DLL_EXPORT void +xed_decoded_inst_set_branch_displacement(xed_decoded_inst_t* p, + xed_int32_t disp, + xed_uint_t length_bytes); +/// @ingroup DEC +/// Set the signed immediate a BYTE length +XED_DLL_EXPORT void +xed_decoded_inst_set_immediate_signed(xed_decoded_inst_t* p, + xed_int32_t x, + xed_uint_t length_bytes); +/// @ingroup DEC +/// Set the unsigned immediate a BYTE length +XED_DLL_EXPORT void +xed_decoded_inst_set_immediate_unsigned(xed_decoded_inst_t* p, + xed_uint64_t x, + xed_uint_t length_bytes); + + +/// @ingroup DEC +/// Set the memory displacement a BITS length +XED_DLL_EXPORT void +xed_decoded_inst_set_memory_displacement_bits(xed_decoded_inst_t* p, + xed_int64_t disp, + xed_uint_t length_bits); +/// @ingroup DEC +/// Set the branch displacement a BITS length +XED_DLL_EXPORT void +xed_decoded_inst_set_branch_displacement_bits(xed_decoded_inst_t* p, + xed_int32_t disp, + xed_uint_t length_bits); +/// @ingroup DEC +/// Set the signed immediate a BITS length +XED_DLL_EXPORT void +xed_decoded_inst_set_immediate_signed_bits(xed_decoded_inst_t* p, + xed_int32_t x, + xed_uint_t length_bits); +/// @ingroup DEC +/// Set the unsigned immediate a BITS length +XED_DLL_EXPORT void +xed_decoded_inst_set_immediate_unsigned_bits(xed_decoded_inst_t* p, + xed_uint64_t x, + xed_uint_t length_bits); + +//@} + +/// @name xed_decoded_inst_t User Data Field +//@{ +/// @ingroup DEC +/// Return a user data field for arbitrary use by the user after decoding. +static XED_INLINE xed_uint64_t +xed_decoded_inst_get_user_data(xed_decoded_inst_t* p) { + return p->u.user_data; +} +/// @ingroup DEC +/// Modify the user data field. +static XED_INLINE void +xed_decoded_inst_set_user_data(xed_decoded_inst_t* p, + xed_uint64_t new_value) { + p->u.user_data = new_value; +} + + + + +//@} +#endif + diff --git a/third_party/xed-intel64/include/xed-decoded-inst.h b/third_party/xed-intel64/include/xed-decoded-inst.h new file mode 100644 index 0000000..3cc9fb4 --- /dev/null +++ b/third_party/xed-intel64/include/xed-decoded-inst.h @@ -0,0 +1,105 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-decoded-inst.h +/// + +#if !defined(_XED_DECODER_STATE_H_) +# define _XED_DECODER_STATE_H_ +#include "../../../third_party/xed-intel64/include/xed-common-defs.h" +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-flags.h" +#include "../../../third_party/xed-intel64/include/xed-inst.h" +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" +#include "../../../third_party/xed-intel64/include/xed-util.h" +#if defined(XED_ENCODER) +# include "../../../third_party/xed-intel64/include/xed-encoder-gen-defs.h" //generated +#endif +#include "../../../third_party/xed-intel64/include/xed-chip-enum.h" //generated +#include "../../../third_party/xed-intel64/include/xed-operand-element-type-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-operand-storage.h" // a generated file + + +struct xed_encoder_vars_s; +struct xed_decoder_vars_s; +/// @ingroup DEC +/// The main container for instructions. After decode, it holds an array of +/// operands with derived information from decode and also valid +/// #xed_inst_t pointer which describes the operand templates and the +/// operand order. See @ref DEC for API documentation. +typedef struct xed_decoded_inst_s { + /// The _operands are storage for information discovered during + /// decoding. They are also used by encode. The accessors for these + /// operands all have the form xed3_operand_{get,set}_*(). They should + /// be considered internal and subject to change over time. It is + /// preferred that you use xed_decoded_inst_*() or the + /// xed_operand_values_*() functions when available. + xed_operand_storage_t _operands; + +#if defined(XED_ENCODER) + /// Used for encode operand ordering. Not set by decode. + xed_uint8_t _operand_order[XED_ENCODE_ORDER_MAX_OPERANDS]; + /// Length of the _operand_order[] array. + xed_uint8_t _n_operand_order; +#endif + xed_uint8_t _decoded_length; + + /// when we decode an instruction, we set the _inst and get the + /// properites of that instruction here. This also points to the + /// operands template array. + const xed_inst_t* _inst; + + // decoder does not change it, encoder does + union { + xed_uint8_t* _enc; + const xed_uint8_t* _dec; + } _byte_array; + + // The ev field is stack allocated by xed_encode(). It is per-encode + // transitory data. + union { + /* user_data is available as a user data storage field after + * decoding. It does not live across re-encodes or re-decodes. */ + xed_uint64_t user_data; +#if defined(XED_ENCODER) + struct xed_encoder_vars_s* ev; +#endif + } u; + +} xed_decoded_inst_t; + +typedef xed_decoded_inst_t xed_operand_values_t; + + +//@} +#endif + diff --git a/third_party/xed-intel64/include/xed-disas.h b/third_party/xed-intel64/include/xed-disas.h new file mode 100644 index 0000000..8d65323 --- /dev/null +++ b/third_party/xed-intel64/include/xed-disas.h @@ -0,0 +1,66 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-disas.h +/// + +#if !defined(_XED_DISAS_H_) +# define _XED_DISAS_H_ + +#include "../../../third_party/xed-intel64/include/xed-types.h" + +/// @ingroup PRINT +/// A #xed_disassembly_callback_fn_t takes an address, a pointer to a +/// symbol buffer of buffer_length bytes, and a pointer to an offset. The +/// function fills in the symbol_buffer and sets the offset to the desired +/// offset for that symbol. If the function succeeds, it returns 1. +// The call back should return 0 if the buffer is not long enough to +// include the null termination.If no symbolic information is +// located, the function returns zero. +/// @param address The input address for which we want symbolic name and offset +/// @param symbol_buffer A buffer to hold the symbol name. The callback function should fill this in and terminate +/// with a null byte. +/// @param buffer_length The maximum length of the symbol_buffer including then null +/// @param offset A pointer to a xed_uint64_t to hold the offset from the provided symbol. +/// @param context This void* pointer passed to the disassembler's new interface so that the caller can identify +/// the proper context against which to resolve the symbols. +/// The disassembler passes this value to +/// the callback. The legacy formatters +/// that do not have context will pass zero for this parameter. +/// @return 0 on failure, 1 on success. +typedef int (*xed_disassembly_callback_fn_t)( + xed_uint64_t address, + char* symbol_buffer, + xed_uint32_t buffer_length, + xed_uint64_t* offset, + void* context); + +#endif diff --git a/third_party/xed-intel64/include/xed-encode.h b/third_party/xed-intel64/include/xed-encode.h new file mode 100644 index 0000000..75da98e --- /dev/null +++ b/third_party/xed-intel64/include/xed-encode.h @@ -0,0 +1,301 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-encode.h + + +#ifndef _XED_ENCODE_H_ +# define _XED_ENCODE_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-encoder-gen-defs.h" //generated +#include "../../../third_party/xed-intel64/include/xed-encoder-iforms.h" //generated +#include "../../../third_party/xed-intel64/include/xed-error-enum.h" +#include "../../../third_party/xed-intel64/include/xed-operand-values-interface.h" +#include "../../../third_party/xed-intel64/include/xed-operand-width-enum.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +// establish a type equivalence for the xed_encoder_request_t and the corresponding xed_decoded_inst_t. + +/// @ingroup ENC +typedef struct xed_decoded_inst_s xed_encoder_request_s; +/// @ingroup ENC +typedef xed_decoded_inst_t xed_encoder_request_t; + + + +/// @ingroup ENC +XED_DLL_EXPORT xed_iclass_enum_t +xed_encoder_request_get_iclass( const xed_encoder_request_t* p); + +///////////////////////////////////////////////////////// +// set functions + +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_set_iclass( xed_encoder_request_t* p, + xed_iclass_enum_t iclass); + +/// @name Prefixes +//@{ +/// @ingroup ENC +/// For locked (atomic read-modify-write) memops requests. +XED_DLL_EXPORT void xed_encoder_request_set_lock(xed_encoder_request_t* p); +/// @ingroup ENC +/// for REPNE(F2) prefix on string ops +XED_DLL_EXPORT void xed_encoder_request_set_repne(xed_encoder_request_t* p); +/// @ingroup ENC +/// for REP(F3) prefix on string ops +XED_DLL_EXPORT void xed_encoder_request_set_rep(xed_encoder_request_t* p); +/// @ingroup ENC +/// clear the REP prefix indicator +XED_DLL_EXPORT void xed_encoder_request_clear_rep(xed_encoder_request_t* p); +//@} + +/// @name Primary Encode Functions +//@{ +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_set_effective_operand_width( xed_encoder_request_t* p, + xed_uint_t width_bits); +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_set_effective_address_size( xed_encoder_request_t* p, + xed_uint_t width_bits); +/*! @ingroup ENC + * + * Set the operands array element indexed by operand to the actual register + * name reg. + * + * @param[in] p xed_encoder_request_t + * @param[in] operand indicates which register operand storage field to use + * @param[in] reg the actual register represented (EAX, etc.) to store. + */ +XED_DLL_EXPORT void xed_encoder_request_set_reg(xed_encoder_request_t* p, + xed_operand_enum_t operand, + xed_reg_enum_t reg); +//@} + +/// @name Operand Order +//@{ +/*! @ingroup ENC + * Specify the name as the n'th operand in the operand order. + * + * The complication of this function is that the register operand names are + * specific to the position of the operand (REG0, REG1, REG2...). One can + * use this function for registers or one can use the + * xed_encoder_request_set_operand_name_reg() which takes integers instead + * of operand names. + * + * @param[in] p #xed_encoder_request_t + * @param[in] operand_index xed_uint_t representing n'th operand position + * @param[in] name #xed_operand_enum_t operand name. + */ +XED_DLL_EXPORT void +xed_encoder_request_set_operand_order(xed_encoder_request_t* p, + xed_uint_t operand_index, + xed_operand_enum_t name); + +/*! @ingroup ENC + * Retreive the name of the n'th operand in the operand order. + * + * @param[in] p #xed_encoder_request_t + * @param[in] operand_index xed_uint_t representing n'th operand position + * @return The #xed_operand_enum_t operand name. + */ +XED_DLL_EXPORT xed_operand_enum_t +xed_encoder_request_get_operand_order(xed_encoder_request_t* p, + xed_uint_t operand_index); + + +/// @ingroup ENC +/// Retreive the number of entries in the encoder operand order array +/// @return The number of entries in the encoder operand order array +static XED_INLINE xed_uint_t +xed_encoder_request_operand_order_entries(xed_encoder_request_t* p) +{ + return p->_n_operand_order; +} + +//@} + + +/// @name branches and far pointers +//@{ +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_relbr(xed_encoder_request_t* p); +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_set_branch_displacement(xed_encoder_request_t* p, + xed_int32_t brdisp, + xed_uint_t nbytes); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_ptr(xed_encoder_request_t* p); +//@} + + +/// @name Immediates +//@{ +/// @ingroup ENC +/// Set the uimm0 using a BYTE width. +XED_DLL_EXPORT void xed_encoder_request_set_uimm0(xed_encoder_request_t* p, + xed_uint64_t uimm, + xed_uint_t nbytes); +/// @ingroup ENC +/// Set the uimm0 using a BIT width. +XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits(xed_encoder_request_t* p, + xed_uint64_t uimm, + xed_uint_t nbits); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_uimm1(xed_encoder_request_t* p, + xed_uint8_t uimm); +/// @ingroup ENC +/// same storage as uimm0 +XED_DLL_EXPORT void xed_encoder_request_set_simm(xed_encoder_request_t* p, + xed_int32_t simm, + xed_uint_t nbytes); + +/// @name Memory +//@{ +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_set_memory_displacement(xed_encoder_request_t* p, + xed_int64_t memdisp, + xed_uint_t nbytes); + +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_agen(xed_encoder_request_t* p); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_mem0(xed_encoder_request_t* p); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_mem1(xed_encoder_request_t* p); +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_set_memory_operand_length(xed_encoder_request_t* p, + xed_uint_t nbytes); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_seg0(xed_encoder_request_t* p, + xed_reg_enum_t seg_reg); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_seg1(xed_encoder_request_t* p, + xed_reg_enum_t seg_reg); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_base0(xed_encoder_request_t* p, + xed_reg_enum_t base_reg); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_base1(xed_encoder_request_t* p, + xed_reg_enum_t base_reg) ; +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_set_index(xed_encoder_request_t* p, + xed_reg_enum_t index_reg); +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_set_scale(xed_encoder_request_t* p, + xed_uint_t scale); +//@} + +////////////////////////////////////////////// +/// @ingroup ENC +XED_DLL_EXPORT const xed_operand_values_t* +xed_encoder_request_operands_const(const xed_encoder_request_t* p); +/// @ingroup ENC +XED_DLL_EXPORT xed_operand_values_t* +xed_encoder_request_operands(xed_encoder_request_t* p); + +/// @name Initialization +//@{ +/*! @ingroup ENC + * clear the operand order array + * @param[in] p xed_encoder_request_t + */ +XED_DLL_EXPORT void +xed_encoder_request_zero_operand_order(xed_encoder_request_t* p); + +/// @ingroup ENC +XED_DLL_EXPORT void +xed_encoder_request_zero_set_mode(xed_encoder_request_t* p, + const xed_state_t* dstate); +/// @ingroup ENC +XED_DLL_EXPORT void xed_encoder_request_zero(xed_encoder_request_t* p) ; +//@} + +struct xed_decoded_inst_s; //fwd decl +/// @ingroup ENC +/// Converts an decoder request to a valid encoder request. +XED_DLL_EXPORT void +xed_encoder_request_init_from_decode(struct xed_decoded_inst_s* d); + +/// @name String Printing +//@{ +/// @ingroup ENC +XED_DLL_EXPORT void xed_encode_request_print(const xed_encoder_request_t* p, + char* buf, xed_uint_t buflen); +//@} + + + + +/// @name Encoding +//@{ +/// This is the main interface to the encoder. The array should be +/// at most 15 bytes long. The ilen parameter should indiciate +/// this length. If the array is too short, the encoder may fail to +/// encode the request. Failure is indicated by a return value of +/// type #xed_error_enum_t that is not equal to +/// #XED_ERROR_NONE. Otherwise, #XED_ERROR_NONE is returned and the +/// length of the encoded instruction is returned in olen. +/// +/// @param r encoder request description (#xed_encoder_request_t), includes mode info +/// @param array the encoded instruction bytes are stored here +/// @param ilen the input length of array. +/// @param olen the actual length of array used for encoding +/// @return success/failure as a #xed_error_enum_t +/// @ingroup ENC +XED_DLL_EXPORT xed_error_enum_t +xed_encode(xed_encoder_request_t* r, + xed_uint8_t* array, + const unsigned int ilen, + unsigned int* olen); + +/// This function will attempt to encode a NOP of exactly ilen +/// bytes. If such a NOP is not encodeable, then false will be returned. +/// +/// @param array the encoded instruction bytes are stored here +/// @param ilen the input length array. +/// @return success/failure as a #xed_error_enum_t +/// @ingroup ENC +XED_DLL_EXPORT xed_error_enum_t +xed_encode_nop(xed_uint8_t* array, + const unsigned int ilen); +//@} + +#endif diff --git a/third_party/xed-intel64/include/xed-encoder-gen-defs.h b/third_party/xed-intel64/include/xed-encoder-gen-defs.h new file mode 100644 index 0000000..ee158c2 --- /dev/null +++ b/third_party/xed-intel64/include/xed-encoder-gen-defs.h @@ -0,0 +1,46 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-encoder-gen-defs.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_ENCODER_GEN_DEFS_H_) +# define _XED_ENCODER_GEN_DEFS_H_ +#define XED_ENCODE_ORDER_MAX_ENTRIES 32 +#define XED_ENCODE_ORDER_MAX_OPERANDS 5 +#define XED_ENCODE_MAX_FB_PATTERNS 102 +#define XED_ENCODE_MAX_EMIT_PATTERNS 169 +#define XED_ENCODE_FB_VALUES_TABLE_SIZE 5404 +#define XED_ENCODE_MAX_IFORMS 6374 +#define XED_ENC_GROUPS 463 +#endif diff --git a/third_party/xed-intel64/include/xed-encoder-hl.h b/third_party/xed-intel64/include/xed-encoder-hl.h new file mode 100644 index 0000000..517af67 --- /dev/null +++ b/third_party/xed-intel64/include/xed-encoder-hl.h @@ -0,0 +1,591 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ + +#ifndef _XED_ENCODER_HL_H_ +# define _XED_ENCODER_HL_H_ +#include "../../../third_party/xed-intel64/include/xed-encode.h" +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-reg-enum.h" +#include "../../../third_party/xed-intel64/include/xed-state.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +typedef struct { + xed_uint64_t displacement; + xed_uint32_t displacement_width; +} xed_enc_displacement_t; /* fixme bad name */ + +/// @name Memory Displacement +//@{ +/// @ingroup ENCHL +/// a memory displacement (not for branches) +static XED_INLINE +xed_enc_displacement_t xed_disp(xed_uint64_t displacement, + xed_uint32_t displacement_width ) { + xed_enc_displacement_t x; + x.displacement = displacement; + x.displacement_width = displacement_width; + return x; +} +//@} + +typedef struct { + xed_reg_enum_t seg; + xed_reg_enum_t base; + xed_reg_enum_t index; + xed_uint32_t scale; + xed_enc_displacement_t disp; +} xed_memop_t; + + +typedef enum { + XED_ENCODER_OPERAND_TYPE_INVALID, + XED_ENCODER_OPERAND_TYPE_BRDISP, + XED_ENCODER_OPERAND_TYPE_REG, + XED_ENCODER_OPERAND_TYPE_IMM0, + XED_ENCODER_OPERAND_TYPE_SIMM0, + XED_ENCODER_OPERAND_TYPE_IMM1, + XED_ENCODER_OPERAND_TYPE_MEM, + XED_ENCODER_OPERAND_TYPE_PTR, + + /* special for things with suppressed implicit memops */ + XED_ENCODER_OPERAND_TYPE_SEG0, + + /* special for things with suppressed implicit memops */ + XED_ENCODER_OPERAND_TYPE_SEG1, + + /* specific operand storage fields -- must supply a name */ + XED_ENCODER_OPERAND_TYPE_OTHER +} xed_encoder_operand_type_t; + +typedef struct { + xed_encoder_operand_type_t type; + union { + xed_reg_enum_t reg; + xed_int32_t brdisp; + xed_uint64_t imm0; + xed_uint8_t imm1; + struct { + xed_operand_enum_t operand_name; + xed_uint32_t value; + } s; + xed_memop_t mem; + } u; + xed_uint32_t width; +} xed_encoder_operand_t; + +/// @name Branch Displacement +//@{ +/// @ingroup ENCHL +/// a relative branch displacement operand +static XED_INLINE xed_encoder_operand_t xed_relbr(xed_int32_t brdisp, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; + o.u.brdisp = brdisp; + o.width = width; + return o; +} +//@} + +/// @name Pointer Displacement +//@{ +/// @ingroup ENCHL +/// a relative displacement for a PTR operand -- the subsequent imm0 holds +///the 16b selector +static XED_INLINE xed_encoder_operand_t xed_ptr(xed_int32_t brdisp, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_PTR; + o.u.brdisp = brdisp; + o.width = width; + return o; +} +//@} + +/// @name Register and Immmediate Operands +//@{ +/// @ingroup ENCHL +/// a register operand +static XED_INLINE xed_encoder_operand_t xed_reg(xed_reg_enum_t reg) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_REG; + o.u.reg = reg; + o.width = 0; + return o; +} + +/// @ingroup ENCHL +/// a first immediate operand (known as IMM0) +static XED_INLINE xed_encoder_operand_t xed_imm0(xed_uint64_t v, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_IMM0; + o.u.imm0 = v; + o.width = width; + return o; +} +/// @ingroup ENCHL +/// an 32b signed immediate operand +static XED_INLINE xed_encoder_operand_t xed_simm0(xed_int32_t v, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_SIMM0; + /* sign conversion: we store the int32 in an uint64. It gets sign + extended. Later we convert it to the right width for the + instruction. The maximum width of a signed immediate is currently + 32b. */ + o.u.imm0 = v; + o.width = width; + return o; +} + +/// @ingroup ENCHL +/// an second immediate operand (known as IMM1) +static XED_INLINE xed_encoder_operand_t xed_imm1(xed_uint8_t v) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_IMM1; + o.u.imm1 = v; + o.width = 8; + return o; +} + + +/// @ingroup ENCHL +/// an operand storage field name and value +static XED_INLINE xed_encoder_operand_t xed_other( + xed_operand_enum_t operand_name, + xed_int32_t value) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_OTHER; + o.u.s.operand_name = operand_name; + o.u.s.value = value; + o.width = 0; + return o; +} +//@} + + +//@} + +/// @name Memory and Segment-releated Operands +//@{ + +/// @ingroup ENCHL +/// seg reg override for implicit suppressed memory ops +static XED_INLINE xed_encoder_operand_t xed_seg0(xed_reg_enum_t seg0) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_SEG0; + o.u.reg = seg0; + return o; +} + +/// @ingroup ENCHL +/// seg reg override for implicit suppressed memory ops +static XED_INLINE xed_encoder_operand_t xed_seg1(xed_reg_enum_t seg1) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_SEG1; + o.u.reg = seg1; + return o; +} + +/// @ingroup ENCHL +/// memory operand - base only +static XED_INLINE xed_encoder_operand_t xed_mem_b(xed_reg_enum_t base, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_MEM; + o.u.mem.base = base; + o.u.mem.seg = XED_REG_INVALID; + o.u.mem.index= XED_REG_INVALID; + o.u.mem.scale = 0; + o.u.mem.disp.displacement = 0; + o.u.mem.disp.displacement_width = 0; + o.width = width; + return o; +} + +/// @ingroup ENCHL +/// memory operand - base and displacement only +static XED_INLINE xed_encoder_operand_t xed_mem_bd(xed_reg_enum_t base, + xed_enc_displacement_t disp, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_MEM; + o.u.mem.base = base; + o.u.mem.seg = XED_REG_INVALID; + o.u.mem.index= XED_REG_INVALID; + o.u.mem.scale = 0; + o.u.mem.disp =disp; + o.width = width; + return o; +} + +/// @ingroup ENCHL +/// memory operand - base, index, scale, displacement +static XED_INLINE xed_encoder_operand_t xed_mem_bisd(xed_reg_enum_t base, + xed_reg_enum_t index, + xed_uint_t scale, + xed_enc_displacement_t disp, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_MEM; + o.u.mem.base = base; + o.u.mem.seg = XED_REG_INVALID; + o.u.mem.index= index; + o.u.mem.scale = scale; + o.u.mem.disp = disp; + o.width = width; + return o; +} + + +/// @ingroup ENCHL +/// memory operand - segment and base only +static XED_INLINE xed_encoder_operand_t xed_mem_gb(xed_reg_enum_t seg, + xed_reg_enum_t base, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_MEM; + o.u.mem.base = base; + o.u.mem.seg = seg; + o.u.mem.index= XED_REG_INVALID; + o.u.mem.scale = 0; + o.u.mem.disp.displacement = 0; + o.u.mem.disp.displacement_width = 0; + o.width = width; + return o; +} + +/// @ingroup ENCHL +/// memory operand - segment, base and displacement only +static XED_INLINE xed_encoder_operand_t xed_mem_gbd(xed_reg_enum_t seg, + xed_reg_enum_t base, + xed_enc_displacement_t disp, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_MEM; + o.u.mem.base = base; + o.u.mem.seg = seg; + o.u.mem.index= XED_REG_INVALID; + o.u.mem.scale = 0; + o.u.mem.disp = disp; + o.width = width; + return o; +} + +/// @ingroup ENCHL +/// memory operand - segment and displacement only +static XED_INLINE xed_encoder_operand_t xed_mem_gd(xed_reg_enum_t seg, + xed_enc_displacement_t disp, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_MEM; + o.u.mem.base = XED_REG_INVALID; + o.u.mem.seg = seg; + o.u.mem.index= XED_REG_INVALID; + o.u.mem.scale = 0; + o.u.mem.disp = disp; + o.width = width; + return o; +} + +/// @ingroup ENCHL +/// memory operand - segment, base, index, scale, and displacement +static XED_INLINE xed_encoder_operand_t xed_mem_gbisd(xed_reg_enum_t seg, + xed_reg_enum_t base, + xed_reg_enum_t index, + xed_uint_t scale, + xed_enc_displacement_t disp, + xed_uint_t width) { + xed_encoder_operand_t o; + o.type = XED_ENCODER_OPERAND_TYPE_MEM; + o.u.mem.base = base; + o.u.mem.seg = seg; + o.u.mem.index= index; + o.u.mem.scale = scale; + o.u.mem.disp = disp; + o.width = width; + return o; +} +//@} + +typedef union { + struct { + xed_uint32_t rep :1; + xed_uint32_t repne :1; + xed_uint32_t lock :1; + xed_uint32_t br_hint_taken :1; + xed_uint32_t br_hint_not_taken :1; + } s; + xed_uint32_t i; +} xed_encoder_prefixes_t; + +#define XED_ENCODER_OPERANDS_MAX 5 /* FIXME */ +typedef struct { + xed_state_t mode; + xed_iclass_enum_t iclass; /*FIXME: use iform instead? or allow either */ + xed_uint32_t effective_operand_width; + + /* the effective_address_width is only requires to be set for + * instructions * with implicit suppressed memops or memops with no + * base or index regs. When base or index regs are present, XED pick + * this up automatically from the register names. + + * FIXME: make effective_address_width required by all encodes for + * unifority. Add to xed_inst[0123]() APIs??? */ + xed_uint32_t effective_address_width; + + xed_encoder_prefixes_t prefixes; + xed_uint32_t noperands; + xed_encoder_operand_t operands[XED_ENCODER_OPERANDS_MAX]; +} xed_encoder_instruction_t; + +/// @name Instruction Properties and prefixes +//@{ +/// @ingroup ENCHL +/// This is to specify effective address size different than the +/// default. For things with base or index regs, XED picks it up from the +/// registers. But for things that have implicit memops, or no base or index +/// reg, we must allow the user to set the address width directly. +static XED_INLINE void xed_addr(xed_encoder_instruction_t* x, + xed_uint_t width) { + x->effective_address_width = width; +} + + +/// @ingroup ENCHL +static XED_INLINE void xed_rep(xed_encoder_instruction_t* x) { + x->prefixes.s.rep=1; +} + +/// @ingroup ENCHL +static XED_INLINE void xed_repne(xed_encoder_instruction_t* x) { + x->prefixes.s.repne=1; +} + +/// @ingroup ENCHL +static XED_INLINE void xed_lock(xed_encoder_instruction_t* x) { + x->prefixes.s.lock=1; +} + + + + +/// @ingroup ENCHL +/// convert a #xed_encoder_instruction_t to a #xed_encoder_request_t for +/// encoding +XED_DLL_EXPORT xed_bool_t +xed_convert_to_encoder_request(xed_encoder_request_t* out, + xed_encoder_instruction_t* in); + +//@} + +//////////////////////////////////////////////////////////////////////////// +/* FIXME: rather than return the xed_encoder_instruction_t I can make + * another version that returns a xed_encoder_request_t. Saves silly + * copying. Although the xed_encoder_instruction_t might be handy for + * having code templates that get customized & passed to encoder later. */ +//////////////////////////////////////////////////////////////////////////// +/// @name Creating instructions from operands +//@{ + +/// @ingroup ENCHL +/// instruction with no operands +static XED_INLINE void xed_inst0( + xed_encoder_instruction_t* inst, + xed_state_t mode, + xed_iclass_enum_t iclass, + xed_uint_t effective_operand_width) { + + inst->mode=mode; + inst->iclass = iclass; + inst->effective_operand_width = effective_operand_width; + inst->effective_address_width = 0; + inst->prefixes.i = 0; + inst->noperands = 0; +} + +/// @ingroup ENCHL +/// instruction with one operand +static XED_INLINE void xed_inst1( + xed_encoder_instruction_t* inst, + xed_state_t mode, + xed_iclass_enum_t iclass, + xed_uint_t effective_operand_width, + xed_encoder_operand_t op0) { + + inst->mode=mode; + inst->iclass = iclass; + inst->effective_operand_width = effective_operand_width; + inst->effective_address_width = 0; + inst->prefixes.i = 0; + inst->operands[0] = op0; + inst->noperands = 1; +} + +/// @ingroup ENCHL +/// instruction with two operands +static XED_INLINE void xed_inst2( + xed_encoder_instruction_t* inst, + xed_state_t mode, + xed_iclass_enum_t iclass, + xed_uint_t effective_operand_width, + xed_encoder_operand_t op0, + xed_encoder_operand_t op1) { + + inst->mode=mode; + inst->iclass = iclass; + inst->effective_operand_width = effective_operand_width; + inst->effective_address_width = 0; + inst->prefixes.i = 0; + inst->operands[0] = op0; + inst->operands[1] = op1; + inst->noperands = 2; +} + +/// @ingroup ENCHL +/// instruction with three operands +static XED_INLINE void xed_inst3( + xed_encoder_instruction_t* inst, + xed_state_t mode, + xed_iclass_enum_t iclass, + xed_uint_t effective_operand_width, + xed_encoder_operand_t op0, + xed_encoder_operand_t op1, + xed_encoder_operand_t op2) { + + inst->mode=mode; + inst->iclass = iclass; + inst->effective_operand_width = effective_operand_width; + inst->effective_address_width = 0; + inst->prefixes.i = 0; + inst->operands[0] = op0; + inst->operands[1] = op1; + inst->operands[2] = op2; + inst->noperands = 3; +} + + +/// @ingroup ENCHL +/// instruction with four operands +static XED_INLINE void xed_inst4( + xed_encoder_instruction_t* inst, + xed_state_t mode, + xed_iclass_enum_t iclass, + xed_uint_t effective_operand_width, + xed_encoder_operand_t op0, + xed_encoder_operand_t op1, + xed_encoder_operand_t op2, + xed_encoder_operand_t op3) { + + inst->mode=mode; + inst->iclass = iclass; + inst->effective_operand_width = effective_operand_width; + inst->effective_address_width = 0; + inst->prefixes.i = 0; + inst->operands[0] = op0; + inst->operands[1] = op1; + inst->operands[2] = op2; + inst->operands[3] = op3; + inst->noperands = 4; +} + +/// @ingroup ENCHL +/// instruction with five operands +static XED_INLINE void xed_inst5( + xed_encoder_instruction_t* inst, + xed_state_t mode, + xed_iclass_enum_t iclass, + xed_uint_t effective_operand_width, + xed_encoder_operand_t op0, + xed_encoder_operand_t op1, + xed_encoder_operand_t op2, + xed_encoder_operand_t op3, + xed_encoder_operand_t op4) { + + inst->mode=mode; + inst->iclass = iclass; + inst->effective_operand_width = effective_operand_width; + inst->effective_address_width = 0; + inst->prefixes.i = 0; + inst->operands[0] = op0; + inst->operands[1] = op1; + inst->operands[2] = op2; + inst->operands[3] = op3; + inst->operands[4] = op4; + inst->noperands = 5; +} + + +/// @ingroup ENCHL +/// instruction with an array of operands. The maximum number is +/// XED_ENCODER_OPERANDS_MAX. The array's contents are copied. +static XED_INLINE void xed_inst( + xed_encoder_instruction_t* inst, + xed_state_t mode, + xed_iclass_enum_t iclass, + xed_uint_t effective_operand_width, + xed_uint_t number_of_operands, + const xed_encoder_operand_t* operand_array) { + + xed_uint_t i; + inst->mode=mode; + inst->iclass = iclass; + inst->effective_operand_width = effective_operand_width; + inst->effective_address_width = 0; + inst->prefixes.i = 0; + xed_assert(number_of_operands < XED_ENCODER_OPERANDS_MAX); + for(i=0;ioperands[i] = operand_array[i]; + } + inst->noperands = number_of_operands; +} + +//@} + +/* + xed_encoder_instruction_t x,y; + + xed_inst2(&x, state, XED_ICLASS_ADD, 32, + xed_reg(XED_REG_EAX), + xed_mem_bd(XED_REG_EDX, xed_disp(0x11223344, 32), 32)); + + xed_inst2(&y, state, XED_ICLASS_ADD, 32, + xed_reg(XED_REG_EAX), + xed_mem_gbisd(XED_REG_FS, XED_REG_EAX, XED_REG_ESI,4, + xed_disp(0x11223344, 32), 32)); + + */ + +#endif diff --git a/third_party/xed-intel64/include/xed-encoder-iforms.h b/third_party/xed-intel64/include/xed-encoder-iforms.h new file mode 100644 index 0000000..52558aa --- /dev/null +++ b/third_party/xed-intel64/include/xed-encoder-iforms.h @@ -0,0 +1,92 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-encoder-iforms.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_ENCODER_IFORMS_H_) +# define _XED_ENCODER_IFORMS_H_ +#include "../../../third_party/xed-intel64/include/xed-types.h" +typedef struct xed_encoder_iforms_s { + xed_uint32_t x_MEMDISPv; + xed_uint32_t x_SIBBASE_ENCODE_SIB1; + xed_uint32_t x_VEX_MAP_ENC; + xed_uint32_t x_SIB_NT; + xed_uint32_t x_UIMM8_1; + xed_uint32_t x_SIBBASE_ENCODE; + xed_uint32_t x_VEX_ESCVL_ENC; + xed_uint32_t x_PREFIX_ENC; + xed_uint32_t x_VEXED_REX; + xed_uint32_t x_REMOVE_SEGMENT; + xed_uint32_t x_VSIB_ENC; + xed_uint32_t x_EVEX_REXB_ENC; + xed_uint32_t x_MODRM_RM_ENCODE_EA64_SIB0; + xed_uint32_t x_VEX_REXXB_ENC; + xed_uint32_t x_EVEX_REXRR_ENC; + xed_uint32_t x_AVX512_EVEX_BYTE3_ENC; + xed_uint32_t x_EVEX_REXW_VVVV_ENC; + xed_uint32_t x_VEX_REG_ENC; + xed_uint32_t x_UISA_SE_IMM8; + xed_uint32_t x_SIMM8; + xed_uint32_t x_XOP_MAP_ENC; + xed_uint32_t x_MODRM_RM_ENCODE_EA32_SIB0; + xed_uint32_t x_UIMM8; + xed_uint32_t x_MODRM_RM_ENCODE_EA16_SIB0; + xed_uint32_t x_XOP_REXXB_ENC; + xed_uint32_t x_EVEX_MAP_ENC; + xed_uint32_t x_MEMDISP8; + xed_uint32_t x_MODRM_RM_ENCODE; + xed_uint32_t x_REX_PREFIX_ENC; + xed_uint32_t x_UIMM16; + xed_uint32_t x_VEX_TYPE_ENC; + xed_uint32_t x_EVEX_UPP_ENC; + xed_uint32_t x_VEX_REXR_ENC; + xed_uint32_t x_BRDISP32; + xed_uint32_t x_MEMDISP32; + xed_uint32_t x_MEMDISP16; + xed_uint32_t x_SIBINDEX_ENCODE; + xed_uint32_t x_SE_IMM8; + xed_uint32_t x_UIMM32; + xed_uint32_t x_SIMMz; + xed_uint32_t x_UIMMv; + xed_uint32_t x_EVEX_62_REXR_ENC; + xed_uint32_t x_DISP_NT; + xed_uint32_t x_MODRM_MOD_ENCODE; + xed_uint32_t x_MEMDISP; + xed_uint32_t x_VSIB_ENC_BASE; + xed_uint32_t x_BRDISP8; + xed_uint32_t x_BRDISPz; + xed_uint32_t x_EVEX_REXX_ENC; + xed_uint32_t x_XOP_TYPE_ENC; +} xed_encoder_iforms_t; +#endif diff --git a/third_party/xed-intel64/include/xed-error-enum.h b/third_party/xed-intel64/include/xed-error-enum.h new file mode 100644 index 0000000..d72dd3a --- /dev/null +++ b/third_party/xed-intel64/include/xed-error-enum.h @@ -0,0 +1,77 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-error-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_ERROR_ENUM_H_) +# define _XED_ERROR_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_ERROR_NONE, ///< There was no error + XED_ERROR_BUFFER_TOO_SHORT, ///< There were not enough bytes in the given buffer + XED_ERROR_GENERAL_ERROR, ///< XED could not decode the given instruction + XED_ERROR_INVALID_FOR_CHIP, ///< The instruciton is not valid for the specified chip + XED_ERROR_BAD_REGISTER, ///< XED could not decode the given instruction because an invalid register encoding was used. + XED_ERROR_BAD_LOCK_PREFIX, ///< A lock prefix was found where none is allowed. + XED_ERROR_BAD_REP_PREFIX, ///< An F2 or F3 prefix was found where none is allowed. + XED_ERROR_BAD_LEGACY_PREFIX, ///< A 66, F2 or F3 prefix was found where none is allowed. + XED_ERROR_BAD_REX_PREFIX, ///< A REX prefix was found where none is allowed. + XED_ERROR_BAD_EVEX_UBIT, ///< An illegal value for the EVEX.U bit was present in the instruction. + XED_ERROR_BAD_MAP, ///< An illegal value for the MAP field was detected in the instruction. + XED_ERROR_NO_OUTPUT_POINTER, ///< The output pointer for xed_agen was zero + XED_ERROR_NO_AGEN_CALL_BACK_REGISTERED, ///< One or both of the callbacks for xed_agen were missing. + XED_ERROR_BAD_MEMOP_INDEX, ///< Memop indices must be 0 or 1. + XED_ERROR_CALLBACK_PROBLEM, ///< The register or segment callback for xed_agen experienced a problem + XED_ERROR_GATHER_REGS, ///< The index, dest and mask regs for AVX2 gathers must be different. + XED_ERROR_INSTR_TOO_LONG, ///< Full decode of instruction would exeed 15B. + XED_ERROR_INVALID_MODE, ///< The instruction was not valid for the specified mode + XED_ERROR_LAST +} xed_error_enum_t; + +/// This converts strings to #xed_error_enum_t types. +/// @param s A C-string. +/// @return #xed_error_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_error_enum_t str2xed_error_enum_t(const char* s); +/// This converts strings to #xed_error_enum_t types. +/// @param p An enumeration element of type xed_error_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_error_enum_t2str(const xed_error_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_error_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_error_enum_t xed_error_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-exception-enum.h b/third_party/xed-intel64/include/xed-exception-enum.h new file mode 100644 index 0000000..292b0c9 --- /dev/null +++ b/third_party/xed-intel64/include/xed-exception-enum.h @@ -0,0 +1,101 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-exception-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_EXCEPTION_ENUM_H_) +# define _XED_EXCEPTION_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_EXCEPTION_INVALID, + XED_EXCEPTION_AVX512_E1, + XED_EXCEPTION_AVX512_E10, + XED_EXCEPTION_AVX512_E10NF, + XED_EXCEPTION_AVX512_E11, + XED_EXCEPTION_AVX512_E11NF, + XED_EXCEPTION_AVX512_E12, + XED_EXCEPTION_AVX512_E12NP, + XED_EXCEPTION_AVX512_E1NF, + XED_EXCEPTION_AVX512_E2, + XED_EXCEPTION_AVX512_E3, + XED_EXCEPTION_AVX512_E3NF, + XED_EXCEPTION_AVX512_E4, + XED_EXCEPTION_AVX512_E4NF, + XED_EXCEPTION_AVX512_E5, + XED_EXCEPTION_AVX512_E5NF, + XED_EXCEPTION_AVX512_E6, + XED_EXCEPTION_AVX512_E6NF, + XED_EXCEPTION_AVX512_E7NM, + XED_EXCEPTION_AVX512_E7NM128, + XED_EXCEPTION_AVX512_E9NF, + XED_EXCEPTION_AVX512_K20, + XED_EXCEPTION_AVX512_K21, + XED_EXCEPTION_AVX_TYPE_1, + XED_EXCEPTION_AVX_TYPE_2, + XED_EXCEPTION_AVX_TYPE_2D, + XED_EXCEPTION_AVX_TYPE_3, + XED_EXCEPTION_AVX_TYPE_4, + XED_EXCEPTION_AVX_TYPE_4M, + XED_EXCEPTION_AVX_TYPE_5, + XED_EXCEPTION_AVX_TYPE_5L, + XED_EXCEPTION_AVX_TYPE_6, + XED_EXCEPTION_AVX_TYPE_7, + XED_EXCEPTION_AVX_TYPE_8, + XED_EXCEPTION_SSE_TYPE_1, + XED_EXCEPTION_SSE_TYPE_2, + XED_EXCEPTION_SSE_TYPE_2D, + XED_EXCEPTION_SSE_TYPE_3, + XED_EXCEPTION_SSE_TYPE_4, + XED_EXCEPTION_SSE_TYPE_4M, + XED_EXCEPTION_SSE_TYPE_5, + XED_EXCEPTION_SSE_TYPE_7, + XED_EXCEPTION_LAST +} xed_exception_enum_t; + +/// This converts strings to #xed_exception_enum_t types. +/// @param s A C-string. +/// @return #xed_exception_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_exception_enum_t str2xed_exception_enum_t(const char* s); +/// This converts strings to #xed_exception_enum_t types. +/// @param p An enumeration element of type xed_exception_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_exception_enum_t2str(const xed_exception_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_exception_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_exception_enum_t xed_exception_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-extension-enum.h b/third_party/xed-intel64/include/xed-extension-enum.h new file mode 100644 index 0000000..4d6e96d --- /dev/null +++ b/third_party/xed-intel64/include/xed-extension-enum.h @@ -0,0 +1,113 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-extension-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_EXTENSION_ENUM_H_) +# define _XED_EXTENSION_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_EXTENSION_INVALID, + XED_EXTENSION_3DNOW, + XED_EXTENSION_AES, + XED_EXTENSION_AVX, + XED_EXTENSION_AVX2, + XED_EXTENSION_AVX2GATHER, + XED_EXTENSION_AVX512EVEX, + XED_EXTENSION_AVX512VEX, + XED_EXTENSION_AVXAES, + XED_EXTENSION_BASE, + XED_EXTENSION_BDW, + XED_EXTENSION_BMI1, + XED_EXTENSION_BMI2, + XED_EXTENSION_CLFLUSHOPT, + XED_EXTENSION_CLFSH, + XED_EXTENSION_CLWB, + XED_EXTENSION_F16C, + XED_EXTENSION_FMA, + XED_EXTENSION_FMA4, + XED_EXTENSION_INVPCID, + XED_EXTENSION_LONGMODE, + XED_EXTENSION_LZCNT, + XED_EXTENSION_MMX, + XED_EXTENSION_MOVBE, + XED_EXTENSION_MPX, + XED_EXTENSION_PAUSE, + XED_EXTENSION_PCLMULQDQ, + XED_EXTENSION_PCOMMIT, + XED_EXTENSION_PREFETCHWT1, + XED_EXTENSION_RDRAND, + XED_EXTENSION_RDSEED, + XED_EXTENSION_RDTSCP, + XED_EXTENSION_RDWRFSGS, + XED_EXTENSION_RTM, + XED_EXTENSION_SGX, + XED_EXTENSION_SHA, + XED_EXTENSION_SMAP, + XED_EXTENSION_SMX, + XED_EXTENSION_SSE, + XED_EXTENSION_SSE2, + XED_EXTENSION_SSE3, + XED_EXTENSION_SSE4, + XED_EXTENSION_SSE4A, + XED_EXTENSION_SSSE3, + XED_EXTENSION_SVM, + XED_EXTENSION_TBM, + XED_EXTENSION_VMFUNC, + XED_EXTENSION_VTX, + XED_EXTENSION_X87, + XED_EXTENSION_XOP, + XED_EXTENSION_XSAVE, + XED_EXTENSION_XSAVEC, + XED_EXTENSION_XSAVEOPT, + XED_EXTENSION_XSAVES, + XED_EXTENSION_LAST +} xed_extension_enum_t; + +/// This converts strings to #xed_extension_enum_t types. +/// @param s A C-string. +/// @return #xed_extension_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_extension_enum_t str2xed_extension_enum_t(const char* s); +/// This converts strings to #xed_extension_enum_t types. +/// @param p An enumeration element of type xed_extension_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_extension_enum_t2str(const xed_extension_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_extension_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_extension_enum_t xed_extension_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-flag-action-enum.h b/third_party/xed-intel64/include/xed-flag-action-enum.h new file mode 100644 index 0000000..1e9ec54 --- /dev/null +++ b/third_party/xed-intel64/include/xed-flag-action-enum.h @@ -0,0 +1,67 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-flag-action-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_FLAG_ACTION_ENUM_H_) +# define _XED_FLAG_ACTION_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_FLAG_ACTION_INVALID, + XED_FLAG_ACTION_u, ///< undefined (treated as a write) + XED_FLAG_ACTION_tst, ///< test (read) + XED_FLAG_ACTION_mod, ///< modification (write) + XED_FLAG_ACTION_0, ///< value will be zero (write) + XED_FLAG_ACTION_pop, ///< value comes from the stack (write) + XED_FLAG_ACTION_ah, ///< value comes from AH (write) + XED_FLAG_ACTION_1, ///< value will be 1 (write) + XED_FLAG_ACTION_LAST +} xed_flag_action_enum_t; + +/// This converts strings to #xed_flag_action_enum_t types. +/// @param s A C-string. +/// @return #xed_flag_action_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_flag_action_enum_t str2xed_flag_action_enum_t(const char* s); +/// This converts strings to #xed_flag_action_enum_t types. +/// @param p An enumeration element of type xed_flag_action_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_flag_action_enum_t2str(const xed_flag_action_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_flag_action_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_flag_action_enum_t xed_flag_action_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-flag-enum.h b/third_party/xed-intel64/include/xed-flag-enum.h new file mode 100644 index 0000000..8e0a17a --- /dev/null +++ b/third_party/xed-intel64/include/xed-flag-enum.h @@ -0,0 +1,81 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-flag-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_FLAG_ENUM_H_) +# define _XED_FLAG_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_FLAG_INVALID, + XED_FLAG_of, ///<< overflow flag + XED_FLAG_sf, ///< sign flag + XED_FLAG_zf, ///< zero flag + XED_FLAG_af, ///< auxilliary flag + XED_FLAG_pf, ///< parity flag + XED_FLAG_cf, ///< carry flag + XED_FLAG_df, ///< direction flag + XED_FLAG_vif, ///< virtual interrupt flag + XED_FLAG_iopl, ///< I/O privilege level + XED_FLAG_if, ///< interrupt flag + XED_FLAG_ac, ///< alignment check + XED_FLAG_vm, ///< virtual-8086 mode + XED_FLAG_rf, ///< resume flag + XED_FLAG_nt, ///< nested task + XED_FLAG_tf, ///< traf flag + XED_FLAG_id, ///< ID flag + XED_FLAG_vip, ///< virtual interrupt pending + XED_FLAG_fc0, ///< x87 FC0 flag + XED_FLAG_fc1, ///< x87 FC1 flag + XED_FLAG_fc2, ///< x87 FC2 flag + XED_FLAG_fc3, ///< x87 FC3 flag + XED_FLAG_LAST +} xed_flag_enum_t; + +/// This converts strings to #xed_flag_enum_t types. +/// @param s A C-string. +/// @return #xed_flag_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_flag_enum_t str2xed_flag_enum_t(const char* s); +/// This converts strings to #xed_flag_enum_t types. +/// @param p An enumeration element of type xed_flag_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_flag_enum_t2str(const xed_flag_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_flag_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_flag_enum_t xed_flag_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-flags.h b/third_party/xed-intel64/include/xed-flags.h new file mode 100644 index 0000000..8b320af --- /dev/null +++ b/third_party/xed-intel64/include/xed-flags.h @@ -0,0 +1,247 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-flags.h +/// + +#ifndef _XED_FLAGS_H_ +# define _XED_FLAGS_H_ + +#include "../../../third_party/xed-intel64/include/xed-flag-action-enum.h" +#include "../../../third_party/xed-intel64/include/xed-flag-enum.h" +#include "../../../third_party/xed-intel64/include/xed-gen-table-defs.h" +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +//////////////////////////////////////////////////////////////////////////// +/// @ingroup FLAGS +/// a union of flags bits +union xed_flag_set_s { + xed_uint32_t flat; + struct { + xed_uint32_t cf:1; ///< bit 0 + xed_uint32_t must_be_1:1; + xed_uint32_t pf:1; + xed_uint32_t must_be_0a:1; + + xed_uint32_t af:1; ///< bit 4 + xed_uint32_t must_be_0b:1; + xed_uint32_t zf:1; + xed_uint32_t sf:1; + + xed_uint32_t tf:1; ///< bit 8 + xed_uint32_t _if:1; ///< underscore to avoid token clash + xed_uint32_t df:1; + xed_uint32_t of:1; + + xed_uint32_t iopl:2; ///< A 2-bit field, bits 12-13 + xed_uint32_t nt:1; + xed_uint32_t must_be_0c:1; + + xed_uint32_t rf:1; ///< bit 16 + xed_uint32_t vm:1; + xed_uint32_t ac:1; + xed_uint32_t vif:1; + + xed_uint32_t vip:1; ///< bit 20 + xed_uint32_t id:1; ///< bit 21 + xed_uint32_t must_be_0d:2; ///< bits 22-23 + + xed_uint32_t must_be_0e:4; ///< bits 24-27 + + // fc0,fc1,fc2,fc3 are not really part of rflags but I put them + // here to save space. These bits are only used for x87 + // instructions. + xed_uint32_t fc0:1; ///< x87 flag FC0 (not really part of rflags) + xed_uint32_t fc1:1; ///< x87 flag FC1 (not really part of rflags) + xed_uint32_t fc2:1; ///< x87 flag FC2 (not really part of rflags) + xed_uint32_t fc3:1; ///< x87 flag FC3 (not really part of rflags) + } s; + +}; + +typedef union xed_flag_set_s xed_flag_set_t; +/// @ingroup FLAGS +/// @name Flag-set accessors +//@{ +/// @ingroup FLAGS +/// print the flag set in the supplied buffer +XED_DLL_EXPORT int xed_flag_set_print(const xed_flag_set_t* p, char* buf, int buflen); +/// @ingroup FLAGS +/// returns true if this object has a subset of the flags of the +/// "other" object. +XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of(const xed_flag_set_t* p, + const xed_flag_set_t* other); +//@} + + +//////////////////////////////////////////////////////////////////////////// + +/// @ingroup FLAGS +/// Associated with each flag field there can be one action. +typedef struct xed_flag_enum_s { + xed_flag_enum_t flag; + // there are at most two actions per flag. The 2nd may be invalid. + xed_flag_action_enum_t action; +} xed_flag_action_t; + + + + +/// @ingroup FLAGS +/// @name Lowest-level flag-action accessors +//@{ +/// @ingroup FLAGS +/// get the name of the flag +XED_DLL_EXPORT xed_flag_enum_t +xed_flag_action_get_flag_name(const xed_flag_action_t* p); +/// @ingroup FLAGS +/// return the action +XED_DLL_EXPORT xed_flag_action_enum_t +xed_flag_action_get_action(const xed_flag_action_t* p, unsigned int i); +/// @ingroup FLAGS +/// returns true if the specified action is invalid. Only the 2nd flag might be invalid. +XED_DLL_EXPORT xed_bool_t +xed_flag_action_action_invalid(const xed_flag_action_enum_t a); +/// @ingroup FLAGS +/// print the flag & actions +XED_DLL_EXPORT int xed_flag_action_print(const xed_flag_action_t* p, char* buf, int buflen); +/// @ingroup FLAGS +/// returns true if either action is a read +XED_DLL_EXPORT xed_bool_t +xed_flag_action_read_flag(const xed_flag_action_t* p ); +/// @ingroup FLAGS +/// returns true if either action is a write +XED_DLL_EXPORT xed_bool_t +xed_flag_action_writes_flag(const xed_flag_action_t* p); + +/// @ingroup FLAGS +/// test to see if the specific action is a read +XED_DLL_EXPORT xed_bool_t +xed_flag_action_read_action( xed_flag_action_enum_t a); +/// @ingroup FLAGS +/// test to see if a specific action is a write +XED_DLL_EXPORT xed_bool_t +xed_flag_action_write_action( xed_flag_action_enum_t a); +//@} + +//////////////////////////////////////////////////////////////////////////// + +/// @ingroup FLAGS +/// A collection of #xed_flag_action_t's and unions of read and written flags +typedef struct xed_simple_flag_s +{ + ///number of flag actions associated with this record + xed_uint8_t nflags; + + xed_uint8_t may_write; /* 1/0, only using one bit */ + xed_uint8_t must_write; /* 1/0, only using one bit */ + + ///union of read flags + xed_flag_set_t read; + + /// union of written flags (includes undefined flags); + xed_flag_set_t written; + + /// union of undefined flags; + xed_flag_set_t undefined; + + // index in to the xed_flag_action_table. nflags limits the # of entries. + xed_uint16_t fa_index; + +} xed_simple_flag_t; + +/// @ingroup FLAGS +/// @name Accessing the simple flags (Mid-level access) +//@{ +/// @ingroup FLAGS +/// returns the number of flag-actions +XED_DLL_EXPORT unsigned int +xed_simple_flag_get_nflags(const xed_simple_flag_t* p); + +/// @ingroup FLAGS +/// return union of bits for read flags +XED_DLL_EXPORT const xed_flag_set_t* +xed_simple_flag_get_read_flag_set(const xed_simple_flag_t* p); + +/// @ingroup FLAGS +/// return union of bits for written flags +XED_DLL_EXPORT const xed_flag_set_t* +xed_simple_flag_get_written_flag_set(const xed_simple_flag_t* p); + + +/// @ingroup FLAGS +/// return union of bits for undefined flags +XED_DLL_EXPORT const xed_flag_set_t* +xed_simple_flag_get_undefined_flag_set(const xed_simple_flag_t* p); + +/// @ingroup FLAGS +/// Indicates the flags are only conditionally written. Usally MAY-writes +/// of the flags instructions that are dependent on a REP count. +XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write(const xed_simple_flag_t* p); + +/// @ingroup FLAGS +/// the flags always written +XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write(const xed_simple_flag_t* p); + +/// @ingroup FLAGS +/// return the specific flag-action. Very detailed low level information +XED_DLL_EXPORT const xed_flag_action_t* +xed_simple_flag_get_flag_action(const xed_simple_flag_t* p, unsigned int i); + +/// @ingroup FLAGS +/// boolean test to see if flags are read, scans the flags +XED_DLL_EXPORT xed_bool_t +xed_simple_flag_reads_flags(const xed_simple_flag_t* p); + +/// @ingroup FLAGS +/// boolean test to see if flags are written, scans the flags +XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags(const xed_simple_flag_t* p); + +/// @ingroup FLAGS +/// print the flags +XED_DLL_EXPORT int xed_simple_flag_print(const xed_simple_flag_t* p, char* buf, int buflen); + +/// @ingroup FLAGS +/// Return the flags as a mask +static XED_INLINE int xed_flag_set_mask(const xed_flag_set_t* p) { + return p->flat; // FIXME: could mask out the X87 flags +} + +//@} + +//////////////////////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////////////////////// + +#endif diff --git a/third_party/xed-intel64/include/xed-format-options.h b/third_party/xed-intel64/include/xed-format-options.h new file mode 100644 index 0000000..5fd3a6d --- /dev/null +++ b/third_party/xed-intel64/include/xed-format-options.h @@ -0,0 +1,75 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-format-options.h + + +#ifndef _XED_FORMAT_OPTIONS_H_ +# define _XED_FORMAT_OPTIONS_H_ +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +/// @name Formatting options +//@{ + +/// Options for the disasembly formatting functions. Set once during +/// initialization by a calling #xed_format_set_options +/// @ingroup PRINT +typedef struct { + /// by default, XED prints the hex address before any symbolic name for + /// branch targets. If set to zero, then XED will not print the hex + /// address before a valid symbolic name. + unsigned int hex_address_before_symbolic_name; + + /// Simple XML output format for the Intel syntax disassembly. + unsigned int xml_a; + /// Include flags in the XML formatting (must also supply xml_a) + unsigned int xml_f; + + /// omit unit scale "*1" + unsigned int omit_unit_scale; + + /// do not sign extend signed immediates + unsigned int no_sign_extend_signed_immediates; + + /// write-mask-with-curly-brackets, omit k0 + unsigned int write_mask_curly_k0; + +} xed_format_options_t; + +/// Optionally, customize the disassembly formatting options by passing +/// in a #xed_format_options_t structure. +/// @ingroup PRINT +XED_DLL_EXPORT void +xed_format_set_options(xed_format_options_t format_options); +//@} + +#endif diff --git a/third_party/xed-intel64/include/xed-gen-table-defs.h b/third_party/xed-intel64/include/xed-gen-table-defs.h new file mode 100644 index 0000000..a9d519e --- /dev/null +++ b/third_party/xed-intel64/include/xed-gen-table-defs.h @@ -0,0 +1,51 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-gen-table-defs.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_GEN_TABLE_DEFS_H_) +# define _XED_GEN_TABLE_DEFS_H_ +#define XED_ICLASS_NAME_STR_MAX 110 +#define XED_MAX_ATTRIBUTE_COUNT 86 +#define XED_MAX_INST_TABLE_NODES 6354 +#define XED_MAX_OPERAND_TABLE_NODES 1315 +#define XED_MAX_OPERAND_SEQUENCES 7705 +#define XED_MAX_REQUIRED_SIMPLE_FLAGS_ENTRIES 94 +#define XED_MAX_REQUIRED_COMPLEX_FLAGS_ENTRIES 37 +#define XED_MAX_GLOBAL_FLAG_ACTIONS 410 +#define XED_MAX_IFORMS_PER_ICLASS 28 +#define XED_MAX_REQUIRED_ATTRIBUTES 182 +#define XED_MAX_CONVERT_PATTERNS 5 +#define XED_MAX_DECORATIONS_PER_OPERAND 3 +#endif diff --git a/third_party/xed-intel64/include/xed-get-time.h b/third_party/xed-intel64/include/xed-get-time.h new file mode 100644 index 0000000..94f1d5b --- /dev/null +++ b/third_party/xed-intel64/include/xed-get-time.h @@ -0,0 +1,86 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ + +#if !defined(_XED_GET_TIME_H_) +# define _XED_GET_TIME_H_ + +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + +# if defined(__INTEL_COMPILER) && __INTEL_COMPILER > 810 && !defined(_M_IA64) +# include +# endif +# if defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 810 && !defined(_M_IA64) +# if __INTEL_COMPILER < 1000 +# pragma intrinsic(__rdtsc) +# endif +# endif +# if !defined(__INTEL_COMPILER) + /* MSVS8 and later */ +# if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(_M_IA64) +# include +# pragma intrinsic(__rdtsc) +# endif +# endif + + +///xed_get_time() must be compiled with gnu99 on linux to enable the asm() +///statements. If not gnu99, then xed_get_time() returns zero with gcc. GCC +///has no intrinsic for rdtsc. (The default for XED is to compile with +///-std=c99.) GCC allows __asm__ even under c99! +static XED_INLINE xed_uint64_t xed_get_time(void) { + xed_union64_t ticks; + // __STRICT_ANSI__ comes from the -std=c99 +# if defined(__GNUC__) //&& !defined(__STRICT_ANSI__) +# if defined(__i386__) || defined(i386) || defined(i686) || defined(__x86_64__) + __asm__ volatile ("rdtsc":"=a" (ticks.s.lo32), "=d"(ticks.s.hi32)); +# define FOUND_RDTSC +# endif +# endif +# if defined(__INTEL_COMPILER) && __INTEL_COMPILER>=810 && !defined(_M_IA64) + ticks.u64 = __rdtsc(); +# define FOUND_RDTSC +# endif +# if !defined(__INTEL_COMPILER) +# if !defined(FOUND_RDTSC) && defined(_MSC_VER) && _MSC_VER >= 1400 && \ + !defined(_M_IA64) && !defined(_MANAGED) /* MSVS7, 8 */ + ticks.u64 = __rdtsc(); +# define FOUND_RDTSC +# endif +# endif +# if !defined(FOUND_RDTSC) + ticks.u64 = 0; +# endif + return ticks.u64; +} + +#endif diff --git a/third_party/xed-intel64/include/xed-iclass-enum.h b/third_party/xed-intel64/include/xed-iclass-enum.h new file mode 100644 index 0000000..d7d1093 --- /dev/null +++ b/third_party/xed-intel64/include/xed-iclass-enum.h @@ -0,0 +1,1560 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-iclass-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_ICLASS_ENUM_H_) +# define _XED_ICLASS_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_ICLASS_INVALID, + XED_ICLASS_AAA, + XED_ICLASS_AAD, + XED_ICLASS_AAM, + XED_ICLASS_AAS, + XED_ICLASS_ADC, + XED_ICLASS_ADCX, + XED_ICLASS_ADC_LOCK, + XED_ICLASS_ADD, + XED_ICLASS_ADDPD, + XED_ICLASS_ADDPS, + XED_ICLASS_ADDSD, + XED_ICLASS_ADDSS, + XED_ICLASS_ADDSUBPD, + XED_ICLASS_ADDSUBPS, + XED_ICLASS_ADD_LOCK, + XED_ICLASS_ADOX, + XED_ICLASS_AESDEC, + XED_ICLASS_AESDECLAST, + XED_ICLASS_AESENC, + XED_ICLASS_AESENCLAST, + XED_ICLASS_AESIMC, + XED_ICLASS_AESKEYGENASSIST, + XED_ICLASS_AND, + XED_ICLASS_ANDN, + XED_ICLASS_ANDNPD, + XED_ICLASS_ANDNPS, + XED_ICLASS_ANDPD, + XED_ICLASS_ANDPS, + XED_ICLASS_AND_LOCK, + XED_ICLASS_ARPL, + XED_ICLASS_BEXTR, + XED_ICLASS_BEXTR_XOP, + XED_ICLASS_BLCFILL, + XED_ICLASS_BLCI, + XED_ICLASS_BLCIC, + XED_ICLASS_BLCMSK, + XED_ICLASS_BLCS, + XED_ICLASS_BLENDPD, + XED_ICLASS_BLENDPS, + XED_ICLASS_BLENDVPD, + XED_ICLASS_BLENDVPS, + XED_ICLASS_BLSFILL, + XED_ICLASS_BLSI, + XED_ICLASS_BLSIC, + XED_ICLASS_BLSMSK, + XED_ICLASS_BLSR, + XED_ICLASS_BNDCL, + XED_ICLASS_BNDCN, + XED_ICLASS_BNDCU, + XED_ICLASS_BNDLDX, + XED_ICLASS_BNDMK, + XED_ICLASS_BNDMOV, + XED_ICLASS_BNDSTX, + XED_ICLASS_BOUND, + XED_ICLASS_BSF, + XED_ICLASS_BSR, + XED_ICLASS_BSWAP, + XED_ICLASS_BT, + XED_ICLASS_BTC, + XED_ICLASS_BTC_LOCK, + XED_ICLASS_BTR, + XED_ICLASS_BTR_LOCK, + XED_ICLASS_BTS, + XED_ICLASS_BTS_LOCK, + XED_ICLASS_BZHI, + XED_ICLASS_CALL_FAR, + XED_ICLASS_CALL_NEAR, + XED_ICLASS_CBW, + XED_ICLASS_CDQ, + XED_ICLASS_CDQE, + XED_ICLASS_CLAC, + XED_ICLASS_CLC, + XED_ICLASS_CLD, + XED_ICLASS_CLFLUSH, + XED_ICLASS_CLFLUSHOPT, + XED_ICLASS_CLGI, + XED_ICLASS_CLI, + XED_ICLASS_CLTS, + XED_ICLASS_CLWB, + XED_ICLASS_CMC, + XED_ICLASS_CMOVB, + XED_ICLASS_CMOVBE, + XED_ICLASS_CMOVL, + XED_ICLASS_CMOVLE, + XED_ICLASS_CMOVNB, + XED_ICLASS_CMOVNBE, + XED_ICLASS_CMOVNL, + XED_ICLASS_CMOVNLE, + XED_ICLASS_CMOVNO, + XED_ICLASS_CMOVNP, + XED_ICLASS_CMOVNS, + XED_ICLASS_CMOVNZ, + XED_ICLASS_CMOVO, + XED_ICLASS_CMOVP, + XED_ICLASS_CMOVS, + XED_ICLASS_CMOVZ, + XED_ICLASS_CMP, + XED_ICLASS_CMPPD, + XED_ICLASS_CMPPS, + XED_ICLASS_CMPSB, + XED_ICLASS_CMPSD, + XED_ICLASS_CMPSD_XMM, + XED_ICLASS_CMPSQ, + XED_ICLASS_CMPSS, + XED_ICLASS_CMPSW, + XED_ICLASS_CMPXCHG, + XED_ICLASS_CMPXCHG16B, + XED_ICLASS_CMPXCHG16B_LOCK, + XED_ICLASS_CMPXCHG8B, + XED_ICLASS_CMPXCHG8B_LOCK, + XED_ICLASS_CMPXCHG_LOCK, + XED_ICLASS_COMISD, + XED_ICLASS_COMISS, + XED_ICLASS_CPUID, + XED_ICLASS_CQO, + XED_ICLASS_CRC32, + XED_ICLASS_CVTDQ2PD, + XED_ICLASS_CVTDQ2PS, + XED_ICLASS_CVTPD2DQ, + XED_ICLASS_CVTPD2PI, + XED_ICLASS_CVTPD2PS, + XED_ICLASS_CVTPI2PD, + XED_ICLASS_CVTPI2PS, + XED_ICLASS_CVTPS2DQ, + XED_ICLASS_CVTPS2PD, + XED_ICLASS_CVTPS2PI, + XED_ICLASS_CVTSD2SI, + XED_ICLASS_CVTSD2SS, + XED_ICLASS_CVTSI2SD, + XED_ICLASS_CVTSI2SS, + XED_ICLASS_CVTSS2SD, + XED_ICLASS_CVTSS2SI, + XED_ICLASS_CVTTPD2DQ, + XED_ICLASS_CVTTPD2PI, + XED_ICLASS_CVTTPS2DQ, + XED_ICLASS_CVTTPS2PI, + XED_ICLASS_CVTTSD2SI, + XED_ICLASS_CVTTSS2SI, + XED_ICLASS_CWD, + XED_ICLASS_CWDE, + XED_ICLASS_DAA, + XED_ICLASS_DAS, + XED_ICLASS_DEC, + XED_ICLASS_DEC_LOCK, + XED_ICLASS_DIV, + XED_ICLASS_DIVPD, + XED_ICLASS_DIVPS, + XED_ICLASS_DIVSD, + XED_ICLASS_DIVSS, + XED_ICLASS_DPPD, + XED_ICLASS_DPPS, + XED_ICLASS_EMMS, + XED_ICLASS_ENCLS, + XED_ICLASS_ENCLU, + XED_ICLASS_ENTER, + XED_ICLASS_EXTRACTPS, + XED_ICLASS_EXTRQ, + XED_ICLASS_F2XM1, + XED_ICLASS_FABS, + XED_ICLASS_FADD, + XED_ICLASS_FADDP, + XED_ICLASS_FBLD, + XED_ICLASS_FBSTP, + XED_ICLASS_FCHS, + XED_ICLASS_FCMOVB, + XED_ICLASS_FCMOVBE, + XED_ICLASS_FCMOVE, + XED_ICLASS_FCMOVNB, + XED_ICLASS_FCMOVNBE, + XED_ICLASS_FCMOVNE, + XED_ICLASS_FCMOVNU, + XED_ICLASS_FCMOVU, + XED_ICLASS_FCOM, + XED_ICLASS_FCOMI, + XED_ICLASS_FCOMIP, + XED_ICLASS_FCOMP, + XED_ICLASS_FCOMPP, + XED_ICLASS_FCOS, + XED_ICLASS_FDECSTP, + XED_ICLASS_FDISI8087_NOP, + XED_ICLASS_FDIV, + XED_ICLASS_FDIVP, + XED_ICLASS_FDIVR, + XED_ICLASS_FDIVRP, + XED_ICLASS_FEMMS, + XED_ICLASS_FENI8087_NOP, + XED_ICLASS_FFREE, + XED_ICLASS_FFREEP, + XED_ICLASS_FIADD, + XED_ICLASS_FICOM, + XED_ICLASS_FICOMP, + XED_ICLASS_FIDIV, + XED_ICLASS_FIDIVR, + XED_ICLASS_FILD, + XED_ICLASS_FIMUL, + XED_ICLASS_FINCSTP, + XED_ICLASS_FIST, + XED_ICLASS_FISTP, + XED_ICLASS_FISTTP, + XED_ICLASS_FISUB, + XED_ICLASS_FISUBR, + XED_ICLASS_FLD, + XED_ICLASS_FLD1, + XED_ICLASS_FLDCW, + XED_ICLASS_FLDENV, + XED_ICLASS_FLDL2E, + XED_ICLASS_FLDL2T, + XED_ICLASS_FLDLG2, + XED_ICLASS_FLDLN2, + XED_ICLASS_FLDPI, + XED_ICLASS_FLDZ, + XED_ICLASS_FMUL, + XED_ICLASS_FMULP, + XED_ICLASS_FNCLEX, + XED_ICLASS_FNINIT, + XED_ICLASS_FNOP, + XED_ICLASS_FNSAVE, + XED_ICLASS_FNSTCW, + XED_ICLASS_FNSTENV, + XED_ICLASS_FNSTSW, + XED_ICLASS_FPATAN, + XED_ICLASS_FPREM, + XED_ICLASS_FPREM1, + XED_ICLASS_FPTAN, + XED_ICLASS_FRNDINT, + XED_ICLASS_FRSTOR, + XED_ICLASS_FSCALE, + XED_ICLASS_FSETPM287_NOP, + XED_ICLASS_FSIN, + XED_ICLASS_FSINCOS, + XED_ICLASS_FSQRT, + XED_ICLASS_FST, + XED_ICLASS_FSTP, + XED_ICLASS_FSTPNCE, + XED_ICLASS_FSUB, + XED_ICLASS_FSUBP, + XED_ICLASS_FSUBR, + XED_ICLASS_FSUBRP, + XED_ICLASS_FTST, + XED_ICLASS_FUCOM, + XED_ICLASS_FUCOMI, + XED_ICLASS_FUCOMIP, + XED_ICLASS_FUCOMP, + XED_ICLASS_FUCOMPP, + XED_ICLASS_FWAIT, + XED_ICLASS_FXAM, + XED_ICLASS_FXCH, + XED_ICLASS_FXRSTOR, + XED_ICLASS_FXRSTOR64, + XED_ICLASS_FXSAVE, + XED_ICLASS_FXSAVE64, + XED_ICLASS_FXTRACT, + XED_ICLASS_FYL2X, + XED_ICLASS_FYL2XP1, + XED_ICLASS_GETSEC, + XED_ICLASS_HADDPD, + XED_ICLASS_HADDPS, + XED_ICLASS_HLT, + XED_ICLASS_HSUBPD, + XED_ICLASS_HSUBPS, + XED_ICLASS_IDIV, + XED_ICLASS_IMUL, + XED_ICLASS_IN, + XED_ICLASS_INC, + XED_ICLASS_INC_LOCK, + XED_ICLASS_INSB, + XED_ICLASS_INSD, + XED_ICLASS_INSERTPS, + XED_ICLASS_INSERTQ, + XED_ICLASS_INSW, + XED_ICLASS_INT, + XED_ICLASS_INT1, + XED_ICLASS_INT3, + XED_ICLASS_INTO, + XED_ICLASS_INVD, + XED_ICLASS_INVEPT, + XED_ICLASS_INVLPG, + XED_ICLASS_INVLPGA, + XED_ICLASS_INVPCID, + XED_ICLASS_INVVPID, + XED_ICLASS_IRET, + XED_ICLASS_IRETD, + XED_ICLASS_IRETQ, + XED_ICLASS_JB, + XED_ICLASS_JBE, + XED_ICLASS_JCXZ, + XED_ICLASS_JECXZ, + XED_ICLASS_JL, + XED_ICLASS_JLE, + XED_ICLASS_JMP, + XED_ICLASS_JMP_FAR, + XED_ICLASS_JNB, + XED_ICLASS_JNBE, + XED_ICLASS_JNL, + XED_ICLASS_JNLE, + XED_ICLASS_JNO, + XED_ICLASS_JNP, + XED_ICLASS_JNS, + XED_ICLASS_JNZ, + XED_ICLASS_JO, + XED_ICLASS_JP, + XED_ICLASS_JRCXZ, + XED_ICLASS_JS, + XED_ICLASS_JZ, + XED_ICLASS_KADDB, + XED_ICLASS_KADDD, + XED_ICLASS_KADDQ, + XED_ICLASS_KADDW, + XED_ICLASS_KANDB, + XED_ICLASS_KANDD, + XED_ICLASS_KANDNB, + XED_ICLASS_KANDND, + XED_ICLASS_KANDNQ, + XED_ICLASS_KANDNW, + XED_ICLASS_KANDQ, + XED_ICLASS_KANDW, + XED_ICLASS_KMOVB, + XED_ICLASS_KMOVD, + XED_ICLASS_KMOVQ, + XED_ICLASS_KMOVW, + XED_ICLASS_KNOTB, + XED_ICLASS_KNOTD, + XED_ICLASS_KNOTQ, + XED_ICLASS_KNOTW, + XED_ICLASS_KORB, + XED_ICLASS_KORD, + XED_ICLASS_KORQ, + XED_ICLASS_KORTESTB, + XED_ICLASS_KORTESTD, + XED_ICLASS_KORTESTQ, + XED_ICLASS_KORTESTW, + XED_ICLASS_KORW, + XED_ICLASS_KSHIFTLB, + XED_ICLASS_KSHIFTLD, + XED_ICLASS_KSHIFTLQ, + XED_ICLASS_KSHIFTLW, + XED_ICLASS_KSHIFTRB, + XED_ICLASS_KSHIFTRD, + XED_ICLASS_KSHIFTRQ, + XED_ICLASS_KSHIFTRW, + XED_ICLASS_KTESTB, + XED_ICLASS_KTESTD, + XED_ICLASS_KTESTQ, + XED_ICLASS_KTESTW, + XED_ICLASS_KUNPCKBW, + XED_ICLASS_KUNPCKDQ, + XED_ICLASS_KUNPCKWD, + XED_ICLASS_KXNORB, + XED_ICLASS_KXNORD, + XED_ICLASS_KXNORQ, + XED_ICLASS_KXNORW, + XED_ICLASS_KXORB, + XED_ICLASS_KXORD, + XED_ICLASS_KXORQ, + XED_ICLASS_KXORW, + XED_ICLASS_LAHF, + XED_ICLASS_LAR, + XED_ICLASS_LDDQU, + XED_ICLASS_LDMXCSR, + XED_ICLASS_LDS, + XED_ICLASS_LEA, + XED_ICLASS_LEAVE, + XED_ICLASS_LES, + XED_ICLASS_LFENCE, + XED_ICLASS_LFS, + XED_ICLASS_LGDT, + XED_ICLASS_LGS, + XED_ICLASS_LIDT, + XED_ICLASS_LLDT, + XED_ICLASS_LLWPCB, + XED_ICLASS_LMSW, + XED_ICLASS_LODSB, + XED_ICLASS_LODSD, + XED_ICLASS_LODSQ, + XED_ICLASS_LODSW, + XED_ICLASS_LOOP, + XED_ICLASS_LOOPE, + XED_ICLASS_LOOPNE, + XED_ICLASS_LSL, + XED_ICLASS_LSS, + XED_ICLASS_LTR, + XED_ICLASS_LWPINS, + XED_ICLASS_LWPVAL, + XED_ICLASS_LZCNT, + XED_ICLASS_MASKMOVDQU, + XED_ICLASS_MASKMOVQ, + XED_ICLASS_MAXPD, + XED_ICLASS_MAXPS, + XED_ICLASS_MAXSD, + XED_ICLASS_MAXSS, + XED_ICLASS_MFENCE, + XED_ICLASS_MINPD, + XED_ICLASS_MINPS, + XED_ICLASS_MINSD, + XED_ICLASS_MINSS, + XED_ICLASS_MONITOR, + XED_ICLASS_MOV, + XED_ICLASS_MOVAPD, + XED_ICLASS_MOVAPS, + XED_ICLASS_MOVBE, + XED_ICLASS_MOVD, + XED_ICLASS_MOVDDUP, + XED_ICLASS_MOVDQ2Q, + XED_ICLASS_MOVDQA, + XED_ICLASS_MOVDQU, + XED_ICLASS_MOVHLPS, + XED_ICLASS_MOVHPD, + XED_ICLASS_MOVHPS, + XED_ICLASS_MOVLHPS, + XED_ICLASS_MOVLPD, + XED_ICLASS_MOVLPS, + XED_ICLASS_MOVMSKPD, + XED_ICLASS_MOVMSKPS, + XED_ICLASS_MOVNTDQ, + XED_ICLASS_MOVNTDQA, + XED_ICLASS_MOVNTI, + XED_ICLASS_MOVNTPD, + XED_ICLASS_MOVNTPS, + XED_ICLASS_MOVNTQ, + XED_ICLASS_MOVNTSD, + XED_ICLASS_MOVNTSS, + XED_ICLASS_MOVQ, + XED_ICLASS_MOVQ2DQ, + XED_ICLASS_MOVSB, + XED_ICLASS_MOVSD, + XED_ICLASS_MOVSD_XMM, + XED_ICLASS_MOVSHDUP, + XED_ICLASS_MOVSLDUP, + XED_ICLASS_MOVSQ, + XED_ICLASS_MOVSS, + XED_ICLASS_MOVSW, + XED_ICLASS_MOVSX, + XED_ICLASS_MOVSXD, + XED_ICLASS_MOVUPD, + XED_ICLASS_MOVUPS, + XED_ICLASS_MOVZX, + XED_ICLASS_MOV_CR, + XED_ICLASS_MOV_DR, + XED_ICLASS_MPSADBW, + XED_ICLASS_MUL, + XED_ICLASS_MULPD, + XED_ICLASS_MULPS, + XED_ICLASS_MULSD, + XED_ICLASS_MULSS, + XED_ICLASS_MULX, + XED_ICLASS_MWAIT, + XED_ICLASS_NEG, + XED_ICLASS_NEG_LOCK, + XED_ICLASS_NOP, + XED_ICLASS_NOP2, + XED_ICLASS_NOP3, + XED_ICLASS_NOP4, + XED_ICLASS_NOP5, + XED_ICLASS_NOP6, + XED_ICLASS_NOP7, + XED_ICLASS_NOP8, + XED_ICLASS_NOP9, + XED_ICLASS_NOT, + XED_ICLASS_NOT_LOCK, + XED_ICLASS_OR, + XED_ICLASS_ORPD, + XED_ICLASS_ORPS, + XED_ICLASS_OR_LOCK, + XED_ICLASS_OUT, + XED_ICLASS_OUTSB, + XED_ICLASS_OUTSD, + XED_ICLASS_OUTSW, + XED_ICLASS_PABSB, + XED_ICLASS_PABSD, + XED_ICLASS_PABSW, + XED_ICLASS_PACKSSDW, + XED_ICLASS_PACKSSWB, + XED_ICLASS_PACKUSDW, + XED_ICLASS_PACKUSWB, + XED_ICLASS_PADDB, + XED_ICLASS_PADDD, + XED_ICLASS_PADDQ, + XED_ICLASS_PADDSB, + XED_ICLASS_PADDSW, + XED_ICLASS_PADDUSB, + XED_ICLASS_PADDUSW, + XED_ICLASS_PADDW, + XED_ICLASS_PALIGNR, + XED_ICLASS_PAND, + XED_ICLASS_PANDN, + XED_ICLASS_PAUSE, + XED_ICLASS_PAVGB, + XED_ICLASS_PAVGUSB, + XED_ICLASS_PAVGW, + XED_ICLASS_PBLENDVB, + XED_ICLASS_PBLENDW, + XED_ICLASS_PCLMULQDQ, + XED_ICLASS_PCMPEQB, + XED_ICLASS_PCMPEQD, + XED_ICLASS_PCMPEQQ, + XED_ICLASS_PCMPEQW, + XED_ICLASS_PCMPESTRI, + XED_ICLASS_PCMPESTRM, + XED_ICLASS_PCMPGTB, + XED_ICLASS_PCMPGTD, + XED_ICLASS_PCMPGTQ, + XED_ICLASS_PCMPGTW, + XED_ICLASS_PCMPISTRI, + XED_ICLASS_PCMPISTRM, + XED_ICLASS_PCOMMIT, + XED_ICLASS_PDEP, + XED_ICLASS_PEXT, + XED_ICLASS_PEXTRB, + XED_ICLASS_PEXTRD, + XED_ICLASS_PEXTRQ, + XED_ICLASS_PEXTRW, + XED_ICLASS_PEXTRW_SSE4, + XED_ICLASS_PF2ID, + XED_ICLASS_PF2IW, + XED_ICLASS_PFACC, + XED_ICLASS_PFADD, + XED_ICLASS_PFCMPEQ, + XED_ICLASS_PFCMPGE, + XED_ICLASS_PFCMPGT, + XED_ICLASS_PFCPIT1, + XED_ICLASS_PFMAX, + XED_ICLASS_PFMIN, + XED_ICLASS_PFMUL, + XED_ICLASS_PFNACC, + XED_ICLASS_PFPNACC, + XED_ICLASS_PFRCP, + XED_ICLASS_PFRCPIT2, + XED_ICLASS_PFRSQIT1, + XED_ICLASS_PFSQRT, + XED_ICLASS_PFSUB, + XED_ICLASS_PFSUBR, + XED_ICLASS_PHADDD, + XED_ICLASS_PHADDSW, + XED_ICLASS_PHADDW, + XED_ICLASS_PHMINPOSUW, + XED_ICLASS_PHSUBD, + XED_ICLASS_PHSUBSW, + XED_ICLASS_PHSUBW, + XED_ICLASS_PI2FD, + XED_ICLASS_PI2FW, + XED_ICLASS_PINSRB, + XED_ICLASS_PINSRD, + XED_ICLASS_PINSRQ, + XED_ICLASS_PINSRW, + XED_ICLASS_PMADDUBSW, + XED_ICLASS_PMADDWD, + XED_ICLASS_PMAXSB, + XED_ICLASS_PMAXSD, + XED_ICLASS_PMAXSW, + XED_ICLASS_PMAXUB, + XED_ICLASS_PMAXUD, + XED_ICLASS_PMAXUW, + XED_ICLASS_PMINSB, + XED_ICLASS_PMINSD, + XED_ICLASS_PMINSW, + XED_ICLASS_PMINUB, + XED_ICLASS_PMINUD, + XED_ICLASS_PMINUW, + XED_ICLASS_PMOVMSKB, + XED_ICLASS_PMOVSXBD, + XED_ICLASS_PMOVSXBQ, + XED_ICLASS_PMOVSXBW, + XED_ICLASS_PMOVSXDQ, + XED_ICLASS_PMOVSXWD, + XED_ICLASS_PMOVSXWQ, + XED_ICLASS_PMOVZXBD, + XED_ICLASS_PMOVZXBQ, + XED_ICLASS_PMOVZXBW, + XED_ICLASS_PMOVZXDQ, + XED_ICLASS_PMOVZXWD, + XED_ICLASS_PMOVZXWQ, + XED_ICLASS_PMULDQ, + XED_ICLASS_PMULHRSW, + XED_ICLASS_PMULHRW, + XED_ICLASS_PMULHUW, + XED_ICLASS_PMULHW, + XED_ICLASS_PMULLD, + XED_ICLASS_PMULLW, + XED_ICLASS_PMULUDQ, + XED_ICLASS_POP, + XED_ICLASS_POPA, + XED_ICLASS_POPAD, + XED_ICLASS_POPCNT, + XED_ICLASS_POPF, + XED_ICLASS_POPFD, + XED_ICLASS_POPFQ, + XED_ICLASS_POR, + XED_ICLASS_PREFETCHNTA, + XED_ICLASS_PREFETCHT0, + XED_ICLASS_PREFETCHT1, + XED_ICLASS_PREFETCHT2, + XED_ICLASS_PREFETCHW, + XED_ICLASS_PREFETCHWT1, + XED_ICLASS_PREFETCH_EXCLUSIVE, + XED_ICLASS_PREFETCH_RESERVED, + XED_ICLASS_PSADBW, + XED_ICLASS_PSHUFB, + XED_ICLASS_PSHUFD, + XED_ICLASS_PSHUFHW, + XED_ICLASS_PSHUFLW, + XED_ICLASS_PSHUFW, + XED_ICLASS_PSIGNB, + XED_ICLASS_PSIGND, + XED_ICLASS_PSIGNW, + XED_ICLASS_PSLLD, + XED_ICLASS_PSLLDQ, + XED_ICLASS_PSLLQ, + XED_ICLASS_PSLLW, + XED_ICLASS_PSRAD, + XED_ICLASS_PSRAW, + XED_ICLASS_PSRLD, + XED_ICLASS_PSRLDQ, + XED_ICLASS_PSRLQ, + XED_ICLASS_PSRLW, + XED_ICLASS_PSUBB, + XED_ICLASS_PSUBD, + XED_ICLASS_PSUBQ, + XED_ICLASS_PSUBSB, + XED_ICLASS_PSUBSW, + XED_ICLASS_PSUBUSB, + XED_ICLASS_PSUBUSW, + XED_ICLASS_PSUBW, + XED_ICLASS_PSWAPD, + XED_ICLASS_PTEST, + XED_ICLASS_PUNPCKHBW, + XED_ICLASS_PUNPCKHDQ, + XED_ICLASS_PUNPCKHQDQ, + XED_ICLASS_PUNPCKHWD, + XED_ICLASS_PUNPCKLBW, + XED_ICLASS_PUNPCKLDQ, + XED_ICLASS_PUNPCKLQDQ, + XED_ICLASS_PUNPCKLWD, + XED_ICLASS_PUSH, + XED_ICLASS_PUSHA, + XED_ICLASS_PUSHAD, + XED_ICLASS_PUSHF, + XED_ICLASS_PUSHFD, + XED_ICLASS_PUSHFQ, + XED_ICLASS_PXOR, + XED_ICLASS_RCL, + XED_ICLASS_RCPPS, + XED_ICLASS_RCPSS, + XED_ICLASS_RCR, + XED_ICLASS_RDFSBASE, + XED_ICLASS_RDGSBASE, + XED_ICLASS_RDMSR, + XED_ICLASS_RDPMC, + XED_ICLASS_RDRAND, + XED_ICLASS_RDSEED, + XED_ICLASS_RDTSC, + XED_ICLASS_RDTSCP, + XED_ICLASS_REPE_CMPSB, + XED_ICLASS_REPE_CMPSD, + XED_ICLASS_REPE_CMPSQ, + XED_ICLASS_REPE_CMPSW, + XED_ICLASS_REPE_SCASB, + XED_ICLASS_REPE_SCASD, + XED_ICLASS_REPE_SCASQ, + XED_ICLASS_REPE_SCASW, + XED_ICLASS_REPNE_CMPSB, + XED_ICLASS_REPNE_CMPSD, + XED_ICLASS_REPNE_CMPSQ, + XED_ICLASS_REPNE_CMPSW, + XED_ICLASS_REPNE_SCASB, + XED_ICLASS_REPNE_SCASD, + XED_ICLASS_REPNE_SCASQ, + XED_ICLASS_REPNE_SCASW, + XED_ICLASS_REP_INSB, + XED_ICLASS_REP_INSD, + XED_ICLASS_REP_INSW, + XED_ICLASS_REP_LODSB, + XED_ICLASS_REP_LODSD, + XED_ICLASS_REP_LODSQ, + XED_ICLASS_REP_LODSW, + XED_ICLASS_REP_MOVSB, + XED_ICLASS_REP_MOVSD, + XED_ICLASS_REP_MOVSQ, + XED_ICLASS_REP_MOVSW, + XED_ICLASS_REP_OUTSB, + XED_ICLASS_REP_OUTSD, + XED_ICLASS_REP_OUTSW, + XED_ICLASS_REP_STOSB, + XED_ICLASS_REP_STOSD, + XED_ICLASS_REP_STOSQ, + XED_ICLASS_REP_STOSW, + XED_ICLASS_RET_FAR, + XED_ICLASS_RET_NEAR, + XED_ICLASS_ROL, + XED_ICLASS_ROR, + XED_ICLASS_RORX, + XED_ICLASS_ROUNDPD, + XED_ICLASS_ROUNDPS, + XED_ICLASS_ROUNDSD, + XED_ICLASS_ROUNDSS, + XED_ICLASS_RSM, + XED_ICLASS_RSQRTPS, + XED_ICLASS_RSQRTSS, + XED_ICLASS_SAHF, + XED_ICLASS_SALC, + XED_ICLASS_SAR, + XED_ICLASS_SARX, + XED_ICLASS_SBB, + XED_ICLASS_SBB_LOCK, + XED_ICLASS_SCASB, + XED_ICLASS_SCASD, + XED_ICLASS_SCASQ, + XED_ICLASS_SCASW, + XED_ICLASS_SETB, + XED_ICLASS_SETBE, + XED_ICLASS_SETL, + XED_ICLASS_SETLE, + XED_ICLASS_SETNB, + XED_ICLASS_SETNBE, + XED_ICLASS_SETNL, + XED_ICLASS_SETNLE, + XED_ICLASS_SETNO, + XED_ICLASS_SETNP, + XED_ICLASS_SETNS, + XED_ICLASS_SETNZ, + XED_ICLASS_SETO, + XED_ICLASS_SETP, + XED_ICLASS_SETS, + XED_ICLASS_SETZ, + XED_ICLASS_SFENCE, + XED_ICLASS_SGDT, + XED_ICLASS_SHA1MSG1, + XED_ICLASS_SHA1MSG2, + XED_ICLASS_SHA1NEXTE, + XED_ICLASS_SHA1RNDS4, + XED_ICLASS_SHA256MSG1, + XED_ICLASS_SHA256MSG2, + XED_ICLASS_SHA256RNDS2, + XED_ICLASS_SHL, + XED_ICLASS_SHLD, + XED_ICLASS_SHLX, + XED_ICLASS_SHR, + XED_ICLASS_SHRD, + XED_ICLASS_SHRX, + XED_ICLASS_SHUFPD, + XED_ICLASS_SHUFPS, + XED_ICLASS_SIDT, + XED_ICLASS_SKINIT, + XED_ICLASS_SLDT, + XED_ICLASS_SLWPCB, + XED_ICLASS_SMSW, + XED_ICLASS_SQRTPD, + XED_ICLASS_SQRTPS, + XED_ICLASS_SQRTSD, + XED_ICLASS_SQRTSS, + XED_ICLASS_STAC, + XED_ICLASS_STC, + XED_ICLASS_STD, + XED_ICLASS_STGI, + XED_ICLASS_STI, + XED_ICLASS_STMXCSR, + XED_ICLASS_STOSB, + XED_ICLASS_STOSD, + XED_ICLASS_STOSQ, + XED_ICLASS_STOSW, + XED_ICLASS_STR, + XED_ICLASS_SUB, + XED_ICLASS_SUBPD, + XED_ICLASS_SUBPS, + XED_ICLASS_SUBSD, + XED_ICLASS_SUBSS, + XED_ICLASS_SUB_LOCK, + XED_ICLASS_SWAPGS, + XED_ICLASS_SYSCALL, + XED_ICLASS_SYSCALL_AMD, + XED_ICLASS_SYSENTER, + XED_ICLASS_SYSEXIT, + XED_ICLASS_SYSRET, + XED_ICLASS_SYSRET_AMD, + XED_ICLASS_T1MSKC, + XED_ICLASS_TEST, + XED_ICLASS_TZCNT, + XED_ICLASS_TZMSK, + XED_ICLASS_UCOMISD, + XED_ICLASS_UCOMISS, + XED_ICLASS_UD2, + XED_ICLASS_UNPCKHPD, + XED_ICLASS_UNPCKHPS, + XED_ICLASS_UNPCKLPD, + XED_ICLASS_UNPCKLPS, + XED_ICLASS_VADDPD, + XED_ICLASS_VADDPS, + XED_ICLASS_VADDSD, + XED_ICLASS_VADDSS, + XED_ICLASS_VADDSUBPD, + XED_ICLASS_VADDSUBPS, + XED_ICLASS_VAESDEC, + XED_ICLASS_VAESDECLAST, + XED_ICLASS_VAESENC, + XED_ICLASS_VAESENCLAST, + XED_ICLASS_VAESIMC, + XED_ICLASS_VAESKEYGENASSIST, + XED_ICLASS_VALIGND, + XED_ICLASS_VALIGNQ, + XED_ICLASS_VANDNPD, + XED_ICLASS_VANDNPS, + XED_ICLASS_VANDPD, + XED_ICLASS_VANDPS, + XED_ICLASS_VBLENDMPD, + XED_ICLASS_VBLENDMPS, + XED_ICLASS_VBLENDPD, + XED_ICLASS_VBLENDPS, + XED_ICLASS_VBLENDVPD, + XED_ICLASS_VBLENDVPS, + XED_ICLASS_VBROADCASTF128, + XED_ICLASS_VBROADCASTF32X2, + XED_ICLASS_VBROADCASTF32X4, + XED_ICLASS_VBROADCASTF32X8, + XED_ICLASS_VBROADCASTF64X2, + XED_ICLASS_VBROADCASTF64X4, + XED_ICLASS_VBROADCASTI128, + XED_ICLASS_VBROADCASTI32X2, + XED_ICLASS_VBROADCASTI32X4, + XED_ICLASS_VBROADCASTI32X8, + XED_ICLASS_VBROADCASTI64X2, + XED_ICLASS_VBROADCASTI64X4, + XED_ICLASS_VBROADCASTSD, + XED_ICLASS_VBROADCASTSS, + XED_ICLASS_VCMPPD, + XED_ICLASS_VCMPPS, + XED_ICLASS_VCMPSD, + XED_ICLASS_VCMPSS, + XED_ICLASS_VCOMISD, + XED_ICLASS_VCOMISS, + XED_ICLASS_VCOMPRESSPD, + XED_ICLASS_VCOMPRESSPS, + XED_ICLASS_VCVTDQ2PD, + XED_ICLASS_VCVTDQ2PS, + XED_ICLASS_VCVTPD2DQ, + XED_ICLASS_VCVTPD2PS, + XED_ICLASS_VCVTPD2QQ, + XED_ICLASS_VCVTPD2UDQ, + XED_ICLASS_VCVTPD2UQQ, + XED_ICLASS_VCVTPH2PS, + XED_ICLASS_VCVTPS2DQ, + XED_ICLASS_VCVTPS2PD, + XED_ICLASS_VCVTPS2PH, + XED_ICLASS_VCVTPS2QQ, + XED_ICLASS_VCVTPS2UDQ, + XED_ICLASS_VCVTPS2UQQ, + XED_ICLASS_VCVTQQ2PD, + XED_ICLASS_VCVTQQ2PS, + XED_ICLASS_VCVTSD2SI, + XED_ICLASS_VCVTSD2SS, + XED_ICLASS_VCVTSD2USI, + XED_ICLASS_VCVTSI2SD, + XED_ICLASS_VCVTSI2SS, + XED_ICLASS_VCVTSS2SD, + XED_ICLASS_VCVTSS2SI, + XED_ICLASS_VCVTSS2USI, + XED_ICLASS_VCVTTPD2DQ, + XED_ICLASS_VCVTTPD2QQ, + XED_ICLASS_VCVTTPD2UDQ, + XED_ICLASS_VCVTTPD2UQQ, + XED_ICLASS_VCVTTPS2DQ, + XED_ICLASS_VCVTTPS2QQ, + XED_ICLASS_VCVTTPS2UDQ, + XED_ICLASS_VCVTTPS2UQQ, + XED_ICLASS_VCVTTSD2SI, + XED_ICLASS_VCVTTSD2USI, + XED_ICLASS_VCVTTSS2SI, + XED_ICLASS_VCVTTSS2USI, + XED_ICLASS_VCVTUDQ2PD, + XED_ICLASS_VCVTUDQ2PS, + XED_ICLASS_VCVTUQQ2PD, + XED_ICLASS_VCVTUQQ2PS, + XED_ICLASS_VCVTUSI2SD, + XED_ICLASS_VCVTUSI2SS, + XED_ICLASS_VDBPSADBW, + XED_ICLASS_VDIVPD, + XED_ICLASS_VDIVPS, + XED_ICLASS_VDIVSD, + XED_ICLASS_VDIVSS, + XED_ICLASS_VDPPD, + XED_ICLASS_VDPPS, + XED_ICLASS_VERR, + XED_ICLASS_VERW, + XED_ICLASS_VEXP2PD, + XED_ICLASS_VEXP2PS, + XED_ICLASS_VEXPANDPD, + XED_ICLASS_VEXPANDPS, + XED_ICLASS_VEXTRACTF128, + XED_ICLASS_VEXTRACTF32X4, + XED_ICLASS_VEXTRACTF32X8, + XED_ICLASS_VEXTRACTF64X2, + XED_ICLASS_VEXTRACTF64X4, + XED_ICLASS_VEXTRACTI128, + XED_ICLASS_VEXTRACTI32X4, + XED_ICLASS_VEXTRACTI32X8, + XED_ICLASS_VEXTRACTI64X2, + XED_ICLASS_VEXTRACTI64X4, + XED_ICLASS_VEXTRACTPS, + XED_ICLASS_VFIXUPIMMPD, + XED_ICLASS_VFIXUPIMMPS, + XED_ICLASS_VFIXUPIMMSD, + XED_ICLASS_VFIXUPIMMSS, + XED_ICLASS_VFMADD132PD, + XED_ICLASS_VFMADD132PS, + XED_ICLASS_VFMADD132SD, + XED_ICLASS_VFMADD132SS, + XED_ICLASS_VFMADD213PD, + XED_ICLASS_VFMADD213PS, + XED_ICLASS_VFMADD213SD, + XED_ICLASS_VFMADD213SS, + XED_ICLASS_VFMADD231PD, + XED_ICLASS_VFMADD231PS, + XED_ICLASS_VFMADD231SD, + XED_ICLASS_VFMADD231SS, + XED_ICLASS_VFMADDPD, + XED_ICLASS_VFMADDPS, + XED_ICLASS_VFMADDSD, + XED_ICLASS_VFMADDSS, + XED_ICLASS_VFMADDSUB132PD, + XED_ICLASS_VFMADDSUB132PS, + XED_ICLASS_VFMADDSUB213PD, + XED_ICLASS_VFMADDSUB213PS, + XED_ICLASS_VFMADDSUB231PD, + XED_ICLASS_VFMADDSUB231PS, + XED_ICLASS_VFMADDSUBPD, + XED_ICLASS_VFMADDSUBPS, + XED_ICLASS_VFMSUB132PD, + XED_ICLASS_VFMSUB132PS, + XED_ICLASS_VFMSUB132SD, + XED_ICLASS_VFMSUB132SS, + XED_ICLASS_VFMSUB213PD, + XED_ICLASS_VFMSUB213PS, + XED_ICLASS_VFMSUB213SD, + XED_ICLASS_VFMSUB213SS, + XED_ICLASS_VFMSUB231PD, + XED_ICLASS_VFMSUB231PS, + XED_ICLASS_VFMSUB231SD, + XED_ICLASS_VFMSUB231SS, + XED_ICLASS_VFMSUBADD132PD, + XED_ICLASS_VFMSUBADD132PS, + XED_ICLASS_VFMSUBADD213PD, + XED_ICLASS_VFMSUBADD213PS, + XED_ICLASS_VFMSUBADD231PD, + XED_ICLASS_VFMSUBADD231PS, + XED_ICLASS_VFMSUBADDPD, + XED_ICLASS_VFMSUBADDPS, + XED_ICLASS_VFMSUBPD, + XED_ICLASS_VFMSUBPS, + XED_ICLASS_VFMSUBSD, + XED_ICLASS_VFMSUBSS, + XED_ICLASS_VFNMADD132PD, + XED_ICLASS_VFNMADD132PS, + XED_ICLASS_VFNMADD132SD, + XED_ICLASS_VFNMADD132SS, + XED_ICLASS_VFNMADD213PD, + XED_ICLASS_VFNMADD213PS, + XED_ICLASS_VFNMADD213SD, + XED_ICLASS_VFNMADD213SS, + XED_ICLASS_VFNMADD231PD, + XED_ICLASS_VFNMADD231PS, + XED_ICLASS_VFNMADD231SD, + XED_ICLASS_VFNMADD231SS, + XED_ICLASS_VFNMADDPD, + XED_ICLASS_VFNMADDPS, + XED_ICLASS_VFNMADDSD, + XED_ICLASS_VFNMADDSS, + XED_ICLASS_VFNMSUB132PD, + XED_ICLASS_VFNMSUB132PS, + XED_ICLASS_VFNMSUB132SD, + XED_ICLASS_VFNMSUB132SS, + XED_ICLASS_VFNMSUB213PD, + XED_ICLASS_VFNMSUB213PS, + XED_ICLASS_VFNMSUB213SD, + XED_ICLASS_VFNMSUB213SS, + XED_ICLASS_VFNMSUB231PD, + XED_ICLASS_VFNMSUB231PS, + XED_ICLASS_VFNMSUB231SD, + XED_ICLASS_VFNMSUB231SS, + XED_ICLASS_VFNMSUBPD, + XED_ICLASS_VFNMSUBPS, + XED_ICLASS_VFNMSUBSD, + XED_ICLASS_VFNMSUBSS, + XED_ICLASS_VFPCLASSPD, + XED_ICLASS_VFPCLASSPS, + XED_ICLASS_VFPCLASSSD, + XED_ICLASS_VFPCLASSSS, + XED_ICLASS_VFRCZPD, + XED_ICLASS_VFRCZPS, + XED_ICLASS_VFRCZSD, + XED_ICLASS_VFRCZSS, + XED_ICLASS_VGATHERDPD, + XED_ICLASS_VGATHERDPS, + XED_ICLASS_VGATHERPF0DPD, + XED_ICLASS_VGATHERPF0DPS, + XED_ICLASS_VGATHERPF0QPD, + XED_ICLASS_VGATHERPF0QPS, + XED_ICLASS_VGATHERPF1DPD, + XED_ICLASS_VGATHERPF1DPS, + XED_ICLASS_VGATHERPF1QPD, + XED_ICLASS_VGATHERPF1QPS, + XED_ICLASS_VGATHERQPD, + XED_ICLASS_VGATHERQPS, + XED_ICLASS_VGETEXPPD, + XED_ICLASS_VGETEXPPS, + XED_ICLASS_VGETEXPSD, + XED_ICLASS_VGETEXPSS, + XED_ICLASS_VGETMANTPD, + XED_ICLASS_VGETMANTPS, + XED_ICLASS_VGETMANTSD, + XED_ICLASS_VGETMANTSS, + XED_ICLASS_VHADDPD, + XED_ICLASS_VHADDPS, + XED_ICLASS_VHSUBPD, + XED_ICLASS_VHSUBPS, + XED_ICLASS_VINSERTF128, + XED_ICLASS_VINSERTF32X4, + XED_ICLASS_VINSERTF32X8, + XED_ICLASS_VINSERTF64X2, + XED_ICLASS_VINSERTF64X4, + XED_ICLASS_VINSERTI128, + XED_ICLASS_VINSERTI32X4, + XED_ICLASS_VINSERTI32X8, + XED_ICLASS_VINSERTI64X2, + XED_ICLASS_VINSERTI64X4, + XED_ICLASS_VINSERTPS, + XED_ICLASS_VLDDQU, + XED_ICLASS_VLDMXCSR, + XED_ICLASS_VMASKMOVDQU, + XED_ICLASS_VMASKMOVPD, + XED_ICLASS_VMASKMOVPS, + XED_ICLASS_VMAXPD, + XED_ICLASS_VMAXPS, + XED_ICLASS_VMAXSD, + XED_ICLASS_VMAXSS, + XED_ICLASS_VMCALL, + XED_ICLASS_VMCLEAR, + XED_ICLASS_VMFUNC, + XED_ICLASS_VMINPD, + XED_ICLASS_VMINPS, + XED_ICLASS_VMINSD, + XED_ICLASS_VMINSS, + XED_ICLASS_VMLAUNCH, + XED_ICLASS_VMLOAD, + XED_ICLASS_VMMCALL, + XED_ICLASS_VMOVAPD, + XED_ICLASS_VMOVAPS, + XED_ICLASS_VMOVD, + XED_ICLASS_VMOVDDUP, + XED_ICLASS_VMOVDQA, + XED_ICLASS_VMOVDQA32, + XED_ICLASS_VMOVDQA64, + XED_ICLASS_VMOVDQU, + XED_ICLASS_VMOVDQU16, + XED_ICLASS_VMOVDQU32, + XED_ICLASS_VMOVDQU64, + XED_ICLASS_VMOVDQU8, + XED_ICLASS_VMOVHLPS, + XED_ICLASS_VMOVHPD, + XED_ICLASS_VMOVHPS, + XED_ICLASS_VMOVLHPS, + XED_ICLASS_VMOVLPD, + XED_ICLASS_VMOVLPS, + XED_ICLASS_VMOVMSKPD, + XED_ICLASS_VMOVMSKPS, + XED_ICLASS_VMOVNTDQ, + XED_ICLASS_VMOVNTDQA, + XED_ICLASS_VMOVNTPD, + XED_ICLASS_VMOVNTPS, + XED_ICLASS_VMOVQ, + XED_ICLASS_VMOVSD, + XED_ICLASS_VMOVSHDUP, + XED_ICLASS_VMOVSLDUP, + XED_ICLASS_VMOVSS, + XED_ICLASS_VMOVUPD, + XED_ICLASS_VMOVUPS, + XED_ICLASS_VMPSADBW, + XED_ICLASS_VMPTRLD, + XED_ICLASS_VMPTRST, + XED_ICLASS_VMREAD, + XED_ICLASS_VMRESUME, + XED_ICLASS_VMRUN, + XED_ICLASS_VMSAVE, + XED_ICLASS_VMULPD, + XED_ICLASS_VMULPS, + XED_ICLASS_VMULSD, + XED_ICLASS_VMULSS, + XED_ICLASS_VMWRITE, + XED_ICLASS_VMXOFF, + XED_ICLASS_VMXON, + XED_ICLASS_VORPD, + XED_ICLASS_VORPS, + XED_ICLASS_VPABSB, + XED_ICLASS_VPABSD, + XED_ICLASS_VPABSQ, + XED_ICLASS_VPABSW, + XED_ICLASS_VPACKSSDW, + XED_ICLASS_VPACKSSWB, + XED_ICLASS_VPACKUSDW, + XED_ICLASS_VPACKUSWB, + XED_ICLASS_VPADDB, + XED_ICLASS_VPADDD, + XED_ICLASS_VPADDQ, + XED_ICLASS_VPADDSB, + XED_ICLASS_VPADDSW, + XED_ICLASS_VPADDUSB, + XED_ICLASS_VPADDUSW, + XED_ICLASS_VPADDW, + XED_ICLASS_VPALIGNR, + XED_ICLASS_VPAND, + XED_ICLASS_VPANDD, + XED_ICLASS_VPANDN, + XED_ICLASS_VPANDND, + XED_ICLASS_VPANDNQ, + XED_ICLASS_VPANDQ, + XED_ICLASS_VPAVGB, + XED_ICLASS_VPAVGW, + XED_ICLASS_VPBLENDD, + XED_ICLASS_VPBLENDMB, + XED_ICLASS_VPBLENDMD, + XED_ICLASS_VPBLENDMQ, + XED_ICLASS_VPBLENDMW, + XED_ICLASS_VPBLENDVB, + XED_ICLASS_VPBLENDW, + XED_ICLASS_VPBROADCASTB, + XED_ICLASS_VPBROADCASTD, + XED_ICLASS_VPBROADCASTMB2Q, + XED_ICLASS_VPBROADCASTMW2D, + XED_ICLASS_VPBROADCASTQ, + XED_ICLASS_VPBROADCASTW, + XED_ICLASS_VPCLMULQDQ, + XED_ICLASS_VPCMOV, + XED_ICLASS_VPCMPB, + XED_ICLASS_VPCMPD, + XED_ICLASS_VPCMPEQB, + XED_ICLASS_VPCMPEQD, + XED_ICLASS_VPCMPEQQ, + XED_ICLASS_VPCMPEQW, + XED_ICLASS_VPCMPESTRI, + XED_ICLASS_VPCMPESTRM, + XED_ICLASS_VPCMPGTB, + XED_ICLASS_VPCMPGTD, + XED_ICLASS_VPCMPGTQ, + XED_ICLASS_VPCMPGTW, + XED_ICLASS_VPCMPISTRI, + XED_ICLASS_VPCMPISTRM, + XED_ICLASS_VPCMPQ, + XED_ICLASS_VPCMPUB, + XED_ICLASS_VPCMPUD, + XED_ICLASS_VPCMPUQ, + XED_ICLASS_VPCMPUW, + XED_ICLASS_VPCMPW, + XED_ICLASS_VPCOMB, + XED_ICLASS_VPCOMD, + XED_ICLASS_VPCOMPRESSD, + XED_ICLASS_VPCOMPRESSQ, + XED_ICLASS_VPCOMQ, + XED_ICLASS_VPCOMUB, + XED_ICLASS_VPCOMUD, + XED_ICLASS_VPCOMUQ, + XED_ICLASS_VPCOMUW, + XED_ICLASS_VPCOMW, + XED_ICLASS_VPCONFLICTD, + XED_ICLASS_VPCONFLICTQ, + XED_ICLASS_VPERM2F128, + XED_ICLASS_VPERM2I128, + XED_ICLASS_VPERMB, + XED_ICLASS_VPERMD, + XED_ICLASS_VPERMI2B, + XED_ICLASS_VPERMI2D, + XED_ICLASS_VPERMI2PD, + XED_ICLASS_VPERMI2PS, + XED_ICLASS_VPERMI2Q, + XED_ICLASS_VPERMI2W, + XED_ICLASS_VPERMIL2PD, + XED_ICLASS_VPERMIL2PS, + XED_ICLASS_VPERMILPD, + XED_ICLASS_VPERMILPS, + XED_ICLASS_VPERMPD, + XED_ICLASS_VPERMPS, + XED_ICLASS_VPERMQ, + XED_ICLASS_VPERMT2B, + XED_ICLASS_VPERMT2D, + XED_ICLASS_VPERMT2PD, + XED_ICLASS_VPERMT2PS, + XED_ICLASS_VPERMT2Q, + XED_ICLASS_VPERMT2W, + XED_ICLASS_VPERMW, + XED_ICLASS_VPEXPANDD, + XED_ICLASS_VPEXPANDQ, + XED_ICLASS_VPEXTRB, + XED_ICLASS_VPEXTRD, + XED_ICLASS_VPEXTRQ, + XED_ICLASS_VPEXTRW, + XED_ICLASS_VPGATHERDD, + XED_ICLASS_VPGATHERDQ, + XED_ICLASS_VPGATHERQD, + XED_ICLASS_VPGATHERQQ, + XED_ICLASS_VPHADDBD, + XED_ICLASS_VPHADDBQ, + XED_ICLASS_VPHADDBW, + XED_ICLASS_VPHADDD, + XED_ICLASS_VPHADDDQ, + XED_ICLASS_VPHADDSW, + XED_ICLASS_VPHADDUBD, + XED_ICLASS_VPHADDUBQ, + XED_ICLASS_VPHADDUBW, + XED_ICLASS_VPHADDUDQ, + XED_ICLASS_VPHADDUWD, + XED_ICLASS_VPHADDUWQ, + XED_ICLASS_VPHADDW, + XED_ICLASS_VPHADDWD, + XED_ICLASS_VPHADDWQ, + XED_ICLASS_VPHMINPOSUW, + XED_ICLASS_VPHSUBBW, + XED_ICLASS_VPHSUBD, + XED_ICLASS_VPHSUBDQ, + XED_ICLASS_VPHSUBSW, + XED_ICLASS_VPHSUBW, + XED_ICLASS_VPHSUBWD, + XED_ICLASS_VPINSRB, + XED_ICLASS_VPINSRD, + XED_ICLASS_VPINSRQ, + XED_ICLASS_VPINSRW, + XED_ICLASS_VPLZCNTD, + XED_ICLASS_VPLZCNTQ, + XED_ICLASS_VPMACSDD, + XED_ICLASS_VPMACSDQH, + XED_ICLASS_VPMACSDQL, + XED_ICLASS_VPMACSSDD, + XED_ICLASS_VPMACSSDQH, + XED_ICLASS_VPMACSSDQL, + XED_ICLASS_VPMACSSWD, + XED_ICLASS_VPMACSSWW, + XED_ICLASS_VPMACSWD, + XED_ICLASS_VPMACSWW, + XED_ICLASS_VPMADCSSWD, + XED_ICLASS_VPMADCSWD, + XED_ICLASS_VPMADD52HUQ, + XED_ICLASS_VPMADD52LUQ, + XED_ICLASS_VPMADDUBSW, + XED_ICLASS_VPMADDWD, + XED_ICLASS_VPMASKMOVD, + XED_ICLASS_VPMASKMOVQ, + XED_ICLASS_VPMAXSB, + XED_ICLASS_VPMAXSD, + XED_ICLASS_VPMAXSQ, + XED_ICLASS_VPMAXSW, + XED_ICLASS_VPMAXUB, + XED_ICLASS_VPMAXUD, + XED_ICLASS_VPMAXUQ, + XED_ICLASS_VPMAXUW, + XED_ICLASS_VPMINSB, + XED_ICLASS_VPMINSD, + XED_ICLASS_VPMINSQ, + XED_ICLASS_VPMINSW, + XED_ICLASS_VPMINUB, + XED_ICLASS_VPMINUD, + XED_ICLASS_VPMINUQ, + XED_ICLASS_VPMINUW, + XED_ICLASS_VPMOVB2M, + XED_ICLASS_VPMOVD2M, + XED_ICLASS_VPMOVDB, + XED_ICLASS_VPMOVDW, + XED_ICLASS_VPMOVM2B, + XED_ICLASS_VPMOVM2D, + XED_ICLASS_VPMOVM2Q, + XED_ICLASS_VPMOVM2W, + XED_ICLASS_VPMOVMSKB, + XED_ICLASS_VPMOVQ2M, + XED_ICLASS_VPMOVQB, + XED_ICLASS_VPMOVQD, + XED_ICLASS_VPMOVQW, + XED_ICLASS_VPMOVSDB, + XED_ICLASS_VPMOVSDW, + XED_ICLASS_VPMOVSQB, + XED_ICLASS_VPMOVSQD, + XED_ICLASS_VPMOVSQW, + XED_ICLASS_VPMOVSWB, + XED_ICLASS_VPMOVSXBD, + XED_ICLASS_VPMOVSXBQ, + XED_ICLASS_VPMOVSXBW, + XED_ICLASS_VPMOVSXDQ, + XED_ICLASS_VPMOVSXWD, + XED_ICLASS_VPMOVSXWQ, + XED_ICLASS_VPMOVUSDB, + XED_ICLASS_VPMOVUSDW, + XED_ICLASS_VPMOVUSQB, + XED_ICLASS_VPMOVUSQD, + XED_ICLASS_VPMOVUSQW, + XED_ICLASS_VPMOVUSWB, + XED_ICLASS_VPMOVW2M, + XED_ICLASS_VPMOVWB, + XED_ICLASS_VPMOVZXBD, + XED_ICLASS_VPMOVZXBQ, + XED_ICLASS_VPMOVZXBW, + XED_ICLASS_VPMOVZXDQ, + XED_ICLASS_VPMOVZXWD, + XED_ICLASS_VPMOVZXWQ, + XED_ICLASS_VPMULDQ, + XED_ICLASS_VPMULHRSW, + XED_ICLASS_VPMULHUW, + XED_ICLASS_VPMULHW, + XED_ICLASS_VPMULLD, + XED_ICLASS_VPMULLQ, + XED_ICLASS_VPMULLW, + XED_ICLASS_VPMULTISHIFTQB, + XED_ICLASS_VPMULUDQ, + XED_ICLASS_VPOR, + XED_ICLASS_VPORD, + XED_ICLASS_VPORQ, + XED_ICLASS_VPPERM, + XED_ICLASS_VPROLD, + XED_ICLASS_VPROLQ, + XED_ICLASS_VPROLVD, + XED_ICLASS_VPROLVQ, + XED_ICLASS_VPRORD, + XED_ICLASS_VPRORQ, + XED_ICLASS_VPRORVD, + XED_ICLASS_VPRORVQ, + XED_ICLASS_VPROTB, + XED_ICLASS_VPROTD, + XED_ICLASS_VPROTQ, + XED_ICLASS_VPROTW, + XED_ICLASS_VPSADBW, + XED_ICLASS_VPSCATTERDD, + XED_ICLASS_VPSCATTERDQ, + XED_ICLASS_VPSCATTERQD, + XED_ICLASS_VPSCATTERQQ, + XED_ICLASS_VPSHAB, + XED_ICLASS_VPSHAD, + XED_ICLASS_VPSHAQ, + XED_ICLASS_VPSHAW, + XED_ICLASS_VPSHLB, + XED_ICLASS_VPSHLD, + XED_ICLASS_VPSHLQ, + XED_ICLASS_VPSHLW, + XED_ICLASS_VPSHUFB, + XED_ICLASS_VPSHUFD, + XED_ICLASS_VPSHUFHW, + XED_ICLASS_VPSHUFLW, + XED_ICLASS_VPSIGNB, + XED_ICLASS_VPSIGND, + XED_ICLASS_VPSIGNW, + XED_ICLASS_VPSLLD, + XED_ICLASS_VPSLLDQ, + XED_ICLASS_VPSLLQ, + XED_ICLASS_VPSLLVD, + XED_ICLASS_VPSLLVQ, + XED_ICLASS_VPSLLVW, + XED_ICLASS_VPSLLW, + XED_ICLASS_VPSRAD, + XED_ICLASS_VPSRAQ, + XED_ICLASS_VPSRAVD, + XED_ICLASS_VPSRAVQ, + XED_ICLASS_VPSRAVW, + XED_ICLASS_VPSRAW, + XED_ICLASS_VPSRLD, + XED_ICLASS_VPSRLDQ, + XED_ICLASS_VPSRLQ, + XED_ICLASS_VPSRLVD, + XED_ICLASS_VPSRLVQ, + XED_ICLASS_VPSRLVW, + XED_ICLASS_VPSRLW, + XED_ICLASS_VPSUBB, + XED_ICLASS_VPSUBD, + XED_ICLASS_VPSUBQ, + XED_ICLASS_VPSUBSB, + XED_ICLASS_VPSUBSW, + XED_ICLASS_VPSUBUSB, + XED_ICLASS_VPSUBUSW, + XED_ICLASS_VPSUBW, + XED_ICLASS_VPTERNLOGD, + XED_ICLASS_VPTERNLOGQ, + XED_ICLASS_VPTEST, + XED_ICLASS_VPTESTMB, + XED_ICLASS_VPTESTMD, + XED_ICLASS_VPTESTMQ, + XED_ICLASS_VPTESTMW, + XED_ICLASS_VPTESTNMB, + XED_ICLASS_VPTESTNMD, + XED_ICLASS_VPTESTNMQ, + XED_ICLASS_VPTESTNMW, + XED_ICLASS_VPUNPCKHBW, + XED_ICLASS_VPUNPCKHDQ, + XED_ICLASS_VPUNPCKHQDQ, + XED_ICLASS_VPUNPCKHWD, + XED_ICLASS_VPUNPCKLBW, + XED_ICLASS_VPUNPCKLDQ, + XED_ICLASS_VPUNPCKLQDQ, + XED_ICLASS_VPUNPCKLWD, + XED_ICLASS_VPXOR, + XED_ICLASS_VPXORD, + XED_ICLASS_VPXORQ, + XED_ICLASS_VRANGEPD, + XED_ICLASS_VRANGEPS, + XED_ICLASS_VRANGESD, + XED_ICLASS_VRANGESS, + XED_ICLASS_VRCP14PD, + XED_ICLASS_VRCP14PS, + XED_ICLASS_VRCP14SD, + XED_ICLASS_VRCP14SS, + XED_ICLASS_VRCP28PD, + XED_ICLASS_VRCP28PS, + XED_ICLASS_VRCP28SD, + XED_ICLASS_VRCP28SS, + XED_ICLASS_VRCPPS, + XED_ICLASS_VRCPSS, + XED_ICLASS_VREDUCEPD, + XED_ICLASS_VREDUCEPS, + XED_ICLASS_VREDUCESD, + XED_ICLASS_VREDUCESS, + XED_ICLASS_VRNDSCALEPD, + XED_ICLASS_VRNDSCALEPS, + XED_ICLASS_VRNDSCALESD, + XED_ICLASS_VRNDSCALESS, + XED_ICLASS_VROUNDPD, + XED_ICLASS_VROUNDPS, + XED_ICLASS_VROUNDSD, + XED_ICLASS_VROUNDSS, + XED_ICLASS_VRSQRT14PD, + XED_ICLASS_VRSQRT14PS, + XED_ICLASS_VRSQRT14SD, + XED_ICLASS_VRSQRT14SS, + XED_ICLASS_VRSQRT28PD, + XED_ICLASS_VRSQRT28PS, + XED_ICLASS_VRSQRT28SD, + XED_ICLASS_VRSQRT28SS, + XED_ICLASS_VRSQRTPS, + XED_ICLASS_VRSQRTSS, + XED_ICLASS_VSCALEFPD, + XED_ICLASS_VSCALEFPS, + XED_ICLASS_VSCALEFSD, + XED_ICLASS_VSCALEFSS, + XED_ICLASS_VSCATTERDPD, + XED_ICLASS_VSCATTERDPS, + XED_ICLASS_VSCATTERPF0DPD, + XED_ICLASS_VSCATTERPF0DPS, + XED_ICLASS_VSCATTERPF0QPD, + XED_ICLASS_VSCATTERPF0QPS, + XED_ICLASS_VSCATTERPF1DPD, + XED_ICLASS_VSCATTERPF1DPS, + XED_ICLASS_VSCATTERPF1QPD, + XED_ICLASS_VSCATTERPF1QPS, + XED_ICLASS_VSCATTERQPD, + XED_ICLASS_VSCATTERQPS, + XED_ICLASS_VSHUFF32X4, + XED_ICLASS_VSHUFF64X2, + XED_ICLASS_VSHUFI32X4, + XED_ICLASS_VSHUFI64X2, + XED_ICLASS_VSHUFPD, + XED_ICLASS_VSHUFPS, + XED_ICLASS_VSQRTPD, + XED_ICLASS_VSQRTPS, + XED_ICLASS_VSQRTSD, + XED_ICLASS_VSQRTSS, + XED_ICLASS_VSTMXCSR, + XED_ICLASS_VSUBPD, + XED_ICLASS_VSUBPS, + XED_ICLASS_VSUBSD, + XED_ICLASS_VSUBSS, + XED_ICLASS_VTESTPD, + XED_ICLASS_VTESTPS, + XED_ICLASS_VUCOMISD, + XED_ICLASS_VUCOMISS, + XED_ICLASS_VUNPCKHPD, + XED_ICLASS_VUNPCKHPS, + XED_ICLASS_VUNPCKLPD, + XED_ICLASS_VUNPCKLPS, + XED_ICLASS_VXORPD, + XED_ICLASS_VXORPS, + XED_ICLASS_VZEROALL, + XED_ICLASS_VZEROUPPER, + XED_ICLASS_WBINVD, + XED_ICLASS_WRFSBASE, + XED_ICLASS_WRGSBASE, + XED_ICLASS_WRMSR, + XED_ICLASS_XABORT, + XED_ICLASS_XADD, + XED_ICLASS_XADD_LOCK, + XED_ICLASS_XBEGIN, + XED_ICLASS_XCHG, + XED_ICLASS_XEND, + XED_ICLASS_XGETBV, + XED_ICLASS_XLAT, + XED_ICLASS_XOR, + XED_ICLASS_XORPD, + XED_ICLASS_XORPS, + XED_ICLASS_XOR_LOCK, + XED_ICLASS_XRSTOR, + XED_ICLASS_XRSTOR64, + XED_ICLASS_XRSTORS, + XED_ICLASS_XRSTORS64, + XED_ICLASS_XSAVE, + XED_ICLASS_XSAVE64, + XED_ICLASS_XSAVEC, + XED_ICLASS_XSAVEC64, + XED_ICLASS_XSAVEOPT, + XED_ICLASS_XSAVEOPT64, + XED_ICLASS_XSAVES, + XED_ICLASS_XSAVES64, + XED_ICLASS_XSETBV, + XED_ICLASS_XTEST, + XED_ICLASS_LAST +} xed_iclass_enum_t; + +/// This converts strings to #xed_iclass_enum_t types. +/// @param s A C-string. +/// @return #xed_iclass_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_iclass_enum_t str2xed_iclass_enum_t(const char* s); +/// This converts strings to #xed_iclass_enum_t types. +/// @param p An enumeration element of type xed_iclass_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_iclass_enum_t2str(const xed_iclass_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_iclass_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_iclass_enum_t xed_iclass_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-iform-enum.h b/third_party/xed-intel64/include/xed-iform-enum.h new file mode 100644 index 0000000..3d92cba --- /dev/null +++ b/third_party/xed-intel64/include/xed-iform-enum.h @@ -0,0 +1,6058 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-iform-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_IFORM_ENUM_H_) +# define _XED_IFORM_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" +typedef enum { + XED_IFORM_INVALID=0, + XED_IFORM_AAA=1, + XED_IFORM_AAD_IMMb=2, + XED_IFORM_AAM_IMMb=3, + XED_IFORM_AAS=4, + XED_IFORM_ADC_AL_IMMb=5, + XED_IFORM_ADC_GPR8_GPR8_10=6, + XED_IFORM_ADC_GPR8_GPR8_12=7, + XED_IFORM_ADC_GPR8_IMMb_80r2=8, + XED_IFORM_ADC_GPR8_IMMb_82r2=9, + XED_IFORM_ADC_GPR8_MEMb=10, + XED_IFORM_ADC_GPRv_GPRv_11=11, + XED_IFORM_ADC_GPRv_GPRv_13=12, + XED_IFORM_ADC_GPRv_IMMb=13, + XED_IFORM_ADC_GPRv_IMMz=14, + XED_IFORM_ADC_GPRv_MEMv=15, + XED_IFORM_ADC_MEMb_GPR8=16, + XED_IFORM_ADC_MEMb_IMMb_80r2=17, + XED_IFORM_ADC_MEMb_IMMb_82r2=18, + XED_IFORM_ADC_MEMv_GPRv=19, + XED_IFORM_ADC_MEMv_IMMb=20, + XED_IFORM_ADC_MEMv_IMMz=21, + XED_IFORM_ADC_OrAX_IMMz=22, + XED_IFORM_ADCX_GPR32d_GPR32d=23, + XED_IFORM_ADCX_GPR32d_MEMd=24, + XED_IFORM_ADCX_GPR64q_GPR64q=25, + XED_IFORM_ADCX_GPR64q_MEMq=26, + XED_IFORM_ADC_LOCK_MEMb_GPR8=27, + XED_IFORM_ADC_LOCK_MEMb_IMMb_80r2=28, + XED_IFORM_ADC_LOCK_MEMb_IMMb_82r2=29, + XED_IFORM_ADC_LOCK_MEMv_GPRv=30, + XED_IFORM_ADC_LOCK_MEMv_IMMb=31, + XED_IFORM_ADC_LOCK_MEMv_IMMz=32, + XED_IFORM_ADD_AL_IMMb=33, + XED_IFORM_ADD_GPR8_GPR8_00=34, + XED_IFORM_ADD_GPR8_GPR8_02=35, + XED_IFORM_ADD_GPR8_IMMb_80r0=36, + XED_IFORM_ADD_GPR8_IMMb_82r0=37, + XED_IFORM_ADD_GPR8_MEMb=38, + XED_IFORM_ADD_GPRv_GPRv_01=39, + XED_IFORM_ADD_GPRv_GPRv_03=40, + XED_IFORM_ADD_GPRv_IMMb=41, + XED_IFORM_ADD_GPRv_IMMz=42, + XED_IFORM_ADD_GPRv_MEMv=43, + XED_IFORM_ADD_MEMb_GPR8=44, + XED_IFORM_ADD_MEMb_IMMb_80r0=45, + XED_IFORM_ADD_MEMb_IMMb_82r0=46, + XED_IFORM_ADD_MEMv_GPRv=47, + XED_IFORM_ADD_MEMv_IMMb=48, + XED_IFORM_ADD_MEMv_IMMz=49, + XED_IFORM_ADD_OrAX_IMMz=50, + XED_IFORM_ADDPD_XMMpd_MEMpd=51, + XED_IFORM_ADDPD_XMMpd_XMMpd=52, + XED_IFORM_ADDPS_XMMps_MEMps=53, + XED_IFORM_ADDPS_XMMps_XMMps=54, + XED_IFORM_ADDSD_XMMsd_MEMsd=55, + XED_IFORM_ADDSD_XMMsd_XMMsd=56, + XED_IFORM_ADDSS_XMMss_MEMss=57, + XED_IFORM_ADDSS_XMMss_XMMss=58, + XED_IFORM_ADDSUBPD_XMMpd_MEMpd=59, + XED_IFORM_ADDSUBPD_XMMpd_XMMpd=60, + XED_IFORM_ADDSUBPS_XMMps_MEMps=61, + XED_IFORM_ADDSUBPS_XMMps_XMMps=62, + XED_IFORM_ADD_LOCK_MEMb_GPR8=63, + XED_IFORM_ADD_LOCK_MEMb_IMMb_80r0=64, + XED_IFORM_ADD_LOCK_MEMb_IMMb_82r0=65, + XED_IFORM_ADD_LOCK_MEMv_GPRv=66, + XED_IFORM_ADD_LOCK_MEMv_IMMb=67, + XED_IFORM_ADD_LOCK_MEMv_IMMz=68, + XED_IFORM_ADOX_GPR32d_GPR32d=69, + XED_IFORM_ADOX_GPR32d_MEMd=70, + XED_IFORM_ADOX_GPR64q_GPR64q=71, + XED_IFORM_ADOX_GPR64q_MEMq=72, + XED_IFORM_AESDEC_XMMdq_MEMdq=73, + XED_IFORM_AESDEC_XMMdq_XMMdq=74, + XED_IFORM_AESDECLAST_XMMdq_MEMdq=75, + XED_IFORM_AESDECLAST_XMMdq_XMMdq=76, + XED_IFORM_AESENC_XMMdq_MEMdq=77, + XED_IFORM_AESENC_XMMdq_XMMdq=78, + XED_IFORM_AESENCLAST_XMMdq_MEMdq=79, + XED_IFORM_AESENCLAST_XMMdq_XMMdq=80, + XED_IFORM_AESIMC_XMMdq_MEMdq=81, + XED_IFORM_AESIMC_XMMdq_XMMdq=82, + XED_IFORM_AESKEYGENASSIST_XMMdq_MEMdq_IMMb=83, + XED_IFORM_AESKEYGENASSIST_XMMdq_XMMdq_IMMb=84, + XED_IFORM_AND_AL_IMMb=85, + XED_IFORM_AND_GPR8_GPR8_20=86, + XED_IFORM_AND_GPR8_GPR8_22=87, + XED_IFORM_AND_GPR8_IMMb_80r4=88, + XED_IFORM_AND_GPR8_IMMb_82r4=89, + XED_IFORM_AND_GPR8_MEMb=90, + XED_IFORM_AND_GPRv_GPRv_21=91, + XED_IFORM_AND_GPRv_GPRv_23=92, + XED_IFORM_AND_GPRv_IMMb=93, + XED_IFORM_AND_GPRv_IMMz=94, + XED_IFORM_AND_GPRv_MEMv=95, + XED_IFORM_AND_MEMb_GPR8=96, + XED_IFORM_AND_MEMb_IMMb_80r4=97, + XED_IFORM_AND_MEMb_IMMb_82r4=98, + XED_IFORM_AND_MEMv_GPRv=99, + XED_IFORM_AND_MEMv_IMMb=100, + XED_IFORM_AND_MEMv_IMMz=101, + XED_IFORM_AND_OrAX_IMMz=102, + XED_IFORM_ANDN_VGPR32d_VGPR32d_MEMd=103, + XED_IFORM_ANDN_VGPR32d_VGPR32d_VGPR32d=104, + XED_IFORM_ANDN_VGPR64q_VGPR64q_MEMq=105, + XED_IFORM_ANDN_VGPR64q_VGPR64q_VGPR64q=106, + XED_IFORM_ANDNPD_XMMpd_MEMpd=107, + XED_IFORM_ANDNPD_XMMpd_XMMpd=108, + XED_IFORM_ANDNPS_XMMps_MEMps=109, + XED_IFORM_ANDNPS_XMMps_XMMps=110, + XED_IFORM_ANDPD_XMMpd_MEMpd=111, + XED_IFORM_ANDPD_XMMpd_XMMpd=112, + XED_IFORM_ANDPS_XMMps_MEMps=113, + XED_IFORM_ANDPS_XMMps_XMMps=114, + XED_IFORM_AND_LOCK_MEMb_GPR8=115, + XED_IFORM_AND_LOCK_MEMb_IMMb_80r4=116, + XED_IFORM_AND_LOCK_MEMb_IMMb_82r4=117, + XED_IFORM_AND_LOCK_MEMv_GPRv=118, + XED_IFORM_AND_LOCK_MEMv_IMMb=119, + XED_IFORM_AND_LOCK_MEMv_IMMz=120, + XED_IFORM_ARPL_GPR16_GPR16=121, + XED_IFORM_ARPL_MEMw_GPR16=122, + XED_IFORM_BEXTR_VGPR32d_MEMd_VGPR32d=123, + XED_IFORM_BEXTR_VGPR32d_VGPR32d_VGPR32d=124, + XED_IFORM_BEXTR_VGPR64q_MEMq_VGPR64q=125, + XED_IFORM_BEXTR_VGPR64q_VGPR64q_VGPR64q=126, + XED_IFORM_BEXTR_XOP_GPRyy_GPRyy_IMMd=127, + XED_IFORM_BEXTR_XOP_GPRyy_MEMy_IMMd=128, + XED_IFORM_BLCFILL_GPRyy_GPRvy=129, + XED_IFORM_BLCFILL_GPRyy_MEMy=130, + XED_IFORM_BLCI_GPRyy_GPRvy=131, + XED_IFORM_BLCI_GPRyy_MEMy=132, + XED_IFORM_BLCIC_GPRyy_GPRvy=133, + XED_IFORM_BLCIC_GPRyy_MEMy=134, + XED_IFORM_BLCMSK_GPRyy_GPRvy=135, + XED_IFORM_BLCMSK_GPRyy_MEMy=136, + XED_IFORM_BLCS_GPRyy_GPRvy=137, + XED_IFORM_BLCS_GPRyy_MEMy=138, + XED_IFORM_BLENDPD_XMMdq_MEMdq_IMMb=139, + XED_IFORM_BLENDPD_XMMdq_XMMdq_IMMb=140, + XED_IFORM_BLENDPS_XMMdq_MEMdq_IMMb=141, + XED_IFORM_BLENDPS_XMMdq_XMMdq_IMMb=142, + XED_IFORM_BLENDVPD_XMMdq_MEMdq=143, + XED_IFORM_BLENDVPD_XMMdq_XMMdq=144, + XED_IFORM_BLENDVPS_XMMdq_MEMdq=145, + XED_IFORM_BLENDVPS_XMMdq_XMMdq=146, + XED_IFORM_BLSFILL_GPRyy_GPRvy=147, + XED_IFORM_BLSFILL_GPRyy_MEMy=148, + XED_IFORM_BLSI_VGPR32d_MEMd=149, + XED_IFORM_BLSI_VGPR32d_VGPR32d=150, + XED_IFORM_BLSI_VGPR64q_MEMq=151, + XED_IFORM_BLSI_VGPR64q_VGPR64q=152, + XED_IFORM_BLSIC_GPRyy_GPRvy=153, + XED_IFORM_BLSIC_GPRyy_MEMy=154, + XED_IFORM_BLSMSK_VGPR32d_MEMd=155, + XED_IFORM_BLSMSK_VGPR32d_VGPR32d=156, + XED_IFORM_BLSMSK_VGPR64q_MEMq=157, + XED_IFORM_BLSMSK_VGPR64q_VGPR64q=158, + XED_IFORM_BLSR_VGPR32d_MEMd=159, + XED_IFORM_BLSR_VGPR32d_VGPR32d=160, + XED_IFORM_BLSR_VGPR64q_MEMq=161, + XED_IFORM_BLSR_VGPR64q_VGPR64q=162, + XED_IFORM_BNDCL_BND_AGEN=163, + XED_IFORM_BNDCL_BND_GPR32=164, + XED_IFORM_BNDCL_BND_GPR64=165, + XED_IFORM_BNDCN_BND_AGEN=166, + XED_IFORM_BNDCN_BND_GPR32=167, + XED_IFORM_BNDCN_BND_GPR64=168, + XED_IFORM_BNDCU_BND_AGEN=169, + XED_IFORM_BNDCU_BND_GPR32=170, + XED_IFORM_BNDCU_BND_GPR64=171, + XED_IFORM_BNDLDX_BND_MEMbnd32=172, + XED_IFORM_BNDLDX_BND_MEMbnd64=173, + XED_IFORM_BNDMK_BND_AGEN=174, + XED_IFORM_BNDMOV_BND_BND=175, + XED_IFORM_BNDMOV_BND_MEMdq=176, + XED_IFORM_BNDMOV_BND_MEMq=177, + XED_IFORM_BNDMOV_MEMdq_BND=178, + XED_IFORM_BNDMOV_MEMq_BND=179, + XED_IFORM_BNDSTX_MEMbnd32_BND=180, + XED_IFORM_BNDSTX_MEMbnd64_BND=181, + XED_IFORM_BOUND_GPRv_MEMa16=182, + XED_IFORM_BOUND_GPRv_MEMa32=183, + XED_IFORM_BSF_GPRv_GPRv=184, + XED_IFORM_BSF_GPRv_MEMv=185, + XED_IFORM_BSR_GPRv_GPRv=186, + XED_IFORM_BSR_GPRv_MEMv=187, + XED_IFORM_BSWAP_GPRv=188, + XED_IFORM_BT_GPRv_GPRv=189, + XED_IFORM_BT_GPRv_IMMb=190, + XED_IFORM_BT_MEMv_GPRv=191, + XED_IFORM_BT_MEMv_IMMb=192, + XED_IFORM_BTC_GPRv_GPRv=193, + XED_IFORM_BTC_GPRv_IMMb=194, + XED_IFORM_BTC_MEMv_GPRv=195, + XED_IFORM_BTC_MEMv_IMMb=196, + XED_IFORM_BTC_LOCK_MEMv_GPRv=197, + XED_IFORM_BTC_LOCK_MEMv_IMMb=198, + XED_IFORM_BTR_GPRv_GPRv=199, + XED_IFORM_BTR_GPRv_IMMb=200, + XED_IFORM_BTR_MEMv_GPRv=201, + XED_IFORM_BTR_MEMv_IMMb=202, + XED_IFORM_BTR_LOCK_MEMv_GPRv=203, + XED_IFORM_BTR_LOCK_MEMv_IMMb=204, + XED_IFORM_BTS_GPRv_GPRv=205, + XED_IFORM_BTS_GPRv_IMMb=206, + XED_IFORM_BTS_MEMv_GPRv=207, + XED_IFORM_BTS_MEMv_IMMb=208, + XED_IFORM_BTS_LOCK_MEMv_GPRv=209, + XED_IFORM_BTS_LOCK_MEMv_IMMb=210, + XED_IFORM_BZHI_VGPR32d_MEMd_VGPR32d=211, + XED_IFORM_BZHI_VGPR32d_VGPR32d_VGPR32d=212, + XED_IFORM_BZHI_VGPR64q_MEMq_VGPR64q=213, + XED_IFORM_BZHI_VGPR64q_VGPR64q_VGPR64q=214, + XED_IFORM_CALL_FAR_MEMp2=215, + XED_IFORM_CALL_FAR_PTRp_IMMw=216, + XED_IFORM_CALL_NEAR_GPRv=217, + XED_IFORM_CALL_NEAR_MEMv=218, + XED_IFORM_CALL_NEAR_RELBRd=219, + XED_IFORM_CALL_NEAR_RELBRz=220, + XED_IFORM_CBW=221, + XED_IFORM_CDQ=222, + XED_IFORM_CDQE=223, + XED_IFORM_CLAC=224, + XED_IFORM_CLC=225, + XED_IFORM_CLD=226, + XED_IFORM_CLFLUSH_MEMmprefetch=227, + XED_IFORM_CLFLUSHOPT_MEMmprefetch=228, + XED_IFORM_CLGI=229, + XED_IFORM_CLI=230, + XED_IFORM_CLTS=231, + XED_IFORM_CLWB_MEMmprefetch=232, + XED_IFORM_CMC=233, + XED_IFORM_CMOVB_GPRv_GPRv=234, + XED_IFORM_CMOVB_GPRv_MEMv=235, + XED_IFORM_CMOVBE_GPRv_GPRv=236, + XED_IFORM_CMOVBE_GPRv_MEMv=237, + XED_IFORM_CMOVL_GPRv_GPRv=238, + XED_IFORM_CMOVL_GPRv_MEMv=239, + XED_IFORM_CMOVLE_GPRv_GPRv=240, + XED_IFORM_CMOVLE_GPRv_MEMv=241, + XED_IFORM_CMOVNB_GPRv_GPRv=242, + XED_IFORM_CMOVNB_GPRv_MEMv=243, + XED_IFORM_CMOVNBE_GPRv_GPRv=244, + XED_IFORM_CMOVNBE_GPRv_MEMv=245, + XED_IFORM_CMOVNL_GPRv_GPRv=246, + XED_IFORM_CMOVNL_GPRv_MEMv=247, + XED_IFORM_CMOVNLE_GPRv_GPRv=248, + XED_IFORM_CMOVNLE_GPRv_MEMv=249, + XED_IFORM_CMOVNO_GPRv_GPRv=250, + XED_IFORM_CMOVNO_GPRv_MEMv=251, + XED_IFORM_CMOVNP_GPRv_GPRv=252, + XED_IFORM_CMOVNP_GPRv_MEMv=253, + XED_IFORM_CMOVNS_GPRv_GPRv=254, + XED_IFORM_CMOVNS_GPRv_MEMv=255, + XED_IFORM_CMOVNZ_GPRv_GPRv=256, + XED_IFORM_CMOVNZ_GPRv_MEMv=257, + XED_IFORM_CMOVO_GPRv_GPRv=258, + XED_IFORM_CMOVO_GPRv_MEMv=259, + XED_IFORM_CMOVP_GPRv_GPRv=260, + XED_IFORM_CMOVP_GPRv_MEMv=261, + XED_IFORM_CMOVS_GPRv_GPRv=262, + XED_IFORM_CMOVS_GPRv_MEMv=263, + XED_IFORM_CMOVZ_GPRv_GPRv=264, + XED_IFORM_CMOVZ_GPRv_MEMv=265, + XED_IFORM_CMP_AL_IMMb=266, + XED_IFORM_CMP_GPR8_GPR8_38=267, + XED_IFORM_CMP_GPR8_GPR8_3A=268, + XED_IFORM_CMP_GPR8_IMMb_80r7=269, + XED_IFORM_CMP_GPR8_IMMb_82r7=270, + XED_IFORM_CMP_GPR8_MEMb=271, + XED_IFORM_CMP_GPRv_GPRv_39=272, + XED_IFORM_CMP_GPRv_GPRv_3B=273, + XED_IFORM_CMP_GPRv_IMMb=274, + XED_IFORM_CMP_GPRv_IMMz=275, + XED_IFORM_CMP_GPRv_MEMv=276, + XED_IFORM_CMP_MEMb_GPR8=277, + XED_IFORM_CMP_MEMb_IMMb_80r7=278, + XED_IFORM_CMP_MEMb_IMMb_82r7=279, + XED_IFORM_CMP_MEMv_GPRv=280, + XED_IFORM_CMP_MEMv_IMMb=281, + XED_IFORM_CMP_MEMv_IMMz=282, + XED_IFORM_CMP_OrAX_IMMz=283, + XED_IFORM_CMPPD_XMMpd_MEMpd_IMMb=284, + XED_IFORM_CMPPD_XMMpd_XMMpd_IMMb=285, + XED_IFORM_CMPPS_XMMps_MEMps_IMMb=286, + XED_IFORM_CMPPS_XMMps_XMMps_IMMb=287, + XED_IFORM_CMPSB=288, + XED_IFORM_CMPSD=289, + XED_IFORM_CMPSD_XMM_XMMsd_MEMsd_IMMb=290, + XED_IFORM_CMPSD_XMM_XMMsd_XMMsd_IMMb=291, + XED_IFORM_CMPSQ=292, + XED_IFORM_CMPSS_XMMss_MEMss_IMMb=293, + XED_IFORM_CMPSS_XMMss_XMMss_IMMb=294, + XED_IFORM_CMPSW=295, + XED_IFORM_CMPXCHG_GPR8_GPR8=296, + XED_IFORM_CMPXCHG_GPRv_GPRv=297, + XED_IFORM_CMPXCHG_MEMb_GPR8=298, + XED_IFORM_CMPXCHG_MEMv_GPRv=299, + XED_IFORM_CMPXCHG16B_MEMdq=300, + XED_IFORM_CMPXCHG16B_LOCK_MEMdq=301, + XED_IFORM_CMPXCHG8B_MEMq=302, + XED_IFORM_CMPXCHG8B_LOCK_MEMq=303, + XED_IFORM_CMPXCHG_LOCK_MEMb_GPR8=304, + XED_IFORM_CMPXCHG_LOCK_MEMv_GPRv=305, + XED_IFORM_COMISD_XMMsd_MEMsd=306, + XED_IFORM_COMISD_XMMsd_XMMsd=307, + XED_IFORM_COMISS_XMMss_MEMss=308, + XED_IFORM_COMISS_XMMss_XMMss=309, + XED_IFORM_CPUID=310, + XED_IFORM_CQO=311, + XED_IFORM_CRC32_GPRyy_GPR8b=312, + XED_IFORM_CRC32_GPRyy_GPRv=313, + XED_IFORM_CRC32_GPRyy_MEMb=314, + XED_IFORM_CRC32_GPRyy_MEMv=315, + XED_IFORM_CVTDQ2PD_XMMpd_MEMq=316, + XED_IFORM_CVTDQ2PD_XMMpd_XMMq=317, + XED_IFORM_CVTDQ2PS_XMMps_MEMdq=318, + XED_IFORM_CVTDQ2PS_XMMps_XMMdq=319, + XED_IFORM_CVTPD2DQ_XMMdq_MEMpd=320, + XED_IFORM_CVTPD2DQ_XMMdq_XMMpd=321, + XED_IFORM_CVTPD2PI_MMXq_MEMpd=322, + XED_IFORM_CVTPD2PI_MMXq_XMMpd=323, + XED_IFORM_CVTPD2PS_XMMps_MEMpd=324, + XED_IFORM_CVTPD2PS_XMMps_XMMpd=325, + XED_IFORM_CVTPI2PD_XMMpd_MEMq=326, + XED_IFORM_CVTPI2PD_XMMpd_MMXq=327, + XED_IFORM_CVTPI2PS_XMMq_MEMq=328, + XED_IFORM_CVTPI2PS_XMMq_MMXq=329, + XED_IFORM_CVTPS2DQ_XMMdq_MEMps=330, + XED_IFORM_CVTPS2DQ_XMMdq_XMMps=331, + XED_IFORM_CVTPS2PD_XMMpd_MEMq=332, + XED_IFORM_CVTPS2PD_XMMpd_XMMq=333, + XED_IFORM_CVTPS2PI_MMXq_MEMq=334, + XED_IFORM_CVTPS2PI_MMXq_XMMq=335, + XED_IFORM_CVTSD2SI_GPR32d_MEMsd=336, + XED_IFORM_CVTSD2SI_GPR32d_XMMsd=337, + XED_IFORM_CVTSD2SI_GPR64q_MEMsd=338, + XED_IFORM_CVTSD2SI_GPR64q_XMMsd=339, + XED_IFORM_CVTSD2SS_XMMss_MEMsd=340, + XED_IFORM_CVTSD2SS_XMMss_XMMsd=341, + XED_IFORM_CVTSI2SD_XMMsd_GPR32d=342, + XED_IFORM_CVTSI2SD_XMMsd_GPR64q=343, + XED_IFORM_CVTSI2SD_XMMsd_MEMd=344, + XED_IFORM_CVTSI2SD_XMMsd_MEMq=345, + XED_IFORM_CVTSI2SS_XMMss_GPR32d=346, + XED_IFORM_CVTSI2SS_XMMss_GPR64q=347, + XED_IFORM_CVTSI2SS_XMMss_MEMd=348, + XED_IFORM_CVTSI2SS_XMMss_MEMq=349, + XED_IFORM_CVTSS2SD_XMMsd_MEMss=350, + XED_IFORM_CVTSS2SD_XMMsd_XMMss=351, + XED_IFORM_CVTSS2SI_GPR32d_MEMss=352, + XED_IFORM_CVTSS2SI_GPR32d_XMMss=353, + XED_IFORM_CVTSS2SI_GPR64q_MEMss=354, + XED_IFORM_CVTSS2SI_GPR64q_XMMss=355, + XED_IFORM_CVTTPD2DQ_XMMdq_MEMpd=356, + XED_IFORM_CVTTPD2DQ_XMMdq_XMMpd=357, + XED_IFORM_CVTTPD2PI_MMXq_MEMpd=358, + XED_IFORM_CVTTPD2PI_MMXq_XMMpd=359, + XED_IFORM_CVTTPS2DQ_XMMdq_MEMps=360, + XED_IFORM_CVTTPS2DQ_XMMdq_XMMps=361, + XED_IFORM_CVTTPS2PI_MMXq_MEMq=362, + XED_IFORM_CVTTPS2PI_MMXq_XMMq=363, + XED_IFORM_CVTTSD2SI_GPR32d_MEMsd=364, + XED_IFORM_CVTTSD2SI_GPR32d_XMMsd=365, + XED_IFORM_CVTTSD2SI_GPR64q_MEMsd=366, + XED_IFORM_CVTTSD2SI_GPR64q_XMMsd=367, + XED_IFORM_CVTTSS2SI_GPR32d_MEMss=368, + XED_IFORM_CVTTSS2SI_GPR32d_XMMss=369, + XED_IFORM_CVTTSS2SI_GPR64q_MEMss=370, + XED_IFORM_CVTTSS2SI_GPR64q_XMMss=371, + XED_IFORM_CWD=372, + XED_IFORM_CWDE=373, + XED_IFORM_DAA=374, + XED_IFORM_DAS=375, + XED_IFORM_DEC_GPR8=376, + XED_IFORM_DEC_GPRv_48=377, + XED_IFORM_DEC_GPRv_FFr1=378, + XED_IFORM_DEC_MEMb=379, + XED_IFORM_DEC_MEMv=380, + XED_IFORM_DEC_LOCK_MEMb=381, + XED_IFORM_DEC_LOCK_MEMv=382, + XED_IFORM_DIV_GPR8=383, + XED_IFORM_DIV_GPRv=384, + XED_IFORM_DIV_MEMb=385, + XED_IFORM_DIV_MEMv=386, + XED_IFORM_DIVPD_XMMpd_MEMpd=387, + XED_IFORM_DIVPD_XMMpd_XMMpd=388, + XED_IFORM_DIVPS_XMMps_MEMps=389, + XED_IFORM_DIVPS_XMMps_XMMps=390, + XED_IFORM_DIVSD_XMMsd_MEMsd=391, + XED_IFORM_DIVSD_XMMsd_XMMsd=392, + XED_IFORM_DIVSS_XMMss_MEMss=393, + XED_IFORM_DIVSS_XMMss_XMMss=394, + XED_IFORM_DPPD_XMMdq_MEMdq_IMMb=395, + XED_IFORM_DPPD_XMMdq_XMMdq_IMMb=396, + XED_IFORM_DPPS_XMMdq_MEMdq_IMMb=397, + XED_IFORM_DPPS_XMMdq_XMMdq_IMMb=398, + XED_IFORM_EMMS=399, + XED_IFORM_ENCLS_EAX_RBX_RCX_RDX=400, + XED_IFORM_ENCLU_EAX_RBX_RCX_RDX=401, + XED_IFORM_ENTER_IMMw_IMMb=402, + XED_IFORM_EXTRACTPS_GPR32d_XMMdq_IMMb=403, + XED_IFORM_EXTRACTPS_MEMd_XMMps_IMMb=404, + XED_IFORM_EXTRQ_XMMq_IMMb_IMMb=405, + XED_IFORM_EXTRQ_XMMq_XMMdq=406, + XED_IFORM_F2XM1_ST0=407, + XED_IFORM_FABS_ST0=408, + XED_IFORM_FADD_ST0_MEMm64real=409, + XED_IFORM_FADD_ST0_MEMmem32real=410, + XED_IFORM_FADD_ST0_X87=411, + XED_IFORM_FADD_X87_ST0=412, + XED_IFORM_FADDP_X87_ST0=413, + XED_IFORM_FBLD_ST0_MEMmem80dec=414, + XED_IFORM_FBSTP_MEMmem80dec_ST0=415, + XED_IFORM_FCHS_ST0=416, + XED_IFORM_FCMOVB_ST0_X87=417, + XED_IFORM_FCMOVBE_ST0_X87=418, + XED_IFORM_FCMOVE_ST0_X87=419, + XED_IFORM_FCMOVNB_ST0_X87=420, + XED_IFORM_FCMOVNBE_ST0_X87=421, + XED_IFORM_FCMOVNE_ST0_X87=422, + XED_IFORM_FCMOVNU_ST0_X87=423, + XED_IFORM_FCMOVU_ST0_X87=424, + XED_IFORM_FCOM_ST0_MEMm64real=425, + XED_IFORM_FCOM_ST0_MEMmem32real=426, + XED_IFORM_FCOM_ST0_X87=427, + XED_IFORM_FCOM_ST0_X87_DCD0=428, + XED_IFORM_FCOMI_ST0_X87=429, + XED_IFORM_FCOMIP_ST0_X87=430, + XED_IFORM_FCOMP_ST0_MEMm64real=431, + XED_IFORM_FCOMP_ST0_MEMmem32real=432, + XED_IFORM_FCOMP_ST0_X87=433, + XED_IFORM_FCOMP_ST0_X87_DCD1=434, + XED_IFORM_FCOMP_ST0_X87_DED0=435, + XED_IFORM_FCOMPP_ST0_ST1=436, + XED_IFORM_FCOS_ST0=437, + XED_IFORM_FDECSTP=438, + XED_IFORM_FDISI8087_NOP=439, + XED_IFORM_FDIV_ST0_MEMm64real=440, + XED_IFORM_FDIV_ST0_MEMmem32real=441, + XED_IFORM_FDIV_ST0_X87=442, + XED_IFORM_FDIV_X87_ST0=443, + XED_IFORM_FDIVP_X87_ST0=444, + XED_IFORM_FDIVR_ST0_MEMm64real=445, + XED_IFORM_FDIVR_ST0_MEMmem32real=446, + XED_IFORM_FDIVR_ST0_X87=447, + XED_IFORM_FDIVR_X87_ST0=448, + XED_IFORM_FDIVRP_X87_ST0=449, + XED_IFORM_FEMMS=450, + XED_IFORM_FENI8087_NOP=451, + XED_IFORM_FFREE_X87=452, + XED_IFORM_FFREEP_X87=453, + XED_IFORM_FIADD_ST0_MEMmem16int=454, + XED_IFORM_FIADD_ST0_MEMmem32int=455, + XED_IFORM_FICOM_ST0_MEMmem16int=456, + XED_IFORM_FICOM_ST0_MEMmem32int=457, + XED_IFORM_FICOMP_ST0_MEMmem16int=458, + XED_IFORM_FICOMP_ST0_MEMmem32int=459, + XED_IFORM_FIDIV_ST0_MEMmem16int=460, + XED_IFORM_FIDIV_ST0_MEMmem32int=461, + XED_IFORM_FIDIVR_ST0_MEMmem16int=462, + XED_IFORM_FIDIVR_ST0_MEMmem32int=463, + XED_IFORM_FILD_ST0_MEMm64int=464, + XED_IFORM_FILD_ST0_MEMmem16int=465, + XED_IFORM_FILD_ST0_MEMmem32int=466, + XED_IFORM_FIMUL_ST0_MEMmem16int=467, + XED_IFORM_FIMUL_ST0_MEMmem32int=468, + XED_IFORM_FINCSTP=469, + XED_IFORM_FIST_MEMmem16int_ST0=470, + XED_IFORM_FIST_MEMmem32int_ST0=471, + XED_IFORM_FISTP_MEMm64int_ST0=472, + XED_IFORM_FISTP_MEMmem16int_ST0=473, + XED_IFORM_FISTP_MEMmem32int_ST0=474, + XED_IFORM_FISTTP_MEMm64int_ST0=475, + XED_IFORM_FISTTP_MEMmem16int_ST0=476, + XED_IFORM_FISTTP_MEMmem32int_ST0=477, + XED_IFORM_FISUB_ST0_MEMmem16int=478, + XED_IFORM_FISUB_ST0_MEMmem32int=479, + XED_IFORM_FISUBR_ST0_MEMmem16int=480, + XED_IFORM_FISUBR_ST0_MEMmem32int=481, + XED_IFORM_FLD_ST0_MEMm64real=482, + XED_IFORM_FLD_ST0_MEMmem32real=483, + XED_IFORM_FLD_ST0_MEMmem80real=484, + XED_IFORM_FLD_ST0_X87=485, + XED_IFORM_FLD1_ST0=486, + XED_IFORM_FLDCW_MEMmem16=487, + XED_IFORM_FLDENV_MEMmem14=488, + XED_IFORM_FLDENV_MEMmem28=489, + XED_IFORM_FLDL2E_ST0=490, + XED_IFORM_FLDL2T_ST0=491, + XED_IFORM_FLDLG2_ST0=492, + XED_IFORM_FLDLN2_ST0=493, + XED_IFORM_FLDPI_ST0=494, + XED_IFORM_FLDZ_ST0=495, + XED_IFORM_FMUL_ST0_MEMm64real=496, + XED_IFORM_FMUL_ST0_MEMmem32real=497, + XED_IFORM_FMUL_ST0_X87=498, + XED_IFORM_FMUL_X87_ST0=499, + XED_IFORM_FMULP_X87_ST0=500, + XED_IFORM_FNCLEX=501, + XED_IFORM_FNINIT=502, + XED_IFORM_FNOP=503, + XED_IFORM_FNSAVE_MEMmem108=504, + XED_IFORM_FNSAVE_MEMmem94=505, + XED_IFORM_FNSTCW_MEMmem16=506, + XED_IFORM_FNSTENV_MEMmem14=507, + XED_IFORM_FNSTENV_MEMmem28=508, + XED_IFORM_FNSTSW_AX=509, + XED_IFORM_FNSTSW_MEMmem16=510, + XED_IFORM_FPATAN_ST0_ST1=511, + XED_IFORM_FPREM_ST0_ST1=512, + XED_IFORM_FPREM1_ST0_ST1=513, + XED_IFORM_FPTAN_ST0_ST1=514, + XED_IFORM_FRNDINT_ST0=515, + XED_IFORM_FRSTOR_MEMmem108=516, + XED_IFORM_FRSTOR_MEMmem94=517, + XED_IFORM_FSCALE_ST0_ST1=518, + XED_IFORM_FSETPM287_NOP=519, + XED_IFORM_FSIN_ST0=520, + XED_IFORM_FSINCOS_ST0_ST1=521, + XED_IFORM_FSQRT_ST0=522, + XED_IFORM_FST_MEMm64real_ST0=523, + XED_IFORM_FST_MEMmem32real_ST0=524, + XED_IFORM_FST_X87_ST0=525, + XED_IFORM_FSTP_MEMm64real_ST0=526, + XED_IFORM_FSTP_MEMmem32real_ST0=527, + XED_IFORM_FSTP_MEMmem80real_ST0=528, + XED_IFORM_FSTP_X87_ST0=529, + XED_IFORM_FSTP_X87_ST0_DFD0=530, + XED_IFORM_FSTP_X87_ST0_DFD1=531, + XED_IFORM_FSTPNCE_X87_ST0=532, + XED_IFORM_FSUB_ST0_MEMm64real=533, + XED_IFORM_FSUB_ST0_MEMmem32real=534, + XED_IFORM_FSUB_ST0_X87=535, + XED_IFORM_FSUB_X87_ST0=536, + XED_IFORM_FSUBP_X87_ST0=537, + XED_IFORM_FSUBR_ST0_MEMm64real=538, + XED_IFORM_FSUBR_ST0_MEMmem32real=539, + XED_IFORM_FSUBR_ST0_X87=540, + XED_IFORM_FSUBR_X87_ST0=541, + XED_IFORM_FSUBRP_X87_ST0=542, + XED_IFORM_FTST_ST0=543, + XED_IFORM_FUCOM_ST0_X87=544, + XED_IFORM_FUCOMI_ST0_X87=545, + XED_IFORM_FUCOMIP_ST0_X87=546, + XED_IFORM_FUCOMP_ST0_X87=547, + XED_IFORM_FUCOMPP_ST0_ST1=548, + XED_IFORM_FWAIT=549, + XED_IFORM_FXAM_ST0=550, + XED_IFORM_FXCH_ST0_X87=551, + XED_IFORM_FXCH_ST0_X87_DDC1=552, + XED_IFORM_FXCH_ST0_X87_DFC1=553, + XED_IFORM_FXRSTOR_MEMmfpxenv=554, + XED_IFORM_FXRSTOR64_MEMmfpxenv=555, + XED_IFORM_FXSAVE_MEMmfpxenv=556, + XED_IFORM_FXSAVE64_MEMmfpxenv=557, + XED_IFORM_FXTRACT_ST0_ST1=558, + XED_IFORM_FYL2X_ST0_ST1=559, + XED_IFORM_FYL2XP1_ST0_ST1=560, + XED_IFORM_GETSEC=561, + XED_IFORM_HADDPD_XMMpd_MEMpd=562, + XED_IFORM_HADDPD_XMMpd_XMMpd=563, + XED_IFORM_HADDPS_XMMps_MEMps=564, + XED_IFORM_HADDPS_XMMps_XMMps=565, + XED_IFORM_HLT=566, + XED_IFORM_HSUBPD_XMMpd_MEMpd=567, + XED_IFORM_HSUBPD_XMMpd_XMMpd=568, + XED_IFORM_HSUBPS_XMMps_MEMps=569, + XED_IFORM_HSUBPS_XMMps_XMMps=570, + XED_IFORM_IDIV_GPR8=571, + XED_IFORM_IDIV_GPRv=572, + XED_IFORM_IDIV_MEMb=573, + XED_IFORM_IDIV_MEMv=574, + XED_IFORM_IMUL_GPR8=575, + XED_IFORM_IMUL_GPRv=576, + XED_IFORM_IMUL_GPRv_GPRv=577, + XED_IFORM_IMUL_GPRv_GPRv_IMMb=578, + XED_IFORM_IMUL_GPRv_GPRv_IMMz=579, + XED_IFORM_IMUL_GPRv_MEMv=580, + XED_IFORM_IMUL_GPRv_MEMv_IMMb=581, + XED_IFORM_IMUL_GPRv_MEMv_IMMz=582, + XED_IFORM_IMUL_MEMb=583, + XED_IFORM_IMUL_MEMv=584, + XED_IFORM_IN_AL_DX=585, + XED_IFORM_IN_AL_IMMb=586, + XED_IFORM_IN_OeAX_DX=587, + XED_IFORM_IN_OeAX_IMMb=588, + XED_IFORM_INC_GPR8=589, + XED_IFORM_INC_GPRv_40=590, + XED_IFORM_INC_GPRv_FFr0=591, + XED_IFORM_INC_MEMb=592, + XED_IFORM_INC_MEMv=593, + XED_IFORM_INC_LOCK_MEMb=594, + XED_IFORM_INC_LOCK_MEMv=595, + XED_IFORM_INSB=596, + XED_IFORM_INSD=597, + XED_IFORM_INSERTPS_XMMps_MEMd_IMMb=598, + XED_IFORM_INSERTPS_XMMps_XMMps_IMMb=599, + XED_IFORM_INSERTQ_XMMq_XMMdq=600, + XED_IFORM_INSERTQ_XMMq_XMMq_IMMb_IMMb=601, + XED_IFORM_INSW=602, + XED_IFORM_INT_IMMb=603, + XED_IFORM_INT1=604, + XED_IFORM_INT3=605, + XED_IFORM_INTO=606, + XED_IFORM_INVD=607, + XED_IFORM_INVEPT_GPR32_MEMdq=608, + XED_IFORM_INVEPT_GPR64_MEMdq=609, + XED_IFORM_INVLPG_MEMb=610, + XED_IFORM_INVLPGA_OrAX_ECX=611, + XED_IFORM_INVPCID_GPR32_MEMdq=612, + XED_IFORM_INVPCID_GPR64_MEMdq=613, + XED_IFORM_INVVPID_GPR32_MEMdq=614, + XED_IFORM_INVVPID_GPR64_MEMdq=615, + XED_IFORM_IRET=616, + XED_IFORM_IRETD=617, + XED_IFORM_IRETQ=618, + XED_IFORM_JB_RELBRb=619, + XED_IFORM_JB_RELBRd=620, + XED_IFORM_JB_RELBRz=621, + XED_IFORM_JBE_RELBRb=622, + XED_IFORM_JBE_RELBRd=623, + XED_IFORM_JBE_RELBRz=624, + XED_IFORM_JCXZ_RELBRb=625, + XED_IFORM_JECXZ_RELBRb=626, + XED_IFORM_JL_RELBRb=627, + XED_IFORM_JL_RELBRd=628, + XED_IFORM_JL_RELBRz=629, + XED_IFORM_JLE_RELBRb=630, + XED_IFORM_JLE_RELBRd=631, + XED_IFORM_JLE_RELBRz=632, + XED_IFORM_JMP_GPRv=633, + XED_IFORM_JMP_MEMv=634, + XED_IFORM_JMP_RELBRb=635, + XED_IFORM_JMP_RELBRd=636, + XED_IFORM_JMP_RELBRz=637, + XED_IFORM_JMP_FAR_MEMp2=638, + XED_IFORM_JMP_FAR_PTRp_IMMw=639, + XED_IFORM_JNB_RELBRb=640, + XED_IFORM_JNB_RELBRd=641, + XED_IFORM_JNB_RELBRz=642, + XED_IFORM_JNBE_RELBRb=643, + XED_IFORM_JNBE_RELBRd=644, + XED_IFORM_JNBE_RELBRz=645, + XED_IFORM_JNL_RELBRb=646, + XED_IFORM_JNL_RELBRd=647, + XED_IFORM_JNL_RELBRz=648, + XED_IFORM_JNLE_RELBRb=649, + XED_IFORM_JNLE_RELBRd=650, + XED_IFORM_JNLE_RELBRz=651, + XED_IFORM_JNO_RELBRb=652, + XED_IFORM_JNO_RELBRd=653, + XED_IFORM_JNO_RELBRz=654, + XED_IFORM_JNP_RELBRb=655, + XED_IFORM_JNP_RELBRd=656, + XED_IFORM_JNP_RELBRz=657, + XED_IFORM_JNS_RELBRb=658, + XED_IFORM_JNS_RELBRd=659, + XED_IFORM_JNS_RELBRz=660, + XED_IFORM_JNZ_RELBRb=661, + XED_IFORM_JNZ_RELBRd=662, + XED_IFORM_JNZ_RELBRz=663, + XED_IFORM_JO_RELBRb=664, + XED_IFORM_JO_RELBRd=665, + XED_IFORM_JO_RELBRz=666, + XED_IFORM_JP_RELBRb=667, + XED_IFORM_JP_RELBRd=668, + XED_IFORM_JP_RELBRz=669, + XED_IFORM_JRCXZ_RELBRb=670, + XED_IFORM_JS_RELBRb=671, + XED_IFORM_JS_RELBRd=672, + XED_IFORM_JS_RELBRz=673, + XED_IFORM_JZ_RELBRb=674, + XED_IFORM_JZ_RELBRd=675, + XED_IFORM_JZ_RELBRz=676, + XED_IFORM_KADDB_MASKmskw_MASKmskw_MASKmskw_AVX512=677, + XED_IFORM_KADDD_MASKmskw_MASKmskw_MASKmskw_AVX512=678, + XED_IFORM_KADDQ_MASKmskw_MASKmskw_MASKmskw_AVX512=679, + XED_IFORM_KADDW_MASKmskw_MASKmskw_MASKmskw_AVX512=680, + XED_IFORM_KANDB_MASKmskw_MASKmskw_MASKmskw_AVX512=681, + XED_IFORM_KANDD_MASKmskw_MASKmskw_MASKmskw_AVX512=682, + XED_IFORM_KANDNB_MASKmskw_MASKmskw_MASKmskw_AVX512=683, + XED_IFORM_KANDND_MASKmskw_MASKmskw_MASKmskw_AVX512=684, + XED_IFORM_KANDNQ_MASKmskw_MASKmskw_MASKmskw_AVX512=685, + XED_IFORM_KANDNW_MASKmskw_MASKmskw_MASKmskw_AVX512=686, + XED_IFORM_KANDQ_MASKmskw_MASKmskw_MASKmskw_AVX512=687, + XED_IFORM_KANDW_MASKmskw_MASKmskw_MASKmskw_AVX512=688, + XED_IFORM_KMOVB_GPR32u32_MASKmskw_AVX512=689, + XED_IFORM_KMOVB_MASKmskw_GPR32u32_AVX512=690, + XED_IFORM_KMOVB_MASKmskw_MASKu8_AVX512=691, + XED_IFORM_KMOVB_MASKmskw_MEMu8_AVX512=692, + XED_IFORM_KMOVB_MEMu8_MASKmskw_AVX512=693, + XED_IFORM_KMOVD_GPR32u32_MASKmskw_AVX512=694, + XED_IFORM_KMOVD_MASKmskw_GPR32u32_AVX512=695, + XED_IFORM_KMOVD_MASKmskw_MASKu32_AVX512=696, + XED_IFORM_KMOVD_MASKmskw_MEMu32_AVX512=697, + XED_IFORM_KMOVD_MEMu32_MASKmskw_AVX512=698, + XED_IFORM_KMOVQ_GPR64u64_MASKmskw_AVX512=699, + XED_IFORM_KMOVQ_MASKmskw_GPR64u64_AVX512=700, + XED_IFORM_KMOVQ_MASKmskw_MASKu64_AVX512=701, + XED_IFORM_KMOVQ_MASKmskw_MEMu64_AVX512=702, + XED_IFORM_KMOVQ_MEMu64_MASKmskw_AVX512=703, + XED_IFORM_KMOVW_GPR32u32_MASKmskw_AVX512=704, + XED_IFORM_KMOVW_MASKmskw_GPR32u32_AVX512=705, + XED_IFORM_KMOVW_MASKmskw_MASKu16_AVX512=706, + XED_IFORM_KMOVW_MASKmskw_MEMu16_AVX512=707, + XED_IFORM_KMOVW_MEMu16_MASKmskw_AVX512=708, + XED_IFORM_KNOTB_MASKmskw_MASKmskw_AVX512=709, + XED_IFORM_KNOTD_MASKmskw_MASKmskw_AVX512=710, + XED_IFORM_KNOTQ_MASKmskw_MASKmskw_AVX512=711, + XED_IFORM_KNOTW_MASKmskw_MASKmskw_AVX512=712, + XED_IFORM_KORB_MASKmskw_MASKmskw_MASKmskw_AVX512=713, + XED_IFORM_KORD_MASKmskw_MASKmskw_MASKmskw_AVX512=714, + XED_IFORM_KORQ_MASKmskw_MASKmskw_MASKmskw_AVX512=715, + XED_IFORM_KORTESTB_MASKmskw_MASKmskw_AVX512=716, + XED_IFORM_KORTESTD_MASKmskw_MASKmskw_AVX512=717, + XED_IFORM_KORTESTQ_MASKmskw_MASKmskw_AVX512=718, + XED_IFORM_KORTESTW_MASKmskw_MASKmskw_AVX512=719, + XED_IFORM_KORW_MASKmskw_MASKmskw_MASKmskw_AVX512=720, + XED_IFORM_KSHIFTLB_MASKmskw_MASKmskw_IMM8_AVX512=721, + XED_IFORM_KSHIFTLD_MASKmskw_MASKmskw_IMM8_AVX512=722, + XED_IFORM_KSHIFTLQ_MASKmskw_MASKmskw_IMM8_AVX512=723, + XED_IFORM_KSHIFTLW_MASKmskw_MASKmskw_IMM8_AVX512=724, + XED_IFORM_KSHIFTRB_MASKmskw_MASKmskw_IMM8_AVX512=725, + XED_IFORM_KSHIFTRD_MASKmskw_MASKmskw_IMM8_AVX512=726, + XED_IFORM_KSHIFTRQ_MASKmskw_MASKmskw_IMM8_AVX512=727, + XED_IFORM_KSHIFTRW_MASKmskw_MASKmskw_IMM8_AVX512=728, + XED_IFORM_KTESTB_MASKmskw_MASKmskw_AVX512=729, + XED_IFORM_KTESTD_MASKmskw_MASKmskw_AVX512=730, + XED_IFORM_KTESTQ_MASKmskw_MASKmskw_AVX512=731, + XED_IFORM_KTESTW_MASKmskw_MASKmskw_AVX512=732, + XED_IFORM_KUNPCKBW_MASKmskw_MASKmskw_MASKmskw_AVX512=733, + XED_IFORM_KUNPCKDQ_MASKmskw_MASKmskw_MASKmskw_AVX512=734, + XED_IFORM_KUNPCKWD_MASKmskw_MASKmskw_MASKmskw_AVX512=735, + XED_IFORM_KXNORB_MASKmskw_MASKmskw_MASKmskw_AVX512=736, + XED_IFORM_KXNORD_MASKmskw_MASKmskw_MASKmskw_AVX512=737, + XED_IFORM_KXNORQ_MASKmskw_MASKmskw_MASKmskw_AVX512=738, + XED_IFORM_KXNORW_MASKmskw_MASKmskw_MASKmskw_AVX512=739, + XED_IFORM_KXORB_MASKmskw_MASKmskw_MASKmskw_AVX512=740, + XED_IFORM_KXORD_MASKmskw_MASKmskw_MASKmskw_AVX512=741, + XED_IFORM_KXORQ_MASKmskw_MASKmskw_MASKmskw_AVX512=742, + XED_IFORM_KXORW_MASKmskw_MASKmskw_MASKmskw_AVX512=743, + XED_IFORM_LAHF=744, + XED_IFORM_LAR_GPRv_GPRv=745, + XED_IFORM_LAR_GPRv_MEMw=746, + XED_IFORM_LDDQU_XMMpd_MEMdq=747, + XED_IFORM_LDMXCSR_MEMd=748, + XED_IFORM_LDS_GPRz_MEMp=749, + XED_IFORM_LEA_GPRv_AGEN=750, + XED_IFORM_LEAVE=751, + XED_IFORM_LES_GPRz_MEMp=752, + XED_IFORM_LFENCE=753, + XED_IFORM_LFS_GPRv_MEMp2=754, + XED_IFORM_LGDT_MEMs=755, + XED_IFORM_LGDT_MEMs64=756, + XED_IFORM_LGS_GPRv_MEMp2=757, + XED_IFORM_LIDT_MEMs=758, + XED_IFORM_LIDT_MEMs64=759, + XED_IFORM_LLDT_GPR16=760, + XED_IFORM_LLDT_MEMw=761, + XED_IFORM_LLWPCB_GPRyy=762, + XED_IFORM_LMSW_GPR16=763, + XED_IFORM_LMSW_MEMw=764, + XED_IFORM_LODSB=765, + XED_IFORM_LODSD=766, + XED_IFORM_LODSQ=767, + XED_IFORM_LODSW=768, + XED_IFORM_LOOP_RELBRb=769, + XED_IFORM_LOOPE_RELBRb=770, + XED_IFORM_LOOPNE_RELBRb=771, + XED_IFORM_LSL_GPRv_GPRz=772, + XED_IFORM_LSL_GPRv_MEMw=773, + XED_IFORM_LSS_GPRv_MEMp2=774, + XED_IFORM_LTR_GPR16=775, + XED_IFORM_LTR_MEMw=776, + XED_IFORM_LWPINS_GPRyy_GPRvd_IMMd=777, + XED_IFORM_LWPINS_GPRyy_MEMd_IMMd=778, + XED_IFORM_LWPVAL_GPRyy_GPRvd_IMMd=779, + XED_IFORM_LWPVAL_GPRyy_MEMd_IMMd=780, + XED_IFORM_LZCNT_GPRv_GPRv=781, + XED_IFORM_LZCNT_GPRv_MEMv=782, + XED_IFORM_MASKMOVDQU_XMMdq_XMMdq=783, + XED_IFORM_MASKMOVQ_MMXq_MMXq=784, + XED_IFORM_MAXPD_XMMpd_MEMpd=785, + XED_IFORM_MAXPD_XMMpd_XMMpd=786, + XED_IFORM_MAXPS_XMMps_MEMps=787, + XED_IFORM_MAXPS_XMMps_XMMps=788, + XED_IFORM_MAXSD_XMMsd_MEMsd=789, + XED_IFORM_MAXSD_XMMsd_XMMsd=790, + XED_IFORM_MAXSS_XMMss_MEMss=791, + XED_IFORM_MAXSS_XMMss_XMMss=792, + XED_IFORM_MFENCE=793, + XED_IFORM_MINPD_XMMpd_MEMpd=794, + XED_IFORM_MINPD_XMMpd_XMMpd=795, + XED_IFORM_MINPS_XMMps_MEMps=796, + XED_IFORM_MINPS_XMMps_XMMps=797, + XED_IFORM_MINSD_XMMsd_MEMsd=798, + XED_IFORM_MINSD_XMMsd_XMMsd=799, + XED_IFORM_MINSS_XMMss_MEMss=800, + XED_IFORM_MINSS_XMMss_XMMss=801, + XED_IFORM_MONITOR=802, + XED_IFORM_MOV_AL_MEMb=803, + XED_IFORM_MOV_GPR8_GPR8_88=804, + XED_IFORM_MOV_GPR8_GPR8_8A=805, + XED_IFORM_MOV_GPR8_IMMb_C6r0=806, + XED_IFORM_MOV_GPR8_IMMb_D0=807, + XED_IFORM_MOV_GPR8_MEMb=808, + XED_IFORM_MOV_GPRv_GPRv_89=809, + XED_IFORM_MOV_GPRv_GPRv_8B=810, + XED_IFORM_MOV_GPRv_IMMv=811, + XED_IFORM_MOV_GPRv_IMMz=812, + XED_IFORM_MOV_GPRv_MEMv=813, + XED_IFORM_MOV_GPRv_SEG=814, + XED_IFORM_MOV_MEMb_AL=815, + XED_IFORM_MOV_MEMb_GPR8=816, + XED_IFORM_MOV_MEMb_IMMb=817, + XED_IFORM_MOV_MEMv_GPRv=818, + XED_IFORM_MOV_MEMv_IMMz=819, + XED_IFORM_MOV_MEMv_OrAX=820, + XED_IFORM_MOV_MEMw_SEG=821, + XED_IFORM_MOV_OrAX_MEMv=822, + XED_IFORM_MOV_SEG_GPR16=823, + XED_IFORM_MOV_SEG_MEMw=824, + XED_IFORM_MOVAPD_MEMpd_XMMpd=825, + XED_IFORM_MOVAPD_XMMpd_MEMpd=826, + XED_IFORM_MOVAPD_XMMpd_XMMpd_0F28=827, + XED_IFORM_MOVAPD_XMMpd_XMMpd_0F29=828, + XED_IFORM_MOVAPS_MEMps_XMMps=829, + XED_IFORM_MOVAPS_XMMps_MEMps=830, + XED_IFORM_MOVAPS_XMMps_XMMps_0F28=831, + XED_IFORM_MOVAPS_XMMps_XMMps_0F29=832, + XED_IFORM_MOVBE_GPRv_MEMv=833, + XED_IFORM_MOVBE_MEMv_GPRv=834, + XED_IFORM_MOVD_GPR32_MMXd=835, + XED_IFORM_MOVD_GPR32_XMMd=836, + XED_IFORM_MOVD_MEMd_MMXd=837, + XED_IFORM_MOVD_MEMd_XMMd=838, + XED_IFORM_MOVD_MMXq_GPR32=839, + XED_IFORM_MOVD_MMXq_MEMd=840, + XED_IFORM_MOVD_XMMdq_GPR32=841, + XED_IFORM_MOVD_XMMdq_MEMd=842, + XED_IFORM_MOVDDUP_XMMdq_MEMq=843, + XED_IFORM_MOVDDUP_XMMdq_XMMq=844, + XED_IFORM_MOVDQ2Q_MMXq_XMMq=845, + XED_IFORM_MOVDQA_MEMdq_XMMdq=846, + XED_IFORM_MOVDQA_XMMdq_MEMdq=847, + XED_IFORM_MOVDQA_XMMdq_XMMdq_0F6F=848, + XED_IFORM_MOVDQA_XMMdq_XMMdq_0F7F=849, + XED_IFORM_MOVDQU_MEMdq_XMMdq=850, + XED_IFORM_MOVDQU_XMMdq_MEMdq=851, + XED_IFORM_MOVDQU_XMMdq_XMMdq_0F6F=852, + XED_IFORM_MOVDQU_XMMdq_XMMdq_0F7F=853, + XED_IFORM_MOVHLPS_XMMq_XMMq=854, + XED_IFORM_MOVHPD_MEMq_XMMsd=855, + XED_IFORM_MOVHPD_XMMsd_MEMq=856, + XED_IFORM_MOVHPS_MEMq_XMMps=857, + XED_IFORM_MOVHPS_XMMq_MEMq=858, + XED_IFORM_MOVLHPS_XMMq_XMMq=859, + XED_IFORM_MOVLPD_MEMq_XMMsd=860, + XED_IFORM_MOVLPD_XMMsd_MEMq=861, + XED_IFORM_MOVLPS_MEMq_XMMps=862, + XED_IFORM_MOVLPS_XMMq_MEMq=863, + XED_IFORM_MOVMSKPD_GPR32_XMMpd=864, + XED_IFORM_MOVMSKPS_GPR32_XMMps=865, + XED_IFORM_MOVNTDQ_MEMdq_XMMdq=866, + XED_IFORM_MOVNTDQA_XMMdq_MEMdq=867, + XED_IFORM_MOVNTI_MEMd_GPR32=868, + XED_IFORM_MOVNTI_MEMq_GPR64=869, + XED_IFORM_MOVNTPD_MEMdq_XMMpd=870, + XED_IFORM_MOVNTPS_MEMdq_XMMps=871, + XED_IFORM_MOVNTQ_MEMq_MMXq=872, + XED_IFORM_MOVNTSD_MEMq_XMMq=873, + XED_IFORM_MOVNTSS_MEMd_XMMd=874, + XED_IFORM_MOVQ_GPR64_MMXq=875, + XED_IFORM_MOVQ_GPR64_XMMq=876, + XED_IFORM_MOVQ_MEMq_MMXq_0F7E=877, + XED_IFORM_MOVQ_MEMq_MMXq_0F7F=878, + XED_IFORM_MOVQ_MEMq_XMMq_0F7E=879, + XED_IFORM_MOVQ_MEMq_XMMq_0FD6=880, + XED_IFORM_MOVQ_MMXq_GPR64=881, + XED_IFORM_MOVQ_MMXq_MEMq_0F6E=882, + XED_IFORM_MOVQ_MMXq_MEMq_0F6F=883, + XED_IFORM_MOVQ_MMXq_MMXq_0F6F=884, + XED_IFORM_MOVQ_MMXq_MMXq_0F7F=885, + XED_IFORM_MOVQ_XMMdq_GPR64=886, + XED_IFORM_MOVQ_XMMdq_MEMq_0F6E=887, + XED_IFORM_MOVQ_XMMdq_MEMq_0F7E=888, + XED_IFORM_MOVQ_XMMdq_XMMq_0F7E=889, + XED_IFORM_MOVQ_XMMdq_XMMq_0FD6=890, + XED_IFORM_MOVQ2DQ_XMMdq_MMXq=891, + XED_IFORM_MOVSB=892, + XED_IFORM_MOVSD=893, + XED_IFORM_MOVSD_XMM_MEMsd_XMMsd=894, + XED_IFORM_MOVSD_XMM_XMMdq_MEMsd=895, + XED_IFORM_MOVSD_XMM_XMMsd_XMMsd_0F10=896, + XED_IFORM_MOVSD_XMM_XMMsd_XMMsd_0F11=897, + XED_IFORM_MOVSHDUP_XMMps_MEMps=898, + XED_IFORM_MOVSHDUP_XMMps_XMMps=899, + XED_IFORM_MOVSLDUP_XMMps_MEMps=900, + XED_IFORM_MOVSLDUP_XMMps_XMMps=901, + XED_IFORM_MOVSQ=902, + XED_IFORM_MOVSS_MEMss_XMMss=903, + XED_IFORM_MOVSS_XMMdq_MEMss=904, + XED_IFORM_MOVSS_XMMss_XMMss_0F10=905, + XED_IFORM_MOVSS_XMMss_XMMss_0F11=906, + XED_IFORM_MOVSW=907, + XED_IFORM_MOVSX_GPRv_GPR16=908, + XED_IFORM_MOVSX_GPRv_GPR8=909, + XED_IFORM_MOVSX_GPRv_MEMb=910, + XED_IFORM_MOVSX_GPRv_MEMw=911, + XED_IFORM_MOVSXD_GPRv_GPR32=912, + XED_IFORM_MOVSXD_GPRv_MEMd=913, + XED_IFORM_MOVUPD_MEMpd_XMMpd=914, + XED_IFORM_MOVUPD_XMMpd_MEMpd=915, + XED_IFORM_MOVUPD_XMMpd_XMMpd_0F10=916, + XED_IFORM_MOVUPD_XMMpd_XMMpd_0F11=917, + XED_IFORM_MOVUPS_MEMps_XMMps=918, + XED_IFORM_MOVUPS_XMMps_MEMps=919, + XED_IFORM_MOVUPS_XMMps_XMMps_0F10=920, + XED_IFORM_MOVUPS_XMMps_XMMps_0F11=921, + XED_IFORM_MOVZX_GPRv_GPR16=922, + XED_IFORM_MOVZX_GPRv_GPR8=923, + XED_IFORM_MOVZX_GPRv_MEMb=924, + XED_IFORM_MOVZX_GPRv_MEMw=925, + XED_IFORM_MOV_CR_CR_GPR32=926, + XED_IFORM_MOV_CR_CR_GPR64=927, + XED_IFORM_MOV_CR_GPR32_CR=928, + XED_IFORM_MOV_CR_GPR64_CR=929, + XED_IFORM_MOV_DR_DR_GPR32=930, + XED_IFORM_MOV_DR_DR_GPR64=931, + XED_IFORM_MOV_DR_GPR32_DR=932, + XED_IFORM_MOV_DR_GPR64_DR=933, + XED_IFORM_MPSADBW_XMMdq_MEMdq_IMMb=934, + XED_IFORM_MPSADBW_XMMdq_XMMdq_IMMb=935, + XED_IFORM_MUL_GPR8=936, + XED_IFORM_MUL_GPRv=937, + XED_IFORM_MUL_MEMb=938, + XED_IFORM_MUL_MEMv=939, + XED_IFORM_MULPD_XMMpd_MEMpd=940, + XED_IFORM_MULPD_XMMpd_XMMpd=941, + XED_IFORM_MULPS_XMMps_MEMps=942, + XED_IFORM_MULPS_XMMps_XMMps=943, + XED_IFORM_MULSD_XMMsd_MEMsd=944, + XED_IFORM_MULSD_XMMsd_XMMsd=945, + XED_IFORM_MULSS_XMMss_MEMss=946, + XED_IFORM_MULSS_XMMss_XMMss=947, + XED_IFORM_MULX_VGPR32d_VGPR32d_MEMd=948, + XED_IFORM_MULX_VGPR32d_VGPR32d_VGPR32d=949, + XED_IFORM_MULX_VGPR64q_VGPR64q_MEMq=950, + XED_IFORM_MULX_VGPR64q_VGPR64q_VGPR64q=951, + XED_IFORM_MWAIT=952, + XED_IFORM_NEG_GPR8=953, + XED_IFORM_NEG_GPRv=954, + XED_IFORM_NEG_MEMb=955, + XED_IFORM_NEG_MEMv=956, + XED_IFORM_NEG_LOCK_MEMb=957, + XED_IFORM_NEG_LOCK_MEMv=958, + XED_IFORM_NOP_90=959, + XED_IFORM_NOP_GPRv_0F18r0=960, + XED_IFORM_NOP_GPRv_0F18r1=961, + XED_IFORM_NOP_GPRv_0F18r2=962, + XED_IFORM_NOP_GPRv_0F18r3=963, + XED_IFORM_NOP_GPRv_0F18r4=964, + XED_IFORM_NOP_GPRv_0F18r5=965, + XED_IFORM_NOP_GPRv_0F18r6=966, + XED_IFORM_NOP_GPRv_0F18r7=967, + XED_IFORM_NOP_GPRv_GPRv_0F0D=968, + XED_IFORM_NOP_GPRv_GPRv_0F19=969, + XED_IFORM_NOP_GPRv_GPRv_0F1A=970, + XED_IFORM_NOP_GPRv_GPRv_0F1B=971, + XED_IFORM_NOP_GPRv_GPRv_0F1C=972, + XED_IFORM_NOP_GPRv_GPRv_0F1D=973, + XED_IFORM_NOP_GPRv_GPRv_0F1E=974, + XED_IFORM_NOP_GPRv_GPRv_0F1F=975, + XED_IFORM_NOP_GPRv_MEM_0F1B=976, + XED_IFORM_NOP_GPRv_MEMv_0F1A=977, + XED_IFORM_NOP_MEMv_0F18r4=978, + XED_IFORM_NOP_MEMv_0F18r5=979, + XED_IFORM_NOP_MEMv_0F18r6=980, + XED_IFORM_NOP_MEMv_0F18r7=981, + XED_IFORM_NOP_MEMv_GPRv_0F19=982, + XED_IFORM_NOP_MEMv_GPRv_0F1C=983, + XED_IFORM_NOP_MEMv_GPRv_0F1D=984, + XED_IFORM_NOP_MEMv_GPRv_0F1E=985, + XED_IFORM_NOP_MEMv_GPRv_0F1F=986, + XED_IFORM_NOT_GPR8=987, + XED_IFORM_NOT_GPRv=988, + XED_IFORM_NOT_MEMb=989, + XED_IFORM_NOT_MEMv=990, + XED_IFORM_NOT_LOCK_MEMb=991, + XED_IFORM_NOT_LOCK_MEMv=992, + XED_IFORM_OR_AL_IMMb=993, + XED_IFORM_OR_GPR8_GPR8_08=994, + XED_IFORM_OR_GPR8_GPR8_0A=995, + XED_IFORM_OR_GPR8_IMMb_80r1=996, + XED_IFORM_OR_GPR8_IMMb_82r1=997, + XED_IFORM_OR_GPR8_MEMb=998, + XED_IFORM_OR_GPRv_GPRv_09=999, + XED_IFORM_OR_GPRv_GPRv_0B=1000, + XED_IFORM_OR_GPRv_IMMb=1001, + XED_IFORM_OR_GPRv_IMMz=1002, + XED_IFORM_OR_GPRv_MEMv=1003, + XED_IFORM_OR_MEMb_GPR8=1004, + XED_IFORM_OR_MEMb_IMMb_80r1=1005, + XED_IFORM_OR_MEMb_IMMb_82r1=1006, + XED_IFORM_OR_MEMv_GPRv=1007, + XED_IFORM_OR_MEMv_IMMb=1008, + XED_IFORM_OR_MEMv_IMMz=1009, + XED_IFORM_OR_OrAX_IMMz=1010, + XED_IFORM_ORPD_XMMpd_MEMpd=1011, + XED_IFORM_ORPD_XMMpd_XMMpd=1012, + XED_IFORM_ORPS_XMMps_MEMps=1013, + XED_IFORM_ORPS_XMMps_XMMps=1014, + XED_IFORM_OR_LOCK_MEMb_GPR8=1015, + XED_IFORM_OR_LOCK_MEMb_IMMb_80r1=1016, + XED_IFORM_OR_LOCK_MEMb_IMMb_82r1=1017, + XED_IFORM_OR_LOCK_MEMv_GPRv=1018, + XED_IFORM_OR_LOCK_MEMv_IMMb=1019, + XED_IFORM_OR_LOCK_MEMv_IMMz=1020, + XED_IFORM_OUT_DX_AL=1021, + XED_IFORM_OUT_DX_OeAX=1022, + XED_IFORM_OUT_IMMb_AL=1023, + XED_IFORM_OUT_IMMb_OeAX=1024, + XED_IFORM_OUTSB=1025, + XED_IFORM_OUTSD=1026, + XED_IFORM_OUTSW=1027, + XED_IFORM_PABSB_MMXq_MEMq=1028, + XED_IFORM_PABSB_MMXq_MMXq=1029, + XED_IFORM_PABSB_XMMdq_MEMdq=1030, + XED_IFORM_PABSB_XMMdq_XMMdq=1031, + XED_IFORM_PABSD_MMXq_MEMq=1032, + XED_IFORM_PABSD_MMXq_MMXq=1033, + XED_IFORM_PABSD_XMMdq_MEMdq=1034, + XED_IFORM_PABSD_XMMdq_XMMdq=1035, + XED_IFORM_PABSW_MMXq_MEMq=1036, + XED_IFORM_PABSW_MMXq_MMXq=1037, + XED_IFORM_PABSW_XMMdq_MEMdq=1038, + XED_IFORM_PABSW_XMMdq_XMMdq=1039, + XED_IFORM_PACKSSDW_MMXq_MEMq=1040, + XED_IFORM_PACKSSDW_MMXq_MMXq=1041, + XED_IFORM_PACKSSDW_XMMdq_MEMdq=1042, + XED_IFORM_PACKSSDW_XMMdq_XMMdq=1043, + XED_IFORM_PACKSSWB_MMXq_MEMq=1044, + XED_IFORM_PACKSSWB_MMXq_MMXq=1045, + XED_IFORM_PACKSSWB_XMMdq_MEMdq=1046, + XED_IFORM_PACKSSWB_XMMdq_XMMdq=1047, + XED_IFORM_PACKUSDW_XMMdq_MEMdq=1048, + XED_IFORM_PACKUSDW_XMMdq_XMMdq=1049, + XED_IFORM_PACKUSWB_MMXq_MEMq=1050, + XED_IFORM_PACKUSWB_MMXq_MMXq=1051, + XED_IFORM_PACKUSWB_XMMdq_MEMdq=1052, + XED_IFORM_PACKUSWB_XMMdq_XMMdq=1053, + XED_IFORM_PADDB_MMXq_MEMq=1054, + XED_IFORM_PADDB_MMXq_MMXq=1055, + XED_IFORM_PADDB_XMMdq_MEMdq=1056, + XED_IFORM_PADDB_XMMdq_XMMdq=1057, + XED_IFORM_PADDD_MMXq_MEMq=1058, + XED_IFORM_PADDD_MMXq_MMXq=1059, + XED_IFORM_PADDD_XMMdq_MEMdq=1060, + XED_IFORM_PADDD_XMMdq_XMMdq=1061, + XED_IFORM_PADDQ_MMXq_MEMq=1062, + XED_IFORM_PADDQ_MMXq_MMXq=1063, + XED_IFORM_PADDQ_XMMdq_MEMdq=1064, + XED_IFORM_PADDQ_XMMdq_XMMdq=1065, + XED_IFORM_PADDSB_MMXq_MEMq=1066, + XED_IFORM_PADDSB_MMXq_MMXq=1067, + XED_IFORM_PADDSB_XMMdq_MEMdq=1068, + XED_IFORM_PADDSB_XMMdq_XMMdq=1069, + XED_IFORM_PADDSW_MMXq_MEMq=1070, + XED_IFORM_PADDSW_MMXq_MMXq=1071, + XED_IFORM_PADDSW_XMMdq_MEMdq=1072, + XED_IFORM_PADDSW_XMMdq_XMMdq=1073, + XED_IFORM_PADDUSB_MMXq_MEMq=1074, + XED_IFORM_PADDUSB_MMXq_MMXq=1075, + XED_IFORM_PADDUSB_XMMdq_MEMdq=1076, + XED_IFORM_PADDUSB_XMMdq_XMMdq=1077, + XED_IFORM_PADDUSW_MMXq_MEMq=1078, + XED_IFORM_PADDUSW_MMXq_MMXq=1079, + XED_IFORM_PADDUSW_XMMdq_MEMdq=1080, + XED_IFORM_PADDUSW_XMMdq_XMMdq=1081, + XED_IFORM_PADDW_MMXq_MEMq=1082, + XED_IFORM_PADDW_MMXq_MMXq=1083, + XED_IFORM_PADDW_XMMdq_MEMdq=1084, + XED_IFORM_PADDW_XMMdq_XMMdq=1085, + XED_IFORM_PALIGNR_MMXq_MEMq_IMMb=1086, + XED_IFORM_PALIGNR_MMXq_MMXq_IMMb=1087, + XED_IFORM_PALIGNR_XMMdq_MEMdq_IMMb=1088, + XED_IFORM_PALIGNR_XMMdq_XMMdq_IMMb=1089, + XED_IFORM_PAND_MMXq_MEMq=1090, + XED_IFORM_PAND_MMXq_MMXq=1091, + XED_IFORM_PAND_XMMdq_MEMdq=1092, + XED_IFORM_PAND_XMMdq_XMMdq=1093, + XED_IFORM_PANDN_MMXq_MEMq=1094, + XED_IFORM_PANDN_MMXq_MMXq=1095, + XED_IFORM_PANDN_XMMdq_MEMdq=1096, + XED_IFORM_PANDN_XMMdq_XMMdq=1097, + XED_IFORM_PAUSE=1098, + XED_IFORM_PAVGB_MMXq_MEMq=1099, + XED_IFORM_PAVGB_MMXq_MMXq=1100, + XED_IFORM_PAVGB_XMMdq_MEMdq=1101, + XED_IFORM_PAVGB_XMMdq_XMMdq=1102, + XED_IFORM_PAVGUSB_MMXq_MEMq=1103, + XED_IFORM_PAVGUSB_MMXq_MMXq=1104, + XED_IFORM_PAVGW_MMXq_MEMq=1105, + XED_IFORM_PAVGW_MMXq_MMXq=1106, + XED_IFORM_PAVGW_XMMdq_MEMdq=1107, + XED_IFORM_PAVGW_XMMdq_XMMdq=1108, + XED_IFORM_PBLENDVB_XMMdq_MEMdq=1109, + XED_IFORM_PBLENDVB_XMMdq_XMMdq=1110, + XED_IFORM_PBLENDW_XMMdq_MEMdq_IMMb=1111, + XED_IFORM_PBLENDW_XMMdq_XMMdq_IMMb=1112, + XED_IFORM_PCLMULQDQ_XMMdq_MEMdq_IMMb=1113, + XED_IFORM_PCLMULQDQ_XMMdq_XMMdq_IMMb=1114, + XED_IFORM_PCMPEQB_MMXq_MEMq=1115, + XED_IFORM_PCMPEQB_MMXq_MMXq=1116, + XED_IFORM_PCMPEQB_XMMdq_MEMdq=1117, + XED_IFORM_PCMPEQB_XMMdq_XMMdq=1118, + XED_IFORM_PCMPEQD_MMXq_MEMq=1119, + XED_IFORM_PCMPEQD_MMXq_MMXq=1120, + XED_IFORM_PCMPEQD_XMMdq_MEMdq=1121, + XED_IFORM_PCMPEQD_XMMdq_XMMdq=1122, + XED_IFORM_PCMPEQQ_XMMdq_MEMdq=1123, + XED_IFORM_PCMPEQQ_XMMdq_XMMdq=1124, + XED_IFORM_PCMPEQW_MMXq_MEMq=1125, + XED_IFORM_PCMPEQW_MMXq_MMXq=1126, + XED_IFORM_PCMPEQW_XMMdq_MEMdq=1127, + XED_IFORM_PCMPEQW_XMMdq_XMMdq=1128, + XED_IFORM_PCMPESTRI_XMMdq_MEMdq_IMMb=1129, + XED_IFORM_PCMPESTRI_XMMdq_XMMdq_IMMb=1130, + XED_IFORM_PCMPESTRM_XMMdq_MEMdq_IMMb=1131, + XED_IFORM_PCMPESTRM_XMMdq_XMMdq_IMMb=1132, + XED_IFORM_PCMPGTB_MMXq_MEMq=1133, + XED_IFORM_PCMPGTB_MMXq_MMXq=1134, + XED_IFORM_PCMPGTB_XMMdq_MEMdq=1135, + XED_IFORM_PCMPGTB_XMMdq_XMMdq=1136, + XED_IFORM_PCMPGTD_MMXq_MEMq=1137, + XED_IFORM_PCMPGTD_MMXq_MMXq=1138, + XED_IFORM_PCMPGTD_XMMdq_MEMdq=1139, + XED_IFORM_PCMPGTD_XMMdq_XMMdq=1140, + XED_IFORM_PCMPGTQ_XMMdq_MEMdq=1141, + XED_IFORM_PCMPGTQ_XMMdq_XMMdq=1142, + XED_IFORM_PCMPGTW_MMXq_MEMq=1143, + XED_IFORM_PCMPGTW_MMXq_MMXq=1144, + XED_IFORM_PCMPGTW_XMMdq_MEMdq=1145, + XED_IFORM_PCMPGTW_XMMdq_XMMdq=1146, + XED_IFORM_PCMPISTRI_XMMdq_MEMdq_IMMb=1147, + XED_IFORM_PCMPISTRI_XMMdq_XMMdq_IMMb=1148, + XED_IFORM_PCMPISTRM_XMMdq_MEMdq_IMMb=1149, + XED_IFORM_PCMPISTRM_XMMdq_XMMdq_IMMb=1150, + XED_IFORM_PCOMMIT=1151, + XED_IFORM_PDEP_VGPR32d_VGPR32d_MEMd=1152, + XED_IFORM_PDEP_VGPR32d_VGPR32d_VGPR32d=1153, + XED_IFORM_PDEP_VGPR64q_VGPR64q_MEMq=1154, + XED_IFORM_PDEP_VGPR64q_VGPR64q_VGPR64q=1155, + XED_IFORM_PEXT_VGPR32d_VGPR32d_MEMd=1156, + XED_IFORM_PEXT_VGPR32d_VGPR32d_VGPR32d=1157, + XED_IFORM_PEXT_VGPR64q_VGPR64q_MEMq=1158, + XED_IFORM_PEXT_VGPR64q_VGPR64q_VGPR64q=1159, + XED_IFORM_PEXTRB_GPR32d_XMMdq_IMMb=1160, + XED_IFORM_PEXTRB_MEMb_XMMdq_IMMb=1161, + XED_IFORM_PEXTRD_GPR32d_XMMdq_IMMb=1162, + XED_IFORM_PEXTRD_MEMd_XMMdq_IMMb=1163, + XED_IFORM_PEXTRQ_GPR64q_XMMdq_IMMb=1164, + XED_IFORM_PEXTRQ_MEMq_XMMdq_IMMb=1165, + XED_IFORM_PEXTRW_GPR32_MMXq_IMMb=1166, + XED_IFORM_PEXTRW_GPR32_XMMdq_IMMb=1167, + XED_IFORM_PEXTRW_SSE4_GPR32_XMMdq_IMMb=1168, + XED_IFORM_PEXTRW_SSE4_MEMw_XMMdq_IMMb=1169, + XED_IFORM_PF2ID_MMXq_MEMq=1170, + XED_IFORM_PF2ID_MMXq_MMXq=1171, + XED_IFORM_PF2IW_MMXq_MEMq=1172, + XED_IFORM_PF2IW_MMXq_MMXq=1173, + XED_IFORM_PFACC_MMXq_MEMq=1174, + XED_IFORM_PFACC_MMXq_MMXq=1175, + XED_IFORM_PFADD_MMXq_MEMq=1176, + XED_IFORM_PFADD_MMXq_MMXq=1177, + XED_IFORM_PFCMPEQ_MMXq_MEMq=1178, + XED_IFORM_PFCMPEQ_MMXq_MMXq=1179, + XED_IFORM_PFCMPGE_MMXq_MEMq=1180, + XED_IFORM_PFCMPGE_MMXq_MMXq=1181, + XED_IFORM_PFCMPGT_MMXq_MEMq=1182, + XED_IFORM_PFCMPGT_MMXq_MMXq=1183, + XED_IFORM_PFCPIT1_MMXq_MEMq=1184, + XED_IFORM_PFCPIT1_MMXq_MMXq=1185, + XED_IFORM_PFMAX_MMXq_MEMq=1186, + XED_IFORM_PFMAX_MMXq_MMXq=1187, + XED_IFORM_PFMIN_MMXq_MEMq=1188, + XED_IFORM_PFMIN_MMXq_MMXq=1189, + XED_IFORM_PFMUL_MMXq_MEMq=1190, + XED_IFORM_PFMUL_MMXq_MMXq=1191, + XED_IFORM_PFNACC_MMXq_MEMq=1192, + XED_IFORM_PFNACC_MMXq_MMXq=1193, + XED_IFORM_PFPNACC_MMXq_MEMq=1194, + XED_IFORM_PFPNACC_MMXq_MMXq=1195, + XED_IFORM_PFRCP_MMXq_MEMq=1196, + XED_IFORM_PFRCP_MMXq_MMXq=1197, + XED_IFORM_PFRCPIT2_MMXq_MEMq=1198, + XED_IFORM_PFRCPIT2_MMXq_MMXq=1199, + XED_IFORM_PFRSQIT1_MMXq_MEMq=1200, + XED_IFORM_PFRSQIT1_MMXq_MMXq=1201, + XED_IFORM_PFSQRT_MMXq_MEMq=1202, + XED_IFORM_PFSQRT_MMXq_MMXq=1203, + XED_IFORM_PFSUB_MMXq_MEMq=1204, + XED_IFORM_PFSUB_MMXq_MMXq=1205, + XED_IFORM_PFSUBR_MMXq_MEMq=1206, + XED_IFORM_PFSUBR_MMXq_MMXq=1207, + XED_IFORM_PHADDD_MMXq_MEMq=1208, + XED_IFORM_PHADDD_MMXq_MMXq=1209, + XED_IFORM_PHADDD_XMMdq_MEMdq=1210, + XED_IFORM_PHADDD_XMMdq_XMMdq=1211, + XED_IFORM_PHADDSW_MMXq_MEMq=1212, + XED_IFORM_PHADDSW_MMXq_MMXq=1213, + XED_IFORM_PHADDSW_XMMdq_MEMdq=1214, + XED_IFORM_PHADDSW_XMMdq_XMMdq=1215, + XED_IFORM_PHADDW_MMXq_MEMq=1216, + XED_IFORM_PHADDW_MMXq_MMXq=1217, + XED_IFORM_PHADDW_XMMdq_MEMdq=1218, + XED_IFORM_PHADDW_XMMdq_XMMdq=1219, + XED_IFORM_PHMINPOSUW_XMMdq_MEMdq=1220, + XED_IFORM_PHMINPOSUW_XMMdq_XMMdq=1221, + XED_IFORM_PHSUBD_MMXq_MEMq=1222, + XED_IFORM_PHSUBD_MMXq_MMXq=1223, + XED_IFORM_PHSUBD_XMMdq_MEMdq=1224, + XED_IFORM_PHSUBD_XMMdq_XMMdq=1225, + XED_IFORM_PHSUBSW_MMXq_MEMq=1226, + XED_IFORM_PHSUBSW_MMXq_MMXq=1227, + XED_IFORM_PHSUBSW_XMMdq_MEMdq=1228, + XED_IFORM_PHSUBSW_XMMdq_XMMdq=1229, + XED_IFORM_PHSUBW_MMXq_MEMq=1230, + XED_IFORM_PHSUBW_MMXq_MMXq=1231, + XED_IFORM_PHSUBW_XMMdq_MEMdq=1232, + XED_IFORM_PHSUBW_XMMdq_XMMdq=1233, + XED_IFORM_PI2FD_MMXq_MEMq=1234, + XED_IFORM_PI2FD_MMXq_MMXq=1235, + XED_IFORM_PI2FW_MMXq_MEMq=1236, + XED_IFORM_PI2FW_MMXq_MMXq=1237, + XED_IFORM_PINSRB_XMMdq_GPR32d_IMMb=1238, + XED_IFORM_PINSRB_XMMdq_MEMb_IMMb=1239, + XED_IFORM_PINSRD_XMMdq_GPR32d_IMMb=1240, + XED_IFORM_PINSRD_XMMdq_MEMd_IMMb=1241, + XED_IFORM_PINSRQ_XMMdq_GPR64q_IMMb=1242, + XED_IFORM_PINSRQ_XMMdq_MEMq_IMMb=1243, + XED_IFORM_PINSRW_MMXq_GPR32_IMMb=1244, + XED_IFORM_PINSRW_MMXq_MEMw_IMMb=1245, + XED_IFORM_PINSRW_XMMdq_GPR32_IMMb=1246, + XED_IFORM_PINSRW_XMMdq_MEMw_IMMb=1247, + XED_IFORM_PMADDUBSW_MMXq_MEMq=1248, + XED_IFORM_PMADDUBSW_MMXq_MMXq=1249, + XED_IFORM_PMADDUBSW_XMMdq_MEMdq=1250, + XED_IFORM_PMADDUBSW_XMMdq_XMMdq=1251, + XED_IFORM_PMADDWD_MMXq_MEMq=1252, + XED_IFORM_PMADDWD_MMXq_MMXq=1253, + XED_IFORM_PMADDWD_XMMdq_MEMdq=1254, + XED_IFORM_PMADDWD_XMMdq_XMMdq=1255, + XED_IFORM_PMAXSB_XMMdq_MEMdq=1256, + XED_IFORM_PMAXSB_XMMdq_XMMdq=1257, + XED_IFORM_PMAXSD_XMMdq_MEMdq=1258, + XED_IFORM_PMAXSD_XMMdq_XMMdq=1259, + XED_IFORM_PMAXSW_MMXq_MEMq=1260, + XED_IFORM_PMAXSW_MMXq_MMXq=1261, + XED_IFORM_PMAXSW_XMMdq_MEMdq=1262, + XED_IFORM_PMAXSW_XMMdq_XMMdq=1263, + XED_IFORM_PMAXUB_MMXq_MEMq=1264, + XED_IFORM_PMAXUB_MMXq_MMXq=1265, + XED_IFORM_PMAXUB_XMMdq_MEMdq=1266, + XED_IFORM_PMAXUB_XMMdq_XMMdq=1267, + XED_IFORM_PMAXUD_XMMdq_MEMdq=1268, + XED_IFORM_PMAXUD_XMMdq_XMMdq=1269, + XED_IFORM_PMAXUW_XMMdq_MEMdq=1270, + XED_IFORM_PMAXUW_XMMdq_XMMdq=1271, + XED_IFORM_PMINSB_XMMdq_MEMdq=1272, + XED_IFORM_PMINSB_XMMdq_XMMdq=1273, + XED_IFORM_PMINSD_XMMdq_MEMdq=1274, + XED_IFORM_PMINSD_XMMdq_XMMdq=1275, + XED_IFORM_PMINSW_MMXq_MEMq=1276, + XED_IFORM_PMINSW_MMXq_MMXq=1277, + XED_IFORM_PMINSW_XMMdq_MEMdq=1278, + XED_IFORM_PMINSW_XMMdq_XMMdq=1279, + XED_IFORM_PMINUB_MMXq_MEMq=1280, + XED_IFORM_PMINUB_MMXq_MMXq=1281, + XED_IFORM_PMINUB_XMMdq_MEMdq=1282, + XED_IFORM_PMINUB_XMMdq_XMMdq=1283, + XED_IFORM_PMINUD_XMMdq_MEMdq=1284, + XED_IFORM_PMINUD_XMMdq_XMMdq=1285, + XED_IFORM_PMINUW_XMMdq_MEMdq=1286, + XED_IFORM_PMINUW_XMMdq_XMMdq=1287, + XED_IFORM_PMOVMSKB_GPR32_MMXq=1288, + XED_IFORM_PMOVMSKB_GPR32_XMMdq=1289, + XED_IFORM_PMOVSXBD_XMMdq_MEMd=1290, + XED_IFORM_PMOVSXBD_XMMdq_XMMd=1291, + XED_IFORM_PMOVSXBQ_XMMdq_MEMw=1292, + XED_IFORM_PMOVSXBQ_XMMdq_XMMw=1293, + XED_IFORM_PMOVSXBW_XMMdq_MEMq=1294, + XED_IFORM_PMOVSXBW_XMMdq_XMMq=1295, + XED_IFORM_PMOVSXDQ_XMMdq_MEMq=1296, + XED_IFORM_PMOVSXDQ_XMMdq_XMMq=1297, + XED_IFORM_PMOVSXWD_XMMdq_MEMq=1298, + XED_IFORM_PMOVSXWD_XMMdq_XMMq=1299, + XED_IFORM_PMOVSXWQ_XMMdq_MEMd=1300, + XED_IFORM_PMOVSXWQ_XMMdq_XMMd=1301, + XED_IFORM_PMOVZXBD_XMMdq_MEMd=1302, + XED_IFORM_PMOVZXBD_XMMdq_XMMd=1303, + XED_IFORM_PMOVZXBQ_XMMdq_MEMw=1304, + XED_IFORM_PMOVZXBQ_XMMdq_XMMw=1305, + XED_IFORM_PMOVZXBW_XMMdq_MEMq=1306, + XED_IFORM_PMOVZXBW_XMMdq_XMMq=1307, + XED_IFORM_PMOVZXDQ_XMMdq_MEMq=1308, + XED_IFORM_PMOVZXDQ_XMMdq_XMMq=1309, + XED_IFORM_PMOVZXWD_XMMdq_MEMq=1310, + XED_IFORM_PMOVZXWD_XMMdq_XMMq=1311, + XED_IFORM_PMOVZXWQ_XMMdq_MEMd=1312, + XED_IFORM_PMOVZXWQ_XMMdq_XMMd=1313, + XED_IFORM_PMULDQ_XMMdq_MEMdq=1314, + XED_IFORM_PMULDQ_XMMdq_XMMdq=1315, + XED_IFORM_PMULHRSW_MMXq_MEMq=1316, + XED_IFORM_PMULHRSW_MMXq_MMXq=1317, + XED_IFORM_PMULHRSW_XMMdq_MEMdq=1318, + XED_IFORM_PMULHRSW_XMMdq_XMMdq=1319, + XED_IFORM_PMULHRW_MMXq_MEMq=1320, + XED_IFORM_PMULHRW_MMXq_MMXq=1321, + XED_IFORM_PMULHUW_MMXq_MEMq=1322, + XED_IFORM_PMULHUW_MMXq_MMXq=1323, + XED_IFORM_PMULHUW_XMMdq_MEMdq=1324, + XED_IFORM_PMULHUW_XMMdq_XMMdq=1325, + XED_IFORM_PMULHW_MMXq_MEMq=1326, + XED_IFORM_PMULHW_MMXq_MMXq=1327, + XED_IFORM_PMULHW_XMMdq_MEMdq=1328, + XED_IFORM_PMULHW_XMMdq_XMMdq=1329, + XED_IFORM_PMULLD_XMMdq_MEMdq=1330, + XED_IFORM_PMULLD_XMMdq_XMMdq=1331, + XED_IFORM_PMULLW_MMXq_MEMq=1332, + XED_IFORM_PMULLW_MMXq_MMXq=1333, + XED_IFORM_PMULLW_XMMdq_MEMdq=1334, + XED_IFORM_PMULLW_XMMdq_XMMdq=1335, + XED_IFORM_PMULUDQ_MMXq_MEMq=1336, + XED_IFORM_PMULUDQ_MMXq_MMXq=1337, + XED_IFORM_PMULUDQ_XMMdq_MEMdq=1338, + XED_IFORM_PMULUDQ_XMMdq_XMMdq=1339, + XED_IFORM_POP_DS=1340, + XED_IFORM_POP_ES=1341, + XED_IFORM_POP_FS=1342, + XED_IFORM_POP_GPRv_51=1343, + XED_IFORM_POP_GPRv_8F=1344, + XED_IFORM_POP_GS=1345, + XED_IFORM_POP_MEMv=1346, + XED_IFORM_POP_SS=1347, + XED_IFORM_POPA=1348, + XED_IFORM_POPAD=1349, + XED_IFORM_POPCNT_GPRv_GPRv=1350, + XED_IFORM_POPCNT_GPRv_MEMv=1351, + XED_IFORM_POPF=1352, + XED_IFORM_POPFD=1353, + XED_IFORM_POPFQ=1354, + XED_IFORM_POR_MMXq_MEMq=1355, + XED_IFORM_POR_MMXq_MMXq=1356, + XED_IFORM_POR_XMMdq_MEMdq=1357, + XED_IFORM_POR_XMMdq_XMMdq=1358, + XED_IFORM_PREFETCHNTA_MEMmprefetch=1359, + XED_IFORM_PREFETCHT0_MEMmprefetch=1360, + XED_IFORM_PREFETCHT1_MEMmprefetch=1361, + XED_IFORM_PREFETCHT2_MEMmprefetch=1362, + XED_IFORM_PREFETCHW_0F0Dr1=1363, + XED_IFORM_PREFETCHW_0F0Dr3=1364, + XED_IFORM_PREFETCHWT1_MEMu8=1365, + XED_IFORM_PREFETCH_EXCLUSIVE_MEMmprefetch=1366, + XED_IFORM_PREFETCH_RESERVED_0F0Dr4=1367, + XED_IFORM_PREFETCH_RESERVED_0F0Dr5=1368, + XED_IFORM_PREFETCH_RESERVED_0F0Dr6=1369, + XED_IFORM_PREFETCH_RESERVED_0F0Dr7=1370, + XED_IFORM_PSADBW_MMXq_MEMq=1371, + XED_IFORM_PSADBW_MMXq_MMXq=1372, + XED_IFORM_PSADBW_XMMdq_MEMdq=1373, + XED_IFORM_PSADBW_XMMdq_XMMdq=1374, + XED_IFORM_PSHUFB_MMXq_MEMq=1375, + XED_IFORM_PSHUFB_MMXq_MMXq=1376, + XED_IFORM_PSHUFB_XMMdq_MEMdq=1377, + XED_IFORM_PSHUFB_XMMdq_XMMdq=1378, + XED_IFORM_PSHUFD_XMMdq_MEMdq_IMMb=1379, + XED_IFORM_PSHUFD_XMMdq_XMMdq_IMMb=1380, + XED_IFORM_PSHUFHW_XMMdq_MEMdq_IMMb=1381, + XED_IFORM_PSHUFHW_XMMdq_XMMdq_IMMb=1382, + XED_IFORM_PSHUFLW_XMMdq_MEMdq_IMMb=1383, + XED_IFORM_PSHUFLW_XMMdq_XMMdq_IMMb=1384, + XED_IFORM_PSHUFW_MMXq_MEMq_IMMb=1385, + XED_IFORM_PSHUFW_MMXq_MMXq_IMMb=1386, + XED_IFORM_PSIGNB_MMXq_MEMq=1387, + XED_IFORM_PSIGNB_MMXq_MMXq=1388, + XED_IFORM_PSIGNB_XMMdq_MEMdq=1389, + XED_IFORM_PSIGNB_XMMdq_XMMdq=1390, + XED_IFORM_PSIGND_MMXq_MEMq=1391, + XED_IFORM_PSIGND_MMXq_MMXq=1392, + XED_IFORM_PSIGND_XMMdq_MEMdq=1393, + XED_IFORM_PSIGND_XMMdq_XMMdq=1394, + XED_IFORM_PSIGNW_MMXq_MEMq=1395, + XED_IFORM_PSIGNW_MMXq_MMXq=1396, + XED_IFORM_PSIGNW_XMMdq_MEMdq=1397, + XED_IFORM_PSIGNW_XMMdq_XMMdq=1398, + XED_IFORM_PSLLD_MMXq_IMMb=1399, + XED_IFORM_PSLLD_MMXq_MEMq=1400, + XED_IFORM_PSLLD_MMXq_MMXq=1401, + XED_IFORM_PSLLD_XMMdq_IMMb=1402, + XED_IFORM_PSLLD_XMMdq_MEMdq=1403, + XED_IFORM_PSLLD_XMMdq_XMMdq=1404, + XED_IFORM_PSLLDQ_XMMdq_IMMb=1405, + XED_IFORM_PSLLQ_MMXq_IMMb=1406, + XED_IFORM_PSLLQ_MMXq_MEMq=1407, + XED_IFORM_PSLLQ_MMXq_MMXq=1408, + XED_IFORM_PSLLQ_XMMdq_IMMb=1409, + XED_IFORM_PSLLQ_XMMdq_MEMdq=1410, + XED_IFORM_PSLLQ_XMMdq_XMMdq=1411, + XED_IFORM_PSLLW_MMXq_IMMb=1412, + XED_IFORM_PSLLW_MMXq_MEMq=1413, + XED_IFORM_PSLLW_MMXq_MMXq=1414, + XED_IFORM_PSLLW_XMMdq_IMMb=1415, + XED_IFORM_PSLLW_XMMdq_MEMdq=1416, + XED_IFORM_PSLLW_XMMdq_XMMdq=1417, + XED_IFORM_PSRAD_MMXq_IMMb=1418, + XED_IFORM_PSRAD_MMXq_MEMq=1419, + XED_IFORM_PSRAD_MMXq_MMXq=1420, + XED_IFORM_PSRAD_XMMdq_IMMb=1421, + XED_IFORM_PSRAD_XMMdq_MEMdq=1422, + XED_IFORM_PSRAD_XMMdq_XMMdq=1423, + XED_IFORM_PSRAW_MMXq_IMMb=1424, + XED_IFORM_PSRAW_MMXq_MEMq=1425, + XED_IFORM_PSRAW_MMXq_MMXq=1426, + XED_IFORM_PSRAW_XMMdq_IMMb=1427, + XED_IFORM_PSRAW_XMMdq_MEMdq=1428, + XED_IFORM_PSRAW_XMMdq_XMMdq=1429, + XED_IFORM_PSRLD_MMXq_IMMb=1430, + XED_IFORM_PSRLD_MMXq_MEMq=1431, + XED_IFORM_PSRLD_MMXq_MMXq=1432, + XED_IFORM_PSRLD_XMMdq_IMMb=1433, + XED_IFORM_PSRLD_XMMdq_MEMdq=1434, + XED_IFORM_PSRLD_XMMdq_XMMdq=1435, + XED_IFORM_PSRLDQ_XMMdq_IMMb=1436, + XED_IFORM_PSRLQ_MMXq_IMMb=1437, + XED_IFORM_PSRLQ_MMXq_MEMq=1438, + XED_IFORM_PSRLQ_MMXq_MMXq=1439, + XED_IFORM_PSRLQ_XMMdq_IMMb=1440, + XED_IFORM_PSRLQ_XMMdq_MEMdq=1441, + XED_IFORM_PSRLQ_XMMdq_XMMdq=1442, + XED_IFORM_PSRLW_MMXq_IMMb=1443, + XED_IFORM_PSRLW_MMXq_MEMq=1444, + XED_IFORM_PSRLW_MMXq_MMXq=1445, + XED_IFORM_PSRLW_XMMdq_IMMb=1446, + XED_IFORM_PSRLW_XMMdq_MEMdq=1447, + XED_IFORM_PSRLW_XMMdq_XMMdq=1448, + XED_IFORM_PSUBB_MMXq_MEMq=1449, + XED_IFORM_PSUBB_MMXq_MMXq=1450, + XED_IFORM_PSUBB_XMMdq_MEMdq=1451, + XED_IFORM_PSUBB_XMMdq_XMMdq=1452, + XED_IFORM_PSUBD_MMXq_MEMq=1453, + XED_IFORM_PSUBD_MMXq_MMXq=1454, + XED_IFORM_PSUBD_XMMdq_MEMdq=1455, + XED_IFORM_PSUBD_XMMdq_XMMdq=1456, + XED_IFORM_PSUBQ_MMXq_MEMq=1457, + XED_IFORM_PSUBQ_MMXq_MMXq=1458, + XED_IFORM_PSUBQ_XMMdq_MEMdq=1459, + XED_IFORM_PSUBQ_XMMdq_XMMdq=1460, + XED_IFORM_PSUBSB_MMXq_MEMq=1461, + XED_IFORM_PSUBSB_MMXq_MMXq=1462, + XED_IFORM_PSUBSB_XMMdq_MEMdq=1463, + XED_IFORM_PSUBSB_XMMdq_XMMdq=1464, + XED_IFORM_PSUBSW_MMXq_MEMq=1465, + XED_IFORM_PSUBSW_MMXq_MMXq=1466, + XED_IFORM_PSUBSW_XMMdq_MEMdq=1467, + XED_IFORM_PSUBSW_XMMdq_XMMdq=1468, + XED_IFORM_PSUBUSB_MMXq_MEMq=1469, + XED_IFORM_PSUBUSB_MMXq_MMXq=1470, + XED_IFORM_PSUBUSB_XMMdq_MEMdq=1471, + XED_IFORM_PSUBUSB_XMMdq_XMMdq=1472, + XED_IFORM_PSUBUSW_MMXq_MEMq=1473, + XED_IFORM_PSUBUSW_MMXq_MMXq=1474, + XED_IFORM_PSUBUSW_XMMdq_MEMdq=1475, + XED_IFORM_PSUBUSW_XMMdq_XMMdq=1476, + XED_IFORM_PSUBW_MMXq_MEMq=1477, + XED_IFORM_PSUBW_MMXq_MMXq=1478, + XED_IFORM_PSUBW_XMMdq_MEMdq=1479, + XED_IFORM_PSUBW_XMMdq_XMMdq=1480, + XED_IFORM_PSWAPD_MMXq_MEMq=1481, + XED_IFORM_PSWAPD_MMXq_MMXq=1482, + XED_IFORM_PTEST_XMMdq_MEMdq=1483, + XED_IFORM_PTEST_XMMdq_XMMdq=1484, + XED_IFORM_PUNPCKHBW_MMXq_MEMq=1485, + XED_IFORM_PUNPCKHBW_MMXq_MMXd=1486, + XED_IFORM_PUNPCKHBW_XMMdq_MEMdq=1487, + XED_IFORM_PUNPCKHBW_XMMdq_XMMq=1488, + XED_IFORM_PUNPCKHDQ_MMXq_MEMq=1489, + XED_IFORM_PUNPCKHDQ_MMXq_MMXd=1490, + XED_IFORM_PUNPCKHDQ_XMMdq_MEMdq=1491, + XED_IFORM_PUNPCKHDQ_XMMdq_XMMq=1492, + XED_IFORM_PUNPCKHQDQ_XMMdq_MEMdq=1493, + XED_IFORM_PUNPCKHQDQ_XMMdq_XMMq=1494, + XED_IFORM_PUNPCKHWD_MMXq_MEMq=1495, + XED_IFORM_PUNPCKHWD_MMXq_MMXd=1496, + XED_IFORM_PUNPCKHWD_XMMdq_MEMdq=1497, + XED_IFORM_PUNPCKHWD_XMMdq_XMMq=1498, + XED_IFORM_PUNPCKLBW_MMXq_MEMd=1499, + XED_IFORM_PUNPCKLBW_MMXq_MMXd=1500, + XED_IFORM_PUNPCKLBW_XMMdq_MEMdq=1501, + XED_IFORM_PUNPCKLBW_XMMdq_XMMq=1502, + XED_IFORM_PUNPCKLDQ_MMXq_MEMd=1503, + XED_IFORM_PUNPCKLDQ_MMXq_MMXd=1504, + XED_IFORM_PUNPCKLDQ_XMMdq_MEMdq=1505, + XED_IFORM_PUNPCKLDQ_XMMdq_XMMq=1506, + XED_IFORM_PUNPCKLQDQ_XMMdq_MEMdq=1507, + XED_IFORM_PUNPCKLQDQ_XMMdq_XMMq=1508, + XED_IFORM_PUNPCKLWD_MMXq_MEMd=1509, + XED_IFORM_PUNPCKLWD_MMXq_MMXd=1510, + XED_IFORM_PUNPCKLWD_XMMdq_MEMdq=1511, + XED_IFORM_PUNPCKLWD_XMMdq_XMMq=1512, + XED_IFORM_PUSH_CS=1513, + XED_IFORM_PUSH_DS=1514, + XED_IFORM_PUSH_ES=1515, + XED_IFORM_PUSH_FS=1516, + XED_IFORM_PUSH_GPRv_50=1517, + XED_IFORM_PUSH_GPRv_FFr6=1518, + XED_IFORM_PUSH_GS=1519, + XED_IFORM_PUSH_IMMb=1520, + XED_IFORM_PUSH_IMMz=1521, + XED_IFORM_PUSH_MEMv=1522, + XED_IFORM_PUSH_SS=1523, + XED_IFORM_PUSHA=1524, + XED_IFORM_PUSHAD=1525, + XED_IFORM_PUSHF=1526, + XED_IFORM_PUSHFD=1527, + XED_IFORM_PUSHFQ=1528, + XED_IFORM_PXOR_MMXq_MEMq=1529, + XED_IFORM_PXOR_MMXq_MMXq=1530, + XED_IFORM_PXOR_XMMdq_MEMdq=1531, + XED_IFORM_PXOR_XMMdq_XMMdq=1532, + XED_IFORM_RCL_GPR8_CL=1533, + XED_IFORM_RCL_GPR8_IMMb=1534, + XED_IFORM_RCL_GPR8_ONE=1535, + XED_IFORM_RCL_GPRv_CL=1536, + XED_IFORM_RCL_GPRv_IMMb=1537, + XED_IFORM_RCL_GPRv_ONE=1538, + XED_IFORM_RCL_MEMb_CL=1539, + XED_IFORM_RCL_MEMb_IMMb=1540, + XED_IFORM_RCL_MEMb_ONE=1541, + XED_IFORM_RCL_MEMv_CL=1542, + XED_IFORM_RCL_MEMv_IMMb=1543, + XED_IFORM_RCL_MEMv_ONE=1544, + XED_IFORM_RCPPS_XMMps_MEMps=1545, + XED_IFORM_RCPPS_XMMps_XMMps=1546, + XED_IFORM_RCPSS_XMMss_MEMss=1547, + XED_IFORM_RCPSS_XMMss_XMMss=1548, + XED_IFORM_RCR_GPR8_CL=1549, + XED_IFORM_RCR_GPR8_IMMb=1550, + XED_IFORM_RCR_GPR8_ONE=1551, + XED_IFORM_RCR_GPRv_CL=1552, + XED_IFORM_RCR_GPRv_IMMb=1553, + XED_IFORM_RCR_GPRv_ONE=1554, + XED_IFORM_RCR_MEMb_CL=1555, + XED_IFORM_RCR_MEMb_IMMb=1556, + XED_IFORM_RCR_MEMb_ONE=1557, + XED_IFORM_RCR_MEMv_CL=1558, + XED_IFORM_RCR_MEMv_IMMb=1559, + XED_IFORM_RCR_MEMv_ONE=1560, + XED_IFORM_RDFSBASE_GPRy=1561, + XED_IFORM_RDGSBASE_GPRy=1562, + XED_IFORM_RDMSR=1563, + XED_IFORM_RDPMC=1564, + XED_IFORM_RDRAND_GPRv=1565, + XED_IFORM_RDSEED_GPRv=1566, + XED_IFORM_RDTSC=1567, + XED_IFORM_RDTSCP=1568, + XED_IFORM_REPE_CMPSB=1569, + XED_IFORM_REPE_CMPSD=1570, + XED_IFORM_REPE_CMPSQ=1571, + XED_IFORM_REPE_CMPSW=1572, + XED_IFORM_REPE_SCASB=1573, + XED_IFORM_REPE_SCASD=1574, + XED_IFORM_REPE_SCASQ=1575, + XED_IFORM_REPE_SCASW=1576, + XED_IFORM_REPNE_CMPSB=1577, + XED_IFORM_REPNE_CMPSD=1578, + XED_IFORM_REPNE_CMPSQ=1579, + XED_IFORM_REPNE_CMPSW=1580, + XED_IFORM_REPNE_SCASB=1581, + XED_IFORM_REPNE_SCASD=1582, + XED_IFORM_REPNE_SCASQ=1583, + XED_IFORM_REPNE_SCASW=1584, + XED_IFORM_REP_INSB=1585, + XED_IFORM_REP_INSD=1586, + XED_IFORM_REP_INSW=1587, + XED_IFORM_REP_LODSB=1588, + XED_IFORM_REP_LODSD=1589, + XED_IFORM_REP_LODSQ=1590, + XED_IFORM_REP_LODSW=1591, + XED_IFORM_REP_MOVSB=1592, + XED_IFORM_REP_MOVSD=1593, + XED_IFORM_REP_MOVSQ=1594, + XED_IFORM_REP_MOVSW=1595, + XED_IFORM_REP_OUTSB=1596, + XED_IFORM_REP_OUTSD=1597, + XED_IFORM_REP_OUTSW=1598, + XED_IFORM_REP_STOSB=1599, + XED_IFORM_REP_STOSD=1600, + XED_IFORM_REP_STOSQ=1601, + XED_IFORM_REP_STOSW=1602, + XED_IFORM_RET_FAR=1603, + XED_IFORM_RET_FAR_IMMw=1604, + XED_IFORM_RET_NEAR=1605, + XED_IFORM_RET_NEAR_IMMw=1606, + XED_IFORM_ROL_GPR8_CL=1607, + XED_IFORM_ROL_GPR8_IMMb=1608, + XED_IFORM_ROL_GPR8_ONE=1609, + XED_IFORM_ROL_GPRv_CL=1610, + XED_IFORM_ROL_GPRv_IMMb=1611, + XED_IFORM_ROL_GPRv_ONE=1612, + XED_IFORM_ROL_MEMb_CL=1613, + XED_IFORM_ROL_MEMb_IMMb=1614, + XED_IFORM_ROL_MEMb_ONE=1615, + XED_IFORM_ROL_MEMv_CL=1616, + XED_IFORM_ROL_MEMv_IMMb=1617, + XED_IFORM_ROL_MEMv_ONE=1618, + XED_IFORM_ROR_GPR8_CL=1619, + XED_IFORM_ROR_GPR8_IMMb=1620, + XED_IFORM_ROR_GPR8_ONE=1621, + XED_IFORM_ROR_GPRv_CL=1622, + XED_IFORM_ROR_GPRv_IMMb=1623, + XED_IFORM_ROR_GPRv_ONE=1624, + XED_IFORM_ROR_MEMb_CL=1625, + XED_IFORM_ROR_MEMb_IMMb=1626, + XED_IFORM_ROR_MEMb_ONE=1627, + XED_IFORM_ROR_MEMv_CL=1628, + XED_IFORM_ROR_MEMv_IMMb=1629, + XED_IFORM_ROR_MEMv_ONE=1630, + XED_IFORM_RORX_VGPR32d_MEMd_IMMb=1631, + XED_IFORM_RORX_VGPR32d_VGPR32d_IMMb=1632, + XED_IFORM_RORX_VGPR64q_MEMq_IMMb=1633, + XED_IFORM_RORX_VGPR64q_VGPR64q_IMMb=1634, + XED_IFORM_ROUNDPD_XMMpd_MEMpd_IMMb=1635, + XED_IFORM_ROUNDPD_XMMpd_XMMpd_IMMb=1636, + XED_IFORM_ROUNDPS_XMMps_MEMps_IMMb=1637, + XED_IFORM_ROUNDPS_XMMps_XMMps_IMMb=1638, + XED_IFORM_ROUNDSD_XMMq_MEMq_IMMb=1639, + XED_IFORM_ROUNDSD_XMMq_XMMq_IMMb=1640, + XED_IFORM_ROUNDSS_XMMd_MEMd_IMMb=1641, + XED_IFORM_ROUNDSS_XMMd_XMMd_IMMb=1642, + XED_IFORM_RSM=1643, + XED_IFORM_RSQRTPS_XMMps_MEMps=1644, + XED_IFORM_RSQRTPS_XMMps_XMMps=1645, + XED_IFORM_RSQRTSS_XMMss_MEMss=1646, + XED_IFORM_RSQRTSS_XMMss_XMMss=1647, + XED_IFORM_SAHF=1648, + XED_IFORM_SALC=1649, + XED_IFORM_SAR_GPR8_CL=1650, + XED_IFORM_SAR_GPR8_IMMb=1651, + XED_IFORM_SAR_GPR8_ONE=1652, + XED_IFORM_SAR_GPRv_CL=1653, + XED_IFORM_SAR_GPRv_IMMb=1654, + XED_IFORM_SAR_GPRv_ONE=1655, + XED_IFORM_SAR_MEMb_CL=1656, + XED_IFORM_SAR_MEMb_IMMb=1657, + XED_IFORM_SAR_MEMb_ONE=1658, + XED_IFORM_SAR_MEMv_CL=1659, + XED_IFORM_SAR_MEMv_IMMb=1660, + XED_IFORM_SAR_MEMv_ONE=1661, + XED_IFORM_SARX_VGPR32d_MEMd_VGPR32d=1662, + XED_IFORM_SARX_VGPR32d_VGPR32d_VGPR32d=1663, + XED_IFORM_SARX_VGPR64q_MEMq_VGPR64q=1664, + XED_IFORM_SARX_VGPR64q_VGPR64q_VGPR64q=1665, + XED_IFORM_SBB_AL_IMMb=1666, + XED_IFORM_SBB_GPR8_GPR8_18=1667, + XED_IFORM_SBB_GPR8_GPR8_1A=1668, + XED_IFORM_SBB_GPR8_IMMb_80r3=1669, + XED_IFORM_SBB_GPR8_IMMb_82r3=1670, + XED_IFORM_SBB_GPR8_MEMb=1671, + XED_IFORM_SBB_GPRv_GPRv_19=1672, + XED_IFORM_SBB_GPRv_GPRv_1B=1673, + XED_IFORM_SBB_GPRv_IMMb=1674, + XED_IFORM_SBB_GPRv_IMMz=1675, + XED_IFORM_SBB_GPRv_MEMv=1676, + XED_IFORM_SBB_MEMb_GPR8=1677, + XED_IFORM_SBB_MEMb_IMMb_80r3=1678, + XED_IFORM_SBB_MEMb_IMMb_82r3=1679, + XED_IFORM_SBB_MEMv_GPRv=1680, + XED_IFORM_SBB_MEMv_IMMb=1681, + XED_IFORM_SBB_MEMv_IMMz=1682, + XED_IFORM_SBB_OrAX_IMMz=1683, + XED_IFORM_SBB_LOCK_MEMb_GPR8=1684, + XED_IFORM_SBB_LOCK_MEMb_IMMb_80r3=1685, + XED_IFORM_SBB_LOCK_MEMb_IMMb_82r3=1686, + XED_IFORM_SBB_LOCK_MEMv_GPRv=1687, + XED_IFORM_SBB_LOCK_MEMv_IMMb=1688, + XED_IFORM_SBB_LOCK_MEMv_IMMz=1689, + XED_IFORM_SCASB=1690, + XED_IFORM_SCASD=1691, + XED_IFORM_SCASQ=1692, + XED_IFORM_SCASW=1693, + XED_IFORM_SETB_GPR8=1694, + XED_IFORM_SETB_MEMb=1695, + XED_IFORM_SETBE_GPR8=1696, + XED_IFORM_SETBE_MEMb=1697, + XED_IFORM_SETL_GPR8=1698, + XED_IFORM_SETL_MEMb=1699, + XED_IFORM_SETLE_GPR8=1700, + XED_IFORM_SETLE_MEMb=1701, + XED_IFORM_SETNB_GPR8=1702, + XED_IFORM_SETNB_MEMb=1703, + XED_IFORM_SETNBE_GPR8=1704, + XED_IFORM_SETNBE_MEMb=1705, + XED_IFORM_SETNL_GPR8=1706, + XED_IFORM_SETNL_MEMb=1707, + XED_IFORM_SETNLE_GPR8=1708, + XED_IFORM_SETNLE_MEMb=1709, + XED_IFORM_SETNO_GPR8=1710, + XED_IFORM_SETNO_MEMb=1711, + XED_IFORM_SETNP_GPR8=1712, + XED_IFORM_SETNP_MEMb=1713, + XED_IFORM_SETNS_GPR8=1714, + XED_IFORM_SETNS_MEMb=1715, + XED_IFORM_SETNZ_GPR8=1716, + XED_IFORM_SETNZ_MEMb=1717, + XED_IFORM_SETO_GPR8=1718, + XED_IFORM_SETO_MEMb=1719, + XED_IFORM_SETP_GPR8=1720, + XED_IFORM_SETP_MEMb=1721, + XED_IFORM_SETS_GPR8=1722, + XED_IFORM_SETS_MEMb=1723, + XED_IFORM_SETZ_GPR8=1724, + XED_IFORM_SETZ_MEMb=1725, + XED_IFORM_SFENCE=1726, + XED_IFORM_SGDT_MEMs=1727, + XED_IFORM_SGDT_MEMs64=1728, + XED_IFORM_SHA1MSG1_XMMi32_MEMi32_SHA=1729, + XED_IFORM_SHA1MSG1_XMMi32_XMMi32_SHA=1730, + XED_IFORM_SHA1MSG2_XMMi32_MEMi32_SHA=1731, + XED_IFORM_SHA1MSG2_XMMi32_XMMi32_SHA=1732, + XED_IFORM_SHA1NEXTE_XMMi32_MEMi32_SHA=1733, + XED_IFORM_SHA1NEXTE_XMMi32_XMMi32_SHA=1734, + XED_IFORM_SHA1RNDS4_XMMi32_MEMi32_IMM8_SHA=1735, + XED_IFORM_SHA1RNDS4_XMMi32_XMMi32_IMM8_SHA=1736, + XED_IFORM_SHA256MSG1_XMMi32_MEMi32_SHA=1737, + XED_IFORM_SHA256MSG1_XMMi32_XMMi32_SHA=1738, + XED_IFORM_SHA256MSG2_XMMi32_MEMi32_SHA=1739, + XED_IFORM_SHA256MSG2_XMMi32_XMMi32_SHA=1740, + XED_IFORM_SHA256RNDS2_XMMi32_MEMi32_SHA=1741, + XED_IFORM_SHA256RNDS2_XMMi32_XMMi32_SHA=1742, + XED_IFORM_SHL_GPR8_CL_D2r4=1743, + XED_IFORM_SHL_GPR8_CL_D2r6=1744, + XED_IFORM_SHL_GPR8_IMMb_C0r4=1745, + XED_IFORM_SHL_GPR8_IMMb_C0r6=1746, + XED_IFORM_SHL_GPR8_ONE_D0r4=1747, + XED_IFORM_SHL_GPR8_ONE_D0r6=1748, + XED_IFORM_SHL_GPRv_CL_D3r4=1749, + XED_IFORM_SHL_GPRv_CL_D3r6=1750, + XED_IFORM_SHL_GPRv_IMMb_C1r4=1751, + XED_IFORM_SHL_GPRv_IMMb_C1r6=1752, + XED_IFORM_SHL_GPRv_ONE_D1r4=1753, + XED_IFORM_SHL_GPRv_ONE_D1r6=1754, + XED_IFORM_SHL_MEMb_CL_D2r4=1755, + XED_IFORM_SHL_MEMb_CL_D2r6=1756, + XED_IFORM_SHL_MEMb_IMMb_C0r4=1757, + XED_IFORM_SHL_MEMb_IMMb_C0r6=1758, + XED_IFORM_SHL_MEMb_ONE_D0r4=1759, + XED_IFORM_SHL_MEMb_ONE_D0r6=1760, + XED_IFORM_SHL_MEMv_CL_D3r4=1761, + XED_IFORM_SHL_MEMv_CL_D3r6=1762, + XED_IFORM_SHL_MEMv_IMMb_C1r4=1763, + XED_IFORM_SHL_MEMv_IMMb_C1r6=1764, + XED_IFORM_SHL_MEMv_ONE_D1r4=1765, + XED_IFORM_SHL_MEMv_ONE_D1r6=1766, + XED_IFORM_SHLD_GPRv_GPRv_CL=1767, + XED_IFORM_SHLD_GPRv_GPRv_IMMb=1768, + XED_IFORM_SHLD_MEMv_GPRv_CL=1769, + XED_IFORM_SHLD_MEMv_GPRv_IMMb=1770, + XED_IFORM_SHLX_VGPR32d_MEMd_VGPR32d=1771, + XED_IFORM_SHLX_VGPR32d_VGPR32d_VGPR32d=1772, + XED_IFORM_SHLX_VGPR64q_MEMq_VGPR64q=1773, + XED_IFORM_SHLX_VGPR64q_VGPR64q_VGPR64q=1774, + XED_IFORM_SHR_GPR8_CL=1775, + XED_IFORM_SHR_GPR8_IMMb=1776, + XED_IFORM_SHR_GPR8_ONE=1777, + XED_IFORM_SHR_GPRv_CL=1778, + XED_IFORM_SHR_GPRv_IMMb=1779, + XED_IFORM_SHR_GPRv_ONE=1780, + XED_IFORM_SHR_MEMb_CL=1781, + XED_IFORM_SHR_MEMb_IMMb=1782, + XED_IFORM_SHR_MEMb_ONE=1783, + XED_IFORM_SHR_MEMv_CL=1784, + XED_IFORM_SHR_MEMv_IMMb=1785, + XED_IFORM_SHR_MEMv_ONE=1786, + XED_IFORM_SHRD_GPRv_GPRv_CL=1787, + XED_IFORM_SHRD_GPRv_GPRv_IMMb=1788, + XED_IFORM_SHRD_MEMv_GPRv_CL=1789, + XED_IFORM_SHRD_MEMv_GPRv_IMMb=1790, + XED_IFORM_SHRX_VGPR32d_MEMd_VGPR32d=1791, + XED_IFORM_SHRX_VGPR32d_VGPR32d_VGPR32d=1792, + XED_IFORM_SHRX_VGPR64q_MEMq_VGPR64q=1793, + XED_IFORM_SHRX_VGPR64q_VGPR64q_VGPR64q=1794, + XED_IFORM_SHUFPD_XMMpd_MEMpd_IMMb=1795, + XED_IFORM_SHUFPD_XMMpd_XMMpd_IMMb=1796, + XED_IFORM_SHUFPS_XMMps_MEMps_IMMb=1797, + XED_IFORM_SHUFPS_XMMps_XMMps_IMMb=1798, + XED_IFORM_SIDT_MEMs=1799, + XED_IFORM_SIDT_MEMs64=1800, + XED_IFORM_SKINIT_EAX=1801, + XED_IFORM_SLDT_GPRv=1802, + XED_IFORM_SLDT_MEMw=1803, + XED_IFORM_SLWPCB_GPRyy=1804, + XED_IFORM_SMSW_GPRv=1805, + XED_IFORM_SMSW_MEMw=1806, + XED_IFORM_SQRTPD_XMMpd_MEMpd=1807, + XED_IFORM_SQRTPD_XMMpd_XMMpd=1808, + XED_IFORM_SQRTPS_XMMps_MEMps=1809, + XED_IFORM_SQRTPS_XMMps_XMMps=1810, + XED_IFORM_SQRTSD_XMMsd_MEMsd=1811, + XED_IFORM_SQRTSD_XMMsd_XMMsd=1812, + XED_IFORM_SQRTSS_XMMss_MEMss=1813, + XED_IFORM_SQRTSS_XMMss_XMMss=1814, + XED_IFORM_STAC=1815, + XED_IFORM_STC=1816, + XED_IFORM_STD=1817, + XED_IFORM_STGI=1818, + XED_IFORM_STI=1819, + XED_IFORM_STMXCSR_MEMd=1820, + XED_IFORM_STOSB=1821, + XED_IFORM_STOSD=1822, + XED_IFORM_STOSQ=1823, + XED_IFORM_STOSW=1824, + XED_IFORM_STR_GPRv=1825, + XED_IFORM_STR_MEMw=1826, + XED_IFORM_SUB_AL_IMMb=1827, + XED_IFORM_SUB_GPR8_GPR8_28=1828, + XED_IFORM_SUB_GPR8_GPR8_2A=1829, + XED_IFORM_SUB_GPR8_IMMb_80r5=1830, + XED_IFORM_SUB_GPR8_IMMb_82r5=1831, + XED_IFORM_SUB_GPR8_MEMb=1832, + XED_IFORM_SUB_GPRv_GPRv_29=1833, + XED_IFORM_SUB_GPRv_GPRv_2B=1834, + XED_IFORM_SUB_GPRv_IMMb=1835, + XED_IFORM_SUB_GPRv_IMMz=1836, + XED_IFORM_SUB_GPRv_MEMv=1837, + XED_IFORM_SUB_MEMb_GPR8=1838, + XED_IFORM_SUB_MEMb_IMMb_80r5=1839, + XED_IFORM_SUB_MEMb_IMMb_82r5=1840, + XED_IFORM_SUB_MEMv_GPRv=1841, + XED_IFORM_SUB_MEMv_IMMb=1842, + XED_IFORM_SUB_MEMv_IMMz=1843, + XED_IFORM_SUB_OrAX_IMMz=1844, + XED_IFORM_SUBPD_XMMpd_MEMpd=1845, + XED_IFORM_SUBPD_XMMpd_XMMpd=1846, + XED_IFORM_SUBPS_XMMps_MEMps=1847, + XED_IFORM_SUBPS_XMMps_XMMps=1848, + XED_IFORM_SUBSD_XMMsd_MEMsd=1849, + XED_IFORM_SUBSD_XMMsd_XMMsd=1850, + XED_IFORM_SUBSS_XMMss_MEMss=1851, + XED_IFORM_SUBSS_XMMss_XMMss=1852, + XED_IFORM_SUB_LOCK_MEMb_GPR8=1853, + XED_IFORM_SUB_LOCK_MEMb_IMMb_80r5=1854, + XED_IFORM_SUB_LOCK_MEMb_IMMb_82r5=1855, + XED_IFORM_SUB_LOCK_MEMv_GPRv=1856, + XED_IFORM_SUB_LOCK_MEMv_IMMb=1857, + XED_IFORM_SUB_LOCK_MEMv_IMMz=1858, + XED_IFORM_SWAPGS=1859, + XED_IFORM_SYSCALL=1860, + XED_IFORM_SYSCALL_AMD=1861, + XED_IFORM_SYSENTER=1862, + XED_IFORM_SYSEXIT=1863, + XED_IFORM_SYSRET=1864, + XED_IFORM_SYSRET_AMD=1865, + XED_IFORM_T1MSKC_GPRyy_GPRvy=1866, + XED_IFORM_T1MSKC_GPRyy_MEMy=1867, + XED_IFORM_TEST_AL_IMMb=1868, + XED_IFORM_TEST_GPR8_GPR8=1869, + XED_IFORM_TEST_GPR8_IMMb_F6r0=1870, + XED_IFORM_TEST_GPR8_IMMb_F6r1=1871, + XED_IFORM_TEST_GPRv_GPRv=1872, + XED_IFORM_TEST_GPRv_IMMz_F7r0=1873, + XED_IFORM_TEST_GPRv_IMMz_F7r1=1874, + XED_IFORM_TEST_MEMb_GPR8=1875, + XED_IFORM_TEST_MEMb_IMMb_F6r0=1876, + XED_IFORM_TEST_MEMb_IMMb_F6r1=1877, + XED_IFORM_TEST_MEMv_GPRv=1878, + XED_IFORM_TEST_MEMv_IMMz_F7r0=1879, + XED_IFORM_TEST_MEMv_IMMz_F7r1=1880, + XED_IFORM_TEST_OrAX_IMMz=1881, + XED_IFORM_TZCNT_GPRv_GPRv=1882, + XED_IFORM_TZCNT_GPRv_MEMv=1883, + XED_IFORM_TZMSK_GPRyy_GPRvy=1884, + XED_IFORM_TZMSK_GPRyy_MEMy=1885, + XED_IFORM_UCOMISD_XMMsd_MEMsd=1886, + XED_IFORM_UCOMISD_XMMsd_XMMsd=1887, + XED_IFORM_UCOMISS_XMMss_MEMss=1888, + XED_IFORM_UCOMISS_XMMss_XMMss=1889, + XED_IFORM_UD2=1890, + XED_IFORM_UNPCKHPD_XMMpd_MEMdq=1891, + XED_IFORM_UNPCKHPD_XMMpd_XMMq=1892, + XED_IFORM_UNPCKHPS_XMMps_MEMdq=1893, + XED_IFORM_UNPCKHPS_XMMps_XMMdq=1894, + XED_IFORM_UNPCKLPD_XMMpd_MEMdq=1895, + XED_IFORM_UNPCKLPD_XMMpd_XMMq=1896, + XED_IFORM_UNPCKLPS_XMMps_MEMdq=1897, + XED_IFORM_UNPCKLPS_XMMps_XMMq=1898, + XED_IFORM_VADDPD_XMMdq_XMMdq_MEMdq=1899, + XED_IFORM_VADDPD_XMMdq_XMMdq_XMMdq=1900, + XED_IFORM_VADDPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=1901, + XED_IFORM_VADDPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=1902, + XED_IFORM_VADDPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=1903, + XED_IFORM_VADDPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=1904, + XED_IFORM_VADDPD_YMMqq_YMMqq_MEMqq=1905, + XED_IFORM_VADDPD_YMMqq_YMMqq_YMMqq=1906, + XED_IFORM_VADDPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=1907, + XED_IFORM_VADDPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=1908, + XED_IFORM_VADDPS_XMMdq_XMMdq_MEMdq=1909, + XED_IFORM_VADDPS_XMMdq_XMMdq_XMMdq=1910, + XED_IFORM_VADDPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=1911, + XED_IFORM_VADDPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=1912, + XED_IFORM_VADDPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=1913, + XED_IFORM_VADDPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=1914, + XED_IFORM_VADDPS_YMMqq_YMMqq_MEMqq=1915, + XED_IFORM_VADDPS_YMMqq_YMMqq_YMMqq=1916, + XED_IFORM_VADDPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=1917, + XED_IFORM_VADDPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=1918, + XED_IFORM_VADDSD_XMMdq_XMMdq_MEMq=1919, + XED_IFORM_VADDSD_XMMdq_XMMdq_XMMq=1920, + XED_IFORM_VADDSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=1921, + XED_IFORM_VADDSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=1922, + XED_IFORM_VADDSS_XMMdq_XMMdq_MEMd=1923, + XED_IFORM_VADDSS_XMMdq_XMMdq_XMMd=1924, + XED_IFORM_VADDSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=1925, + XED_IFORM_VADDSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=1926, + XED_IFORM_VADDSUBPD_XMMdq_XMMdq_MEMdq=1927, + XED_IFORM_VADDSUBPD_XMMdq_XMMdq_XMMdq=1928, + XED_IFORM_VADDSUBPD_YMMqq_YMMqq_MEMqq=1929, + XED_IFORM_VADDSUBPD_YMMqq_YMMqq_YMMqq=1930, + XED_IFORM_VADDSUBPS_XMMdq_XMMdq_MEMdq=1931, + XED_IFORM_VADDSUBPS_XMMdq_XMMdq_XMMdq=1932, + XED_IFORM_VADDSUBPS_YMMqq_YMMqq_MEMqq=1933, + XED_IFORM_VADDSUBPS_YMMqq_YMMqq_YMMqq=1934, + XED_IFORM_VAESDEC_XMMdq_XMMdq_MEMdq=1935, + XED_IFORM_VAESDEC_XMMdq_XMMdq_XMMdq=1936, + XED_IFORM_VAESDECLAST_XMMdq_XMMdq_MEMdq=1937, + XED_IFORM_VAESDECLAST_XMMdq_XMMdq_XMMdq=1938, + XED_IFORM_VAESENC_XMMdq_XMMdq_MEMdq=1939, + XED_IFORM_VAESENC_XMMdq_XMMdq_XMMdq=1940, + XED_IFORM_VAESENCLAST_XMMdq_XMMdq_MEMdq=1941, + XED_IFORM_VAESENCLAST_XMMdq_XMMdq_XMMdq=1942, + XED_IFORM_VAESIMC_XMMdq_MEMdq=1943, + XED_IFORM_VAESIMC_XMMdq_XMMdq=1944, + XED_IFORM_VAESKEYGENASSIST_XMMdq_MEMdq_IMMb=1945, + XED_IFORM_VAESKEYGENASSIST_XMMdq_XMMdq_IMMb=1946, + XED_IFORM_VALIGND_XMMu32_MASKmskw_XMMu32_MEMu32_IMM8_AVX512=1947, + XED_IFORM_VALIGND_XMMu32_MASKmskw_XMMu32_XMMu32_IMM8_AVX512=1948, + XED_IFORM_VALIGND_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512=1949, + XED_IFORM_VALIGND_YMMu32_MASKmskw_YMMu32_YMMu32_IMM8_AVX512=1950, + XED_IFORM_VALIGND_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512=1951, + XED_IFORM_VALIGND_ZMMu32_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512=1952, + XED_IFORM_VALIGNQ_XMMu64_MASKmskw_XMMu64_MEMu64_IMM8_AVX512=1953, + XED_IFORM_VALIGNQ_XMMu64_MASKmskw_XMMu64_XMMu64_IMM8_AVX512=1954, + XED_IFORM_VALIGNQ_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512=1955, + XED_IFORM_VALIGNQ_YMMu64_MASKmskw_YMMu64_YMMu64_IMM8_AVX512=1956, + XED_IFORM_VALIGNQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512=1957, + XED_IFORM_VALIGNQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512=1958, + XED_IFORM_VANDNPD_XMMdq_XMMdq_MEMdq=1959, + XED_IFORM_VANDNPD_XMMdq_XMMdq_XMMdq=1960, + XED_IFORM_VANDNPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=1961, + XED_IFORM_VANDNPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=1962, + XED_IFORM_VANDNPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=1963, + XED_IFORM_VANDNPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=1964, + XED_IFORM_VANDNPD_YMMqq_YMMqq_MEMqq=1965, + XED_IFORM_VANDNPD_YMMqq_YMMqq_YMMqq=1966, + XED_IFORM_VANDNPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=1967, + XED_IFORM_VANDNPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=1968, + XED_IFORM_VANDNPS_XMMdq_XMMdq_MEMdq=1969, + XED_IFORM_VANDNPS_XMMdq_XMMdq_XMMdq=1970, + XED_IFORM_VANDNPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=1971, + XED_IFORM_VANDNPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=1972, + XED_IFORM_VANDNPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=1973, + XED_IFORM_VANDNPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=1974, + XED_IFORM_VANDNPS_YMMqq_YMMqq_MEMqq=1975, + XED_IFORM_VANDNPS_YMMqq_YMMqq_YMMqq=1976, + XED_IFORM_VANDNPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=1977, + XED_IFORM_VANDNPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=1978, + XED_IFORM_VANDPD_XMMdq_XMMdq_MEMdq=1979, + XED_IFORM_VANDPD_XMMdq_XMMdq_XMMdq=1980, + XED_IFORM_VANDPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=1981, + XED_IFORM_VANDPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=1982, + XED_IFORM_VANDPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=1983, + XED_IFORM_VANDPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=1984, + XED_IFORM_VANDPD_YMMqq_YMMqq_MEMqq=1985, + XED_IFORM_VANDPD_YMMqq_YMMqq_YMMqq=1986, + XED_IFORM_VANDPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=1987, + XED_IFORM_VANDPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=1988, + XED_IFORM_VANDPS_XMMdq_XMMdq_MEMdq=1989, + XED_IFORM_VANDPS_XMMdq_XMMdq_XMMdq=1990, + XED_IFORM_VANDPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=1991, + XED_IFORM_VANDPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=1992, + XED_IFORM_VANDPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=1993, + XED_IFORM_VANDPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=1994, + XED_IFORM_VANDPS_YMMqq_YMMqq_MEMqq=1995, + XED_IFORM_VANDPS_YMMqq_YMMqq_YMMqq=1996, + XED_IFORM_VANDPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=1997, + XED_IFORM_VANDPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=1998, + XED_IFORM_VBLENDMPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=1999, + XED_IFORM_VBLENDMPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2000, + XED_IFORM_VBLENDMPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2001, + XED_IFORM_VBLENDMPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2002, + XED_IFORM_VBLENDMPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2003, + XED_IFORM_VBLENDMPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2004, + XED_IFORM_VBLENDMPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2005, + XED_IFORM_VBLENDMPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2006, + XED_IFORM_VBLENDMPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2007, + XED_IFORM_VBLENDMPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2008, + XED_IFORM_VBLENDMPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2009, + XED_IFORM_VBLENDMPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2010, + XED_IFORM_VBLENDPD_XMMdq_XMMdq_MEMdq_IMMb=2011, + XED_IFORM_VBLENDPD_XMMdq_XMMdq_XMMdq_IMMb=2012, + XED_IFORM_VBLENDPD_YMMqq_YMMqq_MEMqq_IMMb=2013, + XED_IFORM_VBLENDPD_YMMqq_YMMqq_YMMqq_IMMb=2014, + XED_IFORM_VBLENDPS_XMMdq_XMMdq_MEMdq_IMMb=2015, + XED_IFORM_VBLENDPS_XMMdq_XMMdq_XMMdq_IMMb=2016, + XED_IFORM_VBLENDPS_YMMqq_YMMqq_MEMqq_IMMb=2017, + XED_IFORM_VBLENDPS_YMMqq_YMMqq_YMMqq_IMMb=2018, + XED_IFORM_VBLENDVPD_XMMdq_XMMdq_MEMdq_XMMdq=2019, + XED_IFORM_VBLENDVPD_XMMdq_XMMdq_XMMdq_XMMdq=2020, + XED_IFORM_VBLENDVPD_YMMqq_YMMqq_MEMqq_YMMqq=2021, + XED_IFORM_VBLENDVPD_YMMqq_YMMqq_YMMqq_YMMqq=2022, + XED_IFORM_VBLENDVPS_XMMdq_XMMdq_MEMdq_XMMdq=2023, + XED_IFORM_VBLENDVPS_XMMdq_XMMdq_XMMdq_XMMdq=2024, + XED_IFORM_VBLENDVPS_YMMqq_YMMqq_MEMqq_YMMqq=2025, + XED_IFORM_VBLENDVPS_YMMqq_YMMqq_YMMqq_YMMqq=2026, + XED_IFORM_VBROADCASTF128_YMMqq_MEMdq=2027, + XED_IFORM_VBROADCASTF32X2_YMMf32_MASKmskw_MEMf32_AVX512=2028, + XED_IFORM_VBROADCASTF32X2_YMMf32_MASKmskw_XMMf32_AVX512=2029, + XED_IFORM_VBROADCASTF32X2_ZMMf32_MASKmskw_MEMf32_AVX512=2030, + XED_IFORM_VBROADCASTF32X2_ZMMf32_MASKmskw_XMMf32_AVX512=2031, + XED_IFORM_VBROADCASTF32X4_YMMf32_MASKmskw_MEMf32_AVX512=2032, + XED_IFORM_VBROADCASTF32X4_ZMMf32_MASKmskw_MEMf32_AVX512=2033, + XED_IFORM_VBROADCASTF32X8_ZMMf32_MASKmskw_MEMf32_AVX512=2034, + XED_IFORM_VBROADCASTF64X2_YMMf64_MASKmskw_MEMf64_AVX512=2035, + XED_IFORM_VBROADCASTF64X2_ZMMf64_MASKmskw_MEMf64_AVX512=2036, + XED_IFORM_VBROADCASTF64X4_ZMMf64_MASKmskw_MEMf64_AVX512=2037, + XED_IFORM_VBROADCASTI128_YMMqq_MEMdq=2038, + XED_IFORM_VBROADCASTI32X2_XMMu32_MASKmskw_MEMu32_AVX512=2039, + XED_IFORM_VBROADCASTI32X2_XMMu32_MASKmskw_XMMu32_AVX512=2040, + XED_IFORM_VBROADCASTI32X2_YMMu32_MASKmskw_MEMu32_AVX512=2041, + XED_IFORM_VBROADCASTI32X2_YMMu32_MASKmskw_XMMu32_AVX512=2042, + XED_IFORM_VBROADCASTI32X2_ZMMu32_MASKmskw_MEMu32_AVX512=2043, + XED_IFORM_VBROADCASTI32X2_ZMMu32_MASKmskw_XMMu32_AVX512=2044, + XED_IFORM_VBROADCASTI32X4_YMMu32_MASKmskw_MEMu32_AVX512=2045, + XED_IFORM_VBROADCASTI32X4_ZMMu32_MASKmskw_MEMu32_AVX512=2046, + XED_IFORM_VBROADCASTI32X8_ZMMu32_MASKmskw_MEMu32_AVX512=2047, + XED_IFORM_VBROADCASTI64X2_YMMu64_MASKmskw_MEMu64_AVX512=2048, + XED_IFORM_VBROADCASTI64X2_ZMMu64_MASKmskw_MEMu64_AVX512=2049, + XED_IFORM_VBROADCASTI64X4_ZMMu64_MASKmskw_MEMu64_AVX512=2050, + XED_IFORM_VBROADCASTSD_YMMf64_MASKmskw_MEMf64_AVX512=2051, + XED_IFORM_VBROADCASTSD_YMMf64_MASKmskw_XMMf64_AVX512=2052, + XED_IFORM_VBROADCASTSD_YMMqq_MEMq=2053, + XED_IFORM_VBROADCASTSD_YMMqq_XMMdq=2054, + XED_IFORM_VBROADCASTSD_ZMMf64_MASKmskw_MEMf64_AVX512=2055, + XED_IFORM_VBROADCASTSD_ZMMf64_MASKmskw_XMMf64_AVX512=2056, + XED_IFORM_VBROADCASTSS_XMMdq_MEMd=2057, + XED_IFORM_VBROADCASTSS_XMMdq_XMMdq=2058, + XED_IFORM_VBROADCASTSS_XMMf32_MASKmskw_MEMf32_AVX512=2059, + XED_IFORM_VBROADCASTSS_XMMf32_MASKmskw_XMMf32_AVX512=2060, + XED_IFORM_VBROADCASTSS_YMMf32_MASKmskw_MEMf32_AVX512=2061, + XED_IFORM_VBROADCASTSS_YMMf32_MASKmskw_XMMf32_AVX512=2062, + XED_IFORM_VBROADCASTSS_YMMqq_MEMd=2063, + XED_IFORM_VBROADCASTSS_YMMqq_XMMdq=2064, + XED_IFORM_VBROADCASTSS_ZMMf32_MASKmskw_MEMf32_AVX512=2065, + XED_IFORM_VBROADCASTSS_ZMMf32_MASKmskw_XMMf32_AVX512=2066, + XED_IFORM_VCMPPD_MASKmskw_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=2067, + XED_IFORM_VCMPPD_MASKmskw_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=2068, + XED_IFORM_VCMPPD_MASKmskw_MASKmskw_YMMf64_MEMf64_IMM8_AVX512=2069, + XED_IFORM_VCMPPD_MASKmskw_MASKmskw_YMMf64_YMMf64_IMM8_AVX512=2070, + XED_IFORM_VCMPPD_MASKmskw_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512=2071, + XED_IFORM_VCMPPD_MASKmskw_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512=2072, + XED_IFORM_VCMPPD_XMMdq_XMMdq_MEMdq_IMMb=2073, + XED_IFORM_VCMPPD_XMMdq_XMMdq_XMMdq_IMMb=2074, + XED_IFORM_VCMPPD_YMMqq_YMMqq_MEMqq_IMMb=2075, + XED_IFORM_VCMPPD_YMMqq_YMMqq_YMMqq_IMMb=2076, + XED_IFORM_VCMPPS_MASKmskw_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=2077, + XED_IFORM_VCMPPS_MASKmskw_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=2078, + XED_IFORM_VCMPPS_MASKmskw_MASKmskw_YMMf32_MEMf32_IMM8_AVX512=2079, + XED_IFORM_VCMPPS_MASKmskw_MASKmskw_YMMf32_YMMf32_IMM8_AVX512=2080, + XED_IFORM_VCMPPS_MASKmskw_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512=2081, + XED_IFORM_VCMPPS_MASKmskw_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512=2082, + XED_IFORM_VCMPPS_XMMdq_XMMdq_MEMdq_IMMb=2083, + XED_IFORM_VCMPPS_XMMdq_XMMdq_XMMdq_IMMb=2084, + XED_IFORM_VCMPPS_YMMqq_YMMqq_MEMqq_IMMb=2085, + XED_IFORM_VCMPPS_YMMqq_YMMqq_YMMqq_IMMb=2086, + XED_IFORM_VCMPSD_MASKmskw_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=2087, + XED_IFORM_VCMPSD_MASKmskw_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=2088, + XED_IFORM_VCMPSD_XMMdq_XMMdq_MEMq_IMMb=2089, + XED_IFORM_VCMPSD_XMMdq_XMMdq_XMMq_IMMb=2090, + XED_IFORM_VCMPSS_MASKmskw_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=2091, + XED_IFORM_VCMPSS_MASKmskw_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=2092, + XED_IFORM_VCMPSS_XMMdq_XMMdq_MEMd_IMMb=2093, + XED_IFORM_VCMPSS_XMMdq_XMMdq_XMMd_IMMb=2094, + XED_IFORM_VCOMISD_XMMf64_MEMf64_AVX512=2095, + XED_IFORM_VCOMISD_XMMf64_XMMf64_AVX512=2096, + XED_IFORM_VCOMISD_XMMq_MEMq=2097, + XED_IFORM_VCOMISD_XMMq_XMMq=2098, + XED_IFORM_VCOMISS_XMMd_MEMd=2099, + XED_IFORM_VCOMISS_XMMd_XMMd=2100, + XED_IFORM_VCOMISS_XMMf32_MEMf32_AVX512=2101, + XED_IFORM_VCOMISS_XMMf32_XMMf32_AVX512=2102, + XED_IFORM_VCOMPRESSPD_MEMf64_MASKmskw_XMMf64_AVX512=2103, + XED_IFORM_VCOMPRESSPD_MEMf64_MASKmskw_YMMf64_AVX512=2104, + XED_IFORM_VCOMPRESSPD_MEMf64_MASKmskw_ZMMf64_AVX512=2105, + XED_IFORM_VCOMPRESSPD_XMMf64_MASKmskw_XMMf64_AVX512=2106, + XED_IFORM_VCOMPRESSPD_YMMf64_MASKmskw_YMMf64_AVX512=2107, + XED_IFORM_VCOMPRESSPD_ZMMf64_MASKmskw_ZMMf64_AVX512=2108, + XED_IFORM_VCOMPRESSPS_MEMf32_MASKmskw_XMMf32_AVX512=2109, + XED_IFORM_VCOMPRESSPS_MEMf32_MASKmskw_YMMf32_AVX512=2110, + XED_IFORM_VCOMPRESSPS_MEMf32_MASKmskw_ZMMf32_AVX512=2111, + XED_IFORM_VCOMPRESSPS_XMMf32_MASKmskw_XMMf32_AVX512=2112, + XED_IFORM_VCOMPRESSPS_YMMf32_MASKmskw_YMMf32_AVX512=2113, + XED_IFORM_VCOMPRESSPS_ZMMf32_MASKmskw_ZMMf32_AVX512=2114, + XED_IFORM_VCVTDQ2PD_XMMdq_MEMq=2115, + XED_IFORM_VCVTDQ2PD_XMMdq_XMMq=2116, + XED_IFORM_VCVTDQ2PD_XMMf64_MASKmskw_MEMi32_AVX512=2117, + XED_IFORM_VCVTDQ2PD_XMMf64_MASKmskw_XMMi32_AVX512=2118, + XED_IFORM_VCVTDQ2PD_YMMf64_MASKmskw_MEMi32_AVX512=2119, + XED_IFORM_VCVTDQ2PD_YMMf64_MASKmskw_XMMi32_AVX512=2120, + XED_IFORM_VCVTDQ2PD_YMMqq_MEMdq=2121, + XED_IFORM_VCVTDQ2PD_YMMqq_XMMdq=2122, + XED_IFORM_VCVTDQ2PD_ZMMf64_MASKmskw_MEMi32_AVX512=2123, + XED_IFORM_VCVTDQ2PD_ZMMf64_MASKmskw_YMMi32_AVX512=2124, + XED_IFORM_VCVTDQ2PS_XMMdq_MEMdq=2125, + XED_IFORM_VCVTDQ2PS_XMMdq_XMMdq=2126, + XED_IFORM_VCVTDQ2PS_XMMf32_MASKmskw_MEMi32_AVX512=2127, + XED_IFORM_VCVTDQ2PS_XMMf32_MASKmskw_XMMi32_AVX512=2128, + XED_IFORM_VCVTDQ2PS_YMMf32_MASKmskw_MEMi32_AVX512=2129, + XED_IFORM_VCVTDQ2PS_YMMf32_MASKmskw_YMMi32_AVX512=2130, + XED_IFORM_VCVTDQ2PS_YMMqq_MEMqq=2131, + XED_IFORM_VCVTDQ2PS_YMMqq_YMMqq=2132, + XED_IFORM_VCVTDQ2PS_ZMMf32_MASKmskw_MEMi32_AVX512=2133, + XED_IFORM_VCVTDQ2PS_ZMMf32_MASKmskw_ZMMi32_AVX512=2134, + XED_IFORM_VCVTPD2DQ_XMMdq_MEMdq=2135, + XED_IFORM_VCVTPD2DQ_XMMdq_MEMqq=2136, + XED_IFORM_VCVTPD2DQ_XMMdq_XMMdq=2137, + XED_IFORM_VCVTPD2DQ_XMMdq_YMMqq=2138, + XED_IFORM_VCVTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL128=2139, + XED_IFORM_VCVTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL256=2140, + XED_IFORM_VCVTPD2DQ_XMMi32_MASKmskw_XMMf64_AVX512_VL128=2141, + XED_IFORM_VCVTPD2DQ_XMMi32_MASKmskw_YMMf64_AVX512_VL256=2142, + XED_IFORM_VCVTPD2DQ_YMMi32_MASKmskw_MEMf64_AVX512_VL512=2143, + XED_IFORM_VCVTPD2DQ_YMMi32_MASKmskw_ZMMf64_AVX512_VL512=2144, + XED_IFORM_VCVTPD2PS_XMMdq_MEMdq=2145, + XED_IFORM_VCVTPD2PS_XMMdq_MEMqq=2146, + XED_IFORM_VCVTPD2PS_XMMdq_XMMdq=2147, + XED_IFORM_VCVTPD2PS_XMMdq_YMMqq=2148, + XED_IFORM_VCVTPD2PS_XMMf32_MASKmskw_MEMf64_AVX512_VL128=2149, + XED_IFORM_VCVTPD2PS_XMMf32_MASKmskw_MEMf64_AVX512_VL256=2150, + XED_IFORM_VCVTPD2PS_XMMf32_MASKmskw_XMMf64_AVX512_VL128=2151, + XED_IFORM_VCVTPD2PS_XMMf32_MASKmskw_YMMf64_AVX512_VL256=2152, + XED_IFORM_VCVTPD2PS_YMMf32_MASKmskw_MEMf64_AVX512_VL512=2153, + XED_IFORM_VCVTPD2PS_YMMf32_MASKmskw_ZMMf64_AVX512_VL512=2154, + XED_IFORM_VCVTPD2QQ_XMMi64_MASKmskw_MEMf64_AVX512=2155, + XED_IFORM_VCVTPD2QQ_XMMi64_MASKmskw_XMMf64_AVX512=2156, + XED_IFORM_VCVTPD2QQ_YMMi64_MASKmskw_MEMf64_AVX512=2157, + XED_IFORM_VCVTPD2QQ_YMMi64_MASKmskw_YMMf64_AVX512=2158, + XED_IFORM_VCVTPD2QQ_ZMMi64_MASKmskw_MEMf64_AVX512=2159, + XED_IFORM_VCVTPD2QQ_ZMMi64_MASKmskw_ZMMf64_AVX512=2160, + XED_IFORM_VCVTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL128=2161, + XED_IFORM_VCVTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL256=2162, + XED_IFORM_VCVTPD2UDQ_XMMu32_MASKmskw_XMMf64_AVX512_VL128=2163, + XED_IFORM_VCVTPD2UDQ_XMMu32_MASKmskw_YMMf64_AVX512_VL256=2164, + XED_IFORM_VCVTPD2UDQ_YMMu32_MASKmskw_MEMf64_AVX512_VL512=2165, + XED_IFORM_VCVTPD2UDQ_YMMu32_MASKmskw_ZMMf64_AVX512_VL512=2166, + XED_IFORM_VCVTPD2UQQ_XMMu64_MASKmskw_MEMf64_AVX512=2167, + XED_IFORM_VCVTPD2UQQ_XMMu64_MASKmskw_XMMf64_AVX512=2168, + XED_IFORM_VCVTPD2UQQ_YMMu64_MASKmskw_MEMf64_AVX512=2169, + XED_IFORM_VCVTPD2UQQ_YMMu64_MASKmskw_YMMf64_AVX512=2170, + XED_IFORM_VCVTPD2UQQ_ZMMu64_MASKmskw_MEMf64_AVX512=2171, + XED_IFORM_VCVTPD2UQQ_ZMMu64_MASKmskw_ZMMf64_AVX512=2172, + XED_IFORM_VCVTPH2PS_XMMdq_MEMq=2173, + XED_IFORM_VCVTPH2PS_XMMdq_XMMq=2174, + XED_IFORM_VCVTPH2PS_XMMf32_MASKmskw_MEMf16_AVX512=2175, + XED_IFORM_VCVTPH2PS_XMMf32_MASKmskw_XMMf16_AVX512=2176, + XED_IFORM_VCVTPH2PS_YMMf32_MASKmskw_MEMf16_AVX512=2177, + XED_IFORM_VCVTPH2PS_YMMf32_MASKmskw_XMMf16_AVX512=2178, + XED_IFORM_VCVTPH2PS_YMMqq_MEMdq=2179, + XED_IFORM_VCVTPH2PS_YMMqq_XMMdq=2180, + XED_IFORM_VCVTPH2PS_ZMMf32_MASKmskw_MEMf16_AVX512=2181, + XED_IFORM_VCVTPH2PS_ZMMf32_MASKmskw_YMMf16_AVX512=2182, + XED_IFORM_VCVTPS2DQ_XMMdq_MEMdq=2183, + XED_IFORM_VCVTPS2DQ_XMMdq_XMMdq=2184, + XED_IFORM_VCVTPS2DQ_XMMi32_MASKmskw_MEMf32_AVX512=2185, + XED_IFORM_VCVTPS2DQ_XMMi32_MASKmskw_XMMf32_AVX512=2186, + XED_IFORM_VCVTPS2DQ_YMMi32_MASKmskw_MEMf32_AVX512=2187, + XED_IFORM_VCVTPS2DQ_YMMi32_MASKmskw_YMMf32_AVX512=2188, + XED_IFORM_VCVTPS2DQ_YMMqq_MEMqq=2189, + XED_IFORM_VCVTPS2DQ_YMMqq_YMMqq=2190, + XED_IFORM_VCVTPS2DQ_ZMMi32_MASKmskw_MEMf32_AVX512=2191, + XED_IFORM_VCVTPS2DQ_ZMMi32_MASKmskw_ZMMf32_AVX512=2192, + XED_IFORM_VCVTPS2PD_XMMdq_MEMq=2193, + XED_IFORM_VCVTPS2PD_XMMdq_XMMq=2194, + XED_IFORM_VCVTPS2PD_XMMf64_MASKmskw_MEMf32_AVX512=2195, + XED_IFORM_VCVTPS2PD_XMMf64_MASKmskw_XMMf32_AVX512=2196, + XED_IFORM_VCVTPS2PD_YMMf64_MASKmskw_MEMf32_AVX512=2197, + XED_IFORM_VCVTPS2PD_YMMf64_MASKmskw_XMMf32_AVX512=2198, + XED_IFORM_VCVTPS2PD_YMMqq_MEMdq=2199, + XED_IFORM_VCVTPS2PD_YMMqq_XMMdq=2200, + XED_IFORM_VCVTPS2PD_ZMMf64_MASKmskw_MEMf32_AVX512=2201, + XED_IFORM_VCVTPS2PD_ZMMf64_MASKmskw_YMMf32_AVX512=2202, + XED_IFORM_VCVTPS2PH_MEMdq_YMMqq_IMMb=2203, + XED_IFORM_VCVTPS2PH_MEMf16_MASKmskw_XMMf32_IMM8_AVX512=2204, + XED_IFORM_VCVTPS2PH_MEMf16_MASKmskw_YMMf32_IMM8_AVX512=2205, + XED_IFORM_VCVTPS2PH_MEMf16_MASKmskw_ZMMf32_IMM8_AVX512=2206, + XED_IFORM_VCVTPS2PH_MEMq_XMMdq_IMMb=2207, + XED_IFORM_VCVTPS2PH_XMMdq_YMMqq_IMMb=2208, + XED_IFORM_VCVTPS2PH_XMMf16_MASKmskw_XMMf32_IMM8_AVX512=2209, + XED_IFORM_VCVTPS2PH_XMMf16_MASKmskw_YMMf32_IMM8_AVX512=2210, + XED_IFORM_VCVTPS2PH_XMMq_XMMdq_IMMb=2211, + XED_IFORM_VCVTPS2PH_YMMf16_MASKmskw_ZMMf32_IMM8_AVX512=2212, + XED_IFORM_VCVTPS2QQ_XMMi64_MASKmskw_MEMf32_AVX512=2213, + XED_IFORM_VCVTPS2QQ_XMMi64_MASKmskw_XMMf32_AVX512=2214, + XED_IFORM_VCVTPS2QQ_YMMi64_MASKmskw_MEMf32_AVX512=2215, + XED_IFORM_VCVTPS2QQ_YMMi64_MASKmskw_XMMf32_AVX512=2216, + XED_IFORM_VCVTPS2QQ_ZMMi64_MASKmskw_MEMf32_AVX512=2217, + XED_IFORM_VCVTPS2QQ_ZMMi64_MASKmskw_YMMf32_AVX512=2218, + XED_IFORM_VCVTPS2UDQ_XMMu32_MASKmskw_MEMf32_AVX512=2219, + XED_IFORM_VCVTPS2UDQ_XMMu32_MASKmskw_XMMf32_AVX512=2220, + XED_IFORM_VCVTPS2UDQ_YMMu32_MASKmskw_MEMf32_AVX512=2221, + XED_IFORM_VCVTPS2UDQ_YMMu32_MASKmskw_YMMf32_AVX512=2222, + XED_IFORM_VCVTPS2UDQ_ZMMu32_MASKmskw_MEMf32_AVX512=2223, + XED_IFORM_VCVTPS2UDQ_ZMMu32_MASKmskw_ZMMf32_AVX512=2224, + XED_IFORM_VCVTPS2UQQ_XMMu64_MASKmskw_MEMf32_AVX512=2225, + XED_IFORM_VCVTPS2UQQ_XMMu64_MASKmskw_XMMf32_AVX512=2226, + XED_IFORM_VCVTPS2UQQ_YMMu64_MASKmskw_MEMf32_AVX512=2227, + XED_IFORM_VCVTPS2UQQ_YMMu64_MASKmskw_XMMf32_AVX512=2228, + XED_IFORM_VCVTPS2UQQ_ZMMu64_MASKmskw_MEMf32_AVX512=2229, + XED_IFORM_VCVTPS2UQQ_ZMMu64_MASKmskw_YMMf32_AVX512=2230, + XED_IFORM_VCVTQQ2PD_XMMi64_MASKmskw_MEMf64_AVX512=2231, + XED_IFORM_VCVTQQ2PD_XMMi64_MASKmskw_XMMf64_AVX512=2232, + XED_IFORM_VCVTQQ2PD_YMMi64_MASKmskw_MEMf64_AVX512=2233, + XED_IFORM_VCVTQQ2PD_YMMi64_MASKmskw_YMMf64_AVX512=2234, + XED_IFORM_VCVTQQ2PD_ZMMi64_MASKmskw_MEMf64_AVX512=2235, + XED_IFORM_VCVTQQ2PD_ZMMi64_MASKmskw_ZMMf64_AVX512=2236, + XED_IFORM_VCVTQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL128=2237, + XED_IFORM_VCVTQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL256=2238, + XED_IFORM_VCVTQQ2PS_XMMf32_MASKmskw_XMMu64_AVX512_VL128=2239, + XED_IFORM_VCVTQQ2PS_XMMf32_MASKmskw_YMMu64_AVX512_VL256=2240, + XED_IFORM_VCVTQQ2PS_YMMf32_MASKmskw_MEMu64_AVX512_VL512=2241, + XED_IFORM_VCVTQQ2PS_YMMf32_MASKmskw_ZMMu64_AVX512_VL512=2242, + XED_IFORM_VCVTSD2SI_GPR32d_MEMq=2243, + XED_IFORM_VCVTSD2SI_GPR32d_XMMq=2244, + XED_IFORM_VCVTSD2SI_GPR32i32_MEMf64_AVX512=2245, + XED_IFORM_VCVTSD2SI_GPR32i32_XMMf64_AVX512=2246, + XED_IFORM_VCVTSD2SI_GPR64i64_MEMf64_AVX512=2247, + XED_IFORM_VCVTSD2SI_GPR64i64_XMMf64_AVX512=2248, + XED_IFORM_VCVTSD2SI_GPR64q_MEMq=2249, + XED_IFORM_VCVTSD2SI_GPR64q_XMMq=2250, + XED_IFORM_VCVTSD2SS_XMMdq_XMMdq_MEMq=2251, + XED_IFORM_VCVTSD2SS_XMMdq_XMMdq_XMMq=2252, + XED_IFORM_VCVTSD2SS_XMMf32_MASKmskw_XMMf64_MEMf64_AVX512=2253, + XED_IFORM_VCVTSD2SS_XMMf32_MASKmskw_XMMf64_XMMf64_AVX512=2254, + XED_IFORM_VCVTSD2USI_GPR32u32_MEMf64_AVX512=2255, + XED_IFORM_VCVTSD2USI_GPR32u32_XMMf64_AVX512=2256, + XED_IFORM_VCVTSD2USI_GPR64u64_MEMf64_AVX512=2257, + XED_IFORM_VCVTSD2USI_GPR64u64_XMMf64_AVX512=2258, + XED_IFORM_VCVTSI2SD_XMMdq_XMMdq_GPR32d=2259, + XED_IFORM_VCVTSI2SD_XMMdq_XMMdq_GPR64q=2260, + XED_IFORM_VCVTSI2SD_XMMdq_XMMdq_MEMd=2261, + XED_IFORM_VCVTSI2SD_XMMdq_XMMdq_MEMq=2262, + XED_IFORM_VCVTSI2SD_XMMf64_XMMf64_GPR32i32_AVX512=2263, + XED_IFORM_VCVTSI2SD_XMMf64_XMMf64_GPR64i64_AVX512=2264, + XED_IFORM_VCVTSI2SD_XMMf64_XMMf64_MEMi32_AVX512=2265, + XED_IFORM_VCVTSI2SD_XMMf64_XMMf64_MEMi64_AVX512=2266, + XED_IFORM_VCVTSI2SS_XMMdq_XMMdq_GPR32d=2267, + XED_IFORM_VCVTSI2SS_XMMdq_XMMdq_GPR64q=2268, + XED_IFORM_VCVTSI2SS_XMMdq_XMMdq_MEMd=2269, + XED_IFORM_VCVTSI2SS_XMMdq_XMMdq_MEMq=2270, + XED_IFORM_VCVTSI2SS_XMMf32_XMMf32_GPR32i32_AVX512=2271, + XED_IFORM_VCVTSI2SS_XMMf32_XMMf32_GPR64i64_AVX512=2272, + XED_IFORM_VCVTSI2SS_XMMf32_XMMf32_MEMi32_AVX512=2273, + XED_IFORM_VCVTSI2SS_XMMf32_XMMf32_MEMi64_AVX512=2274, + XED_IFORM_VCVTSS2SD_XMMdq_XMMdq_MEMd=2275, + XED_IFORM_VCVTSS2SD_XMMdq_XMMdq_XMMd=2276, + XED_IFORM_VCVTSS2SD_XMMf64_MASKmskw_XMMf32_MEMf32_AVX512=2277, + XED_IFORM_VCVTSS2SD_XMMf64_MASKmskw_XMMf32_XMMf32_AVX512=2278, + XED_IFORM_VCVTSS2SI_GPR32d_MEMd=2279, + XED_IFORM_VCVTSS2SI_GPR32d_XMMd=2280, + XED_IFORM_VCVTSS2SI_GPR32i32_MEMf32_AVX512=2281, + XED_IFORM_VCVTSS2SI_GPR32i32_XMMf32_AVX512=2282, + XED_IFORM_VCVTSS2SI_GPR64i64_MEMf32_AVX512=2283, + XED_IFORM_VCVTSS2SI_GPR64i64_XMMf32_AVX512=2284, + XED_IFORM_VCVTSS2SI_GPR64q_MEMd=2285, + XED_IFORM_VCVTSS2SI_GPR64q_XMMd=2286, + XED_IFORM_VCVTSS2USI_GPR32u32_MEMf32_AVX512=2287, + XED_IFORM_VCVTSS2USI_GPR32u32_XMMf32_AVX512=2288, + XED_IFORM_VCVTSS2USI_GPR64u64_MEMf32_AVX512=2289, + XED_IFORM_VCVTSS2USI_GPR64u64_XMMf32_AVX512=2290, + XED_IFORM_VCVTTPD2DQ_XMMdq_MEMdq=2291, + XED_IFORM_VCVTTPD2DQ_XMMdq_MEMqq=2292, + XED_IFORM_VCVTTPD2DQ_XMMdq_XMMdq=2293, + XED_IFORM_VCVTTPD2DQ_XMMdq_YMMqq=2294, + XED_IFORM_VCVTTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL128=2295, + XED_IFORM_VCVTTPD2DQ_XMMi32_MASKmskw_MEMf64_AVX512_VL256=2296, + XED_IFORM_VCVTTPD2DQ_XMMi32_MASKmskw_XMMf64_AVX512_VL128=2297, + XED_IFORM_VCVTTPD2DQ_XMMi32_MASKmskw_YMMf64_AVX512_VL256=2298, + XED_IFORM_VCVTTPD2DQ_YMMi32_MASKmskw_MEMf64_AVX512_VL512=2299, + XED_IFORM_VCVTTPD2DQ_YMMi32_MASKmskw_ZMMf64_AVX512_VL512=2300, + XED_IFORM_VCVTTPD2QQ_XMMi64_MASKmskw_MEMf64_AVX512=2301, + XED_IFORM_VCVTTPD2QQ_XMMi64_MASKmskw_XMMf64_AVX512=2302, + XED_IFORM_VCVTTPD2QQ_YMMi64_MASKmskw_MEMf64_AVX512=2303, + XED_IFORM_VCVTTPD2QQ_YMMi64_MASKmskw_YMMf64_AVX512=2304, + XED_IFORM_VCVTTPD2QQ_ZMMi64_MASKmskw_MEMf64_AVX512=2305, + XED_IFORM_VCVTTPD2QQ_ZMMi64_MASKmskw_ZMMf64_AVX512=2306, + XED_IFORM_VCVTTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL128=2307, + XED_IFORM_VCVTTPD2UDQ_XMMu32_MASKmskw_MEMf64_AVX512_VL256=2308, + XED_IFORM_VCVTTPD2UDQ_XMMu32_MASKmskw_XMMf64_AVX512_VL128=2309, + XED_IFORM_VCVTTPD2UDQ_XMMu32_MASKmskw_YMMf64_AVX512_VL256=2310, + XED_IFORM_VCVTTPD2UDQ_YMMu32_MASKmskw_MEMf64_AVX512_VL512=2311, + XED_IFORM_VCVTTPD2UDQ_YMMu32_MASKmskw_ZMMf64_AVX512_VL512=2312, + XED_IFORM_VCVTTPD2UQQ_XMMu64_MASKmskw_MEMf64_AVX512=2313, + XED_IFORM_VCVTTPD2UQQ_XMMu64_MASKmskw_XMMf64_AVX512=2314, + XED_IFORM_VCVTTPD2UQQ_YMMu64_MASKmskw_MEMf64_AVX512=2315, + XED_IFORM_VCVTTPD2UQQ_YMMu64_MASKmskw_YMMf64_AVX512=2316, + XED_IFORM_VCVTTPD2UQQ_ZMMu64_MASKmskw_MEMf64_AVX512=2317, + XED_IFORM_VCVTTPD2UQQ_ZMMu64_MASKmskw_ZMMf64_AVX512=2318, + XED_IFORM_VCVTTPS2DQ_XMMdq_MEMdq=2319, + XED_IFORM_VCVTTPS2DQ_XMMdq_XMMdq=2320, + XED_IFORM_VCVTTPS2DQ_XMMi32_MASKmskw_MEMf32_AVX512=2321, + XED_IFORM_VCVTTPS2DQ_XMMi32_MASKmskw_XMMf32_AVX512=2322, + XED_IFORM_VCVTTPS2DQ_YMMi32_MASKmskw_MEMf32_AVX512=2323, + XED_IFORM_VCVTTPS2DQ_YMMi32_MASKmskw_YMMf32_AVX512=2324, + XED_IFORM_VCVTTPS2DQ_YMMqq_MEMqq=2325, + XED_IFORM_VCVTTPS2DQ_YMMqq_YMMqq=2326, + XED_IFORM_VCVTTPS2DQ_ZMMi32_MASKmskw_MEMf32_AVX512=2327, + XED_IFORM_VCVTTPS2DQ_ZMMi32_MASKmskw_ZMMf32_AVX512=2328, + XED_IFORM_VCVTTPS2QQ_XMMi64_MASKmskw_MEMf32_AVX512=2329, + XED_IFORM_VCVTTPS2QQ_XMMi64_MASKmskw_XMMf32_AVX512=2330, + XED_IFORM_VCVTTPS2QQ_YMMi64_MASKmskw_MEMf32_AVX512=2331, + XED_IFORM_VCVTTPS2QQ_YMMi64_MASKmskw_XMMf32_AVX512=2332, + XED_IFORM_VCVTTPS2QQ_ZMMi64_MASKmskw_MEMf32_AVX512=2333, + XED_IFORM_VCVTTPS2QQ_ZMMi64_MASKmskw_YMMf32_AVX512=2334, + XED_IFORM_VCVTTPS2UDQ_XMMu32_MASKmskw_MEMf32_AVX512=2335, + XED_IFORM_VCVTTPS2UDQ_XMMu32_MASKmskw_XMMf32_AVX512=2336, + XED_IFORM_VCVTTPS2UDQ_YMMu32_MASKmskw_MEMf32_AVX512=2337, + XED_IFORM_VCVTTPS2UDQ_YMMu32_MASKmskw_YMMf32_AVX512=2338, + XED_IFORM_VCVTTPS2UDQ_ZMMu32_MASKmskw_MEMf32_AVX512=2339, + XED_IFORM_VCVTTPS2UDQ_ZMMu32_MASKmskw_ZMMf32_AVX512=2340, + XED_IFORM_VCVTTPS2UQQ_XMMu64_MASKmskw_MEMf32_AVX512=2341, + XED_IFORM_VCVTTPS2UQQ_XMMu64_MASKmskw_XMMf32_AVX512=2342, + XED_IFORM_VCVTTPS2UQQ_YMMu64_MASKmskw_MEMf32_AVX512=2343, + XED_IFORM_VCVTTPS2UQQ_YMMu64_MASKmskw_XMMf32_AVX512=2344, + XED_IFORM_VCVTTPS2UQQ_ZMMu64_MASKmskw_MEMf32_AVX512=2345, + XED_IFORM_VCVTTPS2UQQ_ZMMu64_MASKmskw_YMMf32_AVX512=2346, + XED_IFORM_VCVTTSD2SI_GPR32d_MEMq=2347, + XED_IFORM_VCVTTSD2SI_GPR32d_XMMq=2348, + XED_IFORM_VCVTTSD2SI_GPR32i32_MEMf64_AVX512=2349, + XED_IFORM_VCVTTSD2SI_GPR32i32_XMMf64_AVX512=2350, + XED_IFORM_VCVTTSD2SI_GPR64i64_MEMf64_AVX512=2351, + XED_IFORM_VCVTTSD2SI_GPR64i64_XMMf64_AVX512=2352, + XED_IFORM_VCVTTSD2SI_GPR64q_MEMq=2353, + XED_IFORM_VCVTTSD2SI_GPR64q_XMMq=2354, + XED_IFORM_VCVTTSD2USI_GPR32u32_MEMf64_AVX512=2355, + XED_IFORM_VCVTTSD2USI_GPR32u32_XMMf64_AVX512=2356, + XED_IFORM_VCVTTSD2USI_GPR64u64_MEMf64_AVX512=2357, + XED_IFORM_VCVTTSD2USI_GPR64u64_XMMf64_AVX512=2358, + XED_IFORM_VCVTTSS2SI_GPR32d_MEMd=2359, + XED_IFORM_VCVTTSS2SI_GPR32d_XMMd=2360, + XED_IFORM_VCVTTSS2SI_GPR32i32_MEMf32_AVX512=2361, + XED_IFORM_VCVTTSS2SI_GPR32i32_XMMf32_AVX512=2362, + XED_IFORM_VCVTTSS2SI_GPR64i64_MEMf32_AVX512=2363, + XED_IFORM_VCVTTSS2SI_GPR64i64_XMMf32_AVX512=2364, + XED_IFORM_VCVTTSS2SI_GPR64q_MEMd=2365, + XED_IFORM_VCVTTSS2SI_GPR64q_XMMd=2366, + XED_IFORM_VCVTTSS2USI_GPR32u32_MEMf32_AVX512=2367, + XED_IFORM_VCVTTSS2USI_GPR32u32_XMMf32_AVX512=2368, + XED_IFORM_VCVTTSS2USI_GPR64u64_MEMf32_AVX512=2369, + XED_IFORM_VCVTTSS2USI_GPR64u64_XMMf32_AVX512=2370, + XED_IFORM_VCVTUDQ2PD_XMMf64_MASKmskw_MEMu32_AVX512=2371, + XED_IFORM_VCVTUDQ2PD_XMMf64_MASKmskw_XMMu32_AVX512=2372, + XED_IFORM_VCVTUDQ2PD_YMMf64_MASKmskw_MEMu32_AVX512=2373, + XED_IFORM_VCVTUDQ2PD_YMMf64_MASKmskw_XMMu32_AVX512=2374, + XED_IFORM_VCVTUDQ2PD_ZMMf64_MASKmskw_MEMu32_AVX512=2375, + XED_IFORM_VCVTUDQ2PD_ZMMf64_MASKmskw_YMMu32_AVX512=2376, + XED_IFORM_VCVTUDQ2PS_XMMf32_MASKmskw_MEMu32_AVX512=2377, + XED_IFORM_VCVTUDQ2PS_XMMf32_MASKmskw_XMMu32_AVX512=2378, + XED_IFORM_VCVTUDQ2PS_YMMf32_MASKmskw_MEMu32_AVX512=2379, + XED_IFORM_VCVTUDQ2PS_YMMf32_MASKmskw_YMMu32_AVX512=2380, + XED_IFORM_VCVTUDQ2PS_ZMMf32_MASKmskw_MEMu32_AVX512=2381, + XED_IFORM_VCVTUDQ2PS_ZMMf32_MASKmskw_ZMMu32_AVX512=2382, + XED_IFORM_VCVTUQQ2PD_XMMf64_MASKmskw_MEMu64_AVX512=2383, + XED_IFORM_VCVTUQQ2PD_XMMf64_MASKmskw_XMMu64_AVX512=2384, + XED_IFORM_VCVTUQQ2PD_YMMf64_MASKmskw_MEMu64_AVX512=2385, + XED_IFORM_VCVTUQQ2PD_YMMf64_MASKmskw_YMMu64_AVX512=2386, + XED_IFORM_VCVTUQQ2PD_ZMMf64_MASKmskw_MEMu64_AVX512=2387, + XED_IFORM_VCVTUQQ2PD_ZMMf64_MASKmskw_ZMMu64_AVX512=2388, + XED_IFORM_VCVTUQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL128=2389, + XED_IFORM_VCVTUQQ2PS_XMMf32_MASKmskw_MEMu64_AVX512_VL256=2390, + XED_IFORM_VCVTUQQ2PS_XMMf32_MASKmskw_XMMu64_AVX512_VL128=2391, + XED_IFORM_VCVTUQQ2PS_XMMf32_MASKmskw_YMMu64_AVX512_VL256=2392, + XED_IFORM_VCVTUQQ2PS_YMMf32_MASKmskw_MEMu64_AVX512_VL512=2393, + XED_IFORM_VCVTUQQ2PS_YMMf32_MASKmskw_ZMMu64_AVX512_VL512=2394, + XED_IFORM_VCVTUSI2SD_XMMf64_XMMf64_GPR32u32_AVX512=2395, + XED_IFORM_VCVTUSI2SD_XMMf64_XMMf64_GPR64u64_AVX512=2396, + XED_IFORM_VCVTUSI2SD_XMMf64_XMMf64_MEMu32_AVX512=2397, + XED_IFORM_VCVTUSI2SD_XMMf64_XMMf64_MEMu64_AVX512=2398, + XED_IFORM_VCVTUSI2SS_XMMf32_XMMf32_GPR32u32_AVX512=2399, + XED_IFORM_VCVTUSI2SS_XMMf32_XMMf32_GPR64u64_AVX512=2400, + XED_IFORM_VCVTUSI2SS_XMMf32_XMMf32_MEMu32_AVX512=2401, + XED_IFORM_VCVTUSI2SS_XMMf32_XMMf32_MEMu64_AVX512=2402, + XED_IFORM_VDBPSADBW_XMMu16_MASKmskw_XMMu8_MEMu8_IMM8_AVX512=2403, + XED_IFORM_VDBPSADBW_XMMu16_MASKmskw_XMMu8_XMMu8_IMM8_AVX512=2404, + XED_IFORM_VDBPSADBW_YMMu16_MASKmskw_YMMu8_MEMu8_IMM8_AVX512=2405, + XED_IFORM_VDBPSADBW_YMMu16_MASKmskw_YMMu8_YMMu8_IMM8_AVX512=2406, + XED_IFORM_VDBPSADBW_ZMMu16_MASKmskw_ZMMu8_MEMu8_IMM8_AVX512=2407, + XED_IFORM_VDBPSADBW_ZMMu16_MASKmskw_ZMMu8_ZMMu8_IMM8_AVX512=2408, + XED_IFORM_VDIVPD_XMMdq_XMMdq_MEMdq=2409, + XED_IFORM_VDIVPD_XMMdq_XMMdq_XMMdq=2410, + XED_IFORM_VDIVPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2411, + XED_IFORM_VDIVPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2412, + XED_IFORM_VDIVPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2413, + XED_IFORM_VDIVPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2414, + XED_IFORM_VDIVPD_YMMqq_YMMqq_MEMqq=2415, + XED_IFORM_VDIVPD_YMMqq_YMMqq_YMMqq=2416, + XED_IFORM_VDIVPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2417, + XED_IFORM_VDIVPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2418, + XED_IFORM_VDIVPS_XMMdq_XMMdq_MEMdq=2419, + XED_IFORM_VDIVPS_XMMdq_XMMdq_XMMdq=2420, + XED_IFORM_VDIVPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2421, + XED_IFORM_VDIVPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2422, + XED_IFORM_VDIVPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2423, + XED_IFORM_VDIVPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2424, + XED_IFORM_VDIVPS_YMMqq_YMMqq_MEMqq=2425, + XED_IFORM_VDIVPS_YMMqq_YMMqq_YMMqq=2426, + XED_IFORM_VDIVPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2427, + XED_IFORM_VDIVPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2428, + XED_IFORM_VDIVSD_XMMdq_XMMdq_MEMq=2429, + XED_IFORM_VDIVSD_XMMdq_XMMdq_XMMq=2430, + XED_IFORM_VDIVSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2431, + XED_IFORM_VDIVSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2432, + XED_IFORM_VDIVSS_XMMdq_XMMdq_MEMd=2433, + XED_IFORM_VDIVSS_XMMdq_XMMdq_XMMd=2434, + XED_IFORM_VDIVSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2435, + XED_IFORM_VDIVSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2436, + XED_IFORM_VDPPD_XMMdq_XMMdq_MEMdq_IMMb=2437, + XED_IFORM_VDPPD_XMMdq_XMMdq_XMMdq_IMMb=2438, + XED_IFORM_VDPPS_XMMdq_XMMdq_MEMdq_IMMb=2439, + XED_IFORM_VDPPS_XMMdq_XMMdq_XMMdq_IMMb=2440, + XED_IFORM_VDPPS_YMMqq_YMMqq_MEMqq_IMMb=2441, + XED_IFORM_VDPPS_YMMqq_YMMqq_YMMqq_IMMb=2442, + XED_IFORM_VERR_GPR16=2443, + XED_IFORM_VERR_MEMw=2444, + XED_IFORM_VERW_GPR16=2445, + XED_IFORM_VERW_MEMw=2446, + XED_IFORM_VEXP2PD_ZMMf64_MASKmskw_MEMf64_AVX512ER=2447, + XED_IFORM_VEXP2PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER=2448, + XED_IFORM_VEXP2PS_ZMMf32_MASKmskw_MEMf32_AVX512ER=2449, + XED_IFORM_VEXP2PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER=2450, + XED_IFORM_VEXPANDPD_XMMf64_MASKmskw_MEMf64_AVX512=2451, + XED_IFORM_VEXPANDPD_XMMf64_MASKmskw_XMMf64_AVX512=2452, + XED_IFORM_VEXPANDPD_YMMf64_MASKmskw_MEMf64_AVX512=2453, + XED_IFORM_VEXPANDPD_YMMf64_MASKmskw_YMMf64_AVX512=2454, + XED_IFORM_VEXPANDPD_ZMMf64_MASKmskw_MEMf64_AVX512=2455, + XED_IFORM_VEXPANDPD_ZMMf64_MASKmskw_ZMMf64_AVX512=2456, + XED_IFORM_VEXPANDPS_XMMf32_MASKmskw_MEMf32_AVX512=2457, + XED_IFORM_VEXPANDPS_XMMf32_MASKmskw_XMMf32_AVX512=2458, + XED_IFORM_VEXPANDPS_YMMf32_MASKmskw_MEMf32_AVX512=2459, + XED_IFORM_VEXPANDPS_YMMf32_MASKmskw_YMMf32_AVX512=2460, + XED_IFORM_VEXPANDPS_ZMMf32_MASKmskw_MEMf32_AVX512=2461, + XED_IFORM_VEXPANDPS_ZMMf32_MASKmskw_ZMMf32_AVX512=2462, + XED_IFORM_VEXTRACTF128_MEMdq_YMMdq_IMMb=2463, + XED_IFORM_VEXTRACTF128_XMMdq_YMMdq_IMMb=2464, + XED_IFORM_VEXTRACTF32X4_MEMf32_MASKmskw_YMMf32_IMM8_AVX512=2465, + XED_IFORM_VEXTRACTF32X4_MEMf32_MASKmskw_ZMMf32_IMM8_AVX512=2466, + XED_IFORM_VEXTRACTF32X4_XMMf32_MASKmskw_YMMf32_IMM8_AVX512=2467, + XED_IFORM_VEXTRACTF32X4_XMMf32_MASKmskw_ZMMf32_IMM8_AVX512=2468, + XED_IFORM_VEXTRACTF32X8_MEMf32_MASKmskw_ZMMf32_IMM8_AVX512=2469, + XED_IFORM_VEXTRACTF32X8_YMMf32_MASKmskw_ZMMf32_IMM8_AVX512=2470, + XED_IFORM_VEXTRACTF64X2_MEMf64_MASKmskw_YMMf64_IMM8_AVX512=2471, + XED_IFORM_VEXTRACTF64X2_MEMf64_MASKmskw_ZMMf64_IMM8_AVX512=2472, + XED_IFORM_VEXTRACTF64X2_XMMf64_MASKmskw_YMMf64_IMM8_AVX512=2473, + XED_IFORM_VEXTRACTF64X2_XMMf64_MASKmskw_ZMMf64_IMM8_AVX512=2474, + XED_IFORM_VEXTRACTF64X4_MEMf64_MASKmskw_ZMMf64_IMM8_AVX512=2475, + XED_IFORM_VEXTRACTF64X4_YMMf64_MASKmskw_ZMMf64_IMM8_AVX512=2476, + XED_IFORM_VEXTRACTI128_MEMdq_YMMqq_IMMb=2477, + XED_IFORM_VEXTRACTI128_XMMdq_YMMqq_IMMb=2478, + XED_IFORM_VEXTRACTI32X4_MEMu32_MASKmskw_YMMu32_IMM8_AVX512=2479, + XED_IFORM_VEXTRACTI32X4_MEMu32_MASKmskw_ZMMu32_IMM8_AVX512=2480, + XED_IFORM_VEXTRACTI32X4_XMMu32_MASKmskw_YMMu32_IMM8_AVX512=2481, + XED_IFORM_VEXTRACTI32X4_XMMu32_MASKmskw_ZMMu32_IMM8_AVX512=2482, + XED_IFORM_VEXTRACTI32X8_MEMu32_MASKmskw_ZMMu32_IMM8_AVX512=2483, + XED_IFORM_VEXTRACTI32X8_YMMu32_MASKmskw_ZMMu32_IMM8_AVX512=2484, + XED_IFORM_VEXTRACTI64X2_MEMu64_MASKmskw_YMMu64_IMM8_AVX512=2485, + XED_IFORM_VEXTRACTI64X2_MEMu64_MASKmskw_ZMMu64_IMM8_AVX512=2486, + XED_IFORM_VEXTRACTI64X2_XMMu64_MASKmskw_YMMu64_IMM8_AVX512=2487, + XED_IFORM_VEXTRACTI64X2_XMMu64_MASKmskw_ZMMu64_IMM8_AVX512=2488, + XED_IFORM_VEXTRACTI64X4_MEMu64_MASKmskw_ZMMu64_IMM8_AVX512=2489, + XED_IFORM_VEXTRACTI64X4_YMMu64_MASKmskw_ZMMu64_IMM8_AVX512=2490, + XED_IFORM_VEXTRACTPS_GPR32_XMMdq_IMMb=2491, + XED_IFORM_VEXTRACTPS_GPR32f32_XMMf32_IMM8_AVX512=2492, + XED_IFORM_VEXTRACTPS_MEMd_XMMdq_IMMb=2493, + XED_IFORM_VEXTRACTPS_MEMf32_XMMf32_IMM8_AVX512=2494, + XED_IFORM_VFIXUPIMMPD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=2495, + XED_IFORM_VFIXUPIMMPD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=2496, + XED_IFORM_VFIXUPIMMPD_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512=2497, + XED_IFORM_VFIXUPIMMPD_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512=2498, + XED_IFORM_VFIXUPIMMPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512=2499, + XED_IFORM_VFIXUPIMMPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512=2500, + XED_IFORM_VFIXUPIMMPS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=2501, + XED_IFORM_VFIXUPIMMPS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=2502, + XED_IFORM_VFIXUPIMMPS_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512=2503, + XED_IFORM_VFIXUPIMMPS_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512=2504, + XED_IFORM_VFIXUPIMMPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512=2505, + XED_IFORM_VFIXUPIMMPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512=2506, + XED_IFORM_VFIXUPIMMSD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=2507, + XED_IFORM_VFIXUPIMMSD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=2508, + XED_IFORM_VFIXUPIMMSS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=2509, + XED_IFORM_VFIXUPIMMSS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=2510, + XED_IFORM_VFMADD132PD_XMMdq_XMMdq_MEMdq=2511, + XED_IFORM_VFMADD132PD_XMMdq_XMMdq_XMMdq=2512, + XED_IFORM_VFMADD132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2513, + XED_IFORM_VFMADD132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2514, + XED_IFORM_VFMADD132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2515, + XED_IFORM_VFMADD132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2516, + XED_IFORM_VFMADD132PD_YMMqq_YMMqq_MEMqq=2517, + XED_IFORM_VFMADD132PD_YMMqq_YMMqq_YMMqq=2518, + XED_IFORM_VFMADD132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2519, + XED_IFORM_VFMADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2520, + XED_IFORM_VFMADD132PS_XMMdq_XMMdq_MEMdq=2521, + XED_IFORM_VFMADD132PS_XMMdq_XMMdq_XMMdq=2522, + XED_IFORM_VFMADD132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2523, + XED_IFORM_VFMADD132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2524, + XED_IFORM_VFMADD132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2525, + XED_IFORM_VFMADD132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2526, + XED_IFORM_VFMADD132PS_YMMqq_YMMqq_MEMqq=2527, + XED_IFORM_VFMADD132PS_YMMqq_YMMqq_YMMqq=2528, + XED_IFORM_VFMADD132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2529, + XED_IFORM_VFMADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2530, + XED_IFORM_VFMADD132SD_XMMdq_XMMq_MEMq=2531, + XED_IFORM_VFMADD132SD_XMMdq_XMMq_XMMq=2532, + XED_IFORM_VFMADD132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2533, + XED_IFORM_VFMADD132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2534, + XED_IFORM_VFMADD132SS_XMMdq_XMMd_MEMd=2535, + XED_IFORM_VFMADD132SS_XMMdq_XMMd_XMMd=2536, + XED_IFORM_VFMADD132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2537, + XED_IFORM_VFMADD132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2538, + XED_IFORM_VFMADD213PD_XMMdq_XMMdq_MEMdq=2539, + XED_IFORM_VFMADD213PD_XMMdq_XMMdq_XMMdq=2540, + XED_IFORM_VFMADD213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2541, + XED_IFORM_VFMADD213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2542, + XED_IFORM_VFMADD213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2543, + XED_IFORM_VFMADD213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2544, + XED_IFORM_VFMADD213PD_YMMqq_YMMqq_MEMqq=2545, + XED_IFORM_VFMADD213PD_YMMqq_YMMqq_YMMqq=2546, + XED_IFORM_VFMADD213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2547, + XED_IFORM_VFMADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2548, + XED_IFORM_VFMADD213PS_XMMdq_XMMdq_MEMdq=2549, + XED_IFORM_VFMADD213PS_XMMdq_XMMdq_XMMdq=2550, + XED_IFORM_VFMADD213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2551, + XED_IFORM_VFMADD213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2552, + XED_IFORM_VFMADD213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2553, + XED_IFORM_VFMADD213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2554, + XED_IFORM_VFMADD213PS_YMMqq_YMMqq_MEMqq=2555, + XED_IFORM_VFMADD213PS_YMMqq_YMMqq_YMMqq=2556, + XED_IFORM_VFMADD213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2557, + XED_IFORM_VFMADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2558, + XED_IFORM_VFMADD213SD_XMMdq_XMMq_MEMq=2559, + XED_IFORM_VFMADD213SD_XMMdq_XMMq_XMMq=2560, + XED_IFORM_VFMADD213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2561, + XED_IFORM_VFMADD213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2562, + XED_IFORM_VFMADD213SS_XMMdq_XMMd_MEMd=2563, + XED_IFORM_VFMADD213SS_XMMdq_XMMd_XMMd=2564, + XED_IFORM_VFMADD213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2565, + XED_IFORM_VFMADD213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2566, + XED_IFORM_VFMADD231PD_XMMdq_XMMdq_MEMdq=2567, + XED_IFORM_VFMADD231PD_XMMdq_XMMdq_XMMdq=2568, + XED_IFORM_VFMADD231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2569, + XED_IFORM_VFMADD231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2570, + XED_IFORM_VFMADD231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2571, + XED_IFORM_VFMADD231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2572, + XED_IFORM_VFMADD231PD_YMMqq_YMMqq_MEMqq=2573, + XED_IFORM_VFMADD231PD_YMMqq_YMMqq_YMMqq=2574, + XED_IFORM_VFMADD231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2575, + XED_IFORM_VFMADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2576, + XED_IFORM_VFMADD231PS_XMMdq_XMMdq_MEMdq=2577, + XED_IFORM_VFMADD231PS_XMMdq_XMMdq_XMMdq=2578, + XED_IFORM_VFMADD231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2579, + XED_IFORM_VFMADD231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2580, + XED_IFORM_VFMADD231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2581, + XED_IFORM_VFMADD231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2582, + XED_IFORM_VFMADD231PS_YMMqq_YMMqq_MEMqq=2583, + XED_IFORM_VFMADD231PS_YMMqq_YMMqq_YMMqq=2584, + XED_IFORM_VFMADD231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2585, + XED_IFORM_VFMADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2586, + XED_IFORM_VFMADD231SD_XMMdq_XMMq_MEMq=2587, + XED_IFORM_VFMADD231SD_XMMdq_XMMq_XMMq=2588, + XED_IFORM_VFMADD231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2589, + XED_IFORM_VFMADD231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2590, + XED_IFORM_VFMADD231SS_XMMdq_XMMd_MEMd=2591, + XED_IFORM_VFMADD231SS_XMMdq_XMMd_XMMd=2592, + XED_IFORM_VFMADD231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2593, + XED_IFORM_VFMADD231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2594, + XED_IFORM_VFMADDPD_XMMdq_XMMdq_MEMdq_XMMdq=2595, + XED_IFORM_VFMADDPD_XMMdq_XMMdq_XMMdq_MEMdq=2596, + XED_IFORM_VFMADDPD_XMMdq_XMMdq_XMMdq_XMMdq=2597, + XED_IFORM_VFMADDPD_YMMqq_YMMqq_MEMqq_YMMqq=2598, + XED_IFORM_VFMADDPD_YMMqq_YMMqq_YMMqq_MEMqq=2599, + XED_IFORM_VFMADDPD_YMMqq_YMMqq_YMMqq_YMMqq=2600, + XED_IFORM_VFMADDPS_XMMdq_XMMdq_MEMdq_XMMdq=2601, + XED_IFORM_VFMADDPS_XMMdq_XMMdq_XMMdq_MEMdq=2602, + XED_IFORM_VFMADDPS_XMMdq_XMMdq_XMMdq_XMMdq=2603, + XED_IFORM_VFMADDPS_YMMqq_YMMqq_MEMqq_YMMqq=2604, + XED_IFORM_VFMADDPS_YMMqq_YMMqq_YMMqq_MEMqq=2605, + XED_IFORM_VFMADDPS_YMMqq_YMMqq_YMMqq_YMMqq=2606, + XED_IFORM_VFMADDSD_XMMdq_XMMdq_MEMq_XMMdq=2607, + XED_IFORM_VFMADDSD_XMMdq_XMMdq_XMMdq_MEMq=2608, + XED_IFORM_VFMADDSD_XMMdq_XMMdq_XMMdq_XMMq=2609, + XED_IFORM_VFMADDSD_XMMdq_XMMdq_XMMq_XMMdq=2610, + XED_IFORM_VFMADDSS_XMMdq_XMMdq_MEMd_XMMdq=2611, + XED_IFORM_VFMADDSS_XMMdq_XMMdq_XMMd_XMMdq=2612, + XED_IFORM_VFMADDSS_XMMdq_XMMdq_XMMdq_MEMd=2613, + XED_IFORM_VFMADDSS_XMMdq_XMMdq_XMMdq_XMMd=2614, + XED_IFORM_VFMADDSUB132PD_XMMdq_XMMdq_MEMdq=2615, + XED_IFORM_VFMADDSUB132PD_XMMdq_XMMdq_XMMdq=2616, + XED_IFORM_VFMADDSUB132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2617, + XED_IFORM_VFMADDSUB132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2618, + XED_IFORM_VFMADDSUB132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2619, + XED_IFORM_VFMADDSUB132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2620, + XED_IFORM_VFMADDSUB132PD_YMMqq_YMMqq_MEMqq=2621, + XED_IFORM_VFMADDSUB132PD_YMMqq_YMMqq_YMMqq=2622, + XED_IFORM_VFMADDSUB132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2623, + XED_IFORM_VFMADDSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2624, + XED_IFORM_VFMADDSUB132PS_XMMdq_XMMdq_MEMdq=2625, + XED_IFORM_VFMADDSUB132PS_XMMdq_XMMdq_XMMdq=2626, + XED_IFORM_VFMADDSUB132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2627, + XED_IFORM_VFMADDSUB132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2628, + XED_IFORM_VFMADDSUB132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2629, + XED_IFORM_VFMADDSUB132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2630, + XED_IFORM_VFMADDSUB132PS_YMMqq_YMMqq_MEMqq=2631, + XED_IFORM_VFMADDSUB132PS_YMMqq_YMMqq_YMMqq=2632, + XED_IFORM_VFMADDSUB132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2633, + XED_IFORM_VFMADDSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2634, + XED_IFORM_VFMADDSUB213PD_XMMdq_XMMdq_MEMdq=2635, + XED_IFORM_VFMADDSUB213PD_XMMdq_XMMdq_XMMdq=2636, + XED_IFORM_VFMADDSUB213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2637, + XED_IFORM_VFMADDSUB213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2638, + XED_IFORM_VFMADDSUB213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2639, + XED_IFORM_VFMADDSUB213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2640, + XED_IFORM_VFMADDSUB213PD_YMMqq_YMMqq_MEMqq=2641, + XED_IFORM_VFMADDSUB213PD_YMMqq_YMMqq_YMMqq=2642, + XED_IFORM_VFMADDSUB213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2643, + XED_IFORM_VFMADDSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2644, + XED_IFORM_VFMADDSUB213PS_XMMdq_XMMdq_MEMdq=2645, + XED_IFORM_VFMADDSUB213PS_XMMdq_XMMdq_XMMdq=2646, + XED_IFORM_VFMADDSUB213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2647, + XED_IFORM_VFMADDSUB213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2648, + XED_IFORM_VFMADDSUB213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2649, + XED_IFORM_VFMADDSUB213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2650, + XED_IFORM_VFMADDSUB213PS_YMMqq_YMMqq_MEMqq=2651, + XED_IFORM_VFMADDSUB213PS_YMMqq_YMMqq_YMMqq=2652, + XED_IFORM_VFMADDSUB213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2653, + XED_IFORM_VFMADDSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2654, + XED_IFORM_VFMADDSUB231PD_XMMdq_XMMdq_MEMdq=2655, + XED_IFORM_VFMADDSUB231PD_XMMdq_XMMdq_XMMdq=2656, + XED_IFORM_VFMADDSUB231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2657, + XED_IFORM_VFMADDSUB231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2658, + XED_IFORM_VFMADDSUB231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2659, + XED_IFORM_VFMADDSUB231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2660, + XED_IFORM_VFMADDSUB231PD_YMMqq_YMMqq_MEMqq=2661, + XED_IFORM_VFMADDSUB231PD_YMMqq_YMMqq_YMMqq=2662, + XED_IFORM_VFMADDSUB231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2663, + XED_IFORM_VFMADDSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2664, + XED_IFORM_VFMADDSUB231PS_XMMdq_XMMdq_MEMdq=2665, + XED_IFORM_VFMADDSUB231PS_XMMdq_XMMdq_XMMdq=2666, + XED_IFORM_VFMADDSUB231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2667, + XED_IFORM_VFMADDSUB231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2668, + XED_IFORM_VFMADDSUB231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2669, + XED_IFORM_VFMADDSUB231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2670, + XED_IFORM_VFMADDSUB231PS_YMMqq_YMMqq_MEMqq=2671, + XED_IFORM_VFMADDSUB231PS_YMMqq_YMMqq_YMMqq=2672, + XED_IFORM_VFMADDSUB231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2673, + XED_IFORM_VFMADDSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2674, + XED_IFORM_VFMADDSUBPD_XMMdq_XMMdq_MEMdq_XMMdq=2675, + XED_IFORM_VFMADDSUBPD_XMMdq_XMMdq_XMMdq_MEMdq=2676, + XED_IFORM_VFMADDSUBPD_XMMdq_XMMdq_XMMdq_XMMdq=2677, + XED_IFORM_VFMADDSUBPD_YMMqq_YMMqq_MEMqq_YMMqq=2678, + XED_IFORM_VFMADDSUBPD_YMMqq_YMMqq_YMMqq_MEMqq=2679, + XED_IFORM_VFMADDSUBPD_YMMqq_YMMqq_YMMqq_YMMqq=2680, + XED_IFORM_VFMADDSUBPS_XMMdq_XMMdq_MEMdq_XMMdq=2681, + XED_IFORM_VFMADDSUBPS_XMMdq_XMMdq_XMMdq_MEMdq=2682, + XED_IFORM_VFMADDSUBPS_XMMdq_XMMdq_XMMdq_XMMdq=2683, + XED_IFORM_VFMADDSUBPS_YMMqq_YMMqq_MEMqq_YMMqq=2684, + XED_IFORM_VFMADDSUBPS_YMMqq_YMMqq_YMMqq_MEMqq=2685, + XED_IFORM_VFMADDSUBPS_YMMqq_YMMqq_YMMqq_YMMqq=2686, + XED_IFORM_VFMSUB132PD_XMMdq_XMMdq_MEMdq=2687, + XED_IFORM_VFMSUB132PD_XMMdq_XMMdq_XMMdq=2688, + XED_IFORM_VFMSUB132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2689, + XED_IFORM_VFMSUB132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2690, + XED_IFORM_VFMSUB132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2691, + XED_IFORM_VFMSUB132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2692, + XED_IFORM_VFMSUB132PD_YMMqq_YMMqq_MEMqq=2693, + XED_IFORM_VFMSUB132PD_YMMqq_YMMqq_YMMqq=2694, + XED_IFORM_VFMSUB132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2695, + XED_IFORM_VFMSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2696, + XED_IFORM_VFMSUB132PS_XMMdq_XMMdq_MEMdq=2697, + XED_IFORM_VFMSUB132PS_XMMdq_XMMdq_XMMdq=2698, + XED_IFORM_VFMSUB132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2699, + XED_IFORM_VFMSUB132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2700, + XED_IFORM_VFMSUB132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2701, + XED_IFORM_VFMSUB132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2702, + XED_IFORM_VFMSUB132PS_YMMqq_YMMqq_MEMqq=2703, + XED_IFORM_VFMSUB132PS_YMMqq_YMMqq_YMMqq=2704, + XED_IFORM_VFMSUB132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2705, + XED_IFORM_VFMSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2706, + XED_IFORM_VFMSUB132SD_XMMdq_XMMq_MEMq=2707, + XED_IFORM_VFMSUB132SD_XMMdq_XMMq_XMMq=2708, + XED_IFORM_VFMSUB132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2709, + XED_IFORM_VFMSUB132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2710, + XED_IFORM_VFMSUB132SS_XMMdq_XMMd_MEMd=2711, + XED_IFORM_VFMSUB132SS_XMMdq_XMMd_XMMd=2712, + XED_IFORM_VFMSUB132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2713, + XED_IFORM_VFMSUB132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2714, + XED_IFORM_VFMSUB213PD_XMMdq_XMMdq_MEMdq=2715, + XED_IFORM_VFMSUB213PD_XMMdq_XMMdq_XMMdq=2716, + XED_IFORM_VFMSUB213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2717, + XED_IFORM_VFMSUB213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2718, + XED_IFORM_VFMSUB213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2719, + XED_IFORM_VFMSUB213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2720, + XED_IFORM_VFMSUB213PD_YMMqq_YMMqq_MEMqq=2721, + XED_IFORM_VFMSUB213PD_YMMqq_YMMqq_YMMqq=2722, + XED_IFORM_VFMSUB213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2723, + XED_IFORM_VFMSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2724, + XED_IFORM_VFMSUB213PS_XMMdq_XMMdq_MEMdq=2725, + XED_IFORM_VFMSUB213PS_XMMdq_XMMdq_XMMdq=2726, + XED_IFORM_VFMSUB213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2727, + XED_IFORM_VFMSUB213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2728, + XED_IFORM_VFMSUB213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2729, + XED_IFORM_VFMSUB213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2730, + XED_IFORM_VFMSUB213PS_YMMqq_YMMqq_MEMqq=2731, + XED_IFORM_VFMSUB213PS_YMMqq_YMMqq_YMMqq=2732, + XED_IFORM_VFMSUB213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2733, + XED_IFORM_VFMSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2734, + XED_IFORM_VFMSUB213SD_XMMdq_XMMq_MEMq=2735, + XED_IFORM_VFMSUB213SD_XMMdq_XMMq_XMMq=2736, + XED_IFORM_VFMSUB213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2737, + XED_IFORM_VFMSUB213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2738, + XED_IFORM_VFMSUB213SS_XMMdq_XMMd_MEMd=2739, + XED_IFORM_VFMSUB213SS_XMMdq_XMMd_XMMd=2740, + XED_IFORM_VFMSUB213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2741, + XED_IFORM_VFMSUB213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2742, + XED_IFORM_VFMSUB231PD_XMMdq_XMMdq_MEMdq=2743, + XED_IFORM_VFMSUB231PD_XMMdq_XMMdq_XMMdq=2744, + XED_IFORM_VFMSUB231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2745, + XED_IFORM_VFMSUB231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2746, + XED_IFORM_VFMSUB231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2747, + XED_IFORM_VFMSUB231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2748, + XED_IFORM_VFMSUB231PD_YMMqq_YMMqq_MEMqq=2749, + XED_IFORM_VFMSUB231PD_YMMqq_YMMqq_YMMqq=2750, + XED_IFORM_VFMSUB231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2751, + XED_IFORM_VFMSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2752, + XED_IFORM_VFMSUB231PS_XMMdq_XMMdq_MEMdq=2753, + XED_IFORM_VFMSUB231PS_XMMdq_XMMdq_XMMdq=2754, + XED_IFORM_VFMSUB231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2755, + XED_IFORM_VFMSUB231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2756, + XED_IFORM_VFMSUB231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2757, + XED_IFORM_VFMSUB231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2758, + XED_IFORM_VFMSUB231PS_YMMqq_YMMqq_MEMqq=2759, + XED_IFORM_VFMSUB231PS_YMMqq_YMMqq_YMMqq=2760, + XED_IFORM_VFMSUB231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2761, + XED_IFORM_VFMSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2762, + XED_IFORM_VFMSUB231SD_XMMdq_XMMq_MEMq=2763, + XED_IFORM_VFMSUB231SD_XMMdq_XMMq_XMMq=2764, + XED_IFORM_VFMSUB231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2765, + XED_IFORM_VFMSUB231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2766, + XED_IFORM_VFMSUB231SS_XMMdq_XMMd_MEMd=2767, + XED_IFORM_VFMSUB231SS_XMMdq_XMMd_XMMd=2768, + XED_IFORM_VFMSUB231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2769, + XED_IFORM_VFMSUB231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2770, + XED_IFORM_VFMSUBADD132PD_XMMdq_XMMdq_MEMdq=2771, + XED_IFORM_VFMSUBADD132PD_XMMdq_XMMdq_XMMdq=2772, + XED_IFORM_VFMSUBADD132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2773, + XED_IFORM_VFMSUBADD132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2774, + XED_IFORM_VFMSUBADD132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2775, + XED_IFORM_VFMSUBADD132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2776, + XED_IFORM_VFMSUBADD132PD_YMMqq_YMMqq_MEMqq=2777, + XED_IFORM_VFMSUBADD132PD_YMMqq_YMMqq_YMMqq=2778, + XED_IFORM_VFMSUBADD132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2779, + XED_IFORM_VFMSUBADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2780, + XED_IFORM_VFMSUBADD132PS_XMMdq_XMMdq_MEMdq=2781, + XED_IFORM_VFMSUBADD132PS_XMMdq_XMMdq_XMMdq=2782, + XED_IFORM_VFMSUBADD132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2783, + XED_IFORM_VFMSUBADD132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2784, + XED_IFORM_VFMSUBADD132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2785, + XED_IFORM_VFMSUBADD132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2786, + XED_IFORM_VFMSUBADD132PS_YMMqq_YMMqq_MEMqq=2787, + XED_IFORM_VFMSUBADD132PS_YMMqq_YMMqq_YMMqq=2788, + XED_IFORM_VFMSUBADD132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2789, + XED_IFORM_VFMSUBADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2790, + XED_IFORM_VFMSUBADD213PD_XMMdq_XMMdq_MEMdq=2791, + XED_IFORM_VFMSUBADD213PD_XMMdq_XMMdq_XMMdq=2792, + XED_IFORM_VFMSUBADD213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2793, + XED_IFORM_VFMSUBADD213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2794, + XED_IFORM_VFMSUBADD213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2795, + XED_IFORM_VFMSUBADD213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2796, + XED_IFORM_VFMSUBADD213PD_YMMqq_YMMqq_MEMqq=2797, + XED_IFORM_VFMSUBADD213PD_YMMqq_YMMqq_YMMqq=2798, + XED_IFORM_VFMSUBADD213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2799, + XED_IFORM_VFMSUBADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2800, + XED_IFORM_VFMSUBADD213PS_XMMdq_XMMdq_MEMdq=2801, + XED_IFORM_VFMSUBADD213PS_XMMdq_XMMdq_XMMdq=2802, + XED_IFORM_VFMSUBADD213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2803, + XED_IFORM_VFMSUBADD213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2804, + XED_IFORM_VFMSUBADD213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2805, + XED_IFORM_VFMSUBADD213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2806, + XED_IFORM_VFMSUBADD213PS_YMMqq_YMMqq_MEMqq=2807, + XED_IFORM_VFMSUBADD213PS_YMMqq_YMMqq_YMMqq=2808, + XED_IFORM_VFMSUBADD213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2809, + XED_IFORM_VFMSUBADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2810, + XED_IFORM_VFMSUBADD231PD_XMMdq_XMMdq_MEMdq=2811, + XED_IFORM_VFMSUBADD231PD_XMMdq_XMMdq_XMMdq=2812, + XED_IFORM_VFMSUBADD231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2813, + XED_IFORM_VFMSUBADD231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2814, + XED_IFORM_VFMSUBADD231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2815, + XED_IFORM_VFMSUBADD231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2816, + XED_IFORM_VFMSUBADD231PD_YMMqq_YMMqq_MEMqq=2817, + XED_IFORM_VFMSUBADD231PD_YMMqq_YMMqq_YMMqq=2818, + XED_IFORM_VFMSUBADD231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2819, + XED_IFORM_VFMSUBADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2820, + XED_IFORM_VFMSUBADD231PS_XMMdq_XMMdq_MEMdq=2821, + XED_IFORM_VFMSUBADD231PS_XMMdq_XMMdq_XMMdq=2822, + XED_IFORM_VFMSUBADD231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2823, + XED_IFORM_VFMSUBADD231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2824, + XED_IFORM_VFMSUBADD231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2825, + XED_IFORM_VFMSUBADD231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2826, + XED_IFORM_VFMSUBADD231PS_YMMqq_YMMqq_MEMqq=2827, + XED_IFORM_VFMSUBADD231PS_YMMqq_YMMqq_YMMqq=2828, + XED_IFORM_VFMSUBADD231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2829, + XED_IFORM_VFMSUBADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2830, + XED_IFORM_VFMSUBADDPD_XMMdq_XMMdq_MEMdq_XMMdq=2831, + XED_IFORM_VFMSUBADDPD_XMMdq_XMMdq_XMMdq_MEMdq=2832, + XED_IFORM_VFMSUBADDPD_XMMdq_XMMdq_XMMdq_XMMdq=2833, + XED_IFORM_VFMSUBADDPD_YMMqq_YMMqq_MEMqq_YMMqq=2834, + XED_IFORM_VFMSUBADDPD_YMMqq_YMMqq_YMMqq_MEMqq=2835, + XED_IFORM_VFMSUBADDPD_YMMqq_YMMqq_YMMqq_YMMqq=2836, + XED_IFORM_VFMSUBADDPS_XMMdq_XMMdq_MEMdq_XMMdq=2837, + XED_IFORM_VFMSUBADDPS_XMMdq_XMMdq_XMMdq_MEMdq=2838, + XED_IFORM_VFMSUBADDPS_XMMdq_XMMdq_XMMdq_XMMdq=2839, + XED_IFORM_VFMSUBADDPS_YMMqq_YMMqq_MEMqq_YMMqq=2840, + XED_IFORM_VFMSUBADDPS_YMMqq_YMMqq_YMMqq_MEMqq=2841, + XED_IFORM_VFMSUBADDPS_YMMqq_YMMqq_YMMqq_YMMqq=2842, + XED_IFORM_VFMSUBPD_XMMdq_XMMdq_MEMdq_XMMdq=2843, + XED_IFORM_VFMSUBPD_XMMdq_XMMdq_XMMdq_MEMdq=2844, + XED_IFORM_VFMSUBPD_XMMdq_XMMdq_XMMdq_XMMdq=2845, + XED_IFORM_VFMSUBPD_YMMqq_YMMqq_MEMqq_YMMqq=2846, + XED_IFORM_VFMSUBPD_YMMqq_YMMqq_YMMqq_MEMqq=2847, + XED_IFORM_VFMSUBPD_YMMqq_YMMqq_YMMqq_YMMqq=2848, + XED_IFORM_VFMSUBPS_XMMdq_XMMdq_MEMdq_XMMdq=2849, + XED_IFORM_VFMSUBPS_XMMdq_XMMdq_XMMdq_MEMdq=2850, + XED_IFORM_VFMSUBPS_XMMdq_XMMdq_XMMdq_XMMdq=2851, + XED_IFORM_VFMSUBPS_YMMqq_YMMqq_MEMqq_YMMqq=2852, + XED_IFORM_VFMSUBPS_YMMqq_YMMqq_YMMqq_MEMqq=2853, + XED_IFORM_VFMSUBPS_YMMqq_YMMqq_YMMqq_YMMqq=2854, + XED_IFORM_VFMSUBSD_XMMdq_XMMdq_MEMq_XMMdq=2855, + XED_IFORM_VFMSUBSD_XMMdq_XMMdq_XMMdq_MEMq=2856, + XED_IFORM_VFMSUBSD_XMMdq_XMMdq_XMMdq_XMMq=2857, + XED_IFORM_VFMSUBSD_XMMdq_XMMdq_XMMq_XMMdq=2858, + XED_IFORM_VFMSUBSS_XMMdq_XMMdq_MEMd_XMMdq=2859, + XED_IFORM_VFMSUBSS_XMMdq_XMMdq_XMMd_XMMdq=2860, + XED_IFORM_VFMSUBSS_XMMdq_XMMdq_XMMdq_MEMd=2861, + XED_IFORM_VFMSUBSS_XMMdq_XMMdq_XMMdq_XMMd=2862, + XED_IFORM_VFNMADD132PD_XMMdq_XMMdq_MEMdq=2863, + XED_IFORM_VFNMADD132PD_XMMdq_XMMdq_XMMdq=2864, + XED_IFORM_VFNMADD132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2865, + XED_IFORM_VFNMADD132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2866, + XED_IFORM_VFNMADD132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2867, + XED_IFORM_VFNMADD132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2868, + XED_IFORM_VFNMADD132PD_YMMqq_YMMqq_MEMqq=2869, + XED_IFORM_VFNMADD132PD_YMMqq_YMMqq_YMMqq=2870, + XED_IFORM_VFNMADD132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2871, + XED_IFORM_VFNMADD132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2872, + XED_IFORM_VFNMADD132PS_XMMdq_XMMdq_MEMdq=2873, + XED_IFORM_VFNMADD132PS_XMMdq_XMMdq_XMMdq=2874, + XED_IFORM_VFNMADD132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2875, + XED_IFORM_VFNMADD132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2876, + XED_IFORM_VFNMADD132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2877, + XED_IFORM_VFNMADD132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2878, + XED_IFORM_VFNMADD132PS_YMMqq_YMMqq_MEMqq=2879, + XED_IFORM_VFNMADD132PS_YMMqq_YMMqq_YMMqq=2880, + XED_IFORM_VFNMADD132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2881, + XED_IFORM_VFNMADD132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2882, + XED_IFORM_VFNMADD132SD_XMMdq_XMMq_MEMq=2883, + XED_IFORM_VFNMADD132SD_XMMdq_XMMq_XMMq=2884, + XED_IFORM_VFNMADD132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2885, + XED_IFORM_VFNMADD132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2886, + XED_IFORM_VFNMADD132SS_XMMdq_XMMd_MEMd=2887, + XED_IFORM_VFNMADD132SS_XMMdq_XMMd_XMMd=2888, + XED_IFORM_VFNMADD132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2889, + XED_IFORM_VFNMADD132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2890, + XED_IFORM_VFNMADD213PD_XMMdq_XMMdq_MEMdq=2891, + XED_IFORM_VFNMADD213PD_XMMdq_XMMdq_XMMdq=2892, + XED_IFORM_VFNMADD213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2893, + XED_IFORM_VFNMADD213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2894, + XED_IFORM_VFNMADD213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2895, + XED_IFORM_VFNMADD213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2896, + XED_IFORM_VFNMADD213PD_YMMqq_YMMqq_MEMqq=2897, + XED_IFORM_VFNMADD213PD_YMMqq_YMMqq_YMMqq=2898, + XED_IFORM_VFNMADD213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2899, + XED_IFORM_VFNMADD213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2900, + XED_IFORM_VFNMADD213PS_XMMdq_XMMdq_MEMdq=2901, + XED_IFORM_VFNMADD213PS_XMMdq_XMMdq_XMMdq=2902, + XED_IFORM_VFNMADD213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2903, + XED_IFORM_VFNMADD213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2904, + XED_IFORM_VFNMADD213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2905, + XED_IFORM_VFNMADD213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2906, + XED_IFORM_VFNMADD213PS_YMMqq_YMMqq_MEMqq=2907, + XED_IFORM_VFNMADD213PS_YMMqq_YMMqq_YMMqq=2908, + XED_IFORM_VFNMADD213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2909, + XED_IFORM_VFNMADD213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2910, + XED_IFORM_VFNMADD213SD_XMMdq_XMMq_MEMq=2911, + XED_IFORM_VFNMADD213SD_XMMdq_XMMq_XMMq=2912, + XED_IFORM_VFNMADD213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2913, + XED_IFORM_VFNMADD213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2914, + XED_IFORM_VFNMADD213SS_XMMdq_XMMd_MEMd=2915, + XED_IFORM_VFNMADD213SS_XMMdq_XMMd_XMMd=2916, + XED_IFORM_VFNMADD213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2917, + XED_IFORM_VFNMADD213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2918, + XED_IFORM_VFNMADD231PD_XMMdq_XMMdq_MEMdq=2919, + XED_IFORM_VFNMADD231PD_XMMdq_XMMdq_XMMdq=2920, + XED_IFORM_VFNMADD231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2921, + XED_IFORM_VFNMADD231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2922, + XED_IFORM_VFNMADD231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2923, + XED_IFORM_VFNMADD231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2924, + XED_IFORM_VFNMADD231PD_YMMqq_YMMqq_MEMqq=2925, + XED_IFORM_VFNMADD231PD_YMMqq_YMMqq_YMMqq=2926, + XED_IFORM_VFNMADD231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2927, + XED_IFORM_VFNMADD231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2928, + XED_IFORM_VFNMADD231PS_XMMdq_XMMdq_MEMdq=2929, + XED_IFORM_VFNMADD231PS_XMMdq_XMMdq_XMMdq=2930, + XED_IFORM_VFNMADD231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2931, + XED_IFORM_VFNMADD231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2932, + XED_IFORM_VFNMADD231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2933, + XED_IFORM_VFNMADD231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2934, + XED_IFORM_VFNMADD231PS_YMMqq_YMMqq_MEMqq=2935, + XED_IFORM_VFNMADD231PS_YMMqq_YMMqq_YMMqq=2936, + XED_IFORM_VFNMADD231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2937, + XED_IFORM_VFNMADD231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2938, + XED_IFORM_VFNMADD231SD_XMMdq_XMMq_MEMq=2939, + XED_IFORM_VFNMADD231SD_XMMdq_XMMq_XMMq=2940, + XED_IFORM_VFNMADD231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2941, + XED_IFORM_VFNMADD231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2942, + XED_IFORM_VFNMADD231SS_XMMdq_XMMd_MEMd=2943, + XED_IFORM_VFNMADD231SS_XMMdq_XMMd_XMMd=2944, + XED_IFORM_VFNMADD231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2945, + XED_IFORM_VFNMADD231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2946, + XED_IFORM_VFNMADDPD_XMMdq_XMMdq_MEMdq_XMMdq=2947, + XED_IFORM_VFNMADDPD_XMMdq_XMMdq_XMMdq_MEMdq=2948, + XED_IFORM_VFNMADDPD_XMMdq_XMMdq_XMMdq_XMMdq=2949, + XED_IFORM_VFNMADDPD_YMMqq_YMMqq_MEMqq_YMMqq=2950, + XED_IFORM_VFNMADDPD_YMMqq_YMMqq_YMMqq_MEMqq=2951, + XED_IFORM_VFNMADDPD_YMMqq_YMMqq_YMMqq_YMMqq=2952, + XED_IFORM_VFNMADDPS_XMMdq_XMMdq_MEMdq_XMMdq=2953, + XED_IFORM_VFNMADDPS_XMMdq_XMMdq_XMMdq_MEMdq=2954, + XED_IFORM_VFNMADDPS_XMMdq_XMMdq_XMMdq_XMMdq=2955, + XED_IFORM_VFNMADDPS_YMMqq_YMMqq_MEMqq_YMMqq=2956, + XED_IFORM_VFNMADDPS_YMMqq_YMMqq_YMMqq_MEMqq=2957, + XED_IFORM_VFNMADDPS_YMMqq_YMMqq_YMMqq_YMMqq=2958, + XED_IFORM_VFNMADDSD_XMMdq_XMMdq_MEMq_XMMdq=2959, + XED_IFORM_VFNMADDSD_XMMdq_XMMdq_XMMdq_MEMq=2960, + XED_IFORM_VFNMADDSD_XMMdq_XMMdq_XMMdq_XMMq=2961, + XED_IFORM_VFNMADDSD_XMMdq_XMMdq_XMMq_XMMdq=2962, + XED_IFORM_VFNMADDSS_XMMdq_XMMdq_MEMd_XMMdq=2963, + XED_IFORM_VFNMADDSS_XMMdq_XMMdq_XMMd_XMMdq=2964, + XED_IFORM_VFNMADDSS_XMMdq_XMMdq_XMMdq_MEMd=2965, + XED_IFORM_VFNMADDSS_XMMdq_XMMdq_XMMdq_XMMd=2966, + XED_IFORM_VFNMSUB132PD_XMMdq_XMMdq_MEMdq=2967, + XED_IFORM_VFNMSUB132PD_XMMdq_XMMdq_XMMdq=2968, + XED_IFORM_VFNMSUB132PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2969, + XED_IFORM_VFNMSUB132PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2970, + XED_IFORM_VFNMSUB132PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2971, + XED_IFORM_VFNMSUB132PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=2972, + XED_IFORM_VFNMSUB132PD_YMMqq_YMMqq_MEMqq=2973, + XED_IFORM_VFNMSUB132PD_YMMqq_YMMqq_YMMqq=2974, + XED_IFORM_VFNMSUB132PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=2975, + XED_IFORM_VFNMSUB132PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=2976, + XED_IFORM_VFNMSUB132PS_XMMdq_XMMdq_MEMdq=2977, + XED_IFORM_VFNMSUB132PS_XMMdq_XMMdq_XMMdq=2978, + XED_IFORM_VFNMSUB132PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2979, + XED_IFORM_VFNMSUB132PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2980, + XED_IFORM_VFNMSUB132PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=2981, + XED_IFORM_VFNMSUB132PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=2982, + XED_IFORM_VFNMSUB132PS_YMMqq_YMMqq_MEMqq=2983, + XED_IFORM_VFNMSUB132PS_YMMqq_YMMqq_YMMqq=2984, + XED_IFORM_VFNMSUB132PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=2985, + XED_IFORM_VFNMSUB132PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=2986, + XED_IFORM_VFNMSUB132SD_XMMdq_XMMq_MEMq=2987, + XED_IFORM_VFNMSUB132SD_XMMdq_XMMq_XMMq=2988, + XED_IFORM_VFNMSUB132SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2989, + XED_IFORM_VFNMSUB132SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2990, + XED_IFORM_VFNMSUB132SS_XMMdq_XMMd_MEMd=2991, + XED_IFORM_VFNMSUB132SS_XMMdq_XMMd_XMMd=2992, + XED_IFORM_VFNMSUB132SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=2993, + XED_IFORM_VFNMSUB132SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=2994, + XED_IFORM_VFNMSUB213PD_XMMdq_XMMdq_MEMdq=2995, + XED_IFORM_VFNMSUB213PD_XMMdq_XMMdq_XMMdq=2996, + XED_IFORM_VFNMSUB213PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=2997, + XED_IFORM_VFNMSUB213PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=2998, + XED_IFORM_VFNMSUB213PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=2999, + XED_IFORM_VFNMSUB213PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=3000, + XED_IFORM_VFNMSUB213PD_YMMqq_YMMqq_MEMqq=3001, + XED_IFORM_VFNMSUB213PD_YMMqq_YMMqq_YMMqq=3002, + XED_IFORM_VFNMSUB213PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=3003, + XED_IFORM_VFNMSUB213PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=3004, + XED_IFORM_VFNMSUB213PS_XMMdq_XMMdq_MEMdq=3005, + XED_IFORM_VFNMSUB213PS_XMMdq_XMMdq_XMMdq=3006, + XED_IFORM_VFNMSUB213PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3007, + XED_IFORM_VFNMSUB213PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3008, + XED_IFORM_VFNMSUB213PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=3009, + XED_IFORM_VFNMSUB213PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=3010, + XED_IFORM_VFNMSUB213PS_YMMqq_YMMqq_MEMqq=3011, + XED_IFORM_VFNMSUB213PS_YMMqq_YMMqq_YMMqq=3012, + XED_IFORM_VFNMSUB213PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=3013, + XED_IFORM_VFNMSUB213PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=3014, + XED_IFORM_VFNMSUB213SD_XMMdq_XMMq_MEMq=3015, + XED_IFORM_VFNMSUB213SD_XMMdq_XMMq_XMMq=3016, + XED_IFORM_VFNMSUB213SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3017, + XED_IFORM_VFNMSUB213SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3018, + XED_IFORM_VFNMSUB213SS_XMMdq_XMMd_MEMd=3019, + XED_IFORM_VFNMSUB213SS_XMMdq_XMMd_XMMd=3020, + XED_IFORM_VFNMSUB213SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3021, + XED_IFORM_VFNMSUB213SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3022, + XED_IFORM_VFNMSUB231PD_XMMdq_XMMdq_MEMdq=3023, + XED_IFORM_VFNMSUB231PD_XMMdq_XMMdq_XMMdq=3024, + XED_IFORM_VFNMSUB231PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3025, + XED_IFORM_VFNMSUB231PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3026, + XED_IFORM_VFNMSUB231PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=3027, + XED_IFORM_VFNMSUB231PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=3028, + XED_IFORM_VFNMSUB231PD_YMMqq_YMMqq_MEMqq=3029, + XED_IFORM_VFNMSUB231PD_YMMqq_YMMqq_YMMqq=3030, + XED_IFORM_VFNMSUB231PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=3031, + XED_IFORM_VFNMSUB231PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=3032, + XED_IFORM_VFNMSUB231PS_XMMdq_XMMdq_MEMdq=3033, + XED_IFORM_VFNMSUB231PS_XMMdq_XMMdq_XMMdq=3034, + XED_IFORM_VFNMSUB231PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3035, + XED_IFORM_VFNMSUB231PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3036, + XED_IFORM_VFNMSUB231PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=3037, + XED_IFORM_VFNMSUB231PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=3038, + XED_IFORM_VFNMSUB231PS_YMMqq_YMMqq_MEMqq=3039, + XED_IFORM_VFNMSUB231PS_YMMqq_YMMqq_YMMqq=3040, + XED_IFORM_VFNMSUB231PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=3041, + XED_IFORM_VFNMSUB231PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=3042, + XED_IFORM_VFNMSUB231SD_XMMdq_XMMq_MEMq=3043, + XED_IFORM_VFNMSUB231SD_XMMdq_XMMq_XMMq=3044, + XED_IFORM_VFNMSUB231SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3045, + XED_IFORM_VFNMSUB231SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3046, + XED_IFORM_VFNMSUB231SS_XMMdq_XMMd_MEMd=3047, + XED_IFORM_VFNMSUB231SS_XMMdq_XMMd_XMMd=3048, + XED_IFORM_VFNMSUB231SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3049, + XED_IFORM_VFNMSUB231SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3050, + XED_IFORM_VFNMSUBPD_XMMdq_XMMdq_MEMdq_XMMdq=3051, + XED_IFORM_VFNMSUBPD_XMMdq_XMMdq_XMMdq_MEMdq=3052, + XED_IFORM_VFNMSUBPD_XMMdq_XMMdq_XMMdq_XMMdq=3053, + XED_IFORM_VFNMSUBPD_YMMqq_YMMqq_MEMqq_YMMqq=3054, + XED_IFORM_VFNMSUBPD_YMMqq_YMMqq_YMMqq_MEMqq=3055, + XED_IFORM_VFNMSUBPD_YMMqq_YMMqq_YMMqq_YMMqq=3056, + XED_IFORM_VFNMSUBPS_XMMdq_XMMdq_MEMdq_XMMdq=3057, + XED_IFORM_VFNMSUBPS_XMMdq_XMMdq_XMMdq_MEMdq=3058, + XED_IFORM_VFNMSUBPS_XMMdq_XMMdq_XMMdq_XMMdq=3059, + XED_IFORM_VFNMSUBPS_YMMqq_YMMqq_MEMqq_YMMqq=3060, + XED_IFORM_VFNMSUBPS_YMMqq_YMMqq_YMMqq_MEMqq=3061, + XED_IFORM_VFNMSUBPS_YMMqq_YMMqq_YMMqq_YMMqq=3062, + XED_IFORM_VFNMSUBSD_XMMdq_XMMdq_MEMq_XMMdq=3063, + XED_IFORM_VFNMSUBSD_XMMdq_XMMdq_XMMdq_MEMq=3064, + XED_IFORM_VFNMSUBSD_XMMdq_XMMdq_XMMdq_XMMq=3065, + XED_IFORM_VFNMSUBSD_XMMdq_XMMdq_XMMq_XMMdq=3066, + XED_IFORM_VFNMSUBSS_XMMdq_XMMdq_MEMd_XMMdq=3067, + XED_IFORM_VFNMSUBSS_XMMdq_XMMdq_XMMd_XMMdq=3068, + XED_IFORM_VFNMSUBSS_XMMdq_XMMdq_XMMdq_MEMd=3069, + XED_IFORM_VFNMSUBSS_XMMdq_XMMdq_XMMdq_XMMd=3070, + XED_IFORM_VFPCLASSPD_MASKmskw_MASKmskw_MEMf64_IMM8_AVX512=3071, + XED_IFORM_VFPCLASSPD_MASKmskw_MASKmskw_XMMf64_IMM8_AVX512=3072, + XED_IFORM_VFPCLASSPD_MASKmskw_MASKmskw_YMMf64_IMM8_AVX512=3073, + XED_IFORM_VFPCLASSPD_MASKmskw_MASKmskw_ZMMf64_IMM8_AVX512=3074, + XED_IFORM_VFPCLASSPS_MASKmskw_MASKmskw_MEMf32_IMM8_AVX512=3075, + XED_IFORM_VFPCLASSPS_MASKmskw_MASKmskw_XMMf32_IMM8_AVX512=3076, + XED_IFORM_VFPCLASSPS_MASKmskw_MASKmskw_YMMf32_IMM8_AVX512=3077, + XED_IFORM_VFPCLASSPS_MASKmskw_MASKmskw_ZMMf32_IMM8_AVX512=3078, + XED_IFORM_VFPCLASSSD_MASKmskw_MASKmskw_MEMf64_IMM8_AVX512=3079, + XED_IFORM_VFPCLASSSD_MASKmskw_MASKmskw_XMMf64_IMM8_AVX512=3080, + XED_IFORM_VFPCLASSSS_MASKmskw_MASKmskw_MEMf32_IMM8_AVX512=3081, + XED_IFORM_VFPCLASSSS_MASKmskw_MASKmskw_XMMf32_IMM8_AVX512=3082, + XED_IFORM_VFRCZPD_XMMdq_MEMdq=3083, + XED_IFORM_VFRCZPD_XMMdq_XMMdq=3084, + XED_IFORM_VFRCZPD_YMMqq_MEMqq=3085, + XED_IFORM_VFRCZPD_YMMqq_YMMqq=3086, + XED_IFORM_VFRCZPS_XMMdq_MEMdq=3087, + XED_IFORM_VFRCZPS_XMMdq_XMMdq=3088, + XED_IFORM_VFRCZPS_YMMqq_MEMqq=3089, + XED_IFORM_VFRCZPS_YMMqq_YMMqq=3090, + XED_IFORM_VFRCZSD_XMMdq_MEMq=3091, + XED_IFORM_VFRCZSD_XMMdq_XMMq=3092, + XED_IFORM_VFRCZSS_XMMdq_MEMd=3093, + XED_IFORM_VFRCZSS_XMMdq_XMMd=3094, + XED_IFORM_VGATHERDPD_XMMf64_MASKmskw_MEMf64_AVX512_VL128=3095, + XED_IFORM_VGATHERDPD_XMMf64_MEMdq_XMMi64_VL128=3096, + XED_IFORM_VGATHERDPD_YMMf64_MASKmskw_MEMf64_AVX512_VL256=3097, + XED_IFORM_VGATHERDPD_YMMf64_MEMqq_YMMi64_VL256=3098, + XED_IFORM_VGATHERDPD_ZMMf64_MASKmskw_MEMf64_AVX512_VL512=3099, + XED_IFORM_VGATHERDPS_XMMf32_MASKmskw_MEMf32_AVX512_VL128=3100, + XED_IFORM_VGATHERDPS_XMMf32_MEMdq_XMMi32_VL128=3101, + XED_IFORM_VGATHERDPS_YMMf32_MASKmskw_MEMf32_AVX512_VL256=3102, + XED_IFORM_VGATHERDPS_YMMf32_MEMqq_YMMi32_VL256=3103, + XED_IFORM_VGATHERDPS_ZMMf32_MASKmskw_MEMf32_AVX512_VL512=3104, + XED_IFORM_VGATHERPF0DPD_MEMf64_MASKmskw_AVX512PF_VL512=3105, + XED_IFORM_VGATHERPF0DPS_MEMf32_MASKmskw_AVX512PF_VL512=3106, + XED_IFORM_VGATHERPF0QPD_MEMf64_MASKmskw_AVX512PF_VL512=3107, + XED_IFORM_VGATHERPF0QPS_MEMf32_MASKmskw_AVX512PF_VL512=3108, + XED_IFORM_VGATHERPF1DPD_MEMf64_MASKmskw_AVX512PF_VL512=3109, + XED_IFORM_VGATHERPF1DPS_MEMf32_MASKmskw_AVX512PF_VL512=3110, + XED_IFORM_VGATHERPF1QPD_MEMf64_MASKmskw_AVX512PF_VL512=3111, + XED_IFORM_VGATHERPF1QPS_MEMf32_MASKmskw_AVX512PF_VL512=3112, + XED_IFORM_VGATHERQPD_XMMf64_MASKmskw_MEMf64_AVX512_VL128=3113, + XED_IFORM_VGATHERQPD_XMMf64_MEMdq_XMMi64_VL128=3114, + XED_IFORM_VGATHERQPD_YMMf64_MASKmskw_MEMf64_AVX512_VL256=3115, + XED_IFORM_VGATHERQPD_YMMf64_MEMqq_YMMi64_VL256=3116, + XED_IFORM_VGATHERQPD_ZMMf64_MASKmskw_MEMf64_AVX512_VL512=3117, + XED_IFORM_VGATHERQPS_XMMf32_MASKmskw_MEMf32_AVX512_VL128=3118, + XED_IFORM_VGATHERQPS_XMMf32_MASKmskw_MEMf32_AVX512_VL256=3119, + XED_IFORM_VGATHERQPS_XMMf32_MEMdq_XMMi32_VL256=3120, + XED_IFORM_VGATHERQPS_XMMf32_MEMq_XMMi32_VL128=3121, + XED_IFORM_VGATHERQPS_YMMf32_MASKmskw_MEMf32_AVX512_VL512=3122, + XED_IFORM_VGETEXPPD_XMMf64_MASKmskw_MEMf64_AVX512=3123, + XED_IFORM_VGETEXPPD_XMMf64_MASKmskw_XMMf64_AVX512=3124, + XED_IFORM_VGETEXPPD_YMMf64_MASKmskw_MEMf64_AVX512=3125, + XED_IFORM_VGETEXPPD_YMMf64_MASKmskw_YMMf64_AVX512=3126, + XED_IFORM_VGETEXPPD_ZMMf64_MASKmskw_MEMf64_AVX512=3127, + XED_IFORM_VGETEXPPD_ZMMf64_MASKmskw_ZMMf64_AVX512=3128, + XED_IFORM_VGETEXPPS_XMMf32_MASKmskw_MEMf32_AVX512=3129, + XED_IFORM_VGETEXPPS_XMMf32_MASKmskw_XMMf32_AVX512=3130, + XED_IFORM_VGETEXPPS_YMMf32_MASKmskw_MEMf32_AVX512=3131, + XED_IFORM_VGETEXPPS_YMMf32_MASKmskw_YMMf32_AVX512=3132, + XED_IFORM_VGETEXPPS_ZMMf32_MASKmskw_MEMf32_AVX512=3133, + XED_IFORM_VGETEXPPS_ZMMf32_MASKmskw_ZMMf32_AVX512=3134, + XED_IFORM_VGETEXPSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3135, + XED_IFORM_VGETEXPSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3136, + XED_IFORM_VGETEXPSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3137, + XED_IFORM_VGETEXPSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3138, + XED_IFORM_VGETMANTPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512=3139, + XED_IFORM_VGETMANTPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512=3140, + XED_IFORM_VGETMANTPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512=3141, + XED_IFORM_VGETMANTPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512=3142, + XED_IFORM_VGETMANTPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512=3143, + XED_IFORM_VGETMANTPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512=3144, + XED_IFORM_VGETMANTPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512=3145, + XED_IFORM_VGETMANTPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512=3146, + XED_IFORM_VGETMANTPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512=3147, + XED_IFORM_VGETMANTPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512=3148, + XED_IFORM_VGETMANTPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512=3149, + XED_IFORM_VGETMANTPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512=3150, + XED_IFORM_VGETMANTSD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=3151, + XED_IFORM_VGETMANTSD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=3152, + XED_IFORM_VGETMANTSS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=3153, + XED_IFORM_VGETMANTSS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=3154, + XED_IFORM_VHADDPD_XMMdq_XMMdq_MEMdq=3155, + XED_IFORM_VHADDPD_XMMdq_XMMdq_XMMdq=3156, + XED_IFORM_VHADDPD_YMMqq_YMMqq_MEMqq=3157, + XED_IFORM_VHADDPD_YMMqq_YMMqq_YMMqq=3158, + XED_IFORM_VHADDPS_XMMdq_XMMdq_MEMdq=3159, + XED_IFORM_VHADDPS_XMMdq_XMMdq_XMMdq=3160, + XED_IFORM_VHADDPS_YMMqq_YMMqq_MEMqq=3161, + XED_IFORM_VHADDPS_YMMqq_YMMqq_YMMqq=3162, + XED_IFORM_VHSUBPD_XMMdq_XMMdq_MEMdq=3163, + XED_IFORM_VHSUBPD_XMMdq_XMMdq_XMMdq=3164, + XED_IFORM_VHSUBPD_YMMqq_YMMqq_MEMqq=3165, + XED_IFORM_VHSUBPD_YMMqq_YMMqq_YMMqq=3166, + XED_IFORM_VHSUBPS_XMMdq_XMMdq_MEMdq=3167, + XED_IFORM_VHSUBPS_XMMdq_XMMdq_XMMdq=3168, + XED_IFORM_VHSUBPS_YMMqq_YMMqq_MEMqq=3169, + XED_IFORM_VHSUBPS_YMMqq_YMMqq_YMMqq=3170, + XED_IFORM_VINSERTF128_YMMqq_YMMqq_MEMdq_IMMb=3171, + XED_IFORM_VINSERTF128_YMMqq_YMMqq_XMMdq_IMMb=3172, + XED_IFORM_VINSERTF32X4_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512=3173, + XED_IFORM_VINSERTF32X4_YMMf32_MASKmskw_YMMf32_XMMf32_IMM8_AVX512=3174, + XED_IFORM_VINSERTF32X4_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512=3175, + XED_IFORM_VINSERTF32X4_ZMMf32_MASKmskw_ZMMf32_XMMf32_IMM8_AVX512=3176, + XED_IFORM_VINSERTF32X8_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512=3177, + XED_IFORM_VINSERTF32X8_ZMMf32_MASKmskw_ZMMf32_YMMf32_IMM8_AVX512=3178, + XED_IFORM_VINSERTF64X2_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512=3179, + XED_IFORM_VINSERTF64X2_YMMf64_MASKmskw_YMMf64_XMMf64_IMM8_AVX512=3180, + XED_IFORM_VINSERTF64X2_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512=3181, + XED_IFORM_VINSERTF64X2_ZMMf64_MASKmskw_ZMMf64_XMMf64_IMM8_AVX512=3182, + XED_IFORM_VINSERTF64X4_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512=3183, + XED_IFORM_VINSERTF64X4_ZMMf64_MASKmskw_ZMMf64_YMMf64_IMM8_AVX512=3184, + XED_IFORM_VINSERTI128_YMMqq_YMMqq_MEMdq_IMMb=3185, + XED_IFORM_VINSERTI128_YMMqq_YMMqq_XMMdq_IMMb=3186, + XED_IFORM_VINSERTI32X4_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512=3187, + XED_IFORM_VINSERTI32X4_YMMu32_MASKmskw_YMMu32_XMMu32_IMM8_AVX512=3188, + XED_IFORM_VINSERTI32X4_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512=3189, + XED_IFORM_VINSERTI32X4_ZMMu32_MASKmskw_ZMMu32_XMMu32_IMM8_AVX512=3190, + XED_IFORM_VINSERTI32X8_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512=3191, + XED_IFORM_VINSERTI32X8_ZMMu32_MASKmskw_ZMMu32_YMMu32_IMM8_AVX512=3192, + XED_IFORM_VINSERTI64X2_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512=3193, + XED_IFORM_VINSERTI64X2_YMMu64_MASKmskw_YMMu64_XMMu64_IMM8_AVX512=3194, + XED_IFORM_VINSERTI64X2_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512=3195, + XED_IFORM_VINSERTI64X2_ZMMu64_MASKmskw_ZMMu64_XMMu64_IMM8_AVX512=3196, + XED_IFORM_VINSERTI64X4_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512=3197, + XED_IFORM_VINSERTI64X4_ZMMu64_MASKmskw_ZMMu64_YMMu64_IMM8_AVX512=3198, + XED_IFORM_VINSERTPS_XMMdq_XMMdq_MEMd_IMMb=3199, + XED_IFORM_VINSERTPS_XMMdq_XMMdq_XMMdq_IMMb=3200, + XED_IFORM_VINSERTPS_XMMf32_XMMf32_MEMf32_IMM8_AVX512=3201, + XED_IFORM_VINSERTPS_XMMf32_XMMf32_XMMf32_IMM8_AVX512=3202, + XED_IFORM_VLDDQU_XMMdq_MEMdq=3203, + XED_IFORM_VLDDQU_YMMqq_MEMqq=3204, + XED_IFORM_VLDMXCSR_MEMd=3205, + XED_IFORM_VMASKMOVDQU_XMMdq_XMMdq=3206, + XED_IFORM_VMASKMOVPD_MEMdq_XMMdq_XMMdq=3207, + XED_IFORM_VMASKMOVPD_MEMqq_YMMqq_YMMqq=3208, + XED_IFORM_VMASKMOVPD_XMMdq_XMMdq_MEMdq=3209, + XED_IFORM_VMASKMOVPD_YMMqq_YMMqq_MEMqq=3210, + XED_IFORM_VMASKMOVPS_MEMdq_XMMdq_XMMdq=3211, + XED_IFORM_VMASKMOVPS_MEMqq_YMMqq_YMMqq=3212, + XED_IFORM_VMASKMOVPS_XMMdq_XMMdq_MEMdq=3213, + XED_IFORM_VMASKMOVPS_YMMqq_YMMqq_MEMqq=3214, + XED_IFORM_VMAXPD_XMMdq_XMMdq_MEMdq=3215, + XED_IFORM_VMAXPD_XMMdq_XMMdq_XMMdq=3216, + XED_IFORM_VMAXPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3217, + XED_IFORM_VMAXPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3218, + XED_IFORM_VMAXPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=3219, + XED_IFORM_VMAXPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=3220, + XED_IFORM_VMAXPD_YMMqq_YMMqq_MEMqq=3221, + XED_IFORM_VMAXPD_YMMqq_YMMqq_YMMqq=3222, + XED_IFORM_VMAXPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=3223, + XED_IFORM_VMAXPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=3224, + XED_IFORM_VMAXPS_XMMdq_XMMdq_MEMdq=3225, + XED_IFORM_VMAXPS_XMMdq_XMMdq_XMMdq=3226, + XED_IFORM_VMAXPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3227, + XED_IFORM_VMAXPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3228, + XED_IFORM_VMAXPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=3229, + XED_IFORM_VMAXPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=3230, + XED_IFORM_VMAXPS_YMMqq_YMMqq_MEMqq=3231, + XED_IFORM_VMAXPS_YMMqq_YMMqq_YMMqq=3232, + XED_IFORM_VMAXPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=3233, + XED_IFORM_VMAXPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=3234, + XED_IFORM_VMAXSD_XMMdq_XMMdq_MEMq=3235, + XED_IFORM_VMAXSD_XMMdq_XMMdq_XMMq=3236, + XED_IFORM_VMAXSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3237, + XED_IFORM_VMAXSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3238, + XED_IFORM_VMAXSS_XMMdq_XMMdq_MEMd=3239, + XED_IFORM_VMAXSS_XMMdq_XMMdq_XMMd=3240, + XED_IFORM_VMAXSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3241, + XED_IFORM_VMAXSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3242, + XED_IFORM_VMCALL=3243, + XED_IFORM_VMCLEAR_MEMq=3244, + XED_IFORM_VMFUNC=3245, + XED_IFORM_VMINPD_XMMdq_XMMdq_MEMdq=3246, + XED_IFORM_VMINPD_XMMdq_XMMdq_XMMdq=3247, + XED_IFORM_VMINPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3248, + XED_IFORM_VMINPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3249, + XED_IFORM_VMINPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=3250, + XED_IFORM_VMINPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=3251, + XED_IFORM_VMINPD_YMMqq_YMMqq_MEMqq=3252, + XED_IFORM_VMINPD_YMMqq_YMMqq_YMMqq=3253, + XED_IFORM_VMINPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=3254, + XED_IFORM_VMINPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=3255, + XED_IFORM_VMINPS_XMMdq_XMMdq_MEMdq=3256, + XED_IFORM_VMINPS_XMMdq_XMMdq_XMMdq=3257, + XED_IFORM_VMINPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3258, + XED_IFORM_VMINPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3259, + XED_IFORM_VMINPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=3260, + XED_IFORM_VMINPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=3261, + XED_IFORM_VMINPS_YMMqq_YMMqq_MEMqq=3262, + XED_IFORM_VMINPS_YMMqq_YMMqq_YMMqq=3263, + XED_IFORM_VMINPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=3264, + XED_IFORM_VMINPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=3265, + XED_IFORM_VMINSD_XMMdq_XMMdq_MEMq=3266, + XED_IFORM_VMINSD_XMMdq_XMMdq_XMMq=3267, + XED_IFORM_VMINSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3268, + XED_IFORM_VMINSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3269, + XED_IFORM_VMINSS_XMMdq_XMMdq_MEMd=3270, + XED_IFORM_VMINSS_XMMdq_XMMdq_XMMd=3271, + XED_IFORM_VMINSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3272, + XED_IFORM_VMINSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3273, + XED_IFORM_VMLAUNCH=3274, + XED_IFORM_VMLOAD_OrAX=3275, + XED_IFORM_VMMCALL=3276, + XED_IFORM_VMOVAPD_MEMdq_XMMdq=3277, + XED_IFORM_VMOVAPD_MEMf64_MASKmskw_XMMf64_AVX512=3278, + XED_IFORM_VMOVAPD_MEMf64_MASKmskw_YMMf64_AVX512=3279, + XED_IFORM_VMOVAPD_MEMf64_MASKmskw_ZMMf64_AVX512=3280, + XED_IFORM_VMOVAPD_MEMqq_YMMqq=3281, + XED_IFORM_VMOVAPD_XMMdq_MEMdq=3282, + XED_IFORM_VMOVAPD_XMMdq_XMMdq_28=3283, + XED_IFORM_VMOVAPD_XMMdq_XMMdq_29=3284, + XED_IFORM_VMOVAPD_XMMf64_MASKmskw_MEMf64_AVX512=3285, + XED_IFORM_VMOVAPD_XMMf64_MASKmskw_XMMf64_AVX512=3286, + XED_IFORM_VMOVAPD_YMMf64_MASKmskw_MEMf64_AVX512=3287, + XED_IFORM_VMOVAPD_YMMf64_MASKmskw_YMMf64_AVX512=3288, + XED_IFORM_VMOVAPD_YMMqq_MEMqq=3289, + XED_IFORM_VMOVAPD_YMMqq_YMMqq_28=3290, + XED_IFORM_VMOVAPD_YMMqq_YMMqq_29=3291, + XED_IFORM_VMOVAPD_ZMMf64_MASKmskw_MEMf64_AVX512=3292, + XED_IFORM_VMOVAPD_ZMMf64_MASKmskw_ZMMf64_AVX512=3293, + XED_IFORM_VMOVAPS_MEMdq_XMMdq=3294, + XED_IFORM_VMOVAPS_MEMf32_MASKmskw_XMMf32_AVX512=3295, + XED_IFORM_VMOVAPS_MEMf32_MASKmskw_YMMf32_AVX512=3296, + XED_IFORM_VMOVAPS_MEMf32_MASKmskw_ZMMf32_AVX512=3297, + XED_IFORM_VMOVAPS_MEMqq_YMMqq=3298, + XED_IFORM_VMOVAPS_XMMdq_MEMdq=3299, + XED_IFORM_VMOVAPS_XMMdq_XMMdq_28=3300, + XED_IFORM_VMOVAPS_XMMdq_XMMdq_29=3301, + XED_IFORM_VMOVAPS_XMMf32_MASKmskw_MEMf32_AVX512=3302, + XED_IFORM_VMOVAPS_XMMf32_MASKmskw_XMMf32_AVX512=3303, + XED_IFORM_VMOVAPS_YMMf32_MASKmskw_MEMf32_AVX512=3304, + XED_IFORM_VMOVAPS_YMMf32_MASKmskw_YMMf32_AVX512=3305, + XED_IFORM_VMOVAPS_YMMqq_MEMqq=3306, + XED_IFORM_VMOVAPS_YMMqq_YMMqq_28=3307, + XED_IFORM_VMOVAPS_YMMqq_YMMqq_29=3308, + XED_IFORM_VMOVAPS_ZMMf32_MASKmskw_MEMf32_AVX512=3309, + XED_IFORM_VMOVAPS_ZMMf32_MASKmskw_ZMMf32_AVX512=3310, + XED_IFORM_VMOVD_GPR32d_XMMd=3311, + XED_IFORM_VMOVD_GPR32u32_XMMu32_AVX512=3312, + XED_IFORM_VMOVD_MEMd_XMMd=3313, + XED_IFORM_VMOVD_MEMu32_XMMu32_AVX512=3314, + XED_IFORM_VMOVD_XMMdq_GPR32d=3315, + XED_IFORM_VMOVD_XMMdq_MEMd=3316, + XED_IFORM_VMOVD_XMMu32_GPR32u32_AVX512=3317, + XED_IFORM_VMOVD_XMMu32_MEMu32_AVX512=3318, + XED_IFORM_VMOVDDUP_XMMdq_MEMq=3319, + XED_IFORM_VMOVDDUP_XMMdq_XMMdq=3320, + XED_IFORM_VMOVDDUP_XMMf64_MASKmskw_MEMf64_AVX512=3321, + XED_IFORM_VMOVDDUP_XMMf64_MASKmskw_XMMf64_AVX512=3322, + XED_IFORM_VMOVDDUP_YMMf64_MASKmskw_MEMf64_AVX512=3323, + XED_IFORM_VMOVDDUP_YMMf64_MASKmskw_YMMf64_AVX512=3324, + XED_IFORM_VMOVDDUP_YMMqq_MEMqq=3325, + XED_IFORM_VMOVDDUP_YMMqq_YMMqq=3326, + XED_IFORM_VMOVDDUP_ZMMf64_MASKmskw_MEMf64_AVX512=3327, + XED_IFORM_VMOVDDUP_ZMMf64_MASKmskw_ZMMf64_AVX512=3328, + XED_IFORM_VMOVDQA_MEMdq_XMMdq=3329, + XED_IFORM_VMOVDQA_MEMqq_YMMqq=3330, + XED_IFORM_VMOVDQA_XMMdq_MEMdq=3331, + XED_IFORM_VMOVDQA_XMMdq_XMMdq_6F=3332, + XED_IFORM_VMOVDQA_XMMdq_XMMdq_7F=3333, + XED_IFORM_VMOVDQA_YMMqq_MEMqq=3334, + XED_IFORM_VMOVDQA_YMMqq_YMMqq_6F=3335, + XED_IFORM_VMOVDQA_YMMqq_YMMqq_7F=3336, + XED_IFORM_VMOVDQA32_MEMu32_MASKmskw_XMMu32_AVX512=3337, + XED_IFORM_VMOVDQA32_MEMu32_MASKmskw_YMMu32_AVX512=3338, + XED_IFORM_VMOVDQA32_MEMu32_MASKmskw_ZMMu32_AVX512=3339, + XED_IFORM_VMOVDQA32_XMMu32_MASKmskw_MEMu32_AVX512=3340, + XED_IFORM_VMOVDQA32_XMMu32_MASKmskw_XMMu32_AVX512=3341, + XED_IFORM_VMOVDQA32_YMMu32_MASKmskw_MEMu32_AVX512=3342, + XED_IFORM_VMOVDQA32_YMMu32_MASKmskw_YMMu32_AVX512=3343, + XED_IFORM_VMOVDQA32_ZMMu32_MASKmskw_MEMu32_AVX512=3344, + XED_IFORM_VMOVDQA32_ZMMu32_MASKmskw_ZMMu32_AVX512=3345, + XED_IFORM_VMOVDQA64_MEMu64_MASKmskw_XMMu64_AVX512=3346, + XED_IFORM_VMOVDQA64_MEMu64_MASKmskw_YMMu64_AVX512=3347, + XED_IFORM_VMOVDQA64_MEMu64_MASKmskw_ZMMu64_AVX512=3348, + XED_IFORM_VMOVDQA64_XMMu64_MASKmskw_MEMu64_AVX512=3349, + XED_IFORM_VMOVDQA64_XMMu64_MASKmskw_XMMu64_AVX512=3350, + XED_IFORM_VMOVDQA64_YMMu64_MASKmskw_MEMu64_AVX512=3351, + XED_IFORM_VMOVDQA64_YMMu64_MASKmskw_YMMu64_AVX512=3352, + XED_IFORM_VMOVDQA64_ZMMu64_MASKmskw_MEMu64_AVX512=3353, + XED_IFORM_VMOVDQA64_ZMMu64_MASKmskw_ZMMu64_AVX512=3354, + XED_IFORM_VMOVDQU_MEMdq_XMMdq=3355, + XED_IFORM_VMOVDQU_MEMqq_YMMqq=3356, + XED_IFORM_VMOVDQU_XMMdq_MEMdq=3357, + XED_IFORM_VMOVDQU_XMMdq_XMMdq_6F=3358, + XED_IFORM_VMOVDQU_XMMdq_XMMdq_7F=3359, + XED_IFORM_VMOVDQU_YMMqq_MEMqq=3360, + XED_IFORM_VMOVDQU_YMMqq_YMMqq_6F=3361, + XED_IFORM_VMOVDQU_YMMqq_YMMqq_7F=3362, + XED_IFORM_VMOVDQU16_MEMu16_MASKmskw_XMMu16_AVX512=3363, + XED_IFORM_VMOVDQU16_MEMu16_MASKmskw_YMMu16_AVX512=3364, + XED_IFORM_VMOVDQU16_MEMu16_MASKmskw_ZMMu16_AVX512=3365, + XED_IFORM_VMOVDQU16_XMMu16_MASKmskw_MEMu16_AVX512=3366, + XED_IFORM_VMOVDQU16_XMMu16_MASKmskw_XMMu16_AVX512=3367, + XED_IFORM_VMOVDQU16_YMMu16_MASKmskw_MEMu16_AVX512=3368, + XED_IFORM_VMOVDQU16_YMMu16_MASKmskw_YMMu16_AVX512=3369, + XED_IFORM_VMOVDQU16_ZMMu16_MASKmskw_MEMu16_AVX512=3370, + XED_IFORM_VMOVDQU16_ZMMu16_MASKmskw_ZMMu16_AVX512=3371, + XED_IFORM_VMOVDQU32_MEMu32_MASKmskw_XMMu32_AVX512=3372, + XED_IFORM_VMOVDQU32_MEMu32_MASKmskw_YMMu32_AVX512=3373, + XED_IFORM_VMOVDQU32_MEMu32_MASKmskw_ZMMu32_AVX512=3374, + XED_IFORM_VMOVDQU32_XMMu32_MASKmskw_MEMu32_AVX512=3375, + XED_IFORM_VMOVDQU32_XMMu32_MASKmskw_XMMu32_AVX512=3376, + XED_IFORM_VMOVDQU32_YMMu32_MASKmskw_MEMu32_AVX512=3377, + XED_IFORM_VMOVDQU32_YMMu32_MASKmskw_YMMu32_AVX512=3378, + XED_IFORM_VMOVDQU32_ZMMu32_MASKmskw_MEMu32_AVX512=3379, + XED_IFORM_VMOVDQU32_ZMMu32_MASKmskw_ZMMu32_AVX512=3380, + XED_IFORM_VMOVDQU64_MEMu64_MASKmskw_XMMu64_AVX512=3381, + XED_IFORM_VMOVDQU64_MEMu64_MASKmskw_YMMu64_AVX512=3382, + XED_IFORM_VMOVDQU64_MEMu64_MASKmskw_ZMMu64_AVX512=3383, + XED_IFORM_VMOVDQU64_XMMu64_MASKmskw_MEMu64_AVX512=3384, + XED_IFORM_VMOVDQU64_XMMu64_MASKmskw_XMMu64_AVX512=3385, + XED_IFORM_VMOVDQU64_YMMu64_MASKmskw_MEMu64_AVX512=3386, + XED_IFORM_VMOVDQU64_YMMu64_MASKmskw_YMMu64_AVX512=3387, + XED_IFORM_VMOVDQU64_ZMMu64_MASKmskw_MEMu64_AVX512=3388, + XED_IFORM_VMOVDQU64_ZMMu64_MASKmskw_ZMMu64_AVX512=3389, + XED_IFORM_VMOVDQU8_MEMu8_MASKmskw_XMMu8_AVX512=3390, + XED_IFORM_VMOVDQU8_MEMu8_MASKmskw_YMMu8_AVX512=3391, + XED_IFORM_VMOVDQU8_MEMu8_MASKmskw_ZMMu8_AVX512=3392, + XED_IFORM_VMOVDQU8_XMMu8_MASKmskw_MEMu8_AVX512=3393, + XED_IFORM_VMOVDQU8_XMMu8_MASKmskw_XMMu8_AVX512=3394, + XED_IFORM_VMOVDQU8_YMMu8_MASKmskw_MEMu8_AVX512=3395, + XED_IFORM_VMOVDQU8_YMMu8_MASKmskw_YMMu8_AVX512=3396, + XED_IFORM_VMOVDQU8_ZMMu8_MASKmskw_MEMu8_AVX512=3397, + XED_IFORM_VMOVDQU8_ZMMu8_MASKmskw_ZMMu8_AVX512=3398, + XED_IFORM_VMOVHLPS_XMMdq_XMMdq_XMMdq=3399, + XED_IFORM_VMOVHLPS_XMMf32_XMMf32_XMMf32_AVX512=3400, + XED_IFORM_VMOVHPD_MEMf64_XMMf64_AVX512=3401, + XED_IFORM_VMOVHPD_MEMq_XMMdq=3402, + XED_IFORM_VMOVHPD_XMMdq_XMMq_MEMq=3403, + XED_IFORM_VMOVHPD_XMMf64_XMMf64_MEMf64_AVX512=3404, + XED_IFORM_VMOVHPS_MEMf32_XMMf32_AVX512=3405, + XED_IFORM_VMOVHPS_MEMq_XMMdq=3406, + XED_IFORM_VMOVHPS_XMMdq_XMMq_MEMq=3407, + XED_IFORM_VMOVHPS_XMMf32_XMMf32_MEMf32_AVX512=3408, + XED_IFORM_VMOVLHPS_XMMdq_XMMq_XMMq=3409, + XED_IFORM_VMOVLHPS_XMMf32_XMMf32_XMMf32_AVX512=3410, + XED_IFORM_VMOVLPD_MEMf64_XMMf64_AVX512=3411, + XED_IFORM_VMOVLPD_MEMq_XMMq=3412, + XED_IFORM_VMOVLPD_XMMdq_XMMdq_MEMq=3413, + XED_IFORM_VMOVLPD_XMMf64_XMMf64_MEMf64_AVX512=3414, + XED_IFORM_VMOVLPS_MEMf32_XMMf32_AVX512=3415, + XED_IFORM_VMOVLPS_MEMq_XMMq=3416, + XED_IFORM_VMOVLPS_XMMdq_XMMdq_MEMq=3417, + XED_IFORM_VMOVLPS_XMMf32_XMMf32_MEMf32_AVX512=3418, + XED_IFORM_VMOVMSKPD_GPR32d_XMMdq=3419, + XED_IFORM_VMOVMSKPD_GPR32d_YMMqq=3420, + XED_IFORM_VMOVMSKPS_GPR32d_XMMdq=3421, + XED_IFORM_VMOVMSKPS_GPR32d_YMMqq=3422, + XED_IFORM_VMOVNTDQ_MEMdq_XMMdq=3423, + XED_IFORM_VMOVNTDQ_MEMqq_YMMqq=3424, + XED_IFORM_VMOVNTDQ_MEMu32_XMMu32_AVX512=3425, + XED_IFORM_VMOVNTDQ_MEMu32_YMMu32_AVX512=3426, + XED_IFORM_VMOVNTDQ_MEMu32_ZMMu32_AVX512=3427, + XED_IFORM_VMOVNTDQA_XMMdq_MEMdq=3428, + XED_IFORM_VMOVNTDQA_XMMu32_MEMu32_AVX512=3429, + XED_IFORM_VMOVNTDQA_YMMqq_MEMqq=3430, + XED_IFORM_VMOVNTDQA_YMMu32_MEMu32_AVX512=3431, + XED_IFORM_VMOVNTDQA_ZMMu32_MEMu32_AVX512=3432, + XED_IFORM_VMOVNTPD_MEMdq_XMMdq=3433, + XED_IFORM_VMOVNTPD_MEMf64_XMMf64_AVX512=3434, + XED_IFORM_VMOVNTPD_MEMf64_YMMf64_AVX512=3435, + XED_IFORM_VMOVNTPD_MEMf64_ZMMf64_AVX512=3436, + XED_IFORM_VMOVNTPD_MEMqq_YMMqq=3437, + XED_IFORM_VMOVNTPS_MEMdq_XMMdq=3438, + XED_IFORM_VMOVNTPS_MEMf32_XMMf32_AVX512=3439, + XED_IFORM_VMOVNTPS_MEMf32_YMMf32_AVX512=3440, + XED_IFORM_VMOVNTPS_MEMf32_ZMMf32_AVX512=3441, + XED_IFORM_VMOVNTPS_MEMqq_YMMqq=3442, + XED_IFORM_VMOVQ_GPR64q_XMMq=3443, + XED_IFORM_VMOVQ_GPR64u64_XMMu64_AVX512=3444, + XED_IFORM_VMOVQ_MEMq_XMMq_7E=3445, + XED_IFORM_VMOVQ_MEMq_XMMq_D6=3446, + XED_IFORM_VMOVQ_MEMu64_XMMu64_AVX512=3447, + XED_IFORM_VMOVQ_XMMdq_GPR64q=3448, + XED_IFORM_VMOVQ_XMMdq_MEMq_6E=3449, + XED_IFORM_VMOVQ_XMMdq_MEMq_7E=3450, + XED_IFORM_VMOVQ_XMMdq_XMMq_7E=3451, + XED_IFORM_VMOVQ_XMMdq_XMMq_D6=3452, + XED_IFORM_VMOVQ_XMMu64_GPR64u64_AVX512=3453, + XED_IFORM_VMOVQ_XMMu64_MEMu64_AVX512=3454, + XED_IFORM_VMOVQ_XMMu64_XMMu64_AVX512=3455, + XED_IFORM_VMOVSD_MEMf64_MASKmskw_XMMf64_AVX512=3456, + XED_IFORM_VMOVSD_MEMq_XMMq=3457, + XED_IFORM_VMOVSD_XMMdq_MEMq=3458, + XED_IFORM_VMOVSD_XMMdq_XMMdq_XMMq_10=3459, + XED_IFORM_VMOVSD_XMMdq_XMMdq_XMMq_11=3460, + XED_IFORM_VMOVSD_XMMf64_MASKmskw_MEMf64_AVX512=3461, + XED_IFORM_VMOVSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3462, + XED_IFORM_VMOVSHDUP_XMMdq_MEMdq=3463, + XED_IFORM_VMOVSHDUP_XMMdq_XMMdq=3464, + XED_IFORM_VMOVSHDUP_XMMf32_MASKmskw_MEMf32_AVX512=3465, + XED_IFORM_VMOVSHDUP_XMMf32_MASKmskw_XMMf32_AVX512=3466, + XED_IFORM_VMOVSHDUP_YMMf32_MASKmskw_MEMf32_AVX512=3467, + XED_IFORM_VMOVSHDUP_YMMf32_MASKmskw_YMMf32_AVX512=3468, + XED_IFORM_VMOVSHDUP_YMMqq_MEMqq=3469, + XED_IFORM_VMOVSHDUP_YMMqq_YMMqq=3470, + XED_IFORM_VMOVSHDUP_ZMMf32_MASKmskw_MEMf32_AVX512=3471, + XED_IFORM_VMOVSHDUP_ZMMf32_MASKmskw_ZMMf32_AVX512=3472, + XED_IFORM_VMOVSLDUP_XMMdq_MEMdq=3473, + XED_IFORM_VMOVSLDUP_XMMdq_XMMdq=3474, + XED_IFORM_VMOVSLDUP_XMMf32_MASKmskw_MEMf32_AVX512=3475, + XED_IFORM_VMOVSLDUP_XMMf32_MASKmskw_XMMf32_AVX512=3476, + XED_IFORM_VMOVSLDUP_YMMf32_MASKmskw_MEMf32_AVX512=3477, + XED_IFORM_VMOVSLDUP_YMMf32_MASKmskw_YMMf32_AVX512=3478, + XED_IFORM_VMOVSLDUP_YMMqq_MEMqq=3479, + XED_IFORM_VMOVSLDUP_YMMqq_YMMqq=3480, + XED_IFORM_VMOVSLDUP_ZMMf32_MASKmskw_MEMf32_AVX512=3481, + XED_IFORM_VMOVSLDUP_ZMMf32_MASKmskw_ZMMf32_AVX512=3482, + XED_IFORM_VMOVSS_MEMd_XMMd=3483, + XED_IFORM_VMOVSS_MEMf32_MASKmskw_XMMf32_AVX512=3484, + XED_IFORM_VMOVSS_XMMdq_MEMd=3485, + XED_IFORM_VMOVSS_XMMdq_XMMdq_XMMd_10=3486, + XED_IFORM_VMOVSS_XMMdq_XMMdq_XMMd_11=3487, + XED_IFORM_VMOVSS_XMMf32_MASKmskw_MEMf32_AVX512=3488, + XED_IFORM_VMOVSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3489, + XED_IFORM_VMOVUPD_MEMdq_XMMdq=3490, + XED_IFORM_VMOVUPD_MEMf64_MASKmskw_XMMf64_AVX512=3491, + XED_IFORM_VMOVUPD_MEMf64_MASKmskw_YMMf64_AVX512=3492, + XED_IFORM_VMOVUPD_MEMf64_MASKmskw_ZMMf64_AVX512=3493, + XED_IFORM_VMOVUPD_MEMqq_YMMqq=3494, + XED_IFORM_VMOVUPD_XMMdq_MEMdq=3495, + XED_IFORM_VMOVUPD_XMMdq_XMMdq_10=3496, + XED_IFORM_VMOVUPD_XMMdq_XMMdq_11=3497, + XED_IFORM_VMOVUPD_XMMf64_MASKmskw_MEMf64_AVX512=3498, + XED_IFORM_VMOVUPD_XMMf64_MASKmskw_XMMf64_AVX512=3499, + XED_IFORM_VMOVUPD_YMMf64_MASKmskw_MEMf64_AVX512=3500, + XED_IFORM_VMOVUPD_YMMf64_MASKmskw_YMMf64_AVX512=3501, + XED_IFORM_VMOVUPD_YMMqq_MEMqq=3502, + XED_IFORM_VMOVUPD_YMMqq_YMMqq_10=3503, + XED_IFORM_VMOVUPD_YMMqq_YMMqq_11=3504, + XED_IFORM_VMOVUPD_ZMMf64_MASKmskw_MEMf64_AVX512=3505, + XED_IFORM_VMOVUPD_ZMMf64_MASKmskw_ZMMf64_AVX512=3506, + XED_IFORM_VMOVUPS_MEMdq_XMMdq=3507, + XED_IFORM_VMOVUPS_MEMf32_MASKmskw_XMMf32_AVX512=3508, + XED_IFORM_VMOVUPS_MEMf32_MASKmskw_YMMf32_AVX512=3509, + XED_IFORM_VMOVUPS_MEMf32_MASKmskw_ZMMf32_AVX512=3510, + XED_IFORM_VMOVUPS_MEMqq_YMMqq=3511, + XED_IFORM_VMOVUPS_XMMdq_MEMdq=3512, + XED_IFORM_VMOVUPS_XMMdq_XMMdq_10=3513, + XED_IFORM_VMOVUPS_XMMdq_XMMdq_11=3514, + XED_IFORM_VMOVUPS_XMMf32_MASKmskw_MEMf32_AVX512=3515, + XED_IFORM_VMOVUPS_XMMf32_MASKmskw_XMMf32_AVX512=3516, + XED_IFORM_VMOVUPS_YMMf32_MASKmskw_MEMf32_AVX512=3517, + XED_IFORM_VMOVUPS_YMMf32_MASKmskw_YMMf32_AVX512=3518, + XED_IFORM_VMOVUPS_YMMqq_MEMqq=3519, + XED_IFORM_VMOVUPS_YMMqq_YMMqq_10=3520, + XED_IFORM_VMOVUPS_YMMqq_YMMqq_11=3521, + XED_IFORM_VMOVUPS_ZMMf32_MASKmskw_MEMf32_AVX512=3522, + XED_IFORM_VMOVUPS_ZMMf32_MASKmskw_ZMMf32_AVX512=3523, + XED_IFORM_VMPSADBW_XMMdq_XMMdq_MEMdq_IMMb=3524, + XED_IFORM_VMPSADBW_XMMdq_XMMdq_XMMdq_IMMb=3525, + XED_IFORM_VMPSADBW_YMMqq_YMMqq_MEMqq_IMMb=3526, + XED_IFORM_VMPSADBW_YMMqq_YMMqq_YMMqq_IMMb=3527, + XED_IFORM_VMPTRLD_MEMq=3528, + XED_IFORM_VMPTRST_MEMq=3529, + XED_IFORM_VMREAD_GPR32_GPR32=3530, + XED_IFORM_VMREAD_GPR64_GPR64=3531, + XED_IFORM_VMREAD_MEMd_GPR32=3532, + XED_IFORM_VMREAD_MEMq_GPR64=3533, + XED_IFORM_VMRESUME=3534, + XED_IFORM_VMRUN_OrAX=3535, + XED_IFORM_VMSAVE=3536, + XED_IFORM_VMULPD_XMMdq_XMMdq_MEMdq=3537, + XED_IFORM_VMULPD_XMMdq_XMMdq_XMMdq=3538, + XED_IFORM_VMULPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3539, + XED_IFORM_VMULPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3540, + XED_IFORM_VMULPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=3541, + XED_IFORM_VMULPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=3542, + XED_IFORM_VMULPD_YMMqq_YMMqq_MEMqq=3543, + XED_IFORM_VMULPD_YMMqq_YMMqq_YMMqq=3544, + XED_IFORM_VMULPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=3545, + XED_IFORM_VMULPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=3546, + XED_IFORM_VMULPS_XMMdq_XMMdq_MEMdq=3547, + XED_IFORM_VMULPS_XMMdq_XMMdq_XMMdq=3548, + XED_IFORM_VMULPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3549, + XED_IFORM_VMULPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3550, + XED_IFORM_VMULPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=3551, + XED_IFORM_VMULPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=3552, + XED_IFORM_VMULPS_YMMqq_YMMqq_MEMqq=3553, + XED_IFORM_VMULPS_YMMqq_YMMqq_YMMqq=3554, + XED_IFORM_VMULPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=3555, + XED_IFORM_VMULPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=3556, + XED_IFORM_VMULSD_XMMdq_XMMdq_MEMq=3557, + XED_IFORM_VMULSD_XMMdq_XMMdq_XMMq=3558, + XED_IFORM_VMULSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3559, + XED_IFORM_VMULSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3560, + XED_IFORM_VMULSS_XMMdq_XMMdq_MEMd=3561, + XED_IFORM_VMULSS_XMMdq_XMMdq_XMMd=3562, + XED_IFORM_VMULSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3563, + XED_IFORM_VMULSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3564, + XED_IFORM_VMWRITE_GPR32_GPR32=3565, + XED_IFORM_VMWRITE_GPR32_MEMd=3566, + XED_IFORM_VMWRITE_GPR64_GPR64=3567, + XED_IFORM_VMWRITE_GPR64_MEMq=3568, + XED_IFORM_VMXOFF=3569, + XED_IFORM_VMXON_MEMq=3570, + XED_IFORM_VORPD_XMMdq_XMMdq_MEMdq=3571, + XED_IFORM_VORPD_XMMdq_XMMdq_XMMdq=3572, + XED_IFORM_VORPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=3573, + XED_IFORM_VORPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=3574, + XED_IFORM_VORPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=3575, + XED_IFORM_VORPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=3576, + XED_IFORM_VORPD_YMMqq_YMMqq_MEMqq=3577, + XED_IFORM_VORPD_YMMqq_YMMqq_YMMqq=3578, + XED_IFORM_VORPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=3579, + XED_IFORM_VORPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=3580, + XED_IFORM_VORPS_XMMdq_XMMdq_MEMdq=3581, + XED_IFORM_VORPS_XMMdq_XMMdq_XMMdq=3582, + XED_IFORM_VORPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=3583, + XED_IFORM_VORPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=3584, + XED_IFORM_VORPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=3585, + XED_IFORM_VORPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=3586, + XED_IFORM_VORPS_YMMqq_YMMqq_MEMqq=3587, + XED_IFORM_VORPS_YMMqq_YMMqq_YMMqq=3588, + XED_IFORM_VORPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=3589, + XED_IFORM_VORPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=3590, + XED_IFORM_VPABSB_XMMdq_MEMdq=3591, + XED_IFORM_VPABSB_XMMdq_XMMdq=3592, + XED_IFORM_VPABSB_XMMi8_MASKmskw_MEMi8_AVX512=3593, + XED_IFORM_VPABSB_XMMi8_MASKmskw_XMMi8_AVX512=3594, + XED_IFORM_VPABSB_YMMi8_MASKmskw_MEMi8_AVX512=3595, + XED_IFORM_VPABSB_YMMi8_MASKmskw_YMMi8_AVX512=3596, + XED_IFORM_VPABSB_YMMqq_MEMqq=3597, + XED_IFORM_VPABSB_YMMqq_YMMqq=3598, + XED_IFORM_VPABSB_ZMMi8_MASKmskw_MEMi8_AVX512=3599, + XED_IFORM_VPABSB_ZMMi8_MASKmskw_ZMMi8_AVX512=3600, + XED_IFORM_VPABSD_XMMdq_MEMdq=3601, + XED_IFORM_VPABSD_XMMdq_XMMdq=3602, + XED_IFORM_VPABSD_XMMi32_MASKmskw_MEMi32_AVX512=3603, + XED_IFORM_VPABSD_XMMi32_MASKmskw_XMMi32_AVX512=3604, + XED_IFORM_VPABSD_YMMi32_MASKmskw_MEMi32_AVX512=3605, + XED_IFORM_VPABSD_YMMi32_MASKmskw_YMMi32_AVX512=3606, + XED_IFORM_VPABSD_YMMqq_MEMqq=3607, + XED_IFORM_VPABSD_YMMqq_YMMqq=3608, + XED_IFORM_VPABSD_ZMMi32_MASKmskw_MEMi32_AVX512=3609, + XED_IFORM_VPABSD_ZMMi32_MASKmskw_ZMMi32_AVX512=3610, + XED_IFORM_VPABSQ_XMMi64_MASKmskw_MEMi64_AVX512=3611, + XED_IFORM_VPABSQ_XMMi64_MASKmskw_XMMi64_AVX512=3612, + XED_IFORM_VPABSQ_YMMi64_MASKmskw_MEMi64_AVX512=3613, + XED_IFORM_VPABSQ_YMMi64_MASKmskw_YMMi64_AVX512=3614, + XED_IFORM_VPABSQ_ZMMi64_MASKmskw_MEMi64_AVX512=3615, + XED_IFORM_VPABSQ_ZMMi64_MASKmskw_ZMMi64_AVX512=3616, + XED_IFORM_VPABSW_XMMdq_MEMdq=3617, + XED_IFORM_VPABSW_XMMdq_XMMdq=3618, + XED_IFORM_VPABSW_XMMi16_MASKmskw_MEMi16_AVX512=3619, + XED_IFORM_VPABSW_XMMi16_MASKmskw_XMMi16_AVX512=3620, + XED_IFORM_VPABSW_YMMi16_MASKmskw_MEMi16_AVX512=3621, + XED_IFORM_VPABSW_YMMi16_MASKmskw_YMMi16_AVX512=3622, + XED_IFORM_VPABSW_YMMqq_MEMqq=3623, + XED_IFORM_VPABSW_YMMqq_YMMqq=3624, + XED_IFORM_VPABSW_ZMMi16_MASKmskw_MEMi16_AVX512=3625, + XED_IFORM_VPABSW_ZMMi16_MASKmskw_ZMMi16_AVX512=3626, + XED_IFORM_VPACKSSDW_XMMdq_XMMdq_MEMdq=3627, + XED_IFORM_VPACKSSDW_XMMdq_XMMdq_XMMdq=3628, + XED_IFORM_VPACKSSDW_XMMi16_MASKmskw_XMMi32_MEMi32_AVX512=3629, + XED_IFORM_VPACKSSDW_XMMi16_MASKmskw_XMMi32_XMMi32_AVX512=3630, + XED_IFORM_VPACKSSDW_YMMi16_MASKmskw_YMMi32_MEMi32_AVX512=3631, + XED_IFORM_VPACKSSDW_YMMi16_MASKmskw_YMMi32_YMMi32_AVX512=3632, + XED_IFORM_VPACKSSDW_YMMqq_YMMqq_MEMqq=3633, + XED_IFORM_VPACKSSDW_YMMqq_YMMqq_YMMqq=3634, + XED_IFORM_VPACKSSDW_ZMMi16_MASKmskw_ZMMi32_MEMi32_AVX512=3635, + XED_IFORM_VPACKSSDW_ZMMi16_MASKmskw_ZMMi32_ZMMi32_AVX512=3636, + XED_IFORM_VPACKSSWB_XMMdq_XMMdq_MEMdq=3637, + XED_IFORM_VPACKSSWB_XMMdq_XMMdq_XMMdq=3638, + XED_IFORM_VPACKSSWB_XMMi8_MASKmskw_XMMi16_MEMi16_AVX512=3639, + XED_IFORM_VPACKSSWB_XMMi8_MASKmskw_XMMi16_XMMi16_AVX512=3640, + XED_IFORM_VPACKSSWB_YMMi8_MASKmskw_YMMi16_MEMi16_AVX512=3641, + XED_IFORM_VPACKSSWB_YMMi8_MASKmskw_YMMi16_YMMi16_AVX512=3642, + XED_IFORM_VPACKSSWB_YMMqq_YMMqq_MEMqq=3643, + XED_IFORM_VPACKSSWB_YMMqq_YMMqq_YMMqq=3644, + XED_IFORM_VPACKSSWB_ZMMi8_MASKmskw_ZMMi16_MEMi16_AVX512=3645, + XED_IFORM_VPACKSSWB_ZMMi8_MASKmskw_ZMMi16_ZMMi16_AVX512=3646, + XED_IFORM_VPACKUSDW_XMMdq_XMMdq_MEMdq=3647, + XED_IFORM_VPACKUSDW_XMMdq_XMMdq_XMMdq=3648, + XED_IFORM_VPACKUSDW_XMMu16_MASKmskw_XMMu32_MEMu32_AVX512=3649, + XED_IFORM_VPACKUSDW_XMMu16_MASKmskw_XMMu32_XMMu32_AVX512=3650, + XED_IFORM_VPACKUSDW_YMMqq_YMMqq_MEMqq=3651, + XED_IFORM_VPACKUSDW_YMMqq_YMMqq_YMMqq=3652, + XED_IFORM_VPACKUSDW_YMMu16_MASKmskw_YMMu32_MEMu32_AVX512=3653, + XED_IFORM_VPACKUSDW_YMMu16_MASKmskw_YMMu32_YMMu32_AVX512=3654, + XED_IFORM_VPACKUSDW_ZMMu16_MASKmskw_ZMMu32_MEMu32_AVX512=3655, + XED_IFORM_VPACKUSDW_ZMMu16_MASKmskw_ZMMu32_ZMMu32_AVX512=3656, + XED_IFORM_VPACKUSWB_XMMdq_XMMdq_MEMdq=3657, + XED_IFORM_VPACKUSWB_XMMdq_XMMdq_XMMdq=3658, + XED_IFORM_VPACKUSWB_XMMu8_MASKmskw_XMMu16_MEMu16_AVX512=3659, + XED_IFORM_VPACKUSWB_XMMu8_MASKmskw_XMMu16_XMMu16_AVX512=3660, + XED_IFORM_VPACKUSWB_YMMqq_YMMqq_MEMqq=3661, + XED_IFORM_VPACKUSWB_YMMqq_YMMqq_YMMqq=3662, + XED_IFORM_VPACKUSWB_YMMu8_MASKmskw_YMMu16_MEMu16_AVX512=3663, + XED_IFORM_VPACKUSWB_YMMu8_MASKmskw_YMMu16_YMMu16_AVX512=3664, + XED_IFORM_VPACKUSWB_ZMMu8_MASKmskw_ZMMu16_MEMu16_AVX512=3665, + XED_IFORM_VPACKUSWB_ZMMu8_MASKmskw_ZMMu16_ZMMu16_AVX512=3666, + XED_IFORM_VPADDB_XMMdq_XMMdq_MEMdq=3667, + XED_IFORM_VPADDB_XMMdq_XMMdq_XMMdq=3668, + XED_IFORM_VPADDB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=3669, + XED_IFORM_VPADDB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=3670, + XED_IFORM_VPADDB_YMMqq_YMMqq_MEMqq=3671, + XED_IFORM_VPADDB_YMMqq_YMMqq_YMMqq=3672, + XED_IFORM_VPADDB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=3673, + XED_IFORM_VPADDB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=3674, + XED_IFORM_VPADDB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=3675, + XED_IFORM_VPADDB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=3676, + XED_IFORM_VPADDD_XMMdq_XMMdq_MEMdq=3677, + XED_IFORM_VPADDD_XMMdq_XMMdq_XMMdq=3678, + XED_IFORM_VPADDD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=3679, + XED_IFORM_VPADDD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=3680, + XED_IFORM_VPADDD_YMMqq_YMMqq_MEMqq=3681, + XED_IFORM_VPADDD_YMMqq_YMMqq_YMMqq=3682, + XED_IFORM_VPADDD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=3683, + XED_IFORM_VPADDD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=3684, + XED_IFORM_VPADDD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=3685, + XED_IFORM_VPADDD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=3686, + XED_IFORM_VPADDQ_XMMdq_XMMdq_MEMdq=3687, + XED_IFORM_VPADDQ_XMMdq_XMMdq_XMMdq=3688, + XED_IFORM_VPADDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=3689, + XED_IFORM_VPADDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=3690, + XED_IFORM_VPADDQ_YMMqq_YMMqq_MEMqq=3691, + XED_IFORM_VPADDQ_YMMqq_YMMqq_YMMqq=3692, + XED_IFORM_VPADDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=3693, + XED_IFORM_VPADDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=3694, + XED_IFORM_VPADDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=3695, + XED_IFORM_VPADDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=3696, + XED_IFORM_VPADDSB_XMMdq_XMMdq_MEMdq=3697, + XED_IFORM_VPADDSB_XMMdq_XMMdq_XMMdq=3698, + XED_IFORM_VPADDSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512=3699, + XED_IFORM_VPADDSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512=3700, + XED_IFORM_VPADDSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512=3701, + XED_IFORM_VPADDSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512=3702, + XED_IFORM_VPADDSB_YMMqq_YMMqq_MEMqq=3703, + XED_IFORM_VPADDSB_YMMqq_YMMqq_YMMqq=3704, + XED_IFORM_VPADDSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512=3705, + XED_IFORM_VPADDSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512=3706, + XED_IFORM_VPADDSW_XMMdq_XMMdq_MEMdq=3707, + XED_IFORM_VPADDSW_XMMdq_XMMdq_XMMdq=3708, + XED_IFORM_VPADDSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512=3709, + XED_IFORM_VPADDSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512=3710, + XED_IFORM_VPADDSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512=3711, + XED_IFORM_VPADDSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512=3712, + XED_IFORM_VPADDSW_YMMqq_YMMqq_MEMqq=3713, + XED_IFORM_VPADDSW_YMMqq_YMMqq_YMMqq=3714, + XED_IFORM_VPADDSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512=3715, + XED_IFORM_VPADDSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512=3716, + XED_IFORM_VPADDUSB_XMMdq_XMMdq_MEMdq=3717, + XED_IFORM_VPADDUSB_XMMdq_XMMdq_XMMdq=3718, + XED_IFORM_VPADDUSB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=3719, + XED_IFORM_VPADDUSB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=3720, + XED_IFORM_VPADDUSB_YMMqq_YMMqq_MEMqq=3721, + XED_IFORM_VPADDUSB_YMMqq_YMMqq_YMMqq=3722, + XED_IFORM_VPADDUSB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=3723, + XED_IFORM_VPADDUSB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=3724, + XED_IFORM_VPADDUSB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=3725, + XED_IFORM_VPADDUSB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=3726, + XED_IFORM_VPADDUSW_XMMdq_XMMdq_MEMdq=3727, + XED_IFORM_VPADDUSW_XMMdq_XMMdq_XMMdq=3728, + XED_IFORM_VPADDUSW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=3729, + XED_IFORM_VPADDUSW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=3730, + XED_IFORM_VPADDUSW_YMMqq_YMMqq_MEMqq=3731, + XED_IFORM_VPADDUSW_YMMqq_YMMqq_YMMqq=3732, + XED_IFORM_VPADDUSW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=3733, + XED_IFORM_VPADDUSW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=3734, + XED_IFORM_VPADDUSW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=3735, + XED_IFORM_VPADDUSW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=3736, + XED_IFORM_VPADDW_XMMdq_XMMdq_MEMdq=3737, + XED_IFORM_VPADDW_XMMdq_XMMdq_XMMdq=3738, + XED_IFORM_VPADDW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=3739, + XED_IFORM_VPADDW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=3740, + XED_IFORM_VPADDW_YMMqq_YMMqq_MEMqq=3741, + XED_IFORM_VPADDW_YMMqq_YMMqq_YMMqq=3742, + XED_IFORM_VPADDW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=3743, + XED_IFORM_VPADDW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=3744, + XED_IFORM_VPADDW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=3745, + XED_IFORM_VPADDW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=3746, + XED_IFORM_VPALIGNR_XMMdq_XMMdq_MEMdq_IMMb=3747, + XED_IFORM_VPALIGNR_XMMdq_XMMdq_XMMdq_IMMb=3748, + XED_IFORM_VPALIGNR_XMMu8_MASKmskw_XMMu8_MEMu8_IMM8_AVX512=3749, + XED_IFORM_VPALIGNR_XMMu8_MASKmskw_XMMu8_XMMu8_IMM8_AVX512=3750, + XED_IFORM_VPALIGNR_YMMqq_YMMqq_MEMqq_IMMb=3751, + XED_IFORM_VPALIGNR_YMMqq_YMMqq_YMMqq_IMMb=3752, + XED_IFORM_VPALIGNR_YMMu8_MASKmskw_YMMu8_MEMu8_IMM8_AVX512=3753, + XED_IFORM_VPALIGNR_YMMu8_MASKmskw_YMMu8_YMMu8_IMM8_AVX512=3754, + XED_IFORM_VPALIGNR_ZMMu8_MASKmskw_ZMMu8_MEMu8_IMM8_AVX512=3755, + XED_IFORM_VPALIGNR_ZMMu8_MASKmskw_ZMMu8_ZMMu8_IMM8_AVX512=3756, + XED_IFORM_VPAND_XMMdq_XMMdq_MEMdq=3757, + XED_IFORM_VPAND_XMMdq_XMMdq_XMMdq=3758, + XED_IFORM_VPAND_YMMqq_YMMqq_MEMqq=3759, + XED_IFORM_VPAND_YMMqq_YMMqq_YMMqq=3760, + XED_IFORM_VPANDD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=3761, + XED_IFORM_VPANDD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=3762, + XED_IFORM_VPANDD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=3763, + XED_IFORM_VPANDD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=3764, + XED_IFORM_VPANDD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=3765, + XED_IFORM_VPANDD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=3766, + XED_IFORM_VPANDN_XMMdq_XMMdq_MEMdq=3767, + XED_IFORM_VPANDN_XMMdq_XMMdq_XMMdq=3768, + XED_IFORM_VPANDN_YMMqq_YMMqq_MEMqq=3769, + XED_IFORM_VPANDN_YMMqq_YMMqq_YMMqq=3770, + XED_IFORM_VPANDND_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=3771, + XED_IFORM_VPANDND_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=3772, + XED_IFORM_VPANDND_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=3773, + XED_IFORM_VPANDND_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=3774, + XED_IFORM_VPANDND_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=3775, + XED_IFORM_VPANDND_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=3776, + XED_IFORM_VPANDNQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=3777, + XED_IFORM_VPANDNQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=3778, + XED_IFORM_VPANDNQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=3779, + XED_IFORM_VPANDNQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=3780, + XED_IFORM_VPANDNQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=3781, + XED_IFORM_VPANDNQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=3782, + XED_IFORM_VPANDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=3783, + XED_IFORM_VPANDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=3784, + XED_IFORM_VPANDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=3785, + XED_IFORM_VPANDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=3786, + XED_IFORM_VPANDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=3787, + XED_IFORM_VPANDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=3788, + XED_IFORM_VPAVGB_XMMdq_XMMdq_MEMdq=3789, + XED_IFORM_VPAVGB_XMMdq_XMMdq_XMMdq=3790, + XED_IFORM_VPAVGB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=3791, + XED_IFORM_VPAVGB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=3792, + XED_IFORM_VPAVGB_YMMqq_YMMqq_MEMqq=3793, + XED_IFORM_VPAVGB_YMMqq_YMMqq_YMMqq=3794, + XED_IFORM_VPAVGB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=3795, + XED_IFORM_VPAVGB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=3796, + XED_IFORM_VPAVGB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=3797, + XED_IFORM_VPAVGB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=3798, + XED_IFORM_VPAVGW_XMMdq_XMMdq_MEMdq=3799, + XED_IFORM_VPAVGW_XMMdq_XMMdq_XMMdq=3800, + XED_IFORM_VPAVGW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=3801, + XED_IFORM_VPAVGW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=3802, + XED_IFORM_VPAVGW_YMMqq_YMMqq_MEMqq=3803, + XED_IFORM_VPAVGW_YMMqq_YMMqq_YMMqq=3804, + XED_IFORM_VPAVGW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=3805, + XED_IFORM_VPAVGW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=3806, + XED_IFORM_VPAVGW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=3807, + XED_IFORM_VPAVGW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=3808, + XED_IFORM_VPBLENDD_XMMdq_XMMdq_MEMdq_IMMb=3809, + XED_IFORM_VPBLENDD_XMMdq_XMMdq_XMMdq_IMMb=3810, + XED_IFORM_VPBLENDD_YMMqq_YMMqq_MEMqq_IMMb=3811, + XED_IFORM_VPBLENDD_YMMqq_YMMqq_YMMqq_IMMb=3812, + XED_IFORM_VPBLENDMB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=3813, + XED_IFORM_VPBLENDMB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=3814, + XED_IFORM_VPBLENDMB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=3815, + XED_IFORM_VPBLENDMB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=3816, + XED_IFORM_VPBLENDMB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=3817, + XED_IFORM_VPBLENDMB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=3818, + XED_IFORM_VPBLENDMD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=3819, + XED_IFORM_VPBLENDMD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=3820, + XED_IFORM_VPBLENDMD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=3821, + XED_IFORM_VPBLENDMD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=3822, + XED_IFORM_VPBLENDMD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=3823, + XED_IFORM_VPBLENDMD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=3824, + XED_IFORM_VPBLENDMQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=3825, + XED_IFORM_VPBLENDMQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=3826, + XED_IFORM_VPBLENDMQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=3827, + XED_IFORM_VPBLENDMQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=3828, + XED_IFORM_VPBLENDMQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=3829, + XED_IFORM_VPBLENDMQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=3830, + XED_IFORM_VPBLENDMW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=3831, + XED_IFORM_VPBLENDMW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=3832, + XED_IFORM_VPBLENDMW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=3833, + XED_IFORM_VPBLENDMW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=3834, + XED_IFORM_VPBLENDMW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=3835, + XED_IFORM_VPBLENDMW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=3836, + XED_IFORM_VPBLENDVB_XMMdq_XMMdq_MEMdq_XMMdq=3837, + XED_IFORM_VPBLENDVB_XMMdq_XMMdq_XMMdq_XMMdq=3838, + XED_IFORM_VPBLENDVB_YMMqq_YMMqq_MEMqq_YMMqq=3839, + XED_IFORM_VPBLENDVB_YMMqq_YMMqq_YMMqq_YMMqq=3840, + XED_IFORM_VPBLENDW_XMMdq_XMMdq_MEMdq_IMMb=3841, + XED_IFORM_VPBLENDW_XMMdq_XMMdq_XMMdq_IMMb=3842, + XED_IFORM_VPBLENDW_YMMqq_YMMqq_MEMqq_IMMb=3843, + XED_IFORM_VPBLENDW_YMMqq_YMMqq_YMMqq_IMMb=3844, + XED_IFORM_VPBROADCASTB_XMMdq_MEMb=3845, + XED_IFORM_VPBROADCASTB_XMMdq_XMMb=3846, + XED_IFORM_VPBROADCASTB_XMMu8_MASKmskw_GPR32u8_AVX512=3847, + XED_IFORM_VPBROADCASTB_XMMu8_MASKmskw_MEMu8_AVX512=3848, + XED_IFORM_VPBROADCASTB_XMMu8_MASKmskw_XMMu8_AVX512=3849, + XED_IFORM_VPBROADCASTB_YMMqq_MEMb=3850, + XED_IFORM_VPBROADCASTB_YMMqq_XMMb=3851, + XED_IFORM_VPBROADCASTB_YMMu8_MASKmskw_GPR32u8_AVX512=3852, + XED_IFORM_VPBROADCASTB_YMMu8_MASKmskw_MEMu8_AVX512=3853, + XED_IFORM_VPBROADCASTB_YMMu8_MASKmskw_XMMu8_AVX512=3854, + XED_IFORM_VPBROADCASTB_ZMMu8_MASKmskw_GPR32u8_AVX512=3855, + XED_IFORM_VPBROADCASTB_ZMMu8_MASKmskw_MEMu8_AVX512=3856, + XED_IFORM_VPBROADCASTB_ZMMu8_MASKmskw_XMMu8_AVX512=3857, + XED_IFORM_VPBROADCASTD_XMMdq_MEMd=3858, + XED_IFORM_VPBROADCASTD_XMMdq_XMMd=3859, + XED_IFORM_VPBROADCASTD_XMMu32_MASKmskw_GPR32u32_AVX512=3860, + XED_IFORM_VPBROADCASTD_XMMu32_MASKmskw_MEMu32_AVX512=3861, + XED_IFORM_VPBROADCASTD_XMMu32_MASKmskw_XMMu32_AVX512=3862, + XED_IFORM_VPBROADCASTD_YMMqq_MEMd=3863, + XED_IFORM_VPBROADCASTD_YMMqq_XMMd=3864, + XED_IFORM_VPBROADCASTD_YMMu32_MASKmskw_GPR32u32_AVX512=3865, + XED_IFORM_VPBROADCASTD_YMMu32_MASKmskw_MEMu32_AVX512=3866, + XED_IFORM_VPBROADCASTD_YMMu32_MASKmskw_XMMu32_AVX512=3867, + XED_IFORM_VPBROADCASTD_ZMMu32_MASKmskw_GPR32u32_AVX512=3868, + XED_IFORM_VPBROADCASTD_ZMMu32_MASKmskw_MEMu32_AVX512=3869, + XED_IFORM_VPBROADCASTD_ZMMu32_MASKmskw_XMMu32_AVX512=3870, + XED_IFORM_VPBROADCASTMB2Q_XMMu64_MASKu64_AVX512=3871, + XED_IFORM_VPBROADCASTMB2Q_YMMu64_MASKu64_AVX512=3872, + XED_IFORM_VPBROADCASTMB2Q_ZMMu64_MASKu64_AVX512CD=3873, + XED_IFORM_VPBROADCASTMW2D_XMMu32_MASKu32_AVX512=3874, + XED_IFORM_VPBROADCASTMW2D_YMMu32_MASKu32_AVX512=3875, + XED_IFORM_VPBROADCASTMW2D_ZMMu32_MASKu32_AVX512CD=3876, + XED_IFORM_VPBROADCASTQ_XMMdq_MEMq=3877, + XED_IFORM_VPBROADCASTQ_XMMdq_XMMq=3878, + XED_IFORM_VPBROADCASTQ_XMMu64_MASKmskw_GPR64u64_AVX512=3879, + XED_IFORM_VPBROADCASTQ_XMMu64_MASKmskw_MEMu64_AVX512=3880, + XED_IFORM_VPBROADCASTQ_XMMu64_MASKmskw_XMMu64_AVX512=3881, + XED_IFORM_VPBROADCASTQ_YMMqq_MEMq=3882, + XED_IFORM_VPBROADCASTQ_YMMqq_XMMq=3883, + XED_IFORM_VPBROADCASTQ_YMMu64_MASKmskw_GPR64u64_AVX512=3884, + XED_IFORM_VPBROADCASTQ_YMMu64_MASKmskw_MEMu64_AVX512=3885, + XED_IFORM_VPBROADCASTQ_YMMu64_MASKmskw_XMMu64_AVX512=3886, + XED_IFORM_VPBROADCASTQ_ZMMu64_MASKmskw_GPR64u64_AVX512=3887, + XED_IFORM_VPBROADCASTQ_ZMMu64_MASKmskw_MEMu64_AVX512=3888, + XED_IFORM_VPBROADCASTQ_ZMMu64_MASKmskw_XMMu64_AVX512=3889, + XED_IFORM_VPBROADCASTW_XMMdq_MEMw=3890, + XED_IFORM_VPBROADCASTW_XMMdq_XMMw=3891, + XED_IFORM_VPBROADCASTW_XMMu16_MASKmskw_GPR32u16_AVX512=3892, + XED_IFORM_VPBROADCASTW_XMMu16_MASKmskw_MEMu16_AVX512=3893, + XED_IFORM_VPBROADCASTW_XMMu16_MASKmskw_XMMu16_AVX512=3894, + XED_IFORM_VPBROADCASTW_YMMqq_MEMw=3895, + XED_IFORM_VPBROADCASTW_YMMqq_XMMw=3896, + XED_IFORM_VPBROADCASTW_YMMu16_MASKmskw_GPR32u16_AVX512=3897, + XED_IFORM_VPBROADCASTW_YMMu16_MASKmskw_MEMu16_AVX512=3898, + XED_IFORM_VPBROADCASTW_YMMu16_MASKmskw_XMMu16_AVX512=3899, + XED_IFORM_VPBROADCASTW_ZMMu16_MASKmskw_GPR32u16_AVX512=3900, + XED_IFORM_VPBROADCASTW_ZMMu16_MASKmskw_MEMu16_AVX512=3901, + XED_IFORM_VPBROADCASTW_ZMMu16_MASKmskw_XMMu16_AVX512=3902, + XED_IFORM_VPCLMULQDQ_XMMdq_XMMdq_MEMdq_IMMb=3903, + XED_IFORM_VPCLMULQDQ_XMMdq_XMMdq_XMMdq_IMMb=3904, + XED_IFORM_VPCMOV_XMMdq_XMMdq_MEMdq_XMMdq=3905, + XED_IFORM_VPCMOV_XMMdq_XMMdq_XMMdq_MEMdq=3906, + XED_IFORM_VPCMOV_XMMdq_XMMdq_XMMdq_XMMdq=3907, + XED_IFORM_VPCMOV_YMMqq_YMMqq_MEMqq_YMMqq=3908, + XED_IFORM_VPCMOV_YMMqq_YMMqq_YMMqq_MEMqq=3909, + XED_IFORM_VPCMOV_YMMqq_YMMqq_YMMqq_YMMqq=3910, + XED_IFORM_VPCMPB_MASKmskw_MASKmskw_XMMi8_MEMi8_IMM8_AVX512=3911, + XED_IFORM_VPCMPB_MASKmskw_MASKmskw_XMMi8_XMMi8_IMM8_AVX512=3912, + XED_IFORM_VPCMPB_MASKmskw_MASKmskw_YMMi8_MEMi8_IMM8_AVX512=3913, + XED_IFORM_VPCMPB_MASKmskw_MASKmskw_YMMi8_YMMi8_IMM8_AVX512=3914, + XED_IFORM_VPCMPB_MASKmskw_MASKmskw_ZMMi8_MEMi8_IMM8_AVX512=3915, + XED_IFORM_VPCMPB_MASKmskw_MASKmskw_ZMMi8_ZMMi8_IMM8_AVX512=3916, + XED_IFORM_VPCMPD_MASKmskw_MASKmskw_XMMi32_MEMi32_IMM8_AVX512=3917, + XED_IFORM_VPCMPD_MASKmskw_MASKmskw_XMMi32_XMMi32_IMM8_AVX512=3918, + XED_IFORM_VPCMPD_MASKmskw_MASKmskw_YMMi32_MEMi32_IMM8_AVX512=3919, + XED_IFORM_VPCMPD_MASKmskw_MASKmskw_YMMi32_YMMi32_IMM8_AVX512=3920, + XED_IFORM_VPCMPD_MASKmskw_MASKmskw_ZMMi32_MEMi32_IMM8_AVX512=3921, + XED_IFORM_VPCMPD_MASKmskw_MASKmskw_ZMMi32_ZMMi32_IMM8_AVX512=3922, + XED_IFORM_VPCMPEQB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512=3923, + XED_IFORM_VPCMPEQB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512=3924, + XED_IFORM_VPCMPEQB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512=3925, + XED_IFORM_VPCMPEQB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512=3926, + XED_IFORM_VPCMPEQB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512=3927, + XED_IFORM_VPCMPEQB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512=3928, + XED_IFORM_VPCMPEQB_XMMdq_XMMdq_MEMdq=3929, + XED_IFORM_VPCMPEQB_XMMdq_XMMdq_XMMdq=3930, + XED_IFORM_VPCMPEQB_YMMqq_YMMqq_MEMqq=3931, + XED_IFORM_VPCMPEQB_YMMqq_YMMqq_YMMqq=3932, + XED_IFORM_VPCMPEQD_MASKmskw_MASKmskw_XMMu32_MEMu32_AVX512=3933, + XED_IFORM_VPCMPEQD_MASKmskw_MASKmskw_XMMu32_XMMu32_AVX512=3934, + XED_IFORM_VPCMPEQD_MASKmskw_MASKmskw_YMMu32_MEMu32_AVX512=3935, + XED_IFORM_VPCMPEQD_MASKmskw_MASKmskw_YMMu32_YMMu32_AVX512=3936, + XED_IFORM_VPCMPEQD_MASKmskw_MASKmskw_ZMMu32_MEMu32_AVX512=3937, + XED_IFORM_VPCMPEQD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_AVX512=3938, + XED_IFORM_VPCMPEQD_XMMdq_XMMdq_MEMdq=3939, + XED_IFORM_VPCMPEQD_XMMdq_XMMdq_XMMdq=3940, + XED_IFORM_VPCMPEQD_YMMqq_YMMqq_MEMqq=3941, + XED_IFORM_VPCMPEQD_YMMqq_YMMqq_YMMqq=3942, + XED_IFORM_VPCMPEQQ_MASKmskw_MASKmskw_XMMu64_MEMu64_AVX512=3943, + XED_IFORM_VPCMPEQQ_MASKmskw_MASKmskw_XMMu64_XMMu64_AVX512=3944, + XED_IFORM_VPCMPEQQ_MASKmskw_MASKmskw_YMMu64_MEMu64_AVX512=3945, + XED_IFORM_VPCMPEQQ_MASKmskw_MASKmskw_YMMu64_YMMu64_AVX512=3946, + XED_IFORM_VPCMPEQQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_AVX512=3947, + XED_IFORM_VPCMPEQQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_AVX512=3948, + XED_IFORM_VPCMPEQQ_XMMdq_XMMdq_MEMdq=3949, + XED_IFORM_VPCMPEQQ_XMMdq_XMMdq_XMMdq=3950, + XED_IFORM_VPCMPEQQ_YMMqq_YMMqq_MEMqq=3951, + XED_IFORM_VPCMPEQQ_YMMqq_YMMqq_YMMqq=3952, + XED_IFORM_VPCMPEQW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512=3953, + XED_IFORM_VPCMPEQW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512=3954, + XED_IFORM_VPCMPEQW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512=3955, + XED_IFORM_VPCMPEQW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512=3956, + XED_IFORM_VPCMPEQW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512=3957, + XED_IFORM_VPCMPEQW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512=3958, + XED_IFORM_VPCMPEQW_XMMdq_XMMdq_MEMdq=3959, + XED_IFORM_VPCMPEQW_XMMdq_XMMdq_XMMdq=3960, + XED_IFORM_VPCMPEQW_YMMqq_YMMqq_MEMqq=3961, + XED_IFORM_VPCMPEQW_YMMqq_YMMqq_YMMqq=3962, + XED_IFORM_VPCMPESTRI_XMMdq_MEMdq_IMMb=3963, + XED_IFORM_VPCMPESTRI_XMMdq_XMMdq_IMMb=3964, + XED_IFORM_VPCMPESTRM_XMMdq_MEMdq_IMMb=3965, + XED_IFORM_VPCMPESTRM_XMMdq_XMMdq_IMMb=3966, + XED_IFORM_VPCMPGTB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512=3967, + XED_IFORM_VPCMPGTB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512=3968, + XED_IFORM_VPCMPGTB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512=3969, + XED_IFORM_VPCMPGTB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512=3970, + XED_IFORM_VPCMPGTB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512=3971, + XED_IFORM_VPCMPGTB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512=3972, + XED_IFORM_VPCMPGTB_XMMdq_XMMdq_MEMdq=3973, + XED_IFORM_VPCMPGTB_XMMdq_XMMdq_XMMdq=3974, + XED_IFORM_VPCMPGTB_YMMqq_YMMqq_MEMqq=3975, + XED_IFORM_VPCMPGTB_YMMqq_YMMqq_YMMqq=3976, + XED_IFORM_VPCMPGTD_MASKmskw_MASKmskw_XMMi32_MEMi32_AVX512=3977, + XED_IFORM_VPCMPGTD_MASKmskw_MASKmskw_XMMi32_XMMi32_AVX512=3978, + XED_IFORM_VPCMPGTD_MASKmskw_MASKmskw_YMMi32_MEMi32_AVX512=3979, + XED_IFORM_VPCMPGTD_MASKmskw_MASKmskw_YMMi32_YMMi32_AVX512=3980, + XED_IFORM_VPCMPGTD_MASKmskw_MASKmskw_ZMMi32_MEMi32_AVX512=3981, + XED_IFORM_VPCMPGTD_MASKmskw_MASKmskw_ZMMi32_ZMMi32_AVX512=3982, + XED_IFORM_VPCMPGTD_XMMdq_XMMdq_MEMdq=3983, + XED_IFORM_VPCMPGTD_XMMdq_XMMdq_XMMdq=3984, + XED_IFORM_VPCMPGTD_YMMqq_YMMqq_MEMqq=3985, + XED_IFORM_VPCMPGTD_YMMqq_YMMqq_YMMqq=3986, + XED_IFORM_VPCMPGTQ_MASKmskw_MASKmskw_XMMi64_MEMi64_AVX512=3987, + XED_IFORM_VPCMPGTQ_MASKmskw_MASKmskw_XMMi64_XMMi64_AVX512=3988, + XED_IFORM_VPCMPGTQ_MASKmskw_MASKmskw_YMMi64_MEMi64_AVX512=3989, + XED_IFORM_VPCMPGTQ_MASKmskw_MASKmskw_YMMi64_YMMi64_AVX512=3990, + XED_IFORM_VPCMPGTQ_MASKmskw_MASKmskw_ZMMi64_MEMi64_AVX512=3991, + XED_IFORM_VPCMPGTQ_MASKmskw_MASKmskw_ZMMi64_ZMMi64_AVX512=3992, + XED_IFORM_VPCMPGTQ_XMMdq_XMMdq_MEMdq=3993, + XED_IFORM_VPCMPGTQ_XMMdq_XMMdq_XMMdq=3994, + XED_IFORM_VPCMPGTQ_YMMqq_YMMqq_MEMqq=3995, + XED_IFORM_VPCMPGTQ_YMMqq_YMMqq_YMMqq=3996, + XED_IFORM_VPCMPGTW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512=3997, + XED_IFORM_VPCMPGTW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512=3998, + XED_IFORM_VPCMPGTW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512=3999, + XED_IFORM_VPCMPGTW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512=4000, + XED_IFORM_VPCMPGTW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512=4001, + XED_IFORM_VPCMPGTW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512=4002, + XED_IFORM_VPCMPGTW_XMMdq_XMMdq_MEMdq=4003, + XED_IFORM_VPCMPGTW_XMMdq_XMMdq_XMMdq=4004, + XED_IFORM_VPCMPGTW_YMMqq_YMMqq_MEMqq=4005, + XED_IFORM_VPCMPGTW_YMMqq_YMMqq_YMMqq=4006, + XED_IFORM_VPCMPISTRI_XMMdq_MEMdq_IMMb=4007, + XED_IFORM_VPCMPISTRI_XMMdq_XMMdq_IMMb=4008, + XED_IFORM_VPCMPISTRM_XMMdq_MEMdq_IMMb=4009, + XED_IFORM_VPCMPISTRM_XMMdq_XMMdq_IMMb=4010, + XED_IFORM_VPCMPQ_MASKmskw_MASKmskw_XMMi64_MEMi64_IMM8_AVX512=4011, + XED_IFORM_VPCMPQ_MASKmskw_MASKmskw_XMMi64_XMMi64_IMM8_AVX512=4012, + XED_IFORM_VPCMPQ_MASKmskw_MASKmskw_YMMi64_MEMi64_IMM8_AVX512=4013, + XED_IFORM_VPCMPQ_MASKmskw_MASKmskw_YMMi64_YMMi64_IMM8_AVX512=4014, + XED_IFORM_VPCMPQ_MASKmskw_MASKmskw_ZMMi64_MEMi64_IMM8_AVX512=4015, + XED_IFORM_VPCMPQ_MASKmskw_MASKmskw_ZMMi64_ZMMi64_IMM8_AVX512=4016, + XED_IFORM_VPCMPUB_MASKmskw_MASKmskw_XMMu8_MEMu8_IMM8_AVX512=4017, + XED_IFORM_VPCMPUB_MASKmskw_MASKmskw_XMMu8_XMMu8_IMM8_AVX512=4018, + XED_IFORM_VPCMPUB_MASKmskw_MASKmskw_YMMu8_MEMu8_IMM8_AVX512=4019, + XED_IFORM_VPCMPUB_MASKmskw_MASKmskw_YMMu8_YMMu8_IMM8_AVX512=4020, + XED_IFORM_VPCMPUB_MASKmskw_MASKmskw_ZMMu8_MEMu8_IMM8_AVX512=4021, + XED_IFORM_VPCMPUB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_IMM8_AVX512=4022, + XED_IFORM_VPCMPUD_MASKmskw_MASKmskw_XMMu32_MEMu32_IMM8_AVX512=4023, + XED_IFORM_VPCMPUD_MASKmskw_MASKmskw_XMMu32_XMMu32_IMM8_AVX512=4024, + XED_IFORM_VPCMPUD_MASKmskw_MASKmskw_YMMu32_MEMu32_IMM8_AVX512=4025, + XED_IFORM_VPCMPUD_MASKmskw_MASKmskw_YMMu32_YMMu32_IMM8_AVX512=4026, + XED_IFORM_VPCMPUD_MASKmskw_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512=4027, + XED_IFORM_VPCMPUD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512=4028, + XED_IFORM_VPCMPUQ_MASKmskw_MASKmskw_XMMu64_MEMu64_IMM8_AVX512=4029, + XED_IFORM_VPCMPUQ_MASKmskw_MASKmskw_XMMu64_XMMu64_IMM8_AVX512=4030, + XED_IFORM_VPCMPUQ_MASKmskw_MASKmskw_YMMu64_MEMu64_IMM8_AVX512=4031, + XED_IFORM_VPCMPUQ_MASKmskw_MASKmskw_YMMu64_YMMu64_IMM8_AVX512=4032, + XED_IFORM_VPCMPUQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512=4033, + XED_IFORM_VPCMPUQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512=4034, + XED_IFORM_VPCMPUW_MASKmskw_MASKmskw_XMMu16_MEMu16_IMM8_AVX512=4035, + XED_IFORM_VPCMPUW_MASKmskw_MASKmskw_XMMu16_XMMu16_IMM8_AVX512=4036, + XED_IFORM_VPCMPUW_MASKmskw_MASKmskw_YMMu16_MEMu16_IMM8_AVX512=4037, + XED_IFORM_VPCMPUW_MASKmskw_MASKmskw_YMMu16_YMMu16_IMM8_AVX512=4038, + XED_IFORM_VPCMPUW_MASKmskw_MASKmskw_ZMMu16_MEMu16_IMM8_AVX512=4039, + XED_IFORM_VPCMPUW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_IMM8_AVX512=4040, + XED_IFORM_VPCMPW_MASKmskw_MASKmskw_XMMi16_MEMi16_IMM8_AVX512=4041, + XED_IFORM_VPCMPW_MASKmskw_MASKmskw_XMMi16_XMMi16_IMM8_AVX512=4042, + XED_IFORM_VPCMPW_MASKmskw_MASKmskw_YMMi16_MEMi16_IMM8_AVX512=4043, + XED_IFORM_VPCMPW_MASKmskw_MASKmskw_YMMi16_YMMi16_IMM8_AVX512=4044, + XED_IFORM_VPCMPW_MASKmskw_MASKmskw_ZMMi16_MEMi16_IMM8_AVX512=4045, + XED_IFORM_VPCMPW_MASKmskw_MASKmskw_ZMMi16_ZMMi16_IMM8_AVX512=4046, + XED_IFORM_VPCOMB_XMMdq_XMMdq_MEMdq_IMMb=4047, + XED_IFORM_VPCOMB_XMMdq_XMMdq_XMMdq_IMMb=4048, + XED_IFORM_VPCOMD_XMMdq_XMMdq_MEMdq_IMMb=4049, + XED_IFORM_VPCOMD_XMMdq_XMMdq_XMMdq_IMMb=4050, + XED_IFORM_VPCOMPRESSD_MEMu32_MASKmskw_XMMu32_AVX512=4051, + XED_IFORM_VPCOMPRESSD_MEMu32_MASKmskw_YMMu32_AVX512=4052, + XED_IFORM_VPCOMPRESSD_MEMu32_MASKmskw_ZMMu32_AVX512=4053, + XED_IFORM_VPCOMPRESSD_XMMu32_MASKmskw_XMMu32_AVX512=4054, + XED_IFORM_VPCOMPRESSD_YMMu32_MASKmskw_YMMu32_AVX512=4055, + XED_IFORM_VPCOMPRESSD_ZMMu32_MASKmskw_ZMMu32_AVX512=4056, + XED_IFORM_VPCOMPRESSQ_MEMu64_MASKmskw_XMMu64_AVX512=4057, + XED_IFORM_VPCOMPRESSQ_MEMu64_MASKmskw_YMMu64_AVX512=4058, + XED_IFORM_VPCOMPRESSQ_MEMu64_MASKmskw_ZMMu64_AVX512=4059, + XED_IFORM_VPCOMPRESSQ_XMMu64_MASKmskw_XMMu64_AVX512=4060, + XED_IFORM_VPCOMPRESSQ_YMMu64_MASKmskw_YMMu64_AVX512=4061, + XED_IFORM_VPCOMPRESSQ_ZMMu64_MASKmskw_ZMMu64_AVX512=4062, + XED_IFORM_VPCOMQ_XMMdq_XMMdq_MEMdq_IMMb=4063, + XED_IFORM_VPCOMQ_XMMdq_XMMdq_XMMdq_IMMb=4064, + XED_IFORM_VPCOMUB_XMMdq_XMMdq_MEMdq_IMMb=4065, + XED_IFORM_VPCOMUB_XMMdq_XMMdq_XMMdq_IMMb=4066, + XED_IFORM_VPCOMUD_XMMdq_XMMdq_MEMdq_IMMb=4067, + XED_IFORM_VPCOMUD_XMMdq_XMMdq_XMMdq_IMMb=4068, + XED_IFORM_VPCOMUQ_XMMdq_XMMdq_MEMdq_IMMb=4069, + XED_IFORM_VPCOMUQ_XMMdq_XMMdq_XMMdq_IMMb=4070, + XED_IFORM_VPCOMUW_XMMdq_XMMdq_MEMdq_IMMb=4071, + XED_IFORM_VPCOMUW_XMMdq_XMMdq_XMMdq_IMMb=4072, + XED_IFORM_VPCOMW_XMMdq_XMMdq_MEMdq_IMMb=4073, + XED_IFORM_VPCOMW_XMMdq_XMMdq_XMMdq_IMMb=4074, + XED_IFORM_VPCONFLICTD_XMMu32_MASKmskw_MEMu32_AVX512=4075, + XED_IFORM_VPCONFLICTD_XMMu32_MASKmskw_XMMu32_AVX512=4076, + XED_IFORM_VPCONFLICTD_YMMu32_MASKmskw_MEMu32_AVX512=4077, + XED_IFORM_VPCONFLICTD_YMMu32_MASKmskw_YMMu32_AVX512=4078, + XED_IFORM_VPCONFLICTD_ZMMu32_MASKmskw_MEMu32_AVX512CD=4079, + XED_IFORM_VPCONFLICTD_ZMMu32_MASKmskw_ZMMu32_AVX512CD=4080, + XED_IFORM_VPCONFLICTQ_XMMu64_MASKmskw_MEMu64_AVX512=4081, + XED_IFORM_VPCONFLICTQ_XMMu64_MASKmskw_XMMu64_AVX512=4082, + XED_IFORM_VPCONFLICTQ_YMMu64_MASKmskw_MEMu64_AVX512=4083, + XED_IFORM_VPCONFLICTQ_YMMu64_MASKmskw_YMMu64_AVX512=4084, + XED_IFORM_VPCONFLICTQ_ZMMu64_MASKmskw_MEMu64_AVX512CD=4085, + XED_IFORM_VPCONFLICTQ_ZMMu64_MASKmskw_ZMMu64_AVX512CD=4086, + XED_IFORM_VPERM2F128_YMMqq_YMMqq_MEMqq_IMMb=4087, + XED_IFORM_VPERM2F128_YMMqq_YMMqq_YMMqq_IMMb=4088, + XED_IFORM_VPERM2I128_YMMqq_YMMqq_MEMqq_IMMb=4089, + XED_IFORM_VPERM2I128_YMMqq_YMMqq_YMMqq_IMMb=4090, + XED_IFORM_VPERMB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=4091, + XED_IFORM_VPERMB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=4092, + XED_IFORM_VPERMB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=4093, + XED_IFORM_VPERMB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=4094, + XED_IFORM_VPERMB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=4095, + XED_IFORM_VPERMB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=4096, + XED_IFORM_VPERMD_YMMqq_YMMqq_MEMqq=4097, + XED_IFORM_VPERMD_YMMqq_YMMqq_YMMqq=4098, + XED_IFORM_VPERMD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4099, + XED_IFORM_VPERMD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4100, + XED_IFORM_VPERMD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4101, + XED_IFORM_VPERMD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4102, + XED_IFORM_VPERMI2B_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=4103, + XED_IFORM_VPERMI2B_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=4104, + XED_IFORM_VPERMI2B_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=4105, + XED_IFORM_VPERMI2B_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=4106, + XED_IFORM_VPERMI2B_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=4107, + XED_IFORM_VPERMI2B_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=4108, + XED_IFORM_VPERMI2D_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4109, + XED_IFORM_VPERMI2D_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4110, + XED_IFORM_VPERMI2D_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4111, + XED_IFORM_VPERMI2D_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4112, + XED_IFORM_VPERMI2D_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4113, + XED_IFORM_VPERMI2D_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4114, + XED_IFORM_VPERMI2PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=4115, + XED_IFORM_VPERMI2PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=4116, + XED_IFORM_VPERMI2PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=4117, + XED_IFORM_VPERMI2PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=4118, + XED_IFORM_VPERMI2PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=4119, + XED_IFORM_VPERMI2PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=4120, + XED_IFORM_VPERMI2PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=4121, + XED_IFORM_VPERMI2PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=4122, + XED_IFORM_VPERMI2PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=4123, + XED_IFORM_VPERMI2PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=4124, + XED_IFORM_VPERMI2PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=4125, + XED_IFORM_VPERMI2PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=4126, + XED_IFORM_VPERMI2Q_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4127, + XED_IFORM_VPERMI2Q_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4128, + XED_IFORM_VPERMI2Q_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4129, + XED_IFORM_VPERMI2Q_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4130, + XED_IFORM_VPERMI2Q_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4131, + XED_IFORM_VPERMI2Q_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4132, + XED_IFORM_VPERMI2W_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4133, + XED_IFORM_VPERMI2W_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4134, + XED_IFORM_VPERMI2W_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4135, + XED_IFORM_VPERMI2W_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4136, + XED_IFORM_VPERMI2W_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4137, + XED_IFORM_VPERMI2W_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4138, + XED_IFORM_VPERMIL2PD_XMMdq_XMMdq_MEMdq_XMMdq_IMMb=4139, + XED_IFORM_VPERMIL2PD_XMMdq_XMMdq_XMMdq_MEMdq_IMMb=4140, + XED_IFORM_VPERMIL2PD_XMMdq_XMMdq_XMMdq_XMMdq_IMMb=4141, + XED_IFORM_VPERMIL2PD_YMMqq_YMMqq_MEMqq_YMMqq_IMMb=4142, + XED_IFORM_VPERMIL2PD_YMMqq_YMMqq_YMMqq_MEMqq_IMMb=4143, + XED_IFORM_VPERMIL2PD_YMMqq_YMMqq_YMMqq_YMMqq_IMMb=4144, + XED_IFORM_VPERMIL2PS_XMMdq_XMMdq_MEMdq_XMMdq_IMMb=4145, + XED_IFORM_VPERMIL2PS_XMMdq_XMMdq_XMMdq_MEMdq_IMMb=4146, + XED_IFORM_VPERMIL2PS_XMMdq_XMMdq_XMMdq_XMMdq_IMMb=4147, + XED_IFORM_VPERMIL2PS_YMMqq_YMMqq_MEMqq_YMMqq_IMMb=4148, + XED_IFORM_VPERMIL2PS_YMMqq_YMMqq_YMMqq_MEMqq_IMMb=4149, + XED_IFORM_VPERMIL2PS_YMMqq_YMMqq_YMMqq_YMMqq_IMMb=4150, + XED_IFORM_VPERMILPD_XMMdq_MEMdq_IMMb=4151, + XED_IFORM_VPERMILPD_XMMdq_XMMdq_IMMb=4152, + XED_IFORM_VPERMILPD_XMMdq_XMMdq_MEMdq=4153, + XED_IFORM_VPERMILPD_XMMdq_XMMdq_XMMdq=4154, + XED_IFORM_VPERMILPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512=4155, + XED_IFORM_VPERMILPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512=4156, + XED_IFORM_VPERMILPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=4157, + XED_IFORM_VPERMILPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=4158, + XED_IFORM_VPERMILPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512=4159, + XED_IFORM_VPERMILPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512=4160, + XED_IFORM_VPERMILPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=4161, + XED_IFORM_VPERMILPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=4162, + XED_IFORM_VPERMILPD_YMMqq_MEMqq_IMMb=4163, + XED_IFORM_VPERMILPD_YMMqq_YMMqq_IMMb=4164, + XED_IFORM_VPERMILPD_YMMqq_YMMqq_MEMqq=4165, + XED_IFORM_VPERMILPD_YMMqq_YMMqq_YMMqq=4166, + XED_IFORM_VPERMILPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512=4167, + XED_IFORM_VPERMILPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512=4168, + XED_IFORM_VPERMILPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=4169, + XED_IFORM_VPERMILPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=4170, + XED_IFORM_VPERMILPS_XMMdq_MEMdq_IMMb=4171, + XED_IFORM_VPERMILPS_XMMdq_XMMdq_IMMb=4172, + XED_IFORM_VPERMILPS_XMMdq_XMMdq_MEMdq=4173, + XED_IFORM_VPERMILPS_XMMdq_XMMdq_XMMdq=4174, + XED_IFORM_VPERMILPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512=4175, + XED_IFORM_VPERMILPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512=4176, + XED_IFORM_VPERMILPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=4177, + XED_IFORM_VPERMILPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=4178, + XED_IFORM_VPERMILPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512=4179, + XED_IFORM_VPERMILPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512=4180, + XED_IFORM_VPERMILPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=4181, + XED_IFORM_VPERMILPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=4182, + XED_IFORM_VPERMILPS_YMMqq_MEMqq_IMMb=4183, + XED_IFORM_VPERMILPS_YMMqq_YMMqq_IMMb=4184, + XED_IFORM_VPERMILPS_YMMqq_YMMqq_MEMqq=4185, + XED_IFORM_VPERMILPS_YMMqq_YMMqq_YMMqq=4186, + XED_IFORM_VPERMILPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512=4187, + XED_IFORM_VPERMILPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512=4188, + XED_IFORM_VPERMILPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=4189, + XED_IFORM_VPERMILPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=4190, + XED_IFORM_VPERMPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512=4191, + XED_IFORM_VPERMPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512=4192, + XED_IFORM_VPERMPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=4193, + XED_IFORM_VPERMPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=4194, + XED_IFORM_VPERMPD_YMMqq_MEMqq_IMMb=4195, + XED_IFORM_VPERMPD_YMMqq_YMMqq_IMMb=4196, + XED_IFORM_VPERMPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512=4197, + XED_IFORM_VPERMPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512=4198, + XED_IFORM_VPERMPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=4199, + XED_IFORM_VPERMPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=4200, + XED_IFORM_VPERMPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=4201, + XED_IFORM_VPERMPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=4202, + XED_IFORM_VPERMPS_YMMqq_YMMqq_MEMqq=4203, + XED_IFORM_VPERMPS_YMMqq_YMMqq_YMMqq=4204, + XED_IFORM_VPERMPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=4205, + XED_IFORM_VPERMPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=4206, + XED_IFORM_VPERMQ_YMMqq_MEMqq_IMMb=4207, + XED_IFORM_VPERMQ_YMMqq_YMMqq_IMMb=4208, + XED_IFORM_VPERMQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512=4209, + XED_IFORM_VPERMQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512=4210, + XED_IFORM_VPERMQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4211, + XED_IFORM_VPERMQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4212, + XED_IFORM_VPERMQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512=4213, + XED_IFORM_VPERMQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512=4214, + XED_IFORM_VPERMQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4215, + XED_IFORM_VPERMQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4216, + XED_IFORM_VPERMT2B_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=4217, + XED_IFORM_VPERMT2B_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=4218, + XED_IFORM_VPERMT2B_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=4219, + XED_IFORM_VPERMT2B_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=4220, + XED_IFORM_VPERMT2B_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=4221, + XED_IFORM_VPERMT2B_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=4222, + XED_IFORM_VPERMT2D_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4223, + XED_IFORM_VPERMT2D_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4224, + XED_IFORM_VPERMT2D_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4225, + XED_IFORM_VPERMT2D_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4226, + XED_IFORM_VPERMT2D_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4227, + XED_IFORM_VPERMT2D_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4228, + XED_IFORM_VPERMT2PD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=4229, + XED_IFORM_VPERMT2PD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=4230, + XED_IFORM_VPERMT2PD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=4231, + XED_IFORM_VPERMT2PD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=4232, + XED_IFORM_VPERMT2PD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=4233, + XED_IFORM_VPERMT2PD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=4234, + XED_IFORM_VPERMT2PS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=4235, + XED_IFORM_VPERMT2PS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=4236, + XED_IFORM_VPERMT2PS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=4237, + XED_IFORM_VPERMT2PS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=4238, + XED_IFORM_VPERMT2PS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=4239, + XED_IFORM_VPERMT2PS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=4240, + XED_IFORM_VPERMT2Q_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4241, + XED_IFORM_VPERMT2Q_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4242, + XED_IFORM_VPERMT2Q_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4243, + XED_IFORM_VPERMT2Q_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4244, + XED_IFORM_VPERMT2Q_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4245, + XED_IFORM_VPERMT2Q_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4246, + XED_IFORM_VPERMT2W_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4247, + XED_IFORM_VPERMT2W_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4248, + XED_IFORM_VPERMT2W_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4249, + XED_IFORM_VPERMT2W_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4250, + XED_IFORM_VPERMT2W_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4251, + XED_IFORM_VPERMT2W_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4252, + XED_IFORM_VPERMW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4253, + XED_IFORM_VPERMW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4254, + XED_IFORM_VPERMW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4255, + XED_IFORM_VPERMW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4256, + XED_IFORM_VPERMW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4257, + XED_IFORM_VPERMW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4258, + XED_IFORM_VPEXPANDD_XMMu32_MASKmskw_MEMu32_AVX512=4259, + XED_IFORM_VPEXPANDD_XMMu32_MASKmskw_XMMu32_AVX512=4260, + XED_IFORM_VPEXPANDD_YMMu32_MASKmskw_MEMu32_AVX512=4261, + XED_IFORM_VPEXPANDD_YMMu32_MASKmskw_YMMu32_AVX512=4262, + XED_IFORM_VPEXPANDD_ZMMu32_MASKmskw_MEMu32_AVX512=4263, + XED_IFORM_VPEXPANDD_ZMMu32_MASKmskw_ZMMu32_AVX512=4264, + XED_IFORM_VPEXPANDQ_XMMu64_MASKmskw_MEMu64_AVX512=4265, + XED_IFORM_VPEXPANDQ_XMMu64_MASKmskw_XMMu64_AVX512=4266, + XED_IFORM_VPEXPANDQ_YMMu64_MASKmskw_MEMu64_AVX512=4267, + XED_IFORM_VPEXPANDQ_YMMu64_MASKmskw_YMMu64_AVX512=4268, + XED_IFORM_VPEXPANDQ_ZMMu64_MASKmskw_MEMu64_AVX512=4269, + XED_IFORM_VPEXPANDQ_ZMMu64_MASKmskw_ZMMu64_AVX512=4270, + XED_IFORM_VPEXTRB_GPR32d_XMMdq_IMMb=4271, + XED_IFORM_VPEXTRB_GPR32u8_XMMu8_IMM8_AVX512=4272, + XED_IFORM_VPEXTRB_MEMb_XMMdq_IMMb=4273, + XED_IFORM_VPEXTRB_MEMu8_XMMu8_IMM8_AVX512=4274, + XED_IFORM_VPEXTRD_GPR32d_XMMdq_IMMb=4275, + XED_IFORM_VPEXTRD_GPR32u32_XMMu32_IMM8_AVX512=4276, + XED_IFORM_VPEXTRD_MEMd_XMMdq_IMMb=4277, + XED_IFORM_VPEXTRD_MEMu32_XMMu32_IMM8_AVX512=4278, + XED_IFORM_VPEXTRQ_GPR64q_XMMdq_IMMb=4279, + XED_IFORM_VPEXTRQ_GPR64u64_XMMu64_IMM8_AVX512=4280, + XED_IFORM_VPEXTRQ_MEMq_XMMdq_IMMb=4281, + XED_IFORM_VPEXTRQ_MEMu64_XMMu64_IMM8_AVX512=4282, + XED_IFORM_VPEXTRW_GPR32d_XMMdq_IMMb_15=4283, + XED_IFORM_VPEXTRW_GPR32d_XMMdq_IMMb_C5=4284, + XED_IFORM_VPEXTRW_GPR32u16_XMMu16_IMM8_AVX512=4285, + XED_IFORM_VPEXTRW_MEMu16_XMMu16_IMM8_AVX512=4286, + XED_IFORM_VPEXTRW_MEMw_XMMdq_IMMb=4287, + XED_IFORM_VPGATHERDD_XMMu32_MASKmskw_MEMu32_AVX512_VL128=4288, + XED_IFORM_VPGATHERDD_XMMu32_MEMdq_XMMi32_VL128=4289, + XED_IFORM_VPGATHERDD_YMMu32_MASKmskw_MEMu32_AVX512_VL256=4290, + XED_IFORM_VPGATHERDD_YMMu32_MEMqq_YMMi32_VL256=4291, + XED_IFORM_VPGATHERDD_ZMMu32_MASKmskw_MEMu32_AVX512_VL512=4292, + XED_IFORM_VPGATHERDQ_XMMu64_MASKmskw_MEMu64_AVX512_VL128=4293, + XED_IFORM_VPGATHERDQ_XMMu64_MEMdq_XMMi64_VL128=4294, + XED_IFORM_VPGATHERDQ_YMMu64_MASKmskw_MEMu64_AVX512_VL256=4295, + XED_IFORM_VPGATHERDQ_YMMu64_MEMqq_YMMi64_VL256=4296, + XED_IFORM_VPGATHERDQ_ZMMu64_MASKmskw_MEMu64_AVX512_VL512=4297, + XED_IFORM_VPGATHERQD_XMMu32_MASKmskw_MEMu32_AVX512_VL128=4298, + XED_IFORM_VPGATHERQD_XMMu32_MASKmskw_MEMu32_AVX512_VL256=4299, + XED_IFORM_VPGATHERQD_XMMu32_MEMdq_XMMi32_VL256=4300, + XED_IFORM_VPGATHERQD_XMMu32_MEMq_XMMi32_VL128=4301, + XED_IFORM_VPGATHERQD_YMMu32_MASKmskw_MEMu32_AVX512_VL512=4302, + XED_IFORM_VPGATHERQQ_XMMu64_MASKmskw_MEMu64_AVX512_VL128=4303, + XED_IFORM_VPGATHERQQ_XMMu64_MEMdq_XMMi64_VL128=4304, + XED_IFORM_VPGATHERQQ_YMMu64_MASKmskw_MEMu64_AVX512_VL256=4305, + XED_IFORM_VPGATHERQQ_YMMu64_MEMqq_YMMi64_VL256=4306, + XED_IFORM_VPGATHERQQ_ZMMu64_MASKmskw_MEMu64_AVX512_VL512=4307, + XED_IFORM_VPHADDBD_XMMdq_MEMdq=4308, + XED_IFORM_VPHADDBD_XMMdq_XMMdq=4309, + XED_IFORM_VPHADDBQ_XMMdq_MEMdq=4310, + XED_IFORM_VPHADDBQ_XMMdq_XMMdq=4311, + XED_IFORM_VPHADDBW_XMMdq_MEMdq=4312, + XED_IFORM_VPHADDBW_XMMdq_XMMdq=4313, + XED_IFORM_VPHADDD_XMMdq_XMMdq_MEMdq=4314, + XED_IFORM_VPHADDD_XMMdq_XMMdq_XMMdq=4315, + XED_IFORM_VPHADDD_YMMqq_YMMqq_MEMqq=4316, + XED_IFORM_VPHADDD_YMMqq_YMMqq_YMMqq=4317, + XED_IFORM_VPHADDDQ_XMMdq_MEMdq=4318, + XED_IFORM_VPHADDDQ_XMMdq_XMMdq=4319, + XED_IFORM_VPHADDSW_XMMdq_XMMdq_MEMdq=4320, + XED_IFORM_VPHADDSW_XMMdq_XMMdq_XMMdq=4321, + XED_IFORM_VPHADDSW_YMMqq_YMMqq_MEMqq=4322, + XED_IFORM_VPHADDSW_YMMqq_YMMqq_YMMqq=4323, + XED_IFORM_VPHADDUBD_XMMdq_MEMdq=4324, + XED_IFORM_VPHADDUBD_XMMdq_XMMdq=4325, + XED_IFORM_VPHADDUBQ_XMMdq_MEMdq=4326, + XED_IFORM_VPHADDUBQ_XMMdq_XMMdq=4327, + XED_IFORM_VPHADDUBW_XMMdq_MEMdq=4328, + XED_IFORM_VPHADDUBW_XMMdq_XMMdq=4329, + XED_IFORM_VPHADDUDQ_XMMdq_MEMdq=4330, + XED_IFORM_VPHADDUDQ_XMMdq_XMMdq=4331, + XED_IFORM_VPHADDUWD_XMMdq_MEMdq=4332, + XED_IFORM_VPHADDUWD_XMMdq_XMMdq=4333, + XED_IFORM_VPHADDUWQ_XMMdq_MEMdq=4334, + XED_IFORM_VPHADDUWQ_XMMdq_XMMdq=4335, + XED_IFORM_VPHADDW_XMMdq_XMMdq_MEMdq=4336, + XED_IFORM_VPHADDW_XMMdq_XMMdq_XMMdq=4337, + XED_IFORM_VPHADDW_YMMqq_YMMqq_MEMqq=4338, + XED_IFORM_VPHADDW_YMMqq_YMMqq_YMMqq=4339, + XED_IFORM_VPHADDWD_XMMdq_MEMdq=4340, + XED_IFORM_VPHADDWD_XMMdq_XMMdq=4341, + XED_IFORM_VPHADDWQ_XMMdq_MEMdq=4342, + XED_IFORM_VPHADDWQ_XMMdq_XMMdq=4343, + XED_IFORM_VPHMINPOSUW_XMMdq_MEMdq=4344, + XED_IFORM_VPHMINPOSUW_XMMdq_XMMdq=4345, + XED_IFORM_VPHMINPOSUW_YMMqq_MEMqq=4346, + XED_IFORM_VPHMINPOSUW_YMMqq_YMMqq=4347, + XED_IFORM_VPHSUBBW_XMMdq_MEMdq=4348, + XED_IFORM_VPHSUBBW_XMMdq_XMMdq=4349, + XED_IFORM_VPHSUBD_XMMdq_XMMdq_MEMdq=4350, + XED_IFORM_VPHSUBD_XMMdq_XMMdq_XMMdq=4351, + XED_IFORM_VPHSUBD_YMMqq_YMMqq_MEMqq=4352, + XED_IFORM_VPHSUBD_YMMqq_YMMqq_YMMqq=4353, + XED_IFORM_VPHSUBDQ_XMMdq_MEMdq=4354, + XED_IFORM_VPHSUBDQ_XMMdq_XMMdq=4355, + XED_IFORM_VPHSUBSW_XMMdq_XMMdq_MEMdq=4356, + XED_IFORM_VPHSUBSW_XMMdq_XMMdq_XMMdq=4357, + XED_IFORM_VPHSUBSW_YMMqq_YMMqq_MEMqq=4358, + XED_IFORM_VPHSUBSW_YMMqq_YMMqq_YMMqq=4359, + XED_IFORM_VPHSUBW_XMMdq_XMMdq_MEMdq=4360, + XED_IFORM_VPHSUBW_XMMdq_XMMdq_XMMdq=4361, + XED_IFORM_VPHSUBW_YMMqq_YMMqq_MEMqq=4362, + XED_IFORM_VPHSUBW_YMMqq_YMMqq_YMMqq=4363, + XED_IFORM_VPHSUBWD_XMMdq_MEMdq=4364, + XED_IFORM_VPHSUBWD_XMMdq_XMMdq=4365, + XED_IFORM_VPINSRB_XMMdq_XMMdq_GPR32d_IMMb=4366, + XED_IFORM_VPINSRB_XMMdq_XMMdq_MEMb_IMMb=4367, + XED_IFORM_VPINSRB_XMMu8_XMMu8_GPR32u8_IMM8_AVX512=4368, + XED_IFORM_VPINSRB_XMMu8_XMMu8_MEMu8_IMM8_AVX512=4369, + XED_IFORM_VPINSRD_XMMdq_XMMdq_GPR32d_IMMb=4370, + XED_IFORM_VPINSRD_XMMdq_XMMdq_MEMd_IMMb=4371, + XED_IFORM_VPINSRD_XMMu32_XMMu32_GPR32u32_IMM8_AVX512=4372, + XED_IFORM_VPINSRD_XMMu32_XMMu32_MEMu32_IMM8_AVX512=4373, + XED_IFORM_VPINSRQ_XMMdq_XMMdq_GPR64q_IMMb=4374, + XED_IFORM_VPINSRQ_XMMdq_XMMdq_MEMq_IMMb=4375, + XED_IFORM_VPINSRQ_XMMu64_XMMu64_GPR64u64_IMM8_AVX512=4376, + XED_IFORM_VPINSRQ_XMMu64_XMMu64_MEMu64_IMM8_AVX512=4377, + XED_IFORM_VPINSRW_XMMdq_XMMdq_GPR32d_IMMb=4378, + XED_IFORM_VPINSRW_XMMdq_XMMdq_MEMw_IMMb=4379, + XED_IFORM_VPINSRW_XMMu16_XMMu16_GPR32u16_IMM8_AVX512=4380, + XED_IFORM_VPINSRW_XMMu16_XMMu16_MEMu16_IMM8_AVX512=4381, + XED_IFORM_VPLZCNTD_XMMu32_MASKmskw_MEMu32_AVX512=4382, + XED_IFORM_VPLZCNTD_XMMu32_MASKmskw_XMMu32_AVX512=4383, + XED_IFORM_VPLZCNTD_YMMu32_MASKmskw_MEMu32_AVX512=4384, + XED_IFORM_VPLZCNTD_YMMu32_MASKmskw_YMMu32_AVX512=4385, + XED_IFORM_VPLZCNTD_ZMMu32_MASKmskw_MEMu32_AVX512CD=4386, + XED_IFORM_VPLZCNTD_ZMMu32_MASKmskw_ZMMu32_AVX512CD=4387, + XED_IFORM_VPLZCNTQ_XMMu64_MASKmskw_MEMu64_AVX512=4388, + XED_IFORM_VPLZCNTQ_XMMu64_MASKmskw_XMMu64_AVX512=4389, + XED_IFORM_VPLZCNTQ_YMMu64_MASKmskw_MEMu64_AVX512=4390, + XED_IFORM_VPLZCNTQ_YMMu64_MASKmskw_YMMu64_AVX512=4391, + XED_IFORM_VPLZCNTQ_ZMMu64_MASKmskw_MEMu64_AVX512CD=4392, + XED_IFORM_VPLZCNTQ_ZMMu64_MASKmskw_ZMMu64_AVX512CD=4393, + XED_IFORM_VPMACSDD_XMMdq_XMMdq_MEMdq_XMMdq=4394, + XED_IFORM_VPMACSDD_XMMdq_XMMdq_XMMdq_XMMdq=4395, + XED_IFORM_VPMACSDQH_XMMdq_XMMdq_MEMdq_XMMdq=4396, + XED_IFORM_VPMACSDQH_XMMdq_XMMdq_XMMdq_XMMdq=4397, + XED_IFORM_VPMACSDQL_XMMdq_XMMdq_MEMdq_XMMdq=4398, + XED_IFORM_VPMACSDQL_XMMdq_XMMdq_XMMdq_XMMdq=4399, + XED_IFORM_VPMACSSDD_XMMdq_XMMdq_MEMdq_XMMdq=4400, + XED_IFORM_VPMACSSDD_XMMdq_XMMdq_XMMdq_XMMdq=4401, + XED_IFORM_VPMACSSDQH_XMMdq_XMMdq_MEMdq_XMMdq=4402, + XED_IFORM_VPMACSSDQH_XMMdq_XMMdq_XMMdq_XMMdq=4403, + XED_IFORM_VPMACSSDQL_XMMdq_XMMdq_MEMdq_XMMdq=4404, + XED_IFORM_VPMACSSDQL_XMMdq_XMMdq_XMMdq_XMMdq=4405, + XED_IFORM_VPMACSSWD_XMMdq_XMMdq_MEMdq_XMMdq=4406, + XED_IFORM_VPMACSSWD_XMMdq_XMMdq_XMMdq_XMMdq=4407, + XED_IFORM_VPMACSSWW_XMMdq_XMMdq_MEMdq_XMMdq=4408, + XED_IFORM_VPMACSSWW_XMMdq_XMMdq_XMMdq_XMMdq=4409, + XED_IFORM_VPMACSWD_XMMdq_XMMdq_MEMdq_XMMdq=4410, + XED_IFORM_VPMACSWD_XMMdq_XMMdq_XMMdq_XMMdq=4411, + XED_IFORM_VPMACSWW_XMMdq_XMMdq_MEMdq_XMMdq=4412, + XED_IFORM_VPMACSWW_XMMdq_XMMdq_XMMdq_XMMdq=4413, + XED_IFORM_VPMADCSSWD_XMMdq_XMMdq_MEMdq_XMMdq=4414, + XED_IFORM_VPMADCSSWD_XMMdq_XMMdq_XMMdq_XMMdq=4415, + XED_IFORM_VPMADCSWD_XMMdq_XMMdq_MEMdq_XMMdq=4416, + XED_IFORM_VPMADCSWD_XMMdq_XMMdq_XMMdq_XMMdq=4417, + XED_IFORM_VPMADD52HUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4418, + XED_IFORM_VPMADD52HUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4419, + XED_IFORM_VPMADD52HUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4420, + XED_IFORM_VPMADD52HUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4421, + XED_IFORM_VPMADD52HUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4422, + XED_IFORM_VPMADD52HUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4423, + XED_IFORM_VPMADD52LUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4424, + XED_IFORM_VPMADD52LUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4425, + XED_IFORM_VPMADD52LUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4426, + XED_IFORM_VPMADD52LUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4427, + XED_IFORM_VPMADD52LUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4428, + XED_IFORM_VPMADD52LUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4429, + XED_IFORM_VPMADDUBSW_XMMdq_XMMdq_MEMdq=4430, + XED_IFORM_VPMADDUBSW_XMMdq_XMMdq_XMMdq=4431, + XED_IFORM_VPMADDUBSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512=4432, + XED_IFORM_VPMADDUBSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512=4433, + XED_IFORM_VPMADDUBSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512=4434, + XED_IFORM_VPMADDUBSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512=4435, + XED_IFORM_VPMADDUBSW_YMMqq_YMMqq_MEMqq=4436, + XED_IFORM_VPMADDUBSW_YMMqq_YMMqq_YMMqq=4437, + XED_IFORM_VPMADDUBSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512=4438, + XED_IFORM_VPMADDUBSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512=4439, + XED_IFORM_VPMADDWD_XMMdq_XMMdq_MEMdq=4440, + XED_IFORM_VPMADDWD_XMMdq_XMMdq_XMMdq=4441, + XED_IFORM_VPMADDWD_XMMi32_MASKmskw_XMMi16_MEMi16_AVX512=4442, + XED_IFORM_VPMADDWD_XMMi32_MASKmskw_XMMi16_XMMi16_AVX512=4443, + XED_IFORM_VPMADDWD_YMMi32_MASKmskw_YMMi16_MEMi16_AVX512=4444, + XED_IFORM_VPMADDWD_YMMi32_MASKmskw_YMMi16_YMMi16_AVX512=4445, + XED_IFORM_VPMADDWD_YMMqq_YMMqq_MEMqq=4446, + XED_IFORM_VPMADDWD_YMMqq_YMMqq_YMMqq=4447, + XED_IFORM_VPMADDWD_ZMMi32_MASKmskw_ZMMi16_MEMi16_AVX512=4448, + XED_IFORM_VPMADDWD_ZMMi32_MASKmskw_ZMMi16_ZMMi16_AVX512=4449, + XED_IFORM_VPMASKMOVD_MEMdq_XMMdq_XMMdq=4450, + XED_IFORM_VPMASKMOVD_MEMqq_YMMqq_YMMqq=4451, + XED_IFORM_VPMASKMOVD_XMMdq_XMMdq_MEMdq=4452, + XED_IFORM_VPMASKMOVD_YMMqq_YMMqq_MEMqq=4453, + XED_IFORM_VPMASKMOVQ_MEMdq_XMMdq_XMMdq=4454, + XED_IFORM_VPMASKMOVQ_MEMqq_YMMqq_YMMqq=4455, + XED_IFORM_VPMASKMOVQ_XMMdq_XMMdq_MEMdq=4456, + XED_IFORM_VPMASKMOVQ_YMMqq_YMMqq_MEMqq=4457, + XED_IFORM_VPMAXSB_XMMdq_XMMdq_MEMdq=4458, + XED_IFORM_VPMAXSB_XMMdq_XMMdq_XMMdq=4459, + XED_IFORM_VPMAXSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512=4460, + XED_IFORM_VPMAXSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512=4461, + XED_IFORM_VPMAXSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512=4462, + XED_IFORM_VPMAXSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512=4463, + XED_IFORM_VPMAXSB_YMMqq_YMMqq_MEMqq=4464, + XED_IFORM_VPMAXSB_YMMqq_YMMqq_YMMqq=4465, + XED_IFORM_VPMAXSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512=4466, + XED_IFORM_VPMAXSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512=4467, + XED_IFORM_VPMAXSD_XMMdq_XMMdq_MEMdq=4468, + XED_IFORM_VPMAXSD_XMMdq_XMMdq_XMMdq=4469, + XED_IFORM_VPMAXSD_XMMi32_MASKmskw_XMMi32_MEMi32_AVX512=4470, + XED_IFORM_VPMAXSD_XMMi32_MASKmskw_XMMi32_XMMi32_AVX512=4471, + XED_IFORM_VPMAXSD_YMMi32_MASKmskw_YMMi32_MEMi32_AVX512=4472, + XED_IFORM_VPMAXSD_YMMi32_MASKmskw_YMMi32_YMMi32_AVX512=4473, + XED_IFORM_VPMAXSD_YMMqq_YMMqq_MEMqq=4474, + XED_IFORM_VPMAXSD_YMMqq_YMMqq_YMMqq=4475, + XED_IFORM_VPMAXSD_ZMMi32_MASKmskw_ZMMi32_MEMi32_AVX512=4476, + XED_IFORM_VPMAXSD_ZMMi32_MASKmskw_ZMMi32_ZMMi32_AVX512=4477, + XED_IFORM_VPMAXSQ_XMMi64_MASKmskw_XMMi64_MEMi64_AVX512=4478, + XED_IFORM_VPMAXSQ_XMMi64_MASKmskw_XMMi64_XMMi64_AVX512=4479, + XED_IFORM_VPMAXSQ_YMMi64_MASKmskw_YMMi64_MEMi64_AVX512=4480, + XED_IFORM_VPMAXSQ_YMMi64_MASKmskw_YMMi64_YMMi64_AVX512=4481, + XED_IFORM_VPMAXSQ_ZMMi64_MASKmskw_ZMMi64_MEMi64_AVX512=4482, + XED_IFORM_VPMAXSQ_ZMMi64_MASKmskw_ZMMi64_ZMMi64_AVX512=4483, + XED_IFORM_VPMAXSW_XMMdq_XMMdq_MEMdq=4484, + XED_IFORM_VPMAXSW_XMMdq_XMMdq_XMMdq=4485, + XED_IFORM_VPMAXSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512=4486, + XED_IFORM_VPMAXSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512=4487, + XED_IFORM_VPMAXSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512=4488, + XED_IFORM_VPMAXSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512=4489, + XED_IFORM_VPMAXSW_YMMqq_YMMqq_MEMqq=4490, + XED_IFORM_VPMAXSW_YMMqq_YMMqq_YMMqq=4491, + XED_IFORM_VPMAXSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512=4492, + XED_IFORM_VPMAXSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512=4493, + XED_IFORM_VPMAXUB_XMMdq_XMMdq_MEMdq=4494, + XED_IFORM_VPMAXUB_XMMdq_XMMdq_XMMdq=4495, + XED_IFORM_VPMAXUB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=4496, + XED_IFORM_VPMAXUB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=4497, + XED_IFORM_VPMAXUB_YMMqq_YMMqq_MEMqq=4498, + XED_IFORM_VPMAXUB_YMMqq_YMMqq_YMMqq=4499, + XED_IFORM_VPMAXUB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=4500, + XED_IFORM_VPMAXUB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=4501, + XED_IFORM_VPMAXUB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=4502, + XED_IFORM_VPMAXUB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=4503, + XED_IFORM_VPMAXUD_XMMdq_XMMdq_MEMdq=4504, + XED_IFORM_VPMAXUD_XMMdq_XMMdq_XMMdq=4505, + XED_IFORM_VPMAXUD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4506, + XED_IFORM_VPMAXUD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4507, + XED_IFORM_VPMAXUD_YMMqq_YMMqq_MEMqq=4508, + XED_IFORM_VPMAXUD_YMMqq_YMMqq_YMMqq=4509, + XED_IFORM_VPMAXUD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4510, + XED_IFORM_VPMAXUD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4511, + XED_IFORM_VPMAXUD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4512, + XED_IFORM_VPMAXUD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4513, + XED_IFORM_VPMAXUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4514, + XED_IFORM_VPMAXUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4515, + XED_IFORM_VPMAXUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4516, + XED_IFORM_VPMAXUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4517, + XED_IFORM_VPMAXUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4518, + XED_IFORM_VPMAXUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4519, + XED_IFORM_VPMAXUW_XMMdq_XMMdq_MEMdq=4520, + XED_IFORM_VPMAXUW_XMMdq_XMMdq_XMMdq=4521, + XED_IFORM_VPMAXUW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4522, + XED_IFORM_VPMAXUW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4523, + XED_IFORM_VPMAXUW_YMMqq_YMMqq_MEMqq=4524, + XED_IFORM_VPMAXUW_YMMqq_YMMqq_YMMqq=4525, + XED_IFORM_VPMAXUW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4526, + XED_IFORM_VPMAXUW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4527, + XED_IFORM_VPMAXUW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4528, + XED_IFORM_VPMAXUW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4529, + XED_IFORM_VPMINSB_XMMdq_XMMdq_MEMdq=4530, + XED_IFORM_VPMINSB_XMMdq_XMMdq_XMMdq=4531, + XED_IFORM_VPMINSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512=4532, + XED_IFORM_VPMINSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512=4533, + XED_IFORM_VPMINSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512=4534, + XED_IFORM_VPMINSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512=4535, + XED_IFORM_VPMINSB_YMMqq_YMMqq_MEMqq=4536, + XED_IFORM_VPMINSB_YMMqq_YMMqq_YMMqq=4537, + XED_IFORM_VPMINSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512=4538, + XED_IFORM_VPMINSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512=4539, + XED_IFORM_VPMINSD_XMMdq_XMMdq_MEMdq=4540, + XED_IFORM_VPMINSD_XMMdq_XMMdq_XMMdq=4541, + XED_IFORM_VPMINSD_XMMi32_MASKmskw_XMMi32_MEMi32_AVX512=4542, + XED_IFORM_VPMINSD_XMMi32_MASKmskw_XMMi32_XMMi32_AVX512=4543, + XED_IFORM_VPMINSD_YMMi32_MASKmskw_YMMi32_MEMi32_AVX512=4544, + XED_IFORM_VPMINSD_YMMi32_MASKmskw_YMMi32_YMMi32_AVX512=4545, + XED_IFORM_VPMINSD_YMMqq_YMMqq_MEMqq=4546, + XED_IFORM_VPMINSD_YMMqq_YMMqq_YMMqq=4547, + XED_IFORM_VPMINSD_ZMMi32_MASKmskw_ZMMi32_MEMi32_AVX512=4548, + XED_IFORM_VPMINSD_ZMMi32_MASKmskw_ZMMi32_ZMMi32_AVX512=4549, + XED_IFORM_VPMINSQ_XMMi64_MASKmskw_XMMi64_MEMi64_AVX512=4550, + XED_IFORM_VPMINSQ_XMMi64_MASKmskw_XMMi64_XMMi64_AVX512=4551, + XED_IFORM_VPMINSQ_YMMi64_MASKmskw_YMMi64_MEMi64_AVX512=4552, + XED_IFORM_VPMINSQ_YMMi64_MASKmskw_YMMi64_YMMi64_AVX512=4553, + XED_IFORM_VPMINSQ_ZMMi64_MASKmskw_ZMMi64_MEMi64_AVX512=4554, + XED_IFORM_VPMINSQ_ZMMi64_MASKmskw_ZMMi64_ZMMi64_AVX512=4555, + XED_IFORM_VPMINSW_XMMdq_XMMdq_MEMdq=4556, + XED_IFORM_VPMINSW_XMMdq_XMMdq_XMMdq=4557, + XED_IFORM_VPMINSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512=4558, + XED_IFORM_VPMINSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512=4559, + XED_IFORM_VPMINSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512=4560, + XED_IFORM_VPMINSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512=4561, + XED_IFORM_VPMINSW_YMMqq_YMMqq_MEMqq=4562, + XED_IFORM_VPMINSW_YMMqq_YMMqq_YMMqq=4563, + XED_IFORM_VPMINSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512=4564, + XED_IFORM_VPMINSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512=4565, + XED_IFORM_VPMINUB_XMMdq_XMMdq_MEMdq=4566, + XED_IFORM_VPMINUB_XMMdq_XMMdq_XMMdq=4567, + XED_IFORM_VPMINUB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=4568, + XED_IFORM_VPMINUB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=4569, + XED_IFORM_VPMINUB_YMMqq_YMMqq_MEMqq=4570, + XED_IFORM_VPMINUB_YMMqq_YMMqq_YMMqq=4571, + XED_IFORM_VPMINUB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=4572, + XED_IFORM_VPMINUB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=4573, + XED_IFORM_VPMINUB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=4574, + XED_IFORM_VPMINUB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=4575, + XED_IFORM_VPMINUD_XMMdq_XMMdq_MEMdq=4576, + XED_IFORM_VPMINUD_XMMdq_XMMdq_XMMdq=4577, + XED_IFORM_VPMINUD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4578, + XED_IFORM_VPMINUD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4579, + XED_IFORM_VPMINUD_YMMqq_YMMqq_MEMqq=4580, + XED_IFORM_VPMINUD_YMMqq_YMMqq_YMMqq=4581, + XED_IFORM_VPMINUD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4582, + XED_IFORM_VPMINUD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4583, + XED_IFORM_VPMINUD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4584, + XED_IFORM_VPMINUD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4585, + XED_IFORM_VPMINUQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4586, + XED_IFORM_VPMINUQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4587, + XED_IFORM_VPMINUQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4588, + XED_IFORM_VPMINUQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4589, + XED_IFORM_VPMINUQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4590, + XED_IFORM_VPMINUQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4591, + XED_IFORM_VPMINUW_XMMdq_XMMdq_MEMdq=4592, + XED_IFORM_VPMINUW_XMMdq_XMMdq_XMMdq=4593, + XED_IFORM_VPMINUW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4594, + XED_IFORM_VPMINUW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4595, + XED_IFORM_VPMINUW_YMMqq_YMMqq_MEMqq=4596, + XED_IFORM_VPMINUW_YMMqq_YMMqq_YMMqq=4597, + XED_IFORM_VPMINUW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4598, + XED_IFORM_VPMINUW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4599, + XED_IFORM_VPMINUW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4600, + XED_IFORM_VPMINUW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4601, + XED_IFORM_VPMOVB2M_MASKmskw_XMMu8_AVX512=4602, + XED_IFORM_VPMOVB2M_MASKmskw_YMMu8_AVX512=4603, + XED_IFORM_VPMOVB2M_MASKmskw_ZMMu8_AVX512=4604, + XED_IFORM_VPMOVD2M_MASKmskw_XMMu32_AVX512=4605, + XED_IFORM_VPMOVD2M_MASKmskw_YMMu32_AVX512=4606, + XED_IFORM_VPMOVD2M_MASKmskw_ZMMu32_AVX512=4607, + XED_IFORM_VPMOVDB_MEMu8_MASKmskw_XMMu32_AVX512=4608, + XED_IFORM_VPMOVDB_MEMu8_MASKmskw_YMMu32_AVX512=4609, + XED_IFORM_VPMOVDB_MEMu8_MASKmskw_ZMMu32_AVX512=4610, + XED_IFORM_VPMOVDB_XMMu8_MASKmskw_XMMu32_AVX512=4611, + XED_IFORM_VPMOVDB_XMMu8_MASKmskw_YMMu32_AVX512=4612, + XED_IFORM_VPMOVDB_XMMu8_MASKmskw_ZMMu32_AVX512=4613, + XED_IFORM_VPMOVDW_MEMu16_MASKmskw_XMMu32_AVX512=4614, + XED_IFORM_VPMOVDW_MEMu16_MASKmskw_YMMu32_AVX512=4615, + XED_IFORM_VPMOVDW_MEMu16_MASKmskw_ZMMu32_AVX512=4616, + XED_IFORM_VPMOVDW_XMMu16_MASKmskw_XMMu32_AVX512=4617, + XED_IFORM_VPMOVDW_XMMu16_MASKmskw_YMMu32_AVX512=4618, + XED_IFORM_VPMOVDW_YMMu16_MASKmskw_ZMMu32_AVX512=4619, + XED_IFORM_VPMOVM2B_XMMu8_MASKmskw_AVX512=4620, + XED_IFORM_VPMOVM2B_YMMu8_MASKmskw_AVX512=4621, + XED_IFORM_VPMOVM2B_ZMMu8_MASKmskw_AVX512=4622, + XED_IFORM_VPMOVM2D_XMMu32_MASKmskw_AVX512=4623, + XED_IFORM_VPMOVM2D_YMMu32_MASKmskw_AVX512=4624, + XED_IFORM_VPMOVM2D_ZMMu32_MASKmskw_AVX512=4625, + XED_IFORM_VPMOVM2Q_XMMu64_MASKmskw_AVX512=4626, + XED_IFORM_VPMOVM2Q_YMMu64_MASKmskw_AVX512=4627, + XED_IFORM_VPMOVM2Q_ZMMu64_MASKmskw_AVX512=4628, + XED_IFORM_VPMOVM2W_XMMu16_MASKmskw_AVX512=4629, + XED_IFORM_VPMOVM2W_YMMu16_MASKmskw_AVX512=4630, + XED_IFORM_VPMOVM2W_ZMMu16_MASKmskw_AVX512=4631, + XED_IFORM_VPMOVMSKB_GPR32d_XMMdq=4632, + XED_IFORM_VPMOVMSKB_GPR32d_YMMqq=4633, + XED_IFORM_VPMOVQ2M_MASKmskw_XMMu64_AVX512=4634, + XED_IFORM_VPMOVQ2M_MASKmskw_YMMu64_AVX512=4635, + XED_IFORM_VPMOVQ2M_MASKmskw_ZMMu64_AVX512=4636, + XED_IFORM_VPMOVQB_MEMu8_MASKmskw_XMMu64_AVX512=4637, + XED_IFORM_VPMOVQB_MEMu8_MASKmskw_YMMu64_AVX512=4638, + XED_IFORM_VPMOVQB_MEMu8_MASKmskw_ZMMu64_AVX512=4639, + XED_IFORM_VPMOVQB_XMMu8_MASKmskw_XMMu64_AVX512=4640, + XED_IFORM_VPMOVQB_XMMu8_MASKmskw_YMMu64_AVX512=4641, + XED_IFORM_VPMOVQB_XMMu8_MASKmskw_ZMMu64_AVX512=4642, + XED_IFORM_VPMOVQD_MEMu32_MASKmskw_XMMu64_AVX512=4643, + XED_IFORM_VPMOVQD_MEMu32_MASKmskw_YMMu64_AVX512=4644, + XED_IFORM_VPMOVQD_MEMu32_MASKmskw_ZMMu64_AVX512=4645, + XED_IFORM_VPMOVQD_XMMu32_MASKmskw_XMMu64_AVX512=4646, + XED_IFORM_VPMOVQD_XMMu32_MASKmskw_YMMu64_AVX512=4647, + XED_IFORM_VPMOVQD_YMMu32_MASKmskw_ZMMu64_AVX512=4648, + XED_IFORM_VPMOVQW_MEMu16_MASKmskw_XMMu64_AVX512=4649, + XED_IFORM_VPMOVQW_MEMu16_MASKmskw_YMMu64_AVX512=4650, + XED_IFORM_VPMOVQW_MEMu16_MASKmskw_ZMMu64_AVX512=4651, + XED_IFORM_VPMOVQW_XMMu16_MASKmskw_XMMu64_AVX512=4652, + XED_IFORM_VPMOVQW_XMMu16_MASKmskw_YMMu64_AVX512=4653, + XED_IFORM_VPMOVQW_XMMu16_MASKmskw_ZMMu64_AVX512=4654, + XED_IFORM_VPMOVSDB_MEMi8_MASKmskw_XMMi32_AVX512=4655, + XED_IFORM_VPMOVSDB_MEMi8_MASKmskw_YMMi32_AVX512=4656, + XED_IFORM_VPMOVSDB_MEMi8_MASKmskw_ZMMi32_AVX512=4657, + XED_IFORM_VPMOVSDB_XMMi8_MASKmskw_XMMi32_AVX512=4658, + XED_IFORM_VPMOVSDB_XMMi8_MASKmskw_YMMi32_AVX512=4659, + XED_IFORM_VPMOVSDB_XMMi8_MASKmskw_ZMMi32_AVX512=4660, + XED_IFORM_VPMOVSDW_MEMi16_MASKmskw_XMMi32_AVX512=4661, + XED_IFORM_VPMOVSDW_MEMi16_MASKmskw_YMMi32_AVX512=4662, + XED_IFORM_VPMOVSDW_MEMi16_MASKmskw_ZMMi32_AVX512=4663, + XED_IFORM_VPMOVSDW_XMMi16_MASKmskw_XMMi32_AVX512=4664, + XED_IFORM_VPMOVSDW_XMMi16_MASKmskw_YMMi32_AVX512=4665, + XED_IFORM_VPMOVSDW_YMMi16_MASKmskw_ZMMi32_AVX512=4666, + XED_IFORM_VPMOVSQB_MEMi8_MASKmskw_XMMi64_AVX512=4667, + XED_IFORM_VPMOVSQB_MEMi8_MASKmskw_YMMi64_AVX512=4668, + XED_IFORM_VPMOVSQB_MEMi8_MASKmskw_ZMMi64_AVX512=4669, + XED_IFORM_VPMOVSQB_XMMi8_MASKmskw_XMMi64_AVX512=4670, + XED_IFORM_VPMOVSQB_XMMi8_MASKmskw_YMMi64_AVX512=4671, + XED_IFORM_VPMOVSQB_XMMi8_MASKmskw_ZMMi64_AVX512=4672, + XED_IFORM_VPMOVSQD_MEMi32_MASKmskw_XMMi64_AVX512=4673, + XED_IFORM_VPMOVSQD_MEMi32_MASKmskw_YMMi64_AVX512=4674, + XED_IFORM_VPMOVSQD_MEMi32_MASKmskw_ZMMi64_AVX512=4675, + XED_IFORM_VPMOVSQD_XMMi32_MASKmskw_XMMi64_AVX512=4676, + XED_IFORM_VPMOVSQD_XMMi32_MASKmskw_YMMi64_AVX512=4677, + XED_IFORM_VPMOVSQD_YMMi32_MASKmskw_ZMMi64_AVX512=4678, + XED_IFORM_VPMOVSQW_MEMi16_MASKmskw_XMMi64_AVX512=4679, + XED_IFORM_VPMOVSQW_MEMi16_MASKmskw_YMMi64_AVX512=4680, + XED_IFORM_VPMOVSQW_MEMi16_MASKmskw_ZMMi64_AVX512=4681, + XED_IFORM_VPMOVSQW_XMMi16_MASKmskw_XMMi64_AVX512=4682, + XED_IFORM_VPMOVSQW_XMMi16_MASKmskw_YMMi64_AVX512=4683, + XED_IFORM_VPMOVSQW_XMMi16_MASKmskw_ZMMi64_AVX512=4684, + XED_IFORM_VPMOVSWB_MEMi8_MASKmskw_XMMi16_AVX512=4685, + XED_IFORM_VPMOVSWB_MEMi8_MASKmskw_YMMi16_AVX512=4686, + XED_IFORM_VPMOVSWB_MEMi8_MASKmskw_ZMMi16_AVX512=4687, + XED_IFORM_VPMOVSWB_XMMi8_MASKmskw_XMMi16_AVX512=4688, + XED_IFORM_VPMOVSWB_XMMi8_MASKmskw_YMMi16_AVX512=4689, + XED_IFORM_VPMOVSWB_YMMi8_MASKmskw_ZMMi16_AVX512=4690, + XED_IFORM_VPMOVSXBD_XMMdq_MEMd=4691, + XED_IFORM_VPMOVSXBD_XMMdq_XMMd=4692, + XED_IFORM_VPMOVSXBD_XMMi32_MASKmskw_MEMi8_AVX512=4693, + XED_IFORM_VPMOVSXBD_XMMi32_MASKmskw_XMMi8_AVX512=4694, + XED_IFORM_VPMOVSXBD_YMMi32_MASKmskw_MEMi8_AVX512=4695, + XED_IFORM_VPMOVSXBD_YMMi32_MASKmskw_XMMi8_AVX512=4696, + XED_IFORM_VPMOVSXBD_YMMqq_MEMq=4697, + XED_IFORM_VPMOVSXBD_YMMqq_XMMq=4698, + XED_IFORM_VPMOVSXBD_ZMMi32_MASKmskw_MEMi8_AVX512=4699, + XED_IFORM_VPMOVSXBD_ZMMi32_MASKmskw_XMMi8_AVX512=4700, + XED_IFORM_VPMOVSXBQ_XMMdq_MEMw=4701, + XED_IFORM_VPMOVSXBQ_XMMdq_XMMw=4702, + XED_IFORM_VPMOVSXBQ_XMMi64_MASKmskw_MEMi8_AVX512=4703, + XED_IFORM_VPMOVSXBQ_XMMi64_MASKmskw_XMMi8_AVX512=4704, + XED_IFORM_VPMOVSXBQ_YMMi64_MASKmskw_MEMi8_AVX512=4705, + XED_IFORM_VPMOVSXBQ_YMMi64_MASKmskw_XMMi8_AVX512=4706, + XED_IFORM_VPMOVSXBQ_YMMqq_MEMd=4707, + XED_IFORM_VPMOVSXBQ_YMMqq_XMMd=4708, + XED_IFORM_VPMOVSXBQ_ZMMi64_MASKmskw_MEMi8_AVX512=4709, + XED_IFORM_VPMOVSXBQ_ZMMi64_MASKmskw_XMMi8_AVX512=4710, + XED_IFORM_VPMOVSXBW_XMMdq_MEMq=4711, + XED_IFORM_VPMOVSXBW_XMMdq_XMMq=4712, + XED_IFORM_VPMOVSXBW_XMMi16_MASKmskw_MEMi8_AVX512=4713, + XED_IFORM_VPMOVSXBW_XMMi16_MASKmskw_XMMi8_AVX512=4714, + XED_IFORM_VPMOVSXBW_YMMi16_MASKmskw_MEMi8_AVX512=4715, + XED_IFORM_VPMOVSXBW_YMMi16_MASKmskw_XMMi8_AVX512=4716, + XED_IFORM_VPMOVSXBW_YMMqq_MEMdq=4717, + XED_IFORM_VPMOVSXBW_YMMqq_XMMdq=4718, + XED_IFORM_VPMOVSXBW_ZMMi16_MASKmskw_MEMi8_AVX512=4719, + XED_IFORM_VPMOVSXBW_ZMMi16_MASKmskw_YMMi8_AVX512=4720, + XED_IFORM_VPMOVSXDQ_XMMdq_MEMq=4721, + XED_IFORM_VPMOVSXDQ_XMMdq_XMMq=4722, + XED_IFORM_VPMOVSXDQ_XMMi64_MASKmskw_MEMi32_AVX512=4723, + XED_IFORM_VPMOVSXDQ_XMMi64_MASKmskw_XMMi32_AVX512=4724, + XED_IFORM_VPMOVSXDQ_YMMi64_MASKmskw_MEMi32_AVX512=4725, + XED_IFORM_VPMOVSXDQ_YMMi64_MASKmskw_XMMi32_AVX512=4726, + XED_IFORM_VPMOVSXDQ_YMMqq_MEMdq=4727, + XED_IFORM_VPMOVSXDQ_YMMqq_XMMdq=4728, + XED_IFORM_VPMOVSXDQ_ZMMi64_MASKmskw_MEMi32_AVX512=4729, + XED_IFORM_VPMOVSXDQ_ZMMi64_MASKmskw_YMMi32_AVX512=4730, + XED_IFORM_VPMOVSXWD_XMMdq_MEMq=4731, + XED_IFORM_VPMOVSXWD_XMMdq_XMMq=4732, + XED_IFORM_VPMOVSXWD_XMMi32_MASKmskw_MEMi16_AVX512=4733, + XED_IFORM_VPMOVSXWD_XMMi32_MASKmskw_XMMi16_AVX512=4734, + XED_IFORM_VPMOVSXWD_YMMi32_MASKmskw_MEMi16_AVX512=4735, + XED_IFORM_VPMOVSXWD_YMMi32_MASKmskw_XMMi16_AVX512=4736, + XED_IFORM_VPMOVSXWD_YMMqq_MEMdq=4737, + XED_IFORM_VPMOVSXWD_YMMqq_XMMdq=4738, + XED_IFORM_VPMOVSXWD_ZMMi32_MASKmskw_MEMi16_AVX512=4739, + XED_IFORM_VPMOVSXWD_ZMMi32_MASKmskw_YMMi16_AVX512=4740, + XED_IFORM_VPMOVSXWQ_XMMdq_MEMd=4741, + XED_IFORM_VPMOVSXWQ_XMMdq_XMMd=4742, + XED_IFORM_VPMOVSXWQ_XMMi64_MASKmskw_MEMi16_AVX512=4743, + XED_IFORM_VPMOVSXWQ_XMMi64_MASKmskw_XMMi16_AVX512=4744, + XED_IFORM_VPMOVSXWQ_YMMi64_MASKmskw_MEMi16_AVX512=4745, + XED_IFORM_VPMOVSXWQ_YMMi64_MASKmskw_XMMi16_AVX512=4746, + XED_IFORM_VPMOVSXWQ_YMMqq_MEMq=4747, + XED_IFORM_VPMOVSXWQ_YMMqq_XMMq=4748, + XED_IFORM_VPMOVSXWQ_ZMMi64_MASKmskw_MEMi16_AVX512=4749, + XED_IFORM_VPMOVSXWQ_ZMMi64_MASKmskw_XMMi16_AVX512=4750, + XED_IFORM_VPMOVUSDB_MEMu8_MASKmskw_XMMu32_AVX512=4751, + XED_IFORM_VPMOVUSDB_MEMu8_MASKmskw_YMMu32_AVX512=4752, + XED_IFORM_VPMOVUSDB_MEMu8_MASKmskw_ZMMu32_AVX512=4753, + XED_IFORM_VPMOVUSDB_XMMu8_MASKmskw_XMMu32_AVX512=4754, + XED_IFORM_VPMOVUSDB_XMMu8_MASKmskw_YMMu32_AVX512=4755, + XED_IFORM_VPMOVUSDB_XMMu8_MASKmskw_ZMMu32_AVX512=4756, + XED_IFORM_VPMOVUSDW_MEMu16_MASKmskw_XMMu32_AVX512=4757, + XED_IFORM_VPMOVUSDW_MEMu16_MASKmskw_YMMu32_AVX512=4758, + XED_IFORM_VPMOVUSDW_MEMu16_MASKmskw_ZMMu32_AVX512=4759, + XED_IFORM_VPMOVUSDW_XMMu16_MASKmskw_XMMu32_AVX512=4760, + XED_IFORM_VPMOVUSDW_XMMu16_MASKmskw_YMMu32_AVX512=4761, + XED_IFORM_VPMOVUSDW_YMMu16_MASKmskw_ZMMu32_AVX512=4762, + XED_IFORM_VPMOVUSQB_MEMu8_MASKmskw_XMMu64_AVX512=4763, + XED_IFORM_VPMOVUSQB_MEMu8_MASKmskw_YMMu64_AVX512=4764, + XED_IFORM_VPMOVUSQB_MEMu8_MASKmskw_ZMMu64_AVX512=4765, + XED_IFORM_VPMOVUSQB_XMMu8_MASKmskw_XMMu64_AVX512=4766, + XED_IFORM_VPMOVUSQB_XMMu8_MASKmskw_YMMu64_AVX512=4767, + XED_IFORM_VPMOVUSQB_XMMu8_MASKmskw_ZMMu64_AVX512=4768, + XED_IFORM_VPMOVUSQD_MEMu32_MASKmskw_XMMu64_AVX512=4769, + XED_IFORM_VPMOVUSQD_MEMu32_MASKmskw_YMMu64_AVX512=4770, + XED_IFORM_VPMOVUSQD_MEMu32_MASKmskw_ZMMu64_AVX512=4771, + XED_IFORM_VPMOVUSQD_XMMu32_MASKmskw_XMMu64_AVX512=4772, + XED_IFORM_VPMOVUSQD_XMMu32_MASKmskw_YMMu64_AVX512=4773, + XED_IFORM_VPMOVUSQD_YMMu32_MASKmskw_ZMMu64_AVX512=4774, + XED_IFORM_VPMOVUSQW_MEMu16_MASKmskw_XMMu64_AVX512=4775, + XED_IFORM_VPMOVUSQW_MEMu16_MASKmskw_YMMu64_AVX512=4776, + XED_IFORM_VPMOVUSQW_MEMu16_MASKmskw_ZMMu64_AVX512=4777, + XED_IFORM_VPMOVUSQW_XMMu16_MASKmskw_XMMu64_AVX512=4778, + XED_IFORM_VPMOVUSQW_XMMu16_MASKmskw_YMMu64_AVX512=4779, + XED_IFORM_VPMOVUSQW_XMMu16_MASKmskw_ZMMu64_AVX512=4780, + XED_IFORM_VPMOVUSWB_MEMu8_MASKmskw_XMMu16_AVX512=4781, + XED_IFORM_VPMOVUSWB_MEMu8_MASKmskw_YMMu16_AVX512=4782, + XED_IFORM_VPMOVUSWB_MEMu8_MASKmskw_ZMMu16_AVX512=4783, + XED_IFORM_VPMOVUSWB_XMMu8_MASKmskw_XMMu16_AVX512=4784, + XED_IFORM_VPMOVUSWB_XMMu8_MASKmskw_YMMu16_AVX512=4785, + XED_IFORM_VPMOVUSWB_YMMu8_MASKmskw_ZMMu16_AVX512=4786, + XED_IFORM_VPMOVW2M_MASKmskw_XMMu16_AVX512=4787, + XED_IFORM_VPMOVW2M_MASKmskw_YMMu16_AVX512=4788, + XED_IFORM_VPMOVW2M_MASKmskw_ZMMu16_AVX512=4789, + XED_IFORM_VPMOVWB_MEMu8_MASKmskw_XMMu16_AVX512=4790, + XED_IFORM_VPMOVWB_MEMu8_MASKmskw_YMMu16_AVX512=4791, + XED_IFORM_VPMOVWB_MEMu8_MASKmskw_ZMMu16_AVX512=4792, + XED_IFORM_VPMOVWB_XMMu8_MASKmskw_XMMu16_AVX512=4793, + XED_IFORM_VPMOVWB_XMMu8_MASKmskw_YMMu16_AVX512=4794, + XED_IFORM_VPMOVWB_YMMu8_MASKmskw_ZMMu16_AVX512=4795, + XED_IFORM_VPMOVZXBD_XMMdq_MEMd=4796, + XED_IFORM_VPMOVZXBD_XMMdq_XMMd=4797, + XED_IFORM_VPMOVZXBD_XMMi32_MASKmskw_MEMi8_AVX512=4798, + XED_IFORM_VPMOVZXBD_XMMi32_MASKmskw_XMMi8_AVX512=4799, + XED_IFORM_VPMOVZXBD_YMMi32_MASKmskw_MEMi8_AVX512=4800, + XED_IFORM_VPMOVZXBD_YMMi32_MASKmskw_XMMi8_AVX512=4801, + XED_IFORM_VPMOVZXBD_YMMqq_MEMq=4802, + XED_IFORM_VPMOVZXBD_YMMqq_XMMq=4803, + XED_IFORM_VPMOVZXBD_ZMMi32_MASKmskw_MEMi8_AVX512=4804, + XED_IFORM_VPMOVZXBD_ZMMi32_MASKmskw_XMMi8_AVX512=4805, + XED_IFORM_VPMOVZXBQ_XMMdq_MEMw=4806, + XED_IFORM_VPMOVZXBQ_XMMdq_XMMw=4807, + XED_IFORM_VPMOVZXBQ_XMMi64_MASKmskw_MEMi8_AVX512=4808, + XED_IFORM_VPMOVZXBQ_XMMi64_MASKmskw_XMMi8_AVX512=4809, + XED_IFORM_VPMOVZXBQ_YMMi64_MASKmskw_MEMi8_AVX512=4810, + XED_IFORM_VPMOVZXBQ_YMMi64_MASKmskw_XMMi8_AVX512=4811, + XED_IFORM_VPMOVZXBQ_YMMqq_MEMd=4812, + XED_IFORM_VPMOVZXBQ_YMMqq_XMMd=4813, + XED_IFORM_VPMOVZXBQ_ZMMi64_MASKmskw_MEMi8_AVX512=4814, + XED_IFORM_VPMOVZXBQ_ZMMi64_MASKmskw_XMMi8_AVX512=4815, + XED_IFORM_VPMOVZXBW_XMMdq_MEMq=4816, + XED_IFORM_VPMOVZXBW_XMMdq_XMMq=4817, + XED_IFORM_VPMOVZXBW_XMMi16_MASKmskw_MEMi8_AVX512=4818, + XED_IFORM_VPMOVZXBW_XMMi16_MASKmskw_XMMi8_AVX512=4819, + XED_IFORM_VPMOVZXBW_YMMi16_MASKmskw_MEMi8_AVX512=4820, + XED_IFORM_VPMOVZXBW_YMMi16_MASKmskw_XMMi8_AVX512=4821, + XED_IFORM_VPMOVZXBW_YMMqq_MEMdq=4822, + XED_IFORM_VPMOVZXBW_YMMqq_XMMdq=4823, + XED_IFORM_VPMOVZXBW_ZMMi16_MASKmskw_MEMi8_AVX512=4824, + XED_IFORM_VPMOVZXBW_ZMMi16_MASKmskw_YMMi8_AVX512=4825, + XED_IFORM_VPMOVZXDQ_XMMdq_MEMq=4826, + XED_IFORM_VPMOVZXDQ_XMMdq_XMMq=4827, + XED_IFORM_VPMOVZXDQ_XMMi64_MASKmskw_MEMi32_AVX512=4828, + XED_IFORM_VPMOVZXDQ_XMMi64_MASKmskw_XMMi32_AVX512=4829, + XED_IFORM_VPMOVZXDQ_YMMi64_MASKmskw_MEMi32_AVX512=4830, + XED_IFORM_VPMOVZXDQ_YMMi64_MASKmskw_XMMi32_AVX512=4831, + XED_IFORM_VPMOVZXDQ_YMMqq_MEMdq=4832, + XED_IFORM_VPMOVZXDQ_YMMqq_XMMdq=4833, + XED_IFORM_VPMOVZXDQ_ZMMi64_MASKmskw_MEMi32_AVX512=4834, + XED_IFORM_VPMOVZXDQ_ZMMi64_MASKmskw_YMMi32_AVX512=4835, + XED_IFORM_VPMOVZXWD_XMMdq_MEMq=4836, + XED_IFORM_VPMOVZXWD_XMMdq_XMMq=4837, + XED_IFORM_VPMOVZXWD_XMMi32_MASKmskw_MEMi16_AVX512=4838, + XED_IFORM_VPMOVZXWD_XMMi32_MASKmskw_XMMi16_AVX512=4839, + XED_IFORM_VPMOVZXWD_YMMi32_MASKmskw_MEMi16_AVX512=4840, + XED_IFORM_VPMOVZXWD_YMMi32_MASKmskw_XMMi16_AVX512=4841, + XED_IFORM_VPMOVZXWD_YMMqq_MEMdq=4842, + XED_IFORM_VPMOVZXWD_YMMqq_XMMdq=4843, + XED_IFORM_VPMOVZXWD_ZMMi32_MASKmskw_MEMi16_AVX512=4844, + XED_IFORM_VPMOVZXWD_ZMMi32_MASKmskw_YMMi16_AVX512=4845, + XED_IFORM_VPMOVZXWQ_XMMdq_MEMd=4846, + XED_IFORM_VPMOVZXWQ_XMMdq_XMMd=4847, + XED_IFORM_VPMOVZXWQ_XMMi64_MASKmskw_MEMi16_AVX512=4848, + XED_IFORM_VPMOVZXWQ_XMMi64_MASKmskw_XMMi16_AVX512=4849, + XED_IFORM_VPMOVZXWQ_YMMi64_MASKmskw_MEMi16_AVX512=4850, + XED_IFORM_VPMOVZXWQ_YMMi64_MASKmskw_XMMi16_AVX512=4851, + XED_IFORM_VPMOVZXWQ_YMMqq_MEMq=4852, + XED_IFORM_VPMOVZXWQ_YMMqq_XMMq=4853, + XED_IFORM_VPMOVZXWQ_ZMMi64_MASKmskw_MEMi16_AVX512=4854, + XED_IFORM_VPMOVZXWQ_ZMMi64_MASKmskw_XMMi16_AVX512=4855, + XED_IFORM_VPMULDQ_XMMdq_XMMdq_MEMdq=4856, + XED_IFORM_VPMULDQ_XMMdq_XMMdq_XMMdq=4857, + XED_IFORM_VPMULDQ_XMMi64_MASKmskw_XMMi32_MEMi32_AVX512=4858, + XED_IFORM_VPMULDQ_XMMi64_MASKmskw_XMMi32_XMMi32_AVX512=4859, + XED_IFORM_VPMULDQ_YMMi64_MASKmskw_YMMi32_MEMi32_AVX512=4860, + XED_IFORM_VPMULDQ_YMMi64_MASKmskw_YMMi32_YMMi32_AVX512=4861, + XED_IFORM_VPMULDQ_YMMqq_YMMqq_MEMqq=4862, + XED_IFORM_VPMULDQ_YMMqq_YMMqq_YMMqq=4863, + XED_IFORM_VPMULDQ_ZMMi64_MASKmskw_ZMMi32_MEMi32_AVX512=4864, + XED_IFORM_VPMULDQ_ZMMi64_MASKmskw_ZMMi32_ZMMi32_AVX512=4865, + XED_IFORM_VPMULHRSW_XMMdq_XMMdq_MEMdq=4866, + XED_IFORM_VPMULHRSW_XMMdq_XMMdq_XMMdq=4867, + XED_IFORM_VPMULHRSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512=4868, + XED_IFORM_VPMULHRSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512=4869, + XED_IFORM_VPMULHRSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512=4870, + XED_IFORM_VPMULHRSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512=4871, + XED_IFORM_VPMULHRSW_YMMqq_YMMqq_MEMqq=4872, + XED_IFORM_VPMULHRSW_YMMqq_YMMqq_YMMqq=4873, + XED_IFORM_VPMULHRSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512=4874, + XED_IFORM_VPMULHRSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512=4875, + XED_IFORM_VPMULHUW_XMMdq_XMMdq_MEMdq=4876, + XED_IFORM_VPMULHUW_XMMdq_XMMdq_XMMdq=4877, + XED_IFORM_VPMULHUW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4878, + XED_IFORM_VPMULHUW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4879, + XED_IFORM_VPMULHUW_YMMqq_YMMqq_MEMqq=4880, + XED_IFORM_VPMULHUW_YMMqq_YMMqq_YMMqq=4881, + XED_IFORM_VPMULHUW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4882, + XED_IFORM_VPMULHUW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4883, + XED_IFORM_VPMULHUW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4884, + XED_IFORM_VPMULHUW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4885, + XED_IFORM_VPMULHW_XMMdq_XMMdq_MEMdq=4886, + XED_IFORM_VPMULHW_XMMdq_XMMdq_XMMdq=4887, + XED_IFORM_VPMULHW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4888, + XED_IFORM_VPMULHW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4889, + XED_IFORM_VPMULHW_YMMqq_YMMqq_MEMqq=4890, + XED_IFORM_VPMULHW_YMMqq_YMMqq_YMMqq=4891, + XED_IFORM_VPMULHW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4892, + XED_IFORM_VPMULHW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4893, + XED_IFORM_VPMULHW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4894, + XED_IFORM_VPMULHW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4895, + XED_IFORM_VPMULLD_XMMdq_XMMdq_MEMdq=4896, + XED_IFORM_VPMULLD_XMMdq_XMMdq_XMMdq=4897, + XED_IFORM_VPMULLD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4898, + XED_IFORM_VPMULLD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4899, + XED_IFORM_VPMULLD_YMMqq_YMMqq_MEMqq=4900, + XED_IFORM_VPMULLD_YMMqq_YMMqq_YMMqq=4901, + XED_IFORM_VPMULLD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4902, + XED_IFORM_VPMULLD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4903, + XED_IFORM_VPMULLD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4904, + XED_IFORM_VPMULLD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4905, + XED_IFORM_VPMULLQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4906, + XED_IFORM_VPMULLQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4907, + XED_IFORM_VPMULLQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4908, + XED_IFORM_VPMULLQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4909, + XED_IFORM_VPMULLQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4910, + XED_IFORM_VPMULLQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4911, + XED_IFORM_VPMULLW_XMMdq_XMMdq_MEMdq=4912, + XED_IFORM_VPMULLW_XMMdq_XMMdq_XMMdq=4913, + XED_IFORM_VPMULLW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=4914, + XED_IFORM_VPMULLW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=4915, + XED_IFORM_VPMULLW_YMMqq_YMMqq_MEMqq=4916, + XED_IFORM_VPMULLW_YMMqq_YMMqq_YMMqq=4917, + XED_IFORM_VPMULLW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=4918, + XED_IFORM_VPMULLW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=4919, + XED_IFORM_VPMULLW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=4920, + XED_IFORM_VPMULLW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=4921, + XED_IFORM_VPMULTISHIFTQB_XMMu8_MASKmskw_XMMu8_MEMu64_AVX512=4922, + XED_IFORM_VPMULTISHIFTQB_XMMu8_MASKmskw_XMMu8_XMMu64_AVX512=4923, + XED_IFORM_VPMULTISHIFTQB_YMMu8_MASKmskw_YMMu8_MEMu64_AVX512=4924, + XED_IFORM_VPMULTISHIFTQB_YMMu8_MASKmskw_YMMu8_YMMu64_AVX512=4925, + XED_IFORM_VPMULTISHIFTQB_ZMMu8_MASKmskw_ZMMu8_MEMu64_AVX512=4926, + XED_IFORM_VPMULTISHIFTQB_ZMMu8_MASKmskw_ZMMu8_ZMMu64_AVX512=4927, + XED_IFORM_VPMULUDQ_XMMdq_XMMdq_MEMdq=4928, + XED_IFORM_VPMULUDQ_XMMdq_XMMdq_XMMdq=4929, + XED_IFORM_VPMULUDQ_XMMu64_MASKmskw_XMMu32_MEMu32_AVX512=4930, + XED_IFORM_VPMULUDQ_XMMu64_MASKmskw_XMMu32_XMMu32_AVX512=4931, + XED_IFORM_VPMULUDQ_YMMqq_YMMqq_MEMqq=4932, + XED_IFORM_VPMULUDQ_YMMqq_YMMqq_YMMqq=4933, + XED_IFORM_VPMULUDQ_YMMu64_MASKmskw_YMMu32_MEMu32_AVX512=4934, + XED_IFORM_VPMULUDQ_YMMu64_MASKmskw_YMMu32_YMMu32_AVX512=4935, + XED_IFORM_VPMULUDQ_ZMMu64_MASKmskw_ZMMu32_MEMu32_AVX512=4936, + XED_IFORM_VPMULUDQ_ZMMu64_MASKmskw_ZMMu32_ZMMu32_AVX512=4937, + XED_IFORM_VPOR_XMMdq_XMMdq_MEMdq=4938, + XED_IFORM_VPOR_XMMdq_XMMdq_XMMdq=4939, + XED_IFORM_VPOR_YMMqq_YMMqq_MEMqq=4940, + XED_IFORM_VPOR_YMMqq_YMMqq_YMMqq=4941, + XED_IFORM_VPORD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4942, + XED_IFORM_VPORD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4943, + XED_IFORM_VPORD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4944, + XED_IFORM_VPORD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4945, + XED_IFORM_VPORD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4946, + XED_IFORM_VPORD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4947, + XED_IFORM_VPORQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4948, + XED_IFORM_VPORQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4949, + XED_IFORM_VPORQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4950, + XED_IFORM_VPORQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4951, + XED_IFORM_VPORQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4952, + XED_IFORM_VPORQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4953, + XED_IFORM_VPPERM_XMMdq_XMMdq_MEMdq_XMMdq=4954, + XED_IFORM_VPPERM_XMMdq_XMMdq_XMMdq_MEMdq=4955, + XED_IFORM_VPPERM_XMMdq_XMMdq_XMMdq_XMMdq=4956, + XED_IFORM_VPROLD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512=4957, + XED_IFORM_VPROLD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512=4958, + XED_IFORM_VPROLD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512=4959, + XED_IFORM_VPROLD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512=4960, + XED_IFORM_VPROLD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512=4961, + XED_IFORM_VPROLD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512=4962, + XED_IFORM_VPROLQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512=4963, + XED_IFORM_VPROLQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512=4964, + XED_IFORM_VPROLQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512=4965, + XED_IFORM_VPROLQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512=4966, + XED_IFORM_VPROLQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512=4967, + XED_IFORM_VPROLQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512=4968, + XED_IFORM_VPROLVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4969, + XED_IFORM_VPROLVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4970, + XED_IFORM_VPROLVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4971, + XED_IFORM_VPROLVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4972, + XED_IFORM_VPROLVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4973, + XED_IFORM_VPROLVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4974, + XED_IFORM_VPROLVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4975, + XED_IFORM_VPROLVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=4976, + XED_IFORM_VPROLVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=4977, + XED_IFORM_VPROLVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=4978, + XED_IFORM_VPROLVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=4979, + XED_IFORM_VPROLVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=4980, + XED_IFORM_VPRORD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512=4981, + XED_IFORM_VPRORD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512=4982, + XED_IFORM_VPRORD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512=4983, + XED_IFORM_VPRORD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512=4984, + XED_IFORM_VPRORD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512=4985, + XED_IFORM_VPRORD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512=4986, + XED_IFORM_VPRORQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512=4987, + XED_IFORM_VPRORQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512=4988, + XED_IFORM_VPRORQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512=4989, + XED_IFORM_VPRORQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512=4990, + XED_IFORM_VPRORQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512=4991, + XED_IFORM_VPRORQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512=4992, + XED_IFORM_VPRORVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=4993, + XED_IFORM_VPRORVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=4994, + XED_IFORM_VPRORVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=4995, + XED_IFORM_VPRORVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=4996, + XED_IFORM_VPRORVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=4997, + XED_IFORM_VPRORVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=4998, + XED_IFORM_VPRORVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=4999, + XED_IFORM_VPRORVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5000, + XED_IFORM_VPRORVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5001, + XED_IFORM_VPRORVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5002, + XED_IFORM_VPRORVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5003, + XED_IFORM_VPRORVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5004, + XED_IFORM_VPROTB_XMMdq_MEMdq_IMMb=5005, + XED_IFORM_VPROTB_XMMdq_MEMdq_XMMdq=5006, + XED_IFORM_VPROTB_XMMdq_XMMdq_IMMb=5007, + XED_IFORM_VPROTB_XMMdq_XMMdq_MEMdq=5008, + XED_IFORM_VPROTB_XMMdq_XMMdq_XMMdq=5009, + XED_IFORM_VPROTD_XMMdq_MEMdq_IMMb=5010, + XED_IFORM_VPROTD_XMMdq_MEMdq_XMMdq=5011, + XED_IFORM_VPROTD_XMMdq_XMMdq_IMMb=5012, + XED_IFORM_VPROTD_XMMdq_XMMdq_MEMdq=5013, + XED_IFORM_VPROTD_XMMdq_XMMdq_XMMdq=5014, + XED_IFORM_VPROTQ_XMMdq_MEMdq_IMMb=5015, + XED_IFORM_VPROTQ_XMMdq_MEMdq_XMMdq=5016, + XED_IFORM_VPROTQ_XMMdq_XMMdq_IMMb=5017, + XED_IFORM_VPROTQ_XMMdq_XMMdq_MEMdq=5018, + XED_IFORM_VPROTQ_XMMdq_XMMdq_XMMdq=5019, + XED_IFORM_VPROTW_XMMdq_MEMdq_IMMb=5020, + XED_IFORM_VPROTW_XMMdq_MEMdq_XMMdq=5021, + XED_IFORM_VPROTW_XMMdq_XMMdq_IMMb=5022, + XED_IFORM_VPROTW_XMMdq_XMMdq_MEMdq=5023, + XED_IFORM_VPROTW_XMMdq_XMMdq_XMMdq=5024, + XED_IFORM_VPSADBW_XMMdq_XMMdq_MEMdq=5025, + XED_IFORM_VPSADBW_XMMdq_XMMdq_XMMdq=5026, + XED_IFORM_VPSADBW_XMMu16_XMMu8_MEMu8_AVX512=5027, + XED_IFORM_VPSADBW_XMMu16_XMMu8_XMMu8_AVX512=5028, + XED_IFORM_VPSADBW_YMMqq_YMMqq_MEMqq=5029, + XED_IFORM_VPSADBW_YMMqq_YMMqq_YMMqq=5030, + XED_IFORM_VPSADBW_YMMu16_YMMu8_MEMu8_AVX512=5031, + XED_IFORM_VPSADBW_YMMu16_YMMu8_YMMu8_AVX512=5032, + XED_IFORM_VPSADBW_ZMMu16_ZMMu8_MEMu8_AVX512=5033, + XED_IFORM_VPSADBW_ZMMu16_ZMMu8_ZMMu8_AVX512=5034, + XED_IFORM_VPSCATTERDD_MEMu32_MASKmskw_XMMu32_AVX512_VL128=5035, + XED_IFORM_VPSCATTERDD_MEMu32_MASKmskw_YMMu32_AVX512_VL256=5036, + XED_IFORM_VPSCATTERDD_MEMu32_MASKmskw_ZMMu32_AVX512_VL512=5037, + XED_IFORM_VPSCATTERDQ_MEMu64_MASKmskw_XMMu64_AVX512_VL128=5038, + XED_IFORM_VPSCATTERDQ_MEMu64_MASKmskw_YMMu64_AVX512_VL256=5039, + XED_IFORM_VPSCATTERDQ_MEMu64_MASKmskw_ZMMu64_AVX512_VL512=5040, + XED_IFORM_VPSCATTERQD_MEMu32_MASKmskw_XMMu32_AVX512_VL128=5041, + XED_IFORM_VPSCATTERQD_MEMu32_MASKmskw_XMMu32_AVX512_VL256=5042, + XED_IFORM_VPSCATTERQD_MEMu32_MASKmskw_YMMu32_AVX512_VL512=5043, + XED_IFORM_VPSCATTERQQ_MEMu64_MASKmskw_XMMu64_AVX512_VL128=5044, + XED_IFORM_VPSCATTERQQ_MEMu64_MASKmskw_YMMu64_AVX512_VL256=5045, + XED_IFORM_VPSCATTERQQ_MEMu64_MASKmskw_ZMMu64_AVX512_VL512=5046, + XED_IFORM_VPSHAB_XMMdq_MEMdq_XMMdq=5047, + XED_IFORM_VPSHAB_XMMdq_XMMdq_MEMdq=5048, + XED_IFORM_VPSHAB_XMMdq_XMMdq_XMMdq=5049, + XED_IFORM_VPSHAD_XMMdq_MEMdq_XMMdq=5050, + XED_IFORM_VPSHAD_XMMdq_XMMdq_MEMdq=5051, + XED_IFORM_VPSHAD_XMMdq_XMMdq_XMMdq=5052, + XED_IFORM_VPSHAQ_XMMdq_MEMdq_XMMdq=5053, + XED_IFORM_VPSHAQ_XMMdq_XMMdq_MEMdq=5054, + XED_IFORM_VPSHAQ_XMMdq_XMMdq_XMMdq=5055, + XED_IFORM_VPSHAW_XMMdq_MEMdq_XMMdq=5056, + XED_IFORM_VPSHAW_XMMdq_XMMdq_MEMdq=5057, + XED_IFORM_VPSHAW_XMMdq_XMMdq_XMMdq=5058, + XED_IFORM_VPSHLB_XMMdq_MEMdq_XMMdq=5059, + XED_IFORM_VPSHLB_XMMdq_XMMdq_MEMdq=5060, + XED_IFORM_VPSHLB_XMMdq_XMMdq_XMMdq=5061, + XED_IFORM_VPSHLD_XMMdq_MEMdq_XMMdq=5062, + XED_IFORM_VPSHLD_XMMdq_XMMdq_MEMdq=5063, + XED_IFORM_VPSHLD_XMMdq_XMMdq_XMMdq=5064, + XED_IFORM_VPSHLQ_XMMdq_MEMdq_XMMdq=5065, + XED_IFORM_VPSHLQ_XMMdq_XMMdq_MEMdq=5066, + XED_IFORM_VPSHLQ_XMMdq_XMMdq_XMMdq=5067, + XED_IFORM_VPSHLW_XMMdq_MEMdq_XMMdq=5068, + XED_IFORM_VPSHLW_XMMdq_XMMdq_MEMdq=5069, + XED_IFORM_VPSHLW_XMMdq_XMMdq_XMMdq=5070, + XED_IFORM_VPSHUFB_XMMdq_XMMdq_MEMdq=5071, + XED_IFORM_VPSHUFB_XMMdq_XMMdq_XMMdq=5072, + XED_IFORM_VPSHUFB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=5073, + XED_IFORM_VPSHUFB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=5074, + XED_IFORM_VPSHUFB_YMMqq_YMMqq_MEMqq=5075, + XED_IFORM_VPSHUFB_YMMqq_YMMqq_YMMqq=5076, + XED_IFORM_VPSHUFB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=5077, + XED_IFORM_VPSHUFB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=5078, + XED_IFORM_VPSHUFB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=5079, + XED_IFORM_VPSHUFB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=5080, + XED_IFORM_VPSHUFD_XMMdq_MEMdq_IMMb=5081, + XED_IFORM_VPSHUFD_XMMdq_XMMdq_IMMb=5082, + XED_IFORM_VPSHUFD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512=5083, + XED_IFORM_VPSHUFD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512=5084, + XED_IFORM_VPSHUFD_YMMqq_MEMqq_IMMb=5085, + XED_IFORM_VPSHUFD_YMMqq_YMMqq_IMMb=5086, + XED_IFORM_VPSHUFD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512=5087, + XED_IFORM_VPSHUFD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512=5088, + XED_IFORM_VPSHUFD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512=5089, + XED_IFORM_VPSHUFD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512=5090, + XED_IFORM_VPSHUFHW_XMMdq_MEMdq_IMMb=5091, + XED_IFORM_VPSHUFHW_XMMdq_XMMdq_IMMb=5092, + XED_IFORM_VPSHUFHW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512=5093, + XED_IFORM_VPSHUFHW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512=5094, + XED_IFORM_VPSHUFHW_YMMqq_MEMqq_IMMb=5095, + XED_IFORM_VPSHUFHW_YMMqq_YMMqq_IMMb=5096, + XED_IFORM_VPSHUFHW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512=5097, + XED_IFORM_VPSHUFHW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512=5098, + XED_IFORM_VPSHUFHW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512=5099, + XED_IFORM_VPSHUFHW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512=5100, + XED_IFORM_VPSHUFLW_XMMdq_MEMdq_IMMb=5101, + XED_IFORM_VPSHUFLW_XMMdq_XMMdq_IMMb=5102, + XED_IFORM_VPSHUFLW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512=5103, + XED_IFORM_VPSHUFLW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512=5104, + XED_IFORM_VPSHUFLW_YMMqq_MEMqq_IMMb=5105, + XED_IFORM_VPSHUFLW_YMMqq_YMMqq_IMMb=5106, + XED_IFORM_VPSHUFLW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512=5107, + XED_IFORM_VPSHUFLW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512=5108, + XED_IFORM_VPSHUFLW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512=5109, + XED_IFORM_VPSHUFLW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512=5110, + XED_IFORM_VPSIGNB_XMMdq_XMMdq_MEMdq=5111, + XED_IFORM_VPSIGNB_XMMdq_XMMdq_XMMdq=5112, + XED_IFORM_VPSIGNB_YMMqq_YMMqq_MEMqq=5113, + XED_IFORM_VPSIGNB_YMMqq_YMMqq_YMMqq=5114, + XED_IFORM_VPSIGND_XMMdq_XMMdq_MEMdq=5115, + XED_IFORM_VPSIGND_XMMdq_XMMdq_XMMdq=5116, + XED_IFORM_VPSIGND_YMMqq_YMMqq_MEMqq=5117, + XED_IFORM_VPSIGND_YMMqq_YMMqq_YMMqq=5118, + XED_IFORM_VPSIGNW_XMMdq_XMMdq_MEMdq=5119, + XED_IFORM_VPSIGNW_XMMdq_XMMdq_XMMdq=5120, + XED_IFORM_VPSIGNW_YMMqq_YMMqq_MEMqq=5121, + XED_IFORM_VPSIGNW_YMMqq_YMMqq_YMMqq=5122, + XED_IFORM_VPSLLD_XMMdq_XMMdq_IMMb=5123, + XED_IFORM_VPSLLD_XMMdq_XMMdq_MEMdq=5124, + XED_IFORM_VPSLLD_XMMdq_XMMdq_XMMdq=5125, + XED_IFORM_VPSLLD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512=5126, + XED_IFORM_VPSLLD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512=5127, + XED_IFORM_VPSLLD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5128, + XED_IFORM_VPSLLD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5129, + XED_IFORM_VPSLLD_YMMqq_YMMqq_IMMb=5130, + XED_IFORM_VPSLLD_YMMqq_YMMqq_MEMdq=5131, + XED_IFORM_VPSLLD_YMMqq_YMMqq_XMMq=5132, + XED_IFORM_VPSLLD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512=5133, + XED_IFORM_VPSLLD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512=5134, + XED_IFORM_VPSLLD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5135, + XED_IFORM_VPSLLD_YMMu32_MASKmskw_YMMu32_XMMu32_AVX512=5136, + XED_IFORM_VPSLLD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512=5137, + XED_IFORM_VPSLLD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512=5138, + XED_IFORM_VPSLLD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5139, + XED_IFORM_VPSLLD_ZMMu32_MASKmskw_ZMMu32_XMMu32_AVX512=5140, + XED_IFORM_VPSLLDQ_XMMdq_XMMdq_IMMb=5141, + XED_IFORM_VPSLLDQ_XMMu8_MEMu8_IMM8_AVX512=5142, + XED_IFORM_VPSLLDQ_XMMu8_XMMu8_IMM8_AVX512=5143, + XED_IFORM_VPSLLDQ_YMMqq_YMMqq_IMMb=5144, + XED_IFORM_VPSLLDQ_YMMu8_MEMu8_IMM8_AVX512=5145, + XED_IFORM_VPSLLDQ_YMMu8_YMMu8_IMM8_AVX512=5146, + XED_IFORM_VPSLLDQ_ZMMu8_MEMu8_IMM8_AVX512=5147, + XED_IFORM_VPSLLDQ_ZMMu8_ZMMu8_IMM8_AVX512=5148, + XED_IFORM_VPSLLQ_XMMdq_XMMdq_IMMb=5149, + XED_IFORM_VPSLLQ_XMMdq_XMMdq_MEMdq=5150, + XED_IFORM_VPSLLQ_XMMdq_XMMdq_XMMdq=5151, + XED_IFORM_VPSLLQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512=5152, + XED_IFORM_VPSLLQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512=5153, + XED_IFORM_VPSLLQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5154, + XED_IFORM_VPSLLQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5155, + XED_IFORM_VPSLLQ_YMMqq_YMMqq_IMMb=5156, + XED_IFORM_VPSLLQ_YMMqq_YMMqq_MEMdq=5157, + XED_IFORM_VPSLLQ_YMMqq_YMMqq_XMMq=5158, + XED_IFORM_VPSLLQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512=5159, + XED_IFORM_VPSLLQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512=5160, + XED_IFORM_VPSLLQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5161, + XED_IFORM_VPSLLQ_YMMu64_MASKmskw_YMMu64_XMMu64_AVX512=5162, + XED_IFORM_VPSLLQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512=5163, + XED_IFORM_VPSLLQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512=5164, + XED_IFORM_VPSLLQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5165, + XED_IFORM_VPSLLQ_ZMMu64_MASKmskw_ZMMu64_XMMu64_AVX512=5166, + XED_IFORM_VPSLLVD_XMMdq_XMMdq_MEMdq=5167, + XED_IFORM_VPSLLVD_XMMdq_XMMdq_XMMdq=5168, + XED_IFORM_VPSLLVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5169, + XED_IFORM_VPSLLVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5170, + XED_IFORM_VPSLLVD_YMMqq_YMMqq_MEMqq=5171, + XED_IFORM_VPSLLVD_YMMqq_YMMqq_YMMqq=5172, + XED_IFORM_VPSLLVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5173, + XED_IFORM_VPSLLVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=5174, + XED_IFORM_VPSLLVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5175, + XED_IFORM_VPSLLVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=5176, + XED_IFORM_VPSLLVQ_XMMdq_XMMdq_MEMdq=5177, + XED_IFORM_VPSLLVQ_XMMdq_XMMdq_XMMdq=5178, + XED_IFORM_VPSLLVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5179, + XED_IFORM_VPSLLVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5180, + XED_IFORM_VPSLLVQ_YMMqq_YMMqq_MEMqq=5181, + XED_IFORM_VPSLLVQ_YMMqq_YMMqq_YMMqq=5182, + XED_IFORM_VPSLLVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5183, + XED_IFORM_VPSLLVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5184, + XED_IFORM_VPSLLVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5185, + XED_IFORM_VPSLLVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5186, + XED_IFORM_VPSLLVW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5187, + XED_IFORM_VPSLLVW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5188, + XED_IFORM_VPSLLVW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5189, + XED_IFORM_VPSLLVW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=5190, + XED_IFORM_VPSLLVW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5191, + XED_IFORM_VPSLLVW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=5192, + XED_IFORM_VPSLLW_XMMdq_XMMdq_IMMb=5193, + XED_IFORM_VPSLLW_XMMdq_XMMdq_MEMdq=5194, + XED_IFORM_VPSLLW_XMMdq_XMMdq_XMMdq=5195, + XED_IFORM_VPSLLW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512=5196, + XED_IFORM_VPSLLW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512=5197, + XED_IFORM_VPSLLW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5198, + XED_IFORM_VPSLLW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5199, + XED_IFORM_VPSLLW_YMMqq_YMMqq_IMMb=5200, + XED_IFORM_VPSLLW_YMMqq_YMMqq_MEMdq=5201, + XED_IFORM_VPSLLW_YMMqq_YMMqq_XMMq=5202, + XED_IFORM_VPSLLW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512=5203, + XED_IFORM_VPSLLW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512=5204, + XED_IFORM_VPSLLW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5205, + XED_IFORM_VPSLLW_YMMu16_MASKmskw_YMMu16_XMMu16_AVX512=5206, + XED_IFORM_VPSLLW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512=5207, + XED_IFORM_VPSLLW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512=5208, + XED_IFORM_VPSLLW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5209, + XED_IFORM_VPSLLW_ZMMu16_MASKmskw_ZMMu16_XMMu16_AVX512=5210, + XED_IFORM_VPSRAD_XMMdq_XMMdq_IMMb=5211, + XED_IFORM_VPSRAD_XMMdq_XMMdq_MEMdq=5212, + XED_IFORM_VPSRAD_XMMdq_XMMdq_XMMdq=5213, + XED_IFORM_VPSRAD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512=5214, + XED_IFORM_VPSRAD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512=5215, + XED_IFORM_VPSRAD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5216, + XED_IFORM_VPSRAD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5217, + XED_IFORM_VPSRAD_YMMqq_YMMqq_IMMb=5218, + XED_IFORM_VPSRAD_YMMqq_YMMqq_MEMdq=5219, + XED_IFORM_VPSRAD_YMMqq_YMMqq_XMMq=5220, + XED_IFORM_VPSRAD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512=5221, + XED_IFORM_VPSRAD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512=5222, + XED_IFORM_VPSRAD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5223, + XED_IFORM_VPSRAD_YMMu32_MASKmskw_YMMu32_XMMu32_AVX512=5224, + XED_IFORM_VPSRAD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512=5225, + XED_IFORM_VPSRAD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512=5226, + XED_IFORM_VPSRAD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5227, + XED_IFORM_VPSRAD_ZMMu32_MASKmskw_ZMMu32_XMMu32_AVX512=5228, + XED_IFORM_VPSRAQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512=5229, + XED_IFORM_VPSRAQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512=5230, + XED_IFORM_VPSRAQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5231, + XED_IFORM_VPSRAQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5232, + XED_IFORM_VPSRAQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512=5233, + XED_IFORM_VPSRAQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512=5234, + XED_IFORM_VPSRAQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5235, + XED_IFORM_VPSRAQ_YMMu64_MASKmskw_YMMu64_XMMu64_AVX512=5236, + XED_IFORM_VPSRAQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512=5237, + XED_IFORM_VPSRAQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512=5238, + XED_IFORM_VPSRAQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5239, + XED_IFORM_VPSRAQ_ZMMu64_MASKmskw_ZMMu64_XMMu64_AVX512=5240, + XED_IFORM_VPSRAVD_XMMdq_XMMdq_MEMdq=5241, + XED_IFORM_VPSRAVD_XMMdq_XMMdq_XMMdq=5242, + XED_IFORM_VPSRAVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5243, + XED_IFORM_VPSRAVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5244, + XED_IFORM_VPSRAVD_YMMqq_YMMqq_MEMqq=5245, + XED_IFORM_VPSRAVD_YMMqq_YMMqq_YMMqq=5246, + XED_IFORM_VPSRAVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5247, + XED_IFORM_VPSRAVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=5248, + XED_IFORM_VPSRAVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5249, + XED_IFORM_VPSRAVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=5250, + XED_IFORM_VPSRAVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5251, + XED_IFORM_VPSRAVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5252, + XED_IFORM_VPSRAVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5253, + XED_IFORM_VPSRAVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5254, + XED_IFORM_VPSRAVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5255, + XED_IFORM_VPSRAVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5256, + XED_IFORM_VPSRAVW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5257, + XED_IFORM_VPSRAVW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5258, + XED_IFORM_VPSRAVW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5259, + XED_IFORM_VPSRAVW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=5260, + XED_IFORM_VPSRAVW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5261, + XED_IFORM_VPSRAVW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=5262, + XED_IFORM_VPSRAW_XMMdq_XMMdq_IMMb=5263, + XED_IFORM_VPSRAW_XMMdq_XMMdq_MEMdq=5264, + XED_IFORM_VPSRAW_XMMdq_XMMdq_XMMdq=5265, + XED_IFORM_VPSRAW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512=5266, + XED_IFORM_VPSRAW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512=5267, + XED_IFORM_VPSRAW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5268, + XED_IFORM_VPSRAW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5269, + XED_IFORM_VPSRAW_YMMqq_YMMqq_IMMb=5270, + XED_IFORM_VPSRAW_YMMqq_YMMqq_MEMdq=5271, + XED_IFORM_VPSRAW_YMMqq_YMMqq_XMMq=5272, + XED_IFORM_VPSRAW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512=5273, + XED_IFORM_VPSRAW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512=5274, + XED_IFORM_VPSRAW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5275, + XED_IFORM_VPSRAW_YMMu16_MASKmskw_YMMu16_XMMu16_AVX512=5276, + XED_IFORM_VPSRAW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512=5277, + XED_IFORM_VPSRAW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512=5278, + XED_IFORM_VPSRAW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5279, + XED_IFORM_VPSRAW_ZMMu16_MASKmskw_ZMMu16_XMMu16_AVX512=5280, + XED_IFORM_VPSRLD_XMMdq_XMMdq_IMMb=5281, + XED_IFORM_VPSRLD_XMMdq_XMMdq_MEMdq=5282, + XED_IFORM_VPSRLD_XMMdq_XMMdq_XMMdq=5283, + XED_IFORM_VPSRLD_XMMu32_MASKmskw_MEMu32_IMM8_AVX512=5284, + XED_IFORM_VPSRLD_XMMu32_MASKmskw_XMMu32_IMM8_AVX512=5285, + XED_IFORM_VPSRLD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5286, + XED_IFORM_VPSRLD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5287, + XED_IFORM_VPSRLD_YMMqq_YMMqq_IMMb=5288, + XED_IFORM_VPSRLD_YMMqq_YMMqq_MEMdq=5289, + XED_IFORM_VPSRLD_YMMqq_YMMqq_XMMq=5290, + XED_IFORM_VPSRLD_YMMu32_MASKmskw_MEMu32_IMM8_AVX512=5291, + XED_IFORM_VPSRLD_YMMu32_MASKmskw_YMMu32_IMM8_AVX512=5292, + XED_IFORM_VPSRLD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5293, + XED_IFORM_VPSRLD_YMMu32_MASKmskw_YMMu32_XMMu32_AVX512=5294, + XED_IFORM_VPSRLD_ZMMu32_MASKmskw_MEMu32_IMM8_AVX512=5295, + XED_IFORM_VPSRLD_ZMMu32_MASKmskw_ZMMu32_IMM8_AVX512=5296, + XED_IFORM_VPSRLD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5297, + XED_IFORM_VPSRLD_ZMMu32_MASKmskw_ZMMu32_XMMu32_AVX512=5298, + XED_IFORM_VPSRLDQ_XMMdq_XMMdq_IMMb=5299, + XED_IFORM_VPSRLDQ_XMMu8_MEMu8_IMM8_AVX512=5300, + XED_IFORM_VPSRLDQ_XMMu8_XMMu8_IMM8_AVX512=5301, + XED_IFORM_VPSRLDQ_YMMqq_YMMqq_IMMb=5302, + XED_IFORM_VPSRLDQ_YMMu8_MEMu8_IMM8_AVX512=5303, + XED_IFORM_VPSRLDQ_YMMu8_YMMu8_IMM8_AVX512=5304, + XED_IFORM_VPSRLDQ_ZMMu8_MEMu8_IMM8_AVX512=5305, + XED_IFORM_VPSRLDQ_ZMMu8_ZMMu8_IMM8_AVX512=5306, + XED_IFORM_VPSRLQ_XMMdq_XMMdq_IMMb=5307, + XED_IFORM_VPSRLQ_XMMdq_XMMdq_MEMdq=5308, + XED_IFORM_VPSRLQ_XMMdq_XMMdq_XMMdq=5309, + XED_IFORM_VPSRLQ_XMMu64_MASKmskw_MEMu64_IMM8_AVX512=5310, + XED_IFORM_VPSRLQ_XMMu64_MASKmskw_XMMu64_IMM8_AVX512=5311, + XED_IFORM_VPSRLQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5312, + XED_IFORM_VPSRLQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5313, + XED_IFORM_VPSRLQ_YMMqq_YMMqq_IMMb=5314, + XED_IFORM_VPSRLQ_YMMqq_YMMqq_MEMdq=5315, + XED_IFORM_VPSRLQ_YMMqq_YMMqq_XMMq=5316, + XED_IFORM_VPSRLQ_YMMu64_MASKmskw_MEMu64_IMM8_AVX512=5317, + XED_IFORM_VPSRLQ_YMMu64_MASKmskw_YMMu64_IMM8_AVX512=5318, + XED_IFORM_VPSRLQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5319, + XED_IFORM_VPSRLQ_YMMu64_MASKmskw_YMMu64_XMMu64_AVX512=5320, + XED_IFORM_VPSRLQ_ZMMu64_MASKmskw_MEMu64_IMM8_AVX512=5321, + XED_IFORM_VPSRLQ_ZMMu64_MASKmskw_ZMMu64_IMM8_AVX512=5322, + XED_IFORM_VPSRLQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5323, + XED_IFORM_VPSRLQ_ZMMu64_MASKmskw_ZMMu64_XMMu64_AVX512=5324, + XED_IFORM_VPSRLVD_XMMdq_XMMdq_MEMdq=5325, + XED_IFORM_VPSRLVD_XMMdq_XMMdq_XMMdq=5326, + XED_IFORM_VPSRLVD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5327, + XED_IFORM_VPSRLVD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5328, + XED_IFORM_VPSRLVD_YMMqq_YMMqq_MEMqq=5329, + XED_IFORM_VPSRLVD_YMMqq_YMMqq_YMMqq=5330, + XED_IFORM_VPSRLVD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5331, + XED_IFORM_VPSRLVD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=5332, + XED_IFORM_VPSRLVD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5333, + XED_IFORM_VPSRLVD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=5334, + XED_IFORM_VPSRLVQ_XMMdq_XMMdq_MEMdq=5335, + XED_IFORM_VPSRLVQ_XMMdq_XMMdq_XMMdq=5336, + XED_IFORM_VPSRLVQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5337, + XED_IFORM_VPSRLVQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5338, + XED_IFORM_VPSRLVQ_YMMqq_YMMqq_MEMqq=5339, + XED_IFORM_VPSRLVQ_YMMqq_YMMqq_YMMqq=5340, + XED_IFORM_VPSRLVQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5341, + XED_IFORM_VPSRLVQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5342, + XED_IFORM_VPSRLVQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5343, + XED_IFORM_VPSRLVQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5344, + XED_IFORM_VPSRLVW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5345, + XED_IFORM_VPSRLVW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5346, + XED_IFORM_VPSRLVW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5347, + XED_IFORM_VPSRLVW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=5348, + XED_IFORM_VPSRLVW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5349, + XED_IFORM_VPSRLVW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=5350, + XED_IFORM_VPSRLW_XMMdq_XMMdq_IMMb=5351, + XED_IFORM_VPSRLW_XMMdq_XMMdq_MEMdq=5352, + XED_IFORM_VPSRLW_XMMdq_XMMdq_XMMdq=5353, + XED_IFORM_VPSRLW_XMMu16_MASKmskw_MEMu16_IMM8_AVX512=5354, + XED_IFORM_VPSRLW_XMMu16_MASKmskw_XMMu16_IMM8_AVX512=5355, + XED_IFORM_VPSRLW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5356, + XED_IFORM_VPSRLW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5357, + XED_IFORM_VPSRLW_YMMqq_YMMqq_IMMb=5358, + XED_IFORM_VPSRLW_YMMqq_YMMqq_MEMdq=5359, + XED_IFORM_VPSRLW_YMMqq_YMMqq_XMMq=5360, + XED_IFORM_VPSRLW_YMMu16_MASKmskw_MEMu16_IMM8_AVX512=5361, + XED_IFORM_VPSRLW_YMMu16_MASKmskw_YMMu16_IMM8_AVX512=5362, + XED_IFORM_VPSRLW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5363, + XED_IFORM_VPSRLW_YMMu16_MASKmskw_YMMu16_XMMu16_AVX512=5364, + XED_IFORM_VPSRLW_ZMMu16_MASKmskw_MEMu16_IMM8_AVX512=5365, + XED_IFORM_VPSRLW_ZMMu16_MASKmskw_ZMMu16_IMM8_AVX512=5366, + XED_IFORM_VPSRLW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5367, + XED_IFORM_VPSRLW_ZMMu16_MASKmskw_ZMMu16_XMMu16_AVX512=5368, + XED_IFORM_VPSUBB_XMMdq_XMMdq_MEMdq=5369, + XED_IFORM_VPSUBB_XMMdq_XMMdq_XMMdq=5370, + XED_IFORM_VPSUBB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=5371, + XED_IFORM_VPSUBB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=5372, + XED_IFORM_VPSUBB_YMMqq_YMMqq_MEMqq=5373, + XED_IFORM_VPSUBB_YMMqq_YMMqq_YMMqq=5374, + XED_IFORM_VPSUBB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=5375, + XED_IFORM_VPSUBB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=5376, + XED_IFORM_VPSUBB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=5377, + XED_IFORM_VPSUBB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=5378, + XED_IFORM_VPSUBD_XMMdq_XMMdq_MEMdq=5379, + XED_IFORM_VPSUBD_XMMdq_XMMdq_XMMdq=5380, + XED_IFORM_VPSUBD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5381, + XED_IFORM_VPSUBD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5382, + XED_IFORM_VPSUBD_YMMqq_YMMqq_MEMqq=5383, + XED_IFORM_VPSUBD_YMMqq_YMMqq_YMMqq=5384, + XED_IFORM_VPSUBD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5385, + XED_IFORM_VPSUBD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=5386, + XED_IFORM_VPSUBD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5387, + XED_IFORM_VPSUBD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=5388, + XED_IFORM_VPSUBQ_XMMdq_XMMdq_MEMdq=5389, + XED_IFORM_VPSUBQ_XMMdq_XMMdq_XMMdq=5390, + XED_IFORM_VPSUBQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5391, + XED_IFORM_VPSUBQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5392, + XED_IFORM_VPSUBQ_YMMqq_YMMqq_MEMqq=5393, + XED_IFORM_VPSUBQ_YMMqq_YMMqq_YMMqq=5394, + XED_IFORM_VPSUBQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5395, + XED_IFORM_VPSUBQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5396, + XED_IFORM_VPSUBQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5397, + XED_IFORM_VPSUBQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5398, + XED_IFORM_VPSUBSB_XMMdq_XMMdq_MEMdq=5399, + XED_IFORM_VPSUBSB_XMMdq_XMMdq_XMMdq=5400, + XED_IFORM_VPSUBSB_XMMi8_MASKmskw_XMMi8_MEMi8_AVX512=5401, + XED_IFORM_VPSUBSB_XMMi8_MASKmskw_XMMi8_XMMi8_AVX512=5402, + XED_IFORM_VPSUBSB_YMMi8_MASKmskw_YMMi8_MEMi8_AVX512=5403, + XED_IFORM_VPSUBSB_YMMi8_MASKmskw_YMMi8_YMMi8_AVX512=5404, + XED_IFORM_VPSUBSB_YMMqq_YMMqq_MEMqq=5405, + XED_IFORM_VPSUBSB_YMMqq_YMMqq_YMMqq=5406, + XED_IFORM_VPSUBSB_ZMMi8_MASKmskw_ZMMi8_MEMi8_AVX512=5407, + XED_IFORM_VPSUBSB_ZMMi8_MASKmskw_ZMMi8_ZMMi8_AVX512=5408, + XED_IFORM_VPSUBSW_XMMdq_XMMdq_MEMdq=5409, + XED_IFORM_VPSUBSW_XMMdq_XMMdq_XMMdq=5410, + XED_IFORM_VPSUBSW_XMMi16_MASKmskw_XMMi16_MEMi16_AVX512=5411, + XED_IFORM_VPSUBSW_XMMi16_MASKmskw_XMMi16_XMMi16_AVX512=5412, + XED_IFORM_VPSUBSW_YMMi16_MASKmskw_YMMi16_MEMi16_AVX512=5413, + XED_IFORM_VPSUBSW_YMMi16_MASKmskw_YMMi16_YMMi16_AVX512=5414, + XED_IFORM_VPSUBSW_YMMqq_YMMqq_MEMqq=5415, + XED_IFORM_VPSUBSW_YMMqq_YMMqq_YMMqq=5416, + XED_IFORM_VPSUBSW_ZMMi16_MASKmskw_ZMMi16_MEMi16_AVX512=5417, + XED_IFORM_VPSUBSW_ZMMi16_MASKmskw_ZMMi16_ZMMi16_AVX512=5418, + XED_IFORM_VPSUBUSB_XMMdq_XMMdq_MEMdq=5419, + XED_IFORM_VPSUBUSB_XMMdq_XMMdq_XMMdq=5420, + XED_IFORM_VPSUBUSB_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=5421, + XED_IFORM_VPSUBUSB_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=5422, + XED_IFORM_VPSUBUSB_YMMqq_YMMqq_MEMqq=5423, + XED_IFORM_VPSUBUSB_YMMqq_YMMqq_YMMqq=5424, + XED_IFORM_VPSUBUSB_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=5425, + XED_IFORM_VPSUBUSB_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=5426, + XED_IFORM_VPSUBUSB_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=5427, + XED_IFORM_VPSUBUSB_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=5428, + XED_IFORM_VPSUBUSW_XMMdq_XMMdq_MEMdq=5429, + XED_IFORM_VPSUBUSW_XMMdq_XMMdq_XMMdq=5430, + XED_IFORM_VPSUBUSW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5431, + XED_IFORM_VPSUBUSW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5432, + XED_IFORM_VPSUBUSW_YMMqq_YMMqq_MEMqq=5433, + XED_IFORM_VPSUBUSW_YMMqq_YMMqq_YMMqq=5434, + XED_IFORM_VPSUBUSW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5435, + XED_IFORM_VPSUBUSW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=5436, + XED_IFORM_VPSUBUSW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5437, + XED_IFORM_VPSUBUSW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=5438, + XED_IFORM_VPSUBW_XMMdq_XMMdq_MEMdq=5439, + XED_IFORM_VPSUBW_XMMdq_XMMdq_XMMdq=5440, + XED_IFORM_VPSUBW_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5441, + XED_IFORM_VPSUBW_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5442, + XED_IFORM_VPSUBW_YMMqq_YMMqq_MEMqq=5443, + XED_IFORM_VPSUBW_YMMqq_YMMqq_YMMqq=5444, + XED_IFORM_VPSUBW_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5445, + XED_IFORM_VPSUBW_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=5446, + XED_IFORM_VPSUBW_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5447, + XED_IFORM_VPSUBW_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=5448, + XED_IFORM_VPTERNLOGD_XMMu32_MASKmskw_XMMu32_MEMu32_IMM8_AVX512=5449, + XED_IFORM_VPTERNLOGD_XMMu32_MASKmskw_XMMu32_XMMu32_IMM8_AVX512=5450, + XED_IFORM_VPTERNLOGD_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512=5451, + XED_IFORM_VPTERNLOGD_YMMu32_MASKmskw_YMMu32_YMMu32_IMM8_AVX512=5452, + XED_IFORM_VPTERNLOGD_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512=5453, + XED_IFORM_VPTERNLOGD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512=5454, + XED_IFORM_VPTERNLOGQ_XMMu64_MASKmskw_XMMu64_MEMu64_IMM8_AVX512=5455, + XED_IFORM_VPTERNLOGQ_XMMu64_MASKmskw_XMMu64_XMMu64_IMM8_AVX512=5456, + XED_IFORM_VPTERNLOGQ_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512=5457, + XED_IFORM_VPTERNLOGQ_YMMu64_MASKmskw_YMMu64_YMMu64_IMM8_AVX512=5458, + XED_IFORM_VPTERNLOGQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512=5459, + XED_IFORM_VPTERNLOGQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512=5460, + XED_IFORM_VPTEST_XMMdq_MEMdq=5461, + XED_IFORM_VPTEST_XMMdq_XMMdq=5462, + XED_IFORM_VPTEST_YMMqq_MEMqq=5463, + XED_IFORM_VPTEST_YMMqq_YMMqq=5464, + XED_IFORM_VPTESTMB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512=5465, + XED_IFORM_VPTESTMB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512=5466, + XED_IFORM_VPTESTMB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512=5467, + XED_IFORM_VPTESTMB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512=5468, + XED_IFORM_VPTESTMB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512=5469, + XED_IFORM_VPTESTMB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512=5470, + XED_IFORM_VPTESTMD_MASKmskw_MASKmskw_XMMu32_MEMu32_AVX512=5471, + XED_IFORM_VPTESTMD_MASKmskw_MASKmskw_XMMu32_XMMu32_AVX512=5472, + XED_IFORM_VPTESTMD_MASKmskw_MASKmskw_YMMu32_MEMu32_AVX512=5473, + XED_IFORM_VPTESTMD_MASKmskw_MASKmskw_YMMu32_YMMu32_AVX512=5474, + XED_IFORM_VPTESTMD_MASKmskw_MASKmskw_ZMMu32_MEMu32_AVX512=5475, + XED_IFORM_VPTESTMD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_AVX512=5476, + XED_IFORM_VPTESTMQ_MASKmskw_MASKmskw_XMMu64_MEMu64_AVX512=5477, + XED_IFORM_VPTESTMQ_MASKmskw_MASKmskw_XMMu64_XMMu64_AVX512=5478, + XED_IFORM_VPTESTMQ_MASKmskw_MASKmskw_YMMu64_MEMu64_AVX512=5479, + XED_IFORM_VPTESTMQ_MASKmskw_MASKmskw_YMMu64_YMMu64_AVX512=5480, + XED_IFORM_VPTESTMQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_AVX512=5481, + XED_IFORM_VPTESTMQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_AVX512=5482, + XED_IFORM_VPTESTMW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512=5483, + XED_IFORM_VPTESTMW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512=5484, + XED_IFORM_VPTESTMW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512=5485, + XED_IFORM_VPTESTMW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512=5486, + XED_IFORM_VPTESTMW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512=5487, + XED_IFORM_VPTESTMW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512=5488, + XED_IFORM_VPTESTNMB_MASKmskw_MASKmskw_XMMu8_MEMu8_AVX512=5489, + XED_IFORM_VPTESTNMB_MASKmskw_MASKmskw_XMMu8_XMMu8_AVX512=5490, + XED_IFORM_VPTESTNMB_MASKmskw_MASKmskw_YMMu8_MEMu8_AVX512=5491, + XED_IFORM_VPTESTNMB_MASKmskw_MASKmskw_YMMu8_YMMu8_AVX512=5492, + XED_IFORM_VPTESTNMB_MASKmskw_MASKmskw_ZMMu8_MEMu8_AVX512=5493, + XED_IFORM_VPTESTNMB_MASKmskw_MASKmskw_ZMMu8_ZMMu8_AVX512=5494, + XED_IFORM_VPTESTNMD_MASKmskw_MASKmskw_XMMu32_MEMu32_AVX512=5495, + XED_IFORM_VPTESTNMD_MASKmskw_MASKmskw_XMMu32_XMMu32_AVX512=5496, + XED_IFORM_VPTESTNMD_MASKmskw_MASKmskw_YMMu32_MEMu32_AVX512=5497, + XED_IFORM_VPTESTNMD_MASKmskw_MASKmskw_YMMu32_YMMu32_AVX512=5498, + XED_IFORM_VPTESTNMD_MASKmskw_MASKmskw_ZMMu32_MEMu32_AVX512=5499, + XED_IFORM_VPTESTNMD_MASKmskw_MASKmskw_ZMMu32_ZMMu32_AVX512=5500, + XED_IFORM_VPTESTNMQ_MASKmskw_MASKmskw_XMMu64_MEMu64_AVX512=5501, + XED_IFORM_VPTESTNMQ_MASKmskw_MASKmskw_XMMu64_XMMu64_AVX512=5502, + XED_IFORM_VPTESTNMQ_MASKmskw_MASKmskw_YMMu64_MEMu64_AVX512=5503, + XED_IFORM_VPTESTNMQ_MASKmskw_MASKmskw_YMMu64_YMMu64_AVX512=5504, + XED_IFORM_VPTESTNMQ_MASKmskw_MASKmskw_ZMMu64_MEMu64_AVX512=5505, + XED_IFORM_VPTESTNMQ_MASKmskw_MASKmskw_ZMMu64_ZMMu64_AVX512=5506, + XED_IFORM_VPTESTNMW_MASKmskw_MASKmskw_XMMu16_MEMu16_AVX512=5507, + XED_IFORM_VPTESTNMW_MASKmskw_MASKmskw_XMMu16_XMMu16_AVX512=5508, + XED_IFORM_VPTESTNMW_MASKmskw_MASKmskw_YMMu16_MEMu16_AVX512=5509, + XED_IFORM_VPTESTNMW_MASKmskw_MASKmskw_YMMu16_YMMu16_AVX512=5510, + XED_IFORM_VPTESTNMW_MASKmskw_MASKmskw_ZMMu16_MEMu16_AVX512=5511, + XED_IFORM_VPTESTNMW_MASKmskw_MASKmskw_ZMMu16_ZMMu16_AVX512=5512, + XED_IFORM_VPUNPCKHBW_XMMdq_XMMdq_MEMdq=5513, + XED_IFORM_VPUNPCKHBW_XMMdq_XMMdq_XMMdq=5514, + XED_IFORM_VPUNPCKHBW_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=5515, + XED_IFORM_VPUNPCKHBW_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=5516, + XED_IFORM_VPUNPCKHBW_YMMqq_YMMqq_MEMqq=5517, + XED_IFORM_VPUNPCKHBW_YMMqq_YMMqq_YMMqq=5518, + XED_IFORM_VPUNPCKHBW_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=5519, + XED_IFORM_VPUNPCKHBW_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=5520, + XED_IFORM_VPUNPCKHBW_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=5521, + XED_IFORM_VPUNPCKHBW_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=5522, + XED_IFORM_VPUNPCKHDQ_XMMdq_XMMdq_MEMdq=5523, + XED_IFORM_VPUNPCKHDQ_XMMdq_XMMdq_XMMdq=5524, + XED_IFORM_VPUNPCKHDQ_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5525, + XED_IFORM_VPUNPCKHDQ_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5526, + XED_IFORM_VPUNPCKHDQ_YMMqq_YMMqq_MEMqq=5527, + XED_IFORM_VPUNPCKHDQ_YMMqq_YMMqq_YMMqq=5528, + XED_IFORM_VPUNPCKHDQ_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5529, + XED_IFORM_VPUNPCKHDQ_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=5530, + XED_IFORM_VPUNPCKHDQ_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5531, + XED_IFORM_VPUNPCKHDQ_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=5532, + XED_IFORM_VPUNPCKHQDQ_XMMdq_XMMdq_MEMdq=5533, + XED_IFORM_VPUNPCKHQDQ_XMMdq_XMMdq_XMMdq=5534, + XED_IFORM_VPUNPCKHQDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5535, + XED_IFORM_VPUNPCKHQDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5536, + XED_IFORM_VPUNPCKHQDQ_YMMqq_YMMqq_MEMqq=5537, + XED_IFORM_VPUNPCKHQDQ_YMMqq_YMMqq_YMMqq=5538, + XED_IFORM_VPUNPCKHQDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5539, + XED_IFORM_VPUNPCKHQDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5540, + XED_IFORM_VPUNPCKHQDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5541, + XED_IFORM_VPUNPCKHQDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5542, + XED_IFORM_VPUNPCKHWD_XMMdq_XMMdq_MEMdq=5543, + XED_IFORM_VPUNPCKHWD_XMMdq_XMMdq_XMMdq=5544, + XED_IFORM_VPUNPCKHWD_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5545, + XED_IFORM_VPUNPCKHWD_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5546, + XED_IFORM_VPUNPCKHWD_YMMqq_YMMqq_MEMqq=5547, + XED_IFORM_VPUNPCKHWD_YMMqq_YMMqq_YMMqq=5548, + XED_IFORM_VPUNPCKHWD_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5549, + XED_IFORM_VPUNPCKHWD_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=5550, + XED_IFORM_VPUNPCKHWD_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5551, + XED_IFORM_VPUNPCKHWD_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=5552, + XED_IFORM_VPUNPCKLBW_XMMdq_XMMdq_MEMdq=5553, + XED_IFORM_VPUNPCKLBW_XMMdq_XMMdq_XMMdq=5554, + XED_IFORM_VPUNPCKLBW_XMMu8_MASKmskw_XMMu8_MEMu8_AVX512=5555, + XED_IFORM_VPUNPCKLBW_XMMu8_MASKmskw_XMMu8_XMMu8_AVX512=5556, + XED_IFORM_VPUNPCKLBW_YMMqq_YMMqq_MEMqq=5557, + XED_IFORM_VPUNPCKLBW_YMMqq_YMMqq_YMMqq=5558, + XED_IFORM_VPUNPCKLBW_YMMu8_MASKmskw_YMMu8_MEMu8_AVX512=5559, + XED_IFORM_VPUNPCKLBW_YMMu8_MASKmskw_YMMu8_YMMu8_AVX512=5560, + XED_IFORM_VPUNPCKLBW_ZMMu8_MASKmskw_ZMMu8_MEMu8_AVX512=5561, + XED_IFORM_VPUNPCKLBW_ZMMu8_MASKmskw_ZMMu8_ZMMu8_AVX512=5562, + XED_IFORM_VPUNPCKLDQ_XMMdq_XMMdq_MEMdq=5563, + XED_IFORM_VPUNPCKLDQ_XMMdq_XMMdq_XMMdq=5564, + XED_IFORM_VPUNPCKLDQ_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5565, + XED_IFORM_VPUNPCKLDQ_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5566, + XED_IFORM_VPUNPCKLDQ_YMMqq_YMMqq_MEMqq=5567, + XED_IFORM_VPUNPCKLDQ_YMMqq_YMMqq_YMMqq=5568, + XED_IFORM_VPUNPCKLDQ_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5569, + XED_IFORM_VPUNPCKLDQ_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=5570, + XED_IFORM_VPUNPCKLDQ_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5571, + XED_IFORM_VPUNPCKLDQ_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=5572, + XED_IFORM_VPUNPCKLQDQ_XMMdq_XMMdq_MEMdq=5573, + XED_IFORM_VPUNPCKLQDQ_XMMdq_XMMdq_XMMdq=5574, + XED_IFORM_VPUNPCKLQDQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5575, + XED_IFORM_VPUNPCKLQDQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5576, + XED_IFORM_VPUNPCKLQDQ_YMMqq_YMMqq_MEMqq=5577, + XED_IFORM_VPUNPCKLQDQ_YMMqq_YMMqq_YMMqq=5578, + XED_IFORM_VPUNPCKLQDQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5579, + XED_IFORM_VPUNPCKLQDQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5580, + XED_IFORM_VPUNPCKLQDQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5581, + XED_IFORM_VPUNPCKLQDQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5582, + XED_IFORM_VPUNPCKLWD_XMMdq_XMMdq_MEMdq=5583, + XED_IFORM_VPUNPCKLWD_XMMdq_XMMdq_XMMdq=5584, + XED_IFORM_VPUNPCKLWD_XMMu16_MASKmskw_XMMu16_MEMu16_AVX512=5585, + XED_IFORM_VPUNPCKLWD_XMMu16_MASKmskw_XMMu16_XMMu16_AVX512=5586, + XED_IFORM_VPUNPCKLWD_YMMqq_YMMqq_MEMqq=5587, + XED_IFORM_VPUNPCKLWD_YMMqq_YMMqq_YMMqq=5588, + XED_IFORM_VPUNPCKLWD_YMMu16_MASKmskw_YMMu16_MEMu16_AVX512=5589, + XED_IFORM_VPUNPCKLWD_YMMu16_MASKmskw_YMMu16_YMMu16_AVX512=5590, + XED_IFORM_VPUNPCKLWD_ZMMu16_MASKmskw_ZMMu16_MEMu16_AVX512=5591, + XED_IFORM_VPUNPCKLWD_ZMMu16_MASKmskw_ZMMu16_ZMMu16_AVX512=5592, + XED_IFORM_VPXOR_XMMdq_XMMdq_MEMdq=5593, + XED_IFORM_VPXOR_XMMdq_XMMdq_XMMdq=5594, + XED_IFORM_VPXOR_YMMqq_YMMqq_MEMqq=5595, + XED_IFORM_VPXOR_YMMqq_YMMqq_YMMqq=5596, + XED_IFORM_VPXORD_XMMu32_MASKmskw_XMMu32_MEMu32_AVX512=5597, + XED_IFORM_VPXORD_XMMu32_MASKmskw_XMMu32_XMMu32_AVX512=5598, + XED_IFORM_VPXORD_YMMu32_MASKmskw_YMMu32_MEMu32_AVX512=5599, + XED_IFORM_VPXORD_YMMu32_MASKmskw_YMMu32_YMMu32_AVX512=5600, + XED_IFORM_VPXORD_ZMMu32_MASKmskw_ZMMu32_MEMu32_AVX512=5601, + XED_IFORM_VPXORD_ZMMu32_MASKmskw_ZMMu32_ZMMu32_AVX512=5602, + XED_IFORM_VPXORQ_XMMu64_MASKmskw_XMMu64_MEMu64_AVX512=5603, + XED_IFORM_VPXORQ_XMMu64_MASKmskw_XMMu64_XMMu64_AVX512=5604, + XED_IFORM_VPXORQ_YMMu64_MASKmskw_YMMu64_MEMu64_AVX512=5605, + XED_IFORM_VPXORQ_YMMu64_MASKmskw_YMMu64_YMMu64_AVX512=5606, + XED_IFORM_VPXORQ_ZMMu64_MASKmskw_ZMMu64_MEMu64_AVX512=5607, + XED_IFORM_VPXORQ_ZMMu64_MASKmskw_ZMMu64_ZMMu64_AVX512=5608, + XED_IFORM_VRANGEPD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=5609, + XED_IFORM_VRANGEPD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=5610, + XED_IFORM_VRANGEPD_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512=5611, + XED_IFORM_VRANGEPD_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512=5612, + XED_IFORM_VRANGEPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512=5613, + XED_IFORM_VRANGEPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512=5614, + XED_IFORM_VRANGEPS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=5615, + XED_IFORM_VRANGEPS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=5616, + XED_IFORM_VRANGEPS_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512=5617, + XED_IFORM_VRANGEPS_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512=5618, + XED_IFORM_VRANGEPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512=5619, + XED_IFORM_VRANGEPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512=5620, + XED_IFORM_VRANGESD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=5621, + XED_IFORM_VRANGESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=5622, + XED_IFORM_VRANGESS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=5623, + XED_IFORM_VRANGESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=5624, + XED_IFORM_VRCP14PD_XMMf64_MASKmskw_MEMf64_AVX512=5625, + XED_IFORM_VRCP14PD_XMMf64_MASKmskw_XMMf64_AVX512=5626, + XED_IFORM_VRCP14PD_YMMf64_MASKmskw_MEMf64_AVX512=5627, + XED_IFORM_VRCP14PD_YMMf64_MASKmskw_YMMf64_AVX512=5628, + XED_IFORM_VRCP14PD_ZMMf64_MASKmskw_MEMf64_AVX512=5629, + XED_IFORM_VRCP14PD_ZMMf64_MASKmskw_ZMMf64_AVX512=5630, + XED_IFORM_VRCP14PS_XMMf32_MASKmskw_MEMf32_AVX512=5631, + XED_IFORM_VRCP14PS_XMMf32_MASKmskw_XMMf32_AVX512=5632, + XED_IFORM_VRCP14PS_YMMf32_MASKmskw_MEMf32_AVX512=5633, + XED_IFORM_VRCP14PS_YMMf32_MASKmskw_YMMf32_AVX512=5634, + XED_IFORM_VRCP14PS_ZMMf32_MASKmskw_MEMf32_AVX512=5635, + XED_IFORM_VRCP14PS_ZMMf32_MASKmskw_ZMMf32_AVX512=5636, + XED_IFORM_VRCP14SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5637, + XED_IFORM_VRCP14SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5638, + XED_IFORM_VRCP14SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5639, + XED_IFORM_VRCP14SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5640, + XED_IFORM_VRCP28PD_ZMMf64_MASKmskw_MEMf64_AVX512ER=5641, + XED_IFORM_VRCP28PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER=5642, + XED_IFORM_VRCP28PS_ZMMf32_MASKmskw_MEMf32_AVX512ER=5643, + XED_IFORM_VRCP28PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER=5644, + XED_IFORM_VRCP28SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512ER=5645, + XED_IFORM_VRCP28SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512ER=5646, + XED_IFORM_VRCP28SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512ER=5647, + XED_IFORM_VRCP28SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512ER=5648, + XED_IFORM_VRCPPS_XMMdq_MEMdq=5649, + XED_IFORM_VRCPPS_XMMdq_XMMdq=5650, + XED_IFORM_VRCPPS_YMMqq_MEMqq=5651, + XED_IFORM_VRCPPS_YMMqq_YMMqq=5652, + XED_IFORM_VRCPSS_XMMdq_XMMdq_MEMd=5653, + XED_IFORM_VRCPSS_XMMdq_XMMdq_XMMd=5654, + XED_IFORM_VREDUCEPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512=5655, + XED_IFORM_VREDUCEPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512=5656, + XED_IFORM_VREDUCEPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512=5657, + XED_IFORM_VREDUCEPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512=5658, + XED_IFORM_VREDUCEPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512=5659, + XED_IFORM_VREDUCEPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512=5660, + XED_IFORM_VREDUCEPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512=5661, + XED_IFORM_VREDUCEPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512=5662, + XED_IFORM_VREDUCEPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512=5663, + XED_IFORM_VREDUCEPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512=5664, + XED_IFORM_VREDUCEPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512=5665, + XED_IFORM_VREDUCEPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512=5666, + XED_IFORM_VREDUCESD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=5667, + XED_IFORM_VREDUCESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=5668, + XED_IFORM_VREDUCESS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=5669, + XED_IFORM_VREDUCESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=5670, + XED_IFORM_VRNDSCALEPD_XMMf64_MASKmskw_MEMf64_IMM8_AVX512=5671, + XED_IFORM_VRNDSCALEPD_XMMf64_MASKmskw_XMMf64_IMM8_AVX512=5672, + XED_IFORM_VRNDSCALEPD_YMMf64_MASKmskw_MEMf64_IMM8_AVX512=5673, + XED_IFORM_VRNDSCALEPD_YMMf64_MASKmskw_YMMf64_IMM8_AVX512=5674, + XED_IFORM_VRNDSCALEPD_ZMMf64_MASKmskw_MEMf64_IMM8_AVX512=5675, + XED_IFORM_VRNDSCALEPD_ZMMf64_MASKmskw_ZMMf64_IMM8_AVX512=5676, + XED_IFORM_VRNDSCALEPS_XMMf32_MASKmskw_MEMf32_IMM8_AVX512=5677, + XED_IFORM_VRNDSCALEPS_XMMf32_MASKmskw_XMMf32_IMM8_AVX512=5678, + XED_IFORM_VRNDSCALEPS_YMMf32_MASKmskw_MEMf32_IMM8_AVX512=5679, + XED_IFORM_VRNDSCALEPS_YMMf32_MASKmskw_YMMf32_IMM8_AVX512=5680, + XED_IFORM_VRNDSCALEPS_ZMMf32_MASKmskw_MEMf32_IMM8_AVX512=5681, + XED_IFORM_VRNDSCALEPS_ZMMf32_MASKmskw_ZMMf32_IMM8_AVX512=5682, + XED_IFORM_VRNDSCALESD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=5683, + XED_IFORM_VRNDSCALESD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=5684, + XED_IFORM_VRNDSCALESS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=5685, + XED_IFORM_VRNDSCALESS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=5686, + XED_IFORM_VROUNDPD_XMMdq_MEMdq_IMMb=5687, + XED_IFORM_VROUNDPD_XMMdq_XMMdq_IMMb=5688, + XED_IFORM_VROUNDPD_YMMqq_MEMqq_IMMb=5689, + XED_IFORM_VROUNDPD_YMMqq_YMMqq_IMMb=5690, + XED_IFORM_VROUNDPS_XMMdq_MEMdq_IMMb=5691, + XED_IFORM_VROUNDPS_XMMdq_XMMdq_IMMb=5692, + XED_IFORM_VROUNDPS_YMMqq_MEMqq_IMMb=5693, + XED_IFORM_VROUNDPS_YMMqq_YMMqq_IMMb=5694, + XED_IFORM_VROUNDSD_XMMdq_XMMdq_MEMq_IMMb=5695, + XED_IFORM_VROUNDSD_XMMdq_XMMdq_XMMq_IMMb=5696, + XED_IFORM_VROUNDSS_XMMdq_XMMdq_MEMd_IMMb=5697, + XED_IFORM_VROUNDSS_XMMdq_XMMdq_XMMd_IMMb=5698, + XED_IFORM_VRSQRT14PD_XMMf64_MASKmskw_MEMf64_AVX512=5699, + XED_IFORM_VRSQRT14PD_XMMf64_MASKmskw_XMMf64_AVX512=5700, + XED_IFORM_VRSQRT14PD_YMMf64_MASKmskw_MEMf64_AVX512=5701, + XED_IFORM_VRSQRT14PD_YMMf64_MASKmskw_YMMf64_AVX512=5702, + XED_IFORM_VRSQRT14PD_ZMMf64_MASKmskw_MEMf64_AVX512=5703, + XED_IFORM_VRSQRT14PD_ZMMf64_MASKmskw_ZMMf64_AVX512=5704, + XED_IFORM_VRSQRT14PS_XMMf32_MASKmskw_MEMf32_AVX512=5705, + XED_IFORM_VRSQRT14PS_XMMf32_MASKmskw_XMMf32_AVX512=5706, + XED_IFORM_VRSQRT14PS_YMMf32_MASKmskw_MEMf32_AVX512=5707, + XED_IFORM_VRSQRT14PS_YMMf32_MASKmskw_YMMf32_AVX512=5708, + XED_IFORM_VRSQRT14PS_ZMMf32_MASKmskw_MEMf32_AVX512=5709, + XED_IFORM_VRSQRT14PS_ZMMf32_MASKmskw_ZMMf32_AVX512=5710, + XED_IFORM_VRSQRT14SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5711, + XED_IFORM_VRSQRT14SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5712, + XED_IFORM_VRSQRT14SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5713, + XED_IFORM_VRSQRT14SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5714, + XED_IFORM_VRSQRT28PD_ZMMf64_MASKmskw_MEMf64_AVX512ER=5715, + XED_IFORM_VRSQRT28PD_ZMMf64_MASKmskw_ZMMf64_AVX512ER=5716, + XED_IFORM_VRSQRT28PS_ZMMf32_MASKmskw_MEMf32_AVX512ER=5717, + XED_IFORM_VRSQRT28PS_ZMMf32_MASKmskw_ZMMf32_AVX512ER=5718, + XED_IFORM_VRSQRT28SD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512ER=5719, + XED_IFORM_VRSQRT28SD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512ER=5720, + XED_IFORM_VRSQRT28SS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512ER=5721, + XED_IFORM_VRSQRT28SS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512ER=5722, + XED_IFORM_VRSQRTPS_XMMdq_MEMdq=5723, + XED_IFORM_VRSQRTPS_XMMdq_XMMdq=5724, + XED_IFORM_VRSQRTPS_YMMqq_MEMqq=5725, + XED_IFORM_VRSQRTPS_YMMqq_YMMqq=5726, + XED_IFORM_VRSQRTSS_XMMdq_XMMdq_MEMd=5727, + XED_IFORM_VRSQRTSS_XMMdq_XMMdq_XMMd=5728, + XED_IFORM_VSCALEFPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5729, + XED_IFORM_VSCALEFPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5730, + XED_IFORM_VSCALEFPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=5731, + XED_IFORM_VSCALEFPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=5732, + XED_IFORM_VSCALEFPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=5733, + XED_IFORM_VSCALEFPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=5734, + XED_IFORM_VSCALEFPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5735, + XED_IFORM_VSCALEFPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5736, + XED_IFORM_VSCALEFPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=5737, + XED_IFORM_VSCALEFPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=5738, + XED_IFORM_VSCALEFPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=5739, + XED_IFORM_VSCALEFPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=5740, + XED_IFORM_VSCALEFSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5741, + XED_IFORM_VSCALEFSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5742, + XED_IFORM_VSCALEFSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5743, + XED_IFORM_VSCALEFSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5744, + XED_IFORM_VSCATTERDPD_MEMf64_MASKmskw_XMMf64_AVX512_VL128=5745, + XED_IFORM_VSCATTERDPD_MEMf64_MASKmskw_YMMf64_AVX512_VL256=5746, + XED_IFORM_VSCATTERDPD_MEMf64_MASKmskw_ZMMf64_AVX512_VL512=5747, + XED_IFORM_VSCATTERDPS_MEMf32_MASKmskw_XMMf32_AVX512_VL128=5748, + XED_IFORM_VSCATTERDPS_MEMf32_MASKmskw_YMMf32_AVX512_VL256=5749, + XED_IFORM_VSCATTERDPS_MEMf32_MASKmskw_ZMMf32_AVX512_VL512=5750, + XED_IFORM_VSCATTERPF0DPD_MEMf64_MASKmskw_AVX512PF_VL512=5751, + XED_IFORM_VSCATTERPF0DPS_MEMf32_MASKmskw_AVX512PF_VL512=5752, + XED_IFORM_VSCATTERPF0QPD_MEMf64_MASKmskw_AVX512PF_VL512=5753, + XED_IFORM_VSCATTERPF0QPS_MEMf32_MASKmskw_AVX512PF_VL512=5754, + XED_IFORM_VSCATTERPF1DPD_MEMf64_MASKmskw_AVX512PF_VL512=5755, + XED_IFORM_VSCATTERPF1DPS_MEMf32_MASKmskw_AVX512PF_VL512=5756, + XED_IFORM_VSCATTERPF1QPD_MEMf64_MASKmskw_AVX512PF_VL512=5757, + XED_IFORM_VSCATTERPF1QPS_MEMf32_MASKmskw_AVX512PF_VL512=5758, + XED_IFORM_VSCATTERQPD_MEMf64_MASKmskw_XMMf64_AVX512_VL128=5759, + XED_IFORM_VSCATTERQPD_MEMf64_MASKmskw_YMMf64_AVX512_VL256=5760, + XED_IFORM_VSCATTERQPD_MEMf64_MASKmskw_ZMMf64_AVX512_VL512=5761, + XED_IFORM_VSCATTERQPS_MEMf32_MASKmskw_XMMf32_AVX512_VL128=5762, + XED_IFORM_VSCATTERQPS_MEMf32_MASKmskw_XMMf32_AVX512_VL256=5763, + XED_IFORM_VSCATTERQPS_MEMf32_MASKmskw_YMMf32_AVX512_VL512=5764, + XED_IFORM_VSHUFF32X4_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512=5765, + XED_IFORM_VSHUFF32X4_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512=5766, + XED_IFORM_VSHUFF32X4_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512=5767, + XED_IFORM_VSHUFF32X4_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512=5768, + XED_IFORM_VSHUFF64X2_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512=5769, + XED_IFORM_VSHUFF64X2_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512=5770, + XED_IFORM_VSHUFF64X2_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512=5771, + XED_IFORM_VSHUFF64X2_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512=5772, + XED_IFORM_VSHUFI32X4_YMMu32_MASKmskw_YMMu32_MEMu32_IMM8_AVX512=5773, + XED_IFORM_VSHUFI32X4_YMMu32_MASKmskw_YMMu32_YMMu32_IMM8_AVX512=5774, + XED_IFORM_VSHUFI32X4_ZMMu32_MASKmskw_ZMMu32_MEMu32_IMM8_AVX512=5775, + XED_IFORM_VSHUFI32X4_ZMMu32_MASKmskw_ZMMu32_ZMMu32_IMM8_AVX512=5776, + XED_IFORM_VSHUFI64X2_YMMu64_MASKmskw_YMMu64_MEMu64_IMM8_AVX512=5777, + XED_IFORM_VSHUFI64X2_YMMu64_MASKmskw_YMMu64_YMMu64_IMM8_AVX512=5778, + XED_IFORM_VSHUFI64X2_ZMMu64_MASKmskw_ZMMu64_MEMu64_IMM8_AVX512=5779, + XED_IFORM_VSHUFI64X2_ZMMu64_MASKmskw_ZMMu64_ZMMu64_IMM8_AVX512=5780, + XED_IFORM_VSHUFPD_XMMdq_XMMdq_MEMdq_IMMb=5781, + XED_IFORM_VSHUFPD_XMMdq_XMMdq_XMMdq_IMMb=5782, + XED_IFORM_VSHUFPD_XMMf64_MASKmskw_XMMf64_MEMf64_IMM8_AVX512=5783, + XED_IFORM_VSHUFPD_XMMf64_MASKmskw_XMMf64_XMMf64_IMM8_AVX512=5784, + XED_IFORM_VSHUFPD_YMMf64_MASKmskw_YMMf64_MEMf64_IMM8_AVX512=5785, + XED_IFORM_VSHUFPD_YMMf64_MASKmskw_YMMf64_YMMf64_IMM8_AVX512=5786, + XED_IFORM_VSHUFPD_YMMqq_YMMqq_MEMqq_IMMb=5787, + XED_IFORM_VSHUFPD_YMMqq_YMMqq_YMMqq_IMMb=5788, + XED_IFORM_VSHUFPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_IMM8_AVX512=5789, + XED_IFORM_VSHUFPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_IMM8_AVX512=5790, + XED_IFORM_VSHUFPS_XMMdq_XMMdq_MEMdq_IMMb=5791, + XED_IFORM_VSHUFPS_XMMdq_XMMdq_XMMdq_IMMb=5792, + XED_IFORM_VSHUFPS_XMMf32_MASKmskw_XMMf32_MEMf32_IMM8_AVX512=5793, + XED_IFORM_VSHUFPS_XMMf32_MASKmskw_XMMf32_XMMf32_IMM8_AVX512=5794, + XED_IFORM_VSHUFPS_YMMf32_MASKmskw_YMMf32_MEMf32_IMM8_AVX512=5795, + XED_IFORM_VSHUFPS_YMMf32_MASKmskw_YMMf32_YMMf32_IMM8_AVX512=5796, + XED_IFORM_VSHUFPS_YMMqq_YMMqq_MEMqq_IMMb=5797, + XED_IFORM_VSHUFPS_YMMqq_YMMqq_YMMqq_IMMb=5798, + XED_IFORM_VSHUFPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_IMM8_AVX512=5799, + XED_IFORM_VSHUFPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_IMM8_AVX512=5800, + XED_IFORM_VSQRTPD_XMMdq_MEMdq=5801, + XED_IFORM_VSQRTPD_XMMdq_XMMdq=5802, + XED_IFORM_VSQRTPD_XMMf64_MASKmskw_MEMf64_AVX512=5803, + XED_IFORM_VSQRTPD_XMMf64_MASKmskw_XMMf64_AVX512=5804, + XED_IFORM_VSQRTPD_YMMf64_MASKmskw_MEMf64_AVX512=5805, + XED_IFORM_VSQRTPD_YMMf64_MASKmskw_YMMf64_AVX512=5806, + XED_IFORM_VSQRTPD_YMMqq_MEMqq=5807, + XED_IFORM_VSQRTPD_YMMqq_YMMqq=5808, + XED_IFORM_VSQRTPD_ZMMf64_MASKmskw_MEMf64_AVX512=5809, + XED_IFORM_VSQRTPD_ZMMf64_MASKmskw_ZMMf64_AVX512=5810, + XED_IFORM_VSQRTPS_XMMdq_MEMdq=5811, + XED_IFORM_VSQRTPS_XMMdq_XMMdq=5812, + XED_IFORM_VSQRTPS_XMMf32_MASKmskw_MEMf32_AVX512=5813, + XED_IFORM_VSQRTPS_XMMf32_MASKmskw_XMMf32_AVX512=5814, + XED_IFORM_VSQRTPS_YMMf32_MASKmskw_MEMf32_AVX512=5815, + XED_IFORM_VSQRTPS_YMMf32_MASKmskw_YMMf32_AVX512=5816, + XED_IFORM_VSQRTPS_YMMqq_MEMqq=5817, + XED_IFORM_VSQRTPS_YMMqq_YMMqq=5818, + XED_IFORM_VSQRTPS_ZMMf32_MASKmskw_MEMf32_AVX512=5819, + XED_IFORM_VSQRTPS_ZMMf32_MASKmskw_ZMMf32_AVX512=5820, + XED_IFORM_VSQRTSD_XMMdq_XMMdq_MEMq=5821, + XED_IFORM_VSQRTSD_XMMdq_XMMdq_XMMq=5822, + XED_IFORM_VSQRTSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5823, + XED_IFORM_VSQRTSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5824, + XED_IFORM_VSQRTSS_XMMdq_XMMdq_MEMd=5825, + XED_IFORM_VSQRTSS_XMMdq_XMMdq_XMMd=5826, + XED_IFORM_VSQRTSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5827, + XED_IFORM_VSQRTSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5828, + XED_IFORM_VSTMXCSR_MEMd=5829, + XED_IFORM_VSUBPD_XMMdq_XMMdq_MEMdq=5830, + XED_IFORM_VSUBPD_XMMdq_XMMdq_XMMdq=5831, + XED_IFORM_VSUBPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5832, + XED_IFORM_VSUBPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5833, + XED_IFORM_VSUBPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=5834, + XED_IFORM_VSUBPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=5835, + XED_IFORM_VSUBPD_YMMqq_YMMqq_MEMqq=5836, + XED_IFORM_VSUBPD_YMMqq_YMMqq_YMMqq=5837, + XED_IFORM_VSUBPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=5838, + XED_IFORM_VSUBPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=5839, + XED_IFORM_VSUBPS_XMMdq_XMMdq_MEMdq=5840, + XED_IFORM_VSUBPS_XMMdq_XMMdq_XMMdq=5841, + XED_IFORM_VSUBPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5842, + XED_IFORM_VSUBPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5843, + XED_IFORM_VSUBPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=5844, + XED_IFORM_VSUBPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=5845, + XED_IFORM_VSUBPS_YMMqq_YMMqq_MEMqq=5846, + XED_IFORM_VSUBPS_YMMqq_YMMqq_YMMqq=5847, + XED_IFORM_VSUBPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=5848, + XED_IFORM_VSUBPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=5849, + XED_IFORM_VSUBSD_XMMdq_XMMdq_MEMq=5850, + XED_IFORM_VSUBSD_XMMdq_XMMdq_XMMq=5851, + XED_IFORM_VSUBSD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5852, + XED_IFORM_VSUBSD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5853, + XED_IFORM_VSUBSS_XMMdq_XMMdq_MEMd=5854, + XED_IFORM_VSUBSS_XMMdq_XMMdq_XMMd=5855, + XED_IFORM_VSUBSS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5856, + XED_IFORM_VSUBSS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5857, + XED_IFORM_VTESTPD_XMMdq_MEMdq=5858, + XED_IFORM_VTESTPD_XMMdq_XMMdq=5859, + XED_IFORM_VTESTPD_YMMqq_MEMqq=5860, + XED_IFORM_VTESTPD_YMMqq_YMMqq=5861, + XED_IFORM_VTESTPS_XMMdq_MEMdq=5862, + XED_IFORM_VTESTPS_XMMdq_XMMdq=5863, + XED_IFORM_VTESTPS_YMMqq_MEMqq=5864, + XED_IFORM_VTESTPS_YMMqq_YMMqq=5865, + XED_IFORM_VUCOMISD_XMMdq_MEMq=5866, + XED_IFORM_VUCOMISD_XMMdq_XMMq=5867, + XED_IFORM_VUCOMISD_XMMf64_MEMf64_AVX512=5868, + XED_IFORM_VUCOMISD_XMMf64_XMMf64_AVX512=5869, + XED_IFORM_VUCOMISS_XMMdq_MEMd=5870, + XED_IFORM_VUCOMISS_XMMdq_XMMd=5871, + XED_IFORM_VUCOMISS_XMMf32_MEMf32_AVX512=5872, + XED_IFORM_VUCOMISS_XMMf32_XMMf32_AVX512=5873, + XED_IFORM_VUNPCKHPD_XMMdq_XMMdq_MEMdq=5874, + XED_IFORM_VUNPCKHPD_XMMdq_XMMdq_XMMdq=5875, + XED_IFORM_VUNPCKHPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5876, + XED_IFORM_VUNPCKHPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5877, + XED_IFORM_VUNPCKHPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=5878, + XED_IFORM_VUNPCKHPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=5879, + XED_IFORM_VUNPCKHPD_YMMqq_YMMqq_MEMqq=5880, + XED_IFORM_VUNPCKHPD_YMMqq_YMMqq_YMMqq=5881, + XED_IFORM_VUNPCKHPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=5882, + XED_IFORM_VUNPCKHPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=5883, + XED_IFORM_VUNPCKHPS_XMMdq_XMMdq_MEMdq=5884, + XED_IFORM_VUNPCKHPS_XMMdq_XMMdq_XMMdq=5885, + XED_IFORM_VUNPCKHPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5886, + XED_IFORM_VUNPCKHPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5887, + XED_IFORM_VUNPCKHPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=5888, + XED_IFORM_VUNPCKHPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=5889, + XED_IFORM_VUNPCKHPS_YMMqq_YMMqq_MEMqq=5890, + XED_IFORM_VUNPCKHPS_YMMqq_YMMqq_YMMqq=5891, + XED_IFORM_VUNPCKHPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=5892, + XED_IFORM_VUNPCKHPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=5893, + XED_IFORM_VUNPCKLPD_XMMdq_XMMdq_MEMdq=5894, + XED_IFORM_VUNPCKLPD_XMMdq_XMMdq_XMMdq=5895, + XED_IFORM_VUNPCKLPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5896, + XED_IFORM_VUNPCKLPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5897, + XED_IFORM_VUNPCKLPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=5898, + XED_IFORM_VUNPCKLPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=5899, + XED_IFORM_VUNPCKLPD_YMMqq_YMMqq_MEMqq=5900, + XED_IFORM_VUNPCKLPD_YMMqq_YMMqq_YMMqq=5901, + XED_IFORM_VUNPCKLPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=5902, + XED_IFORM_VUNPCKLPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=5903, + XED_IFORM_VUNPCKLPS_XMMdq_XMMdq_MEMdq=5904, + XED_IFORM_VUNPCKLPS_XMMdq_XMMdq_XMMdq=5905, + XED_IFORM_VUNPCKLPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5906, + XED_IFORM_VUNPCKLPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5907, + XED_IFORM_VUNPCKLPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=5908, + XED_IFORM_VUNPCKLPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=5909, + XED_IFORM_VUNPCKLPS_YMMqq_YMMqq_MEMqq=5910, + XED_IFORM_VUNPCKLPS_YMMqq_YMMqq_YMMqq=5911, + XED_IFORM_VUNPCKLPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=5912, + XED_IFORM_VUNPCKLPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=5913, + XED_IFORM_VXORPD_XMMdq_XMMdq_MEMdq=5914, + XED_IFORM_VXORPD_XMMdq_XMMdq_XMMdq=5915, + XED_IFORM_VXORPD_XMMf64_MASKmskw_XMMf64_MEMf64_AVX512=5916, + XED_IFORM_VXORPD_XMMf64_MASKmskw_XMMf64_XMMf64_AVX512=5917, + XED_IFORM_VXORPD_YMMf64_MASKmskw_YMMf64_MEMf64_AVX512=5918, + XED_IFORM_VXORPD_YMMf64_MASKmskw_YMMf64_YMMf64_AVX512=5919, + XED_IFORM_VXORPD_YMMqq_YMMqq_MEMqq=5920, + XED_IFORM_VXORPD_YMMqq_YMMqq_YMMqq=5921, + XED_IFORM_VXORPD_ZMMf64_MASKmskw_ZMMf64_MEMf64_AVX512=5922, + XED_IFORM_VXORPD_ZMMf64_MASKmskw_ZMMf64_ZMMf64_AVX512=5923, + XED_IFORM_VXORPS_XMMdq_XMMdq_MEMdq=5924, + XED_IFORM_VXORPS_XMMdq_XMMdq_XMMdq=5925, + XED_IFORM_VXORPS_XMMf32_MASKmskw_XMMf32_MEMf32_AVX512=5926, + XED_IFORM_VXORPS_XMMf32_MASKmskw_XMMf32_XMMf32_AVX512=5927, + XED_IFORM_VXORPS_YMMf32_MASKmskw_YMMf32_MEMf32_AVX512=5928, + XED_IFORM_VXORPS_YMMf32_MASKmskw_YMMf32_YMMf32_AVX512=5929, + XED_IFORM_VXORPS_YMMqq_YMMqq_MEMqq=5930, + XED_IFORM_VXORPS_YMMqq_YMMqq_YMMqq=5931, + XED_IFORM_VXORPS_ZMMf32_MASKmskw_ZMMf32_MEMf32_AVX512=5932, + XED_IFORM_VXORPS_ZMMf32_MASKmskw_ZMMf32_ZMMf32_AVX512=5933, + XED_IFORM_VZEROALL=5934, + XED_IFORM_VZEROUPPER=5935, + XED_IFORM_WBINVD=5936, + XED_IFORM_WRFSBASE_GPRy=5937, + XED_IFORM_WRGSBASE_GPRy=5938, + XED_IFORM_WRMSR=5939, + XED_IFORM_XABORT_IMMb=5940, + XED_IFORM_XADD_GPR8_GPR8=5941, + XED_IFORM_XADD_GPRv_GPRv=5942, + XED_IFORM_XADD_MEMb_GPR8=5943, + XED_IFORM_XADD_MEMv_GPRv=5944, + XED_IFORM_XADD_LOCK_MEMb_GPR8=5945, + XED_IFORM_XADD_LOCK_MEMv_GPRv=5946, + XED_IFORM_XBEGIN_RELBRz=5947, + XED_IFORM_XCHG_GPR8_GPR8=5948, + XED_IFORM_XCHG_GPRv_GPRv=5949, + XED_IFORM_XCHG_GPRv_OrAX=5950, + XED_IFORM_XCHG_MEMb_GPR8=5951, + XED_IFORM_XCHG_MEMv_GPRv=5952, + XED_IFORM_XEND=5953, + XED_IFORM_XGETBV=5954, + XED_IFORM_XLAT=5955, + XED_IFORM_XOR_AL_IMMb=5956, + XED_IFORM_XOR_GPR8_GPR8_30=5957, + XED_IFORM_XOR_GPR8_GPR8_32=5958, + XED_IFORM_XOR_GPR8_IMMb_80r6=5959, + XED_IFORM_XOR_GPR8_IMMb_82r6=5960, + XED_IFORM_XOR_GPR8_MEMb=5961, + XED_IFORM_XOR_GPRv_GPRv_31=5962, + XED_IFORM_XOR_GPRv_GPRv_33=5963, + XED_IFORM_XOR_GPRv_IMMb=5964, + XED_IFORM_XOR_GPRv_IMMz=5965, + XED_IFORM_XOR_GPRv_MEMv=5966, + XED_IFORM_XOR_MEMb_GPR8=5967, + XED_IFORM_XOR_MEMb_IMMb_80r6=5968, + XED_IFORM_XOR_MEMb_IMMb_82r6=5969, + XED_IFORM_XOR_MEMv_GPRv=5970, + XED_IFORM_XOR_MEMv_IMMb=5971, + XED_IFORM_XOR_MEMv_IMMz=5972, + XED_IFORM_XOR_OrAX_IMMz=5973, + XED_IFORM_XORPD_XMMpd_MEMpd=5974, + XED_IFORM_XORPD_XMMpd_XMMpd=5975, + XED_IFORM_XORPS_XMMps_MEMps=5976, + XED_IFORM_XORPS_XMMps_XMMps=5977, + XED_IFORM_XOR_LOCK_MEMb_GPR8=5978, + XED_IFORM_XOR_LOCK_MEMb_IMMb_80r6=5979, + XED_IFORM_XOR_LOCK_MEMb_IMMb_82r6=5980, + XED_IFORM_XOR_LOCK_MEMv_GPRv=5981, + XED_IFORM_XOR_LOCK_MEMv_IMMb=5982, + XED_IFORM_XOR_LOCK_MEMv_IMMz=5983, + XED_IFORM_XRSTOR_MEMmxsave=5984, + XED_IFORM_XRSTOR64_MEMmxsave=5985, + XED_IFORM_XRSTORS_MEMmxsave=5986, + XED_IFORM_XRSTORS64_MEMmxsave=5987, + XED_IFORM_XSAVE_MEMmxsave=5988, + XED_IFORM_XSAVE64_MEMmxsave=5989, + XED_IFORM_XSAVEC_MEMmxsave=5990, + XED_IFORM_XSAVEC64_MEMmxsave=5991, + XED_IFORM_XSAVEOPT_MEMmxsave=5992, + XED_IFORM_XSAVEOPT64_MEMmxsave=5993, + XED_IFORM_XSAVES_MEMmxsave=5994, + XED_IFORM_XSAVES64_MEMmxsave=5995, + XED_IFORM_XSETBV=5996, + XED_IFORM_XTEST=5997, + XED_IFORM_LAST +} xed_iform_enum_t; + +/// This converts strings to #xed_iform_enum_t types. +/// @param s A C-string. +/// @return #xed_iform_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_iform_enum_t str2xed_iform_enum_t(const char* s); +/// This converts strings to #xed_iform_enum_t types. +/// @param p An enumeration element of type xed_iform_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_iform_enum_t2str(const xed_iform_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_iform_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_iform_enum_t xed_iform_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-iform-map.h b/third_party/xed-intel64/include/xed-iform-map.h new file mode 100644 index 0000000..42ef518 --- /dev/null +++ b/third_party/xed-intel64/include/xed-iform-map.h @@ -0,0 +1,131 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-iform-map.h +/// + +#if !defined(_XED_IFORM_MAP_H_) +# define _XED_IFORM_MAP_H_ + +#include "../../../third_party/xed-intel64/include/xed-category-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-extension-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-iform-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-isa-set-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-types.h" + +/// @ingroup IFORM +/// Statically available information about iforms. +/// Values are returned by #xed_iform_map(). +typedef struct xed_iform_info_s { + xed_iclass_enum_t iclass; + xed_category_enum_t category; + xed_extension_enum_t extension; + xed_isa_set_enum_t isa_set; + + /* if nonzero, index in to the disassembly string table */ + xed_uint32_t string_table_idx; +} xed_iform_info_t; + + +/// @ingroup IFORM +/// Map the #xed_iform_enum_t to a pointer to a #xed_iform_info_t which +/// indicates the #xed_iclass_enum_t, the #xed_category_enum_t and the +/// #xed_extension_enum_t for the iform. Returns 0 if the iform is not a +/// valid iform. +XED_DLL_EXPORT +const xed_iform_info_t* xed_iform_map(xed_iform_enum_t iform); + +/// @ingroup IFORM +/// Return the maximum number of iforms for a particular iclass. This +/// function returns valid data as soon as global data is +/// initialized. (This function does not require a decoded instruction as +/// input). +XED_DLL_EXPORT +xed_uint32_t xed_iform_max_per_iclass(xed_iclass_enum_t iclass); + +/// @ingroup IFORM +/// Return the first of the iforms for a particular iclass. This function +/// returns valid data as soon as global data is initialized. (This +/// function does not require a decoded instruction as input). +XED_DLL_EXPORT +xed_uint32_t xed_iform_first_per_iclass(xed_iclass_enum_t iclass); + +/// @ingroup IFORM +/// Return the iclass for a given iform. This +/// function returns valid data as soon as global data is initialized. (This +/// function does not require a decoded instruction as input). +static +xed_iclass_enum_t XED_INLINE xed_iform_to_iclass(xed_iform_enum_t iform) { + const xed_iform_info_t* ii = xed_iform_map(iform); + if (ii) + return ii->iclass; + return XED_ICLASS_INVALID; +} + +/// @ingroup IFORM +/// Return the category for a given iform. This +/// function returns valid data as soon as global data is initialized. (This +/// function does not require a decoded instruction as input). +XED_DLL_EXPORT +xed_category_enum_t xed_iform_to_category(xed_iform_enum_t iform); + +/// @ingroup IFORM +/// Return the extension for a given iform. This function returns valid +/// data as soon as global data is initialized. (This function does not +/// require a decoded instruction as input). +XED_DLL_EXPORT +xed_extension_enum_t xed_iform_to_extension(xed_iform_enum_t iform); + +/// @ingroup IFORM +/// Return the isa_set for a given iform. This function returns valid data +/// as soon as global data is initialized. (This function does not require +/// a decoded instruction as input). +XED_DLL_EXPORT +xed_isa_set_enum_t xed_iform_to_isa_set(xed_iform_enum_t iform); + +/// @ingroup IFORM +/// Return a pointer to a character string of the iclass. This +/// translates the internal disambiguated names to the more ambiguous +/// names that people like to see. This returns the ATT SYSV-syntax name. +XED_DLL_EXPORT +char const* xed_iform_to_iclass_string_att(xed_iform_enum_t iform); + + +/// @ingroup IFORM +/// Return a pointer to a character string of the iclass. This +/// translates the internal disambiguated names to the more ambiguous +/// names that people like to see. This returns the Intel-syntax name. +XED_DLL_EXPORT +char const* xed_iform_to_iclass_string_intel(xed_iform_enum_t iform); + +#endif diff --git a/third_party/xed-intel64/include/xed-iformfl-enum.h b/third_party/xed-intel64/include/xed-iformfl-enum.h new file mode 100644 index 0000000..d9b7d71 --- /dev/null +++ b/third_party/xed-intel64/include/xed-iformfl-enum.h @@ -0,0 +1,3033 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-iformfl-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_IFORMFL_ENUM_H_) +# define _XED_IFORMFL_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" +typedef enum { + XED_IFORMFL_AAA_FIRST=1, + XED_IFORMFL_AAA_LAST=1, + XED_IFORMFL_AAD_FIRST=2, + XED_IFORMFL_AAD_LAST=2, + XED_IFORMFL_AAM_FIRST=3, + XED_IFORMFL_AAM_LAST=3, + XED_IFORMFL_AAS_FIRST=4, + XED_IFORMFL_AAS_LAST=4, + XED_IFORMFL_ADC_FIRST=5, + XED_IFORMFL_ADC_LAST=22, + XED_IFORMFL_ADCX_FIRST=23, + XED_IFORMFL_ADCX_LAST=26, + XED_IFORMFL_ADC_LOCK_FIRST=27, + XED_IFORMFL_ADC_LOCK_LAST=32, + XED_IFORMFL_ADD_FIRST=33, + XED_IFORMFL_ADD_LAST=50, + XED_IFORMFL_ADDPD_FIRST=51, + XED_IFORMFL_ADDPD_LAST=52, + XED_IFORMFL_ADDPS_FIRST=53, + XED_IFORMFL_ADDPS_LAST=54, + XED_IFORMFL_ADDSD_FIRST=55, + XED_IFORMFL_ADDSD_LAST=56, + XED_IFORMFL_ADDSS_FIRST=57, + XED_IFORMFL_ADDSS_LAST=58, + XED_IFORMFL_ADDSUBPD_FIRST=59, + XED_IFORMFL_ADDSUBPD_LAST=60, + XED_IFORMFL_ADDSUBPS_FIRST=61, + XED_IFORMFL_ADDSUBPS_LAST=62, + XED_IFORMFL_ADD_LOCK_FIRST=63, + XED_IFORMFL_ADD_LOCK_LAST=68, + XED_IFORMFL_ADOX_FIRST=69, + XED_IFORMFL_ADOX_LAST=72, + XED_IFORMFL_AESDEC_FIRST=73, + XED_IFORMFL_AESDEC_LAST=74, + XED_IFORMFL_AESDECLAST_FIRST=75, + XED_IFORMFL_AESDECLAST_LAST=76, + XED_IFORMFL_AESENC_FIRST=77, + XED_IFORMFL_AESENC_LAST=78, + XED_IFORMFL_AESENCLAST_FIRST=79, + XED_IFORMFL_AESENCLAST_LAST=80, + XED_IFORMFL_AESIMC_FIRST=81, + XED_IFORMFL_AESIMC_LAST=82, + XED_IFORMFL_AESKEYGENASSIST_FIRST=83, + XED_IFORMFL_AESKEYGENASSIST_LAST=84, + XED_IFORMFL_AND_FIRST=85, + XED_IFORMFL_AND_LAST=102, + XED_IFORMFL_ANDN_FIRST=103, + XED_IFORMFL_ANDN_LAST=106, + XED_IFORMFL_ANDNPD_FIRST=107, + XED_IFORMFL_ANDNPD_LAST=108, + XED_IFORMFL_ANDNPS_FIRST=109, + XED_IFORMFL_ANDNPS_LAST=110, + XED_IFORMFL_ANDPD_FIRST=111, + XED_IFORMFL_ANDPD_LAST=112, + XED_IFORMFL_ANDPS_FIRST=113, + XED_IFORMFL_ANDPS_LAST=114, + XED_IFORMFL_AND_LOCK_FIRST=115, + XED_IFORMFL_AND_LOCK_LAST=120, + XED_IFORMFL_ARPL_FIRST=121, + XED_IFORMFL_ARPL_LAST=122, + XED_IFORMFL_BEXTR_FIRST=123, + XED_IFORMFL_BEXTR_LAST=126, + XED_IFORMFL_BEXTR_XOP_FIRST=127, + XED_IFORMFL_BEXTR_XOP_LAST=128, + XED_IFORMFL_BLCFILL_FIRST=129, + XED_IFORMFL_BLCFILL_LAST=130, + XED_IFORMFL_BLCI_FIRST=131, + XED_IFORMFL_BLCI_LAST=132, + XED_IFORMFL_BLCIC_FIRST=133, + XED_IFORMFL_BLCIC_LAST=134, + XED_IFORMFL_BLCMSK_FIRST=135, + XED_IFORMFL_BLCMSK_LAST=136, + XED_IFORMFL_BLCS_FIRST=137, + XED_IFORMFL_BLCS_LAST=138, + XED_IFORMFL_BLENDPD_FIRST=139, + XED_IFORMFL_BLENDPD_LAST=140, + XED_IFORMFL_BLENDPS_FIRST=141, + XED_IFORMFL_BLENDPS_LAST=142, + XED_IFORMFL_BLENDVPD_FIRST=143, + XED_IFORMFL_BLENDVPD_LAST=144, + XED_IFORMFL_BLENDVPS_FIRST=145, + XED_IFORMFL_BLENDVPS_LAST=146, + XED_IFORMFL_BLSFILL_FIRST=147, + XED_IFORMFL_BLSFILL_LAST=148, + XED_IFORMFL_BLSI_FIRST=149, + XED_IFORMFL_BLSI_LAST=152, + XED_IFORMFL_BLSIC_FIRST=153, + XED_IFORMFL_BLSIC_LAST=154, + XED_IFORMFL_BLSMSK_FIRST=155, + XED_IFORMFL_BLSMSK_LAST=158, + XED_IFORMFL_BLSR_FIRST=159, + XED_IFORMFL_BLSR_LAST=162, + XED_IFORMFL_BNDCL_FIRST=163, + XED_IFORMFL_BNDCL_LAST=165, + XED_IFORMFL_BNDCN_FIRST=166, + XED_IFORMFL_BNDCN_LAST=168, + XED_IFORMFL_BNDCU_FIRST=169, + XED_IFORMFL_BNDCU_LAST=171, + XED_IFORMFL_BNDLDX_FIRST=172, + XED_IFORMFL_BNDLDX_LAST=173, + XED_IFORMFL_BNDMK_FIRST=174, + XED_IFORMFL_BNDMK_LAST=174, + XED_IFORMFL_BNDMOV_FIRST=175, + XED_IFORMFL_BNDMOV_LAST=179, + XED_IFORMFL_BNDSTX_FIRST=180, + XED_IFORMFL_BNDSTX_LAST=181, + XED_IFORMFL_BOUND_FIRST=182, + XED_IFORMFL_BOUND_LAST=183, + XED_IFORMFL_BSF_FIRST=184, + XED_IFORMFL_BSF_LAST=185, + XED_IFORMFL_BSR_FIRST=186, + XED_IFORMFL_BSR_LAST=187, + XED_IFORMFL_BSWAP_FIRST=188, + XED_IFORMFL_BSWAP_LAST=188, + XED_IFORMFL_BT_FIRST=189, + XED_IFORMFL_BT_LAST=192, + XED_IFORMFL_BTC_FIRST=193, + XED_IFORMFL_BTC_LAST=196, + XED_IFORMFL_BTC_LOCK_FIRST=197, + XED_IFORMFL_BTC_LOCK_LAST=198, + XED_IFORMFL_BTR_FIRST=199, + XED_IFORMFL_BTR_LAST=202, + XED_IFORMFL_BTR_LOCK_FIRST=203, + XED_IFORMFL_BTR_LOCK_LAST=204, + XED_IFORMFL_BTS_FIRST=205, + XED_IFORMFL_BTS_LAST=208, + XED_IFORMFL_BTS_LOCK_FIRST=209, + XED_IFORMFL_BTS_LOCK_LAST=210, + XED_IFORMFL_BZHI_FIRST=211, + XED_IFORMFL_BZHI_LAST=214, + XED_IFORMFL_CALL_FAR_FIRST=215, + XED_IFORMFL_CALL_FAR_LAST=216, + XED_IFORMFL_CALL_NEAR_FIRST=217, + XED_IFORMFL_CALL_NEAR_LAST=220, + XED_IFORMFL_CBW_FIRST=221, + XED_IFORMFL_CBW_LAST=221, + XED_IFORMFL_CDQ_FIRST=222, + XED_IFORMFL_CDQ_LAST=222, + XED_IFORMFL_CDQE_FIRST=223, + XED_IFORMFL_CDQE_LAST=223, + XED_IFORMFL_CLAC_FIRST=224, + XED_IFORMFL_CLAC_LAST=224, + XED_IFORMFL_CLC_FIRST=225, + XED_IFORMFL_CLC_LAST=225, + XED_IFORMFL_CLD_FIRST=226, + XED_IFORMFL_CLD_LAST=226, + XED_IFORMFL_CLFLUSH_FIRST=227, + XED_IFORMFL_CLFLUSH_LAST=227, + XED_IFORMFL_CLFLUSHOPT_FIRST=228, + XED_IFORMFL_CLFLUSHOPT_LAST=228, + XED_IFORMFL_CLGI_FIRST=229, + XED_IFORMFL_CLGI_LAST=229, + XED_IFORMFL_CLI_FIRST=230, + XED_IFORMFL_CLI_LAST=230, + XED_IFORMFL_CLTS_FIRST=231, + XED_IFORMFL_CLTS_LAST=231, + XED_IFORMFL_CLWB_FIRST=232, + XED_IFORMFL_CLWB_LAST=232, + XED_IFORMFL_CMC_FIRST=233, + XED_IFORMFL_CMC_LAST=233, + XED_IFORMFL_CMOVB_FIRST=234, + XED_IFORMFL_CMOVB_LAST=235, + XED_IFORMFL_CMOVBE_FIRST=236, + XED_IFORMFL_CMOVBE_LAST=237, + XED_IFORMFL_CMOVL_FIRST=238, + XED_IFORMFL_CMOVL_LAST=239, + XED_IFORMFL_CMOVLE_FIRST=240, + XED_IFORMFL_CMOVLE_LAST=241, + XED_IFORMFL_CMOVNB_FIRST=242, + XED_IFORMFL_CMOVNB_LAST=243, + XED_IFORMFL_CMOVNBE_FIRST=244, + XED_IFORMFL_CMOVNBE_LAST=245, + XED_IFORMFL_CMOVNL_FIRST=246, + XED_IFORMFL_CMOVNL_LAST=247, + XED_IFORMFL_CMOVNLE_FIRST=248, + XED_IFORMFL_CMOVNLE_LAST=249, + XED_IFORMFL_CMOVNO_FIRST=250, + XED_IFORMFL_CMOVNO_LAST=251, + XED_IFORMFL_CMOVNP_FIRST=252, + XED_IFORMFL_CMOVNP_LAST=253, + XED_IFORMFL_CMOVNS_FIRST=254, + XED_IFORMFL_CMOVNS_LAST=255, + XED_IFORMFL_CMOVNZ_FIRST=256, + XED_IFORMFL_CMOVNZ_LAST=257, + XED_IFORMFL_CMOVO_FIRST=258, + XED_IFORMFL_CMOVO_LAST=259, + XED_IFORMFL_CMOVP_FIRST=260, + XED_IFORMFL_CMOVP_LAST=261, + XED_IFORMFL_CMOVS_FIRST=262, + XED_IFORMFL_CMOVS_LAST=263, + XED_IFORMFL_CMOVZ_FIRST=264, + XED_IFORMFL_CMOVZ_LAST=265, + XED_IFORMFL_CMP_FIRST=266, + XED_IFORMFL_CMP_LAST=283, + XED_IFORMFL_CMPPD_FIRST=284, + XED_IFORMFL_CMPPD_LAST=285, + XED_IFORMFL_CMPPS_FIRST=286, + XED_IFORMFL_CMPPS_LAST=287, + XED_IFORMFL_CMPSB_FIRST=288, + XED_IFORMFL_CMPSB_LAST=288, + XED_IFORMFL_CMPSD_FIRST=289, + XED_IFORMFL_CMPSD_LAST=289, + XED_IFORMFL_CMPSD_XMM_FIRST=290, + XED_IFORMFL_CMPSD_XMM_LAST=291, + XED_IFORMFL_CMPSQ_FIRST=292, + XED_IFORMFL_CMPSQ_LAST=292, + XED_IFORMFL_CMPSS_FIRST=293, + XED_IFORMFL_CMPSS_LAST=294, + XED_IFORMFL_CMPSW_FIRST=295, + XED_IFORMFL_CMPSW_LAST=295, + XED_IFORMFL_CMPXCHG_FIRST=296, + XED_IFORMFL_CMPXCHG_LAST=299, + XED_IFORMFL_CMPXCHG16B_FIRST=300, + XED_IFORMFL_CMPXCHG16B_LAST=300, + XED_IFORMFL_CMPXCHG16B_LOCK_FIRST=301, + XED_IFORMFL_CMPXCHG16B_LOCK_LAST=301, + XED_IFORMFL_CMPXCHG8B_FIRST=302, + XED_IFORMFL_CMPXCHG8B_LAST=302, + XED_IFORMFL_CMPXCHG8B_LOCK_FIRST=303, + XED_IFORMFL_CMPXCHG8B_LOCK_LAST=303, + XED_IFORMFL_CMPXCHG_LOCK_FIRST=304, + XED_IFORMFL_CMPXCHG_LOCK_LAST=305, + XED_IFORMFL_COMISD_FIRST=306, + XED_IFORMFL_COMISD_LAST=307, + XED_IFORMFL_COMISS_FIRST=308, + XED_IFORMFL_COMISS_LAST=309, + XED_IFORMFL_CPUID_FIRST=310, + XED_IFORMFL_CPUID_LAST=310, + XED_IFORMFL_CQO_FIRST=311, + XED_IFORMFL_CQO_LAST=311, + XED_IFORMFL_CRC32_FIRST=312, + XED_IFORMFL_CRC32_LAST=315, + XED_IFORMFL_CVTDQ2PD_FIRST=316, + XED_IFORMFL_CVTDQ2PD_LAST=317, + XED_IFORMFL_CVTDQ2PS_FIRST=318, + XED_IFORMFL_CVTDQ2PS_LAST=319, + XED_IFORMFL_CVTPD2DQ_FIRST=320, + XED_IFORMFL_CVTPD2DQ_LAST=321, + XED_IFORMFL_CVTPD2PI_FIRST=322, + XED_IFORMFL_CVTPD2PI_LAST=323, + XED_IFORMFL_CVTPD2PS_FIRST=324, + XED_IFORMFL_CVTPD2PS_LAST=325, + XED_IFORMFL_CVTPI2PD_FIRST=326, + XED_IFORMFL_CVTPI2PD_LAST=327, + XED_IFORMFL_CVTPI2PS_FIRST=328, + XED_IFORMFL_CVTPI2PS_LAST=329, + XED_IFORMFL_CVTPS2DQ_FIRST=330, + XED_IFORMFL_CVTPS2DQ_LAST=331, + XED_IFORMFL_CVTPS2PD_FIRST=332, + XED_IFORMFL_CVTPS2PD_LAST=333, + XED_IFORMFL_CVTPS2PI_FIRST=334, + XED_IFORMFL_CVTPS2PI_LAST=335, + XED_IFORMFL_CVTSD2SI_FIRST=336, + XED_IFORMFL_CVTSD2SI_LAST=339, + XED_IFORMFL_CVTSD2SS_FIRST=340, + XED_IFORMFL_CVTSD2SS_LAST=341, + XED_IFORMFL_CVTSI2SD_FIRST=342, + XED_IFORMFL_CVTSI2SD_LAST=345, + XED_IFORMFL_CVTSI2SS_FIRST=346, + XED_IFORMFL_CVTSI2SS_LAST=349, + XED_IFORMFL_CVTSS2SD_FIRST=350, + XED_IFORMFL_CVTSS2SD_LAST=351, + XED_IFORMFL_CVTSS2SI_FIRST=352, + XED_IFORMFL_CVTSS2SI_LAST=355, + XED_IFORMFL_CVTTPD2DQ_FIRST=356, + XED_IFORMFL_CVTTPD2DQ_LAST=357, + XED_IFORMFL_CVTTPD2PI_FIRST=358, + XED_IFORMFL_CVTTPD2PI_LAST=359, + XED_IFORMFL_CVTTPS2DQ_FIRST=360, + XED_IFORMFL_CVTTPS2DQ_LAST=361, + XED_IFORMFL_CVTTPS2PI_FIRST=362, + XED_IFORMFL_CVTTPS2PI_LAST=363, + XED_IFORMFL_CVTTSD2SI_FIRST=364, + XED_IFORMFL_CVTTSD2SI_LAST=367, + XED_IFORMFL_CVTTSS2SI_FIRST=368, + XED_IFORMFL_CVTTSS2SI_LAST=371, + XED_IFORMFL_CWD_FIRST=372, + XED_IFORMFL_CWD_LAST=372, + XED_IFORMFL_CWDE_FIRST=373, + XED_IFORMFL_CWDE_LAST=373, + XED_IFORMFL_DAA_FIRST=374, + XED_IFORMFL_DAA_LAST=374, + XED_IFORMFL_DAS_FIRST=375, + XED_IFORMFL_DAS_LAST=375, + XED_IFORMFL_DEC_FIRST=376, + XED_IFORMFL_DEC_LAST=380, + XED_IFORMFL_DEC_LOCK_FIRST=381, + XED_IFORMFL_DEC_LOCK_LAST=382, + XED_IFORMFL_DIV_FIRST=383, + XED_IFORMFL_DIV_LAST=386, + XED_IFORMFL_DIVPD_FIRST=387, + XED_IFORMFL_DIVPD_LAST=388, + XED_IFORMFL_DIVPS_FIRST=389, + XED_IFORMFL_DIVPS_LAST=390, + XED_IFORMFL_DIVSD_FIRST=391, + XED_IFORMFL_DIVSD_LAST=392, + XED_IFORMFL_DIVSS_FIRST=393, + XED_IFORMFL_DIVSS_LAST=394, + XED_IFORMFL_DPPD_FIRST=395, + XED_IFORMFL_DPPD_LAST=396, + XED_IFORMFL_DPPS_FIRST=397, + XED_IFORMFL_DPPS_LAST=398, + XED_IFORMFL_EMMS_FIRST=399, + XED_IFORMFL_EMMS_LAST=399, + XED_IFORMFL_ENCLS_FIRST=400, + XED_IFORMFL_ENCLS_LAST=400, + XED_IFORMFL_ENCLU_FIRST=401, + XED_IFORMFL_ENCLU_LAST=401, + XED_IFORMFL_ENTER_FIRST=402, + XED_IFORMFL_ENTER_LAST=402, + XED_IFORMFL_EXTRACTPS_FIRST=403, + XED_IFORMFL_EXTRACTPS_LAST=404, + XED_IFORMFL_EXTRQ_FIRST=405, + XED_IFORMFL_EXTRQ_LAST=406, + XED_IFORMFL_F2XM1_FIRST=407, + XED_IFORMFL_F2XM1_LAST=407, + XED_IFORMFL_FABS_FIRST=408, + XED_IFORMFL_FABS_LAST=408, + XED_IFORMFL_FADD_FIRST=409, + XED_IFORMFL_FADD_LAST=412, + XED_IFORMFL_FADDP_FIRST=413, + XED_IFORMFL_FADDP_LAST=413, + XED_IFORMFL_FBLD_FIRST=414, + XED_IFORMFL_FBLD_LAST=414, + XED_IFORMFL_FBSTP_FIRST=415, + XED_IFORMFL_FBSTP_LAST=415, + XED_IFORMFL_FCHS_FIRST=416, + XED_IFORMFL_FCHS_LAST=416, + XED_IFORMFL_FCMOVB_FIRST=417, + XED_IFORMFL_FCMOVB_LAST=417, + XED_IFORMFL_FCMOVBE_FIRST=418, + XED_IFORMFL_FCMOVBE_LAST=418, + XED_IFORMFL_FCMOVE_FIRST=419, + XED_IFORMFL_FCMOVE_LAST=419, + XED_IFORMFL_FCMOVNB_FIRST=420, + XED_IFORMFL_FCMOVNB_LAST=420, + XED_IFORMFL_FCMOVNBE_FIRST=421, + XED_IFORMFL_FCMOVNBE_LAST=421, + XED_IFORMFL_FCMOVNE_FIRST=422, + XED_IFORMFL_FCMOVNE_LAST=422, + XED_IFORMFL_FCMOVNU_FIRST=423, + XED_IFORMFL_FCMOVNU_LAST=423, + XED_IFORMFL_FCMOVU_FIRST=424, + XED_IFORMFL_FCMOVU_LAST=424, + XED_IFORMFL_FCOM_FIRST=425, + XED_IFORMFL_FCOM_LAST=428, + XED_IFORMFL_FCOMI_FIRST=429, + XED_IFORMFL_FCOMI_LAST=429, + XED_IFORMFL_FCOMIP_FIRST=430, + XED_IFORMFL_FCOMIP_LAST=430, + XED_IFORMFL_FCOMP_FIRST=431, + XED_IFORMFL_FCOMP_LAST=435, + XED_IFORMFL_FCOMPP_FIRST=436, + XED_IFORMFL_FCOMPP_LAST=436, + XED_IFORMFL_FCOS_FIRST=437, + XED_IFORMFL_FCOS_LAST=437, + XED_IFORMFL_FDECSTP_FIRST=438, + XED_IFORMFL_FDECSTP_LAST=438, + XED_IFORMFL_FDISI8087_NOP_FIRST=439, + XED_IFORMFL_FDISI8087_NOP_LAST=439, + XED_IFORMFL_FDIV_FIRST=440, + XED_IFORMFL_FDIV_LAST=443, + XED_IFORMFL_FDIVP_FIRST=444, + XED_IFORMFL_FDIVP_LAST=444, + XED_IFORMFL_FDIVR_FIRST=445, + XED_IFORMFL_FDIVR_LAST=448, + XED_IFORMFL_FDIVRP_FIRST=449, + XED_IFORMFL_FDIVRP_LAST=449, + XED_IFORMFL_FEMMS_FIRST=450, + XED_IFORMFL_FEMMS_LAST=450, + XED_IFORMFL_FENI8087_NOP_FIRST=451, + XED_IFORMFL_FENI8087_NOP_LAST=451, + XED_IFORMFL_FFREE_FIRST=452, + XED_IFORMFL_FFREE_LAST=452, + XED_IFORMFL_FFREEP_FIRST=453, + XED_IFORMFL_FFREEP_LAST=453, + XED_IFORMFL_FIADD_FIRST=454, + XED_IFORMFL_FIADD_LAST=455, + XED_IFORMFL_FICOM_FIRST=456, + XED_IFORMFL_FICOM_LAST=457, + XED_IFORMFL_FICOMP_FIRST=458, + XED_IFORMFL_FICOMP_LAST=459, + XED_IFORMFL_FIDIV_FIRST=460, + XED_IFORMFL_FIDIV_LAST=461, + XED_IFORMFL_FIDIVR_FIRST=462, + XED_IFORMFL_FIDIVR_LAST=463, + XED_IFORMFL_FILD_FIRST=464, + XED_IFORMFL_FILD_LAST=466, + XED_IFORMFL_FIMUL_FIRST=467, + XED_IFORMFL_FIMUL_LAST=468, + XED_IFORMFL_FINCSTP_FIRST=469, + XED_IFORMFL_FINCSTP_LAST=469, + XED_IFORMFL_FIST_FIRST=470, + XED_IFORMFL_FIST_LAST=471, + XED_IFORMFL_FISTP_FIRST=472, + XED_IFORMFL_FISTP_LAST=474, + XED_IFORMFL_FISTTP_FIRST=475, + XED_IFORMFL_FISTTP_LAST=477, + XED_IFORMFL_FISUB_FIRST=478, + XED_IFORMFL_FISUB_LAST=479, + XED_IFORMFL_FISUBR_FIRST=480, + XED_IFORMFL_FISUBR_LAST=481, + XED_IFORMFL_FLD_FIRST=482, + XED_IFORMFL_FLD_LAST=485, + XED_IFORMFL_FLD1_FIRST=486, + XED_IFORMFL_FLD1_LAST=486, + XED_IFORMFL_FLDCW_FIRST=487, + XED_IFORMFL_FLDCW_LAST=487, + XED_IFORMFL_FLDENV_FIRST=488, + XED_IFORMFL_FLDENV_LAST=489, + XED_IFORMFL_FLDL2E_FIRST=490, + XED_IFORMFL_FLDL2E_LAST=490, + XED_IFORMFL_FLDL2T_FIRST=491, + XED_IFORMFL_FLDL2T_LAST=491, + XED_IFORMFL_FLDLG2_FIRST=492, + XED_IFORMFL_FLDLG2_LAST=492, + XED_IFORMFL_FLDLN2_FIRST=493, + XED_IFORMFL_FLDLN2_LAST=493, + XED_IFORMFL_FLDPI_FIRST=494, + XED_IFORMFL_FLDPI_LAST=494, + XED_IFORMFL_FLDZ_FIRST=495, + XED_IFORMFL_FLDZ_LAST=495, + XED_IFORMFL_FMUL_FIRST=496, + XED_IFORMFL_FMUL_LAST=499, + XED_IFORMFL_FMULP_FIRST=500, + XED_IFORMFL_FMULP_LAST=500, + XED_IFORMFL_FNCLEX_FIRST=501, + XED_IFORMFL_FNCLEX_LAST=501, + XED_IFORMFL_FNINIT_FIRST=502, + XED_IFORMFL_FNINIT_LAST=502, + XED_IFORMFL_FNOP_FIRST=503, + XED_IFORMFL_FNOP_LAST=503, + XED_IFORMFL_FNSAVE_FIRST=504, + XED_IFORMFL_FNSAVE_LAST=505, + XED_IFORMFL_FNSTCW_FIRST=506, + XED_IFORMFL_FNSTCW_LAST=506, + XED_IFORMFL_FNSTENV_FIRST=507, + XED_IFORMFL_FNSTENV_LAST=508, + XED_IFORMFL_FNSTSW_FIRST=509, + XED_IFORMFL_FNSTSW_LAST=510, + XED_IFORMFL_FPATAN_FIRST=511, + XED_IFORMFL_FPATAN_LAST=511, + XED_IFORMFL_FPREM_FIRST=512, + XED_IFORMFL_FPREM_LAST=512, + XED_IFORMFL_FPREM1_FIRST=513, + XED_IFORMFL_FPREM1_LAST=513, + XED_IFORMFL_FPTAN_FIRST=514, + XED_IFORMFL_FPTAN_LAST=514, + XED_IFORMFL_FRNDINT_FIRST=515, + XED_IFORMFL_FRNDINT_LAST=515, + XED_IFORMFL_FRSTOR_FIRST=516, + XED_IFORMFL_FRSTOR_LAST=517, + XED_IFORMFL_FSCALE_FIRST=518, + XED_IFORMFL_FSCALE_LAST=518, + XED_IFORMFL_FSETPM287_NOP_FIRST=519, + XED_IFORMFL_FSETPM287_NOP_LAST=519, + XED_IFORMFL_FSIN_FIRST=520, + XED_IFORMFL_FSIN_LAST=520, + XED_IFORMFL_FSINCOS_FIRST=521, + XED_IFORMFL_FSINCOS_LAST=521, + XED_IFORMFL_FSQRT_FIRST=522, + XED_IFORMFL_FSQRT_LAST=522, + XED_IFORMFL_FST_FIRST=523, + XED_IFORMFL_FST_LAST=525, + XED_IFORMFL_FSTP_FIRST=526, + XED_IFORMFL_FSTP_LAST=531, + XED_IFORMFL_FSTPNCE_FIRST=532, + XED_IFORMFL_FSTPNCE_LAST=532, + XED_IFORMFL_FSUB_FIRST=533, + XED_IFORMFL_FSUB_LAST=536, + XED_IFORMFL_FSUBP_FIRST=537, + XED_IFORMFL_FSUBP_LAST=537, + XED_IFORMFL_FSUBR_FIRST=538, + XED_IFORMFL_FSUBR_LAST=541, + XED_IFORMFL_FSUBRP_FIRST=542, + XED_IFORMFL_FSUBRP_LAST=542, + XED_IFORMFL_FTST_FIRST=543, + XED_IFORMFL_FTST_LAST=543, + XED_IFORMFL_FUCOM_FIRST=544, + XED_IFORMFL_FUCOM_LAST=544, + XED_IFORMFL_FUCOMI_FIRST=545, + XED_IFORMFL_FUCOMI_LAST=545, + XED_IFORMFL_FUCOMIP_FIRST=546, + XED_IFORMFL_FUCOMIP_LAST=546, + XED_IFORMFL_FUCOMP_FIRST=547, + XED_IFORMFL_FUCOMP_LAST=547, + XED_IFORMFL_FUCOMPP_FIRST=548, + XED_IFORMFL_FUCOMPP_LAST=548, + XED_IFORMFL_FWAIT_FIRST=549, + XED_IFORMFL_FWAIT_LAST=549, + XED_IFORMFL_FXAM_FIRST=550, + XED_IFORMFL_FXAM_LAST=550, + XED_IFORMFL_FXCH_FIRST=551, + XED_IFORMFL_FXCH_LAST=553, + XED_IFORMFL_FXRSTOR_FIRST=554, + XED_IFORMFL_FXRSTOR_LAST=554, + XED_IFORMFL_FXRSTOR64_FIRST=555, + XED_IFORMFL_FXRSTOR64_LAST=555, + XED_IFORMFL_FXSAVE_FIRST=556, + XED_IFORMFL_FXSAVE_LAST=556, + XED_IFORMFL_FXSAVE64_FIRST=557, + XED_IFORMFL_FXSAVE64_LAST=557, + XED_IFORMFL_FXTRACT_FIRST=558, + XED_IFORMFL_FXTRACT_LAST=558, + XED_IFORMFL_FYL2X_FIRST=559, + XED_IFORMFL_FYL2X_LAST=559, + XED_IFORMFL_FYL2XP1_FIRST=560, + XED_IFORMFL_FYL2XP1_LAST=560, + XED_IFORMFL_GETSEC_FIRST=561, + XED_IFORMFL_GETSEC_LAST=561, + XED_IFORMFL_HADDPD_FIRST=562, + XED_IFORMFL_HADDPD_LAST=563, + XED_IFORMFL_HADDPS_FIRST=564, + XED_IFORMFL_HADDPS_LAST=565, + XED_IFORMFL_HLT_FIRST=566, + XED_IFORMFL_HLT_LAST=566, + XED_IFORMFL_HSUBPD_FIRST=567, + XED_IFORMFL_HSUBPD_LAST=568, + XED_IFORMFL_HSUBPS_FIRST=569, + XED_IFORMFL_HSUBPS_LAST=570, + XED_IFORMFL_IDIV_FIRST=571, + XED_IFORMFL_IDIV_LAST=574, + XED_IFORMFL_IMUL_FIRST=575, + XED_IFORMFL_IMUL_LAST=584, + XED_IFORMFL_IN_FIRST=585, + XED_IFORMFL_IN_LAST=588, + XED_IFORMFL_INC_FIRST=589, + XED_IFORMFL_INC_LAST=593, + XED_IFORMFL_INC_LOCK_FIRST=594, + XED_IFORMFL_INC_LOCK_LAST=595, + XED_IFORMFL_INSB_FIRST=596, + XED_IFORMFL_INSB_LAST=596, + XED_IFORMFL_INSD_FIRST=597, + XED_IFORMFL_INSD_LAST=597, + XED_IFORMFL_INSERTPS_FIRST=598, + XED_IFORMFL_INSERTPS_LAST=599, + XED_IFORMFL_INSERTQ_FIRST=600, + XED_IFORMFL_INSERTQ_LAST=601, + XED_IFORMFL_INSW_FIRST=602, + XED_IFORMFL_INSW_LAST=602, + XED_IFORMFL_INT_FIRST=603, + XED_IFORMFL_INT_LAST=603, + XED_IFORMFL_INT1_FIRST=604, + XED_IFORMFL_INT1_LAST=604, + XED_IFORMFL_INT3_FIRST=605, + XED_IFORMFL_INT3_LAST=605, + XED_IFORMFL_INTO_FIRST=606, + XED_IFORMFL_INTO_LAST=606, + XED_IFORMFL_INVD_FIRST=607, + XED_IFORMFL_INVD_LAST=607, + XED_IFORMFL_INVEPT_FIRST=608, + XED_IFORMFL_INVEPT_LAST=609, + XED_IFORMFL_INVLPG_FIRST=610, + XED_IFORMFL_INVLPG_LAST=610, + XED_IFORMFL_INVLPGA_FIRST=611, + XED_IFORMFL_INVLPGA_LAST=611, + XED_IFORMFL_INVPCID_FIRST=612, + XED_IFORMFL_INVPCID_LAST=613, + XED_IFORMFL_INVVPID_FIRST=614, + XED_IFORMFL_INVVPID_LAST=615, + XED_IFORMFL_IRET_FIRST=616, + XED_IFORMFL_IRET_LAST=616, + XED_IFORMFL_IRETD_FIRST=617, + XED_IFORMFL_IRETD_LAST=617, + XED_IFORMFL_IRETQ_FIRST=618, + XED_IFORMFL_IRETQ_LAST=618, + XED_IFORMFL_JB_FIRST=619, + XED_IFORMFL_JB_LAST=621, + XED_IFORMFL_JBE_FIRST=622, + XED_IFORMFL_JBE_LAST=624, + XED_IFORMFL_JCXZ_FIRST=625, + XED_IFORMFL_JCXZ_LAST=625, + XED_IFORMFL_JECXZ_FIRST=626, + XED_IFORMFL_JECXZ_LAST=626, + XED_IFORMFL_JL_FIRST=627, + XED_IFORMFL_JL_LAST=629, + XED_IFORMFL_JLE_FIRST=630, + XED_IFORMFL_JLE_LAST=632, + XED_IFORMFL_JMP_FIRST=633, + XED_IFORMFL_JMP_LAST=637, + XED_IFORMFL_JMP_FAR_FIRST=638, + XED_IFORMFL_JMP_FAR_LAST=639, + XED_IFORMFL_JNB_FIRST=640, + XED_IFORMFL_JNB_LAST=642, + XED_IFORMFL_JNBE_FIRST=643, + XED_IFORMFL_JNBE_LAST=645, + XED_IFORMFL_JNL_FIRST=646, + XED_IFORMFL_JNL_LAST=648, + XED_IFORMFL_JNLE_FIRST=649, + XED_IFORMFL_JNLE_LAST=651, + XED_IFORMFL_JNO_FIRST=652, + XED_IFORMFL_JNO_LAST=654, + XED_IFORMFL_JNP_FIRST=655, + XED_IFORMFL_JNP_LAST=657, + XED_IFORMFL_JNS_FIRST=658, + XED_IFORMFL_JNS_LAST=660, + XED_IFORMFL_JNZ_FIRST=661, + XED_IFORMFL_JNZ_LAST=663, + XED_IFORMFL_JO_FIRST=664, + XED_IFORMFL_JO_LAST=666, + XED_IFORMFL_JP_FIRST=667, + XED_IFORMFL_JP_LAST=669, + XED_IFORMFL_JRCXZ_FIRST=670, + XED_IFORMFL_JRCXZ_LAST=670, + XED_IFORMFL_JS_FIRST=671, + XED_IFORMFL_JS_LAST=673, + XED_IFORMFL_JZ_FIRST=674, + XED_IFORMFL_JZ_LAST=676, + XED_IFORMFL_KADDB_FIRST=677, + XED_IFORMFL_KADDB_LAST=677, + XED_IFORMFL_KADDD_FIRST=678, + XED_IFORMFL_KADDD_LAST=678, + XED_IFORMFL_KADDQ_FIRST=679, + XED_IFORMFL_KADDQ_LAST=679, + XED_IFORMFL_KADDW_FIRST=680, + XED_IFORMFL_KADDW_LAST=680, + XED_IFORMFL_KANDB_FIRST=681, + XED_IFORMFL_KANDB_LAST=681, + XED_IFORMFL_KANDD_FIRST=682, + XED_IFORMFL_KANDD_LAST=682, + XED_IFORMFL_KANDNB_FIRST=683, + XED_IFORMFL_KANDNB_LAST=683, + XED_IFORMFL_KANDND_FIRST=684, + XED_IFORMFL_KANDND_LAST=684, + XED_IFORMFL_KANDNQ_FIRST=685, + XED_IFORMFL_KANDNQ_LAST=685, + XED_IFORMFL_KANDNW_FIRST=686, + XED_IFORMFL_KANDNW_LAST=686, + XED_IFORMFL_KANDQ_FIRST=687, + XED_IFORMFL_KANDQ_LAST=687, + XED_IFORMFL_KANDW_FIRST=688, + XED_IFORMFL_KANDW_LAST=688, + XED_IFORMFL_KMOVB_FIRST=689, + XED_IFORMFL_KMOVB_LAST=693, + XED_IFORMFL_KMOVD_FIRST=694, + XED_IFORMFL_KMOVD_LAST=698, + XED_IFORMFL_KMOVQ_FIRST=699, + XED_IFORMFL_KMOVQ_LAST=703, + XED_IFORMFL_KMOVW_FIRST=704, + XED_IFORMFL_KMOVW_LAST=708, + XED_IFORMFL_KNOTB_FIRST=709, + XED_IFORMFL_KNOTB_LAST=709, + XED_IFORMFL_KNOTD_FIRST=710, + XED_IFORMFL_KNOTD_LAST=710, + XED_IFORMFL_KNOTQ_FIRST=711, + XED_IFORMFL_KNOTQ_LAST=711, + XED_IFORMFL_KNOTW_FIRST=712, + XED_IFORMFL_KNOTW_LAST=712, + XED_IFORMFL_KORB_FIRST=713, + XED_IFORMFL_KORB_LAST=713, + XED_IFORMFL_KORD_FIRST=714, + XED_IFORMFL_KORD_LAST=714, + XED_IFORMFL_KORQ_FIRST=715, + XED_IFORMFL_KORQ_LAST=715, + XED_IFORMFL_KORTESTB_FIRST=716, + XED_IFORMFL_KORTESTB_LAST=716, + XED_IFORMFL_KORTESTD_FIRST=717, + XED_IFORMFL_KORTESTD_LAST=717, + XED_IFORMFL_KORTESTQ_FIRST=718, + XED_IFORMFL_KORTESTQ_LAST=718, + XED_IFORMFL_KORTESTW_FIRST=719, + XED_IFORMFL_KORTESTW_LAST=719, + XED_IFORMFL_KORW_FIRST=720, + XED_IFORMFL_KORW_LAST=720, + XED_IFORMFL_KSHIFTLB_FIRST=721, + XED_IFORMFL_KSHIFTLB_LAST=721, + XED_IFORMFL_KSHIFTLD_FIRST=722, + XED_IFORMFL_KSHIFTLD_LAST=722, + XED_IFORMFL_KSHIFTLQ_FIRST=723, + XED_IFORMFL_KSHIFTLQ_LAST=723, + XED_IFORMFL_KSHIFTLW_FIRST=724, + XED_IFORMFL_KSHIFTLW_LAST=724, + XED_IFORMFL_KSHIFTRB_FIRST=725, + XED_IFORMFL_KSHIFTRB_LAST=725, + XED_IFORMFL_KSHIFTRD_FIRST=726, + XED_IFORMFL_KSHIFTRD_LAST=726, + XED_IFORMFL_KSHIFTRQ_FIRST=727, + XED_IFORMFL_KSHIFTRQ_LAST=727, + XED_IFORMFL_KSHIFTRW_FIRST=728, + XED_IFORMFL_KSHIFTRW_LAST=728, + XED_IFORMFL_KTESTB_FIRST=729, + XED_IFORMFL_KTESTB_LAST=729, + XED_IFORMFL_KTESTD_FIRST=730, + XED_IFORMFL_KTESTD_LAST=730, + XED_IFORMFL_KTESTQ_FIRST=731, + XED_IFORMFL_KTESTQ_LAST=731, + XED_IFORMFL_KTESTW_FIRST=732, + XED_IFORMFL_KTESTW_LAST=732, + XED_IFORMFL_KUNPCKBW_FIRST=733, + XED_IFORMFL_KUNPCKBW_LAST=733, + XED_IFORMFL_KUNPCKDQ_FIRST=734, + XED_IFORMFL_KUNPCKDQ_LAST=734, + XED_IFORMFL_KUNPCKWD_FIRST=735, + XED_IFORMFL_KUNPCKWD_LAST=735, + XED_IFORMFL_KXNORB_FIRST=736, + XED_IFORMFL_KXNORB_LAST=736, + XED_IFORMFL_KXNORD_FIRST=737, + XED_IFORMFL_KXNORD_LAST=737, + XED_IFORMFL_KXNORQ_FIRST=738, + XED_IFORMFL_KXNORQ_LAST=738, + XED_IFORMFL_KXNORW_FIRST=739, + XED_IFORMFL_KXNORW_LAST=739, + XED_IFORMFL_KXORB_FIRST=740, + XED_IFORMFL_KXORB_LAST=740, + XED_IFORMFL_KXORD_FIRST=741, + XED_IFORMFL_KXORD_LAST=741, + XED_IFORMFL_KXORQ_FIRST=742, + XED_IFORMFL_KXORQ_LAST=742, + XED_IFORMFL_KXORW_FIRST=743, + XED_IFORMFL_KXORW_LAST=743, + XED_IFORMFL_LAHF_FIRST=744, + XED_IFORMFL_LAHF_LAST=744, + XED_IFORMFL_LAR_FIRST=745, + XED_IFORMFL_LAR_LAST=746, + XED_IFORMFL_LDDQU_FIRST=747, + XED_IFORMFL_LDDQU_LAST=747, + XED_IFORMFL_LDMXCSR_FIRST=748, + XED_IFORMFL_LDMXCSR_LAST=748, + XED_IFORMFL_LDS_FIRST=749, + XED_IFORMFL_LDS_LAST=749, + XED_IFORMFL_LEA_FIRST=750, + XED_IFORMFL_LEA_LAST=750, + XED_IFORMFL_LEAVE_FIRST=751, + XED_IFORMFL_LEAVE_LAST=751, + XED_IFORMFL_LES_FIRST=752, + XED_IFORMFL_LES_LAST=752, + XED_IFORMFL_LFENCE_FIRST=753, + XED_IFORMFL_LFENCE_LAST=753, + XED_IFORMFL_LFS_FIRST=754, + XED_IFORMFL_LFS_LAST=754, + XED_IFORMFL_LGDT_FIRST=755, + XED_IFORMFL_LGDT_LAST=756, + XED_IFORMFL_LGS_FIRST=757, + XED_IFORMFL_LGS_LAST=757, + XED_IFORMFL_LIDT_FIRST=758, + XED_IFORMFL_LIDT_LAST=759, + XED_IFORMFL_LLDT_FIRST=760, + XED_IFORMFL_LLDT_LAST=761, + XED_IFORMFL_LLWPCB_FIRST=762, + XED_IFORMFL_LLWPCB_LAST=762, + XED_IFORMFL_LMSW_FIRST=763, + XED_IFORMFL_LMSW_LAST=764, + XED_IFORMFL_LODSB_FIRST=765, + XED_IFORMFL_LODSB_LAST=765, + XED_IFORMFL_LODSD_FIRST=766, + XED_IFORMFL_LODSD_LAST=766, + XED_IFORMFL_LODSQ_FIRST=767, + XED_IFORMFL_LODSQ_LAST=767, + XED_IFORMFL_LODSW_FIRST=768, + XED_IFORMFL_LODSW_LAST=768, + XED_IFORMFL_LOOP_FIRST=769, + XED_IFORMFL_LOOP_LAST=769, + XED_IFORMFL_LOOPE_FIRST=770, + XED_IFORMFL_LOOPE_LAST=770, + XED_IFORMFL_LOOPNE_FIRST=771, + XED_IFORMFL_LOOPNE_LAST=771, + XED_IFORMFL_LSL_FIRST=772, + XED_IFORMFL_LSL_LAST=773, + XED_IFORMFL_LSS_FIRST=774, + XED_IFORMFL_LSS_LAST=774, + XED_IFORMFL_LTR_FIRST=775, + XED_IFORMFL_LTR_LAST=776, + XED_IFORMFL_LWPINS_FIRST=777, + XED_IFORMFL_LWPINS_LAST=778, + XED_IFORMFL_LWPVAL_FIRST=779, + XED_IFORMFL_LWPVAL_LAST=780, + XED_IFORMFL_LZCNT_FIRST=781, + XED_IFORMFL_LZCNT_LAST=782, + XED_IFORMFL_MASKMOVDQU_FIRST=783, + XED_IFORMFL_MASKMOVDQU_LAST=783, + XED_IFORMFL_MASKMOVQ_FIRST=784, + XED_IFORMFL_MASKMOVQ_LAST=784, + XED_IFORMFL_MAXPD_FIRST=785, + XED_IFORMFL_MAXPD_LAST=786, + XED_IFORMFL_MAXPS_FIRST=787, + XED_IFORMFL_MAXPS_LAST=788, + XED_IFORMFL_MAXSD_FIRST=789, + XED_IFORMFL_MAXSD_LAST=790, + XED_IFORMFL_MAXSS_FIRST=791, + XED_IFORMFL_MAXSS_LAST=792, + XED_IFORMFL_MFENCE_FIRST=793, + XED_IFORMFL_MFENCE_LAST=793, + XED_IFORMFL_MINPD_FIRST=794, + XED_IFORMFL_MINPD_LAST=795, + XED_IFORMFL_MINPS_FIRST=796, + XED_IFORMFL_MINPS_LAST=797, + XED_IFORMFL_MINSD_FIRST=798, + XED_IFORMFL_MINSD_LAST=799, + XED_IFORMFL_MINSS_FIRST=800, + XED_IFORMFL_MINSS_LAST=801, + XED_IFORMFL_MONITOR_FIRST=802, + XED_IFORMFL_MONITOR_LAST=802, + XED_IFORMFL_MOV_FIRST=803, + XED_IFORMFL_MOV_LAST=824, + XED_IFORMFL_MOVAPD_FIRST=825, + XED_IFORMFL_MOVAPD_LAST=828, + XED_IFORMFL_MOVAPS_FIRST=829, + XED_IFORMFL_MOVAPS_LAST=832, + XED_IFORMFL_MOVBE_FIRST=833, + XED_IFORMFL_MOVBE_LAST=834, + XED_IFORMFL_MOVD_FIRST=835, + XED_IFORMFL_MOVD_LAST=842, + XED_IFORMFL_MOVDDUP_FIRST=843, + XED_IFORMFL_MOVDDUP_LAST=844, + XED_IFORMFL_MOVDQ2Q_FIRST=845, + XED_IFORMFL_MOVDQ2Q_LAST=845, + XED_IFORMFL_MOVDQA_FIRST=846, + XED_IFORMFL_MOVDQA_LAST=849, + XED_IFORMFL_MOVDQU_FIRST=850, + XED_IFORMFL_MOVDQU_LAST=853, + XED_IFORMFL_MOVHLPS_FIRST=854, + XED_IFORMFL_MOVHLPS_LAST=854, + XED_IFORMFL_MOVHPD_FIRST=855, + XED_IFORMFL_MOVHPD_LAST=856, + XED_IFORMFL_MOVHPS_FIRST=857, + XED_IFORMFL_MOVHPS_LAST=858, + XED_IFORMFL_MOVLHPS_FIRST=859, + XED_IFORMFL_MOVLHPS_LAST=859, + XED_IFORMFL_MOVLPD_FIRST=860, + XED_IFORMFL_MOVLPD_LAST=861, + XED_IFORMFL_MOVLPS_FIRST=862, + XED_IFORMFL_MOVLPS_LAST=863, + XED_IFORMFL_MOVMSKPD_FIRST=864, + XED_IFORMFL_MOVMSKPD_LAST=864, + XED_IFORMFL_MOVMSKPS_FIRST=865, + XED_IFORMFL_MOVMSKPS_LAST=865, + XED_IFORMFL_MOVNTDQ_FIRST=866, + XED_IFORMFL_MOVNTDQ_LAST=866, + XED_IFORMFL_MOVNTDQA_FIRST=867, + XED_IFORMFL_MOVNTDQA_LAST=867, + XED_IFORMFL_MOVNTI_FIRST=868, + XED_IFORMFL_MOVNTI_LAST=869, + XED_IFORMFL_MOVNTPD_FIRST=870, + XED_IFORMFL_MOVNTPD_LAST=870, + XED_IFORMFL_MOVNTPS_FIRST=871, + XED_IFORMFL_MOVNTPS_LAST=871, + XED_IFORMFL_MOVNTQ_FIRST=872, + XED_IFORMFL_MOVNTQ_LAST=872, + XED_IFORMFL_MOVNTSD_FIRST=873, + XED_IFORMFL_MOVNTSD_LAST=873, + XED_IFORMFL_MOVNTSS_FIRST=874, + XED_IFORMFL_MOVNTSS_LAST=874, + XED_IFORMFL_MOVQ_FIRST=875, + XED_IFORMFL_MOVQ_LAST=890, + XED_IFORMFL_MOVQ2DQ_FIRST=891, + XED_IFORMFL_MOVQ2DQ_LAST=891, + XED_IFORMFL_MOVSB_FIRST=892, + XED_IFORMFL_MOVSB_LAST=892, + XED_IFORMFL_MOVSD_FIRST=893, + XED_IFORMFL_MOVSD_LAST=893, + XED_IFORMFL_MOVSD_XMM_FIRST=894, + XED_IFORMFL_MOVSD_XMM_LAST=897, + XED_IFORMFL_MOVSHDUP_FIRST=898, + XED_IFORMFL_MOVSHDUP_LAST=899, + XED_IFORMFL_MOVSLDUP_FIRST=900, + XED_IFORMFL_MOVSLDUP_LAST=901, + XED_IFORMFL_MOVSQ_FIRST=902, + XED_IFORMFL_MOVSQ_LAST=902, + XED_IFORMFL_MOVSS_FIRST=903, + XED_IFORMFL_MOVSS_LAST=906, + XED_IFORMFL_MOVSW_FIRST=907, + XED_IFORMFL_MOVSW_LAST=907, + XED_IFORMFL_MOVSX_FIRST=908, + XED_IFORMFL_MOVSX_LAST=911, + XED_IFORMFL_MOVSXD_FIRST=912, + XED_IFORMFL_MOVSXD_LAST=913, + XED_IFORMFL_MOVUPD_FIRST=914, + XED_IFORMFL_MOVUPD_LAST=917, + XED_IFORMFL_MOVUPS_FIRST=918, + XED_IFORMFL_MOVUPS_LAST=921, + XED_IFORMFL_MOVZX_FIRST=922, + XED_IFORMFL_MOVZX_LAST=925, + XED_IFORMFL_MOV_CR_FIRST=926, + XED_IFORMFL_MOV_CR_LAST=929, + XED_IFORMFL_MOV_DR_FIRST=930, + XED_IFORMFL_MOV_DR_LAST=933, + XED_IFORMFL_MPSADBW_FIRST=934, + XED_IFORMFL_MPSADBW_LAST=935, + XED_IFORMFL_MUL_FIRST=936, + XED_IFORMFL_MUL_LAST=939, + XED_IFORMFL_MULPD_FIRST=940, + XED_IFORMFL_MULPD_LAST=941, + XED_IFORMFL_MULPS_FIRST=942, + XED_IFORMFL_MULPS_LAST=943, + XED_IFORMFL_MULSD_FIRST=944, + XED_IFORMFL_MULSD_LAST=945, + XED_IFORMFL_MULSS_FIRST=946, + XED_IFORMFL_MULSS_LAST=947, + XED_IFORMFL_MULX_FIRST=948, + XED_IFORMFL_MULX_LAST=951, + XED_IFORMFL_MWAIT_FIRST=952, + XED_IFORMFL_MWAIT_LAST=952, + XED_IFORMFL_NEG_FIRST=953, + XED_IFORMFL_NEG_LAST=956, + XED_IFORMFL_NEG_LOCK_FIRST=957, + XED_IFORMFL_NEG_LOCK_LAST=958, + XED_IFORMFL_NOP_FIRST=959, + XED_IFORMFL_NOP_LAST=986, + XED_IFORMFL_NOT_FIRST=987, + XED_IFORMFL_NOT_LAST=990, + XED_IFORMFL_NOT_LOCK_FIRST=991, + XED_IFORMFL_NOT_LOCK_LAST=992, + XED_IFORMFL_OR_FIRST=993, + XED_IFORMFL_OR_LAST=1010, + XED_IFORMFL_ORPD_FIRST=1011, + XED_IFORMFL_ORPD_LAST=1012, + XED_IFORMFL_ORPS_FIRST=1013, + XED_IFORMFL_ORPS_LAST=1014, + XED_IFORMFL_OR_LOCK_FIRST=1015, + XED_IFORMFL_OR_LOCK_LAST=1020, + XED_IFORMFL_OUT_FIRST=1021, + XED_IFORMFL_OUT_LAST=1024, + XED_IFORMFL_OUTSB_FIRST=1025, + XED_IFORMFL_OUTSB_LAST=1025, + XED_IFORMFL_OUTSD_FIRST=1026, + XED_IFORMFL_OUTSD_LAST=1026, + XED_IFORMFL_OUTSW_FIRST=1027, + XED_IFORMFL_OUTSW_LAST=1027, + XED_IFORMFL_PABSB_FIRST=1028, + XED_IFORMFL_PABSB_LAST=1031, + XED_IFORMFL_PABSD_FIRST=1032, + XED_IFORMFL_PABSD_LAST=1035, + XED_IFORMFL_PABSW_FIRST=1036, + XED_IFORMFL_PABSW_LAST=1039, + XED_IFORMFL_PACKSSDW_FIRST=1040, + XED_IFORMFL_PACKSSDW_LAST=1043, + XED_IFORMFL_PACKSSWB_FIRST=1044, + XED_IFORMFL_PACKSSWB_LAST=1047, + XED_IFORMFL_PACKUSDW_FIRST=1048, + XED_IFORMFL_PACKUSDW_LAST=1049, + XED_IFORMFL_PACKUSWB_FIRST=1050, + XED_IFORMFL_PACKUSWB_LAST=1053, + XED_IFORMFL_PADDB_FIRST=1054, + XED_IFORMFL_PADDB_LAST=1057, + XED_IFORMFL_PADDD_FIRST=1058, + XED_IFORMFL_PADDD_LAST=1061, + XED_IFORMFL_PADDQ_FIRST=1062, + XED_IFORMFL_PADDQ_LAST=1065, + XED_IFORMFL_PADDSB_FIRST=1066, + XED_IFORMFL_PADDSB_LAST=1069, + XED_IFORMFL_PADDSW_FIRST=1070, + XED_IFORMFL_PADDSW_LAST=1073, + XED_IFORMFL_PADDUSB_FIRST=1074, + XED_IFORMFL_PADDUSB_LAST=1077, + XED_IFORMFL_PADDUSW_FIRST=1078, + XED_IFORMFL_PADDUSW_LAST=1081, + XED_IFORMFL_PADDW_FIRST=1082, + XED_IFORMFL_PADDW_LAST=1085, + XED_IFORMFL_PALIGNR_FIRST=1086, + XED_IFORMFL_PALIGNR_LAST=1089, + XED_IFORMFL_PAND_FIRST=1090, + XED_IFORMFL_PAND_LAST=1093, + XED_IFORMFL_PANDN_FIRST=1094, + XED_IFORMFL_PANDN_LAST=1097, + XED_IFORMFL_PAUSE_FIRST=1098, + XED_IFORMFL_PAUSE_LAST=1098, + XED_IFORMFL_PAVGB_FIRST=1099, + XED_IFORMFL_PAVGB_LAST=1102, + XED_IFORMFL_PAVGUSB_FIRST=1103, + XED_IFORMFL_PAVGUSB_LAST=1104, + XED_IFORMFL_PAVGW_FIRST=1105, + XED_IFORMFL_PAVGW_LAST=1108, + XED_IFORMFL_PBLENDVB_FIRST=1109, + XED_IFORMFL_PBLENDVB_LAST=1110, + XED_IFORMFL_PBLENDW_FIRST=1111, + XED_IFORMFL_PBLENDW_LAST=1112, + XED_IFORMFL_PCLMULQDQ_FIRST=1113, + XED_IFORMFL_PCLMULQDQ_LAST=1114, + XED_IFORMFL_PCMPEQB_FIRST=1115, + XED_IFORMFL_PCMPEQB_LAST=1118, + XED_IFORMFL_PCMPEQD_FIRST=1119, + XED_IFORMFL_PCMPEQD_LAST=1122, + XED_IFORMFL_PCMPEQQ_FIRST=1123, + XED_IFORMFL_PCMPEQQ_LAST=1124, + XED_IFORMFL_PCMPEQW_FIRST=1125, + XED_IFORMFL_PCMPEQW_LAST=1128, + XED_IFORMFL_PCMPESTRI_FIRST=1129, + XED_IFORMFL_PCMPESTRI_LAST=1130, + XED_IFORMFL_PCMPESTRM_FIRST=1131, + XED_IFORMFL_PCMPESTRM_LAST=1132, + XED_IFORMFL_PCMPGTB_FIRST=1133, + XED_IFORMFL_PCMPGTB_LAST=1136, + XED_IFORMFL_PCMPGTD_FIRST=1137, + XED_IFORMFL_PCMPGTD_LAST=1140, + XED_IFORMFL_PCMPGTQ_FIRST=1141, + XED_IFORMFL_PCMPGTQ_LAST=1142, + XED_IFORMFL_PCMPGTW_FIRST=1143, + XED_IFORMFL_PCMPGTW_LAST=1146, + XED_IFORMFL_PCMPISTRI_FIRST=1147, + XED_IFORMFL_PCMPISTRI_LAST=1148, + XED_IFORMFL_PCMPISTRM_FIRST=1149, + XED_IFORMFL_PCMPISTRM_LAST=1150, + XED_IFORMFL_PCOMMIT_FIRST=1151, + XED_IFORMFL_PCOMMIT_LAST=1151, + XED_IFORMFL_PDEP_FIRST=1152, + XED_IFORMFL_PDEP_LAST=1155, + XED_IFORMFL_PEXT_FIRST=1156, + XED_IFORMFL_PEXT_LAST=1159, + XED_IFORMFL_PEXTRB_FIRST=1160, + XED_IFORMFL_PEXTRB_LAST=1161, + XED_IFORMFL_PEXTRD_FIRST=1162, + XED_IFORMFL_PEXTRD_LAST=1163, + XED_IFORMFL_PEXTRQ_FIRST=1164, + XED_IFORMFL_PEXTRQ_LAST=1165, + XED_IFORMFL_PEXTRW_FIRST=1166, + XED_IFORMFL_PEXTRW_LAST=1167, + XED_IFORMFL_PEXTRW_SSE4_FIRST=1168, + XED_IFORMFL_PEXTRW_SSE4_LAST=1169, + XED_IFORMFL_PF2ID_FIRST=1170, + XED_IFORMFL_PF2ID_LAST=1171, + XED_IFORMFL_PF2IW_FIRST=1172, + XED_IFORMFL_PF2IW_LAST=1173, + XED_IFORMFL_PFACC_FIRST=1174, + XED_IFORMFL_PFACC_LAST=1175, + XED_IFORMFL_PFADD_FIRST=1176, + XED_IFORMFL_PFADD_LAST=1177, + XED_IFORMFL_PFCMPEQ_FIRST=1178, + XED_IFORMFL_PFCMPEQ_LAST=1179, + XED_IFORMFL_PFCMPGE_FIRST=1180, + XED_IFORMFL_PFCMPGE_LAST=1181, + XED_IFORMFL_PFCMPGT_FIRST=1182, + XED_IFORMFL_PFCMPGT_LAST=1183, + XED_IFORMFL_PFCPIT1_FIRST=1184, + XED_IFORMFL_PFCPIT1_LAST=1185, + XED_IFORMFL_PFMAX_FIRST=1186, + XED_IFORMFL_PFMAX_LAST=1187, + XED_IFORMFL_PFMIN_FIRST=1188, + XED_IFORMFL_PFMIN_LAST=1189, + XED_IFORMFL_PFMUL_FIRST=1190, + XED_IFORMFL_PFMUL_LAST=1191, + XED_IFORMFL_PFNACC_FIRST=1192, + XED_IFORMFL_PFNACC_LAST=1193, + XED_IFORMFL_PFPNACC_FIRST=1194, + XED_IFORMFL_PFPNACC_LAST=1195, + XED_IFORMFL_PFRCP_FIRST=1196, + XED_IFORMFL_PFRCP_LAST=1197, + XED_IFORMFL_PFRCPIT2_FIRST=1198, + XED_IFORMFL_PFRCPIT2_LAST=1199, + XED_IFORMFL_PFRSQIT1_FIRST=1200, + XED_IFORMFL_PFRSQIT1_LAST=1201, + XED_IFORMFL_PFSQRT_FIRST=1202, + XED_IFORMFL_PFSQRT_LAST=1203, + XED_IFORMFL_PFSUB_FIRST=1204, + XED_IFORMFL_PFSUB_LAST=1205, + XED_IFORMFL_PFSUBR_FIRST=1206, + XED_IFORMFL_PFSUBR_LAST=1207, + XED_IFORMFL_PHADDD_FIRST=1208, + XED_IFORMFL_PHADDD_LAST=1211, + XED_IFORMFL_PHADDSW_FIRST=1212, + XED_IFORMFL_PHADDSW_LAST=1215, + XED_IFORMFL_PHADDW_FIRST=1216, + XED_IFORMFL_PHADDW_LAST=1219, + XED_IFORMFL_PHMINPOSUW_FIRST=1220, + XED_IFORMFL_PHMINPOSUW_LAST=1221, + XED_IFORMFL_PHSUBD_FIRST=1222, + XED_IFORMFL_PHSUBD_LAST=1225, + XED_IFORMFL_PHSUBSW_FIRST=1226, + XED_IFORMFL_PHSUBSW_LAST=1229, + XED_IFORMFL_PHSUBW_FIRST=1230, + XED_IFORMFL_PHSUBW_LAST=1233, + XED_IFORMFL_PI2FD_FIRST=1234, + XED_IFORMFL_PI2FD_LAST=1235, + XED_IFORMFL_PI2FW_FIRST=1236, + XED_IFORMFL_PI2FW_LAST=1237, + XED_IFORMFL_PINSRB_FIRST=1238, + XED_IFORMFL_PINSRB_LAST=1239, + XED_IFORMFL_PINSRD_FIRST=1240, + XED_IFORMFL_PINSRD_LAST=1241, + XED_IFORMFL_PINSRQ_FIRST=1242, + XED_IFORMFL_PINSRQ_LAST=1243, + XED_IFORMFL_PINSRW_FIRST=1244, + XED_IFORMFL_PINSRW_LAST=1247, + XED_IFORMFL_PMADDUBSW_FIRST=1248, + XED_IFORMFL_PMADDUBSW_LAST=1251, + XED_IFORMFL_PMADDWD_FIRST=1252, + XED_IFORMFL_PMADDWD_LAST=1255, + XED_IFORMFL_PMAXSB_FIRST=1256, + XED_IFORMFL_PMAXSB_LAST=1257, + XED_IFORMFL_PMAXSD_FIRST=1258, + XED_IFORMFL_PMAXSD_LAST=1259, + XED_IFORMFL_PMAXSW_FIRST=1260, + XED_IFORMFL_PMAXSW_LAST=1263, + XED_IFORMFL_PMAXUB_FIRST=1264, + XED_IFORMFL_PMAXUB_LAST=1267, + XED_IFORMFL_PMAXUD_FIRST=1268, + XED_IFORMFL_PMAXUD_LAST=1269, + XED_IFORMFL_PMAXUW_FIRST=1270, + XED_IFORMFL_PMAXUW_LAST=1271, + XED_IFORMFL_PMINSB_FIRST=1272, + XED_IFORMFL_PMINSB_LAST=1273, + XED_IFORMFL_PMINSD_FIRST=1274, + XED_IFORMFL_PMINSD_LAST=1275, + XED_IFORMFL_PMINSW_FIRST=1276, + XED_IFORMFL_PMINSW_LAST=1279, + XED_IFORMFL_PMINUB_FIRST=1280, + XED_IFORMFL_PMINUB_LAST=1283, + XED_IFORMFL_PMINUD_FIRST=1284, + XED_IFORMFL_PMINUD_LAST=1285, + XED_IFORMFL_PMINUW_FIRST=1286, + XED_IFORMFL_PMINUW_LAST=1287, + XED_IFORMFL_PMOVMSKB_FIRST=1288, + XED_IFORMFL_PMOVMSKB_LAST=1289, + XED_IFORMFL_PMOVSXBD_FIRST=1290, + XED_IFORMFL_PMOVSXBD_LAST=1291, + XED_IFORMFL_PMOVSXBQ_FIRST=1292, + XED_IFORMFL_PMOVSXBQ_LAST=1293, + XED_IFORMFL_PMOVSXBW_FIRST=1294, + XED_IFORMFL_PMOVSXBW_LAST=1295, + XED_IFORMFL_PMOVSXDQ_FIRST=1296, + XED_IFORMFL_PMOVSXDQ_LAST=1297, + XED_IFORMFL_PMOVSXWD_FIRST=1298, + XED_IFORMFL_PMOVSXWD_LAST=1299, + XED_IFORMFL_PMOVSXWQ_FIRST=1300, + XED_IFORMFL_PMOVSXWQ_LAST=1301, + XED_IFORMFL_PMOVZXBD_FIRST=1302, + XED_IFORMFL_PMOVZXBD_LAST=1303, + XED_IFORMFL_PMOVZXBQ_FIRST=1304, + XED_IFORMFL_PMOVZXBQ_LAST=1305, + XED_IFORMFL_PMOVZXBW_FIRST=1306, + XED_IFORMFL_PMOVZXBW_LAST=1307, + XED_IFORMFL_PMOVZXDQ_FIRST=1308, + XED_IFORMFL_PMOVZXDQ_LAST=1309, + XED_IFORMFL_PMOVZXWD_FIRST=1310, + XED_IFORMFL_PMOVZXWD_LAST=1311, + XED_IFORMFL_PMOVZXWQ_FIRST=1312, + XED_IFORMFL_PMOVZXWQ_LAST=1313, + XED_IFORMFL_PMULDQ_FIRST=1314, + XED_IFORMFL_PMULDQ_LAST=1315, + XED_IFORMFL_PMULHRSW_FIRST=1316, + XED_IFORMFL_PMULHRSW_LAST=1319, + XED_IFORMFL_PMULHRW_FIRST=1320, + XED_IFORMFL_PMULHRW_LAST=1321, + XED_IFORMFL_PMULHUW_FIRST=1322, + XED_IFORMFL_PMULHUW_LAST=1325, + XED_IFORMFL_PMULHW_FIRST=1326, + XED_IFORMFL_PMULHW_LAST=1329, + XED_IFORMFL_PMULLD_FIRST=1330, + XED_IFORMFL_PMULLD_LAST=1331, + XED_IFORMFL_PMULLW_FIRST=1332, + XED_IFORMFL_PMULLW_LAST=1335, + XED_IFORMFL_PMULUDQ_FIRST=1336, + XED_IFORMFL_PMULUDQ_LAST=1339, + XED_IFORMFL_POP_FIRST=1340, + XED_IFORMFL_POP_LAST=1347, + XED_IFORMFL_POPA_FIRST=1348, + XED_IFORMFL_POPA_LAST=1348, + XED_IFORMFL_POPAD_FIRST=1349, + XED_IFORMFL_POPAD_LAST=1349, + XED_IFORMFL_POPCNT_FIRST=1350, + XED_IFORMFL_POPCNT_LAST=1351, + XED_IFORMFL_POPF_FIRST=1352, + XED_IFORMFL_POPF_LAST=1352, + XED_IFORMFL_POPFD_FIRST=1353, + XED_IFORMFL_POPFD_LAST=1353, + XED_IFORMFL_POPFQ_FIRST=1354, + XED_IFORMFL_POPFQ_LAST=1354, + XED_IFORMFL_POR_FIRST=1355, + XED_IFORMFL_POR_LAST=1358, + XED_IFORMFL_PREFETCHNTA_FIRST=1359, + XED_IFORMFL_PREFETCHNTA_LAST=1359, + XED_IFORMFL_PREFETCHT0_FIRST=1360, + XED_IFORMFL_PREFETCHT0_LAST=1360, + XED_IFORMFL_PREFETCHT1_FIRST=1361, + XED_IFORMFL_PREFETCHT1_LAST=1361, + XED_IFORMFL_PREFETCHT2_FIRST=1362, + XED_IFORMFL_PREFETCHT2_LAST=1362, + XED_IFORMFL_PREFETCHW_FIRST=1363, + XED_IFORMFL_PREFETCHW_LAST=1364, + XED_IFORMFL_PREFETCHWT1_FIRST=1365, + XED_IFORMFL_PREFETCHWT1_LAST=1365, + XED_IFORMFL_PREFETCH_EXCLUSIVE_FIRST=1366, + XED_IFORMFL_PREFETCH_EXCLUSIVE_LAST=1366, + XED_IFORMFL_PREFETCH_RESERVED_FIRST=1367, + XED_IFORMFL_PREFETCH_RESERVED_LAST=1370, + XED_IFORMFL_PSADBW_FIRST=1371, + XED_IFORMFL_PSADBW_LAST=1374, + XED_IFORMFL_PSHUFB_FIRST=1375, + XED_IFORMFL_PSHUFB_LAST=1378, + XED_IFORMFL_PSHUFD_FIRST=1379, + XED_IFORMFL_PSHUFD_LAST=1380, + XED_IFORMFL_PSHUFHW_FIRST=1381, + XED_IFORMFL_PSHUFHW_LAST=1382, + XED_IFORMFL_PSHUFLW_FIRST=1383, + XED_IFORMFL_PSHUFLW_LAST=1384, + XED_IFORMFL_PSHUFW_FIRST=1385, + XED_IFORMFL_PSHUFW_LAST=1386, + XED_IFORMFL_PSIGNB_FIRST=1387, + XED_IFORMFL_PSIGNB_LAST=1390, + XED_IFORMFL_PSIGND_FIRST=1391, + XED_IFORMFL_PSIGND_LAST=1394, + XED_IFORMFL_PSIGNW_FIRST=1395, + XED_IFORMFL_PSIGNW_LAST=1398, + XED_IFORMFL_PSLLD_FIRST=1399, + XED_IFORMFL_PSLLD_LAST=1404, + XED_IFORMFL_PSLLDQ_FIRST=1405, + XED_IFORMFL_PSLLDQ_LAST=1405, + XED_IFORMFL_PSLLQ_FIRST=1406, + XED_IFORMFL_PSLLQ_LAST=1411, + XED_IFORMFL_PSLLW_FIRST=1412, + XED_IFORMFL_PSLLW_LAST=1417, + XED_IFORMFL_PSRAD_FIRST=1418, + XED_IFORMFL_PSRAD_LAST=1423, + XED_IFORMFL_PSRAW_FIRST=1424, + XED_IFORMFL_PSRAW_LAST=1429, + XED_IFORMFL_PSRLD_FIRST=1430, + XED_IFORMFL_PSRLD_LAST=1435, + XED_IFORMFL_PSRLDQ_FIRST=1436, + XED_IFORMFL_PSRLDQ_LAST=1436, + XED_IFORMFL_PSRLQ_FIRST=1437, + XED_IFORMFL_PSRLQ_LAST=1442, + XED_IFORMFL_PSRLW_FIRST=1443, + XED_IFORMFL_PSRLW_LAST=1448, + XED_IFORMFL_PSUBB_FIRST=1449, + XED_IFORMFL_PSUBB_LAST=1452, + XED_IFORMFL_PSUBD_FIRST=1453, + XED_IFORMFL_PSUBD_LAST=1456, + XED_IFORMFL_PSUBQ_FIRST=1457, + XED_IFORMFL_PSUBQ_LAST=1460, + XED_IFORMFL_PSUBSB_FIRST=1461, + XED_IFORMFL_PSUBSB_LAST=1464, + XED_IFORMFL_PSUBSW_FIRST=1465, + XED_IFORMFL_PSUBSW_LAST=1468, + XED_IFORMFL_PSUBUSB_FIRST=1469, + XED_IFORMFL_PSUBUSB_LAST=1472, + XED_IFORMFL_PSUBUSW_FIRST=1473, + XED_IFORMFL_PSUBUSW_LAST=1476, + XED_IFORMFL_PSUBW_FIRST=1477, + XED_IFORMFL_PSUBW_LAST=1480, + XED_IFORMFL_PSWAPD_FIRST=1481, + XED_IFORMFL_PSWAPD_LAST=1482, + XED_IFORMFL_PTEST_FIRST=1483, + XED_IFORMFL_PTEST_LAST=1484, + XED_IFORMFL_PUNPCKHBW_FIRST=1485, + XED_IFORMFL_PUNPCKHBW_LAST=1488, + XED_IFORMFL_PUNPCKHDQ_FIRST=1489, + XED_IFORMFL_PUNPCKHDQ_LAST=1492, + XED_IFORMFL_PUNPCKHQDQ_FIRST=1493, + XED_IFORMFL_PUNPCKHQDQ_LAST=1494, + XED_IFORMFL_PUNPCKHWD_FIRST=1495, + XED_IFORMFL_PUNPCKHWD_LAST=1498, + XED_IFORMFL_PUNPCKLBW_FIRST=1499, + XED_IFORMFL_PUNPCKLBW_LAST=1502, + XED_IFORMFL_PUNPCKLDQ_FIRST=1503, + XED_IFORMFL_PUNPCKLDQ_LAST=1506, + XED_IFORMFL_PUNPCKLQDQ_FIRST=1507, + XED_IFORMFL_PUNPCKLQDQ_LAST=1508, + XED_IFORMFL_PUNPCKLWD_FIRST=1509, + XED_IFORMFL_PUNPCKLWD_LAST=1512, + XED_IFORMFL_PUSH_FIRST=1513, + XED_IFORMFL_PUSH_LAST=1523, + XED_IFORMFL_PUSHA_FIRST=1524, + XED_IFORMFL_PUSHA_LAST=1524, + XED_IFORMFL_PUSHAD_FIRST=1525, + XED_IFORMFL_PUSHAD_LAST=1525, + XED_IFORMFL_PUSHF_FIRST=1526, + XED_IFORMFL_PUSHF_LAST=1526, + XED_IFORMFL_PUSHFD_FIRST=1527, + XED_IFORMFL_PUSHFD_LAST=1527, + XED_IFORMFL_PUSHFQ_FIRST=1528, + XED_IFORMFL_PUSHFQ_LAST=1528, + XED_IFORMFL_PXOR_FIRST=1529, + XED_IFORMFL_PXOR_LAST=1532, + XED_IFORMFL_RCL_FIRST=1533, + XED_IFORMFL_RCL_LAST=1544, + XED_IFORMFL_RCPPS_FIRST=1545, + XED_IFORMFL_RCPPS_LAST=1546, + XED_IFORMFL_RCPSS_FIRST=1547, + XED_IFORMFL_RCPSS_LAST=1548, + XED_IFORMFL_RCR_FIRST=1549, + XED_IFORMFL_RCR_LAST=1560, + XED_IFORMFL_RDFSBASE_FIRST=1561, + XED_IFORMFL_RDFSBASE_LAST=1561, + XED_IFORMFL_RDGSBASE_FIRST=1562, + XED_IFORMFL_RDGSBASE_LAST=1562, + XED_IFORMFL_RDMSR_FIRST=1563, + XED_IFORMFL_RDMSR_LAST=1563, + XED_IFORMFL_RDPMC_FIRST=1564, + XED_IFORMFL_RDPMC_LAST=1564, + XED_IFORMFL_RDRAND_FIRST=1565, + XED_IFORMFL_RDRAND_LAST=1565, + XED_IFORMFL_RDSEED_FIRST=1566, + XED_IFORMFL_RDSEED_LAST=1566, + XED_IFORMFL_RDTSC_FIRST=1567, + XED_IFORMFL_RDTSC_LAST=1567, + XED_IFORMFL_RDTSCP_FIRST=1568, + XED_IFORMFL_RDTSCP_LAST=1568, + XED_IFORMFL_REPE_CMPSB_FIRST=1569, + XED_IFORMFL_REPE_CMPSB_LAST=1569, + XED_IFORMFL_REPE_CMPSD_FIRST=1570, + XED_IFORMFL_REPE_CMPSD_LAST=1570, + XED_IFORMFL_REPE_CMPSQ_FIRST=1571, + XED_IFORMFL_REPE_CMPSQ_LAST=1571, + XED_IFORMFL_REPE_CMPSW_FIRST=1572, + XED_IFORMFL_REPE_CMPSW_LAST=1572, + XED_IFORMFL_REPE_SCASB_FIRST=1573, + XED_IFORMFL_REPE_SCASB_LAST=1573, + XED_IFORMFL_REPE_SCASD_FIRST=1574, + XED_IFORMFL_REPE_SCASD_LAST=1574, + XED_IFORMFL_REPE_SCASQ_FIRST=1575, + XED_IFORMFL_REPE_SCASQ_LAST=1575, + XED_IFORMFL_REPE_SCASW_FIRST=1576, + XED_IFORMFL_REPE_SCASW_LAST=1576, + XED_IFORMFL_REPNE_CMPSB_FIRST=1577, + XED_IFORMFL_REPNE_CMPSB_LAST=1577, + XED_IFORMFL_REPNE_CMPSD_FIRST=1578, + XED_IFORMFL_REPNE_CMPSD_LAST=1578, + XED_IFORMFL_REPNE_CMPSQ_FIRST=1579, + XED_IFORMFL_REPNE_CMPSQ_LAST=1579, + XED_IFORMFL_REPNE_CMPSW_FIRST=1580, + XED_IFORMFL_REPNE_CMPSW_LAST=1580, + XED_IFORMFL_REPNE_SCASB_FIRST=1581, + XED_IFORMFL_REPNE_SCASB_LAST=1581, + XED_IFORMFL_REPNE_SCASD_FIRST=1582, + XED_IFORMFL_REPNE_SCASD_LAST=1582, + XED_IFORMFL_REPNE_SCASQ_FIRST=1583, + XED_IFORMFL_REPNE_SCASQ_LAST=1583, + XED_IFORMFL_REPNE_SCASW_FIRST=1584, + XED_IFORMFL_REPNE_SCASW_LAST=1584, + XED_IFORMFL_REP_INSB_FIRST=1585, + XED_IFORMFL_REP_INSB_LAST=1585, + XED_IFORMFL_REP_INSD_FIRST=1586, + XED_IFORMFL_REP_INSD_LAST=1586, + XED_IFORMFL_REP_INSW_FIRST=1587, + XED_IFORMFL_REP_INSW_LAST=1587, + XED_IFORMFL_REP_LODSB_FIRST=1588, + XED_IFORMFL_REP_LODSB_LAST=1588, + XED_IFORMFL_REP_LODSD_FIRST=1589, + XED_IFORMFL_REP_LODSD_LAST=1589, + XED_IFORMFL_REP_LODSQ_FIRST=1590, + XED_IFORMFL_REP_LODSQ_LAST=1590, + XED_IFORMFL_REP_LODSW_FIRST=1591, + XED_IFORMFL_REP_LODSW_LAST=1591, + XED_IFORMFL_REP_MOVSB_FIRST=1592, + XED_IFORMFL_REP_MOVSB_LAST=1592, + XED_IFORMFL_REP_MOVSD_FIRST=1593, + XED_IFORMFL_REP_MOVSD_LAST=1593, + XED_IFORMFL_REP_MOVSQ_FIRST=1594, + XED_IFORMFL_REP_MOVSQ_LAST=1594, + XED_IFORMFL_REP_MOVSW_FIRST=1595, + XED_IFORMFL_REP_MOVSW_LAST=1595, + XED_IFORMFL_REP_OUTSB_FIRST=1596, + XED_IFORMFL_REP_OUTSB_LAST=1596, + XED_IFORMFL_REP_OUTSD_FIRST=1597, + XED_IFORMFL_REP_OUTSD_LAST=1597, + XED_IFORMFL_REP_OUTSW_FIRST=1598, + XED_IFORMFL_REP_OUTSW_LAST=1598, + XED_IFORMFL_REP_STOSB_FIRST=1599, + XED_IFORMFL_REP_STOSB_LAST=1599, + XED_IFORMFL_REP_STOSD_FIRST=1600, + XED_IFORMFL_REP_STOSD_LAST=1600, + XED_IFORMFL_REP_STOSQ_FIRST=1601, + XED_IFORMFL_REP_STOSQ_LAST=1601, + XED_IFORMFL_REP_STOSW_FIRST=1602, + XED_IFORMFL_REP_STOSW_LAST=1602, + XED_IFORMFL_RET_FAR_FIRST=1603, + XED_IFORMFL_RET_FAR_LAST=1604, + XED_IFORMFL_RET_NEAR_FIRST=1605, + XED_IFORMFL_RET_NEAR_LAST=1606, + XED_IFORMFL_ROL_FIRST=1607, + XED_IFORMFL_ROL_LAST=1618, + XED_IFORMFL_ROR_FIRST=1619, + XED_IFORMFL_ROR_LAST=1630, + XED_IFORMFL_RORX_FIRST=1631, + XED_IFORMFL_RORX_LAST=1634, + XED_IFORMFL_ROUNDPD_FIRST=1635, + XED_IFORMFL_ROUNDPD_LAST=1636, + XED_IFORMFL_ROUNDPS_FIRST=1637, + XED_IFORMFL_ROUNDPS_LAST=1638, + XED_IFORMFL_ROUNDSD_FIRST=1639, + XED_IFORMFL_ROUNDSD_LAST=1640, + XED_IFORMFL_ROUNDSS_FIRST=1641, + XED_IFORMFL_ROUNDSS_LAST=1642, + XED_IFORMFL_RSM_FIRST=1643, + XED_IFORMFL_RSM_LAST=1643, + XED_IFORMFL_RSQRTPS_FIRST=1644, + XED_IFORMFL_RSQRTPS_LAST=1645, + XED_IFORMFL_RSQRTSS_FIRST=1646, + XED_IFORMFL_RSQRTSS_LAST=1647, + XED_IFORMFL_SAHF_FIRST=1648, + XED_IFORMFL_SAHF_LAST=1648, + XED_IFORMFL_SALC_FIRST=1649, + XED_IFORMFL_SALC_LAST=1649, + XED_IFORMFL_SAR_FIRST=1650, + XED_IFORMFL_SAR_LAST=1661, + XED_IFORMFL_SARX_FIRST=1662, + XED_IFORMFL_SARX_LAST=1665, + XED_IFORMFL_SBB_FIRST=1666, + XED_IFORMFL_SBB_LAST=1683, + XED_IFORMFL_SBB_LOCK_FIRST=1684, + XED_IFORMFL_SBB_LOCK_LAST=1689, + XED_IFORMFL_SCASB_FIRST=1690, + XED_IFORMFL_SCASB_LAST=1690, + XED_IFORMFL_SCASD_FIRST=1691, + XED_IFORMFL_SCASD_LAST=1691, + XED_IFORMFL_SCASQ_FIRST=1692, + XED_IFORMFL_SCASQ_LAST=1692, + XED_IFORMFL_SCASW_FIRST=1693, + XED_IFORMFL_SCASW_LAST=1693, + XED_IFORMFL_SETB_FIRST=1694, + XED_IFORMFL_SETB_LAST=1695, + XED_IFORMFL_SETBE_FIRST=1696, + XED_IFORMFL_SETBE_LAST=1697, + XED_IFORMFL_SETL_FIRST=1698, + XED_IFORMFL_SETL_LAST=1699, + XED_IFORMFL_SETLE_FIRST=1700, + XED_IFORMFL_SETLE_LAST=1701, + XED_IFORMFL_SETNB_FIRST=1702, + XED_IFORMFL_SETNB_LAST=1703, + XED_IFORMFL_SETNBE_FIRST=1704, + XED_IFORMFL_SETNBE_LAST=1705, + XED_IFORMFL_SETNL_FIRST=1706, + XED_IFORMFL_SETNL_LAST=1707, + XED_IFORMFL_SETNLE_FIRST=1708, + XED_IFORMFL_SETNLE_LAST=1709, + XED_IFORMFL_SETNO_FIRST=1710, + XED_IFORMFL_SETNO_LAST=1711, + XED_IFORMFL_SETNP_FIRST=1712, + XED_IFORMFL_SETNP_LAST=1713, + XED_IFORMFL_SETNS_FIRST=1714, + XED_IFORMFL_SETNS_LAST=1715, + XED_IFORMFL_SETNZ_FIRST=1716, + XED_IFORMFL_SETNZ_LAST=1717, + XED_IFORMFL_SETO_FIRST=1718, + XED_IFORMFL_SETO_LAST=1719, + XED_IFORMFL_SETP_FIRST=1720, + XED_IFORMFL_SETP_LAST=1721, + XED_IFORMFL_SETS_FIRST=1722, + XED_IFORMFL_SETS_LAST=1723, + XED_IFORMFL_SETZ_FIRST=1724, + XED_IFORMFL_SETZ_LAST=1725, + XED_IFORMFL_SFENCE_FIRST=1726, + XED_IFORMFL_SFENCE_LAST=1726, + XED_IFORMFL_SGDT_FIRST=1727, + XED_IFORMFL_SGDT_LAST=1728, + XED_IFORMFL_SHA1MSG1_FIRST=1729, + XED_IFORMFL_SHA1MSG1_LAST=1730, + XED_IFORMFL_SHA1MSG2_FIRST=1731, + XED_IFORMFL_SHA1MSG2_LAST=1732, + XED_IFORMFL_SHA1NEXTE_FIRST=1733, + XED_IFORMFL_SHA1NEXTE_LAST=1734, + XED_IFORMFL_SHA1RNDS4_FIRST=1735, + XED_IFORMFL_SHA1RNDS4_LAST=1736, + XED_IFORMFL_SHA256MSG1_FIRST=1737, + XED_IFORMFL_SHA256MSG1_LAST=1738, + XED_IFORMFL_SHA256MSG2_FIRST=1739, + XED_IFORMFL_SHA256MSG2_LAST=1740, + XED_IFORMFL_SHA256RNDS2_FIRST=1741, + XED_IFORMFL_SHA256RNDS2_LAST=1742, + XED_IFORMFL_SHL_FIRST=1743, + XED_IFORMFL_SHL_LAST=1766, + XED_IFORMFL_SHLD_FIRST=1767, + XED_IFORMFL_SHLD_LAST=1770, + XED_IFORMFL_SHLX_FIRST=1771, + XED_IFORMFL_SHLX_LAST=1774, + XED_IFORMFL_SHR_FIRST=1775, + XED_IFORMFL_SHR_LAST=1786, + XED_IFORMFL_SHRD_FIRST=1787, + XED_IFORMFL_SHRD_LAST=1790, + XED_IFORMFL_SHRX_FIRST=1791, + XED_IFORMFL_SHRX_LAST=1794, + XED_IFORMFL_SHUFPD_FIRST=1795, + XED_IFORMFL_SHUFPD_LAST=1796, + XED_IFORMFL_SHUFPS_FIRST=1797, + XED_IFORMFL_SHUFPS_LAST=1798, + XED_IFORMFL_SIDT_FIRST=1799, + XED_IFORMFL_SIDT_LAST=1800, + XED_IFORMFL_SKINIT_FIRST=1801, + XED_IFORMFL_SKINIT_LAST=1801, + XED_IFORMFL_SLDT_FIRST=1802, + XED_IFORMFL_SLDT_LAST=1803, + XED_IFORMFL_SLWPCB_FIRST=1804, + XED_IFORMFL_SLWPCB_LAST=1804, + XED_IFORMFL_SMSW_FIRST=1805, + XED_IFORMFL_SMSW_LAST=1806, + XED_IFORMFL_SQRTPD_FIRST=1807, + XED_IFORMFL_SQRTPD_LAST=1808, + XED_IFORMFL_SQRTPS_FIRST=1809, + XED_IFORMFL_SQRTPS_LAST=1810, + XED_IFORMFL_SQRTSD_FIRST=1811, + XED_IFORMFL_SQRTSD_LAST=1812, + XED_IFORMFL_SQRTSS_FIRST=1813, + XED_IFORMFL_SQRTSS_LAST=1814, + XED_IFORMFL_STAC_FIRST=1815, + XED_IFORMFL_STAC_LAST=1815, + XED_IFORMFL_STC_FIRST=1816, + XED_IFORMFL_STC_LAST=1816, + XED_IFORMFL_STD_FIRST=1817, + XED_IFORMFL_STD_LAST=1817, + XED_IFORMFL_STGI_FIRST=1818, + XED_IFORMFL_STGI_LAST=1818, + XED_IFORMFL_STI_FIRST=1819, + XED_IFORMFL_STI_LAST=1819, + XED_IFORMFL_STMXCSR_FIRST=1820, + XED_IFORMFL_STMXCSR_LAST=1820, + XED_IFORMFL_STOSB_FIRST=1821, + XED_IFORMFL_STOSB_LAST=1821, + XED_IFORMFL_STOSD_FIRST=1822, + XED_IFORMFL_STOSD_LAST=1822, + XED_IFORMFL_STOSQ_FIRST=1823, + XED_IFORMFL_STOSQ_LAST=1823, + XED_IFORMFL_STOSW_FIRST=1824, + XED_IFORMFL_STOSW_LAST=1824, + XED_IFORMFL_STR_FIRST=1825, + XED_IFORMFL_STR_LAST=1826, + XED_IFORMFL_SUB_FIRST=1827, + XED_IFORMFL_SUB_LAST=1844, + XED_IFORMFL_SUBPD_FIRST=1845, + XED_IFORMFL_SUBPD_LAST=1846, + XED_IFORMFL_SUBPS_FIRST=1847, + XED_IFORMFL_SUBPS_LAST=1848, + XED_IFORMFL_SUBSD_FIRST=1849, + XED_IFORMFL_SUBSD_LAST=1850, + XED_IFORMFL_SUBSS_FIRST=1851, + XED_IFORMFL_SUBSS_LAST=1852, + XED_IFORMFL_SUB_LOCK_FIRST=1853, + XED_IFORMFL_SUB_LOCK_LAST=1858, + XED_IFORMFL_SWAPGS_FIRST=1859, + XED_IFORMFL_SWAPGS_LAST=1859, + XED_IFORMFL_SYSCALL_FIRST=1860, + XED_IFORMFL_SYSCALL_LAST=1860, + XED_IFORMFL_SYSCALL_AMD_FIRST=1861, + XED_IFORMFL_SYSCALL_AMD_LAST=1861, + XED_IFORMFL_SYSENTER_FIRST=1862, + XED_IFORMFL_SYSENTER_LAST=1862, + XED_IFORMFL_SYSEXIT_FIRST=1863, + XED_IFORMFL_SYSEXIT_LAST=1863, + XED_IFORMFL_SYSRET_FIRST=1864, + XED_IFORMFL_SYSRET_LAST=1864, + XED_IFORMFL_SYSRET_AMD_FIRST=1865, + XED_IFORMFL_SYSRET_AMD_LAST=1865, + XED_IFORMFL_T1MSKC_FIRST=1866, + XED_IFORMFL_T1MSKC_LAST=1867, + XED_IFORMFL_TEST_FIRST=1868, + XED_IFORMFL_TEST_LAST=1881, + XED_IFORMFL_TZCNT_FIRST=1882, + XED_IFORMFL_TZCNT_LAST=1883, + XED_IFORMFL_TZMSK_FIRST=1884, + XED_IFORMFL_TZMSK_LAST=1885, + XED_IFORMFL_UCOMISD_FIRST=1886, + XED_IFORMFL_UCOMISD_LAST=1887, + XED_IFORMFL_UCOMISS_FIRST=1888, + XED_IFORMFL_UCOMISS_LAST=1889, + XED_IFORMFL_UD2_FIRST=1890, + XED_IFORMFL_UD2_LAST=1890, + XED_IFORMFL_UNPCKHPD_FIRST=1891, + XED_IFORMFL_UNPCKHPD_LAST=1892, + XED_IFORMFL_UNPCKHPS_FIRST=1893, + XED_IFORMFL_UNPCKHPS_LAST=1894, + XED_IFORMFL_UNPCKLPD_FIRST=1895, + XED_IFORMFL_UNPCKLPD_LAST=1896, + XED_IFORMFL_UNPCKLPS_FIRST=1897, + XED_IFORMFL_UNPCKLPS_LAST=1898, + XED_IFORMFL_VADDPD_FIRST=1899, + XED_IFORMFL_VADDPD_LAST=1908, + XED_IFORMFL_VADDPS_FIRST=1909, + XED_IFORMFL_VADDPS_LAST=1918, + XED_IFORMFL_VADDSD_FIRST=1919, + XED_IFORMFL_VADDSD_LAST=1922, + XED_IFORMFL_VADDSS_FIRST=1923, + XED_IFORMFL_VADDSS_LAST=1926, + XED_IFORMFL_VADDSUBPD_FIRST=1927, + XED_IFORMFL_VADDSUBPD_LAST=1930, + XED_IFORMFL_VADDSUBPS_FIRST=1931, + XED_IFORMFL_VADDSUBPS_LAST=1934, + XED_IFORMFL_VAESDEC_FIRST=1935, + XED_IFORMFL_VAESDEC_LAST=1936, + XED_IFORMFL_VAESDECLAST_FIRST=1937, + XED_IFORMFL_VAESDECLAST_LAST=1938, + XED_IFORMFL_VAESENC_FIRST=1939, + XED_IFORMFL_VAESENC_LAST=1940, + XED_IFORMFL_VAESENCLAST_FIRST=1941, + XED_IFORMFL_VAESENCLAST_LAST=1942, + XED_IFORMFL_VAESIMC_FIRST=1943, + XED_IFORMFL_VAESIMC_LAST=1944, + XED_IFORMFL_VAESKEYGENASSIST_FIRST=1945, + XED_IFORMFL_VAESKEYGENASSIST_LAST=1946, + XED_IFORMFL_VALIGND_FIRST=1947, + XED_IFORMFL_VALIGND_LAST=1952, + XED_IFORMFL_VALIGNQ_FIRST=1953, + XED_IFORMFL_VALIGNQ_LAST=1958, + XED_IFORMFL_VANDNPD_FIRST=1959, + XED_IFORMFL_VANDNPD_LAST=1968, + XED_IFORMFL_VANDNPS_FIRST=1969, + XED_IFORMFL_VANDNPS_LAST=1978, + XED_IFORMFL_VANDPD_FIRST=1979, + XED_IFORMFL_VANDPD_LAST=1988, + XED_IFORMFL_VANDPS_FIRST=1989, + XED_IFORMFL_VANDPS_LAST=1998, + XED_IFORMFL_VBLENDMPD_FIRST=1999, + XED_IFORMFL_VBLENDMPD_LAST=2004, + XED_IFORMFL_VBLENDMPS_FIRST=2005, + XED_IFORMFL_VBLENDMPS_LAST=2010, + XED_IFORMFL_VBLENDPD_FIRST=2011, + XED_IFORMFL_VBLENDPD_LAST=2014, + XED_IFORMFL_VBLENDPS_FIRST=2015, + XED_IFORMFL_VBLENDPS_LAST=2018, + XED_IFORMFL_VBLENDVPD_FIRST=2019, + XED_IFORMFL_VBLENDVPD_LAST=2022, + XED_IFORMFL_VBLENDVPS_FIRST=2023, + XED_IFORMFL_VBLENDVPS_LAST=2026, + XED_IFORMFL_VBROADCASTF128_FIRST=2027, + XED_IFORMFL_VBROADCASTF128_LAST=2027, + XED_IFORMFL_VBROADCASTF32X2_FIRST=2028, + XED_IFORMFL_VBROADCASTF32X2_LAST=2031, + XED_IFORMFL_VBROADCASTF32X4_FIRST=2032, + XED_IFORMFL_VBROADCASTF32X4_LAST=2033, + XED_IFORMFL_VBROADCASTF32X8_FIRST=2034, + XED_IFORMFL_VBROADCASTF32X8_LAST=2034, + XED_IFORMFL_VBROADCASTF64X2_FIRST=2035, + XED_IFORMFL_VBROADCASTF64X2_LAST=2036, + XED_IFORMFL_VBROADCASTF64X4_FIRST=2037, + XED_IFORMFL_VBROADCASTF64X4_LAST=2037, + XED_IFORMFL_VBROADCASTI128_FIRST=2038, + XED_IFORMFL_VBROADCASTI128_LAST=2038, + XED_IFORMFL_VBROADCASTI32X2_FIRST=2039, + XED_IFORMFL_VBROADCASTI32X2_LAST=2044, + XED_IFORMFL_VBROADCASTI32X4_FIRST=2045, + XED_IFORMFL_VBROADCASTI32X4_LAST=2046, + XED_IFORMFL_VBROADCASTI32X8_FIRST=2047, + XED_IFORMFL_VBROADCASTI32X8_LAST=2047, + XED_IFORMFL_VBROADCASTI64X2_FIRST=2048, + XED_IFORMFL_VBROADCASTI64X2_LAST=2049, + XED_IFORMFL_VBROADCASTI64X4_FIRST=2050, + XED_IFORMFL_VBROADCASTI64X4_LAST=2050, + XED_IFORMFL_VBROADCASTSD_FIRST=2051, + XED_IFORMFL_VBROADCASTSD_LAST=2056, + XED_IFORMFL_VBROADCASTSS_FIRST=2057, + XED_IFORMFL_VBROADCASTSS_LAST=2066, + XED_IFORMFL_VCMPPD_FIRST=2067, + XED_IFORMFL_VCMPPD_LAST=2076, + XED_IFORMFL_VCMPPS_FIRST=2077, + XED_IFORMFL_VCMPPS_LAST=2086, + XED_IFORMFL_VCMPSD_FIRST=2087, + XED_IFORMFL_VCMPSD_LAST=2090, + XED_IFORMFL_VCMPSS_FIRST=2091, + XED_IFORMFL_VCMPSS_LAST=2094, + XED_IFORMFL_VCOMISD_FIRST=2095, + XED_IFORMFL_VCOMISD_LAST=2098, + XED_IFORMFL_VCOMISS_FIRST=2099, + XED_IFORMFL_VCOMISS_LAST=2102, + XED_IFORMFL_VCOMPRESSPD_FIRST=2103, + XED_IFORMFL_VCOMPRESSPD_LAST=2108, + XED_IFORMFL_VCOMPRESSPS_FIRST=2109, + XED_IFORMFL_VCOMPRESSPS_LAST=2114, + XED_IFORMFL_VCVTDQ2PD_FIRST=2115, + XED_IFORMFL_VCVTDQ2PD_LAST=2124, + XED_IFORMFL_VCVTDQ2PS_FIRST=2125, + XED_IFORMFL_VCVTDQ2PS_LAST=2134, + XED_IFORMFL_VCVTPD2DQ_FIRST=2135, + XED_IFORMFL_VCVTPD2DQ_LAST=2144, + XED_IFORMFL_VCVTPD2PS_FIRST=2145, + XED_IFORMFL_VCVTPD2PS_LAST=2154, + XED_IFORMFL_VCVTPD2QQ_FIRST=2155, + XED_IFORMFL_VCVTPD2QQ_LAST=2160, + XED_IFORMFL_VCVTPD2UDQ_FIRST=2161, + XED_IFORMFL_VCVTPD2UDQ_LAST=2166, + XED_IFORMFL_VCVTPD2UQQ_FIRST=2167, + XED_IFORMFL_VCVTPD2UQQ_LAST=2172, + XED_IFORMFL_VCVTPH2PS_FIRST=2173, + XED_IFORMFL_VCVTPH2PS_LAST=2182, + XED_IFORMFL_VCVTPS2DQ_FIRST=2183, + XED_IFORMFL_VCVTPS2DQ_LAST=2192, + XED_IFORMFL_VCVTPS2PD_FIRST=2193, + XED_IFORMFL_VCVTPS2PD_LAST=2202, + XED_IFORMFL_VCVTPS2PH_FIRST=2203, + XED_IFORMFL_VCVTPS2PH_LAST=2212, + XED_IFORMFL_VCVTPS2QQ_FIRST=2213, + XED_IFORMFL_VCVTPS2QQ_LAST=2218, + XED_IFORMFL_VCVTPS2UDQ_FIRST=2219, + XED_IFORMFL_VCVTPS2UDQ_LAST=2224, + XED_IFORMFL_VCVTPS2UQQ_FIRST=2225, + XED_IFORMFL_VCVTPS2UQQ_LAST=2230, + XED_IFORMFL_VCVTQQ2PD_FIRST=2231, + XED_IFORMFL_VCVTQQ2PD_LAST=2236, + XED_IFORMFL_VCVTQQ2PS_FIRST=2237, + XED_IFORMFL_VCVTQQ2PS_LAST=2242, + XED_IFORMFL_VCVTSD2SI_FIRST=2243, + XED_IFORMFL_VCVTSD2SI_LAST=2250, + XED_IFORMFL_VCVTSD2SS_FIRST=2251, + XED_IFORMFL_VCVTSD2SS_LAST=2254, + XED_IFORMFL_VCVTSD2USI_FIRST=2255, + XED_IFORMFL_VCVTSD2USI_LAST=2258, + XED_IFORMFL_VCVTSI2SD_FIRST=2259, + XED_IFORMFL_VCVTSI2SD_LAST=2266, + XED_IFORMFL_VCVTSI2SS_FIRST=2267, + XED_IFORMFL_VCVTSI2SS_LAST=2274, + XED_IFORMFL_VCVTSS2SD_FIRST=2275, + XED_IFORMFL_VCVTSS2SD_LAST=2278, + XED_IFORMFL_VCVTSS2SI_FIRST=2279, + XED_IFORMFL_VCVTSS2SI_LAST=2286, + XED_IFORMFL_VCVTSS2USI_FIRST=2287, + XED_IFORMFL_VCVTSS2USI_LAST=2290, + XED_IFORMFL_VCVTTPD2DQ_FIRST=2291, + XED_IFORMFL_VCVTTPD2DQ_LAST=2300, + XED_IFORMFL_VCVTTPD2QQ_FIRST=2301, + XED_IFORMFL_VCVTTPD2QQ_LAST=2306, + XED_IFORMFL_VCVTTPD2UDQ_FIRST=2307, + XED_IFORMFL_VCVTTPD2UDQ_LAST=2312, + XED_IFORMFL_VCVTTPD2UQQ_FIRST=2313, + XED_IFORMFL_VCVTTPD2UQQ_LAST=2318, + XED_IFORMFL_VCVTTPS2DQ_FIRST=2319, + XED_IFORMFL_VCVTTPS2DQ_LAST=2328, + XED_IFORMFL_VCVTTPS2QQ_FIRST=2329, + XED_IFORMFL_VCVTTPS2QQ_LAST=2334, + XED_IFORMFL_VCVTTPS2UDQ_FIRST=2335, + XED_IFORMFL_VCVTTPS2UDQ_LAST=2340, + XED_IFORMFL_VCVTTPS2UQQ_FIRST=2341, + XED_IFORMFL_VCVTTPS2UQQ_LAST=2346, + XED_IFORMFL_VCVTTSD2SI_FIRST=2347, + XED_IFORMFL_VCVTTSD2SI_LAST=2354, + XED_IFORMFL_VCVTTSD2USI_FIRST=2355, + XED_IFORMFL_VCVTTSD2USI_LAST=2358, + XED_IFORMFL_VCVTTSS2SI_FIRST=2359, + XED_IFORMFL_VCVTTSS2SI_LAST=2366, + XED_IFORMFL_VCVTTSS2USI_FIRST=2367, + XED_IFORMFL_VCVTTSS2USI_LAST=2370, + XED_IFORMFL_VCVTUDQ2PD_FIRST=2371, + XED_IFORMFL_VCVTUDQ2PD_LAST=2376, + XED_IFORMFL_VCVTUDQ2PS_FIRST=2377, + XED_IFORMFL_VCVTUDQ2PS_LAST=2382, + XED_IFORMFL_VCVTUQQ2PD_FIRST=2383, + XED_IFORMFL_VCVTUQQ2PD_LAST=2388, + XED_IFORMFL_VCVTUQQ2PS_FIRST=2389, + XED_IFORMFL_VCVTUQQ2PS_LAST=2394, + XED_IFORMFL_VCVTUSI2SD_FIRST=2395, + XED_IFORMFL_VCVTUSI2SD_LAST=2398, + XED_IFORMFL_VCVTUSI2SS_FIRST=2399, + XED_IFORMFL_VCVTUSI2SS_LAST=2402, + XED_IFORMFL_VDBPSADBW_FIRST=2403, + XED_IFORMFL_VDBPSADBW_LAST=2408, + XED_IFORMFL_VDIVPD_FIRST=2409, + XED_IFORMFL_VDIVPD_LAST=2418, + XED_IFORMFL_VDIVPS_FIRST=2419, + XED_IFORMFL_VDIVPS_LAST=2428, + XED_IFORMFL_VDIVSD_FIRST=2429, + XED_IFORMFL_VDIVSD_LAST=2432, + XED_IFORMFL_VDIVSS_FIRST=2433, + XED_IFORMFL_VDIVSS_LAST=2436, + XED_IFORMFL_VDPPD_FIRST=2437, + XED_IFORMFL_VDPPD_LAST=2438, + XED_IFORMFL_VDPPS_FIRST=2439, + XED_IFORMFL_VDPPS_LAST=2442, + XED_IFORMFL_VERR_FIRST=2443, + XED_IFORMFL_VERR_LAST=2444, + XED_IFORMFL_VERW_FIRST=2445, + XED_IFORMFL_VERW_LAST=2446, + XED_IFORMFL_VEXP2PD_FIRST=2447, + XED_IFORMFL_VEXP2PD_LAST=2448, + XED_IFORMFL_VEXP2PS_FIRST=2449, + XED_IFORMFL_VEXP2PS_LAST=2450, + XED_IFORMFL_VEXPANDPD_FIRST=2451, + XED_IFORMFL_VEXPANDPD_LAST=2456, + XED_IFORMFL_VEXPANDPS_FIRST=2457, + XED_IFORMFL_VEXPANDPS_LAST=2462, + XED_IFORMFL_VEXTRACTF128_FIRST=2463, + XED_IFORMFL_VEXTRACTF128_LAST=2464, + XED_IFORMFL_VEXTRACTF32X4_FIRST=2465, + XED_IFORMFL_VEXTRACTF32X4_LAST=2468, + XED_IFORMFL_VEXTRACTF32X8_FIRST=2469, + XED_IFORMFL_VEXTRACTF32X8_LAST=2470, + XED_IFORMFL_VEXTRACTF64X2_FIRST=2471, + XED_IFORMFL_VEXTRACTF64X2_LAST=2474, + XED_IFORMFL_VEXTRACTF64X4_FIRST=2475, + XED_IFORMFL_VEXTRACTF64X4_LAST=2476, + XED_IFORMFL_VEXTRACTI128_FIRST=2477, + XED_IFORMFL_VEXTRACTI128_LAST=2478, + XED_IFORMFL_VEXTRACTI32X4_FIRST=2479, + XED_IFORMFL_VEXTRACTI32X4_LAST=2482, + XED_IFORMFL_VEXTRACTI32X8_FIRST=2483, + XED_IFORMFL_VEXTRACTI32X8_LAST=2484, + XED_IFORMFL_VEXTRACTI64X2_FIRST=2485, + XED_IFORMFL_VEXTRACTI64X2_LAST=2488, + XED_IFORMFL_VEXTRACTI64X4_FIRST=2489, + XED_IFORMFL_VEXTRACTI64X4_LAST=2490, + XED_IFORMFL_VEXTRACTPS_FIRST=2491, + XED_IFORMFL_VEXTRACTPS_LAST=2494, + XED_IFORMFL_VFIXUPIMMPD_FIRST=2495, + XED_IFORMFL_VFIXUPIMMPD_LAST=2500, + XED_IFORMFL_VFIXUPIMMPS_FIRST=2501, + XED_IFORMFL_VFIXUPIMMPS_LAST=2506, + XED_IFORMFL_VFIXUPIMMSD_FIRST=2507, + XED_IFORMFL_VFIXUPIMMSD_LAST=2508, + XED_IFORMFL_VFIXUPIMMSS_FIRST=2509, + XED_IFORMFL_VFIXUPIMMSS_LAST=2510, + XED_IFORMFL_VFMADD132PD_FIRST=2511, + XED_IFORMFL_VFMADD132PD_LAST=2520, + XED_IFORMFL_VFMADD132PS_FIRST=2521, + XED_IFORMFL_VFMADD132PS_LAST=2530, + XED_IFORMFL_VFMADD132SD_FIRST=2531, + XED_IFORMFL_VFMADD132SD_LAST=2534, + XED_IFORMFL_VFMADD132SS_FIRST=2535, + XED_IFORMFL_VFMADD132SS_LAST=2538, + XED_IFORMFL_VFMADD213PD_FIRST=2539, + XED_IFORMFL_VFMADD213PD_LAST=2548, + XED_IFORMFL_VFMADD213PS_FIRST=2549, + XED_IFORMFL_VFMADD213PS_LAST=2558, + XED_IFORMFL_VFMADD213SD_FIRST=2559, + XED_IFORMFL_VFMADD213SD_LAST=2562, + XED_IFORMFL_VFMADD213SS_FIRST=2563, + XED_IFORMFL_VFMADD213SS_LAST=2566, + XED_IFORMFL_VFMADD231PD_FIRST=2567, + XED_IFORMFL_VFMADD231PD_LAST=2576, + XED_IFORMFL_VFMADD231PS_FIRST=2577, + XED_IFORMFL_VFMADD231PS_LAST=2586, + XED_IFORMFL_VFMADD231SD_FIRST=2587, + XED_IFORMFL_VFMADD231SD_LAST=2590, + XED_IFORMFL_VFMADD231SS_FIRST=2591, + XED_IFORMFL_VFMADD231SS_LAST=2594, + XED_IFORMFL_VFMADDPD_FIRST=2595, + XED_IFORMFL_VFMADDPD_LAST=2600, + XED_IFORMFL_VFMADDPS_FIRST=2601, + XED_IFORMFL_VFMADDPS_LAST=2606, + XED_IFORMFL_VFMADDSD_FIRST=2607, + XED_IFORMFL_VFMADDSD_LAST=2610, + XED_IFORMFL_VFMADDSS_FIRST=2611, + XED_IFORMFL_VFMADDSS_LAST=2614, + XED_IFORMFL_VFMADDSUB132PD_FIRST=2615, + XED_IFORMFL_VFMADDSUB132PD_LAST=2624, + XED_IFORMFL_VFMADDSUB132PS_FIRST=2625, + XED_IFORMFL_VFMADDSUB132PS_LAST=2634, + XED_IFORMFL_VFMADDSUB213PD_FIRST=2635, + XED_IFORMFL_VFMADDSUB213PD_LAST=2644, + XED_IFORMFL_VFMADDSUB213PS_FIRST=2645, + XED_IFORMFL_VFMADDSUB213PS_LAST=2654, + XED_IFORMFL_VFMADDSUB231PD_FIRST=2655, + XED_IFORMFL_VFMADDSUB231PD_LAST=2664, + XED_IFORMFL_VFMADDSUB231PS_FIRST=2665, + XED_IFORMFL_VFMADDSUB231PS_LAST=2674, + XED_IFORMFL_VFMADDSUBPD_FIRST=2675, + XED_IFORMFL_VFMADDSUBPD_LAST=2680, + XED_IFORMFL_VFMADDSUBPS_FIRST=2681, + XED_IFORMFL_VFMADDSUBPS_LAST=2686, + XED_IFORMFL_VFMSUB132PD_FIRST=2687, + XED_IFORMFL_VFMSUB132PD_LAST=2696, + XED_IFORMFL_VFMSUB132PS_FIRST=2697, + XED_IFORMFL_VFMSUB132PS_LAST=2706, + XED_IFORMFL_VFMSUB132SD_FIRST=2707, + XED_IFORMFL_VFMSUB132SD_LAST=2710, + XED_IFORMFL_VFMSUB132SS_FIRST=2711, + XED_IFORMFL_VFMSUB132SS_LAST=2714, + XED_IFORMFL_VFMSUB213PD_FIRST=2715, + XED_IFORMFL_VFMSUB213PD_LAST=2724, + XED_IFORMFL_VFMSUB213PS_FIRST=2725, + XED_IFORMFL_VFMSUB213PS_LAST=2734, + XED_IFORMFL_VFMSUB213SD_FIRST=2735, + XED_IFORMFL_VFMSUB213SD_LAST=2738, + XED_IFORMFL_VFMSUB213SS_FIRST=2739, + XED_IFORMFL_VFMSUB213SS_LAST=2742, + XED_IFORMFL_VFMSUB231PD_FIRST=2743, + XED_IFORMFL_VFMSUB231PD_LAST=2752, + XED_IFORMFL_VFMSUB231PS_FIRST=2753, + XED_IFORMFL_VFMSUB231PS_LAST=2762, + XED_IFORMFL_VFMSUB231SD_FIRST=2763, + XED_IFORMFL_VFMSUB231SD_LAST=2766, + XED_IFORMFL_VFMSUB231SS_FIRST=2767, + XED_IFORMFL_VFMSUB231SS_LAST=2770, + XED_IFORMFL_VFMSUBADD132PD_FIRST=2771, + XED_IFORMFL_VFMSUBADD132PD_LAST=2780, + XED_IFORMFL_VFMSUBADD132PS_FIRST=2781, + XED_IFORMFL_VFMSUBADD132PS_LAST=2790, + XED_IFORMFL_VFMSUBADD213PD_FIRST=2791, + XED_IFORMFL_VFMSUBADD213PD_LAST=2800, + XED_IFORMFL_VFMSUBADD213PS_FIRST=2801, + XED_IFORMFL_VFMSUBADD213PS_LAST=2810, + XED_IFORMFL_VFMSUBADD231PD_FIRST=2811, + XED_IFORMFL_VFMSUBADD231PD_LAST=2820, + XED_IFORMFL_VFMSUBADD231PS_FIRST=2821, + XED_IFORMFL_VFMSUBADD231PS_LAST=2830, + XED_IFORMFL_VFMSUBADDPD_FIRST=2831, + XED_IFORMFL_VFMSUBADDPD_LAST=2836, + XED_IFORMFL_VFMSUBADDPS_FIRST=2837, + XED_IFORMFL_VFMSUBADDPS_LAST=2842, + XED_IFORMFL_VFMSUBPD_FIRST=2843, + XED_IFORMFL_VFMSUBPD_LAST=2848, + XED_IFORMFL_VFMSUBPS_FIRST=2849, + XED_IFORMFL_VFMSUBPS_LAST=2854, + XED_IFORMFL_VFMSUBSD_FIRST=2855, + XED_IFORMFL_VFMSUBSD_LAST=2858, + XED_IFORMFL_VFMSUBSS_FIRST=2859, + XED_IFORMFL_VFMSUBSS_LAST=2862, + XED_IFORMFL_VFNMADD132PD_FIRST=2863, + XED_IFORMFL_VFNMADD132PD_LAST=2872, + XED_IFORMFL_VFNMADD132PS_FIRST=2873, + XED_IFORMFL_VFNMADD132PS_LAST=2882, + XED_IFORMFL_VFNMADD132SD_FIRST=2883, + XED_IFORMFL_VFNMADD132SD_LAST=2886, + XED_IFORMFL_VFNMADD132SS_FIRST=2887, + XED_IFORMFL_VFNMADD132SS_LAST=2890, + XED_IFORMFL_VFNMADD213PD_FIRST=2891, + XED_IFORMFL_VFNMADD213PD_LAST=2900, + XED_IFORMFL_VFNMADD213PS_FIRST=2901, + XED_IFORMFL_VFNMADD213PS_LAST=2910, + XED_IFORMFL_VFNMADD213SD_FIRST=2911, + XED_IFORMFL_VFNMADD213SD_LAST=2914, + XED_IFORMFL_VFNMADD213SS_FIRST=2915, + XED_IFORMFL_VFNMADD213SS_LAST=2918, + XED_IFORMFL_VFNMADD231PD_FIRST=2919, + XED_IFORMFL_VFNMADD231PD_LAST=2928, + XED_IFORMFL_VFNMADD231PS_FIRST=2929, + XED_IFORMFL_VFNMADD231PS_LAST=2938, + XED_IFORMFL_VFNMADD231SD_FIRST=2939, + XED_IFORMFL_VFNMADD231SD_LAST=2942, + XED_IFORMFL_VFNMADD231SS_FIRST=2943, + XED_IFORMFL_VFNMADD231SS_LAST=2946, + XED_IFORMFL_VFNMADDPD_FIRST=2947, + XED_IFORMFL_VFNMADDPD_LAST=2952, + XED_IFORMFL_VFNMADDPS_FIRST=2953, + XED_IFORMFL_VFNMADDPS_LAST=2958, + XED_IFORMFL_VFNMADDSD_FIRST=2959, + XED_IFORMFL_VFNMADDSD_LAST=2962, + XED_IFORMFL_VFNMADDSS_FIRST=2963, + XED_IFORMFL_VFNMADDSS_LAST=2966, + XED_IFORMFL_VFNMSUB132PD_FIRST=2967, + XED_IFORMFL_VFNMSUB132PD_LAST=2976, + XED_IFORMFL_VFNMSUB132PS_FIRST=2977, + XED_IFORMFL_VFNMSUB132PS_LAST=2986, + XED_IFORMFL_VFNMSUB132SD_FIRST=2987, + XED_IFORMFL_VFNMSUB132SD_LAST=2990, + XED_IFORMFL_VFNMSUB132SS_FIRST=2991, + XED_IFORMFL_VFNMSUB132SS_LAST=2994, + XED_IFORMFL_VFNMSUB213PD_FIRST=2995, + XED_IFORMFL_VFNMSUB213PD_LAST=3004, + XED_IFORMFL_VFNMSUB213PS_FIRST=3005, + XED_IFORMFL_VFNMSUB213PS_LAST=3014, + XED_IFORMFL_VFNMSUB213SD_FIRST=3015, + XED_IFORMFL_VFNMSUB213SD_LAST=3018, + XED_IFORMFL_VFNMSUB213SS_FIRST=3019, + XED_IFORMFL_VFNMSUB213SS_LAST=3022, + XED_IFORMFL_VFNMSUB231PD_FIRST=3023, + XED_IFORMFL_VFNMSUB231PD_LAST=3032, + XED_IFORMFL_VFNMSUB231PS_FIRST=3033, + XED_IFORMFL_VFNMSUB231PS_LAST=3042, + XED_IFORMFL_VFNMSUB231SD_FIRST=3043, + XED_IFORMFL_VFNMSUB231SD_LAST=3046, + XED_IFORMFL_VFNMSUB231SS_FIRST=3047, + XED_IFORMFL_VFNMSUB231SS_LAST=3050, + XED_IFORMFL_VFNMSUBPD_FIRST=3051, + XED_IFORMFL_VFNMSUBPD_LAST=3056, + XED_IFORMFL_VFNMSUBPS_FIRST=3057, + XED_IFORMFL_VFNMSUBPS_LAST=3062, + XED_IFORMFL_VFNMSUBSD_FIRST=3063, + XED_IFORMFL_VFNMSUBSD_LAST=3066, + XED_IFORMFL_VFNMSUBSS_FIRST=3067, + XED_IFORMFL_VFNMSUBSS_LAST=3070, + XED_IFORMFL_VFPCLASSPD_FIRST=3071, + XED_IFORMFL_VFPCLASSPD_LAST=3074, + XED_IFORMFL_VFPCLASSPS_FIRST=3075, + XED_IFORMFL_VFPCLASSPS_LAST=3078, + XED_IFORMFL_VFPCLASSSD_FIRST=3079, + XED_IFORMFL_VFPCLASSSD_LAST=3080, + XED_IFORMFL_VFPCLASSSS_FIRST=3081, + XED_IFORMFL_VFPCLASSSS_LAST=3082, + XED_IFORMFL_VFRCZPD_FIRST=3083, + XED_IFORMFL_VFRCZPD_LAST=3086, + XED_IFORMFL_VFRCZPS_FIRST=3087, + XED_IFORMFL_VFRCZPS_LAST=3090, + XED_IFORMFL_VFRCZSD_FIRST=3091, + XED_IFORMFL_VFRCZSD_LAST=3092, + XED_IFORMFL_VFRCZSS_FIRST=3093, + XED_IFORMFL_VFRCZSS_LAST=3094, + XED_IFORMFL_VGATHERDPD_FIRST=3095, + XED_IFORMFL_VGATHERDPD_LAST=3099, + XED_IFORMFL_VGATHERDPS_FIRST=3100, + XED_IFORMFL_VGATHERDPS_LAST=3104, + XED_IFORMFL_VGATHERPF0DPD_FIRST=3105, + XED_IFORMFL_VGATHERPF0DPD_LAST=3105, + XED_IFORMFL_VGATHERPF0DPS_FIRST=3106, + XED_IFORMFL_VGATHERPF0DPS_LAST=3106, + XED_IFORMFL_VGATHERPF0QPD_FIRST=3107, + XED_IFORMFL_VGATHERPF0QPD_LAST=3107, + XED_IFORMFL_VGATHERPF0QPS_FIRST=3108, + XED_IFORMFL_VGATHERPF0QPS_LAST=3108, + XED_IFORMFL_VGATHERPF1DPD_FIRST=3109, + XED_IFORMFL_VGATHERPF1DPD_LAST=3109, + XED_IFORMFL_VGATHERPF1DPS_FIRST=3110, + XED_IFORMFL_VGATHERPF1DPS_LAST=3110, + XED_IFORMFL_VGATHERPF1QPD_FIRST=3111, + XED_IFORMFL_VGATHERPF1QPD_LAST=3111, + XED_IFORMFL_VGATHERPF1QPS_FIRST=3112, + XED_IFORMFL_VGATHERPF1QPS_LAST=3112, + XED_IFORMFL_VGATHERQPD_FIRST=3113, + XED_IFORMFL_VGATHERQPD_LAST=3117, + XED_IFORMFL_VGATHERQPS_FIRST=3118, + XED_IFORMFL_VGATHERQPS_LAST=3122, + XED_IFORMFL_VGETEXPPD_FIRST=3123, + XED_IFORMFL_VGETEXPPD_LAST=3128, + XED_IFORMFL_VGETEXPPS_FIRST=3129, + XED_IFORMFL_VGETEXPPS_LAST=3134, + XED_IFORMFL_VGETEXPSD_FIRST=3135, + XED_IFORMFL_VGETEXPSD_LAST=3136, + XED_IFORMFL_VGETEXPSS_FIRST=3137, + XED_IFORMFL_VGETEXPSS_LAST=3138, + XED_IFORMFL_VGETMANTPD_FIRST=3139, + XED_IFORMFL_VGETMANTPD_LAST=3144, + XED_IFORMFL_VGETMANTPS_FIRST=3145, + XED_IFORMFL_VGETMANTPS_LAST=3150, + XED_IFORMFL_VGETMANTSD_FIRST=3151, + XED_IFORMFL_VGETMANTSD_LAST=3152, + XED_IFORMFL_VGETMANTSS_FIRST=3153, + XED_IFORMFL_VGETMANTSS_LAST=3154, + XED_IFORMFL_VHADDPD_FIRST=3155, + XED_IFORMFL_VHADDPD_LAST=3158, + XED_IFORMFL_VHADDPS_FIRST=3159, + XED_IFORMFL_VHADDPS_LAST=3162, + XED_IFORMFL_VHSUBPD_FIRST=3163, + XED_IFORMFL_VHSUBPD_LAST=3166, + XED_IFORMFL_VHSUBPS_FIRST=3167, + XED_IFORMFL_VHSUBPS_LAST=3170, + XED_IFORMFL_VINSERTF128_FIRST=3171, + XED_IFORMFL_VINSERTF128_LAST=3172, + XED_IFORMFL_VINSERTF32X4_FIRST=3173, + XED_IFORMFL_VINSERTF32X4_LAST=3176, + XED_IFORMFL_VINSERTF32X8_FIRST=3177, + XED_IFORMFL_VINSERTF32X8_LAST=3178, + XED_IFORMFL_VINSERTF64X2_FIRST=3179, + XED_IFORMFL_VINSERTF64X2_LAST=3182, + XED_IFORMFL_VINSERTF64X4_FIRST=3183, + XED_IFORMFL_VINSERTF64X4_LAST=3184, + XED_IFORMFL_VINSERTI128_FIRST=3185, + XED_IFORMFL_VINSERTI128_LAST=3186, + XED_IFORMFL_VINSERTI32X4_FIRST=3187, + XED_IFORMFL_VINSERTI32X4_LAST=3190, + XED_IFORMFL_VINSERTI32X8_FIRST=3191, + XED_IFORMFL_VINSERTI32X8_LAST=3192, + XED_IFORMFL_VINSERTI64X2_FIRST=3193, + XED_IFORMFL_VINSERTI64X2_LAST=3196, + XED_IFORMFL_VINSERTI64X4_FIRST=3197, + XED_IFORMFL_VINSERTI64X4_LAST=3198, + XED_IFORMFL_VINSERTPS_FIRST=3199, + XED_IFORMFL_VINSERTPS_LAST=3202, + XED_IFORMFL_VLDDQU_FIRST=3203, + XED_IFORMFL_VLDDQU_LAST=3204, + XED_IFORMFL_VLDMXCSR_FIRST=3205, + XED_IFORMFL_VLDMXCSR_LAST=3205, + XED_IFORMFL_VMASKMOVDQU_FIRST=3206, + XED_IFORMFL_VMASKMOVDQU_LAST=3206, + XED_IFORMFL_VMASKMOVPD_FIRST=3207, + XED_IFORMFL_VMASKMOVPD_LAST=3210, + XED_IFORMFL_VMASKMOVPS_FIRST=3211, + XED_IFORMFL_VMASKMOVPS_LAST=3214, + XED_IFORMFL_VMAXPD_FIRST=3215, + XED_IFORMFL_VMAXPD_LAST=3224, + XED_IFORMFL_VMAXPS_FIRST=3225, + XED_IFORMFL_VMAXPS_LAST=3234, + XED_IFORMFL_VMAXSD_FIRST=3235, + XED_IFORMFL_VMAXSD_LAST=3238, + XED_IFORMFL_VMAXSS_FIRST=3239, + XED_IFORMFL_VMAXSS_LAST=3242, + XED_IFORMFL_VMCALL_FIRST=3243, + XED_IFORMFL_VMCALL_LAST=3243, + XED_IFORMFL_VMCLEAR_FIRST=3244, + XED_IFORMFL_VMCLEAR_LAST=3244, + XED_IFORMFL_VMFUNC_FIRST=3245, + XED_IFORMFL_VMFUNC_LAST=3245, + XED_IFORMFL_VMINPD_FIRST=3246, + XED_IFORMFL_VMINPD_LAST=3255, + XED_IFORMFL_VMINPS_FIRST=3256, + XED_IFORMFL_VMINPS_LAST=3265, + XED_IFORMFL_VMINSD_FIRST=3266, + XED_IFORMFL_VMINSD_LAST=3269, + XED_IFORMFL_VMINSS_FIRST=3270, + XED_IFORMFL_VMINSS_LAST=3273, + XED_IFORMFL_VMLAUNCH_FIRST=3274, + XED_IFORMFL_VMLAUNCH_LAST=3274, + XED_IFORMFL_VMLOAD_FIRST=3275, + XED_IFORMFL_VMLOAD_LAST=3275, + XED_IFORMFL_VMMCALL_FIRST=3276, + XED_IFORMFL_VMMCALL_LAST=3276, + XED_IFORMFL_VMOVAPD_FIRST=3277, + XED_IFORMFL_VMOVAPD_LAST=3293, + XED_IFORMFL_VMOVAPS_FIRST=3294, + XED_IFORMFL_VMOVAPS_LAST=3310, + XED_IFORMFL_VMOVD_FIRST=3311, + XED_IFORMFL_VMOVD_LAST=3318, + XED_IFORMFL_VMOVDDUP_FIRST=3319, + XED_IFORMFL_VMOVDDUP_LAST=3328, + XED_IFORMFL_VMOVDQA_FIRST=3329, + XED_IFORMFL_VMOVDQA_LAST=3336, + XED_IFORMFL_VMOVDQA32_FIRST=3337, + XED_IFORMFL_VMOVDQA32_LAST=3345, + XED_IFORMFL_VMOVDQA64_FIRST=3346, + XED_IFORMFL_VMOVDQA64_LAST=3354, + XED_IFORMFL_VMOVDQU_FIRST=3355, + XED_IFORMFL_VMOVDQU_LAST=3362, + XED_IFORMFL_VMOVDQU16_FIRST=3363, + XED_IFORMFL_VMOVDQU16_LAST=3371, + XED_IFORMFL_VMOVDQU32_FIRST=3372, + XED_IFORMFL_VMOVDQU32_LAST=3380, + XED_IFORMFL_VMOVDQU64_FIRST=3381, + XED_IFORMFL_VMOVDQU64_LAST=3389, + XED_IFORMFL_VMOVDQU8_FIRST=3390, + XED_IFORMFL_VMOVDQU8_LAST=3398, + XED_IFORMFL_VMOVHLPS_FIRST=3399, + XED_IFORMFL_VMOVHLPS_LAST=3400, + XED_IFORMFL_VMOVHPD_FIRST=3401, + XED_IFORMFL_VMOVHPD_LAST=3404, + XED_IFORMFL_VMOVHPS_FIRST=3405, + XED_IFORMFL_VMOVHPS_LAST=3408, + XED_IFORMFL_VMOVLHPS_FIRST=3409, + XED_IFORMFL_VMOVLHPS_LAST=3410, + XED_IFORMFL_VMOVLPD_FIRST=3411, + XED_IFORMFL_VMOVLPD_LAST=3414, + XED_IFORMFL_VMOVLPS_FIRST=3415, + XED_IFORMFL_VMOVLPS_LAST=3418, + XED_IFORMFL_VMOVMSKPD_FIRST=3419, + XED_IFORMFL_VMOVMSKPD_LAST=3420, + XED_IFORMFL_VMOVMSKPS_FIRST=3421, + XED_IFORMFL_VMOVMSKPS_LAST=3422, + XED_IFORMFL_VMOVNTDQ_FIRST=3423, + XED_IFORMFL_VMOVNTDQ_LAST=3427, + XED_IFORMFL_VMOVNTDQA_FIRST=3428, + XED_IFORMFL_VMOVNTDQA_LAST=3432, + XED_IFORMFL_VMOVNTPD_FIRST=3433, + XED_IFORMFL_VMOVNTPD_LAST=3437, + XED_IFORMFL_VMOVNTPS_FIRST=3438, + XED_IFORMFL_VMOVNTPS_LAST=3442, + XED_IFORMFL_VMOVQ_FIRST=3443, + XED_IFORMFL_VMOVQ_LAST=3455, + XED_IFORMFL_VMOVSD_FIRST=3456, + XED_IFORMFL_VMOVSD_LAST=3462, + XED_IFORMFL_VMOVSHDUP_FIRST=3463, + XED_IFORMFL_VMOVSHDUP_LAST=3472, + XED_IFORMFL_VMOVSLDUP_FIRST=3473, + XED_IFORMFL_VMOVSLDUP_LAST=3482, + XED_IFORMFL_VMOVSS_FIRST=3483, + XED_IFORMFL_VMOVSS_LAST=3489, + XED_IFORMFL_VMOVUPD_FIRST=3490, + XED_IFORMFL_VMOVUPD_LAST=3506, + XED_IFORMFL_VMOVUPS_FIRST=3507, + XED_IFORMFL_VMOVUPS_LAST=3523, + XED_IFORMFL_VMPSADBW_FIRST=3524, + XED_IFORMFL_VMPSADBW_LAST=3527, + XED_IFORMFL_VMPTRLD_FIRST=3528, + XED_IFORMFL_VMPTRLD_LAST=3528, + XED_IFORMFL_VMPTRST_FIRST=3529, + XED_IFORMFL_VMPTRST_LAST=3529, + XED_IFORMFL_VMREAD_FIRST=3530, + XED_IFORMFL_VMREAD_LAST=3533, + XED_IFORMFL_VMRESUME_FIRST=3534, + XED_IFORMFL_VMRESUME_LAST=3534, + XED_IFORMFL_VMRUN_FIRST=3535, + XED_IFORMFL_VMRUN_LAST=3535, + XED_IFORMFL_VMSAVE_FIRST=3536, + XED_IFORMFL_VMSAVE_LAST=3536, + XED_IFORMFL_VMULPD_FIRST=3537, + XED_IFORMFL_VMULPD_LAST=3546, + XED_IFORMFL_VMULPS_FIRST=3547, + XED_IFORMFL_VMULPS_LAST=3556, + XED_IFORMFL_VMULSD_FIRST=3557, + XED_IFORMFL_VMULSD_LAST=3560, + XED_IFORMFL_VMULSS_FIRST=3561, + XED_IFORMFL_VMULSS_LAST=3564, + XED_IFORMFL_VMWRITE_FIRST=3565, + XED_IFORMFL_VMWRITE_LAST=3568, + XED_IFORMFL_VMXOFF_FIRST=3569, + XED_IFORMFL_VMXOFF_LAST=3569, + XED_IFORMFL_VMXON_FIRST=3570, + XED_IFORMFL_VMXON_LAST=3570, + XED_IFORMFL_VORPD_FIRST=3571, + XED_IFORMFL_VORPD_LAST=3580, + XED_IFORMFL_VORPS_FIRST=3581, + XED_IFORMFL_VORPS_LAST=3590, + XED_IFORMFL_VPABSB_FIRST=3591, + XED_IFORMFL_VPABSB_LAST=3600, + XED_IFORMFL_VPABSD_FIRST=3601, + XED_IFORMFL_VPABSD_LAST=3610, + XED_IFORMFL_VPABSQ_FIRST=3611, + XED_IFORMFL_VPABSQ_LAST=3616, + XED_IFORMFL_VPABSW_FIRST=3617, + XED_IFORMFL_VPABSW_LAST=3626, + XED_IFORMFL_VPACKSSDW_FIRST=3627, + XED_IFORMFL_VPACKSSDW_LAST=3636, + XED_IFORMFL_VPACKSSWB_FIRST=3637, + XED_IFORMFL_VPACKSSWB_LAST=3646, + XED_IFORMFL_VPACKUSDW_FIRST=3647, + XED_IFORMFL_VPACKUSDW_LAST=3656, + XED_IFORMFL_VPACKUSWB_FIRST=3657, + XED_IFORMFL_VPACKUSWB_LAST=3666, + XED_IFORMFL_VPADDB_FIRST=3667, + XED_IFORMFL_VPADDB_LAST=3676, + XED_IFORMFL_VPADDD_FIRST=3677, + XED_IFORMFL_VPADDD_LAST=3686, + XED_IFORMFL_VPADDQ_FIRST=3687, + XED_IFORMFL_VPADDQ_LAST=3696, + XED_IFORMFL_VPADDSB_FIRST=3697, + XED_IFORMFL_VPADDSB_LAST=3706, + XED_IFORMFL_VPADDSW_FIRST=3707, + XED_IFORMFL_VPADDSW_LAST=3716, + XED_IFORMFL_VPADDUSB_FIRST=3717, + XED_IFORMFL_VPADDUSB_LAST=3726, + XED_IFORMFL_VPADDUSW_FIRST=3727, + XED_IFORMFL_VPADDUSW_LAST=3736, + XED_IFORMFL_VPADDW_FIRST=3737, + XED_IFORMFL_VPADDW_LAST=3746, + XED_IFORMFL_VPALIGNR_FIRST=3747, + XED_IFORMFL_VPALIGNR_LAST=3756, + XED_IFORMFL_VPAND_FIRST=3757, + XED_IFORMFL_VPAND_LAST=3760, + XED_IFORMFL_VPANDD_FIRST=3761, + XED_IFORMFL_VPANDD_LAST=3766, + XED_IFORMFL_VPANDN_FIRST=3767, + XED_IFORMFL_VPANDN_LAST=3770, + XED_IFORMFL_VPANDND_FIRST=3771, + XED_IFORMFL_VPANDND_LAST=3776, + XED_IFORMFL_VPANDNQ_FIRST=3777, + XED_IFORMFL_VPANDNQ_LAST=3782, + XED_IFORMFL_VPANDQ_FIRST=3783, + XED_IFORMFL_VPANDQ_LAST=3788, + XED_IFORMFL_VPAVGB_FIRST=3789, + XED_IFORMFL_VPAVGB_LAST=3798, + XED_IFORMFL_VPAVGW_FIRST=3799, + XED_IFORMFL_VPAVGW_LAST=3808, + XED_IFORMFL_VPBLENDD_FIRST=3809, + XED_IFORMFL_VPBLENDD_LAST=3812, + XED_IFORMFL_VPBLENDMB_FIRST=3813, + XED_IFORMFL_VPBLENDMB_LAST=3818, + XED_IFORMFL_VPBLENDMD_FIRST=3819, + XED_IFORMFL_VPBLENDMD_LAST=3824, + XED_IFORMFL_VPBLENDMQ_FIRST=3825, + XED_IFORMFL_VPBLENDMQ_LAST=3830, + XED_IFORMFL_VPBLENDMW_FIRST=3831, + XED_IFORMFL_VPBLENDMW_LAST=3836, + XED_IFORMFL_VPBLENDVB_FIRST=3837, + XED_IFORMFL_VPBLENDVB_LAST=3840, + XED_IFORMFL_VPBLENDW_FIRST=3841, + XED_IFORMFL_VPBLENDW_LAST=3844, + XED_IFORMFL_VPBROADCASTB_FIRST=3845, + XED_IFORMFL_VPBROADCASTB_LAST=3857, + XED_IFORMFL_VPBROADCASTD_FIRST=3858, + XED_IFORMFL_VPBROADCASTD_LAST=3870, + XED_IFORMFL_VPBROADCASTMB2Q_FIRST=3871, + XED_IFORMFL_VPBROADCASTMB2Q_LAST=3873, + XED_IFORMFL_VPBROADCASTMW2D_FIRST=3874, + XED_IFORMFL_VPBROADCASTMW2D_LAST=3876, + XED_IFORMFL_VPBROADCASTQ_FIRST=3877, + XED_IFORMFL_VPBROADCASTQ_LAST=3889, + XED_IFORMFL_VPBROADCASTW_FIRST=3890, + XED_IFORMFL_VPBROADCASTW_LAST=3902, + XED_IFORMFL_VPCLMULQDQ_FIRST=3903, + XED_IFORMFL_VPCLMULQDQ_LAST=3904, + XED_IFORMFL_VPCMOV_FIRST=3905, + XED_IFORMFL_VPCMOV_LAST=3910, + XED_IFORMFL_VPCMPB_FIRST=3911, + XED_IFORMFL_VPCMPB_LAST=3916, + XED_IFORMFL_VPCMPD_FIRST=3917, + XED_IFORMFL_VPCMPD_LAST=3922, + XED_IFORMFL_VPCMPEQB_FIRST=3923, + XED_IFORMFL_VPCMPEQB_LAST=3932, + XED_IFORMFL_VPCMPEQD_FIRST=3933, + XED_IFORMFL_VPCMPEQD_LAST=3942, + XED_IFORMFL_VPCMPEQQ_FIRST=3943, + XED_IFORMFL_VPCMPEQQ_LAST=3952, + XED_IFORMFL_VPCMPEQW_FIRST=3953, + XED_IFORMFL_VPCMPEQW_LAST=3962, + XED_IFORMFL_VPCMPESTRI_FIRST=3963, + XED_IFORMFL_VPCMPESTRI_LAST=3964, + XED_IFORMFL_VPCMPESTRM_FIRST=3965, + XED_IFORMFL_VPCMPESTRM_LAST=3966, + XED_IFORMFL_VPCMPGTB_FIRST=3967, + XED_IFORMFL_VPCMPGTB_LAST=3976, + XED_IFORMFL_VPCMPGTD_FIRST=3977, + XED_IFORMFL_VPCMPGTD_LAST=3986, + XED_IFORMFL_VPCMPGTQ_FIRST=3987, + XED_IFORMFL_VPCMPGTQ_LAST=3996, + XED_IFORMFL_VPCMPGTW_FIRST=3997, + XED_IFORMFL_VPCMPGTW_LAST=4006, + XED_IFORMFL_VPCMPISTRI_FIRST=4007, + XED_IFORMFL_VPCMPISTRI_LAST=4008, + XED_IFORMFL_VPCMPISTRM_FIRST=4009, + XED_IFORMFL_VPCMPISTRM_LAST=4010, + XED_IFORMFL_VPCMPQ_FIRST=4011, + XED_IFORMFL_VPCMPQ_LAST=4016, + XED_IFORMFL_VPCMPUB_FIRST=4017, + XED_IFORMFL_VPCMPUB_LAST=4022, + XED_IFORMFL_VPCMPUD_FIRST=4023, + XED_IFORMFL_VPCMPUD_LAST=4028, + XED_IFORMFL_VPCMPUQ_FIRST=4029, + XED_IFORMFL_VPCMPUQ_LAST=4034, + XED_IFORMFL_VPCMPUW_FIRST=4035, + XED_IFORMFL_VPCMPUW_LAST=4040, + XED_IFORMFL_VPCMPW_FIRST=4041, + XED_IFORMFL_VPCMPW_LAST=4046, + XED_IFORMFL_VPCOMB_FIRST=4047, + XED_IFORMFL_VPCOMB_LAST=4048, + XED_IFORMFL_VPCOMD_FIRST=4049, + XED_IFORMFL_VPCOMD_LAST=4050, + XED_IFORMFL_VPCOMPRESSD_FIRST=4051, + XED_IFORMFL_VPCOMPRESSD_LAST=4056, + XED_IFORMFL_VPCOMPRESSQ_FIRST=4057, + XED_IFORMFL_VPCOMPRESSQ_LAST=4062, + XED_IFORMFL_VPCOMQ_FIRST=4063, + XED_IFORMFL_VPCOMQ_LAST=4064, + XED_IFORMFL_VPCOMUB_FIRST=4065, + XED_IFORMFL_VPCOMUB_LAST=4066, + XED_IFORMFL_VPCOMUD_FIRST=4067, + XED_IFORMFL_VPCOMUD_LAST=4068, + XED_IFORMFL_VPCOMUQ_FIRST=4069, + XED_IFORMFL_VPCOMUQ_LAST=4070, + XED_IFORMFL_VPCOMUW_FIRST=4071, + XED_IFORMFL_VPCOMUW_LAST=4072, + XED_IFORMFL_VPCOMW_FIRST=4073, + XED_IFORMFL_VPCOMW_LAST=4074, + XED_IFORMFL_VPCONFLICTD_FIRST=4075, + XED_IFORMFL_VPCONFLICTD_LAST=4080, + XED_IFORMFL_VPCONFLICTQ_FIRST=4081, + XED_IFORMFL_VPCONFLICTQ_LAST=4086, + XED_IFORMFL_VPERM2F128_FIRST=4087, + XED_IFORMFL_VPERM2F128_LAST=4088, + XED_IFORMFL_VPERM2I128_FIRST=4089, + XED_IFORMFL_VPERM2I128_LAST=4090, + XED_IFORMFL_VPERMB_FIRST=4091, + XED_IFORMFL_VPERMB_LAST=4096, + XED_IFORMFL_VPERMD_FIRST=4097, + XED_IFORMFL_VPERMD_LAST=4102, + XED_IFORMFL_VPERMI2B_FIRST=4103, + XED_IFORMFL_VPERMI2B_LAST=4108, + XED_IFORMFL_VPERMI2D_FIRST=4109, + XED_IFORMFL_VPERMI2D_LAST=4114, + XED_IFORMFL_VPERMI2PD_FIRST=4115, + XED_IFORMFL_VPERMI2PD_LAST=4120, + XED_IFORMFL_VPERMI2PS_FIRST=4121, + XED_IFORMFL_VPERMI2PS_LAST=4126, + XED_IFORMFL_VPERMI2Q_FIRST=4127, + XED_IFORMFL_VPERMI2Q_LAST=4132, + XED_IFORMFL_VPERMI2W_FIRST=4133, + XED_IFORMFL_VPERMI2W_LAST=4138, + XED_IFORMFL_VPERMIL2PD_FIRST=4139, + XED_IFORMFL_VPERMIL2PD_LAST=4144, + XED_IFORMFL_VPERMIL2PS_FIRST=4145, + XED_IFORMFL_VPERMIL2PS_LAST=4150, + XED_IFORMFL_VPERMILPD_FIRST=4151, + XED_IFORMFL_VPERMILPD_LAST=4170, + XED_IFORMFL_VPERMILPS_FIRST=4171, + XED_IFORMFL_VPERMILPS_LAST=4190, + XED_IFORMFL_VPERMPD_FIRST=4191, + XED_IFORMFL_VPERMPD_LAST=4200, + XED_IFORMFL_VPERMPS_FIRST=4201, + XED_IFORMFL_VPERMPS_LAST=4206, + XED_IFORMFL_VPERMQ_FIRST=4207, + XED_IFORMFL_VPERMQ_LAST=4216, + XED_IFORMFL_VPERMT2B_FIRST=4217, + XED_IFORMFL_VPERMT2B_LAST=4222, + XED_IFORMFL_VPERMT2D_FIRST=4223, + XED_IFORMFL_VPERMT2D_LAST=4228, + XED_IFORMFL_VPERMT2PD_FIRST=4229, + XED_IFORMFL_VPERMT2PD_LAST=4234, + XED_IFORMFL_VPERMT2PS_FIRST=4235, + XED_IFORMFL_VPERMT2PS_LAST=4240, + XED_IFORMFL_VPERMT2Q_FIRST=4241, + XED_IFORMFL_VPERMT2Q_LAST=4246, + XED_IFORMFL_VPERMT2W_FIRST=4247, + XED_IFORMFL_VPERMT2W_LAST=4252, + XED_IFORMFL_VPERMW_FIRST=4253, + XED_IFORMFL_VPERMW_LAST=4258, + XED_IFORMFL_VPEXPANDD_FIRST=4259, + XED_IFORMFL_VPEXPANDD_LAST=4264, + XED_IFORMFL_VPEXPANDQ_FIRST=4265, + XED_IFORMFL_VPEXPANDQ_LAST=4270, + XED_IFORMFL_VPEXTRB_FIRST=4271, + XED_IFORMFL_VPEXTRB_LAST=4274, + XED_IFORMFL_VPEXTRD_FIRST=4275, + XED_IFORMFL_VPEXTRD_LAST=4278, + XED_IFORMFL_VPEXTRQ_FIRST=4279, + XED_IFORMFL_VPEXTRQ_LAST=4282, + XED_IFORMFL_VPEXTRW_FIRST=4283, + XED_IFORMFL_VPEXTRW_LAST=4287, + XED_IFORMFL_VPGATHERDD_FIRST=4288, + XED_IFORMFL_VPGATHERDD_LAST=4292, + XED_IFORMFL_VPGATHERDQ_FIRST=4293, + XED_IFORMFL_VPGATHERDQ_LAST=4297, + XED_IFORMFL_VPGATHERQD_FIRST=4298, + XED_IFORMFL_VPGATHERQD_LAST=4302, + XED_IFORMFL_VPGATHERQQ_FIRST=4303, + XED_IFORMFL_VPGATHERQQ_LAST=4307, + XED_IFORMFL_VPHADDBD_FIRST=4308, + XED_IFORMFL_VPHADDBD_LAST=4309, + XED_IFORMFL_VPHADDBQ_FIRST=4310, + XED_IFORMFL_VPHADDBQ_LAST=4311, + XED_IFORMFL_VPHADDBW_FIRST=4312, + XED_IFORMFL_VPHADDBW_LAST=4313, + XED_IFORMFL_VPHADDD_FIRST=4314, + XED_IFORMFL_VPHADDD_LAST=4317, + XED_IFORMFL_VPHADDDQ_FIRST=4318, + XED_IFORMFL_VPHADDDQ_LAST=4319, + XED_IFORMFL_VPHADDSW_FIRST=4320, + XED_IFORMFL_VPHADDSW_LAST=4323, + XED_IFORMFL_VPHADDUBD_FIRST=4324, + XED_IFORMFL_VPHADDUBD_LAST=4325, + XED_IFORMFL_VPHADDUBQ_FIRST=4326, + XED_IFORMFL_VPHADDUBQ_LAST=4327, + XED_IFORMFL_VPHADDUBW_FIRST=4328, + XED_IFORMFL_VPHADDUBW_LAST=4329, + XED_IFORMFL_VPHADDUDQ_FIRST=4330, + XED_IFORMFL_VPHADDUDQ_LAST=4331, + XED_IFORMFL_VPHADDUWD_FIRST=4332, + XED_IFORMFL_VPHADDUWD_LAST=4333, + XED_IFORMFL_VPHADDUWQ_FIRST=4334, + XED_IFORMFL_VPHADDUWQ_LAST=4335, + XED_IFORMFL_VPHADDW_FIRST=4336, + XED_IFORMFL_VPHADDW_LAST=4339, + XED_IFORMFL_VPHADDWD_FIRST=4340, + XED_IFORMFL_VPHADDWD_LAST=4341, + XED_IFORMFL_VPHADDWQ_FIRST=4342, + XED_IFORMFL_VPHADDWQ_LAST=4343, + XED_IFORMFL_VPHMINPOSUW_FIRST=4344, + XED_IFORMFL_VPHMINPOSUW_LAST=4347, + XED_IFORMFL_VPHSUBBW_FIRST=4348, + XED_IFORMFL_VPHSUBBW_LAST=4349, + XED_IFORMFL_VPHSUBD_FIRST=4350, + XED_IFORMFL_VPHSUBD_LAST=4353, + XED_IFORMFL_VPHSUBDQ_FIRST=4354, + XED_IFORMFL_VPHSUBDQ_LAST=4355, + XED_IFORMFL_VPHSUBSW_FIRST=4356, + XED_IFORMFL_VPHSUBSW_LAST=4359, + XED_IFORMFL_VPHSUBW_FIRST=4360, + XED_IFORMFL_VPHSUBW_LAST=4363, + XED_IFORMFL_VPHSUBWD_FIRST=4364, + XED_IFORMFL_VPHSUBWD_LAST=4365, + XED_IFORMFL_VPINSRB_FIRST=4366, + XED_IFORMFL_VPINSRB_LAST=4369, + XED_IFORMFL_VPINSRD_FIRST=4370, + XED_IFORMFL_VPINSRD_LAST=4373, + XED_IFORMFL_VPINSRQ_FIRST=4374, + XED_IFORMFL_VPINSRQ_LAST=4377, + XED_IFORMFL_VPINSRW_FIRST=4378, + XED_IFORMFL_VPINSRW_LAST=4381, + XED_IFORMFL_VPLZCNTD_FIRST=4382, + XED_IFORMFL_VPLZCNTD_LAST=4387, + XED_IFORMFL_VPLZCNTQ_FIRST=4388, + XED_IFORMFL_VPLZCNTQ_LAST=4393, + XED_IFORMFL_VPMACSDD_FIRST=4394, + XED_IFORMFL_VPMACSDD_LAST=4395, + XED_IFORMFL_VPMACSDQH_FIRST=4396, + XED_IFORMFL_VPMACSDQH_LAST=4397, + XED_IFORMFL_VPMACSDQL_FIRST=4398, + XED_IFORMFL_VPMACSDQL_LAST=4399, + XED_IFORMFL_VPMACSSDD_FIRST=4400, + XED_IFORMFL_VPMACSSDD_LAST=4401, + XED_IFORMFL_VPMACSSDQH_FIRST=4402, + XED_IFORMFL_VPMACSSDQH_LAST=4403, + XED_IFORMFL_VPMACSSDQL_FIRST=4404, + XED_IFORMFL_VPMACSSDQL_LAST=4405, + XED_IFORMFL_VPMACSSWD_FIRST=4406, + XED_IFORMFL_VPMACSSWD_LAST=4407, + XED_IFORMFL_VPMACSSWW_FIRST=4408, + XED_IFORMFL_VPMACSSWW_LAST=4409, + XED_IFORMFL_VPMACSWD_FIRST=4410, + XED_IFORMFL_VPMACSWD_LAST=4411, + XED_IFORMFL_VPMACSWW_FIRST=4412, + XED_IFORMFL_VPMACSWW_LAST=4413, + XED_IFORMFL_VPMADCSSWD_FIRST=4414, + XED_IFORMFL_VPMADCSSWD_LAST=4415, + XED_IFORMFL_VPMADCSWD_FIRST=4416, + XED_IFORMFL_VPMADCSWD_LAST=4417, + XED_IFORMFL_VPMADD52HUQ_FIRST=4418, + XED_IFORMFL_VPMADD52HUQ_LAST=4423, + XED_IFORMFL_VPMADD52LUQ_FIRST=4424, + XED_IFORMFL_VPMADD52LUQ_LAST=4429, + XED_IFORMFL_VPMADDUBSW_FIRST=4430, + XED_IFORMFL_VPMADDUBSW_LAST=4439, + XED_IFORMFL_VPMADDWD_FIRST=4440, + XED_IFORMFL_VPMADDWD_LAST=4449, + XED_IFORMFL_VPMASKMOVD_FIRST=4450, + XED_IFORMFL_VPMASKMOVD_LAST=4453, + XED_IFORMFL_VPMASKMOVQ_FIRST=4454, + XED_IFORMFL_VPMASKMOVQ_LAST=4457, + XED_IFORMFL_VPMAXSB_FIRST=4458, + XED_IFORMFL_VPMAXSB_LAST=4467, + XED_IFORMFL_VPMAXSD_FIRST=4468, + XED_IFORMFL_VPMAXSD_LAST=4477, + XED_IFORMFL_VPMAXSQ_FIRST=4478, + XED_IFORMFL_VPMAXSQ_LAST=4483, + XED_IFORMFL_VPMAXSW_FIRST=4484, + XED_IFORMFL_VPMAXSW_LAST=4493, + XED_IFORMFL_VPMAXUB_FIRST=4494, + XED_IFORMFL_VPMAXUB_LAST=4503, + XED_IFORMFL_VPMAXUD_FIRST=4504, + XED_IFORMFL_VPMAXUD_LAST=4513, + XED_IFORMFL_VPMAXUQ_FIRST=4514, + XED_IFORMFL_VPMAXUQ_LAST=4519, + XED_IFORMFL_VPMAXUW_FIRST=4520, + XED_IFORMFL_VPMAXUW_LAST=4529, + XED_IFORMFL_VPMINSB_FIRST=4530, + XED_IFORMFL_VPMINSB_LAST=4539, + XED_IFORMFL_VPMINSD_FIRST=4540, + XED_IFORMFL_VPMINSD_LAST=4549, + XED_IFORMFL_VPMINSQ_FIRST=4550, + XED_IFORMFL_VPMINSQ_LAST=4555, + XED_IFORMFL_VPMINSW_FIRST=4556, + XED_IFORMFL_VPMINSW_LAST=4565, + XED_IFORMFL_VPMINUB_FIRST=4566, + XED_IFORMFL_VPMINUB_LAST=4575, + XED_IFORMFL_VPMINUD_FIRST=4576, + XED_IFORMFL_VPMINUD_LAST=4585, + XED_IFORMFL_VPMINUQ_FIRST=4586, + XED_IFORMFL_VPMINUQ_LAST=4591, + XED_IFORMFL_VPMINUW_FIRST=4592, + XED_IFORMFL_VPMINUW_LAST=4601, + XED_IFORMFL_VPMOVB2M_FIRST=4602, + XED_IFORMFL_VPMOVB2M_LAST=4604, + XED_IFORMFL_VPMOVD2M_FIRST=4605, + XED_IFORMFL_VPMOVD2M_LAST=4607, + XED_IFORMFL_VPMOVDB_FIRST=4608, + XED_IFORMFL_VPMOVDB_LAST=4613, + XED_IFORMFL_VPMOVDW_FIRST=4614, + XED_IFORMFL_VPMOVDW_LAST=4619, + XED_IFORMFL_VPMOVM2B_FIRST=4620, + XED_IFORMFL_VPMOVM2B_LAST=4622, + XED_IFORMFL_VPMOVM2D_FIRST=4623, + XED_IFORMFL_VPMOVM2D_LAST=4625, + XED_IFORMFL_VPMOVM2Q_FIRST=4626, + XED_IFORMFL_VPMOVM2Q_LAST=4628, + XED_IFORMFL_VPMOVM2W_FIRST=4629, + XED_IFORMFL_VPMOVM2W_LAST=4631, + XED_IFORMFL_VPMOVMSKB_FIRST=4632, + XED_IFORMFL_VPMOVMSKB_LAST=4633, + XED_IFORMFL_VPMOVQ2M_FIRST=4634, + XED_IFORMFL_VPMOVQ2M_LAST=4636, + XED_IFORMFL_VPMOVQB_FIRST=4637, + XED_IFORMFL_VPMOVQB_LAST=4642, + XED_IFORMFL_VPMOVQD_FIRST=4643, + XED_IFORMFL_VPMOVQD_LAST=4648, + XED_IFORMFL_VPMOVQW_FIRST=4649, + XED_IFORMFL_VPMOVQW_LAST=4654, + XED_IFORMFL_VPMOVSDB_FIRST=4655, + XED_IFORMFL_VPMOVSDB_LAST=4660, + XED_IFORMFL_VPMOVSDW_FIRST=4661, + XED_IFORMFL_VPMOVSDW_LAST=4666, + XED_IFORMFL_VPMOVSQB_FIRST=4667, + XED_IFORMFL_VPMOVSQB_LAST=4672, + XED_IFORMFL_VPMOVSQD_FIRST=4673, + XED_IFORMFL_VPMOVSQD_LAST=4678, + XED_IFORMFL_VPMOVSQW_FIRST=4679, + XED_IFORMFL_VPMOVSQW_LAST=4684, + XED_IFORMFL_VPMOVSWB_FIRST=4685, + XED_IFORMFL_VPMOVSWB_LAST=4690, + XED_IFORMFL_VPMOVSXBD_FIRST=4691, + XED_IFORMFL_VPMOVSXBD_LAST=4700, + XED_IFORMFL_VPMOVSXBQ_FIRST=4701, + XED_IFORMFL_VPMOVSXBQ_LAST=4710, + XED_IFORMFL_VPMOVSXBW_FIRST=4711, + XED_IFORMFL_VPMOVSXBW_LAST=4720, + XED_IFORMFL_VPMOVSXDQ_FIRST=4721, + XED_IFORMFL_VPMOVSXDQ_LAST=4730, + XED_IFORMFL_VPMOVSXWD_FIRST=4731, + XED_IFORMFL_VPMOVSXWD_LAST=4740, + XED_IFORMFL_VPMOVSXWQ_FIRST=4741, + XED_IFORMFL_VPMOVSXWQ_LAST=4750, + XED_IFORMFL_VPMOVUSDB_FIRST=4751, + XED_IFORMFL_VPMOVUSDB_LAST=4756, + XED_IFORMFL_VPMOVUSDW_FIRST=4757, + XED_IFORMFL_VPMOVUSDW_LAST=4762, + XED_IFORMFL_VPMOVUSQB_FIRST=4763, + XED_IFORMFL_VPMOVUSQB_LAST=4768, + XED_IFORMFL_VPMOVUSQD_FIRST=4769, + XED_IFORMFL_VPMOVUSQD_LAST=4774, + XED_IFORMFL_VPMOVUSQW_FIRST=4775, + XED_IFORMFL_VPMOVUSQW_LAST=4780, + XED_IFORMFL_VPMOVUSWB_FIRST=4781, + XED_IFORMFL_VPMOVUSWB_LAST=4786, + XED_IFORMFL_VPMOVW2M_FIRST=4787, + XED_IFORMFL_VPMOVW2M_LAST=4789, + XED_IFORMFL_VPMOVWB_FIRST=4790, + XED_IFORMFL_VPMOVWB_LAST=4795, + XED_IFORMFL_VPMOVZXBD_FIRST=4796, + XED_IFORMFL_VPMOVZXBD_LAST=4805, + XED_IFORMFL_VPMOVZXBQ_FIRST=4806, + XED_IFORMFL_VPMOVZXBQ_LAST=4815, + XED_IFORMFL_VPMOVZXBW_FIRST=4816, + XED_IFORMFL_VPMOVZXBW_LAST=4825, + XED_IFORMFL_VPMOVZXDQ_FIRST=4826, + XED_IFORMFL_VPMOVZXDQ_LAST=4835, + XED_IFORMFL_VPMOVZXWD_FIRST=4836, + XED_IFORMFL_VPMOVZXWD_LAST=4845, + XED_IFORMFL_VPMOVZXWQ_FIRST=4846, + XED_IFORMFL_VPMOVZXWQ_LAST=4855, + XED_IFORMFL_VPMULDQ_FIRST=4856, + XED_IFORMFL_VPMULDQ_LAST=4865, + XED_IFORMFL_VPMULHRSW_FIRST=4866, + XED_IFORMFL_VPMULHRSW_LAST=4875, + XED_IFORMFL_VPMULHUW_FIRST=4876, + XED_IFORMFL_VPMULHUW_LAST=4885, + XED_IFORMFL_VPMULHW_FIRST=4886, + XED_IFORMFL_VPMULHW_LAST=4895, + XED_IFORMFL_VPMULLD_FIRST=4896, + XED_IFORMFL_VPMULLD_LAST=4905, + XED_IFORMFL_VPMULLQ_FIRST=4906, + XED_IFORMFL_VPMULLQ_LAST=4911, + XED_IFORMFL_VPMULLW_FIRST=4912, + XED_IFORMFL_VPMULLW_LAST=4921, + XED_IFORMFL_VPMULTISHIFTQB_FIRST=4922, + XED_IFORMFL_VPMULTISHIFTQB_LAST=4927, + XED_IFORMFL_VPMULUDQ_FIRST=4928, + XED_IFORMFL_VPMULUDQ_LAST=4937, + XED_IFORMFL_VPOR_FIRST=4938, + XED_IFORMFL_VPOR_LAST=4941, + XED_IFORMFL_VPORD_FIRST=4942, + XED_IFORMFL_VPORD_LAST=4947, + XED_IFORMFL_VPORQ_FIRST=4948, + XED_IFORMFL_VPORQ_LAST=4953, + XED_IFORMFL_VPPERM_FIRST=4954, + XED_IFORMFL_VPPERM_LAST=4956, + XED_IFORMFL_VPROLD_FIRST=4957, + XED_IFORMFL_VPROLD_LAST=4962, + XED_IFORMFL_VPROLQ_FIRST=4963, + XED_IFORMFL_VPROLQ_LAST=4968, + XED_IFORMFL_VPROLVD_FIRST=4969, + XED_IFORMFL_VPROLVD_LAST=4974, + XED_IFORMFL_VPROLVQ_FIRST=4975, + XED_IFORMFL_VPROLVQ_LAST=4980, + XED_IFORMFL_VPRORD_FIRST=4981, + XED_IFORMFL_VPRORD_LAST=4986, + XED_IFORMFL_VPRORQ_FIRST=4987, + XED_IFORMFL_VPRORQ_LAST=4992, + XED_IFORMFL_VPRORVD_FIRST=4993, + XED_IFORMFL_VPRORVD_LAST=4998, + XED_IFORMFL_VPRORVQ_FIRST=4999, + XED_IFORMFL_VPRORVQ_LAST=5004, + XED_IFORMFL_VPROTB_FIRST=5005, + XED_IFORMFL_VPROTB_LAST=5009, + XED_IFORMFL_VPROTD_FIRST=5010, + XED_IFORMFL_VPROTD_LAST=5014, + XED_IFORMFL_VPROTQ_FIRST=5015, + XED_IFORMFL_VPROTQ_LAST=5019, + XED_IFORMFL_VPROTW_FIRST=5020, + XED_IFORMFL_VPROTW_LAST=5024, + XED_IFORMFL_VPSADBW_FIRST=5025, + XED_IFORMFL_VPSADBW_LAST=5034, + XED_IFORMFL_VPSCATTERDD_FIRST=5035, + XED_IFORMFL_VPSCATTERDD_LAST=5037, + XED_IFORMFL_VPSCATTERDQ_FIRST=5038, + XED_IFORMFL_VPSCATTERDQ_LAST=5040, + XED_IFORMFL_VPSCATTERQD_FIRST=5041, + XED_IFORMFL_VPSCATTERQD_LAST=5043, + XED_IFORMFL_VPSCATTERQQ_FIRST=5044, + XED_IFORMFL_VPSCATTERQQ_LAST=5046, + XED_IFORMFL_VPSHAB_FIRST=5047, + XED_IFORMFL_VPSHAB_LAST=5049, + XED_IFORMFL_VPSHAD_FIRST=5050, + XED_IFORMFL_VPSHAD_LAST=5052, + XED_IFORMFL_VPSHAQ_FIRST=5053, + XED_IFORMFL_VPSHAQ_LAST=5055, + XED_IFORMFL_VPSHAW_FIRST=5056, + XED_IFORMFL_VPSHAW_LAST=5058, + XED_IFORMFL_VPSHLB_FIRST=5059, + XED_IFORMFL_VPSHLB_LAST=5061, + XED_IFORMFL_VPSHLD_FIRST=5062, + XED_IFORMFL_VPSHLD_LAST=5064, + XED_IFORMFL_VPSHLQ_FIRST=5065, + XED_IFORMFL_VPSHLQ_LAST=5067, + XED_IFORMFL_VPSHLW_FIRST=5068, + XED_IFORMFL_VPSHLW_LAST=5070, + XED_IFORMFL_VPSHUFB_FIRST=5071, + XED_IFORMFL_VPSHUFB_LAST=5080, + XED_IFORMFL_VPSHUFD_FIRST=5081, + XED_IFORMFL_VPSHUFD_LAST=5090, + XED_IFORMFL_VPSHUFHW_FIRST=5091, + XED_IFORMFL_VPSHUFHW_LAST=5100, + XED_IFORMFL_VPSHUFLW_FIRST=5101, + XED_IFORMFL_VPSHUFLW_LAST=5110, + XED_IFORMFL_VPSIGNB_FIRST=5111, + XED_IFORMFL_VPSIGNB_LAST=5114, + XED_IFORMFL_VPSIGND_FIRST=5115, + XED_IFORMFL_VPSIGND_LAST=5118, + XED_IFORMFL_VPSIGNW_FIRST=5119, + XED_IFORMFL_VPSIGNW_LAST=5122, + XED_IFORMFL_VPSLLD_FIRST=5123, + XED_IFORMFL_VPSLLD_LAST=5140, + XED_IFORMFL_VPSLLDQ_FIRST=5141, + XED_IFORMFL_VPSLLDQ_LAST=5148, + XED_IFORMFL_VPSLLQ_FIRST=5149, + XED_IFORMFL_VPSLLQ_LAST=5166, + XED_IFORMFL_VPSLLVD_FIRST=5167, + XED_IFORMFL_VPSLLVD_LAST=5176, + XED_IFORMFL_VPSLLVQ_FIRST=5177, + XED_IFORMFL_VPSLLVQ_LAST=5186, + XED_IFORMFL_VPSLLVW_FIRST=5187, + XED_IFORMFL_VPSLLVW_LAST=5192, + XED_IFORMFL_VPSLLW_FIRST=5193, + XED_IFORMFL_VPSLLW_LAST=5210, + XED_IFORMFL_VPSRAD_FIRST=5211, + XED_IFORMFL_VPSRAD_LAST=5228, + XED_IFORMFL_VPSRAQ_FIRST=5229, + XED_IFORMFL_VPSRAQ_LAST=5240, + XED_IFORMFL_VPSRAVD_FIRST=5241, + XED_IFORMFL_VPSRAVD_LAST=5250, + XED_IFORMFL_VPSRAVQ_FIRST=5251, + XED_IFORMFL_VPSRAVQ_LAST=5256, + XED_IFORMFL_VPSRAVW_FIRST=5257, + XED_IFORMFL_VPSRAVW_LAST=5262, + XED_IFORMFL_VPSRAW_FIRST=5263, + XED_IFORMFL_VPSRAW_LAST=5280, + XED_IFORMFL_VPSRLD_FIRST=5281, + XED_IFORMFL_VPSRLD_LAST=5298, + XED_IFORMFL_VPSRLDQ_FIRST=5299, + XED_IFORMFL_VPSRLDQ_LAST=5306, + XED_IFORMFL_VPSRLQ_FIRST=5307, + XED_IFORMFL_VPSRLQ_LAST=5324, + XED_IFORMFL_VPSRLVD_FIRST=5325, + XED_IFORMFL_VPSRLVD_LAST=5334, + XED_IFORMFL_VPSRLVQ_FIRST=5335, + XED_IFORMFL_VPSRLVQ_LAST=5344, + XED_IFORMFL_VPSRLVW_FIRST=5345, + XED_IFORMFL_VPSRLVW_LAST=5350, + XED_IFORMFL_VPSRLW_FIRST=5351, + XED_IFORMFL_VPSRLW_LAST=5368, + XED_IFORMFL_VPSUBB_FIRST=5369, + XED_IFORMFL_VPSUBB_LAST=5378, + XED_IFORMFL_VPSUBD_FIRST=5379, + XED_IFORMFL_VPSUBD_LAST=5388, + XED_IFORMFL_VPSUBQ_FIRST=5389, + XED_IFORMFL_VPSUBQ_LAST=5398, + XED_IFORMFL_VPSUBSB_FIRST=5399, + XED_IFORMFL_VPSUBSB_LAST=5408, + XED_IFORMFL_VPSUBSW_FIRST=5409, + XED_IFORMFL_VPSUBSW_LAST=5418, + XED_IFORMFL_VPSUBUSB_FIRST=5419, + XED_IFORMFL_VPSUBUSB_LAST=5428, + XED_IFORMFL_VPSUBUSW_FIRST=5429, + XED_IFORMFL_VPSUBUSW_LAST=5438, + XED_IFORMFL_VPSUBW_FIRST=5439, + XED_IFORMFL_VPSUBW_LAST=5448, + XED_IFORMFL_VPTERNLOGD_FIRST=5449, + XED_IFORMFL_VPTERNLOGD_LAST=5454, + XED_IFORMFL_VPTERNLOGQ_FIRST=5455, + XED_IFORMFL_VPTERNLOGQ_LAST=5460, + XED_IFORMFL_VPTEST_FIRST=5461, + XED_IFORMFL_VPTEST_LAST=5464, + XED_IFORMFL_VPTESTMB_FIRST=5465, + XED_IFORMFL_VPTESTMB_LAST=5470, + XED_IFORMFL_VPTESTMD_FIRST=5471, + XED_IFORMFL_VPTESTMD_LAST=5476, + XED_IFORMFL_VPTESTMQ_FIRST=5477, + XED_IFORMFL_VPTESTMQ_LAST=5482, + XED_IFORMFL_VPTESTMW_FIRST=5483, + XED_IFORMFL_VPTESTMW_LAST=5488, + XED_IFORMFL_VPTESTNMB_FIRST=5489, + XED_IFORMFL_VPTESTNMB_LAST=5494, + XED_IFORMFL_VPTESTNMD_FIRST=5495, + XED_IFORMFL_VPTESTNMD_LAST=5500, + XED_IFORMFL_VPTESTNMQ_FIRST=5501, + XED_IFORMFL_VPTESTNMQ_LAST=5506, + XED_IFORMFL_VPTESTNMW_FIRST=5507, + XED_IFORMFL_VPTESTNMW_LAST=5512, + XED_IFORMFL_VPUNPCKHBW_FIRST=5513, + XED_IFORMFL_VPUNPCKHBW_LAST=5522, + XED_IFORMFL_VPUNPCKHDQ_FIRST=5523, + XED_IFORMFL_VPUNPCKHDQ_LAST=5532, + XED_IFORMFL_VPUNPCKHQDQ_FIRST=5533, + XED_IFORMFL_VPUNPCKHQDQ_LAST=5542, + XED_IFORMFL_VPUNPCKHWD_FIRST=5543, + XED_IFORMFL_VPUNPCKHWD_LAST=5552, + XED_IFORMFL_VPUNPCKLBW_FIRST=5553, + XED_IFORMFL_VPUNPCKLBW_LAST=5562, + XED_IFORMFL_VPUNPCKLDQ_FIRST=5563, + XED_IFORMFL_VPUNPCKLDQ_LAST=5572, + XED_IFORMFL_VPUNPCKLQDQ_FIRST=5573, + XED_IFORMFL_VPUNPCKLQDQ_LAST=5582, + XED_IFORMFL_VPUNPCKLWD_FIRST=5583, + XED_IFORMFL_VPUNPCKLWD_LAST=5592, + XED_IFORMFL_VPXOR_FIRST=5593, + XED_IFORMFL_VPXOR_LAST=5596, + XED_IFORMFL_VPXORD_FIRST=5597, + XED_IFORMFL_VPXORD_LAST=5602, + XED_IFORMFL_VPXORQ_FIRST=5603, + XED_IFORMFL_VPXORQ_LAST=5608, + XED_IFORMFL_VRANGEPD_FIRST=5609, + XED_IFORMFL_VRANGEPD_LAST=5614, + XED_IFORMFL_VRANGEPS_FIRST=5615, + XED_IFORMFL_VRANGEPS_LAST=5620, + XED_IFORMFL_VRANGESD_FIRST=5621, + XED_IFORMFL_VRANGESD_LAST=5622, + XED_IFORMFL_VRANGESS_FIRST=5623, + XED_IFORMFL_VRANGESS_LAST=5624, + XED_IFORMFL_VRCP14PD_FIRST=5625, + XED_IFORMFL_VRCP14PD_LAST=5630, + XED_IFORMFL_VRCP14PS_FIRST=5631, + XED_IFORMFL_VRCP14PS_LAST=5636, + XED_IFORMFL_VRCP14SD_FIRST=5637, + XED_IFORMFL_VRCP14SD_LAST=5638, + XED_IFORMFL_VRCP14SS_FIRST=5639, + XED_IFORMFL_VRCP14SS_LAST=5640, + XED_IFORMFL_VRCP28PD_FIRST=5641, + XED_IFORMFL_VRCP28PD_LAST=5642, + XED_IFORMFL_VRCP28PS_FIRST=5643, + XED_IFORMFL_VRCP28PS_LAST=5644, + XED_IFORMFL_VRCP28SD_FIRST=5645, + XED_IFORMFL_VRCP28SD_LAST=5646, + XED_IFORMFL_VRCP28SS_FIRST=5647, + XED_IFORMFL_VRCP28SS_LAST=5648, + XED_IFORMFL_VRCPPS_FIRST=5649, + XED_IFORMFL_VRCPPS_LAST=5652, + XED_IFORMFL_VRCPSS_FIRST=5653, + XED_IFORMFL_VRCPSS_LAST=5654, + XED_IFORMFL_VREDUCEPD_FIRST=5655, + XED_IFORMFL_VREDUCEPD_LAST=5660, + XED_IFORMFL_VREDUCEPS_FIRST=5661, + XED_IFORMFL_VREDUCEPS_LAST=5666, + XED_IFORMFL_VREDUCESD_FIRST=5667, + XED_IFORMFL_VREDUCESD_LAST=5668, + XED_IFORMFL_VREDUCESS_FIRST=5669, + XED_IFORMFL_VREDUCESS_LAST=5670, + XED_IFORMFL_VRNDSCALEPD_FIRST=5671, + XED_IFORMFL_VRNDSCALEPD_LAST=5676, + XED_IFORMFL_VRNDSCALEPS_FIRST=5677, + XED_IFORMFL_VRNDSCALEPS_LAST=5682, + XED_IFORMFL_VRNDSCALESD_FIRST=5683, + XED_IFORMFL_VRNDSCALESD_LAST=5684, + XED_IFORMFL_VRNDSCALESS_FIRST=5685, + XED_IFORMFL_VRNDSCALESS_LAST=5686, + XED_IFORMFL_VROUNDPD_FIRST=5687, + XED_IFORMFL_VROUNDPD_LAST=5690, + XED_IFORMFL_VROUNDPS_FIRST=5691, + XED_IFORMFL_VROUNDPS_LAST=5694, + XED_IFORMFL_VROUNDSD_FIRST=5695, + XED_IFORMFL_VROUNDSD_LAST=5696, + XED_IFORMFL_VROUNDSS_FIRST=5697, + XED_IFORMFL_VROUNDSS_LAST=5698, + XED_IFORMFL_VRSQRT14PD_FIRST=5699, + XED_IFORMFL_VRSQRT14PD_LAST=5704, + XED_IFORMFL_VRSQRT14PS_FIRST=5705, + XED_IFORMFL_VRSQRT14PS_LAST=5710, + XED_IFORMFL_VRSQRT14SD_FIRST=5711, + XED_IFORMFL_VRSQRT14SD_LAST=5712, + XED_IFORMFL_VRSQRT14SS_FIRST=5713, + XED_IFORMFL_VRSQRT14SS_LAST=5714, + XED_IFORMFL_VRSQRT28PD_FIRST=5715, + XED_IFORMFL_VRSQRT28PD_LAST=5716, + XED_IFORMFL_VRSQRT28PS_FIRST=5717, + XED_IFORMFL_VRSQRT28PS_LAST=5718, + XED_IFORMFL_VRSQRT28SD_FIRST=5719, + XED_IFORMFL_VRSQRT28SD_LAST=5720, + XED_IFORMFL_VRSQRT28SS_FIRST=5721, + XED_IFORMFL_VRSQRT28SS_LAST=5722, + XED_IFORMFL_VRSQRTPS_FIRST=5723, + XED_IFORMFL_VRSQRTPS_LAST=5726, + XED_IFORMFL_VRSQRTSS_FIRST=5727, + XED_IFORMFL_VRSQRTSS_LAST=5728, + XED_IFORMFL_VSCALEFPD_FIRST=5729, + XED_IFORMFL_VSCALEFPD_LAST=5734, + XED_IFORMFL_VSCALEFPS_FIRST=5735, + XED_IFORMFL_VSCALEFPS_LAST=5740, + XED_IFORMFL_VSCALEFSD_FIRST=5741, + XED_IFORMFL_VSCALEFSD_LAST=5742, + XED_IFORMFL_VSCALEFSS_FIRST=5743, + XED_IFORMFL_VSCALEFSS_LAST=5744, + XED_IFORMFL_VSCATTERDPD_FIRST=5745, + XED_IFORMFL_VSCATTERDPD_LAST=5747, + XED_IFORMFL_VSCATTERDPS_FIRST=5748, + XED_IFORMFL_VSCATTERDPS_LAST=5750, + XED_IFORMFL_VSCATTERPF0DPD_FIRST=5751, + XED_IFORMFL_VSCATTERPF0DPD_LAST=5751, + XED_IFORMFL_VSCATTERPF0DPS_FIRST=5752, + XED_IFORMFL_VSCATTERPF0DPS_LAST=5752, + XED_IFORMFL_VSCATTERPF0QPD_FIRST=5753, + XED_IFORMFL_VSCATTERPF0QPD_LAST=5753, + XED_IFORMFL_VSCATTERPF0QPS_FIRST=5754, + XED_IFORMFL_VSCATTERPF0QPS_LAST=5754, + XED_IFORMFL_VSCATTERPF1DPD_FIRST=5755, + XED_IFORMFL_VSCATTERPF1DPD_LAST=5755, + XED_IFORMFL_VSCATTERPF1DPS_FIRST=5756, + XED_IFORMFL_VSCATTERPF1DPS_LAST=5756, + XED_IFORMFL_VSCATTERPF1QPD_FIRST=5757, + XED_IFORMFL_VSCATTERPF1QPD_LAST=5757, + XED_IFORMFL_VSCATTERPF1QPS_FIRST=5758, + XED_IFORMFL_VSCATTERPF1QPS_LAST=5758, + XED_IFORMFL_VSCATTERQPD_FIRST=5759, + XED_IFORMFL_VSCATTERQPD_LAST=5761, + XED_IFORMFL_VSCATTERQPS_FIRST=5762, + XED_IFORMFL_VSCATTERQPS_LAST=5764, + XED_IFORMFL_VSHUFF32X4_FIRST=5765, + XED_IFORMFL_VSHUFF32X4_LAST=5768, + XED_IFORMFL_VSHUFF64X2_FIRST=5769, + XED_IFORMFL_VSHUFF64X2_LAST=5772, + XED_IFORMFL_VSHUFI32X4_FIRST=5773, + XED_IFORMFL_VSHUFI32X4_LAST=5776, + XED_IFORMFL_VSHUFI64X2_FIRST=5777, + XED_IFORMFL_VSHUFI64X2_LAST=5780, + XED_IFORMFL_VSHUFPD_FIRST=5781, + XED_IFORMFL_VSHUFPD_LAST=5790, + XED_IFORMFL_VSHUFPS_FIRST=5791, + XED_IFORMFL_VSHUFPS_LAST=5800, + XED_IFORMFL_VSQRTPD_FIRST=5801, + XED_IFORMFL_VSQRTPD_LAST=5810, + XED_IFORMFL_VSQRTPS_FIRST=5811, + XED_IFORMFL_VSQRTPS_LAST=5820, + XED_IFORMFL_VSQRTSD_FIRST=5821, + XED_IFORMFL_VSQRTSD_LAST=5824, + XED_IFORMFL_VSQRTSS_FIRST=5825, + XED_IFORMFL_VSQRTSS_LAST=5828, + XED_IFORMFL_VSTMXCSR_FIRST=5829, + XED_IFORMFL_VSTMXCSR_LAST=5829, + XED_IFORMFL_VSUBPD_FIRST=5830, + XED_IFORMFL_VSUBPD_LAST=5839, + XED_IFORMFL_VSUBPS_FIRST=5840, + XED_IFORMFL_VSUBPS_LAST=5849, + XED_IFORMFL_VSUBSD_FIRST=5850, + XED_IFORMFL_VSUBSD_LAST=5853, + XED_IFORMFL_VSUBSS_FIRST=5854, + XED_IFORMFL_VSUBSS_LAST=5857, + XED_IFORMFL_VTESTPD_FIRST=5858, + XED_IFORMFL_VTESTPD_LAST=5861, + XED_IFORMFL_VTESTPS_FIRST=5862, + XED_IFORMFL_VTESTPS_LAST=5865, + XED_IFORMFL_VUCOMISD_FIRST=5866, + XED_IFORMFL_VUCOMISD_LAST=5869, + XED_IFORMFL_VUCOMISS_FIRST=5870, + XED_IFORMFL_VUCOMISS_LAST=5873, + XED_IFORMFL_VUNPCKHPD_FIRST=5874, + XED_IFORMFL_VUNPCKHPD_LAST=5883, + XED_IFORMFL_VUNPCKHPS_FIRST=5884, + XED_IFORMFL_VUNPCKHPS_LAST=5893, + XED_IFORMFL_VUNPCKLPD_FIRST=5894, + XED_IFORMFL_VUNPCKLPD_LAST=5903, + XED_IFORMFL_VUNPCKLPS_FIRST=5904, + XED_IFORMFL_VUNPCKLPS_LAST=5913, + XED_IFORMFL_VXORPD_FIRST=5914, + XED_IFORMFL_VXORPD_LAST=5923, + XED_IFORMFL_VXORPS_FIRST=5924, + XED_IFORMFL_VXORPS_LAST=5933, + XED_IFORMFL_VZEROALL_FIRST=5934, + XED_IFORMFL_VZEROALL_LAST=5934, + XED_IFORMFL_VZEROUPPER_FIRST=5935, + XED_IFORMFL_VZEROUPPER_LAST=5935, + XED_IFORMFL_WBINVD_FIRST=5936, + XED_IFORMFL_WBINVD_LAST=5936, + XED_IFORMFL_WRFSBASE_FIRST=5937, + XED_IFORMFL_WRFSBASE_LAST=5937, + XED_IFORMFL_WRGSBASE_FIRST=5938, + XED_IFORMFL_WRGSBASE_LAST=5938, + XED_IFORMFL_WRMSR_FIRST=5939, + XED_IFORMFL_WRMSR_LAST=5939, + XED_IFORMFL_XABORT_FIRST=5940, + XED_IFORMFL_XABORT_LAST=5940, + XED_IFORMFL_XADD_FIRST=5941, + XED_IFORMFL_XADD_LAST=5944, + XED_IFORMFL_XADD_LOCK_FIRST=5945, + XED_IFORMFL_XADD_LOCK_LAST=5946, + XED_IFORMFL_XBEGIN_FIRST=5947, + XED_IFORMFL_XBEGIN_LAST=5947, + XED_IFORMFL_XCHG_FIRST=5948, + XED_IFORMFL_XCHG_LAST=5952, + XED_IFORMFL_XEND_FIRST=5953, + XED_IFORMFL_XEND_LAST=5953, + XED_IFORMFL_XGETBV_FIRST=5954, + XED_IFORMFL_XGETBV_LAST=5954, + XED_IFORMFL_XLAT_FIRST=5955, + XED_IFORMFL_XLAT_LAST=5955, + XED_IFORMFL_XOR_FIRST=5956, + XED_IFORMFL_XOR_LAST=5973, + XED_IFORMFL_XORPD_FIRST=5974, + XED_IFORMFL_XORPD_LAST=5975, + XED_IFORMFL_XORPS_FIRST=5976, + XED_IFORMFL_XORPS_LAST=5977, + XED_IFORMFL_XOR_LOCK_FIRST=5978, + XED_IFORMFL_XOR_LOCK_LAST=5983, + XED_IFORMFL_XRSTOR_FIRST=5984, + XED_IFORMFL_XRSTOR_LAST=5984, + XED_IFORMFL_XRSTOR64_FIRST=5985, + XED_IFORMFL_XRSTOR64_LAST=5985, + XED_IFORMFL_XRSTORS_FIRST=5986, + XED_IFORMFL_XRSTORS_LAST=5986, + XED_IFORMFL_XRSTORS64_FIRST=5987, + XED_IFORMFL_XRSTORS64_LAST=5987, + XED_IFORMFL_XSAVE_FIRST=5988, + XED_IFORMFL_XSAVE_LAST=5988, + XED_IFORMFL_XSAVE64_FIRST=5989, + XED_IFORMFL_XSAVE64_LAST=5989, + XED_IFORMFL_XSAVEC_FIRST=5990, + XED_IFORMFL_XSAVEC_LAST=5990, + XED_IFORMFL_XSAVEC64_FIRST=5991, + XED_IFORMFL_XSAVEC64_LAST=5991, + XED_IFORMFL_XSAVEOPT_FIRST=5992, + XED_IFORMFL_XSAVEOPT_LAST=5992, + XED_IFORMFL_XSAVEOPT64_FIRST=5993, + XED_IFORMFL_XSAVEOPT64_LAST=5993, + XED_IFORMFL_XSAVES_FIRST=5994, + XED_IFORMFL_XSAVES_LAST=5994, + XED_IFORMFL_XSAVES64_FIRST=5995, + XED_IFORMFL_XSAVES64_LAST=5995, + XED_IFORMFL_XSETBV_FIRST=5996, + XED_IFORMFL_XSETBV_LAST=5996, + XED_IFORMFL_XTEST_FIRST=5997, + XED_IFORMFL_XTEST_LAST=5997, + XED_IFORMFL_LAST +} xed_iformfl_enum_t; + +/// Returns the last element of the enumeration +/// @return xed_iformfl_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_iformfl_enum_t xed_iformfl_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-ild.h b/third_party/xed-intel64/include/xed-ild.h new file mode 100644 index 0000000..1ac2ae5 --- /dev/null +++ b/third_party/xed-intel64/include/xed-ild.h @@ -0,0 +1,75 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ + +/// @file xed-ild.h +/// instruction length decoder + +#if !defined(_XED_ILD_H_) +# define _XED_ILD_H_ +#include "xed-operand-accessors.h" +#include "../../../third_party/xed-intel64/include/xed-common-defs.h" +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-operand-accessors.h" +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +/// This function just does instruction length decoding. +/// It does not return a fully decoded instruction. +/// @param xedd the decoded instruction of type #xed_decoded_inst_t . +/// Mode/state sent in via xedd; See the #xed_state_t . +/// @param itext the pointer to the array of instruction text bytes +/// @param bytes the length of the itext input array. +/// 1 to 15 bytes, anything more is ignored. +/// @return #xed_error_enum_t indiciating success (#XED_ERROR_NONE) or +/// failure. +/// Only two failure codes are valid for this function: +/// #XED_ERROR_BUFFER_TOO_SHORT and #XED_ERROR_GENERAL_ERROR. +/// In general this function cannot tell if the instruction is valid or +/// not. For valid instructions, XED can figure out if enough bytes were +/// provided to decode the instruction. If not enough were provided, +/// XED returns #XED_ERROR_BUFFER_TOO_SHORT. +/// From this function, the #XED_ERROR_GENERAL_ERROR is an indication +/// that XED could not decode the instruction's length because the +/// instruction was so invalid that even its length +/// may across implmentations. +/// +/// @ingroup DEC +XED_DLL_EXPORT xed_error_enum_t +xed_ild_decode(xed_decoded_inst_t* xedd, + const xed_uint8_t* itext, + const unsigned int bytes); + + +#endif + diff --git a/third_party/xed-intel64/include/xed-immdis.h b/third_party/xed-intel64/include/xed-immdis.h new file mode 100644 index 0000000..a789fc3 --- /dev/null +++ b/third_party/xed-intel64/include/xed-immdis.h @@ -0,0 +1,214 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-immdis.h +/// + + + +#ifndef _XED_IMMDIS_H_ +# define _XED_IMMDIS_H_ + +#include "../../../third_party/xed-intel64/include/xed-common-defs.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" +#include "../../../third_party/xed-intel64/include/xed-util.h" + + +//////////////////////////////////////////////////////////////////////////// +// DEFINES +//////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////// +// TYPES +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +// PROTOTYPES +//////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////// +// GLOBALS +//////////////////////////////////////////////////////////////////////////// + +#define XED_MAX_IMMDIS_BYTES 8 + +// A union for speed of zeroing +union xed_immdis_values_t +{ + xed_uint8_t x[XED_MAX_IMMDIS_BYTES];// STORED LITTLE ENDIAN. BYTE 0 is LSB + xed_uint64_t q; +}; + +/// Stores immediates and displacements for the encoder & decoder. +typedef struct xed_immdis_s { + union xed_immdis_values_t value; + unsigned int currently_used_space :4; // current number of assigned bytes + unsigned int max_allocated_space :4; // max allocation, 4 or 8 + xed_bool_t present : 1; + xed_bool_t immediate_is_unsigned : 1; +} xed_immdis_t; + +XED_DLL_EXPORT void xed_immdis__check(xed_immdis_t* q, int p) ; + + +XED_DLL_EXPORT void xed_immdis_init(xed_immdis_t* p, int max_bytes); + +/// @name Sizes and lengths +//@{ +/// return the number of bytes added +XED_DLL_EXPORT unsigned int xed_immdis_get_bytes(const xed_immdis_t* p) ; + +//@} + +/// @name Accessors for the value of the immediate or displacement +//@{ +XED_DLL_EXPORT xed_int64_t +xed_immdis_get_signed64(const xed_immdis_t* p); + +XED_DLL_EXPORT xed_uint64_t +xed_immdis_get_unsigned64(const xed_immdis_t* p); + +XED_DLL_EXPORT xed_bool_t +xed_immdis_is_zero(const xed_immdis_t* p) ; + +XED_DLL_EXPORT xed_bool_t +xed_immdis_is_one(const xed_immdis_t* p) ; + +/// Access the i'th byte of the immediate +XED_DLL_EXPORT xed_uint8_t xed_immdis_get_byte(const xed_immdis_t* p, unsigned int i) ; +//@} + +/// @name Presence / absence of an immediate or displacement +//@{ +XED_DLL_EXPORT void xed_immdis_set_present(xed_immdis_t* p) ; + +/// True if the object has had a value or individual bytes added to it. +XED_DLL_EXPORT xed_bool_t xed_immdis_is_present(const xed_immdis_t* p) ; +//@} + + +/// @name Initialization and setup +//@{ +XED_DLL_EXPORT void xed_immdis_set_max_len(xed_immdis_t* p, unsigned int mx) ; +XED_DLL_EXPORT void +xed_immdis_zero(xed_immdis_t* p); + +XED_DLL_EXPORT unsigned int xed_immdis_get_max_length(const xed_immdis_t* p) ; + +//@} + +/// @name Signed vs Unsigned +//@{ +/// Return true if signed. +XED_DLL_EXPORT xed_bool_t +xed_immdis_is_unsigned(const xed_immdis_t* p) ; +/// Return true if signed. +XED_DLL_EXPORT xed_bool_t +xed_immdis_is_signed(const xed_immdis_t* p) ; + +/// Set the immediate to be signed; For decoder use only. +XED_DLL_EXPORT void +xed_immdis_set_signed(xed_immdis_t* p) ; +/// Set the immediate to be unsigned; For decoder use only. +XED_DLL_EXPORT void +xed_immdis_set_unsigned( xed_immdis_t* p) ; +//@} + + +/// @name Adding / setting values +//@{ +XED_DLL_EXPORT void +xed_immdis_add_byte(xed_immdis_t* p, xed_uint8_t b); + + +XED_DLL_EXPORT void +xed_immdis_add_byte_array(xed_immdis_t* p, int nb, xed_uint8_t* ba); + +/// Add 1, 2, 4 or 8 bytes depending on the value x and the mask of +/// legal_widths. The default value of legal_widths = 0x5 only stops +/// adding bytes only on 1 or 4 byte quantities - depending on which +/// bytes of x are zero -- as is used for most memory addressing. You +/// can set legal_widths to 0x7 for branches (1, 2 or 4 byte branch +/// displacements). Or if you have an 8B displacement, you can set +/// legal_widths to 0x8. NOTE: add_shortest_width will add up to +/// XED_MAX_IMMDIS_BYTES if the x value requires it. NOTE: 16b memory +/// addressing can have 16b immediates. +XED_DLL_EXPORT void +xed_immdis_add_shortest_width_signed(xed_immdis_t* p, xed_int64_t x, xed_uint8_t legal_widths); + +/// See add_shortest_width_signed() +XED_DLL_EXPORT void +xed_immdis_add_shortest_width_unsigned(xed_immdis_t* p, xed_uint64_t x, xed_uint8_t legal_widths ); + + +/// add an 8 bit value to the byte array +XED_DLL_EXPORT void +xed_immdis_add8(xed_immdis_t* p, xed_int8_t d); + +/// add a 16 bit value to the byte array +XED_DLL_EXPORT void +xed_immdis_add16(xed_immdis_t* p, xed_int16_t d); + +/// add a 32 bit value to the byte array +XED_DLL_EXPORT void +xed_immdis_add32(xed_immdis_t* p, xed_int32_t d); + +/// add a 64 bit value to the byte array. +XED_DLL_EXPORT void +xed_immdis_add64(xed_immdis_t* p, xed_int64_t d); + +//@} + + +/// @name printing / debugging +//@{ + +/// just print the raw bytes in hex with a leading 0x +XED_DLL_EXPORT int xed_immdis_print(const xed_immdis_t* p, char* buf, int buflen); + +/// Print the value as a signed or unsigned number depending on the +/// value of the immediate_is_unsigned variable. +XED_DLL_EXPORT int +xed_immdis_print_signed_or_unsigned(const xed_immdis_t* p, char* buf, int buflen); + +/// print the signed value, appropriate width, with a leading 0x +XED_DLL_EXPORT int +xed_immdis_print_value_signed(const xed_immdis_t* p, char* buf, int buflen); + +/// print the unsigned value, appropriate width, with a leading 0x +XED_DLL_EXPORT int +xed_immdis_print_value_unsigned(const xed_immdis_t* p, char* buf, int buflen); + +int xed_immdis__print_ptr(const xed_immdis_t* p, char* buf, int buflen); +#endif + +//@} + + diff --git a/third_party/xed-intel64/include/xed-immed.h b/third_party/xed-intel64/include/xed-immed.h new file mode 100644 index 0000000..daa7e27 --- /dev/null +++ b/third_party/xed-intel64/include/xed-immed.h @@ -0,0 +1,62 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-immed.h +/// + +#ifndef _XED_IMMED_H_ +# define _XED_IMMED_H_ + +#include "../../../third_party/xed-intel64/include/xed-common-defs.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" +#include "../../../third_party/xed-intel64/include/xed-util.h" + +XED_DLL_EXPORT xed_int64_t xed_immed_from_bytes(xed_int8_t* bytes, xed_uint_t n); + /* + Convert an array of bytes representing a Little Endian byte ordering + of a number (11 22 33 44 55.. 88), in to a a 64b SIGNED number. That gets + stored in memory in little endian format of course. + + Input 11 22 33 44 55 66 77 88, 8 + Ouptut 0x8877665544332211 (stored in memory as (lsb) 11 22 33 44 55 66 77 88 (msb)) + + Input f0, 1 + Output 0xffff_ffff_ffff_fff0 (stored in memory as f0 ff ff ff ff ff ff ff) + + Input f0 00, 2 + Output 0x0000_0000_0000_00F0 (stored in memory a f0 00 00 00 00 00 00 00) + + Input 03, 1 + Output 0x0000_0000_0000_0030 (stored in memory a 30 00 00 00 00 00 00 00) + */ + + +#endif diff --git a/third_party/xed-intel64/include/xed-init-pointer-names.h b/third_party/xed-intel64/include/xed-init-pointer-names.h new file mode 100644 index 0000000..5460135 --- /dev/null +++ b/third_party/xed-intel64/include/xed-init-pointer-names.h @@ -0,0 +1,41 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-init-pointer-names.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_INIT_POINTER_NAMES_H_) +# define _XED_INIT_POINTER_NAMES_H_ +#include "xed-internal-header.h" +#define XED_MAX_POINTER_NAMES 65 +#endif diff --git a/third_party/xed-intel64/include/xed-init.h b/third_party/xed-intel64/include/xed-init.h new file mode 100644 index 0000000..52fa12c --- /dev/null +++ b/third_party/xed-intel64/include/xed-init.h @@ -0,0 +1,49 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-init.h +/// + + + + +#if !defined(_XED_INIT_H_) +# define _XED_INIT_H_ + + +/// @ingroup INIT +/// This is the call to initialize the XED encode and decode tables. It +/// must be called once before using XED. +void XED_DLL_EXPORT xed_tables_init(void); + +//////////////////////////////////////////////////////////////////////////// + +#endif diff --git a/third_party/xed-intel64/include/xed-inst.h b/third_party/xed-intel64/include/xed-inst.h new file mode 100644 index 0000000..d1511d8 --- /dev/null +++ b/third_party/xed-intel64/include/xed-inst.h @@ -0,0 +1,380 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-inst.h + + +#if !defined(_XED_INST_H_) +# define _XED_INST_H_ + +#include "../../../third_party/xed-intel64/include/xed-attribute-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-attributes.h" +#include "../../../third_party/xed-intel64/include/xed-category-enum.h" // generated +#include "../../../third_party/xed-intel64/include/xed-exception-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-extension-enum.h" //generated +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" //generated +#include "../../../third_party/xed-intel64/include/xed-iform-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-iform-map.h" +#include "../../../third_party/xed-intel64/include/xed-nonterminal-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-operand-action-enum.h" // generated +#include "../../../third_party/xed-intel64/include/xed-operand-convert-enum.h" // generated +#include "../../../third_party/xed-intel64/include/xed-operand-element-xtype-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-operand-enum.h" // generated +#include "../../../third_party/xed-intel64/include/xed-operand-type-enum.h" // generated +#include "../../../third_party/xed-intel64/include/xed-operand-visibility-enum.h" //generated +#include "../../../third_party/xed-intel64/include/xed-operand-width-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-reg-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-util.h" + +struct xed_decoded_inst_s; //fwd-decl + +typedef void (*xed_operand_extractor_fn_t)(struct xed_decoded_inst_s* xds); + + +/// @ingroup DEC +/// Constant information about an individual generic operand, like an +///operand template, describing the operand properties. See @ref DEC for +///API information. +typedef struct xed_operand_s +{ + xed_operand_enum_t _name; + + // implicit, explicit, suppressed + xed_operand_visibility_enum_t _operand_visibility; + xed_operand_action_enum_t _rw; // read or written + + // width code, could be invalid (then use register name) + xed_operand_width_enum_t _oc2; + + // IMM, IMM_CONST, NT_LOOKUP_FN, REG, ERROR + xed_operand_type_enum_t _type; + xed_operand_element_xtype_enum_t _xtype; // xed data type: u32, f32, etc. + xed_uint8_t _cvt_idx; // decoration index + union { + xed_uint32_t _imm; // value for some constant immmed + xed_nonterminal_enum_t _nt; // for nt_lookup_fn's + xed_reg_enum_t _reg; // register name + } _u; +} xed_operand_t; + +/// @name xed_inst_t Template Operands Access +//@{ +/// @ingroup DEC +static XED_INLINE xed_operand_enum_t +xed_operand_name(const xed_operand_t* p) { + return p->_name; +} + + +/// @ingroup DEC +static XED_INLINE xed_operand_visibility_enum_t +xed_operand_operand_visibility( const xed_operand_t* p) { + return p->_operand_visibility; +} + + +/// @ingroup DEC +/// @return The #xed_operand_type_enum_t of the operand template. +/// This is probably not what you want. +static XED_INLINE xed_operand_type_enum_t +xed_operand_type(const xed_operand_t* p) { + return p->_type; +} + +/// @ingroup DEC +/// @return The #xed_operand_element_xtype_enum_t of the operand template. +/// This is probably not what you want. +static XED_INLINE xed_operand_element_xtype_enum_t +xed_operand_xtype(const xed_operand_t* p) { + return p->_xtype; +} + + +/// @ingroup DEC +static XED_INLINE xed_operand_width_enum_t +xed_operand_width(const xed_operand_t* p) { + return p->_oc2; +} + +/// @ingroup DEC +/// @param p an operand template, #xed_operand_t. +/// @param eosz effective operand size of the instruction, 1 | 2 | 3 for +/// 16 | 32 | 64 bits respectively. 0 is invalid. +/// @return the actual width of operand in bits. +/// See xed_decoded_inst_operand_length_bits() for a more general solution. +XED_DLL_EXPORT xed_uint32_t +xed_operand_width_bits(const xed_operand_t* p, + const xed_uint32_t eosz); + +/// @ingroup DEC +static XED_INLINE xed_nonterminal_enum_t +xed_operand_nonterminal_name(const xed_operand_t* p) { + if (xed_operand_type(p) == XED_OPERAND_TYPE_NT_LOOKUP_FN) + return p->_u._nt; + return XED_NONTERMINAL_INVALID; +} + +/// @ingroup DEC +/// Careful with this one -- use #xed_decoded_inst_get_reg()! This one is +/// probably not what you think it is. It is only used for hard-coded +/// registers implicit in the instruction encoding. Most likely you want to +/// get the #xed_operand_enum_t and then look up the instruction using +/// #xed_decoded_inst_get_reg(). The hard-coded registers are also available +/// that way. +/// @param p an operand template, #xed_operand_t. +/// @return the implicit or suppressed registers, type #xed_reg_enum_t +static XED_INLINE xed_reg_enum_t xed_operand_reg(const xed_operand_t* p) { + if (xed_operand_type(p) == XED_OPERAND_TYPE_REG) + return p->_u._reg; + return XED_REG_INVALID; +} + + + +/// @ingroup DEC +/// Careful with this one; See #xed_operand_is_register(). +/// @param p an operand template, #xed_operand_t. +/// @return 1 if the operand template represents are register-type +/// operand. +/// +/// Related functions: +/// Use #xed_decoded_inst_get_reg() to get the decoded name of /// the +/// register, #xed_reg_enum_t. Use #xed_operand_is_register() to test +/// #xed_operand_enum_t names. +static XED_INLINE xed_uint_t +xed_operand_template_is_register(const xed_operand_t* p) { + return p->_type == XED_OPERAND_TYPE_NT_LOOKUP_FN || + p->_type == XED_OPERAND_TYPE_REG; +} + +/// @ingroup DEC +/// @param p an operand template, #xed_operand_t. +/// These operands represent branch displacements, memory displacements and +/// various immediates +static XED_INLINE xed_uint32_t xed_operand_imm(const xed_operand_t* p) { + if (xed_operand_type(p) == XED_OPERAND_TYPE_IMM_CONST) + return p->_u._imm; + return 0; +} + +/// @ingroup DEC +/// Print the operand p into the buffer buf, of length buflen. +/// @param p an operand template, #xed_operand_t. +/// @param buf buffer that gets filled in +/// @param buflen maximum buffer length +XED_DLL_EXPORT void +xed_operand_print(const xed_operand_t* p, char* buf, int buflen); +//@} + +/// @name xed_inst_t Template Operand Enum Name Classification +//@{ +/// @ingroup DEC +/// Tests the enum for inclusion in XED_OPERAND_REG0 through XED_OPERAND_REG15. +/// @param name the operand name, type #xed_operand_enum_t +/// @return 1 if the operand name is REG0...REG15, 0 otherwise. +/// +///Note there are other registers for memory addressing; See +/// #xed_operand_is_memory_addressing_register . +static XED_INLINE xed_uint_t xed_operand_is_register(xed_operand_enum_t name) { + return name >= XED_OPERAND_REG0 && name <= XED_OPERAND_REG8; +} +/// @ingroup DEC +/// Tests the enum for inclusion in XED_OPERAND_{BASE0,BASE1,INDEX,SEG0,SEG1} +/// @param name the operand name, type #xed_operand_enum_t +/// @return 1 if the operand name is for a memory addressing register operand, 0 +/// otherwise. See also #xed_operand_is_register . +static XED_INLINE xed_uint_t +xed_operand_is_memory_addressing_register(xed_operand_enum_t name) { + return ( name == XED_OPERAND_BASE0 || + name == XED_OPERAND_INDEX || + name == XED_OPERAND_SEG0 || + name == XED_OPERAND_BASE1 || + name == XED_OPERAND_SEG1 ); +} + +//@} + +/// @name xed_inst_t Template Operand Read/Written +//@{ +/// @ingroup DEC +/// DEPRECATED: Returns the raw R/W action. There are many cases for conditional reads +/// and writes. See #xed_decoded_inst_operand_action(). +static XED_INLINE xed_operand_action_enum_t +xed_operand_rw(const xed_operand_t* p) { + return p->_rw; +} + +/// @ingroup DEC +/// If the operand is read, including conditional reads +XED_DLL_EXPORT xed_uint_t xed_operand_read(const xed_operand_t* p); +/// @ingroup DEC +/// If the operand is read-only, including conditional reads +XED_DLL_EXPORT xed_uint_t xed_operand_read_only(const xed_operand_t* p); +/// @ingroup DEC +/// If the operand is written, including conditional writes +XED_DLL_EXPORT xed_uint_t xed_operand_written(const xed_operand_t* p); +/// @ingroup DEC +/// If the operand is written-only, including conditional writes +XED_DLL_EXPORT xed_uint_t xed_operand_written_only(const xed_operand_t* p); +/// @ingroup DEC +/// If the operand is read-and-written, conditional reads and conditional writes +XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written(const xed_operand_t* p); +/// @ingroup DEC +/// If the operand has a conditional read (may also write) +XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read(const xed_operand_t* p); +/// @ingroup DEC +/// If the operand has a conditional write (may also read) +XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write(const xed_operand_t* p); +//@} + + +/// @ingroup DEC +/// constant information about a decoded instruction form, including +/// the pointer to the constant operand properties #xed_operand_t for this +/// instruction form. +typedef struct xed_inst_s { + + + // rflags info -- index in to the 2 tables of flags information. + // If _flag_complex is true, then the data are in the + // xed_flags_complex_table[]. Otherwise, the data are in the + // xed_flags_simple_table[]. + + //xed_instruction_fixed_bit_confirmer_fn_t _confirmer; + + // number of operands in the operands array + xed_uint8_t _noperands; + xed_uint8_t _cpl; // the nominal CPL for the instruction. + xed_uint16_t _flag_info_index; + + xed_iform_enum_t _iform_enum; + // index into the xed_operand[] array of xed_operand_t structures + xed_uint16_t _operand_base; + xed_uint16_t _flag_complex; /* 1/0 valued, bool type */ + + // index to table of xed_attributes_t structures + xed_uint16_t _attributes; + xed_exception_enum_t _exceptions; +} xed_inst_t; + +/// @name xed_inst_t Template Instruction Information +//@{ +/// @ingroup DEC +/// xed_inst_cpl() is DEPRECATED. Please use +/// "xed_decoded_inst_get_attribute(xedd, XED_ATTRIBUTE_RING0)" +/// instead. +///Return the current privilege level (CPL) required for execution, 0 or +///3. If the value is zero, then the instruction can only execute in ring 0. +XED_DLL_EXPORT unsigned int xed_inst_cpl(const xed_inst_t* p) ; + + +//These next few are not doxygen commented because I want people to use the +//higher level interface in xed-decoded-inst.h. +static XED_INLINE xed_iclass_enum_t xed_inst_iclass(const xed_inst_t* p) { + return xed_iform_to_iclass(p->_iform_enum); +} + +static XED_INLINE xed_category_enum_t xed_inst_category(const xed_inst_t* p) { + return xed_iform_to_category(p->_iform_enum); +} + +static XED_INLINE xed_extension_enum_t xed_inst_extension(const xed_inst_t* p) { + return xed_iform_to_extension(p->_iform_enum); +} +static XED_INLINE xed_isa_set_enum_t xed_inst_isa_set(const xed_inst_t* p) { + return xed_iform_to_isa_set(p->_iform_enum); +} + +static XED_INLINE xed_iform_enum_t xed_inst_iform_enum(const xed_inst_t* p) { + return p->_iform_enum; +} + + +///@ingroup DEC +/// Number of instruction operands +static XED_INLINE unsigned int xed_inst_noperands(const xed_inst_t* p) { + return p->_noperands; +} + +///@ingroup DEC +/// Obtain a pointer to an individual operand +XED_DLL_EXPORT const xed_operand_t* +xed_inst_operand(const xed_inst_t* p, unsigned int i); + + + +XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index(const xed_inst_t* p); + +//@} + +/// @name xed_inst_t Attribute access +//@{ +/// @ingroup DEC +/// Scan for the attribute attr and return 1 if it is found, 0 otherwise. +XED_DLL_EXPORT xed_uint32_t +xed_inst_get_attribute(const xed_inst_t* p, + xed_attribute_enum_t attr); + +/// @ingroup DEC +/// Return the attributes bit vector +XED_DLL_EXPORT xed_attributes_t +xed_inst_get_attributes(const xed_inst_t* p); + + +/// @ingroup DEC +/// Return the maximum number of defined attributes, independent of any +/// instruction. +XED_DLL_EXPORT unsigned int xed_attribute_max(void); + +/// @ingroup DEC +/// Return the i'th global attribute in a linear sequence, independent of +/// any instruction. This is used for scanning and printing all attributes. +XED_DLL_EXPORT xed_attribute_enum_t xed_attribute(unsigned int i); + +//@} + +/// @name Exceptions +//@{ +/// @ingroup DEC +/// Return #xed_exception_enum_t if present for the specified instruction. +/// This is currently only used for SSE and AVX instructions. +static XED_INLINE +xed_exception_enum_t xed_inst_exception(const xed_inst_t* p) { + return p->_exceptions; +} + +//@} +/// @ingroup DEC +/// Return the base of instruction table. +XED_DLL_EXPORT const xed_inst_t* xed_inst_table_base(void); + +#endif diff --git a/third_party/xed-intel64/include/xed-interface.h b/third_party/xed-intel64/include/xed-interface.h new file mode 100644 index 0000000..0829661 --- /dev/null +++ b/third_party/xed-intel64/include/xed-interface.h @@ -0,0 +1,95 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/* +/// @file xed-interface.h +/// +*/ + + + +#if !defined(_XED_INTERFACE_H_) +# define _XED_INTERFACE_H_ + +#if defined(_WIN32) && defined(_MANAGED) +#pragma unmanaged +#endif + +#include "../../../third_party/xed-intel64/include/xed-build-defines.h" /* generated */ + +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" +#include "../../../third_party/xed-intel64/include/xed-operand-enum.h" + +#include "../../../third_party/xed-intel64/include/xed-init.h" +#include "../../../third_party/xed-intel64/include/xed-decode.h" +#include "../../../third_party/xed-intel64/include/xed-ild.h" + +#include "../../../third_party/xed-intel64/include/xed-state.h" /* dstate, legacy */ +#include "../../../third_party/xed-intel64/include/xed-syntax-enum.h" +#include "../../../third_party/xed-intel64/include/xed-reg-class-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-reg-class.h" + +#if defined(XED_ENCODER) +# include "../../../third_party/xed-intel64/include/xed-encode.h" +# include "../../../third_party/xed-intel64/include/xed-encoder-hl.h" +#endif +#include "../../../third_party/xed-intel64/include/xed-util.h" +#include "../../../third_party/xed-intel64/include/xed-operand-action.h" + +#include "../../../third_party/xed-intel64/include/xed-version.h" +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-decoded-inst-api.h" +#include "../../../third_party/xed-intel64/include/xed-inst.h" +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-category-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-extension-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-attribute-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-exception-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-operand-element-type-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-operand-element-xtype-enum.h" /* generated */ + +#include "../../../third_party/xed-intel64/include/xed-disas.h" // callbacks for disassembly +#include "../../../third_party/xed-intel64/include/xed-format-options.h" /* options for disassembly */ + +#include "../../../third_party/xed-intel64/include/xed-iform-enum.h" /* generated */ +/* indicates the first and last index of each iform, for building tables */ +#include "../../../third_party/xed-intel64/include/xed-iformfl-enum.h" /* generated */ +/* mapping iforms to iclass/category/extension */ +#include "../../../third_party/xed-intel64/include/xed-iform-map.h" +#include "../../../third_party/xed-intel64/include/xed-rep-prefix.h" + + +#include "../../../third_party/xed-intel64/include/xed-agen.h" +#include "../../../third_party/xed-intel64/include/xed-cpuid-rec.h" + + +#endif diff --git a/third_party/xed-intel64/include/xed-isa-set-enum.h b/third_party/xed-intel64/include/xed-isa-set-enum.h new file mode 100644 index 0000000..37967e6 --- /dev/null +++ b/third_party/xed-intel64/include/xed-isa-set-enum.h @@ -0,0 +1,159 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-isa-set-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_ISA_SET_ENUM_H_) +# define _XED_ISA_SET_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_ISA_SET_INVALID, + XED_ISA_SET_3DNOW, + XED_ISA_SET_AES, + XED_ISA_SET_AMD, + XED_ISA_SET_AVX, + XED_ISA_SET_AVX2, + XED_ISA_SET_AVX2GATHER, + XED_ISA_SET_AVX512BW_128, + XED_ISA_SET_AVX512BW_128N, + XED_ISA_SET_AVX512BW_256, + XED_ISA_SET_AVX512BW_512, + XED_ISA_SET_AVX512BW_KOP, + XED_ISA_SET_AVX512CD_128, + XED_ISA_SET_AVX512CD_256, + XED_ISA_SET_AVX512CD_512, + XED_ISA_SET_AVX512DQ_128, + XED_ISA_SET_AVX512DQ_128N, + XED_ISA_SET_AVX512DQ_256, + XED_ISA_SET_AVX512DQ_512, + XED_ISA_SET_AVX512DQ_KOP, + XED_ISA_SET_AVX512DQ_SCALAR, + XED_ISA_SET_AVX512ER_512, + XED_ISA_SET_AVX512ER_SCALAR, + XED_ISA_SET_AVX512F_128, + XED_ISA_SET_AVX512F_128N, + XED_ISA_SET_AVX512F_256, + XED_ISA_SET_AVX512F_512, + XED_ISA_SET_AVX512F_KOP, + XED_ISA_SET_AVX512F_SCALAR, + XED_ISA_SET_AVX512IFMA_128, + XED_ISA_SET_AVX512IFMA_256, + XED_ISA_SET_AVX512IFMA_512, + XED_ISA_SET_AVX512PF_512, + XED_ISA_SET_AVX512VBMI_128, + XED_ISA_SET_AVX512VBMI_256, + XED_ISA_SET_AVX512VBMI_512, + XED_ISA_SET_AVXAES, + XED_ISA_SET_BDW, + XED_ISA_SET_BMI1, + XED_ISA_SET_BMI2, + XED_ISA_SET_CLFLUSHOPT, + XED_ISA_SET_CLFSH, + XED_ISA_SET_CLWB, + XED_ISA_SET_CMPXCHG16B, + XED_ISA_SET_F16C, + XED_ISA_SET_FMA, + XED_ISA_SET_FMA4, + XED_ISA_SET_FXSAVE, + XED_ISA_SET_FXSAVE64, + XED_ISA_SET_I186, + XED_ISA_SET_I286PROTECTED, + XED_ISA_SET_I286REAL, + XED_ISA_SET_I386, + XED_ISA_SET_I486, + XED_ISA_SET_I486REAL, + XED_ISA_SET_I86, + XED_ISA_SET_INVPCID, + XED_ISA_SET_LAHF, + XED_ISA_SET_LONGMODE, + XED_ISA_SET_LZCNT, + XED_ISA_SET_MOVBE, + XED_ISA_SET_MPX, + XED_ISA_SET_PAUSE, + XED_ISA_SET_PCLMULQDQ, + XED_ISA_SET_PCOMMIT, + XED_ISA_SET_PENTIUMMMX, + XED_ISA_SET_PENTIUMREAL, + XED_ISA_SET_POPCNT, + XED_ISA_SET_PPRO, + XED_ISA_SET_PREFETCHW, + XED_ISA_SET_PREFETCHWT1, + XED_ISA_SET_PREFETCH_NOP, + XED_ISA_SET_RDPMC, + XED_ISA_SET_RDRAND, + XED_ISA_SET_RDSEED, + XED_ISA_SET_RDTSCP, + XED_ISA_SET_RDWRFSGS, + XED_ISA_SET_RTM, + XED_ISA_SET_SGX, + XED_ISA_SET_SHA, + XED_ISA_SET_SMAP, + XED_ISA_SET_SMX, + XED_ISA_SET_SSE, + XED_ISA_SET_SSE2, + XED_ISA_SET_SSE3, + XED_ISA_SET_SSE4, + XED_ISA_SET_SSE42, + XED_ISA_SET_SSE4A, + XED_ISA_SET_SSEMXCSR, + XED_ISA_SET_SSSE3, + XED_ISA_SET_SVM, + XED_ISA_SET_TBM, + XED_ISA_SET_VMFUNC, + XED_ISA_SET_VTX, + XED_ISA_SET_X87, + XED_ISA_SET_XOP, + XED_ISA_SET_XSAVE, + XED_ISA_SET_XSAVEC, + XED_ISA_SET_XSAVEOPT, + XED_ISA_SET_XSAVES, + XED_ISA_SET_LAST +} xed_isa_set_enum_t; + +/// This converts strings to #xed_isa_set_enum_t types. +/// @param s A C-string. +/// @return #xed_isa_set_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_isa_set_enum_t str2xed_isa_set_enum_t(const char* s); +/// This converts strings to #xed_isa_set_enum_t types. +/// @param p An enumeration element of type xed_isa_set_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_isa_set_enum_t2str(const xed_isa_set_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_isa_set_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_isa_set_enum_t xed_isa_set_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-isa-set.h b/third_party/xed-intel64/include/xed-isa-set.h new file mode 100644 index 0000000..27b08f7 --- /dev/null +++ b/third_party/xed-intel64/include/xed-isa-set.h @@ -0,0 +1,51 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-isa-set.h + + +#if !defined(_XED_ISA_SET_H_) +# define _XED_ISA_SET_H_ + +#include "../../../third_party/xed-intel64/include/xed-chip-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-isa-set-enum.h" /* generated */ +#include "../../../third_party/xed-intel64/include/xed-types.h" + +/// @ingroup ISASET +/// return 1 if the isa_set is part included in the specified chip, 0 +/// otherwise. +XED_DLL_EXPORT xed_bool_t +xed_isa_set_is_valid_for_chip(xed_isa_set_enum_t isa_set, + xed_chip_enum_t chip); + + +#endif diff --git a/third_party/xed-intel64/include/xed-machine-mode-enum.h b/third_party/xed-intel64/include/xed-machine-mode-enum.h new file mode 100644 index 0000000..647d6f1 --- /dev/null +++ b/third_party/xed-intel64/include/xed-machine-mode-enum.h @@ -0,0 +1,66 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-machine-mode-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_MACHINE_MODE_ENUM_H_) +# define _XED_MACHINE_MODE_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_MACHINE_MODE_INVALID, + XED_MACHINE_MODE_LONG_64, ///< 64b operating mode + XED_MACHINE_MODE_LONG_COMPAT_32, ///< 32b protected mode + XED_MACHINE_MODE_LONG_COMPAT_16, ///< 16b protected mode + XED_MACHINE_MODE_LEGACY_32, ///< 32b protected mode + XED_MACHINE_MODE_LEGACY_16, ///< 16b protected mode + XED_MACHINE_MODE_REAL_16, ///< 16b real mode + XED_MACHINE_MODE_LAST +} xed_machine_mode_enum_t; + +/// This converts strings to #xed_machine_mode_enum_t types. +/// @param s A C-string. +/// @return #xed_machine_mode_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_machine_mode_enum_t str2xed_machine_mode_enum_t(const char* s); +/// This converts strings to #xed_machine_mode_enum_t types. +/// @param p An enumeration element of type xed_machine_mode_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_machine_mode_enum_t2str(const xed_machine_mode_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_machine_mode_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_machine_mode_enum_t xed_machine_mode_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-nonterminal-enum.h b/third_party/xed-intel64/include/xed-nonterminal-enum.h new file mode 100644 index 0000000..11e56b5 --- /dev/null +++ b/third_party/xed-intel64/include/xed-nonterminal-enum.h @@ -0,0 +1,310 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-nonterminal-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_NONTERMINAL_ENUM_H_) +# define _XED_NONTERMINAL_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_NONTERMINAL_INVALID, + XED_NONTERMINAL_AR10, + XED_NONTERMINAL_AR11, + XED_NONTERMINAL_AR12, + XED_NONTERMINAL_AR13, + XED_NONTERMINAL_AR14, + XED_NONTERMINAL_AR15, + XED_NONTERMINAL_AR8, + XED_NONTERMINAL_AR9, + XED_NONTERMINAL_ARAX, + XED_NONTERMINAL_ARBP, + XED_NONTERMINAL_ARBX, + XED_NONTERMINAL_ARCX, + XED_NONTERMINAL_ARDI, + XED_NONTERMINAL_ARDX, + XED_NONTERMINAL_ARSI, + XED_NONTERMINAL_ARSP, + XED_NONTERMINAL_ASZ_NONTERM, + XED_NONTERMINAL_AVX512_ROUND, + XED_NONTERMINAL_AVX_INSTRUCTIONS, + XED_NONTERMINAL_AVX_SPLITTER, + XED_NONTERMINAL_BND_B, + XED_NONTERMINAL_BND_B_CHECK, + XED_NONTERMINAL_BND_R, + XED_NONTERMINAL_BND_R_CHECK, + XED_NONTERMINAL_BRANCH_HINT, + XED_NONTERMINAL_BRDISP32, + XED_NONTERMINAL_BRDISP8, + XED_NONTERMINAL_BRDISPZ, + XED_NONTERMINAL_CR_B, + XED_NONTERMINAL_CR_R, + XED_NONTERMINAL_CR_WIDTH, + XED_NONTERMINAL_DF64, + XED_NONTERMINAL_DR_B, + XED_NONTERMINAL_DR_R, + XED_NONTERMINAL_ESIZE_128_BITS, + XED_NONTERMINAL_ESIZE_16_BITS, + XED_NONTERMINAL_ESIZE_1_BITS, + XED_NONTERMINAL_ESIZE_2_BITS, + XED_NONTERMINAL_ESIZE_32_BITS, + XED_NONTERMINAL_ESIZE_4_BITS, + XED_NONTERMINAL_ESIZE_64_BITS, + XED_NONTERMINAL_ESIZE_8_BITS, + XED_NONTERMINAL_EVEX_INSTRUCTIONS, + XED_NONTERMINAL_EVEX_SPLITTER, + XED_NONTERMINAL_FINAL_DSEG, + XED_NONTERMINAL_FINAL_DSEG1, + XED_NONTERMINAL_FINAL_DSEG1_MODE64, + XED_NONTERMINAL_FINAL_DSEG1_NOT64, + XED_NONTERMINAL_FINAL_DSEG_MODE64, + XED_NONTERMINAL_FINAL_DSEG_NOT64, + XED_NONTERMINAL_FINAL_ESEG, + XED_NONTERMINAL_FINAL_ESEG1, + XED_NONTERMINAL_FINAL_SSEG, + XED_NONTERMINAL_FINAL_SSEG0, + XED_NONTERMINAL_FINAL_SSEG1, + XED_NONTERMINAL_FINAL_SSEG_MODE64, + XED_NONTERMINAL_FINAL_SSEG_NOT64, + XED_NONTERMINAL_FIX_ROUND_LEN128, + XED_NONTERMINAL_FIX_ROUND_LEN512, + XED_NONTERMINAL_FORCE64, + XED_NONTERMINAL_GPR16_B, + XED_NONTERMINAL_GPR16_R, + XED_NONTERMINAL_GPR16_SB, + XED_NONTERMINAL_GPR16_SR, + XED_NONTERMINAL_GPR32_B, + XED_NONTERMINAL_GPR32_R, + XED_NONTERMINAL_GPR32_SB, + XED_NONTERMINAL_GPR32_SR, + XED_NONTERMINAL_GPR32_X, + XED_NONTERMINAL_GPR64_B, + XED_NONTERMINAL_GPR64_R, + XED_NONTERMINAL_GPR64_SB, + XED_NONTERMINAL_GPR64_SR, + XED_NONTERMINAL_GPR64_X, + XED_NONTERMINAL_GPR8_B, + XED_NONTERMINAL_GPR8_R, + XED_NONTERMINAL_GPR8_SB, + XED_NONTERMINAL_GPR8_SR, + XED_NONTERMINAL_GPRM_B, + XED_NONTERMINAL_GPRM_R, + XED_NONTERMINAL_GPRV_B, + XED_NONTERMINAL_GPRV_R, + XED_NONTERMINAL_GPRV_SB, + XED_NONTERMINAL_GPRV_SR, + XED_NONTERMINAL_GPRY_B, + XED_NONTERMINAL_GPRY_N, + XED_NONTERMINAL_GPRY_R, + XED_NONTERMINAL_GPRZ_B, + XED_NONTERMINAL_GPRZ_R, + XED_NONTERMINAL_IGNORE66, + XED_NONTERMINAL_IMMUNE66, + XED_NONTERMINAL_IMMUNE66_LOOP64, + XED_NONTERMINAL_IMMUNE_REXW, + XED_NONTERMINAL_INSTRUCTIONS, + XED_NONTERMINAL_ISA, + XED_NONTERMINAL_MASK1, + XED_NONTERMINAL_MASK_B, + XED_NONTERMINAL_MASK_I3, + XED_NONTERMINAL_MASK_N, + XED_NONTERMINAL_MASK_R, + XED_NONTERMINAL_MEMDISP, + XED_NONTERMINAL_MEMDISP16, + XED_NONTERMINAL_MEMDISP32, + XED_NONTERMINAL_MEMDISP8, + XED_NONTERMINAL_MEMDISPV, + XED_NONTERMINAL_MMX_B, + XED_NONTERMINAL_MMX_R, + XED_NONTERMINAL_MODRM, + XED_NONTERMINAL_MODRM16, + XED_NONTERMINAL_MODRM32, + XED_NONTERMINAL_MODRM64ALT32, + XED_NONTERMINAL_NELEM_EIGHTHMEM, + XED_NONTERMINAL_NELEM_FULL, + XED_NONTERMINAL_NELEM_FULLMEM, + XED_NONTERMINAL_NELEM_GPR_READER, + XED_NONTERMINAL_NELEM_GPR_READER_BYTE, + XED_NONTERMINAL_NELEM_GPR_READER_SUBDWORD, + XED_NONTERMINAL_NELEM_GPR_READER_WORD, + XED_NONTERMINAL_NELEM_GPR_WRITER_LDOP, + XED_NONTERMINAL_NELEM_GPR_WRITER_LDOP_D, + XED_NONTERMINAL_NELEM_GPR_WRITER_LDOP_Q, + XED_NONTERMINAL_NELEM_GPR_WRITER_STORE, + XED_NONTERMINAL_NELEM_GPR_WRITER_STORE_BYTE, + XED_NONTERMINAL_NELEM_GPR_WRITER_STORE_SUBDWORD, + XED_NONTERMINAL_NELEM_GPR_WRITER_STORE_WORD, + XED_NONTERMINAL_NELEM_GSCAT, + XED_NONTERMINAL_NELEM_HALF, + XED_NONTERMINAL_NELEM_HALFMEM, + XED_NONTERMINAL_NELEM_MEM128, + XED_NONTERMINAL_NELEM_MOVDDUP, + XED_NONTERMINAL_NELEM_QUARTERMEM, + XED_NONTERMINAL_NELEM_SCALAR, + XED_NONTERMINAL_NELEM_TUPLE1, + XED_NONTERMINAL_NELEM_TUPLE1_BYTE, + XED_NONTERMINAL_NELEM_TUPLE1_SUBDWORD, + XED_NONTERMINAL_NELEM_TUPLE1_WORD, + XED_NONTERMINAL_NELEM_TUPLE2, + XED_NONTERMINAL_NELEM_TUPLE4, + XED_NONTERMINAL_NELEM_TUPLE8, + XED_NONTERMINAL_OEAX, + XED_NONTERMINAL_ONE, + XED_NONTERMINAL_ORAX, + XED_NONTERMINAL_ORBP, + XED_NONTERMINAL_ORDX, + XED_NONTERMINAL_ORSP, + XED_NONTERMINAL_OSZ_NONTERM, + XED_NONTERMINAL_OVERRIDE_SEG0, + XED_NONTERMINAL_OVERRIDE_SEG1, + XED_NONTERMINAL_PREFIXES, + XED_NONTERMINAL_REFINING66, + XED_NONTERMINAL_REMOVE_SEGMENT, + XED_NONTERMINAL_RFLAGS, + XED_NONTERMINAL_RIP, + XED_NONTERMINAL_SAE, + XED_NONTERMINAL_SEG, + XED_NONTERMINAL_SE_IMM8, + XED_NONTERMINAL_SIB, + XED_NONTERMINAL_SIB_BASE0, + XED_NONTERMINAL_SIMM8, + XED_NONTERMINAL_SIMMZ, + XED_NONTERMINAL_SRBP, + XED_NONTERMINAL_SRSP, + XED_NONTERMINAL_UIMM16, + XED_NONTERMINAL_UIMM32, + XED_NONTERMINAL_UIMM8, + XED_NONTERMINAL_UIMM8_1, + XED_NONTERMINAL_UIMMV, + XED_NONTERMINAL_UISA_SE_IMM8, + XED_NONTERMINAL_UISA_VMODRM_XMM, + XED_NONTERMINAL_UISA_VMODRM_YMM, + XED_NONTERMINAL_UISA_VMODRM_ZMM, + XED_NONTERMINAL_UISA_VSIB_BASE, + XED_NONTERMINAL_UISA_VSIB_INDEX_XMM, + XED_NONTERMINAL_UISA_VSIB_INDEX_YMM, + XED_NONTERMINAL_UISA_VSIB_INDEX_ZMM, + XED_NONTERMINAL_UISA_VSIB_XMM, + XED_NONTERMINAL_UISA_VSIB_YMM, + XED_NONTERMINAL_UISA_VSIB_ZMM, + XED_NONTERMINAL_VGPR32_B, + XED_NONTERMINAL_VGPR32_B_32, + XED_NONTERMINAL_VGPR32_B_64, + XED_NONTERMINAL_VGPR32_N, + XED_NONTERMINAL_VGPR32_N_32, + XED_NONTERMINAL_VGPR32_N_64, + XED_NONTERMINAL_VGPR32_R, + XED_NONTERMINAL_VGPR32_R_32, + XED_NONTERMINAL_VGPR32_R_64, + XED_NONTERMINAL_VGPR64_B, + XED_NONTERMINAL_VGPR64_N, + XED_NONTERMINAL_VGPR64_R, + XED_NONTERMINAL_VGPRV_N, + XED_NONTERMINAL_VMODRM_XMM, + XED_NONTERMINAL_VMODRM_YMM, + XED_NONTERMINAL_VSIB_BASE, + XED_NONTERMINAL_VSIB_INDEX_XMM, + XED_NONTERMINAL_VSIB_INDEX_YMM, + XED_NONTERMINAL_VSIB_XMM, + XED_NONTERMINAL_VSIB_YMM, + XED_NONTERMINAL_X87, + XED_NONTERMINAL_XMM_B, + XED_NONTERMINAL_XMM_B3, + XED_NONTERMINAL_XMM_B_32, + XED_NONTERMINAL_XMM_B_64, + XED_NONTERMINAL_XMM_I3, + XED_NONTERMINAL_XMM_N, + XED_NONTERMINAL_XMM_N3, + XED_NONTERMINAL_XMM_N3_32, + XED_NONTERMINAL_XMM_N3_64, + XED_NONTERMINAL_XMM_N_32, + XED_NONTERMINAL_XMM_N_64, + XED_NONTERMINAL_XMM_R, + XED_NONTERMINAL_XMM_R3, + XED_NONTERMINAL_XMM_R3_32, + XED_NONTERMINAL_XMM_R3_64, + XED_NONTERMINAL_XMM_R_32, + XED_NONTERMINAL_XMM_R_64, + XED_NONTERMINAL_XMM_SE, + XED_NONTERMINAL_XMM_SE32, + XED_NONTERMINAL_XMM_SE64, + XED_NONTERMINAL_XOP_INSTRUCTIONS, + XED_NONTERMINAL_YMM_B, + XED_NONTERMINAL_YMM_B3, + XED_NONTERMINAL_YMM_B_32, + XED_NONTERMINAL_YMM_B_64, + XED_NONTERMINAL_YMM_I3, + XED_NONTERMINAL_YMM_N, + XED_NONTERMINAL_YMM_N3, + XED_NONTERMINAL_YMM_N3_32, + XED_NONTERMINAL_YMM_N3_64, + XED_NONTERMINAL_YMM_N_32, + XED_NONTERMINAL_YMM_N_64, + XED_NONTERMINAL_YMM_R, + XED_NONTERMINAL_YMM_R3, + XED_NONTERMINAL_YMM_R3_32, + XED_NONTERMINAL_YMM_R3_64, + XED_NONTERMINAL_YMM_R_32, + XED_NONTERMINAL_YMM_R_64, + XED_NONTERMINAL_YMM_SE, + XED_NONTERMINAL_YMM_SE32, + XED_NONTERMINAL_YMM_SE64, + XED_NONTERMINAL_ZMM_B3, + XED_NONTERMINAL_ZMM_B3_32, + XED_NONTERMINAL_ZMM_B3_64, + XED_NONTERMINAL_ZMM_I3, + XED_NONTERMINAL_ZMM_N3, + XED_NONTERMINAL_ZMM_N3_32, + XED_NONTERMINAL_ZMM_N3_64, + XED_NONTERMINAL_ZMM_R3, + XED_NONTERMINAL_ZMM_R3_32, + XED_NONTERMINAL_ZMM_R3_64, + XED_NONTERMINAL_LAST +} xed_nonterminal_enum_t; + +/// This converts strings to #xed_nonterminal_enum_t types. +/// @param s A C-string. +/// @return #xed_nonterminal_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_nonterminal_enum_t str2xed_nonterminal_enum_t(const char* s); +/// This converts strings to #xed_nonterminal_enum_t types. +/// @param p An enumeration element of type xed_nonterminal_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_nonterminal_enum_t2str(const xed_nonterminal_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_nonterminal_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_nonterminal_enum_t xed_nonterminal_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-accessors.h b/third_party/xed-intel64/include/xed-operand-accessors.h new file mode 100644 index 0000000..cdfa1a7 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-accessors.h @@ -0,0 +1,1533 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-accessors.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_ACCESSORS_H_) +# define _XED_OPERAND_ACCESSORS_H_ +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-operand-storage.h" +static XED_INLINE xed_bits_t xed3_operand_get_sib(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_sib(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_last_f2f3(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_last_f2f3(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_uint8_t xed3_operand_get_disp_width(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_disp_width(xed_decoded_inst_t* d, xed_uint8_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_using_default_segment0(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_using_default_segment0(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_using_default_segment1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_using_default_segment1(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_hint(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_hint(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_sae(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_sae(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_mode_first_prefix(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mode_first_prefix(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_uint8_t xed3_operand_get_uimm1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_uimm1(xed_decoded_inst_t* d, xed_uint8_t opval); + +static XED_INLINE xed_uint64_t xed3_operand_get_uimm0(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_uimm0(xed_decoded_inst_t* d, xed_uint64_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_smode(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_smode(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rm(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rm(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_modrm(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_modrm(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_chip_enum_t xed3_operand_get_chip(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_chip(xed_decoded_inst_t* d, xed_chip_enum_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_amd3dnow(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_amd3dnow(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_map(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_map(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_sibindex(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_sibindex(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_agen(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_agen(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_nominal_opcode(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_nominal_opcode(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_seg1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_seg1(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_seg0(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_seg0(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_nprefixes(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_nprefixes(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_index(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_index(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_ild_f2(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_ild_f2(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_scale(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_scale(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_llrc(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_llrc(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_sreg(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_sreg(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_esrc(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_esrc(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_nrexes(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_nrexes(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_pos_sib(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_pos_sib(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_osz(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_osz(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_has_sib(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_has_sib(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_eosz(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_eosz(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_element_size(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_element_size(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_pos_disp(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_pos_disp(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_ubit(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_ubit(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_vexdest210(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_vexdest210(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_vexdest3(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_vexdest3(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_ptr(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_ptr(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_p4(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_p4(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_modep55c(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_modep55c(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_iclass_enum_t xed3_operand_get_iclass(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_iclass(xed_decoded_inst_t* d, xed_iclass_enum_t opval); + +static XED_INLINE xed_uint8_t xed3_operand_get_imm_width(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_imm_width(xed_decoded_inst_t* d, xed_uint8_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_bcrc(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_bcrc(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_error_enum_t xed3_operand_get_error(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_error(xed_decoded_inst_t* d, xed_error_enum_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_evexrr(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_evexrr(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_nelem(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_nelem(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_imm0signed(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_imm0signed(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg8(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg8(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg6(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg6(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg7(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg7(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg4(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg4(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg5(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg5(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg2(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg2(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg3(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg3(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg0(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg0(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg1(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_base0(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_base0(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_base1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_base1(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_mod(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mod(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_int64_t xed3_operand_get_disp(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_disp(xed_decoded_inst_t* d, xed_int64_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rex(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rex(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rexb(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rexb(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_pos_imm(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_pos_imm(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rep(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rep(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rexw(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rexw(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_ild_f3(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_ild_f3(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rexr(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rexr(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_encoder_preferred(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_encoder_preferred(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_reg(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_reg(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_pos_nominal_opcode(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_pos_nominal_opcode(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rexx(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rexx(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_prefix66(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_prefix66(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_rexrr(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_rexrr(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_asz(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_asz(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_mask(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mask(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_mem1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mem1(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_easz(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_easz(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_pos_imm1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_pos_imm1(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_uint16_t xed3_operand_get_mem_width(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mem_width(xed_decoded_inst_t* d, xed_uint16_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_mem0(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mem0(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_uint8_t xed3_operand_get_brdisp_width(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_brdisp_width(xed_decoded_inst_t* d, xed_uint8_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_imm1_bytes(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_imm1_bytes(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_df64(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_df64(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_lock(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_lock(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_has_modrm(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_has_modrm(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_zeroing(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_zeroing(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_srm(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_srm(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_vexvalid(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_vexvalid(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_needrex(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_needrex(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_skip_osz(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_skip_osz(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_reg_enum_t xed3_operand_get_outreg(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_outreg(xed_decoded_inst_t* d, xed_reg_enum_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_default_seg(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_default_seg(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_nseg_prefixes(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_nseg_prefixes(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_vex_c4(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_vex_c4(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_pos_modrm(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_pos_modrm(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_bcast(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_bcast(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_operand_element_type_enum_t xed3_operand_get_type(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_type(xed_decoded_inst_t* d, xed_operand_element_type_enum_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_seg_ovd(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_seg_ovd(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_vex_prefix(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_vex_prefix(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_dummy(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_dummy(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_norex(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_norex(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_roundc(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_roundc(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_sibbase(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_sibbase(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_need_memdisp(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_need_memdisp(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_out_of_bytes(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_out_of_bytes(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_imm1(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_imm1(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_imm0(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_imm0(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_hsw(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_hsw(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_relbr(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_relbr(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_ild_seg(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_ild_seg(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_df32(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_df32(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_realmode(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_realmode(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_modrm_byte(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_modrm_byte(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_no_scale_disp8(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_no_scale_disp8(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_mode(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mode(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_mpxmode(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_mpxmode(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_sibscale(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_sibscale(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_esrc3(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_esrc3(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_vl(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_vl(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_max_bytes(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_max_bytes(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_modep5(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_modep5(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_first_f2f3(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_first_f2f3(xed_decoded_inst_t* d, xed_bits_t opval); + +static XED_INLINE xed_bits_t xed3_operand_get_vexdest4(const xed_decoded_inst_t* d); + +static XED_INLINE void xed3_operand_set_vexdest4(xed_decoded_inst_t* d, xed_bits_t opval); + +void xed3_get_generic_operand(const xed_decoded_inst_t* d, xed_operand_enum_t operand, void* ret_arg); + +void xed3_set_generic_operand(xed_decoded_inst_t* d, xed_operand_enum_t operand, xed_uint32_t val); + +static XED_INLINE xed_bits_t xed3_operand_get_sib(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.sib; +} +static XED_INLINE void xed3_operand_set_sib(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.sib = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_last_f2f3(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.last_f2f3; +} +static XED_INLINE void xed3_operand_set_last_f2f3(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.last_f2f3 = (xed_uint8_t)opval; +} +static XED_INLINE xed_uint8_t xed3_operand_get_disp_width(const xed_decoded_inst_t* d) +{ +return (xed_uint8_t)d->_operands.disp_width; +} +static XED_INLINE void xed3_operand_set_disp_width(xed_decoded_inst_t* d, xed_uint8_t opval) +{ +d->_operands.disp_width = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_using_default_segment0(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.using_default_segment0; +} +static XED_INLINE void xed3_operand_set_using_default_segment0(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.using_default_segment0 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_using_default_segment1(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.using_default_segment1; +} +static XED_INLINE void xed3_operand_set_using_default_segment1(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.using_default_segment1 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_hint(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.hint; +} +static XED_INLINE void xed3_operand_set_hint(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.hint = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_sae(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.sae; +} +static XED_INLINE void xed3_operand_set_sae(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.sae = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_mode_first_prefix(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.mode_first_prefix; +} +static XED_INLINE void xed3_operand_set_mode_first_prefix(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.mode_first_prefix = (xed_uint8_t)opval; +} +static XED_INLINE xed_uint8_t xed3_operand_get_uimm1(const xed_decoded_inst_t* d) +{ +return (xed_uint8_t)d->_operands.uimm1; +} +static XED_INLINE void xed3_operand_set_uimm1(xed_decoded_inst_t* d, xed_uint8_t opval) +{ +d->_operands.uimm1 = (xed_uint8_t)opval; +} +static XED_INLINE xed_uint64_t xed3_operand_get_uimm0(const xed_decoded_inst_t* d) +{ +return (xed_uint64_t)d->_operands.uimm0; +} +static XED_INLINE void xed3_operand_set_uimm0(xed_decoded_inst_t* d, xed_uint64_t opval) +{ +d->_operands.uimm0 = (xed_uint64_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_smode(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.smode; +} +static XED_INLINE void xed3_operand_set_smode(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.smode = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rm(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rm; +} +static XED_INLINE void xed3_operand_set_rm(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rm = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_modrm(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.modrm; +} +static XED_INLINE void xed3_operand_set_modrm(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.modrm = (xed_uint8_t)opval; +} +static XED_INLINE xed_chip_enum_t xed3_operand_get_chip(const xed_decoded_inst_t* d) +{ +return (xed_chip_enum_t)d->_operands.chip; +} +static XED_INLINE void xed3_operand_set_chip(xed_decoded_inst_t* d, xed_chip_enum_t opval) +{ +d->_operands.chip = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_amd3dnow(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.amd3dnow; +} +static XED_INLINE void xed3_operand_set_amd3dnow(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.amd3dnow = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_map(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.map; +} +static XED_INLINE void xed3_operand_set_map(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.map = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_sibindex(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.sibindex; +} +static XED_INLINE void xed3_operand_set_sibindex(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.sibindex = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_agen(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.agen; +} +static XED_INLINE void xed3_operand_set_agen(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.agen = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_nominal_opcode(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.nominal_opcode; +} +static XED_INLINE void xed3_operand_set_nominal_opcode(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.nominal_opcode = (xed_uint8_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_seg1(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.seg1; +} +static XED_INLINE void xed3_operand_set_seg1(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.seg1 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_seg0(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.seg0; +} +static XED_INLINE void xed3_operand_set_seg0(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.seg0 = (xed_uint16_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_nprefixes(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.nprefixes; +} +static XED_INLINE void xed3_operand_set_nprefixes(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.nprefixes = (xed_uint8_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_index(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.index; +} +static XED_INLINE void xed3_operand_set_index(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.index = (xed_uint16_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_ild_f2(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.ild_f2; +} +static XED_INLINE void xed3_operand_set_ild_f2(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.ild_f2 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_scale(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.scale; +} +static XED_INLINE void xed3_operand_set_scale(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.scale = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_llrc(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.llrc; +} +static XED_INLINE void xed3_operand_set_llrc(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.llrc = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_sreg(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.sreg; +} +static XED_INLINE void xed3_operand_set_sreg(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.sreg = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_esrc(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.esrc; +} +static XED_INLINE void xed3_operand_set_esrc(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.esrc = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_nrexes(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.nrexes; +} +static XED_INLINE void xed3_operand_set_nrexes(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.nrexes = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_pos_sib(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.pos_sib; +} +static XED_INLINE void xed3_operand_set_pos_sib(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.pos_sib = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_osz(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.osz; +} +static XED_INLINE void xed3_operand_set_osz(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.osz = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_has_sib(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.has_sib; +} +static XED_INLINE void xed3_operand_set_has_sib(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.has_sib = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_eosz(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.eosz; +} +static XED_INLINE void xed3_operand_set_eosz(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.eosz = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_element_size(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.element_size; +} +static XED_INLINE void xed3_operand_set_element_size(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.element_size = (xed_uint16_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_pos_disp(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.pos_disp; +} +static XED_INLINE void xed3_operand_set_pos_disp(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.pos_disp = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_ubit(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.ubit; +} +static XED_INLINE void xed3_operand_set_ubit(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.ubit = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_vexdest210(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.vexdest210; +} +static XED_INLINE void xed3_operand_set_vexdest210(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.vexdest210 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_vexdest3(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.vexdest3; +} +static XED_INLINE void xed3_operand_set_vexdest3(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.vexdest3 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_ptr(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.ptr; +} +static XED_INLINE void xed3_operand_set_ptr(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.ptr = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_p4(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.p4; +} +static XED_INLINE void xed3_operand_set_p4(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.p4 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_modep55c(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.modep55c; +} +static XED_INLINE void xed3_operand_set_modep55c(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.modep55c = (xed_uint8_t)opval; +} +static XED_INLINE xed_iclass_enum_t xed3_operand_get_iclass(const xed_decoded_inst_t* d) +{ +return (xed_iclass_enum_t)d->_operands.iclass; +} +static XED_INLINE void xed3_operand_set_iclass(xed_decoded_inst_t* d, xed_iclass_enum_t opval) +{ +d->_operands.iclass = (xed_uint16_t)opval; +} +static XED_INLINE xed_uint8_t xed3_operand_get_imm_width(const xed_decoded_inst_t* d) +{ +return (xed_uint8_t)d->_operands.imm_width; +} +static XED_INLINE void xed3_operand_set_imm_width(xed_decoded_inst_t* d, xed_uint8_t opval) +{ +d->_operands.imm_width = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_bcrc(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.bcrc; +} +static XED_INLINE void xed3_operand_set_bcrc(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.bcrc = (xed_uint8_t)opval; +} +static XED_INLINE xed_error_enum_t xed3_operand_get_error(const xed_decoded_inst_t* d) +{ +return (xed_error_enum_t)d->_operands.error; +} +static XED_INLINE void xed3_operand_set_error(xed_decoded_inst_t* d, xed_error_enum_t opval) +{ +d->_operands.error = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_evexrr(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.evexrr; +} +static XED_INLINE void xed3_operand_set_evexrr(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.evexrr = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_nelem(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.nelem; +} +static XED_INLINE void xed3_operand_set_nelem(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.nelem = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_imm0signed(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.imm0signed; +} +static XED_INLINE void xed3_operand_set_imm0signed(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.imm0signed = (xed_uint8_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg8(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg8; +} +static XED_INLINE void xed3_operand_set_reg8(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg8 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg6(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg6; +} +static XED_INLINE void xed3_operand_set_reg6(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg6 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg7(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg7; +} +static XED_INLINE void xed3_operand_set_reg7(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg7 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg4(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg4; +} +static XED_INLINE void xed3_operand_set_reg4(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg4 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg5(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg5; +} +static XED_INLINE void xed3_operand_set_reg5(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg5 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg2(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg2; +} +static XED_INLINE void xed3_operand_set_reg2(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg2 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg3(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg3; +} +static XED_INLINE void xed3_operand_set_reg3(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg3 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg0(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg0; +} +static XED_INLINE void xed3_operand_set_reg0(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg0 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_reg1(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.reg1; +} +static XED_INLINE void xed3_operand_set_reg1(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.reg1 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_base0(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.base0; +} +static XED_INLINE void xed3_operand_set_base0(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.base0 = (xed_uint16_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_base1(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.base1; +} +static XED_INLINE void xed3_operand_set_base1(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.base1 = (xed_uint16_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_mod(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.mod; +} +static XED_INLINE void xed3_operand_set_mod(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.mod = (xed_uint8_t)opval; +} +static XED_INLINE xed_int64_t xed3_operand_get_disp(const xed_decoded_inst_t* d) +{ +return (xed_int64_t)d->_operands.disp; +} +static XED_INLINE void xed3_operand_set_disp(xed_decoded_inst_t* d, xed_int64_t opval) +{ +d->_operands.disp = (xed_uint64_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rex(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rex; +} +static XED_INLINE void xed3_operand_set_rex(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rex = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rexb(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rexb; +} +static XED_INLINE void xed3_operand_set_rexb(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rexb = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_pos_imm(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.pos_imm; +} +static XED_INLINE void xed3_operand_set_pos_imm(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.pos_imm = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rep(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rep; +} +static XED_INLINE void xed3_operand_set_rep(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rep = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rexw(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rexw; +} +static XED_INLINE void xed3_operand_set_rexw(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rexw = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_ild_f3(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.ild_f3; +} +static XED_INLINE void xed3_operand_set_ild_f3(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.ild_f3 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rexr(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rexr; +} +static XED_INLINE void xed3_operand_set_rexr(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rexr = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_encoder_preferred(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.encoder_preferred; +} +static XED_INLINE void xed3_operand_set_encoder_preferred(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.encoder_preferred = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_reg(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.reg; +} +static XED_INLINE void xed3_operand_set_reg(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.reg = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_pos_nominal_opcode(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.pos_nominal_opcode; +} +static XED_INLINE void xed3_operand_set_pos_nominal_opcode(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.pos_nominal_opcode = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rexx(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rexx; +} +static XED_INLINE void xed3_operand_set_rexx(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rexx = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_prefix66(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.prefix66; +} +static XED_INLINE void xed3_operand_set_prefix66(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.prefix66 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_rexrr(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.rexrr; +} +static XED_INLINE void xed3_operand_set_rexrr(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.rexrr = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_asz(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.asz; +} +static XED_INLINE void xed3_operand_set_asz(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.asz = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_mask(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.mask; +} +static XED_INLINE void xed3_operand_set_mask(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.mask = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_mem1(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.mem1; +} +static XED_INLINE void xed3_operand_set_mem1(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.mem1 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_easz(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.easz; +} +static XED_INLINE void xed3_operand_set_easz(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.easz = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_pos_imm1(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.pos_imm1; +} +static XED_INLINE void xed3_operand_set_pos_imm1(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.pos_imm1 = (xed_uint8_t)opval; +} +static XED_INLINE xed_uint16_t xed3_operand_get_mem_width(const xed_decoded_inst_t* d) +{ +return (xed_uint16_t)d->_operands.mem_width; +} +static XED_INLINE void xed3_operand_set_mem_width(xed_decoded_inst_t* d, xed_uint16_t opval) +{ +d->_operands.mem_width = (xed_uint16_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_mem0(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.mem0; +} +static XED_INLINE void xed3_operand_set_mem0(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.mem0 = (xed_uint8_t)opval; +} +static XED_INLINE xed_uint8_t xed3_operand_get_brdisp_width(const xed_decoded_inst_t* d) +{ +return (xed_uint8_t)d->_operands.brdisp_width; +} +static XED_INLINE void xed3_operand_set_brdisp_width(xed_decoded_inst_t* d, xed_uint8_t opval) +{ +d->_operands.brdisp_width = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_imm1_bytes(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.imm1_bytes; +} +static XED_INLINE void xed3_operand_set_imm1_bytes(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.imm1_bytes = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_df64(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.df64; +} +static XED_INLINE void xed3_operand_set_df64(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.df64 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_lock(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.lock; +} +static XED_INLINE void xed3_operand_set_lock(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.lock = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_has_modrm(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.has_modrm; +} +static XED_INLINE void xed3_operand_set_has_modrm(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.has_modrm = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_zeroing(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.zeroing; +} +static XED_INLINE void xed3_operand_set_zeroing(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.zeroing = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_srm(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.srm; +} +static XED_INLINE void xed3_operand_set_srm(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.srm = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_vexvalid(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.vexvalid; +} +static XED_INLINE void xed3_operand_set_vexvalid(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.vexvalid = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_needrex(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.needrex; +} +static XED_INLINE void xed3_operand_set_needrex(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.needrex = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_skip_osz(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.skip_osz; +} +static XED_INLINE void xed3_operand_set_skip_osz(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.skip_osz = (xed_uint8_t)opval; +} +static XED_INLINE xed_reg_enum_t xed3_operand_get_outreg(const xed_decoded_inst_t* d) +{ +return (xed_reg_enum_t)d->_operands.outreg; +} +static XED_INLINE void xed3_operand_set_outreg(xed_decoded_inst_t* d, xed_reg_enum_t opval) +{ +d->_operands.outreg = (xed_uint16_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_default_seg(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.default_seg; +} +static XED_INLINE void xed3_operand_set_default_seg(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.default_seg = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_nseg_prefixes(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.nseg_prefixes; +} +static XED_INLINE void xed3_operand_set_nseg_prefixes(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.nseg_prefixes = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_vex_c4(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.vex_c4; +} +static XED_INLINE void xed3_operand_set_vex_c4(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.vex_c4 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_pos_modrm(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.pos_modrm; +} +static XED_INLINE void xed3_operand_set_pos_modrm(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.pos_modrm = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_bcast(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.bcast; +} +static XED_INLINE void xed3_operand_set_bcast(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.bcast = (xed_uint8_t)opval; +} +static XED_INLINE xed_operand_element_type_enum_t xed3_operand_get_type(const xed_decoded_inst_t* d) +{ +return (xed_operand_element_type_enum_t)d->_operands.type; +} +static XED_INLINE void xed3_operand_set_type(xed_decoded_inst_t* d, xed_operand_element_type_enum_t opval) +{ +d->_operands.type = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_seg_ovd(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.seg_ovd; +} +static XED_INLINE void xed3_operand_set_seg_ovd(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.seg_ovd = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_vex_prefix(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.vex_prefix; +} +static XED_INLINE void xed3_operand_set_vex_prefix(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.vex_prefix = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_dummy(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.dummy; +} +static XED_INLINE void xed3_operand_set_dummy(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.dummy = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_norex(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.norex; +} +static XED_INLINE void xed3_operand_set_norex(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.norex = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_roundc(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.roundc; +} +static XED_INLINE void xed3_operand_set_roundc(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.roundc = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_sibbase(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.sibbase; +} +static XED_INLINE void xed3_operand_set_sibbase(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.sibbase = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_need_memdisp(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.need_memdisp; +} +static XED_INLINE void xed3_operand_set_need_memdisp(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.need_memdisp = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_out_of_bytes(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.out_of_bytes; +} +static XED_INLINE void xed3_operand_set_out_of_bytes(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.out_of_bytes = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_imm1(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.imm1; +} +static XED_INLINE void xed3_operand_set_imm1(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.imm1 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_imm0(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.imm0; +} +static XED_INLINE void xed3_operand_set_imm0(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.imm0 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_hsw(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.hsw; +} +static XED_INLINE void xed3_operand_set_hsw(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.hsw = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_relbr(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.relbr; +} +static XED_INLINE void xed3_operand_set_relbr(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.relbr = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_ild_seg(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.ild_seg; +} +static XED_INLINE void xed3_operand_set_ild_seg(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.ild_seg = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_df32(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.df32; +} +static XED_INLINE void xed3_operand_set_df32(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.df32 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_realmode(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.realmode; +} +static XED_INLINE void xed3_operand_set_realmode(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.realmode = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_modrm_byte(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.modrm_byte; +} +static XED_INLINE void xed3_operand_set_modrm_byte(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.modrm_byte = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_no_scale_disp8(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.no_scale_disp8; +} +static XED_INLINE void xed3_operand_set_no_scale_disp8(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.no_scale_disp8 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_mode(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.mode; +} +static XED_INLINE void xed3_operand_set_mode(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.mode = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_mpxmode(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.mpxmode; +} +static XED_INLINE void xed3_operand_set_mpxmode(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.mpxmode = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_sibscale(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.sibscale; +} +static XED_INLINE void xed3_operand_set_sibscale(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.sibscale = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_esrc3(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.esrc3; +} +static XED_INLINE void xed3_operand_set_esrc3(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.esrc3 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_vl(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.vl; +} +static XED_INLINE void xed3_operand_set_vl(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.vl = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_max_bytes(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.max_bytes; +} +static XED_INLINE void xed3_operand_set_max_bytes(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.max_bytes = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_modep5(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.modep5; +} +static XED_INLINE void xed3_operand_set_modep5(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.modep5 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_first_f2f3(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.first_f2f3; +} +static XED_INLINE void xed3_operand_set_first_f2f3(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.first_f2f3 = (xed_uint8_t)opval; +} +static XED_INLINE xed_bits_t xed3_operand_get_vexdest4(const xed_decoded_inst_t* d) +{ +return (xed_bits_t)d->_operands.vexdest4; +} +static XED_INLINE void xed3_operand_set_vexdest4(xed_decoded_inst_t* d, xed_bits_t opval) +{ +d->_operands.vexdest4 = (xed_uint8_t)opval; +} +#endif diff --git a/third_party/xed-intel64/include/xed-operand-action-enum.h b/third_party/xed-intel64/include/xed-operand-action-enum.h new file mode 100644 index 0000000..0049bc8 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-action-enum.h @@ -0,0 +1,67 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-action-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_ACTION_ENUM_H_) +# define _XED_OPERAND_ACTION_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_ACTION_INVALID, + XED_OPERAND_ACTION_RW, ///< Read and written (must write) + XED_OPERAND_ACTION_R, ///< Read-only + XED_OPERAND_ACTION_W, ///< Write-only (must write) + XED_OPERAND_ACTION_RCW, ///< Read and conditionlly written (may write) + XED_OPERAND_ACTION_CW, ///< Conditionlly written (may write) + XED_OPERAND_ACTION_CRW, ///< Conditionlly read, always written (must write) + XED_OPERAND_ACTION_CR, ///< Conditional read + XED_OPERAND_ACTION_LAST +} xed_operand_action_enum_t; + +/// This converts strings to #xed_operand_action_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_action_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_action_enum_t str2xed_operand_action_enum_t(const char* s); +/// This converts strings to #xed_operand_action_enum_t types. +/// @param p An enumeration element of type xed_operand_action_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_action_enum_t2str(const xed_operand_action_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_action_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_action_enum_t xed_operand_action_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-action.h b/third_party/xed-intel64/include/xed-operand-action.h new file mode 100644 index 0000000..72b0351 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-action.h @@ -0,0 +1,50 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-action.h +/// + +#if !defined(_XED_OPERAND_ACTION_H_) +# define _XED_OPERAND_ACTION_H_ + +#include "../../../third_party/xed-intel64/include/xed-operand-action-enum.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + +XED_DLL_EXPORT xed_uint_t xed_operand_action_read(const xed_operand_action_enum_t rw); +XED_DLL_EXPORT xed_uint_t xed_operand_action_read_only(const xed_operand_action_enum_t rw); +XED_DLL_EXPORT xed_uint_t xed_operand_action_written(const xed_operand_action_enum_t rw); +XED_DLL_EXPORT xed_uint_t xed_operand_action_written_only(const xed_operand_action_enum_t rw); +XED_DLL_EXPORT xed_uint_t xed_operand_action_read_and_written(const xed_operand_action_enum_t rw); +XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_read(const xed_operand_action_enum_t rw); +XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_write(const xed_operand_action_enum_t rw); + +#endif + diff --git a/third_party/xed-intel64/include/xed-operand-convert-enum.h b/third_party/xed-intel64/include/xed-operand-convert-enum.h new file mode 100644 index 0000000..fe8f04d --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-convert-enum.h @@ -0,0 +1,64 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-convert-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_CONVERT_ENUM_H_) +# define _XED_OPERAND_CONVERT_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_CONVERT_INVALID, + XED_OPERAND_CONVERT_ZEROSTR, + XED_OPERAND_CONVERT_SAESTR, + XED_OPERAND_CONVERT_ROUNDC, + XED_OPERAND_CONVERT_BCASTSTR, + XED_OPERAND_CONVERT_LAST +} xed_operand_convert_enum_t; + +/// This converts strings to #xed_operand_convert_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_convert_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_convert_enum_t str2xed_operand_convert_enum_t(const char* s); +/// This converts strings to #xed_operand_convert_enum_t types. +/// @param p An enumeration element of type xed_operand_convert_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_convert_enum_t2str(const xed_operand_convert_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_convert_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_convert_enum_t xed_operand_convert_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-ctype-enum.h b/third_party/xed-intel64/include/xed-operand-ctype-enum.h new file mode 100644 index 0000000..7d2e942 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-ctype-enum.h @@ -0,0 +1,70 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-ctype-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_CTYPE_ENUM_H_) +# define _XED_OPERAND_CTYPE_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_CTYPE_INVALID, + XED_OPERAND_CTYPE_XED_BITS_T, + XED_OPERAND_CTYPE_XED_CHIP_ENUM_T, + XED_OPERAND_CTYPE_XED_ERROR_ENUM_T, + XED_OPERAND_CTYPE_XED_ICLASS_ENUM_T, + XED_OPERAND_CTYPE_XED_INT64_T, + XED_OPERAND_CTYPE_XED_OPERAND_ELEMENT_TYPE_ENUM_T, + XED_OPERAND_CTYPE_XED_REG_ENUM_T, + XED_OPERAND_CTYPE_XED_UINT16_T, + XED_OPERAND_CTYPE_XED_UINT64_T, + XED_OPERAND_CTYPE_XED_UINT8_T, + XED_OPERAND_CTYPE_LAST +} xed_operand_ctype_enum_t; + +/// This converts strings to #xed_operand_ctype_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_ctype_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_ctype_enum_t str2xed_operand_ctype_enum_t(const char* s); +/// This converts strings to #xed_operand_ctype_enum_t types. +/// @param p An enumeration element of type xed_operand_ctype_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_ctype_enum_t2str(const xed_operand_ctype_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_ctype_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_ctype_enum_t xed_operand_ctype_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-ctype-map.h b/third_party/xed-intel64/include/xed-operand-ctype-map.h new file mode 100644 index 0000000..25d24cd --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-ctype-map.h @@ -0,0 +1,42 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-ctype-map.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_CTYPE_MAP_H_) +# define _XED_OPERAND_CTYPE_MAP_H_ +#include "xed-internal-header.h" +xed_operand_ctype_enum_t xed_operand_get_ctype(xed_operand_enum_t opname); +unsigned int xed_operand_decider_get_width(xed_operand_enum_t opname); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-element-type-enum.h b/third_party/xed-intel64/include/xed-operand-element-type-enum.h new file mode 100644 index 0000000..0fa89a4 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-element-type-enum.h @@ -0,0 +1,69 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-element-type-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_ELEMENT_TYPE_ENUM_H_) +# define _XED_OPERAND_ELEMENT_TYPE_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_ELEMENT_TYPE_INVALID, + XED_OPERAND_ELEMENT_TYPE_UINT, ///< Unsigned integer + XED_OPERAND_ELEMENT_TYPE_INT, ///< Signed integer + XED_OPERAND_ELEMENT_TYPE_SINGLE, ///< 32b FP single precision + XED_OPERAND_ELEMENT_TYPE_DOUBLE, ///< 64b FP double precision + XED_OPERAND_ELEMENT_TYPE_LONGDOUBLE, ///< 80b FP x87 + XED_OPERAND_ELEMENT_TYPE_LONGBCD, ///< 80b decimal BCD + XED_OPERAND_ELEMENT_TYPE_STRUCT, ///< a structure of various fields + XED_OPERAND_ELEMENT_TYPE_VARIABLE, ///< depends on other fields in the instruction + XED_OPERAND_ELEMENT_TYPE_FLOAT16, ///< 16b floating point + XED_OPERAND_ELEMENT_TYPE_LAST +} xed_operand_element_type_enum_t; + +/// This converts strings to #xed_operand_element_type_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_element_type_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_element_type_enum_t str2xed_operand_element_type_enum_t(const char* s); +/// This converts strings to #xed_operand_element_type_enum_t types. +/// @param p An enumeration element of type xed_operand_element_type_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_element_type_enum_t2str(const xed_operand_element_type_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_element_type_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_element_type_enum_t xed_operand_element_type_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-element-xtype-enum.h b/third_party/xed-intel64/include/xed-operand-element-xtype-enum.h new file mode 100644 index 0000000..18f8ee2 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-element-xtype-enum.h @@ -0,0 +1,80 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-element-xtype-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_ELEMENT_XTYPE_ENUM_H_) +# define _XED_OPERAND_ELEMENT_XTYPE_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_XTYPE_INVALID, + XED_OPERAND_XTYPE_B80, + XED_OPERAND_XTYPE_F16, + XED_OPERAND_XTYPE_F32, + XED_OPERAND_XTYPE_F64, + XED_OPERAND_XTYPE_F80, + XED_OPERAND_XTYPE_I1, + XED_OPERAND_XTYPE_I16, + XED_OPERAND_XTYPE_I32, + XED_OPERAND_XTYPE_I64, + XED_OPERAND_XTYPE_I8, + XED_OPERAND_XTYPE_INT, + XED_OPERAND_XTYPE_STRUCT, + XED_OPERAND_XTYPE_U128, + XED_OPERAND_XTYPE_U16, + XED_OPERAND_XTYPE_U256, + XED_OPERAND_XTYPE_U32, + XED_OPERAND_XTYPE_U64, + XED_OPERAND_XTYPE_U8, + XED_OPERAND_XTYPE_UINT, + XED_OPERAND_XTYPE_VAR, + XED_OPERAND_XTYPE_LAST +} xed_operand_element_xtype_enum_t; + +/// This converts strings to #xed_operand_element_xtype_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_element_xtype_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_element_xtype_enum_t str2xed_operand_element_xtype_enum_t(const char* s); +/// This converts strings to #xed_operand_element_xtype_enum_t types. +/// @param p An enumeration element of type xed_operand_element_xtype_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_element_xtype_enum_t2str(const xed_operand_element_xtype_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_element_xtype_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_element_xtype_enum_t xed_operand_element_xtype_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-enum.h b/third_party/xed-intel64/include/xed-operand-enum.h new file mode 100644 index 0000000..c73e27b --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-enum.h @@ -0,0 +1,184 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_ENUM_H_) +# define _XED_OPERAND_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_INVALID, + XED_OPERAND_AGEN, + XED_OPERAND_AMD3DNOW, + XED_OPERAND_ASZ, + XED_OPERAND_BASE0, + XED_OPERAND_BASE1, + XED_OPERAND_BCAST, + XED_OPERAND_BCRC, + XED_OPERAND_BRDISP_WIDTH, + XED_OPERAND_CHIP, + XED_OPERAND_DEFAULT_SEG, + XED_OPERAND_DF32, + XED_OPERAND_DF64, + XED_OPERAND_DISP_WIDTH, + XED_OPERAND_DISP, + XED_OPERAND_DUMMY, + XED_OPERAND_EASZ, + XED_OPERAND_ELEMENT_SIZE, + XED_OPERAND_ENCODER_PREFERRED, + XED_OPERAND_EOSZ, + XED_OPERAND_ERROR, + XED_OPERAND_ESRC, + XED_OPERAND_ESRC3, + XED_OPERAND_EVEXRR, + XED_OPERAND_FIRST_F2F3, + XED_OPERAND_HAS_SIB, + XED_OPERAND_HAS_MODRM, + XED_OPERAND_HINT, + XED_OPERAND_HSW, + XED_OPERAND_ICLASS, + XED_OPERAND_ILD_F2, + XED_OPERAND_ILD_F3, + XED_OPERAND_ILD_SEG, + XED_OPERAND_IMM_WIDTH, + XED_OPERAND_IMM0SIGNED, + XED_OPERAND_IMM0, + XED_OPERAND_IMM1_BYTES, + XED_OPERAND_IMM1, + XED_OPERAND_INDEX, + XED_OPERAND_LAST_F2F3, + XED_OPERAND_LLRC, + XED_OPERAND_LOCK, + XED_OPERAND_MAP, + XED_OPERAND_MASK, + XED_OPERAND_MAX_BYTES, + XED_OPERAND_MEM_WIDTH, + XED_OPERAND_MEM0, + XED_OPERAND_MEM1, + XED_OPERAND_MOD, + XED_OPERAND_MODE_FIRST_PREFIX, + XED_OPERAND_MODE, + XED_OPERAND_MODEP5, + XED_OPERAND_MODEP55C, + XED_OPERAND_MODRM, + XED_OPERAND_MODRM_BYTE, + XED_OPERAND_MPXMODE, + XED_OPERAND_NEED_MEMDISP, + XED_OPERAND_NEEDREX, + XED_OPERAND_NELEM, + XED_OPERAND_NO_SCALE_DISP8, + XED_OPERAND_NOMINAL_OPCODE, + XED_OPERAND_NOREX, + XED_OPERAND_NPREFIXES, + XED_OPERAND_NREXES, + XED_OPERAND_NSEG_PREFIXES, + XED_OPERAND_OSZ, + XED_OPERAND_OUT_OF_BYTES, + XED_OPERAND_OUTREG, + XED_OPERAND_P4, + XED_OPERAND_POS_SIB, + XED_OPERAND_POS_DISP, + XED_OPERAND_POS_IMM, + XED_OPERAND_POS_NOMINAL_OPCODE, + XED_OPERAND_POS_IMM1, + XED_OPERAND_POS_MODRM, + XED_OPERAND_PREFIX66, + XED_OPERAND_PTR, + XED_OPERAND_REALMODE, + XED_OPERAND_REG, + XED_OPERAND_REG0, + XED_OPERAND_REG1, + XED_OPERAND_REG2, + XED_OPERAND_REG3, + XED_OPERAND_REG4, + XED_OPERAND_REG5, + XED_OPERAND_REG6, + XED_OPERAND_REG7, + XED_OPERAND_REG8, + XED_OPERAND_RELBR, + XED_OPERAND_REP, + XED_OPERAND_REX, + XED_OPERAND_REXB, + XED_OPERAND_REXR, + XED_OPERAND_REXRR, + XED_OPERAND_REXW, + XED_OPERAND_REXX, + XED_OPERAND_RM, + XED_OPERAND_ROUNDC, + XED_OPERAND_SAE, + XED_OPERAND_SCALE, + XED_OPERAND_SEG_OVD, + XED_OPERAND_SEG0, + XED_OPERAND_SEG1, + XED_OPERAND_SIB, + XED_OPERAND_SIBBASE, + XED_OPERAND_SIBINDEX, + XED_OPERAND_SIBSCALE, + XED_OPERAND_SKIP_OSZ, + XED_OPERAND_SMODE, + XED_OPERAND_SREG, + XED_OPERAND_SRM, + XED_OPERAND_TYPE, + XED_OPERAND_UBIT, + XED_OPERAND_UIMM0, + XED_OPERAND_UIMM1, + XED_OPERAND_USING_DEFAULT_SEGMENT0, + XED_OPERAND_USING_DEFAULT_SEGMENT1, + XED_OPERAND_VEX_C4, + XED_OPERAND_VEX_PREFIX, + XED_OPERAND_VEXDEST3, + XED_OPERAND_VEXDEST4, + XED_OPERAND_VEXDEST210, + XED_OPERAND_VEXVALID, + XED_OPERAND_VL, + XED_OPERAND_ZEROING, + XED_OPERAND_LAST +} xed_operand_enum_t; + +/// This converts strings to #xed_operand_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_enum_t str2xed_operand_enum_t(const char* s); +/// This converts strings to #xed_operand_enum_t types. +/// @param p An enumeration element of type xed_operand_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_enum_t2str(const xed_operand_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_enum_t xed_operand_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-storage.h b/third_party/xed-intel64/include/xed-operand-storage.h new file mode 100644 index 0000000..0f300d0 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-storage.h @@ -0,0 +1,170 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-storage.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_STORAGE_H_) +# define _XED_OPERAND_STORAGE_H_ +#include "../../../third_party/xed-intel64/include/xed-chip-enum.h" +#include "../../../third_party/xed-intel64/include/xed-error-enum.h" +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" +#include "../../../third_party/xed-intel64/include/xed-operand-element-type-enum.h" +#include "../../../third_party/xed-intel64/include/xed-reg-enum.h" +typedef struct xed_operand_storage_s { + xed_uint64_t disp; + xed_uint64_t uimm0; + xed_uint16_t mem_width; + xed_uint16_t iclass; + xed_uint16_t base0; + xed_uint16_t base1; + xed_uint16_t element_size; + xed_uint16_t index; + xed_uint16_t outreg; + xed_uint16_t reg0; + xed_uint16_t reg1; + xed_uint16_t reg2; + xed_uint16_t reg3; + xed_uint16_t reg4; + xed_uint16_t reg5; + xed_uint16_t reg6; + xed_uint16_t reg7; + xed_uint16_t reg8; + xed_uint16_t seg0; + xed_uint16_t seg1; + xed_uint8_t brdisp_width; + xed_uint8_t disp_width; + xed_uint8_t ild_seg; + xed_uint8_t imm1_bytes; + xed_uint8_t imm_width; + xed_uint8_t max_bytes; + xed_uint8_t modrm_byte; + xed_uint8_t nominal_opcode; + xed_uint8_t nprefixes; + xed_uint8_t nrexes; + xed_uint8_t nseg_prefixes; + xed_uint8_t pos_disp; + xed_uint8_t pos_imm; + xed_uint8_t pos_imm1; + xed_uint8_t pos_modrm; + xed_uint8_t pos_nominal_opcode; + xed_uint8_t pos_sib; + xed_uint8_t uimm1; + xed_uint8_t chip; + xed_uint8_t need_memdisp; + xed_uint8_t bcast; + xed_uint8_t error; + xed_uint8_t esrc; + xed_uint8_t map; + xed_uint8_t nelem; + xed_uint8_t scale; + xed_uint8_t type; + xed_uint8_t hint; + xed_uint8_t mask; + xed_uint8_t reg; + xed_uint8_t rm; + xed_uint8_t roundc; + xed_uint8_t seg_ovd; + xed_uint8_t sibbase; + xed_uint8_t sibindex; + xed_uint8_t sreg; + xed_uint8_t srm; + xed_uint8_t vexdest210; + xed_uint8_t vexvalid; + xed_uint8_t default_seg; + xed_uint8_t easz; + xed_uint8_t eosz; + xed_uint8_t first_f2f3; + xed_uint8_t has_modrm; + xed_uint8_t last_f2f3; + xed_uint8_t llrc; + xed_uint8_t mod; + xed_uint8_t mode; + xed_uint8_t rep; + xed_uint8_t sibscale; + xed_uint8_t smode; + xed_uint8_t vex_prefix; + xed_uint8_t vl; + xed_uint8_t agen; + xed_uint8_t amd3dnow; + xed_uint8_t asz; + xed_uint8_t bcrc; + xed_uint8_t df32; + xed_uint8_t df64; + xed_uint8_t dummy; + xed_uint8_t encoder_preferred; + xed_uint8_t esrc3; + xed_uint8_t evexrr; + xed_uint8_t has_sib; + xed_uint8_t hsw; + xed_uint8_t ild_f2; + xed_uint8_t ild_f3; + xed_uint8_t imm0; + xed_uint8_t imm0signed; + xed_uint8_t imm1; + xed_uint8_t lock; + xed_uint8_t mem0; + xed_uint8_t mem1; + xed_uint8_t modep5; + xed_uint8_t modep55c; + xed_uint8_t mode_first_prefix; + xed_uint8_t modrm; + xed_uint8_t mpxmode; + xed_uint8_t needrex; + xed_uint8_t norex; + xed_uint8_t no_scale_disp8; + xed_uint8_t osz; + xed_uint8_t out_of_bytes; + xed_uint8_t p4; + xed_uint8_t prefix66; + xed_uint8_t ptr; + xed_uint8_t realmode; + xed_uint8_t relbr; + xed_uint8_t rex; + xed_uint8_t rexb; + xed_uint8_t rexr; + xed_uint8_t rexrr; + xed_uint8_t rexw; + xed_uint8_t rexx; + xed_uint8_t sae; + xed_uint8_t sib; + xed_uint8_t skip_osz; + xed_uint8_t ubit; + xed_uint8_t using_default_segment0; + xed_uint8_t using_default_segment1; + xed_uint8_t vexdest3; + xed_uint8_t vexdest4; + xed_uint8_t vex_c4; + xed_uint8_t zeroing; +} xed_operand_storage_t; +#endif diff --git a/third_party/xed-intel64/include/xed-operand-type-enum.h b/third_party/xed-intel64/include/xed-operand-type-enum.h new file mode 100644 index 0000000..344f7d0 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-type-enum.h @@ -0,0 +1,65 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-type-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_TYPE_ENUM_H_) +# define _XED_OPERAND_TYPE_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_TYPE_INVALID, + XED_OPERAND_TYPE_ERROR, + XED_OPERAND_TYPE_IMM, + XED_OPERAND_TYPE_IMM_CONST, + XED_OPERAND_TYPE_NT_LOOKUP_FN, + XED_OPERAND_TYPE_REG, + XED_OPERAND_TYPE_LAST +} xed_operand_type_enum_t; + +/// This converts strings to #xed_operand_type_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_type_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_type_enum_t str2xed_operand_type_enum_t(const char* s); +/// This converts strings to #xed_operand_type_enum_t types. +/// @param p An enumeration element of type xed_operand_type_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_type_enum_t2str(const xed_operand_type_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_type_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_type_enum_t xed_operand_type_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-values-interface.h b/third_party/xed-intel64/include/xed-operand-values-interface.h new file mode 100644 index 0000000..149b90c --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-values-interface.h @@ -0,0 +1,533 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-values-interface.h +/// + +#if !defined(_XED_OPERAND_VALUES_INTERFACE_H_) +# define _XED_OPERAND_VALUES_INTERFACE_H_ + +#include "../../../third_party/xed-intel64/include/xed-common-defs.h" +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-iclass-enum.h" // generated +#include "../../../third_party/xed-intel64/include/xed-operand-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-reg-enum.h" // generated +#include "../../../third_party/xed-intel64/include/xed-state.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-types.h" +#include "../../../third_party/xed-intel64/include/xed-util.h" +/// @name Initialization +//@{ +/// @ingroup OPERANDS +/// Initializes operand structure +XED_DLL_EXPORT void xed_operand_values_init(xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Initializes the operand storage and sets mode values. +XED_DLL_EXPORT void xed_operand_values_init_set_mode(xed_operand_values_t* p, + const xed_state_t* dstate); + +/// @ingroup OPERANDS +/// Set the mode values +XED_DLL_EXPORT void +xed_operand_values_set_mode(xed_operand_values_t* p, + const xed_state_t* dstate); + +/// @ingroup OPERANDS +/// Initializes dst operand structure but preserves the existing +/// MODE/SMODE values from the src operand structure. +XED_DLL_EXPORT void +xed_operand_values_init_keep_mode( xed_operand_values_t* dst, + const xed_operand_values_t* src ); +//@} + +/////////////////////////////////////////////////////////// +/// @name String output +//@{ +/// @ingroup OPERANDS +/// Dump all the information about the operands to buf. +XED_DLL_EXPORT void +xed_operand_values_dump(const xed_operand_values_t* ov, + char* buf, + int buflen); +/// @ingroup OPERANDS +/// More tersely dump all the information about the operands to buf. +XED_DLL_EXPORT void +xed_operand_values_print_short(const xed_operand_values_t* ov, + char* buf, + int buflen); +//@} + +/// @name REP/REPNE Prefixes +//@{ +/// @ingroup OPERANDS +/// True if the instruction has a real REP prefix. This returns false if +/// there is no F2/F3 prefix or the F2/F3 prefix is used to refine the +/// opcode as in some SSE operations. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_real_rep(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// True if the instruction as a F3 REP prefix (used for opcode refining, +/// for rep for string operations, or ignored). +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_rep_prefix(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// True if the instruction as a F2 REP prefix (used for opcode refining, +/// for rep for string operations, or ignored). +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_repne_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// for REPNE(F2) prefix on string ops +XED_DLL_EXPORT void xed_operand_values_set_repne(xed_operand_values_t* p); +/// @ingroup OPERANDS +/// for REP(F3) prefix on string ops +XED_DLL_EXPORT void xed_operand_values_set_rep(xed_operand_values_t* p); +/// @ingroup OPERANDS +/// clear the REP prefix indicator +XED_DLL_EXPORT void xed_operand_values_clear_rep(xed_operand_values_t* p); + +//@} + +/// @name Atomic / Locked operations +//@{ +/// @ingroup OPERANDS +/// Returns true if the memory operation has atomic read-modify-write +/// semantics. An XCHG accessing memory is atomic with or without a +/// LOCK prefix. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_get_atomic(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Returns true if the memory operation has a valid lock prefix. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_lock_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Returns true if the instruction could be re-encoded to have a lock +/// prefix but does not have one currently. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_lockable(const xed_operand_values_t* p); +//@} + + +/// @ingroup OPERANDS +/// Indicates if the default segment is being used. +/// @param[in] p the pointer to the #xed_operand_values_t structure. +/// @param[in] i 0 or 1, indicating which memory operation. +/// @return true if the memory operation is using the default segment for +/// the associated addressing mode base register. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_using_default_segment(const xed_operand_values_t* p, + unsigned int i); + + + +/// @ingroup OPERANDS +/// Returns The effective operand width in bits: 16/32/64. Note this is not +/// the same as the width of the operand which can vary! For 8 bit +/// operations, the effective operand width is the machine mode's default +/// width. If you also want to identify byte operations use the higher +/// level function #xed_decoded_inst_get_operand_width() . +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_effective_operand_width(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// Returns The effective address width in bits: 16/32/64. +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_effective_address_width(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// Returns The stack address width in bits: 16/32/64. +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_stack_address_width(const xed_operand_values_t* p); + + +/// @ingroup OPERANDS +/// True if there is a memory displacement +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_memory_displacement(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// True if there is a branch displacement +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_branch_displacement(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// True if there is a memory or branch displacement +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_displacement(const xed_operand_values_t* p); + + +/// @ingroup OPERANDS +/// Deprecated. Compatibility function for XED0. See has_memory_displacement(). +XED_DLL_EXPORT xed_bool_t +xed_operand_values_get_displacement_for_memop(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Return true if there is an immediate operand +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_immediate(const xed_operand_values_t* p); + + +/// @ingroup OPERANDS +/// ALIAS for has_displacement(). +/// Deprecated. See has_memory_displacement() and +/// has_branch_displacement(). +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_disp(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// This indicates the presence of a 67 prefix. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_address_size_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// This does not include the cases when the 66 prefix is used an +/// opcode-refining prefix for multibyte opcodes. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_operand_size_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// This includes any 66 prefix that shows up even if it is ignored. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_66_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// This instruction has a REX prefix with the W bit set. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_rexw_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_segment_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Return the segment prefix, if any, as a #xed_reg_enum_t value. +XED_DLL_EXPORT xed_reg_enum_t +xed_operand_values_segment_prefix(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_is_prefetch(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_get_long_mode(const xed_operand_values_t* p); +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_get_real_mode(const xed_operand_values_t* p); + +/// @name Memory Addressing +//@{ +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_accesses_memory(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT unsigned int +xed_operand_values_number_of_memory_operands(const xed_operand_values_t* p); + +/// return bytes +/// @ingroup OPERANDS +XED_DLL_EXPORT unsigned int +xed_operand_values_get_memory_operand_length(const xed_operand_values_t* p, + unsigned int memop_idx); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_reg_enum_t +xed_operand_values_get_base_reg(const xed_operand_values_t* p, + unsigned int memop_idx); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_reg_enum_t +xed_operand_values_get_index_reg(const xed_operand_values_t* p, + unsigned int memop_idx); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_reg_enum_t +xed_operand_values_get_seg_reg(const xed_operand_values_t* p, + unsigned int memop_idx); + +/// @ingroup OPERANDS +XED_DLL_EXPORT unsigned int +xed_operand_values_get_scale(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Returns true if the instruction access memory but without using a MODRM +/// byte limiting its addressing modes. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_memop_without_modrm(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// Returns true if the instruction has a MODRM byte. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_modrm_byte(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Returns true if the instruction has a SIB byte. +XED_DLL_EXPORT xed_bool_t +xed_operand_values_has_sib_byte(const xed_operand_values_t* p); +//@} + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_branch_not_taken_hint(const xed_operand_values_t* p); +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_branch_taken_hint(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_bool_t +xed_operand_values_is_nop(const xed_operand_values_t* p); + + +/// @name Immediates +//@{ +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_int64_t +xed_operand_values_get_immediate_int64(const xed_operand_values_t* p); + + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_uint64_t +xed_operand_values_get_immediate_uint64(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Return true if the first immediate (IMM0) is signed +XED_DLL_EXPORT xed_uint_t +xed_operand_values_get_immediate_is_signed(const xed_operand_values_t* p); + + +/// @ingroup OPERANDS +/// Return the i'th byte of the immediate +XED_DLL_EXPORT xed_uint8_t +xed_operand_values_get_immediate_byte(const xed_operand_values_t* p, + unsigned int i); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_uint8_t +xed_operand_values_get_second_immediate(const xed_operand_values_t* p); +//@} + +/// @name Memory Displacements +//@{ +/// @ingroup OPERANDS +/// Return the memory displacement width in BYTES +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_memory_displacement_length(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// Return the memory displacement width in BITS +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_memory_displacement_length_bits( + const xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Return the raw memory displacement width in BITS(ignores scaling) +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_memory_displacement_length_bits_raw( + const xed_operand_values_t* p); + +/// Returns the potentially scaled value of the memory +/// displacement. Certain AVX512 memory displacements are scaled before +/// they are used. @ingroup OPERANDS +XED_DLL_EXPORT xed_int64_t +xed_operand_values_get_memory_displacement_int64(const xed_operand_values_t* p); + +/// Returns the unscaled (raw) memory displacement. Certain AVX512 memory +/// displacements are scaled before they are used. @ingroup OPERANDS +XED_DLL_EXPORT xed_int64_t +xed_operand_values_get_memory_displacement_int64_raw(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_uint8_t +xed_operand_values_get_memory_displacement_byte(const xed_operand_values_t* p, + unsigned int i); +//@} + +/// @name Branch Displacements +//@{ +/// @ingroup OPERANDS +/// Return the branch displacement width in bytes +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_branch_displacement_length(const xed_operand_values_t* p); +/// @ingroup OPERANDS +/// Return the branch displacement width in bits +XED_DLL_EXPORT xed_uint32_t +xed_operand_values_get_branch_displacement_length_bits( + const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_int32_t +xed_operand_values_get_branch_displacement_int32(const xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_uint8_t +xed_operand_values_get_branch_displacement_byte(const xed_operand_values_t* p, + unsigned int i); +//@} + + +/// @ingroup OPERANDS +XED_DLL_EXPORT xed_iclass_enum_t +xed_operand_values_get_iclass(const xed_operand_values_t* p); + +//////////////////////////////////////////////////// +// ENCODE API +//////////////////////////////////////////////////// +/// @name Encoding +//@{ +/// @ingroup OPERANDS +XED_DLL_EXPORT void +xed_operand_values_zero_immediate(xed_operand_values_t* p); +/// @ingroup OPERANDS +XED_DLL_EXPORT void +xed_operand_values_zero_branch_displacement(xed_operand_values_t* p); +/// @ingroup OPERANDS +XED_DLL_EXPORT void +xed_operand_values_zero_memory_displacement(xed_operand_values_t* p); + +/// @ingroup OPERANDS +XED_DLL_EXPORT void xed_operand_values_set_lock(xed_operand_values_t* p); +/// @ingroup OPERANDS +XED_DLL_EXPORT void +xed_operand_values_zero_segment_override(xed_operand_values_t* p); + + +/// @ingroup OPERANDS +XED_DLL_EXPORT void +xed_operand_values_set_iclass(xed_operand_values_t* p, + xed_iclass_enum_t iclass); + +/// @ingroup OPERANDS +/// width is bits 8, 16, 32, 64 +XED_DLL_EXPORT void +xed_operand_values_set_effective_operand_width(xed_operand_values_t* p, + unsigned int width); + +/// @ingroup OPERANDS +/// width is bits 16, 32, 64 +XED_DLL_EXPORT void +xed_operand_values_set_effective_address_width(xed_operand_values_t* p, + unsigned int width); +/// takes bytes, not bits, as an argument +/// @ingroup OPERANDS +XED_DLL_EXPORT void +xed_operand_values_set_memory_operand_length(xed_operand_values_t* p, + unsigned int memop_length); + + +/// @ingroup OPERANDS +/// Set the memory displacement using a BYTES length +XED_DLL_EXPORT void +xed_operand_values_set_memory_displacement(xed_operand_values_t* p, + xed_int64_t x, unsigned int len); +/// @ingroup OPERANDS +/// Set the memory displacement using a BITS length +XED_DLL_EXPORT void +xed_operand_values_set_memory_displacement_bits(xed_operand_values_t* p, + xed_int64_t x, + unsigned int len_bits); + +/// @ingroup OPERANDS +/// Indicate that we have a relative branch. +XED_DLL_EXPORT void xed_operand_values_set_relbr(xed_operand_values_t* p); + +/// @ingroup OPERANDS +/// Set the branch displacement using a BYTES length +XED_DLL_EXPORT void +xed_operand_values_set_branch_displacement(xed_operand_values_t* p, + xed_int32_t x, + unsigned int len); +/// @ingroup OPERANDS +/// Set the branch displacement using a BITS length +XED_DLL_EXPORT void +xed_operand_values_set_branch_displacement_bits(xed_operand_values_t* p, + xed_int32_t x, + unsigned int len_bits); + +/// @ingroup OPERANDS +/// Set the signed immediate using a BYTES length +XED_DLL_EXPORT void +xed_operand_values_set_immediate_signed(xed_operand_values_t* p, + xed_int32_t x, + unsigned int bytes); +/// @ingroup OPERANDS +/// Set the signed immediate using a BITS length +XED_DLL_EXPORT void +xed_operand_values_set_immediate_signed_bits(xed_operand_values_t* p, + xed_int32_t x, + unsigned int bits); + + +/// @ingroup OPERANDS +/// Set the unsigned immediate using a BYTE length. +XED_DLL_EXPORT void +xed_operand_values_set_immediate_unsigned(xed_operand_values_t* p, + xed_uint64_t x, + unsigned int bytes); +/// @ingroup OPERANDS +/// Set the unsigned immediate using a BIT length. +XED_DLL_EXPORT void +xed_operand_values_set_immediate_unsigned_bits(xed_operand_values_t* p, + xed_uint64_t x, + unsigned int bits); + + + +/// @ingroup OPERANDS +XED_DLL_EXPORT void xed_operand_values_set_base_reg(xed_operand_values_t* p, + unsigned int memop_idx, + xed_reg_enum_t new_base); + +/// @ingroup OPERANDS +XED_DLL_EXPORT void xed_operand_values_set_seg_reg(xed_operand_values_t* p, + unsigned int memop_idx, + xed_reg_enum_t new_seg); + +/// @ingroup OPERANDS +XED_DLL_EXPORT void xed_operand_values_set_index_reg(xed_operand_values_t* p, + unsigned int memop_idx, + xed_reg_enum_t new_index); + +/// @ingroup OPERANDS +XED_DLL_EXPORT void xed_operand_values_set_scale(xed_operand_values_t* p, + xed_uint_t memop_idx, + xed_uint_t new_scale); + + +/// @ingroup OPERANDS +/// Set the operand storage field entry named 'operand_name' to the +/// register value specified by 'reg_name'. +XED_DLL_EXPORT void +xed_operand_values_set_operand_reg(xed_operand_values_t* p, + xed_operand_enum_t operand_name, + xed_reg_enum_t reg_name); + +//@} +#endif + diff --git a/third_party/xed-intel64/include/xed-operand-visibility-enum.h b/third_party/xed-intel64/include/xed-operand-visibility-enum.h new file mode 100644 index 0000000..1518b61 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-visibility-enum.h @@ -0,0 +1,63 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-visibility-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_VISIBILITY_ENUM_H_) +# define _XED_OPERAND_VISIBILITY_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPVIS_INVALID, + XED_OPVIS_EXPLICIT, ///< Shows up in operand encoding + XED_OPVIS_IMPLICIT, ///< Part of the opcode, but listed as an operand + XED_OPVIS_SUPPRESSED, ///< Part of the opcode, but not typically listed as an operand + XED_OPVIS_LAST +} xed_operand_visibility_enum_t; + +/// This converts strings to #xed_operand_visibility_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_visibility_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_visibility_enum_t str2xed_operand_visibility_enum_t(const char* s); +/// This converts strings to #xed_operand_visibility_enum_t types. +/// @param p An enumeration element of type xed_operand_visibility_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_visibility_enum_t2str(const xed_operand_visibility_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_visibility_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_visibility_enum_t xed_operand_visibility_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-operand-width-enum.h b/third_party/xed-intel64/include/xed-operand-width-enum.h new file mode 100644 index 0000000..cdb2ce2 --- /dev/null +++ b/third_party/xed-intel64/include/xed-operand-width-enum.h @@ -0,0 +1,164 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-operand-width-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_OPERAND_WIDTH_ENUM_H_) +# define _XED_OPERAND_WIDTH_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_OPERAND_WIDTH_INVALID, + XED_OPERAND_WIDTH_ASZ, + XED_OPERAND_WIDTH_SSZ, + XED_OPERAND_WIDTH_PSEUDO, + XED_OPERAND_WIDTH_PSEUDOX87, + XED_OPERAND_WIDTH_A16, + XED_OPERAND_WIDTH_A32, + XED_OPERAND_WIDTH_B, + XED_OPERAND_WIDTH_D, + XED_OPERAND_WIDTH_DQ, + XED_OPERAND_WIDTH_XUB, + XED_OPERAND_WIDTH_XUW, + XED_OPERAND_WIDTH_XUD, + XED_OPERAND_WIDTH_XUQ, + XED_OPERAND_WIDTH_X128, + XED_OPERAND_WIDTH_XB, + XED_OPERAND_WIDTH_XW, + XED_OPERAND_WIDTH_XD, + XED_OPERAND_WIDTH_XQ, + XED_OPERAND_WIDTH_MB, + XED_OPERAND_WIDTH_MW, + XED_OPERAND_WIDTH_MD, + XED_OPERAND_WIDTH_MQ, + XED_OPERAND_WIDTH_M64INT, + XED_OPERAND_WIDTH_M64REAL, + XED_OPERAND_WIDTH_MEM108, + XED_OPERAND_WIDTH_MEM14, + XED_OPERAND_WIDTH_MEM16, + XED_OPERAND_WIDTH_MEM16INT, + XED_OPERAND_WIDTH_MEM28, + XED_OPERAND_WIDTH_MEM32INT, + XED_OPERAND_WIDTH_MEM32REAL, + XED_OPERAND_WIDTH_MEM80DEC, + XED_OPERAND_WIDTH_MEM80REAL, + XED_OPERAND_WIDTH_F80, + XED_OPERAND_WIDTH_MEM94, + XED_OPERAND_WIDTH_MFPXENV, + XED_OPERAND_WIDTH_MXSAVE, + XED_OPERAND_WIDTH_MPREFETCH, + XED_OPERAND_WIDTH_P, + XED_OPERAND_WIDTH_P2, + XED_OPERAND_WIDTH_PD, + XED_OPERAND_WIDTH_PS, + XED_OPERAND_WIDTH_PI, + XED_OPERAND_WIDTH_Q, + XED_OPERAND_WIDTH_S, + XED_OPERAND_WIDTH_S64, + XED_OPERAND_WIDTH_SD, + XED_OPERAND_WIDTH_SI, + XED_OPERAND_WIDTH_SS, + XED_OPERAND_WIDTH_V, + XED_OPERAND_WIDTH_Y, + XED_OPERAND_WIDTH_W, + XED_OPERAND_WIDTH_Z, + XED_OPERAND_WIDTH_SPW8, + XED_OPERAND_WIDTH_SPW, + XED_OPERAND_WIDTH_SPW3, + XED_OPERAND_WIDTH_SPW2, + XED_OPERAND_WIDTH_I1, + XED_OPERAND_WIDTH_I2, + XED_OPERAND_WIDTH_I3, + XED_OPERAND_WIDTH_I4, + XED_OPERAND_WIDTH_I5, + XED_OPERAND_WIDTH_I6, + XED_OPERAND_WIDTH_I7, + XED_OPERAND_WIDTH_I8, + XED_OPERAND_WIDTH_VAR, + XED_OPERAND_WIDTH_BND32, + XED_OPERAND_WIDTH_BND64, + XED_OPERAND_WIDTH_QQ, + XED_OPERAND_WIDTH_YUB, + XED_OPERAND_WIDTH_YUW, + XED_OPERAND_WIDTH_YUD, + XED_OPERAND_WIDTH_YUQ, + XED_OPERAND_WIDTH_Y128, + XED_OPERAND_WIDTH_YB, + XED_OPERAND_WIDTH_YW, + XED_OPERAND_WIDTH_YD, + XED_OPERAND_WIDTH_YQ, + XED_OPERAND_WIDTH_YPS, + XED_OPERAND_WIDTH_YPD, + XED_OPERAND_WIDTH_VV, + XED_OPERAND_WIDTH_ZV, + XED_OPERAND_WIDTH_WRD, + XED_OPERAND_WIDTH_MSKW, + XED_OPERAND_WIDTH_ZMSKW, + XED_OPERAND_WIDTH_ZF32, + XED_OPERAND_WIDTH_ZF64, + XED_OPERAND_WIDTH_ZB, + XED_OPERAND_WIDTH_ZW, + XED_OPERAND_WIDTH_ZD, + XED_OPERAND_WIDTH_ZQ, + XED_OPERAND_WIDTH_ZUB, + XED_OPERAND_WIDTH_ZUW, + XED_OPERAND_WIDTH_ZUD, + XED_OPERAND_WIDTH_ZUQ, + XED_OPERAND_WIDTH_ZI8, + XED_OPERAND_WIDTH_ZI16, + XED_OPERAND_WIDTH_ZI32, + XED_OPERAND_WIDTH_ZI64, + XED_OPERAND_WIDTH_ZU8, + XED_OPERAND_WIDTH_ZU16, + XED_OPERAND_WIDTH_ZU32, + XED_OPERAND_WIDTH_ZU64, + XED_OPERAND_WIDTH_ZU128, + XED_OPERAND_WIDTH_LAST +} xed_operand_width_enum_t; + +/// This converts strings to #xed_operand_width_enum_t types. +/// @param s A C-string. +/// @return #xed_operand_width_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_width_enum_t str2xed_operand_width_enum_t(const char* s); +/// This converts strings to #xed_operand_width_enum_t types. +/// @param p An enumeration element of type xed_operand_width_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_operand_width_enum_t2str(const xed_operand_width_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_operand_width_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_operand_width_enum_t xed_operand_width_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-portability.h b/third_party/xed-intel64/include/xed-portability.h new file mode 100644 index 0000000..b94df8b --- /dev/null +++ b/third_party/xed-intel64/include/xed-portability.h @@ -0,0 +1,196 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-portability.h +/// + +#ifndef _XED_PORTABILITY_H_ +# define _XED_PORTABILITY_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +#define XED_STATIC_CAST(x,y) ((x) (y)) +#define XED_REINTERPRET_CAST(x,y) ((x) (y)) +#define XED_CAST(x,y) ((x) (y)) + + + +XED_DLL_EXPORT xed_uint_t xed_strlen(const char* s); +XED_DLL_EXPORT void xed_strcat(char* dst, const char* src); +XED_DLL_EXPORT void xed_strcpy(char* dst, const char* src); + +/// returns the number of bytes remaining for the next use of +/// #xed_strncpy() or #xed_strncat() . +XED_DLL_EXPORT int xed_strncpy(char* dst, const char* src, int len); + +/// returns the number of bytes remaining for the next use of +/// #xed_strncpy() or #xed_strncat() . +XED_DLL_EXPORT int xed_strncat(char* dst, const char* src, int len); + +#if defined(__INTEL_COMPILER) +# if defined(_WIN32) && defined(_MSC_VER) +# if _MSC_VER >= 1400 +# define XED_MSVC8_OR_LATER 1 +# endif +# endif +#endif + +/* recognize VC98 */ +#if !defined(__INTEL_COMPILER) +# if defined(_WIN32) && defined(_MSC_VER) +# if _MSC_VER == 1200 +# define XED_MSVC6 1 +# endif +# endif +# if defined(_WIN32) && defined(_MSC_VER) +# if _MSC_VER == 1310 +# define XED_MSVC7 1 +# endif +# endif +# if defined(_WIN32) && defined(_MSC_VER) +# if _MSC_VER >= 1400 +# define XED_MSVC8_OR_LATER 1 +# endif +# if _MSC_VER == 1400 +# define XED_MSVC8 1 +# endif +# if _MSC_VER == 1500 +# define XED_MSVC9 1 +# endif +# if _MSC_VER >= 1500 +# define XED_MSVC9_OR_LATER 1 +# endif +# if _MSC_VER == 1600 +# define XED_MSVC10 1 +# endif +# if _MSC_VER >= 1600 +# define XED_MSVC10_OR_LATER 1 +# endif +# endif +#endif + +/* I've had compatibilty problems here so I'm using a trivial indirection */ +#if defined(__GNUC__) +# if defined(__CYGWIN__) + /* cygwin's gcc 3.4.4 on windows complains */ +# define XED_FMT_X "%lx" +# define XED_FMT_08X "%08lx" +# define XED_FMT_D "%ld" +# define XED_FMT_U "%lu" +# define XED_FMT_9U "%9lu" +# else +# define XED_FMT_X "%x" +# define XED_FMT_08X "%08x" +# define XED_FMT_D "%d" +# define XED_FMT_U "%u" +# define XED_FMT_9U "%9u" +# endif +#else +# define XED_FMT_X "%x" +# define XED_FMT_08X "%08x" +# define XED_FMT_D "%d" +# define XED_FMT_U "%u" +# define XED_FMT_9U "%9u" +#endif + +// Go write portable code... Sigh +#if defined(__APPLE__) // clang *32b* and 64b +# define XED_FMT_SIZET "%lu" +#elif defined(__LP64__) // 64b gcc, icc +# define XED_FMT_SIZET "%lu" +#elif defined (_M_X64) // 64b msvs, ICL + // MSVS/x64 accepts %llu or %lu, icl/x64 does not) +# define XED_FMT_SIZET "%llu" +#else // 32b everything else +# define XED_FMT_SIZET "%u" +#endif + +#if defined(__GNUC__) && defined(__LP64__) && !defined(__APPLE__) +# define XED_FMT_LX "%lx" +# define XED_FMT_LU "%lu" +# define XED_FMT_LU12 "%12lu" +# define XED_FMT_LD "%ld" +# define XED_FMT_LX16 "%016lx" +#else +# define XED_FMT_LX "%llx" +# define XED_FMT_LU "%llu" +# define XED_FMT_LU12 "%12llu" +# define XED_FMT_LD "%lld" +# define XED_FMT_LX16 "%016llx" +#endif + +#if defined(__LP64__) || defined (_M_X64) +# define XED_64B 1 +#endif + +#if defined(_M_IA64) +# define XED_IPF +# define XED_FMT_SIZET "%lu" +#endif + +#if defined(__GNUC__) + /* gcc4.2.x has a bug with c99/gnu99 inlining */ +# if __GNUC__ == 4 && __GNUC_MINOR__ == 2 +# define XED_INLINE inline +# else +# if __GNUC__ == 2 +# define XED_INLINE +# else +# define XED_INLINE inline +# endif +# endif +# define XED_NORETURN __attribute__ ((noreturn)) +# if __GNUC__ == 2 +# define XED_NOINLINE +# else +# define XED_NOINLINE __attribute__ ((noinline)) +# endif +#else +# define XED_INLINE __inline +# if defined(XED_MSVC6) +# define XED_NOINLINE +# else +# define XED_NOINLINE __declspec(noinline) +# endif +# define XED_NORETURN __declspec(noreturn) +#endif + + + +#define XED_MAX(a, b) (((a) > (b)) ? (a):(b)) +#define XED_MIN(a, b) (((a) < (b)) ? (a):(b)) + + + + +#endif // _XED_PORTABILITY_H_ + diff --git a/third_party/xed-intel64/include/xed-print-info.h b/third_party/xed-intel64/include/xed-print-info.h new file mode 100644 index 0000000..7eb5b30 --- /dev/null +++ b/third_party/xed-intel64/include/xed-print-info.h @@ -0,0 +1,109 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ + +#if !defined(_XED_PRINT_INFO_H_) +# define _XED_PRINT_INFO_H_ + +#include "../../../third_party/xed-intel64/include/xed-decoded-inst.h" +#include "../../../third_party/xed-intel64/include/xed-disas.h" // callback function type +#include "../../../third_party/xed-intel64/include/xed-format-options.h" +#include "../../../third_party/xed-intel64/include/xed-syntax-enum.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + +/// @ingroup PRINT +/// This contains the information used by the various disassembly printers. +/// Call xed_init_print_info to initialize the fields. Then change the +/// required and optional fields when required. +typedef struct { + + ///////////////////////////////////////// + // REQUIRED FIELDS - users should set these + ///////////////////////////////////////// + + /// the decoded instruction to print + const xed_decoded_inst_t* p; + + /// pointer to the output buffer + char* buf; + + /// length of the output buffer. (bytes) Must be > 25 to start. + int blen; + + ///////////////////////////////////////// + // OPTIONAL FIELDS - user can set these + ///////////////////////////////////////// + + /// program counter location. Must be zero if not used. (Sometimes + /// instructions are disassembled in a temporary buffer at a different + /// location than where they may or will exist in memory). + xed_uint64_t runtime_address; + + /// disassembly_callback MUST be set to zero if not used! If zero, the + /// default disassembly callback is used (if one has been registered). + xed_disassembly_callback_fn_t disassembly_callback; + + /// passed to disassembly callback. Can be zero if not used. + void* context; + + /// default is Intel-syntax (dest on left) + xed_syntax_enum_t syntax; + + /// 1=indicated the format_options field is valid, 0=use default + /// formating options from xed_format_set_options(). + int format_options_valid; + xed_format_options_t format_options; + + + ///////////////////////////////////////// + // NONPUBLIC FIELDS - Users should not use these! + ///////////////////////////////////////// + + /// internal, do not use + xed_bool_t emitted; + + /// internal, do not use + unsigned int operand_indx; + + /// internal, do not use + unsigned int skip_operand; + + /// internal, do not use + xed_reg_enum_t extra_index_operand; // for MPX + +} xed_print_info_t; + +// This function initializes the #xed_print_info_t structure. +// You must still set the required fields of that structure. +/// @ingroup PRINT +XED_DLL_EXPORT void xed_init_print_info(xed_print_info_t* pi); + +#endif diff --git a/third_party/xed-intel64/include/xed-reg-class-enum.h b/third_party/xed-intel64/include/xed-reg-class-enum.h new file mode 100644 index 0000000..fe72bd2 --- /dev/null +++ b/third_party/xed-intel64/include/xed-reg-class-enum.h @@ -0,0 +1,84 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-reg-class-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_REG_CLASS_ENUM_H_) +# define _XED_REG_CLASS_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_REG_CLASS_INVALID, + XED_REG_CLASS_BNDCFG, + XED_REG_CLASS_BNDSTAT, + XED_REG_CLASS_BOUND, + XED_REG_CLASS_CR, + XED_REG_CLASS_DR, + XED_REG_CLASS_FLAGS, + XED_REG_CLASS_GPR, + XED_REG_CLASS_GPR16, + XED_REG_CLASS_GPR32, + XED_REG_CLASS_GPR64, + XED_REG_CLASS_GPR8, + XED_REG_CLASS_IP, + XED_REG_CLASS_MASK, + XED_REG_CLASS_MMX, + XED_REG_CLASS_MXCSR, + XED_REG_CLASS_PSEUDO, + XED_REG_CLASS_PSEUDOX87, + XED_REG_CLASS_SR, + XED_REG_CLASS_TMP, + XED_REG_CLASS_X87, + XED_REG_CLASS_XCR, + XED_REG_CLASS_XMM, + XED_REG_CLASS_YMM, + XED_REG_CLASS_ZMM, + XED_REG_CLASS_LAST +} xed_reg_class_enum_t; + +/// This converts strings to #xed_reg_class_enum_t types. +/// @param s A C-string. +/// @return #xed_reg_class_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_reg_class_enum_t str2xed_reg_class_enum_t(const char* s); +/// This converts strings to #xed_reg_class_enum_t types. +/// @param p An enumeration element of type xed_reg_class_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_reg_class_enum_t2str(const xed_reg_class_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_reg_class_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-reg-class.h b/third_party/xed-intel64/include/xed-reg-class.h new file mode 100644 index 0000000..f9b1690 --- /dev/null +++ b/third_party/xed-intel64/include/xed-reg-class.h @@ -0,0 +1,76 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-reg-class.h +/// + +#ifndef _XED_REG_CLASS_H_ +# define _XED_REG_CLASS_H_ + +#include "../../../third_party/xed-intel64/include/xed-reg-class-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-reg-enum.h" // a generated file +#include "../../../third_party/xed-intel64/include/xed-types.h" + +/// Returns the register class of the given input register. +///@ingroup REGINTFC +XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class(xed_reg_enum_t r); + +/// Returns the specific width GPR reg class (like XED_REG_CLASS_GPR32 or +/// XED_REG_CLASS_GPR64) +/// for a given GPR register. Or XED_REG_INVALID if not a GPR. +///@ingroup REGINTFC +XED_DLL_EXPORT xed_reg_class_enum_t xed_gpr_reg_class(xed_reg_enum_t r); + +/// Returns the largest enclosing register for any kind of register; This +/// is mostly useful for GPRs. (64b mode assumed) +///@ingroup REGINTFC +XED_DLL_EXPORT xed_reg_enum_t +xed_get_largest_enclosing_register(xed_reg_enum_t r); + +/// Returns the largest enclosing register for any kind of register; This +/// is mostly useful for GPRs in 32b mode. +///@ingroup REGINTFC +XED_DLL_EXPORT xed_reg_enum_t +xed_get_largest_enclosing_register32(xed_reg_enum_t r); + +/// Returns the width, in bits, of the named register. 32b mode +///@ingroup REGINTFC +XED_DLL_EXPORT xed_uint32_t +xed_get_register_width_bits(xed_reg_enum_t r); + +/// Returns the width, in bits, of the named register. 64b mode. +///@ingroup REGINTFC +XED_DLL_EXPORT xed_uint32_t +xed_get_register_width_bits64(xed_reg_enum_t r); + +//////////////////////////////////////////////////////////////////////////// + +#endif diff --git a/third_party/xed-intel64/include/xed-reg-enum.h b/third_party/xed-intel64/include/xed-reg-enum.h new file mode 100644 index 0000000..aae5d6f --- /dev/null +++ b/third_party/xed-intel64/include/xed-reg-enum.h @@ -0,0 +1,389 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-reg-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_REG_ENUM_H_) +# define _XED_REG_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_REG_INVALID, + XED_REG_BNDCFGU, + XED_REG_BNDSTATUS, + XED_REG_BND0, + XED_REG_BND1, + XED_REG_BND2, + XED_REG_BND3, + XED_REG_CR0, + XED_REG_CR1, + XED_REG_CR2, + XED_REG_CR3, + XED_REG_CR4, + XED_REG_CR5, + XED_REG_CR6, + XED_REG_CR7, + XED_REG_CR8, + XED_REG_CR9, + XED_REG_CR10, + XED_REG_CR11, + XED_REG_CR12, + XED_REG_CR13, + XED_REG_CR14, + XED_REG_CR15, + XED_REG_DR0, + XED_REG_DR1, + XED_REG_DR2, + XED_REG_DR3, + XED_REG_DR4, + XED_REG_DR5, + XED_REG_DR6, + XED_REG_DR7, + XED_REG_DR8, + XED_REG_DR9, + XED_REG_DR10, + XED_REG_DR11, + XED_REG_DR12, + XED_REG_DR13, + XED_REG_DR14, + XED_REG_DR15, + XED_REG_FLAGS, + XED_REG_EFLAGS, + XED_REG_RFLAGS, + XED_REG_AX, + XED_REG_CX, + XED_REG_DX, + XED_REG_BX, + XED_REG_SP, + XED_REG_BP, + XED_REG_SI, + XED_REG_DI, + XED_REG_R8W, + XED_REG_R9W, + XED_REG_R10W, + XED_REG_R11W, + XED_REG_R12W, + XED_REG_R13W, + XED_REG_R14W, + XED_REG_R15W, + XED_REG_EAX, + XED_REG_ECX, + XED_REG_EDX, + XED_REG_EBX, + XED_REG_ESP, + XED_REG_EBP, + XED_REG_ESI, + XED_REG_EDI, + XED_REG_R8D, + XED_REG_R9D, + XED_REG_R10D, + XED_REG_R11D, + XED_REG_R12D, + XED_REG_R13D, + XED_REG_R14D, + XED_REG_R15D, + XED_REG_RAX, + XED_REG_RCX, + XED_REG_RDX, + XED_REG_RBX, + XED_REG_RSP, + XED_REG_RBP, + XED_REG_RSI, + XED_REG_RDI, + XED_REG_R8, + XED_REG_R9, + XED_REG_R10, + XED_REG_R11, + XED_REG_R12, + XED_REG_R13, + XED_REG_R14, + XED_REG_R15, + XED_REG_AL, + XED_REG_CL, + XED_REG_DL, + XED_REG_BL, + XED_REG_SPL, + XED_REG_BPL, + XED_REG_SIL, + XED_REG_DIL, + XED_REG_R8B, + XED_REG_R9B, + XED_REG_R10B, + XED_REG_R11B, + XED_REG_R12B, + XED_REG_R13B, + XED_REG_R14B, + XED_REG_R15B, + XED_REG_AH, + XED_REG_CH, + XED_REG_DH, + XED_REG_BH, + XED_REG_ERROR, + XED_REG_RIP, + XED_REG_EIP, + XED_REG_IP, + XED_REG_K0, + XED_REG_K1, + XED_REG_K2, + XED_REG_K3, + XED_REG_K4, + XED_REG_K5, + XED_REG_K6, + XED_REG_K7, + XED_REG_MMX0, + XED_REG_MMX1, + XED_REG_MMX2, + XED_REG_MMX3, + XED_REG_MMX4, + XED_REG_MMX5, + XED_REG_MMX6, + XED_REG_MMX7, + XED_REG_MXCSR, + XED_REG_STACKPUSH, + XED_REG_STACKPOP, + XED_REG_GDTR, + XED_REG_LDTR, + XED_REG_IDTR, + XED_REG_TR, + XED_REG_TSC, + XED_REG_TSCAUX, + XED_REG_MSRS, + XED_REG_FSBASE, + XED_REG_GSBASE, + XED_REG_X87CONTROL, + XED_REG_X87STATUS, + XED_REG_X87TAG, + XED_REG_X87PUSH, + XED_REG_X87POP, + XED_REG_X87POP2, + XED_REG_X87OPCODE, + XED_REG_X87LASTCS, + XED_REG_X87LASTIP, + XED_REG_X87LASTDS, + XED_REG_X87LASTDP, + XED_REG_CS, + XED_REG_DS, + XED_REG_ES, + XED_REG_SS, + XED_REG_FS, + XED_REG_GS, + XED_REG_TMP0, + XED_REG_TMP1, + XED_REG_TMP2, + XED_REG_TMP3, + XED_REG_TMP4, + XED_REG_TMP5, + XED_REG_TMP6, + XED_REG_TMP7, + XED_REG_TMP8, + XED_REG_TMP9, + XED_REG_TMP10, + XED_REG_TMP11, + XED_REG_TMP12, + XED_REG_TMP13, + XED_REG_TMP14, + XED_REG_TMP15, + XED_REG_ST0, + XED_REG_ST1, + XED_REG_ST2, + XED_REG_ST3, + XED_REG_ST4, + XED_REG_ST5, + XED_REG_ST6, + XED_REG_ST7, + XED_REG_XCR0, + XED_REG_XMM0, + XED_REG_XMM1, + XED_REG_XMM2, + XED_REG_XMM3, + XED_REG_XMM4, + XED_REG_XMM5, + XED_REG_XMM6, + XED_REG_XMM7, + XED_REG_XMM8, + XED_REG_XMM9, + XED_REG_XMM10, + XED_REG_XMM11, + XED_REG_XMM12, + XED_REG_XMM13, + XED_REG_XMM14, + XED_REG_XMM15, + XED_REG_XMM16, + XED_REG_XMM17, + XED_REG_XMM18, + XED_REG_XMM19, + XED_REG_XMM20, + XED_REG_XMM21, + XED_REG_XMM22, + XED_REG_XMM23, + XED_REG_XMM24, + XED_REG_XMM25, + XED_REG_XMM26, + XED_REG_XMM27, + XED_REG_XMM28, + XED_REG_XMM29, + XED_REG_XMM30, + XED_REG_XMM31, + XED_REG_YMM0, + XED_REG_YMM1, + XED_REG_YMM2, + XED_REG_YMM3, + XED_REG_YMM4, + XED_REG_YMM5, + XED_REG_YMM6, + XED_REG_YMM7, + XED_REG_YMM8, + XED_REG_YMM9, + XED_REG_YMM10, + XED_REG_YMM11, + XED_REG_YMM12, + XED_REG_YMM13, + XED_REG_YMM14, + XED_REG_YMM15, + XED_REG_YMM16, + XED_REG_YMM17, + XED_REG_YMM18, + XED_REG_YMM19, + XED_REG_YMM20, + XED_REG_YMM21, + XED_REG_YMM22, + XED_REG_YMM23, + XED_REG_YMM24, + XED_REG_YMM25, + XED_REG_YMM26, + XED_REG_YMM27, + XED_REG_YMM28, + XED_REG_YMM29, + XED_REG_YMM30, + XED_REG_YMM31, + XED_REG_ZMM0, + XED_REG_ZMM1, + XED_REG_ZMM2, + XED_REG_ZMM3, + XED_REG_ZMM4, + XED_REG_ZMM5, + XED_REG_ZMM6, + XED_REG_ZMM7, + XED_REG_ZMM8, + XED_REG_ZMM9, + XED_REG_ZMM10, + XED_REG_ZMM11, + XED_REG_ZMM12, + XED_REG_ZMM13, + XED_REG_ZMM14, + XED_REG_ZMM15, + XED_REG_ZMM16, + XED_REG_ZMM17, + XED_REG_ZMM18, + XED_REG_ZMM19, + XED_REG_ZMM20, + XED_REG_ZMM21, + XED_REG_ZMM22, + XED_REG_ZMM23, + XED_REG_ZMM24, + XED_REG_ZMM25, + XED_REG_ZMM26, + XED_REG_ZMM27, + XED_REG_ZMM28, + XED_REG_ZMM29, + XED_REG_ZMM30, + XED_REG_ZMM31, + XED_REG_LAST, + XED_REG_BNDCFG_FIRST=XED_REG_BNDCFGU, //< PSEUDO + XED_REG_BNDCFG_LAST=XED_REG_BNDCFGU, //mmode=arg_mmode; + p->stack_addr_width=arg_stack_addr_width; + (void) arg_ignored; //pacify compiler unused arg warning +} + +/// Constructor. +/// The mode, and addresses widths are enumerations that specify the number +/// of bits. In 64b mode (#XED_MACHINE_MODE_LONG_64) the address width and +/// stack address widths are 64b (#XED_ADDRESS_WIDTH_64b). In other machine +/// modes, you must specify valid addressing widths. +/// +/// @param p the pointer to the #xed_state_t type +/// @param arg_mmode the machine mode of type #xed_machine_mode_enum_t +/// @param arg_stack_addr_width the stack address width of type #xed_address_width_enum_t (only required if not the mode is not #XED_MACHINE_MODE_LONG_64) +/// @ingroup INIT +static XED_INLINE void xed_state_init2(xed_state_t* p, + xed_machine_mode_enum_t arg_mmode, + xed_address_width_enum_t arg_stack_addr_width) { + p->mmode=arg_mmode; + p->stack_addr_width=arg_stack_addr_width; +} + +/// clear the xed_state_t +/// @ingroup INIT +static XED_INLINE void xed_state_zero(xed_state_t* p) { + p->mmode= XED_MACHINE_MODE_INVALID; + p->stack_addr_width=XED_ADDRESS_WIDTH_INVALID; +} + +//@} + +/// @name Machine mode +//@{ +/// return the machine mode +/// @ingroup INIT +static XED_INLINE xed_machine_mode_enum_t xed_state_get_machine_mode(const xed_state_t* p) { + return p->mmode; +} + + +/// true iff the machine is in LONG_64 mode +/// @ingroup INIT +static XED_INLINE xed_bool_t xed_state_long64_mode(const xed_state_t* p) { + return xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_64; +} + +/// @ingroup INIT +static XED_INLINE xed_bool_t xed_state_real_mode(const xed_state_t* p) { + return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_REAL_16); +} + +/// @ingroup INIT +static XED_INLINE xed_bool_t xed_state_mode_width_16(const xed_state_t* p) { + return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_16) || + (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_16); +} + +/// @ingroup INIT +static XED_INLINE xed_bool_t xed_state_mode_width_32(const xed_state_t* p) { + return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_32) || + (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_32); +} + + +/// Set the machine mode which corresponds to the default data operand size +/// @ingroup INIT +static XED_INLINE void xed_state_set_machine_mode( xed_state_t* p, + xed_machine_mode_enum_t arg_mode) { + p->mmode = arg_mode; +} +//@} + +/// @name Address width +//@{ + +/// return the address width +/// @ingroup INIT +static XED_INLINE xed_address_width_enum_t +xed_state_get_address_width(const xed_state_t* p) +{ + switch(xed_state_get_machine_mode(p)) { + case XED_MACHINE_MODE_LONG_64: + return XED_ADDRESS_WIDTH_64b; + + case XED_MACHINE_MODE_REAL_16: + /* should be 20b... but if you are working w/real mode then you're + going to have to deal with somehow. Could easily make this be + 20b if anyone cares. */ + return XED_ADDRESS_WIDTH_32b; + + case XED_MACHINE_MODE_LEGACY_32: + case XED_MACHINE_MODE_LONG_COMPAT_32: + return XED_ADDRESS_WIDTH_32b; + case XED_MACHINE_MODE_LEGACY_16: + case XED_MACHINE_MODE_LONG_COMPAT_16: + return XED_ADDRESS_WIDTH_16b; + default: + return XED_ADDRESS_WIDTH_INVALID; + } +} + +//@} + +/// @name Stack address width +//@{ +/// set the STACK address width +/// @ingroup INIT +static XED_INLINE void +xed_state_set_stack_address_width(xed_state_t* p, + xed_address_width_enum_t arg_addr_width) +{ + p->stack_addr_width = arg_addr_width; +} + + +/// Return the STACK address width +/// @ingroup INIT +static XED_INLINE xed_address_width_enum_t xed_state_get_stack_address_width(const xed_state_t* p) { + return p->stack_addr_width; +} +//@} + +/// @ingroup INIT +XED_DLL_EXPORT int xed_state_print(const xed_state_t* p, char* buf, int buflen); + +#endif + diff --git a/third_party/xed-intel64/include/xed-syntax-enum.h b/third_party/xed-intel64/include/xed-syntax-enum.h new file mode 100644 index 0000000..ee19909 --- /dev/null +++ b/third_party/xed-intel64/include/xed-syntax-enum.h @@ -0,0 +1,63 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-syntax-enum.h + +// This file was automatically generated. +// Do not edit this file. + +#if !defined(_XED_SYNTAX_ENUM_H_) +# define _XED_SYNTAX_ENUM_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +typedef enum { + XED_SYNTAX_INVALID, + XED_SYNTAX_XED, ///< XED disassembly syntax + XED_SYNTAX_ATT, ///< ATT SYSV disassembly syntax + XED_SYNTAX_INTEL, ///< Intel disassembly syntax + XED_SYNTAX_LAST +} xed_syntax_enum_t; + +/// This converts strings to #xed_syntax_enum_t types. +/// @param s A C-string. +/// @return #xed_syntax_enum_t +/// @ingroup ENUM +XED_DLL_EXPORT xed_syntax_enum_t str2xed_syntax_enum_t(const char* s); +/// This converts strings to #xed_syntax_enum_t types. +/// @param p An enumeration element of type xed_syntax_enum_t. +/// @return string +/// @ingroup ENUM +XED_DLL_EXPORT const char* xed_syntax_enum_t2str(const xed_syntax_enum_t p); + +/// Returns the last element of the enumeration +/// @return xed_syntax_enum_t The last element of the enumeration. +/// @ingroup ENUM +XED_DLL_EXPORT xed_syntax_enum_t xed_syntax_enum_t_last(void); +#endif diff --git a/third_party/xed-intel64/include/xed-types.h b/third_party/xed-intel64/include/xed-types.h new file mode 100644 index 0000000..ce267cd --- /dev/null +++ b/third_party/xed-intel64/include/xed-types.h @@ -0,0 +1,138 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-types.h +/// + + +#ifndef _XED_TYPES_H_ +# define _XED_TYPES_H_ + +//////////////////////////////////////////////////////////////////////////// + +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" + +#if defined(__GNUC__) || defined(__ICC) +# include +# define xed_uint8_t uint8_t +# define xed_uint16_t uint16_t +# define xed_uint32_t uint32_t +# define xed_uint64_t uint64_t +# define xed_int8_t int8_t +# define xed_int16_t int16_t +# define xed_int32_t int32_t +# define xed_int64_t int64_t +#elif defined(_WIN32) +# define xed_uint8_t unsigned __int8 +# define xed_uint16_t unsigned __int16 +# define xed_uint32_t unsigned __int32 +# define xed_uint64_t unsigned __int64 +# define xed_int8_t __int8 +# define xed_int16_t __int16 +# define xed_int32_t __int32 +# define xed_int64_t __int64 +#else +# error "XED types unsupported platform? Need windows, gcc, or icc." +#endif + +typedef unsigned int xed_uint_t; +typedef int xed_int_t; +typedef unsigned int xed_bits_t; +typedef unsigned int xed_bool_t; + +typedef union { + xed_uint8_t byte[2]; + xed_int8_t s_byte[2]; + + struct { + xed_uint8_t b0; /*low 8 bits*/ + xed_uint8_t b1; /*high 8 bits*/ + } b; + xed_int16_t i16; + xed_uint16_t u16; +} xed_union16_t ; + +typedef union { + xed_uint8_t byte[4]; + xed_uint16_t word[2]; + xed_int8_t s_byte[4]; + xed_int16_t s_word[2]; + + struct { + xed_uint8_t b0; /*low 8 bits*/ + xed_uint8_t b1; + xed_uint8_t b2; + xed_uint8_t b3; /*high 8 bits*/ + } b; + + struct { + xed_uint16_t w0; /*low 16 bits*/ + xed_uint16_t w1; /*high 16 bits*/ + } w; + xed_int32_t i32; + xed_uint32_t u32; +} xed_union32_t ; + +typedef union { + xed_uint8_t byte[8]; + xed_uint16_t word[4]; + xed_uint32_t dword[2]; + xed_int8_t s_byte[8]; + xed_int16_t s_word[4]; + xed_int32_t s_dword[2]; + + struct { + xed_uint8_t b0; /*low 8 bits*/ + xed_uint8_t b1; + xed_uint8_t b2; + xed_uint8_t b3; + xed_uint8_t b4; + xed_uint8_t b5; + xed_uint8_t b6; + xed_uint8_t b7; /*high 8 bits*/ + } b; + + struct { + xed_uint16_t w0; /*low 16 bits*/ + xed_uint16_t w1; + xed_uint16_t w2; + xed_uint16_t w3; /*high 16 bits*/ + } w; + struct { + xed_uint32_t lo32; + xed_uint32_t hi32; + } s; + xed_uint64_t u64; + xed_int64_t i64; +} xed_union64_t ; + +//////////////////////////////////////////////////////////////////////////// +#endif diff --git a/third_party/xed-intel64/include/xed-util.h b/third_party/xed-intel64/include/xed-util.h new file mode 100644 index 0000000..7ca7b2f --- /dev/null +++ b/third_party/xed-intel64/include/xed-util.h @@ -0,0 +1,291 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ +/// @file xed-util.h +/// + + + +#ifndef _XED_UTIL_H_ +# define _XED_UTIL_H_ + +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" +#include "../../../third_party/xed-intel64/include/xed-portability.h" +#include "../../../third_party/xed-intel64/include/xed-types.h" + + +//////////////////////////////////////////////////////////////////////////// +// DEFINES +//////////////////////////////////////////////////////////////////////////// +extern int xed_verbose; +#if defined(XED_MESSAGES) +# include +extern FILE* xed_log_file; +# define XED_EMIT_MESSAGES (xed_verbose >= 1) +# define XED_INFO_VERBOSE (xed_verbose >= 2) +# define XED_INFO2_VERBOSE (xed_verbose >= 3) +# define XED_VERBOSE (xed_verbose >= 4) +# define XED_MORE_VERBOSE (xed_verbose >= 5) +# define XED_VERY_VERBOSE (xed_verbose >= 6) +#else +# define XED_EMIT_MESSAGES (0) +# define XED_INFO_VERBOSE (0) +# define XED_INFO2_VERBOSE (0) +# define XED_VERBOSE (0) +# define XED_MORE_VERBOSE (0) +# define XED_VERY_VERBOSE (0) +#endif + +#if defined(__GNUC__) +# define XED_FUNCNAME __func__ +#else +# define XED_FUNCNAME "" +#endif + +#if defined(XED_MESSAGES) +#define XED2IMSG(x) \ + do { \ + if (XED_EMIT_MESSAGES) { \ + if (XED_VERY_VERBOSE) { \ + fprintf(xed_log_file,"%s:%d:%s: ", \ + __FILE__, __LINE__, XED_FUNCNAME); \ + } \ + fprintf x; \ + fflush(xed_log_file); \ + } \ + } while(0) + +#define XED2TMSG(x) \ + do { \ + if (XED_VERBOSE) { \ + if (XED_VERY_VERBOSE) { \ + fprintf(xed_log_file,"%s:%d:%s: ", \ + __FILE__, __LINE__, XED_FUNCNAME); \ + } \ + fprintf x; \ + fflush(xed_log_file); \ + } \ + } while(0) + +#define XED2VMSG(x) \ + do { \ + if (XED_VERY_VERBOSE) { \ + fprintf(xed_log_file,"%s:%d:%s: ", \ + __FILE__, __LINE__, XED_FUNCNAME); \ + fprintf x; \ + fflush(xed_log_file); \ + } \ + } while(0) + +#define XED2DIE(x) \ + do { \ + if (XED_EMIT_MESSAGES) { \ + fprintf(xed_log_file,"%s:%d:%s: ", \ + __FILE__, __LINE__, XED_FUNCNAME); \ + fprintf x; \ + fflush(xed_log_file); \ + } \ + xed_assert(0); \ + } while(0) + + + +#else +# define XED2IMSG(x) +# define XED2TMSG(x) +# define XED2VMSG(x) +# define XED2DIE(x) do { xed_assert(0); } while(0) +#endif + +#if defined(XED_ASSERTS) +# define xed_assert(x) do { if (( x )== 0) xed_internal_assert( #x, __FILE__, __LINE__); } while(0) +#else +# define xed_assert(x) do { } while(0) +#endif +XED_NORETURN XED_NOINLINE XED_DLL_EXPORT void xed_internal_assert(const char* s, const char* file, int line); + +typedef void (*xed_user_abort_function_t)(const char* msg, + const char* file, + int line, + void* other); + +/// @ingroup INIT +/// This is for registering a function to be called during XED's assert +/// processing. If you do not register an abort function, then the system's +/// abort function will be called. If your supplied function returns, then +/// abort() will still be called. +/// +/// @param fn This is a function pointer for a function that should handle the +/// assertion reporting. The function pointer points to a function that +/// takes 4 arguments: +/// (1) msg, the assertion message, +/// (2) file, the file name, +/// (3) line, the line number (as an integer), and +/// (4) other, a void pointer that is supplied as thei +/// 2nd argument to this registration. +/// @param other This is a void* that is passed back to your supplied function fn +/// as its 4th argument. It can be zero if you don't need this +/// feature. You can used this to convey whatever additional context +/// to your assertion handler (like FILE* pointers etc.). +/// +XED_DLL_EXPORT void xed_register_abort_function(xed_user_abort_function_t fn, + void* other); + + +//////////////////////////////////////////////////////////////////////////// +// PROTOTYPES +//////////////////////////////////////////////////////////////////////////// +char* xed_downcase_buf(char* s); + +/* copy from src to dst, downcasing bytes as the copy proceeds. len is the + * available space in the buffer*/ +int xed_strncat_lower(char* dst, const char* src, int len); + +XED_DLL_EXPORT int xed_itoa(char* buf, + xed_uint64_t f, + int buflen); + +int xed_itoa_hex_zeros(char* buf, + xed_uint64_t f, + xed_uint_t xed_bits_to_print, + xed_bool_t leading_zeros, + int buflen); + +XED_DLL_EXPORT int xed_itoa_hex(char* buf, + xed_uint64_t f, + xed_uint_t xed_bits_to_print, + int buflen); + +int xed_itoa_signed(char* buf, xed_int64_t f, int buflen); + +char xed_to_ascii_hex_nibble(xed_uint_t x); + +int xed_sprintf_uint8_hex(char* buf, xed_uint8_t x, int buflen); +int xed_sprintf_uint16_hex(char* buf, xed_uint16_t x, int buflen); +int xed_sprintf_uint32_hex(char* buf, xed_uint32_t x, int buflen); +int xed_sprintf_uint64_hex(char* buf, xed_uint64_t x, int buflen); +int xed_sprintf_uint8(char* buf, xed_uint8_t x, int buflen); +int xed_sprintf_uint16(char* buf, xed_uint16_t x, int buflen); +int xed_sprintf_uint32(char* buf, xed_uint32_t x, int buflen); +int xed_sprintf_uint64(char* buf, xed_uint64_t x, int buflen); +int xed_sprintf_int8(char* buf, xed_int8_t x, int buflen); +int xed_sprintf_int16(char* buf, xed_int16_t x, int buflen); +int xed_sprintf_int32(char* buf, xed_int32_t x, int buflen); +int xed_sprintf_int64(char* buf, xed_int64_t x, int buflen); + +/// Set the FILE* for XED's log msgs. This takes a FILE* as a void* because +/// some software defines their own FILE* types creating conflicts. +XED_DLL_EXPORT void xed_set_log_file(void* o); + + +/// Set the verbosity level for XED +XED_DLL_EXPORT void xed_set_verbosity(int v); + +void xed_derror(const char* s); +void xed_dwarn(const char* s); + +XED_DLL_EXPORT xed_int64_t xed_sign_extend32_64(xed_int32_t x); +XED_DLL_EXPORT xed_int64_t xed_sign_extend16_64(xed_int16_t x); +XED_DLL_EXPORT xed_int64_t xed_sign_extend8_64(xed_int8_t x); + +XED_DLL_EXPORT xed_int32_t xed_sign_extend16_32(xed_int16_t x); +XED_DLL_EXPORT xed_int32_t xed_sign_extend8_32(xed_int8_t x); + +XED_DLL_EXPORT xed_int16_t xed_sign_extend8_16(xed_int8_t x); + +///arbitrary sign extension from a qty of "bits" length to 32b +XED_DLL_EXPORT xed_int32_t xed_sign_extend_arbitrary_to_32(xed_uint32_t x, unsigned int bits); + +///arbitrary sign extension from a qty of "bits" length to 64b +XED_DLL_EXPORT xed_int64_t xed_sign_extend_arbitrary_to_64(xed_uint64_t x, unsigned int bits); + + +XED_DLL_EXPORT xed_uint64_t xed_zero_extend32_64(xed_uint32_t x); +XED_DLL_EXPORT xed_uint64_t xed_zero_extend16_64(xed_uint16_t x); +XED_DLL_EXPORT xed_uint64_t xed_zero_extend8_64(xed_uint8_t x); + +XED_DLL_EXPORT xed_uint32_t xed_zero_extend16_32(xed_uint16_t x); +XED_DLL_EXPORT xed_uint32_t xed_zero_extend8_32(xed_uint8_t x); + +XED_DLL_EXPORT xed_uint16_t xed_zero_extend8_16(xed_uint8_t x); + +#if defined(XED_LITTLE_ENDIAN_SWAPPING) +XED_DLL_EXPORT xed_int32_t +xed_little_endian_to_int32(xed_uint64_t x, unsigned int len); + +XED_DLL_EXPORT xed_int64_t +xed_little_endian_to_int64(xed_uint64_t x, unsigned int len); +XED_DLL_EXPORT xed_uint64_t +xed_little_endian_to_uint64(xed_uint64_t x, unsigned int len); + +XED_DLL_EXPORT xed_int64_t +xed_little_endian_hilo_to_int64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len); +XED_DLL_EXPORT xed_uint64_t +xed_little_endian_hilo_to_uint64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len); +#endif + +XED_DLL_EXPORT xed_uint8_t +xed_get_byte(xed_uint64_t x, unsigned int i, unsigned int len); + +static XED_INLINE xed_uint64_t xed_make_uint64(xed_uint32_t hi, xed_uint32_t lo) { + xed_union64_t y; + y.s.lo32= lo; + y.s.hi32= hi; + return y.u64; +} +static XED_INLINE xed_int64_t xed_make_int64(xed_uint32_t hi, xed_uint32_t lo) { + xed_union64_t y; + y.s.lo32= lo; + y.s.hi32= hi; + return y.i64; +} + +/// returns the number of bytes required to store the UNSIGNED number x +/// given a mask of legal lengths. For the legal_widths argument, bit 0 +/// implies 1 byte is a legal return width, bit 1 implies that 2 bytes is a +/// legal return width, bit 2 implies that 4 bytes is a legal return width. +/// This returns 8 (indicating 8B) if none of the provided legal widths +/// applies. +XED_DLL_EXPORT xed_uint_t xed_shortest_width_unsigned(xed_uint64_t x, xed_uint8_t legal_widths); + +/// returns the number of bytes required to store the SIGNED number x +/// given a mask of legal lengths. For the legal_widths argument, bit 0 implies 1 +/// byte is a legal return width, bit 1 implies that 2 bytes is a legal +/// return width, bit 2 implies that 4 bytes is a legal return width. This +/// returns 8 (indicating 8B) if none of the provided legal widths applies. +XED_DLL_EXPORT xed_uint_t xed_shortest_width_signed(xed_int64_t x, xed_uint8_t legal_widths); + +//////////////////////////////////////////////////////////////////////////// +// GLOBALS +//////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////// +#endif diff --git a/third_party/xed-intel64/include/xed-version.h b/third_party/xed-intel64/include/xed-version.h new file mode 100644 index 0000000..8e7e7ea --- /dev/null +++ b/third_party/xed-intel64/include/xed-version.h @@ -0,0 +1,43 @@ +/*BEGIN_LEGAL +Copyright (c) 2004-2015, Intel Corporation. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +END_LEGAL */ + +#if !defined(_XED_VERSION_H_) +# define _XED_VERSION_H_ +#include "../../../third_party/xed-intel64/include/xed-common-hdrs.h" + +///@ingroup INIT +/// Returns a string representing XED svn commit revision and time stamp. +XED_DLL_EXPORT char const* xed_get_version(void); +///@ingroup INIT +/// Returns a copyright string. +XED_DLL_EXPORT char const* xed_get_copyright(void); +#endif diff --git a/third_party/xed-intel64/lib/libxed.a b/third_party/xed-intel64/lib/libxed.a new file mode 100644 index 0000000000000000000000000000000000000000..64beb451c8207978012a70b51a8070152117bc42 GIT binary patch literal 7093964 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