From 00d03b2513f91d30d24ef49e9cfaa20e29f10c6c Mon Sep 17 00:00:00 2001 From: Pavel Shevaev Date: Thu, 14 Mar 2024 18:20:54 +0300 Subject: [PATCH] Removing non-needed stuff --- bin/pear | 28 - bin/peardev | 28 - bin/php-cgi | Bin 13774960 -> 0 bytes bin/phpdbg | Bin 14001864 -> 0 bytes include/php/TSRM/TSRM.h | 218 - include/php/TSRM/tsrm_win32.h | 111 - include/php/Zend/zend.h | 358 - include/php/Zend/zend_API.h | 1751 - include/php/Zend/zend_alloc.h | 407 - include/php/Zend/zend_alloc_sizes.h | 64 - include/php/Zend/zend_arena.h | 224 - include/php/Zend/zend_ast.h | 342 - include/php/Zend/zend_bitset.h | 254 - include/php/Zend/zend_build.h | 46 - include/php/Zend/zend_builtin_functions.h | 29 - include/php/Zend/zend_closures.h | 43 - include/php/Zend/zend_compile.h | 1108 - include/php/Zend/zend_config.h | 1 - include/php/Zend/zend_config.w32.h | 82 - include/php/Zend/zend_constants.h | 96 - include/php/Zend/zend_cpuinfo.h | 209 - include/php/Zend/zend_dtrace.h | 46 - include/php/Zend/zend_errors.h | 42 - include/php/Zend/zend_exceptions.h | 82 - include/php/Zend/zend_execute.h | 435 - include/php/Zend/zend_extensions.h | 156 - include/php/Zend/zend_float.h | 415 - include/php/Zend/zend_gc.h | 87 - include/php/Zend/zend_generators.h | 136 - include/php/Zend/zend_globals.h | 315 - include/php/Zend/zend_globals_macros.h | 71 - include/php/Zend/zend_hash.h | 1192 - include/php/Zend/zend_highlight.h | 50 - include/php/Zend/zend_inheritance.h | 42 - include/php/Zend/zend_ini.h | 197 - include/php/Zend/zend_ini_parser.h | 78 - include/php/Zend/zend_ini_scanner.h | 37 - include/php/Zend/zend_ini_scanner_defs.h | 12 - include/php/Zend/zend_interfaces.h | 82 - include/php/Zend/zend_istdiostream.h | 34 - include/php/Zend/zend_iterators.h | 80 - include/php/Zend/zend_language_parser.h | 203 - include/php/Zend/zend_language_scanner.h | 76 - include/php/Zend/zend_language_scanner_defs.h | 15 - include/php/Zend/zend_list.h | 76 - include/php/Zend/zend_llist.h | 76 - include/php/Zend/zend_long.h | 129 - include/php/Zend/zend_map_ptr.h | 85 - include/php/Zend/zend_modules.h | 131 - include/php/Zend/zend_multibyte.h | 79 - include/php/Zend/zend_multiply.h | 343 - include/php/Zend/zend_object_handlers.h | 259 - include/php/Zend/zend_objects.h | 35 - include/php/Zend/zend_objects_API.h | 117 - include/php/Zend/zend_operators.h | 983 - include/php/Zend/zend_portability.h | 659 - include/php/Zend/zend_ptr_stack.h | 118 - include/php/Zend/zend_range_check.h | 67 - include/php/Zend/zend_signal.h | 112 - include/php/Zend/zend_smart_str.h | 152 - include/php/Zend/zend_smart_str_public.h | 27 - include/php/Zend/zend_smart_string.h | 115 - include/php/Zend/zend_smart_string_public.h | 31 - include/php/Zend/zend_sort.h | 29 - include/php/Zend/zend_stack.h | 49 - include/php/Zend/zend_stream.h | 98 - include/php/Zend/zend_string.h | 526 - include/php/Zend/zend_strtod.h | 36 - include/php/Zend/zend_strtod_int.h | 147 - include/php/Zend/zend_ts_hash.h | 138 - include/php/Zend/zend_type_info.h | 58 - include/php/Zend/zend_types.h | 1283 - include/php/Zend/zend_variables.h | 96 - include/php/Zend/zend_virtual_cwd.h | 385 - include/php/Zend/zend_vm.h | 40 - include/php/Zend/zend_vm_def.h | 9423 --- include/php/Zend/zend_vm_execute.h | 61479 ---------------- include/php/Zend/zend_vm_handlers.h | 1776 - include/php/Zend/zend_vm_opcodes.h | 277 - include/php/Zend/zend_vm_trace_handlers.h | 112 - include/php/Zend/zend_vm_trace_map.h | 81 - include/php/Zend/zend_weakrefs.h | 36 - include/php/ext/date/lib/timelib.h | 967 - include/php/ext/date/lib/timelib_config.h | 14 - include/php/ext/date/php_date.h | 230 - include/php/ext/dom/xml_common.h | 93 - include/php/ext/filter/php_filter.h | 99 - include/php/ext/hash/php_hash.h | 162 - include/php/ext/hash/php_hash_adler32.h | 33 - include/php/ext/hash/php_hash_crc32.h | 36 - include/php/ext/hash/php_hash_fnv.h | 68 - include/php/ext/hash/php_hash_gost.h | 37 - include/php/ext/hash/php_hash_haval.h | 57 - include/php/ext/hash/php_hash_joaat.h | 32 - include/php/ext/hash/php_hash_md.h | 98 - include/php/ext/hash/php_hash_ripemd.h | 64 - include/php/ext/hash/php_hash_sha.h | 103 - include/php/ext/hash/php_hash_sha3.h | 54 - include/php/ext/hash/php_hash_snefru.h | 40 - include/php/ext/hash/php_hash_tiger.h | 38 - include/php/ext/hash/php_hash_whirlpool.h | 37 - include/php/ext/json/php_json.h | 110 - include/php/ext/json/php_json_parser.h | 86 - include/php/ext/json/php_json_scanner.h | 48 - include/php/ext/libxml/php_libxml.h | 129 - include/php/ext/mbstring/libmbfl/config.h | 1 - .../php/ext/mbstring/libmbfl/mbfl/eaw_table.h | 44 - .../php/ext/mbstring/libmbfl/mbfl/mbfilter.h | 308 - .../ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h | 39 - .../ext/mbstring/libmbfl/mbfl/mbfilter_pass.h | 41 - .../mbstring/libmbfl/mbfl/mbfilter_wchar.h | 39 - .../mbstring/libmbfl/mbfl/mbfl_allocators.h | 57 - .../ext/mbstring/libmbfl/mbfl/mbfl_consts.h | 94 - .../ext/mbstring/libmbfl/mbfl/mbfl_convert.h | 86 - .../php/ext/mbstring/libmbfl/mbfl/mbfl_defs.h | 60 - .../ext/mbstring/libmbfl/mbfl/mbfl_encoding.h | 164 - .../libmbfl/mbfl/mbfl_filter_output.h | 38 - .../ext/mbstring/libmbfl/mbfl/mbfl_ident.h | 74 - .../ext/mbstring/libmbfl/mbfl/mbfl_language.h | 87 - .../libmbfl/mbfl/mbfl_memory_device.h | 76 - .../ext/mbstring/libmbfl/mbfl/mbfl_string.h | 57 - include/php/ext/mbstring/mbstring.h | 203 - include/php/ext/mbstring/php_mbregex.h | 97 - include/php/ext/mbstring/php_onig_compat.h | 8 - include/php/ext/msgpack/php_msgpack.h | 100 - include/php/ext/mysqli/mysqli_mysqlnd.h | 48 - include/php/ext/mysqli/php_mysqli_structs.h | 333 - include/php/ext/mysqlnd/config-win.h | 105 - .../php/ext/mysqlnd/mysql_float_to_double.h | 51 - include/php/ext/mysqlnd/mysqlnd.h | 340 - include/php/ext/mysqlnd/mysqlnd_alloc.h | 87 - include/php/ext/mysqlnd/mysqlnd_auth.h | 103 - include/php/ext/mysqlnd/mysqlnd_block_alloc.h | 28 - include/php/ext/mysqlnd/mysqlnd_charset.h | 44 - include/php/ext/mysqlnd/mysqlnd_commands.h | 25 - include/php/ext/mysqlnd/mysqlnd_connection.h | 78 - include/php/ext/mysqlnd/mysqlnd_debug.h | 230 - include/php/ext/mysqlnd/mysqlnd_enum_n_def.h | 713 - include/php/ext/mysqlnd/mysqlnd_ext_plugin.h | 166 - .../php/ext/mysqlnd/mysqlnd_libmysql_compat.h | 133 - include/php/ext/mysqlnd/mysqlnd_plugin.h | 31 - include/php/ext/mysqlnd/mysqlnd_portability.h | 326 - include/php/ext/mysqlnd/mysqlnd_priv.h | 36 - .../mysqlnd/mysqlnd_protocol_frame_codec.h | 26 - include/php/ext/mysqlnd/mysqlnd_ps.h | 45 - include/php/ext/mysqlnd/mysqlnd_read_buffer.h | 25 - include/php/ext/mysqlnd/mysqlnd_result.h | 30 - include/php/ext/mysqlnd/mysqlnd_result_meta.h | 28 - include/php/ext/mysqlnd/mysqlnd_reverse_api.h | 38 - include/php/ext/mysqlnd/mysqlnd_statistics.h | 121 - include/php/ext/mysqlnd/mysqlnd_structs.h | 1404 - include/php/ext/mysqlnd/mysqlnd_vio.h | 26 - .../php/ext/mysqlnd/mysqlnd_wireprotocol.h | 327 - include/php/ext/mysqlnd/php_mysqlnd.h | 26 - include/php/ext/pcre/pcre2lib/config.h | 100 - include/php/ext/pcre/pcre2lib/pcre2.h | 991 - .../php/ext/pcre/pcre2lib/pcre2_internal.h | 2004 - .../php/ext/pcre/pcre2lib/pcre2_intmodedep.h | 923 - .../ext/pcre/pcre2lib/pcre2_jit_neon_inc.h | 343 - .../ext/pcre/pcre2lib/pcre2_jit_simd_inc.h | 1123 - include/php/ext/pcre/pcre2lib/pcre2_ucp.h | 299 - include/php/ext/pcre/php_pcre.h | 86 - include/php/ext/pdo/php_pdo.h | 65 - include/php/ext/pdo/php_pdo_driver.h | 698 - include/php/ext/pdo/php_pdo_error.h | 37 - include/php/ext/phar/php_phar.h | 37 - include/php/ext/session/mod_files.h | 27 - include/php/ext/session/mod_user.h | 27 - include/php/ext/session/php_session.h | 333 - include/php/ext/simplexml/php_simplexml.h | 84 - .../php/ext/simplexml/php_simplexml_exports.h | 57 - include/php/ext/sockets/php_sockets.h | 119 - include/php/ext/spl/php_spl.h | 75 - include/php/ext/spl/spl_array.h | 35 - include/php/ext/spl/spl_directory.h | 149 - include/php/ext/spl/spl_dllist.h | 31 - include/php/ext/spl/spl_engine.h | 78 - include/php/ext/spl/spl_exceptions.h | 42 - include/php/ext/spl/spl_fixedarray.h | 27 - include/php/ext/spl/spl_functions.h | 80 - include/php/ext/spl/spl_heap.h | 33 - include/php/ext/spl/spl_iterators.h | 172 - include/php/ext/spl/spl_observer.h | 32 - include/php/ext/standard/base64.h | 83 - include/php/ext/standard/basic_functions.h | 274 - include/php/ext/standard/crc32.h | 98 - include/php/ext/standard/credits.h | 40 - include/php/ext/standard/credits_ext.h | 81 - include/php/ext/standard/credits_sapi.h | 19 - include/php/ext/standard/crypt_blowfish.h | 31 - include/php/ext/standard/crypt_freesec.h | 34 - include/php/ext/standard/css.h | 24 - include/php/ext/standard/cyr_convert.h | 24 - include/php/ext/standard/datetime.h | 29 - include/php/ext/standard/dl.h | 33 - include/php/ext/standard/exec.h | 40 - include/php/ext/standard/file.h | 146 - include/php/ext/standard/flock_compat.h | 64 - include/php/ext/standard/fsock.h | 31 - include/php/ext/standard/head.h | 42 - include/php/ext/standard/hrtime.h | 60 - include/php/ext/standard/html.h | 60 - include/php/ext/standard/html_tables.h | 6232 -- include/php/ext/standard/info.h | 85 - include/php/ext/standard/md5.h | 53 - include/php/ext/standard/microtime.h | 30 - include/php/ext/standard/pack.h | 26 - include/php/ext/standard/pageinfo.h | 33 - include/php/ext/standard/php_array.h | 133 - include/php/ext/standard/php_assert.h | 30 - include/php/ext/standard/php_browscap.h | 27 - include/php/ext/standard/php_crypt.h | 30 - include/php/ext/standard/php_crypt_r.h | 58 - include/php/ext/standard/php_dir.h | 42 - include/php/ext/standard/php_dns.h | 88 - include/php/ext/standard/php_ext_syslog.h | 39 - include/php/ext/standard/php_filestat.h | 105 - include/php/ext/standard/php_fopen_wrappers.h | 31 - include/php/ext/standard/php_ftok.h | 26 - include/php/ext/standard/php_http.h | 34 - include/php/ext/standard/php_image.h | 65 - .../php/ext/standard/php_incomplete_class.h | 61 - include/php/ext/standard/php_iptc.h | 25 - include/php/ext/standard/php_lcg.h | 41 - include/php/ext/standard/php_link.h | 31 - include/php/ext/standard/php_mail.h | 58 - include/php/ext/standard/php_math.h | 171 - include/php/ext/standard/php_metaphone.h | 24 - include/php/ext/standard/php_mt_rand.h | 42 - include/php/ext/standard/php_net.h | 29 - include/php/ext/standard/php_password.h | 72 - include/php/ext/standard/php_rand.h | 74 - include/php/ext/standard/php_random.h | 55 - include/php/ext/standard/php_smart_string.h | 21 - .../ext/standard/php_smart_string_public.h | 21 - include/php/ext/standard/php_standard.h | 68 - include/php/ext/standard/php_string.h | 160 - include/php/ext/standard/php_type.h | 42 - include/php/ext/standard/php_uuencode.h | 28 - include/php/ext/standard/php_var.h | 76 - include/php/ext/standard/php_versioning.h | 28 - include/php/ext/standard/proc_open.h | 48 - include/php/ext/standard/quot_print.h | 28 - include/php/ext/standard/scanf.h | 47 - include/php/ext/standard/sha1.h | 39 - include/php/ext/standard/streamsfuncs.h | 69 - include/php/ext/standard/uniqid.h | 26 - include/php/ext/standard/url.h | 62 - include/php/ext/standard/url_scanner_ex.h | 65 - include/php/ext/standard/winver.h | 133 - include/php/ext/xml/expat_compat.h | 159 - include/php/ext/xml/php_xml.h | 44 - include/php/main/SAPI.h | 323 - include/php/main/build-defs.h | 41 - include/php/main/fastcgi.h | 128 - include/php/main/fopen_wrappers.h | 49 - include/php/main/http_status_codes.h | 82 - include/php/main/php.h | 450 - include/php/main/php_compat.h | 402 - include/php/main/php_config.h | 2382 - include/php/main/php_content_types.h | 29 - include/php/main/php_getopt.h | 41 - include/php/main/php_globals.h | 176 - include/php/main/php_ini.h | 89 - include/php/main/php_main.h | 58 - include/php/main/php_memory_streams.h | 65 - include/php/main/php_network.h | 339 - include/php/main/php_open_temporary_file.h | 40 - include/php/main/php_output.h | 264 - include/php/main/php_reentrancy.h | 124 - include/php/main/php_scandir.h | 48 - include/php/main/php_stdint.h | 220 - include/php/main/php_streams.h | 610 - include/php/main/php_syslog.h | 44 - include/php/main/php_ticks.h | 32 - include/php/main/php_variables.h | 48 - include/php/main/php_version.h | 8 - include/php/main/rfc1867.h | 89 - include/php/main/snprintf.h | 164 - include/php/main/spprintf.h | 36 - include/php/main/streams/php_stream_context.h | 116 - .../php/main/streams/php_stream_filter_api.h | 151 - .../main/streams/php_stream_glob_wrapper.h | 33 - include/php/main/streams/php_stream_mmap.h | 79 - .../main/streams/php_stream_plain_wrapper.h | 58 - .../php/main/streams/php_stream_transport.h | 218 - .../php/main/streams/php_stream_userspace.h | 23 - include/php/main/streams/php_streams_int.h | 67 - include/php/sapi/cli/cli.h | 41 - 289 files changed, 123727 deletions(-) delete mode 100755 bin/pear delete mode 100755 bin/peardev delete mode 100755 bin/php-cgi delete mode 100755 bin/phpdbg delete mode 100644 include/php/TSRM/TSRM.h delete mode 100644 include/php/TSRM/tsrm_win32.h delete mode 100644 include/php/Zend/zend.h delete mode 100644 include/php/Zend/zend_API.h delete mode 100644 include/php/Zend/zend_alloc.h delete mode 100644 include/php/Zend/zend_alloc_sizes.h delete mode 100644 include/php/Zend/zend_arena.h delete mode 100644 include/php/Zend/zend_ast.h delete mode 100644 include/php/Zend/zend_bitset.h delete mode 100644 include/php/Zend/zend_build.h delete mode 100644 include/php/Zend/zend_builtin_functions.h delete mode 100644 include/php/Zend/zend_closures.h delete mode 100644 include/php/Zend/zend_compile.h delete mode 100644 include/php/Zend/zend_config.h delete mode 100644 include/php/Zend/zend_config.w32.h delete mode 100644 include/php/Zend/zend_constants.h delete mode 100644 include/php/Zend/zend_cpuinfo.h delete mode 100644 include/php/Zend/zend_dtrace.h delete mode 100644 include/php/Zend/zend_errors.h delete mode 100644 include/php/Zend/zend_exceptions.h delete mode 100644 include/php/Zend/zend_execute.h delete mode 100644 include/php/Zend/zend_extensions.h delete mode 100644 include/php/Zend/zend_float.h delete mode 100644 include/php/Zend/zend_gc.h delete mode 100644 include/php/Zend/zend_generators.h delete mode 100644 include/php/Zend/zend_globals.h delete mode 100644 include/php/Zend/zend_globals_macros.h delete mode 100644 include/php/Zend/zend_hash.h delete mode 100644 include/php/Zend/zend_highlight.h delete mode 100644 include/php/Zend/zend_inheritance.h delete mode 100644 include/php/Zend/zend_ini.h delete mode 100644 include/php/Zend/zend_ini_parser.h delete mode 100644 include/php/Zend/zend_ini_scanner.h delete mode 100644 include/php/Zend/zend_ini_scanner_defs.h delete mode 100644 include/php/Zend/zend_interfaces.h delete mode 100644 include/php/Zend/zend_istdiostream.h delete mode 100644 include/php/Zend/zend_iterators.h delete mode 100644 include/php/Zend/zend_language_parser.h delete mode 100644 include/php/Zend/zend_language_scanner.h delete mode 100644 include/php/Zend/zend_language_scanner_defs.h delete mode 100644 include/php/Zend/zend_list.h delete mode 100644 include/php/Zend/zend_llist.h delete mode 100644 include/php/Zend/zend_long.h delete mode 100644 include/php/Zend/zend_map_ptr.h delete mode 100644 include/php/Zend/zend_modules.h delete mode 100644 include/php/Zend/zend_multibyte.h delete mode 100644 include/php/Zend/zend_multiply.h delete mode 100644 include/php/Zend/zend_object_handlers.h delete mode 100644 include/php/Zend/zend_objects.h delete mode 100644 include/php/Zend/zend_objects_API.h delete mode 100644 include/php/Zend/zend_operators.h delete mode 100644 include/php/Zend/zend_portability.h delete mode 100644 include/php/Zend/zend_ptr_stack.h delete mode 100644 include/php/Zend/zend_range_check.h delete mode 100644 include/php/Zend/zend_signal.h delete mode 100644 include/php/Zend/zend_smart_str.h delete mode 100644 include/php/Zend/zend_smart_str_public.h delete mode 100644 include/php/Zend/zend_smart_string.h delete mode 100644 include/php/Zend/zend_smart_string_public.h delete mode 100644 include/php/Zend/zend_sort.h delete mode 100644 include/php/Zend/zend_stack.h delete mode 100644 include/php/Zend/zend_stream.h delete mode 100644 include/php/Zend/zend_string.h delete mode 100644 include/php/Zend/zend_strtod.h delete mode 100644 include/php/Zend/zend_strtod_int.h delete mode 100644 include/php/Zend/zend_ts_hash.h delete mode 100644 include/php/Zend/zend_type_info.h delete mode 100644 include/php/Zend/zend_types.h delete mode 100644 include/php/Zend/zend_variables.h delete mode 100644 include/php/Zend/zend_virtual_cwd.h delete mode 100644 include/php/Zend/zend_vm.h delete mode 100644 include/php/Zend/zend_vm_def.h delete mode 100644 include/php/Zend/zend_vm_execute.h delete mode 100644 include/php/Zend/zend_vm_handlers.h delete mode 100644 include/php/Zend/zend_vm_opcodes.h delete mode 100644 include/php/Zend/zend_vm_trace_handlers.h delete mode 100644 include/php/Zend/zend_vm_trace_map.h delete mode 100644 include/php/Zend/zend_weakrefs.h delete mode 100644 include/php/ext/date/lib/timelib.h delete mode 100644 include/php/ext/date/lib/timelib_config.h delete mode 100644 include/php/ext/date/php_date.h delete mode 100644 include/php/ext/dom/xml_common.h delete mode 100644 include/php/ext/filter/php_filter.h delete mode 100644 include/php/ext/hash/php_hash.h delete mode 100644 include/php/ext/hash/php_hash_adler32.h delete mode 100644 include/php/ext/hash/php_hash_crc32.h delete mode 100644 include/php/ext/hash/php_hash_fnv.h delete mode 100644 include/php/ext/hash/php_hash_gost.h delete mode 100644 include/php/ext/hash/php_hash_haval.h delete mode 100644 include/php/ext/hash/php_hash_joaat.h delete mode 100644 include/php/ext/hash/php_hash_md.h delete mode 100644 include/php/ext/hash/php_hash_ripemd.h delete mode 100644 include/php/ext/hash/php_hash_sha.h delete mode 100644 include/php/ext/hash/php_hash_sha3.h delete mode 100644 include/php/ext/hash/php_hash_snefru.h delete mode 100644 include/php/ext/hash/php_hash_tiger.h delete mode 100644 include/php/ext/hash/php_hash_whirlpool.h delete mode 100644 include/php/ext/json/php_json.h delete mode 100644 include/php/ext/json/php_json_parser.h delete mode 100644 include/php/ext/json/php_json_scanner.h delete mode 100644 include/php/ext/libxml/php_libxml.h delete mode 100644 include/php/ext/mbstring/libmbfl/config.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/eaw_table.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfilter.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_consts.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_convert.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_defs.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_ident.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_language.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h delete mode 100644 include/php/ext/mbstring/libmbfl/mbfl/mbfl_string.h delete mode 100644 include/php/ext/mbstring/mbstring.h delete mode 100644 include/php/ext/mbstring/php_mbregex.h delete mode 100644 include/php/ext/mbstring/php_onig_compat.h delete mode 100644 include/php/ext/msgpack/php_msgpack.h delete mode 100644 include/php/ext/mysqli/mysqli_mysqlnd.h delete mode 100644 include/php/ext/mysqli/php_mysqli_structs.h delete mode 100644 include/php/ext/mysqlnd/config-win.h delete mode 100644 include/php/ext/mysqlnd/mysql_float_to_double.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_alloc.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_auth.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_block_alloc.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_charset.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_commands.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_connection.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_debug.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_enum_n_def.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_ext_plugin.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_plugin.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_portability.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_priv.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_ps.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_read_buffer.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_result.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_result_meta.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_reverse_api.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_statistics.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_structs.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_vio.h delete mode 100644 include/php/ext/mysqlnd/mysqlnd_wireprotocol.h delete mode 100644 include/php/ext/mysqlnd/php_mysqlnd.h delete mode 100644 include/php/ext/pcre/pcre2lib/config.h delete mode 100644 include/php/ext/pcre/pcre2lib/pcre2.h delete mode 100644 include/php/ext/pcre/pcre2lib/pcre2_internal.h delete mode 100644 include/php/ext/pcre/pcre2lib/pcre2_intmodedep.h delete mode 100644 include/php/ext/pcre/pcre2lib/pcre2_jit_neon_inc.h delete mode 100644 include/php/ext/pcre/pcre2lib/pcre2_jit_simd_inc.h delete mode 100644 include/php/ext/pcre/pcre2lib/pcre2_ucp.h delete mode 100644 include/php/ext/pcre/php_pcre.h delete mode 100644 include/php/ext/pdo/php_pdo.h delete mode 100644 include/php/ext/pdo/php_pdo_driver.h delete mode 100644 include/php/ext/pdo/php_pdo_error.h delete mode 100644 include/php/ext/phar/php_phar.h delete mode 100644 include/php/ext/session/mod_files.h delete mode 100644 include/php/ext/session/mod_user.h delete mode 100644 include/php/ext/session/php_session.h delete mode 100644 include/php/ext/simplexml/php_simplexml.h delete mode 100644 include/php/ext/simplexml/php_simplexml_exports.h delete mode 100644 include/php/ext/sockets/php_sockets.h delete mode 100644 include/php/ext/spl/php_spl.h delete mode 100644 include/php/ext/spl/spl_array.h delete mode 100644 include/php/ext/spl/spl_directory.h delete mode 100644 include/php/ext/spl/spl_dllist.h delete mode 100644 include/php/ext/spl/spl_engine.h delete mode 100644 include/php/ext/spl/spl_exceptions.h delete mode 100644 include/php/ext/spl/spl_fixedarray.h delete mode 100644 include/php/ext/spl/spl_functions.h delete mode 100644 include/php/ext/spl/spl_heap.h delete mode 100644 include/php/ext/spl/spl_iterators.h delete mode 100644 include/php/ext/spl/spl_observer.h delete mode 100644 include/php/ext/standard/base64.h delete mode 100644 include/php/ext/standard/basic_functions.h delete mode 100644 include/php/ext/standard/crc32.h delete mode 100644 include/php/ext/standard/credits.h delete mode 100644 include/php/ext/standard/credits_ext.h delete mode 100644 include/php/ext/standard/credits_sapi.h delete mode 100644 include/php/ext/standard/crypt_blowfish.h delete mode 100644 include/php/ext/standard/crypt_freesec.h delete mode 100644 include/php/ext/standard/css.h delete mode 100644 include/php/ext/standard/cyr_convert.h delete mode 100644 include/php/ext/standard/datetime.h delete mode 100644 include/php/ext/standard/dl.h delete mode 100644 include/php/ext/standard/exec.h delete mode 100644 include/php/ext/standard/file.h delete mode 100644 include/php/ext/standard/flock_compat.h delete mode 100644 include/php/ext/standard/fsock.h delete mode 100644 include/php/ext/standard/head.h delete mode 100644 include/php/ext/standard/hrtime.h delete mode 100644 include/php/ext/standard/html.h delete mode 100644 include/php/ext/standard/html_tables.h delete mode 100644 include/php/ext/standard/info.h delete mode 100644 include/php/ext/standard/md5.h delete mode 100644 include/php/ext/standard/microtime.h delete mode 100644 include/php/ext/standard/pack.h delete mode 100644 include/php/ext/standard/pageinfo.h delete mode 100644 include/php/ext/standard/php_array.h delete mode 100644 include/php/ext/standard/php_assert.h delete mode 100644 include/php/ext/standard/php_browscap.h delete mode 100644 include/php/ext/standard/php_crypt.h delete mode 100644 include/php/ext/standard/php_crypt_r.h delete mode 100644 include/php/ext/standard/php_dir.h delete mode 100644 include/php/ext/standard/php_dns.h delete mode 100644 include/php/ext/standard/php_ext_syslog.h delete mode 100644 include/php/ext/standard/php_filestat.h delete mode 100644 include/php/ext/standard/php_fopen_wrappers.h delete mode 100644 include/php/ext/standard/php_ftok.h delete mode 100644 include/php/ext/standard/php_http.h delete mode 100644 include/php/ext/standard/php_image.h delete mode 100644 include/php/ext/standard/php_incomplete_class.h delete mode 100644 include/php/ext/standard/php_iptc.h delete mode 100644 include/php/ext/standard/php_lcg.h delete mode 100644 include/php/ext/standard/php_link.h delete mode 100644 include/php/ext/standard/php_mail.h delete mode 100644 include/php/ext/standard/php_math.h delete mode 100644 include/php/ext/standard/php_metaphone.h delete mode 100644 include/php/ext/standard/php_mt_rand.h delete mode 100644 include/php/ext/standard/php_net.h delete mode 100644 include/php/ext/standard/php_password.h delete mode 100644 include/php/ext/standard/php_rand.h delete mode 100644 include/php/ext/standard/php_random.h delete mode 100644 include/php/ext/standard/php_smart_string.h delete mode 100644 include/php/ext/standard/php_smart_string_public.h delete mode 100644 include/php/ext/standard/php_standard.h delete mode 100644 include/php/ext/standard/php_string.h delete mode 100644 include/php/ext/standard/php_type.h delete mode 100644 include/php/ext/standard/php_uuencode.h delete mode 100644 include/php/ext/standard/php_var.h delete mode 100644 include/php/ext/standard/php_versioning.h delete mode 100644 include/php/ext/standard/proc_open.h delete mode 100644 include/php/ext/standard/quot_print.h delete mode 100644 include/php/ext/standard/scanf.h delete mode 100644 include/php/ext/standard/sha1.h delete mode 100644 include/php/ext/standard/streamsfuncs.h delete mode 100644 include/php/ext/standard/uniqid.h delete mode 100644 include/php/ext/standard/url.h delete mode 100644 include/php/ext/standard/url_scanner_ex.h delete mode 100644 include/php/ext/standard/winver.h delete mode 100644 include/php/ext/xml/expat_compat.h delete mode 100644 include/php/ext/xml/php_xml.h delete mode 100644 include/php/main/SAPI.h delete mode 100644 include/php/main/build-defs.h delete mode 100644 include/php/main/fastcgi.h delete mode 100644 include/php/main/fopen_wrappers.h delete mode 100644 include/php/main/http_status_codes.h delete mode 100644 include/php/main/php.h delete mode 100644 include/php/main/php_compat.h delete mode 100644 include/php/main/php_config.h delete mode 100644 include/php/main/php_content_types.h delete mode 100644 include/php/main/php_getopt.h delete mode 100644 include/php/main/php_globals.h delete mode 100644 include/php/main/php_ini.h delete mode 100644 include/php/main/php_main.h delete mode 100644 include/php/main/php_memory_streams.h delete mode 100644 include/php/main/php_network.h delete mode 100644 include/php/main/php_open_temporary_file.h delete mode 100644 include/php/main/php_output.h delete mode 100644 include/php/main/php_reentrancy.h delete mode 100644 include/php/main/php_scandir.h delete mode 100644 include/php/main/php_stdint.h delete mode 100644 include/php/main/php_streams.h delete mode 100644 include/php/main/php_syslog.h delete mode 100644 include/php/main/php_ticks.h delete mode 100644 include/php/main/php_variables.h delete mode 100644 include/php/main/php_version.h delete mode 100644 include/php/main/rfc1867.h delete mode 100644 include/php/main/snprintf.h delete mode 100644 include/php/main/spprintf.h delete mode 100644 include/php/main/streams/php_stream_context.h delete mode 100644 include/php/main/streams/php_stream_filter_api.h delete mode 100644 include/php/main/streams/php_stream_glob_wrapper.h delete mode 100644 include/php/main/streams/php_stream_mmap.h delete mode 100644 include/php/main/streams/php_stream_plain_wrapper.h delete mode 100644 include/php/main/streams/php_stream_transport.h delete mode 100644 include/php/main/streams/php_stream_userspace.h delete mode 100644 include/php/main/streams/php_streams_int.h delete mode 100644 include/php/sapi/cli/cli.h diff --git a/bin/pear b/bin/pear deleted file mode 100755 index 008bdd5..0000000 --- a/bin/pear +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# first find which PHP binary to use -if test "x$PHP_PEAR_PHP_BIN" != "x"; then - PHP="$PHP_PEAR_PHP_BIN" -else - if test "/Users/apostol/.phpbrew/php/php-7.4.32/bin/php" = '@'php_bin'@'; then - PHP=php - else - PHP="/Users/apostol/.phpbrew/php/php-7.4.32/bin/php" - fi -fi - -# then look for the right pear include dir -if test "x$PHP_PEAR_INSTALL_DIR" != "x"; then - INCDIR=$PHP_PEAR_INSTALL_DIR - INCARG="-d include_path=$PHP_PEAR_INSTALL_DIR" -else - if test "/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" = '@'php_dir'@'; then - INCDIR=`dirname $0` - INCARG="" - else - INCDIR="/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" - INCARG="-d include_path=/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" - fi -fi - -exec $PHP -C -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" $INCDIR/pearcmd.php "$@" diff --git a/bin/peardev b/bin/peardev deleted file mode 100755 index f887ec9..0000000 --- a/bin/peardev +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -# first find which PHP binary to use -if test "x$PHP_PEAR_PHP_BIN" != "x"; then - PHP="$PHP_PEAR_PHP_BIN" -else - if test "/Users/apostol/.phpbrew/php/php-7.4.32/bin/php" = '@'php_bin'@'; then - PHP=php - else - PHP="/Users/apostol/.phpbrew/php/php-7.4.32/bin/php" - fi -fi - -# then look for the right pear include dir -if test "x$PHP_PEAR_INSTALL_DIR" != "x"; then - INCDIR=$PHP_PEAR_INSTALL_DIR - INCARG="-d include_path=$PHP_PEAR_INSTALL_DIR" -else - if test "/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" = '@'php_dir'@'; then - INCDIR=`dirname $0` - INCARG="" - else - INCDIR="/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" - INCARG="-d include_path=/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" - fi -fi - -exec $PHP -d date.timezone=UTC -d memory_limit="-1" -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d variables_order=EGPCS -d auto_append_file="" $INCDIR/pearcmd.php "$@" diff --git a/bin/php-cgi b/bin/php-cgi deleted file mode 100755 index cd861a0d910316054cafe96363ab987ece1a7020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13774960 zcmeFadw5huwl>}g35070AsXdk&>$!f5;Pb@G;Pwb109S4ikBFaYZL{cTTlc7os4X@ zt#~`*j5qX*iZklql>mYrKoY!0ybwh(DnhmG2%U@%WG>Ul$A}Mb<5ls zfz8Vc=BV=WCd`sK_#Q`}RdB4lx!yVDw@i<|H{;)3t0a9rg;@&T?d7pg?SExuzFX#% z-!i4F{FZ5?pgDa#XT2cH+g+k^@x6H&_VU=TLY7nL8t*DAxOD6|)w}3F*{}H!CjMFd zYra$7ESV!~%gUzDigAtaEtgl#3i*ffnBV#%|7&c79^Vh~?TWA9dZ^@Ud2nm?qgtn7xl zG3hmx5Th8)cCaCnwLkuDgEIo z8au{aSfr%G;mBXB_!c}(Wvx(ro4s1SvmAR_=Q$h|atH#i;$ny6T=Tu+%{7h{o0aZL zN1jz%s~sbELMHFu>R9$zM@L7bnWF5d`T%+jpMRz}9OpGS94A?wq9};_pR!=9qlt>A z**}J6Xd9IdiAZ&C1O>FG@o5d~K%mL&kWz$K5{HJN4$QOQM-tqC44%RA+O# zQS1DhXAZH*=5yAN=H=wu+wVXh;M1)ApnRrP2%n=ZIF5gg4#?l3dHz|qlu!4~@!fpA zRR|Nnh-gnV=Y!)kN`5|)0>qO%L4@2e{ucpq~2;Dmv5@fm>rk#IJ%S7Y}%~d z;NKnPvn`_WXs6k#KN}C0{B%q_UheL&5#1B=OL|$qt*(NpGiP2e2aW8mAz3*?vU1CE zSTSpHIG7Kz-#i~>lN8Dxw(v+#%jL^%%*z^@m2H*$$MnRyZ77D#Fe}p^(_@CD zXyrgF2U@CDXyrgF2UiJ&qHH`m#yLrUi26O7R+G72d9~BsKTfD7?EsQl73pCqWeVY8g|JbU(ra9dBn$6+g*RK_ zJ+5jiis7ZPeJ3fTF$!tP@wNSwAsKLvLYNUlASXTgPoiESv{wk1s%rYP8WQ5F=E+I% z4~4Y5ShjpPOW_Gb#bh>WxkA{i5PHWDtZK@M5O{1qdR@wlrhg?4H|8O2#4lGsSa7g3 zPFR|N2w}P5B`GW`n;q_+`kZJq;OyH??j^4PPuPCa1%9dayrSNAtGDm)2GX}O(MUTzp7aXV z6?m)yl}AaR^p)(G!f_w zqjK2-kA6&?2hwYkFGo@aN=Io&W&UIjDGVg{S}B_}R=w?0Z*}VJ`X?pqh|1rRl!rYEssQtJOw;e0hbfV!@6s!cSH{b z{B1Pbk~=?IGG$5}>nV%1@yH7Zc@O}1Txdw4CdUTfKMynPy%^CcWpj_ z&nn>LI1c(}M(0mmxfp>Zfywv%VSMTr9DDBuKiu^h^49iUm9 ztAO1V@Ga)#IA0qaATH30tXzs7Argcv_0odi8eRD*5)idOP_a z@@$Rk9!ouDYj_*g@cS-D!zp3*!Icg~&^J>y+#ST@hq9om*%7PN z6?%Qf~w=k0@8>#`Z>cD%ju1QLy|m>@01^c1lJBS?RgIj=)8)h7Q9Njz(fI{u}I zeOxtU@C&jbE7e<{7vsnW->pE8%t=mF}w0AM%P3@FTVfrtiYgG|%vdFwOk%g8=^V{%& zSQvP@f{?CBAMqWIy*2M{aWjx}vsmh<#VNj>phSBxvt zk7-7)Q)I54z7#R_29Tp~7GI`ipgVF4FQ$Q*b}7EzBrjkmoSANi6x$%}2{F1M+r_rj zpHInf_(!}^2&Q42-k=J+oL|nudf?{TaBG3fSq@VvYrn_>Y5FGA{2ZXdi+`}WuW?;h z8hUt4e=H?p?WrA=!L~^*wbN=xQE|%Eg~@;LGYxc*@jbx*$EiiNMr3_HE;D~3CqRnQ#l=0BUI^w9#nUL3uO z7q~bp9|Fuj;t_xne3xnZ(GVK|1yNfBndCJqV)dl{Na%GZa%fdS@AM+QwqkxtTi z#>JX{ajL^RUh~(cd-Q|ilSzqKXL$>YjMFv$=JfDzCI(evx7y?(tVPn&t0Nx6JvF0q zB8dv5eT?dIA{)(K?X|8SINyLJS_)W8shuYO;^d_?L|bH9RGww~vFJ-L(hnBt5eU-j zmym5ceP@g3tH4q{`DrEu(t6*ECPJkrA%D&`@#cBteXnHzdi02ByDN{~j#&>KEna>U zK(r}YGt$GOw7`Vjz+tn>(JTUTAfO&2ceI(i?n~w_t*>=Akb7F7xE=yx7UrHX*bz?5 z*{Rx=Znn)_Z;mTLAN7zVMzM)Rj`(V zRI8fF-L&!pZ@u!=eVYEERuj5dtNAe_;Zyxk&A!uXj&)2p=F<1O4mA`ywXF%;{51p0 z50d<|4>;dEP<~Kf7KzmSn40jZbIqqnsQKPmb1WH|4@^7s`822YX`yq?+YrWy7eI&5 z4uKp)8f*9UbA6R81q(s@OR6FqF=P_pWlda}K(5B6?svQZ4<8 zy#4WdiF0F8o?hdxdDDM*nDeeos1H>84@`L44nBo?Sv5a(R>#jWeviDckxzjbhPCN9yrq^pV0v!6jbHb+bO%<0VIL@v~ z*cM3AM@*UOBS?8whZSQB(y2t_ErY&MhkT> z-zFgGXV)Paw2lQ8q5d!@q7>wTA&`rbRMC#MVO7w%tO|+_6pvc@f+KV-E)Ftr4J|#i z$4-2H3b1OPpcH#*nnKf&%@gRHh${RW$UUh06c%Mj4r`MgT6w*afEpzM-)AIj(m$>F z@${M_9TN_?^m-)$o0J4>ml9C#e6zlMyOeLZC-!X_LrV?apx%|Vyk3}>P!y?MRy7IWtyR~P zCoXB(hq$n{`oI*FX9}dCJjE{x$|dG5YlfS8r zvud2J8Y3TqpArf}8CW$N`RUr)fBaqjY0iJvY3o+0mvgj)x3!wL6ScJy)L)u5>}}`L zmzjBT9mEZ}&cTEQA%&odJ_+?TjfsJz{IhF955y`kw2aW(lyFl+XepufvDeTCv1iSQ z3F0CyXDEo*v!p=hjgL{pI@N?G+Dq;qo*Qk3%qtGQ=z#8Oxy*A=X6V0KhGijNcww|K zDb^R5zpzE{vhwASK!xr3!^YV4#ULHZmQn+BhqhAt7g5=$Tl$y}3`Y zxq-9?QLGl&KvCIvJqXonLWVtqQWb%;S*$)0HTpMD^E-Tfqm)Nks09M)fO!H{8Tb;V zXrLieP*1;R^*~d0{<)tc^fu%xS`zsW+^!P0bKm6@N$u?-Jy>+8!Q<2j`vL0&JH069 ztph0MOG%nJ{tKug)%b_#t+InoQ;m}&hpM4YsRmP`LKz7)`ukK3hdUjc+nlwaFrpJz+k{OwZJKg+4YIDe2wDGxtZN70 zpF1ZAd({5}rjE3C0Ew5NaboFyn2^{q2^EvHKXGgI*_JY3V z%wi<+hOU!%X^j%xc_^v~H>~YM$^&UR%_+*5j_QB@QxX5cHUu3}$0#EZphrx#O z;Mv#SyD7P(x_7d^2@3wDge6D%Uwd!jypA<>Nh8pu4(I(f&eyl0uEgWY7T^9TMXPx7 zj~LaoSBv!@DAJV|k&}@9v4PC9J;R^Q1IXz=TeA1U6t35_z-yC`=+VCy2j9bFs zajwf17eqElM(eXNB4FWNT?J_zfx4tjgs!DC^8bN-0wqNAOAK#LskrZ75ZdRY+i(LJ z>e2Uz$0~+0>gZH{fHHWqmI<(-s5g1w6lDz9%(BB8QPS72gxF4?+Ct`1a!6 zkI$dYG^XE+_c!r*2cIKIPldnvTRanX5uPJ>hMm{)`jcyRm;Nc%pDz73(dSyO{oca* z(|esq-$&>3kMk0try@nhLPwF|ODQrYz?j6kI^eDoCq0W@Gv~%F>rqL>AKd6~%5&cJ z4kw5}=Yw*dNLr#L)I}OyMrk@1wN>kp8hVi+W5n}AxTNNi_Q<7Nden-Se}n+a<@O2* z<8phKgvsUh1N#)%T+$97WM6Jid#)cyFU5+sDz>1NE$DP-qQhm#RIVBG<$`e+gh31` zWpis?hTB{ry4n=yxpb$ib`<7gv`rs{1~1GPMUM;s;;7WnuMj?Q6kKu{#U5c`EdNp*(u+7g>_M2REm)v>WfEoJ|Hkmt4_k3eL|?I*_OB- zX^tg_IVU*p`U%gN7jkx*Gs9+C9;Hos16;;qK|IUEkC?a>|KLTD37eSk8vcPP3I!Vs zj?jPOpGntBJbLsdmvMS1fJfkE$ehdY5?+MY{&@8*49~TOqUeU);jY#zN2Vx2DHuV- z92YJsLS5S0m}SzS9SUg)pC4zLNc=Oyr^Xf4_o--6DRe0Hy*d%}?GwEqOVT|E7h2Ta zvz|r;YyC3(Q4a{&`%nn>PdDfxejc{LUbH>iaqZ7dCQfIwyx#cc#9+rc(eo3S&MeqV zc;;s$^4ineqkMiWJnMS`@Hj(T@3YM3<@jEQPjh`LHxEiflosiKkNWqZU;9J378id)$%DEexAVel8VI>+d8YTJCD(klnDn|oy-4w;+)g8KtaAIFe#&A ze*dI6c)fqYzyx0}gx6FfXyDN;46kukK@~%(PN>%O3H9M5Jk@K)!aB{Emr8?!KD){= zJ%a6Wb{@=6%6C4vx#rsx|2u76dKpZTE&c7CiP7zNlWmbcVbO7NmLt4F3;62j?+eV% zk`-P7HpGy^JphNVa<3?zX@j$*oP%&0ijh;Y9P9ZS4&+3{sybLb`lirW6vF+7ob9Ed zE$9ckKb_G!{vR^nQP$wlMNUVdF&$hi%v5aLfE3BY#U>9oA)&}!$o@A_0;}hbX!^y5M@(iPW8H{XewSuPG^wQ(yuOYVk{K@eLeX6 znc^eH+bqS$oa6c2!14I&jS9};pmt=y=Obd*4Hlp81)uX_<7oQU(78ae{CDIx{M~Rj zFV$!-4cClp(eCLp(5s8E+uE!9fNJb$orM1s0Z^QBO^g0(_70qMN6|ZtKy-+rt$COw zx5D)L@ElI<+c15f&MNd8PayfNy_mfN6B?x-`JfnzjaiAjuu<+~oW}5}nsFp(VWUXD z0uQyDL3JdYBRb$MXD1NQMO|h967YRN^!t&Hsh5v;A?NVYFSJv4dfFe2ck#>pt!Vt0 z|A#zH{~0vbljcHWF(hh~5~vEaw@CjDPWPZEFwYb!dYX!iwh*dnmp_7WSp)&Zz?^ML zRSb>+H=^Ne%cePN6dPVEc712rG;c^4ZJG`eCT*HG_r$sBr)S!2n)_GwbBMs@(kAoh z^R-&(-GcSxaQW}d9GK{93u&wmp91M!1=idbRMOiUBm=OD+S)mn94)Q(7?Yt0Hm9R= z&XaVobC!-IjqIHMAOoGVN_Ng3@t1#aXu+4ga8)5Rh|tHw;(3FkS0enlj*nvV1aA)pAh_QhVNABZdV)$#&=!J7Zq7kOYlxB8nlwuRIUR}}gYZdcEDpjq zfQ#4r&DVU6$rYRMe;qzAOnWQ`Nl|-D&Q}=A{>1}f z?JosoG3x;$Pnk8X2PjHt_yrji3pn=lD4+p}*%b>o=&*|o?29#hVWSqf*HICP$S%~D z98SRV9Ozka!hL#My=rYgOO9_OOgw#+)u}tlN>1@7!SG_I&IGq) zr-p|CBxnCanC1!M=7#Fg-T*Z+*B27xZO@4`R7N<)cBgs^uOiQm6h@zMSt z=1YITFPzx}8)g6v1Agc_HM$-|QSh)Zm4l$rSP+{&Zvd=N_r2>0%q^){K%;gJQq0@6lCbKQ;dRiT}87Q<5Km9ykv_pHzhDKqF2qAFT(?OJqR;VueuYj;-&ks zmEo?CHrHIJi*c!9@mE0gKq;(Xnq>o1cO*92Jw2e=pYeMm9SuAHi#JU=}2N zLQwN>Qpybk2PhQc+&3_yA(#)=c!uor8S*I%SfYV*R|#^=;8hF8$g}&H?jnb3pS& z!z~kNA3=FeSfA$zO^3pR9thG_+HI^sIfoK>hkLWTu&ZtwEC1uTr-{u{wPHXk7;u3Mh?)*QqpooCbxax2Y|_FU3K9 z__w5EL7~1vv&Lm1_DDPo{Sw~UvOdE4`QTRf4u?@T(0>$en7?2GtJ>+kkS0}NR(^3{ zDy*o5w4xpY#9BlHb50&Pt9~guo@9if~g7X!dR0pAZRajLAUy zPpB-KzFMVYgCVz(=`dC#{=+IAuG`#tdwPXRPthXSolKXpFLp?tqdAO~P}L|1EU6ZwJjr+6ye}9G1muWGqGa z<>Txf7{D+I*LmQN#uKdpx){FC#P@b}nZ3IE~KEa4v| zVN&>i1K1|~e@n9q{|EO$_}`Wm{_(=!Na4SE3WR@R=Q!b~;6oNBoNN=}PyFnADe`W6 z`UaIwk9OwbWk``svf)s2r>X4Nn$7(YEs`e(n0>5F z=Xlu3WUJKko0YovZdvLZHXN3k+6-;wa-dZO=fl6$IrC1n10HUNmmDlZP{$JHw+8XI z93=(<*RYP6X+~rKXDV^5R=+86CNzRnXyBjjQi583i4;`J>V%L|_{5M)Z9?~zWj{VT zk%HyTf@jR(tok0}1#MZ6(sEWyeU3TRT_1X1iRM?YLNw(9L5VYs%xg+)#V%9wc*VG? z?cVO7c0+fF$IhGx7FV0|Fm>fayNmKt#>ZhotQC(ZWYcDhD8sQJueKmR1?muO?#?#r zV>Hblgw`yWQClzxjX+WZLx4A9@~GsyjK`&a>t~Hoq+f|I7Ly4opcQD*@nPA!np=O* zqi@D3ydr%EJbpne=A|_O;~s|T#VR`cELWnV7*?pOxC+xw-_vIxwBPBTiiK+Ox2IGC z6vUK}gLOROLJ;`1<72X|7^5EXr+dhig?8PpLgVH)U@%}Unv@CqhEvxlW=3NXu-sm3 zXSW-e()3<~kq+mB_d-aU_k0@J-l2$Y#3pi5p>v}KTQnaQC5j28jR#ex8qkBs&I9hM-w=q! zpSN`9{7X7aV1}x6OwF(2$z#kFY)W`4CvXqq5>b+GB3e{+vZaqcf)|7$Vr;kcQMrV1 zGF~HLQXkFyi27(NCu2q^b?+*}7)_Z+Yc32xC7q8I0hCtEqXuhN3ojxWqK6$uu?~-9 zx@IicUufLaB!({@0LD$;4T%-|E|TRG>MMn6PlESUw$_`0&`CVBVWWI!73=e~a0Z{< z`n)`V!rkP9J_|wPW%)=TOh&%CS7NxW#Bkg6d>*)t<^AMRxbh;Ru#8oeWs~(-3Me1k z#r=>d6Ap@>=_zEtTzwrMk}_*6J_b?zWBw^1Rhp%kvg}@k=KfLmbbVOa&4UB$7|bnh zT48nKtYnXIQK%NjsTB*-vBYEF!RjtH24)r;Q&TZPrORwfiOn_i@`C;srZ}tCF|(1o ztUEjNptn2c8)JT|xHmk=QHe?E&k|mW@s@ibaWHN(@1(jLj_nKB-aldwA!l2$-sDEm z_yw?7(YsD!{n#bT0n3sTpfo9Cds5a^>>15+5Y60xeQd}doK)clJ%OnhOftaWjVske znum3SoRp=p9L@oDs2pi*K>`c#r7-DgBxy$S#%^p$(AQnfy-G(P5oKeb)9#aDr2ehx z62`$VJTPSDA*UH{Zuc+#Z}K}`QfcG&>E9p6?~hMX{C@S06Y=})BQbt2>ij?P`wQ)l z`R&01gNDn0#_zGD@_2slD{7J7^U)3e1HYx?|2MfI_dbQkz8kk43B~#zin{V&)OiAv z>9v5wf2Lr?Mpm)mONC#fjdSTfqyZy)c|jh9{R@_7vq$u$Y3{Yjy?PZcN? zHazkiGC&>)WRG0rN5na|XJP!}fQKph2N0oNtT$5hFGgSqxByExB7W}3d3IDwvaf`a zlZq%Fl_d)ff9#P9Lj?IB6m{cOADk91^O_CiX%nRzP~?b^Wrq8*jR_nIyFKazKQ4NJ}#CXU-xGFjn2;)ZJm*}z3O>!v2=Ia*5!~cH&9CbGDpMLfnHi+Tk92Cr?}XharLUC+J9o3szhOK49(99zv8V*@}hap0-@3z&~!L zg}movnNcfbo0yOf_2yIzmJ{I?v?c0ddF>D4At3`i$r;G~Ced8svzPl$k%tkTm48C< z2$JMEOlQ^YcmZY@tJ-y)Q7ti#PBt;Gm6%(A2`|f~3NzISO!~Ko`Jsh5L}JRbozAMh zd|@n5K*LQrhZCLtyMT`UdV_SL7a7F>yHbmdc11YAqy^5y ze*e})&0hlxBglo&%kXf(iH#M|y0wUvG%h->#O`pK!OOlUXB#5ZX>EMCA6pmll;5+c zMIBF-M`@Nyg5*I{^xiiqN<30T_F0sDxeWX6EvPwk+SST$dJk|sfrT`>#b|^Osdec@ zp-F|!4$^e3QBvgt@Cs6&9<}&2laPowmYC)6A5DNCABQ=E&ez%h@M}aP(MIu;GJ*UkM3Ih5?xcZ^jpV`5l6 zHqvv~!SNxhx4i5_P<=D;vaR3D{p1fc{UiFY9%=%uG5@`0&_}o?!PFoi8hgXn-+nCO zYmb4I0^Ws_MFN@upC+A*PY~1e;@L5G0R@;lZjqQ|#CU2Y4wz#8Y9P-cG9ylbBsQQ% z|9V2WZw%FG7<9!{vwq-?BW`++U6?;Hm%SEQjGIGIW~v0>p)TXVOz%^#+o# z9g&CZy_r49%&t1nS(OB<4J|1^F`?h7){Qaw@YqTJ=3xgis0sa$$dQV!K%*YSDH-$o-SO%8lTif4%hkI4c?Z zEPneHn7X?GVR}j#jF|{JdPSb4K5j5;jtC#>L4lJ1>js!9i#RW*(q|z3bEYfFiwL($ zpN;gbOjj+4h(RiSKGI)dx*|9t(qy_(LEb{#?Vuw!k!I-^^!C&y8!Hq}<*{dh3KGdq z@rguY*Eqa={p(lZJHdxr3=9Thp~QPoqQs`CiD!Xr_#eh2SU)glJNxy)OsL+BfH* z7^@Ge?!;DVcvB1KFKqEB3BFP-P$nY|eKToC>ZOeyV}aC8@CYwW;QY#nz53pqU+EFP zZ6l`Fz=Q^n#c{INPcbZR;5NR#N$|{wjnJ4CDlR(THYm&@6m`F03MWp)8*|3#=?do z1SnhaiEyVs=&;=B-}Iu#GYEJ3vJGr4-RW3$?V=mu^=}f`V5G4IV_64GuGc20<1P@plPg1WjqZ^!LRI<63QjorTM-{SA{B zT3}vAPOxHe{}hClYEJilwCIk=8i*A)!KH(}$M2L>^i`m^5!Tojh{<6X@%b=`8h8hS zQPQMgwp~@n{rNE&mEjt z_%o?!VLYgKZv=bk>J_LLpJNZddY%<-ZHtNan%VnLq;8WmVN zY0l?fM3>?;lLxk#n#a6Ju()MPsyzh@3=hInOq`2=gUudKW`>#K!!-_ChP+rOA)End z2BG~eXa__L^=HjEgP?2u3Cp(1VoEj{_jzCLPb_Z2Cdb8yA?Bla27BpjL2S=L){#FE zO=L6C+zQol$s&_;2#F>``R9^@xKPJoP%aY982e`S8e>VIqc}7Jxos|a9$g0&s>b0j zh@^4Jkxs!bfXYJiz7oHWVZUK-QX08(FVYlu%o}y$B4ws`MA)Y5O+v%%W%?Bd2jR}I zMGW7;*$VUarwS5k?YEfv{}43>_ULoAQE5P9`~;1WcN9WvbS~nTjxG$OoqJdg!bT24 zd85bEaHEsZJjgTDL^`&opf)1j!KNDV&u?-dVAq(vUz~Ft_2^b&i0d+WjAw3Bc#sTO z3}1k<15M95xa*vDKBV0gb%=1cInW)Je_2*yjp%mOYDAA>^Q>KE`~EBaxx5d_Vz$wF z(GfHykh^aOZR`oudzEl7vjO=Qrym%tI1ML?)etnyVQa|s>cF0C$U|qcAq$$qeN{uw z0{vSKnGLxG+=?}1^sPJ_*xMvphSjD-`$X**Lwl#o$fe`^;`zg}FE;Q?^~JNO212tR zeIaCDoC?ulQ_g}m+)tIwdGkESy&dYU99?SW6^`i-P4gL9l6f)G*8L>L?ekg1?| zw7;5jsl$5(*2G5-@g~tjVm(d=6dTwMFK7a98lkft#xjBbE`987|KS8I4Gt%IFZLg9 zgXlIRUn|l_3PfZE(kA?B=k4xWV!Ty42#wGt=i_uJ@c*Sv*6=h|7#i+;8ruX{VZQij z5`8x#_lG}dHXlmeZ~}Sk39_LZM(|6?<0+scP9Al$C;o5BBm3VbkO(+vYiPUSIcWrA zycdy0gH@8MficG-=%zH*cDE%gHk>heH4|?ZY9m+^Nf*yB%ewDfqW|e zOADso;$KNcTGMtZn)@M||1zlnpQszqvV19;V=d8~tb~t(cRjg!0|gIvU&XF!`n)F? zGC4)#ZB{C#5>XLV8Q|XKrdNj%scEktu=CwLv!CVj2@lX}xr}q*;0)w5d=h07PbFG; zFcn9dab{aNkGQ4-yQPCD{`|P)cQ*NrkicQ#0LDtb}m1r6eCK0MlS!n6sX}kqwwi>RV`J2dj~{UWi8aRE?xU+Opr? z$ZhSs#8Z@@xC?jGNJ&mZ8G(G$>frH!a#9qKTZ4ORoP(@q;JJ1v!+mK_yq zHH$-IQUl9QgV}uw`YHu|m5RP9fKMlUrlLL@CAW>E{-N@yys9GOXHhkM_Q&)o?WyMD zKahKhq*GaU;6HhPl1K4A&*FWbOX7I{2ekefC!*|}zIvaX)1etB;ItJl4Qt4nKQT@? z!?eWdOMarVkYfZ!Y1&n&1DvMh)XVW9UP1#nwUE)!2&UbqrncD_73N9|VQYFGg8mOY zhzs_+LW}aU(0|{O7N^|^`e=CQqh{3J#T5l9MvvWx*irkS8vmo63*SzU8&nvkEeZsvrA{q&fQp5XJF?^32mZgY zqht9A*s*j_yimCRWoO67(@r21a`-j#r%3tWenm@ian3$DiHt|_kO!{AX+Qr>alt!8 zjj*Vi#FE_CC{D)NJoX`aZRbEfLP~1$v(b-nJ$U~Qc9Q#mWXn8MrMB3EY7g!N_L;T1 zdJZL{-#G66ijV?|>;=}id+s8$uau4;#X?NUi&A`cbBb*`t}$$S zFaoic(IST%{v|nl**kKYrk7(R!c=0b!4hx-+BnMNzF=!5oq-%B0pD)X?lhh_+3oP1 z#XSIZS`McS(uROqRZPqXUq7XvwKTNWPR;ePTtAugZguYkBahe1nUdzxy{P44)B?%C ztt|A=jB}NUyTEcwQ!EDY^)}+KW@9`?o^-ExJ!s0>bD|6K7x4(&_=6vmZTtilY0@@c z04K)0CK2&)DLHa~#lpP~Z@b$3LJAZ_rilYq8pYM$+xzE($u^0Ktrd@JuabYvKyn*? zyvIC$?YpK3yK_2ckX#Q);)1*rNK$cujdH1F?iGshpa3Smj0$YnGsrS_$OSo#+nk`o z&VWnvD|DQY_Wxjd0)3Ch+@4&XJai^-)?4-^&ySCnI$V09#EGqArof?B6`DP^3X_@RE;HZYl8t(>m)$$+_PQl)5E@+Zy zS9Ygec?#{yLGZb7L6Z_bleZY)yNCM5xmm1JM#A^A828`EwvB{q2rrKo;?NW-d=TF` z!LZGrm@PYxHyIz-e+VqAlgv^FvL}APKIECH+W1bq7v6IA$vh(9qN-*+XC;M3^#R=M zzoUa%>c6+x$8W^n%= zJGM`u+}Ve72nHMO#Kr_|?h))2$tJ8{#e$S1Umu1C_<9uix1xR7)_yiy_JVR4Wgvg! zUJe!X;oA1x@QPSotI(;4!?9jA$K=*Z3f+FXwe?IhKAQYZ2KI!b@$KVEJjOh77#_Nj za%Wi*osZR+8LCh#N(xki3VDDdkUJN1t!xm-*?A_czpG;LAGT4uGag%9zo_wSt`|ooVS5OX?Yu3Nw~ELRhfWwbm^D*8Mn>p)B#O*)s`(3)1E_L$yiIsPw3D692~ZzQp3gENujK+UkW9}9-j{xz{$ki{Nu?l zf_D#1gIX%X$;8FjoM#}NxM4Axw6*Z`bOi8SM0)Z^!hZS_9Tg%>&mxzpZ;( z5MBGbb7>7Kh}#$Xgf$}m8y;1L%Fm&{C_i@I`qLr&6&7)v6QakrrXzACh=|!hYp#h7&@dElzCd?KKSYzJE;QBJXh@4XIFzR} z7Eea`lfUPM`&^3jUp3yO%fAY4Dr$iOY!kXyw`4W7-Ax4pnA+QVTd`)9T4RY4#O%nG z1#ck*b5_Aj!jaKN>_Slvuv6KH*CZTTp?VNce#)2+Hw+-RJhUkdtziw$s$@Vt`pwm1 zF)%<%u-09tHs6auUG7z=74fV=d4_{=s!dqf@dSu?f?UO@r6I9L+}a;+fe}xB!Of+E z8&!ZA0$s(br|3J~LNy&=4n%OENOKP!mrZ;v&VnPQI4~XiJ8;q)`IFdHfn4!5u+)zH zKH*2D7TC~|0Inxk1)=N{Q{bskU~LlId@~SAmJ+ImOhVhbff(z|@2{ef=e7dT^QbD! zU%bH4?G$hgB#h33P&q44myEr<1nqI2UcoLagh@Uu>45Xz9|3Yjwt9yBG%qYhe$o=- zGEgsL)J?`65^s(%88@w?opE{Cngioz?1YYtac$0%QLbG{^g!-MjZv;4+~jMqU$z-X zQ_y6iBoB<6=zP5}5!PB#1+Khaf-Fxnixq{DkLu-7mKN|0&l2+VPU0(`;{F=Ra$EVc zQU3TLD8KvthUY$9mkfr8(I2 zii4tqW3VIi5$qs2M6Ug)rPdBbX4uH8r$qx+WAgMA4mttAJ3%9N($VG1kn3gSijJCMkfOR= zqFbnjXBm6@9->+!=nTm-rxtL{(2UD~UNp)1dUx1K-S0=~_i;dl7o)3c8e-#Ho^uin zk8y>Ndmc)ILntT*HU>M7kQQ6yTHVy$qK?|&pIG3UvUb?~Jm;ShUX!1xshoT+lx9q@Mvr@6#Mj7Il@2{)s)UL)KL zv=jYJxMnP4Km)R`v}ZpR#Y<%#I)cSi8yn}Tp(xKLJyj58S zYpduf+>|Bf7sNWa>)?G_A>fu-S_ab%8K_ZImY;AIeu zeu+BpSHnb*6YdY3TQDjZH?oLc_fz2U;K32|po9JyI%LP?Sgc=!14FA_uO{HMuMb{2 zEcmfMe~ac{*x>L^2T_-t%90i~;PHI*2se$dLHrdrOVEtv-6dTh&&(?N=E8slvgnBi zcja!c6U({`Tqv=>HeY&QFqT$`i`h>9mPt`-9rWEFde#xTCTfdwzZ4K1-#26#!55l;(z zXc~O3O1|gLJb0C+IkSRyTrkbqzw=nUPjim1LrUj6@H{sYPs#K7l!iQ=Zx_Rvo zQamsiP8RRJJxF#xrZwG_jjAvF7*(r~+=#diRU=#scb;3_e=53PzQj7e5sR{D=j+%T z4dkYi{#3{<<>*wC{`k)4j27j*J`sZ=_h+nr)^#;=eVc<;>$S>B2Tjm@`K30|xm)JO z;f*d>gXyk(rtJPpjNHK`N2>tk=Y6EkxES%nAXL)qsNqxB)3K(uPZ7apXpe9)&_Fhkq8y19TDGU%htC<|I<=uN1I*(`ak1x20jr<|KFJv^pBuZ zZQl9LszowG9)CQcHeFn4CvhTvbj*8(Y(h_v32)3-;`_mI3NF+_IaI)wM+`S7;tq}X zpm6E8*fn{OBlI&ZDZIF@9|Vc13EjqUUcBeX_syY4&G$Ygyup0$YQiJtdx8lcZkG4c zB$l^1bc6Z+wS2D$b%QO=@;@};!|*P);3af3pVsl|aXzi)(|D8A2d2oVIp0Cl-+) zr*>s1G?M9NjJ2~WEPJJSob_oR!>*FCr89nlH%Z1>cexL&iN#qjzJm4!re=48oc~A3 zt!*5#!YskdG>npz%IzC7P`uN905@yAk0nK_>1%jqyWQA%ZFJ1o31bH=_u7xtoH=kf z=gi*FGm!3y@E4Pmg8j7xa+at1`Ri{;qABpxF+9X}Rn&w@@e)_Iw@sMQFz*jf=Iky5 zn;S!IFbv|S_@_G9GCgbWpV;~AB|j`f`E>dj$yc|10d#;mY%jI2L1k>GnJRD0Gda+w zo+}Lb!z!LYfER4TRQdw$dpe_vaj_tWru0W4b`h+VD4HIajbx7@FCzp$X-Yh-?#ifu zY2~c^5_-#{zcyc%$HQy8!(JJo9QukHEs$3B;c5`t>nf~A=C{KJ^Bp%7E4iNOYyM1&dT$p?tF-p!us!d1{`QZof|j% zgFF3Akmy?=wwb5?E!z+=q7 zFN3`08GiFJr=K27*RpGqPYK!_FY!`Ppa1Ilv(AVKgJOgq7eKZOXRS z_%s&Rq0^#>>EUZsj*KvzfXtc_E`p*qiXZmhUg&T>6byJA1MCI(SU^*(^!|2WK7sNK z4a-WggVtcx77CjA49$!Tc2+UO+m6=}ML;x`==~faxqwg&3eUG%gIh{vQhIo*Mf$ZC z>Erm|pI-?6cD@!B^3+ELmP*dTI(r>&k9p1!#<-R2iEF^A$b{P4pmyH8*t`*kK9%6z z%lbJyli@LSR}{ko$-Y_*wMO|F8yJ`)J8S8iND2J~|6CiuZuYnowz|`mu!YX0V#JWd znNBTrYhg;d6fGWY^cYg00rYi13%Y!O!DL|IH9r6#7v9PU=XcEV9=^TUbd zH^7csp@Wj`|37{9n)Uu{e)D&vPsPVh&l%0$2^)a4%UVb$?3NRxTV?7tIDa^X={4r} zJNW+C1}E&xX75bfgS3+{(yTJ=-{&ITis$C~bjc4D>}A}NQ|n%dC$1~&&F`T39k<@p z0uNCQzDeQ0GBE#T94MMQ5c|d>-$Q>RW{w^|L|;L{rtN)~vRqt^h3G1|ZGiBrD_oaH za?b#+_yn7OmfQ_WxQBT;yz`z{SwbM~g_yel4jl~9*#-SDDi%H*dW8teUymtlQ^^x`10pBl9JIJfNMhd`I%5l%*77_`^|4UIVfQ_MAMN$P`SjsXc;(LY6 zIoXY-y6eT@L%{Ygs&n9m0skW5@Scq?Y{py?o&@#VfHvRvj@@cld+Ou*JyQ$h{mocF`i^o!Db@@Lt^Isr@-HYZ{GPc#VEV&g#yNab5Fx@{?IPp0dRq35At=r0A!hu{zAiwF%58Pg zzJ3HM4?YqwUv+g?vE*EIwK1j%OPPEHQN5jFCTcR=fd4|D9vfskUk&S0)_;>`l!3AE zta-1IHqcyb=p7Qb=g24-@$~`O_YkhRjZreXgA6R38e?P}8G@}?12N!S=1GW2hM8z1 z<5H3#|DyJYogYI?e!zU}wG9dbEcsWqWC?mxh+7p~EZZ^Gx~AU;#rphJ@s4!YwXy)VI8ojm-mJpqTK_H zs5W_dZx|dUzax=;YK#GOU)YC8SdLpC5zU9ysI%%Y5%jN$jef;dyPcIUOZ-B0jf}Pg zl8v>vZvcOn)Y}*0c-b~7KPjLVYT>GjDULX>lP~wALQ|0&;(S3JScLgBSuFbw@&e6@ z`m3oHeaX7pm;6YN469?2S`RPW-z-7tU8A!#CX`Poj z?11kLe@$EG>q#ki_hcpvtMfh*eh$p9MC(}AO--(YwF%yy>y%StA6BB@e*&-a`;au6 zAy=bDU?c*A48cAJFzSi%yor&gFp_|wj?@!l4KZjZu#A%xMoL^QPZDE>iSY}HMlGqp zFgH9<#$Ci1X=3miEns8-Lpg?7%T2_{G%;2yjC^2ph*CO^7>OpvJqn}3n{I3Eg~VvQ zo|JlLyAIVdJ~a;EOd`Cg5H2MG`VR;(Zge2R;|d{*2#|AUr3+KNdBB;ZCcg)y+a(fi zGGyBLUJUV*#>~ zmBaNQmgJ@t5Y9!uYP8!?aTtYn0X9x*LssQU-_BUsp@XWvK?ZrV4n~Qbni)mb_#28( zLO5R$o{LWx-wXcfQ3S^)G;_9JnUk zSxI|BoPu&VnDILt+}FUJ3T8hdJTiCoTj!n9DWenFn>^mgnA)YGZ~8VPoAe!&I~S>JnH^lsLGXmgMu}B z#LkT8j@`^o=GB;w;zW~qC(BEC#E{9wvDhvW9`UA%cYC6zYm*Oe;{BXd)l$r!8OZ)m z-iy@rAYEgS$O~FS8Qahn6(HDgxDIn#S%sa zJR)K8Qks&*3XDmBk(5nu$o4>caMm~zjWN4u5k%TP8k$b~w?{+YtN&;;ST;}SHk=QQ z&8NIyoilCpynrpfWj^NDdd#mY0jC+g%KQ$R-_)T@uj99ze*+^A`2;Y zO(RoSF!A1rG&S))tR`N0No|4GzY=D3-T)#Xn@YML-9*B$CBp^1(ZJr0jSpw4FcMBPCB5IDi+KD^j14`wF@@- zzzBY~C3zk;;W}3U81SkBtR6{CGX-Hm^?3=25Q}2RI@f3kcgiFw0@oV zNC*7ZJDh2}kYy9;T#eP+!_4zBY$vqBy$b(|!5#IB7HU(p!V`FbzxRM;8C7 z1jGp|T@h<-!of&JBttx>s`xC;$UtUWaMUE4SgT?zY~jyz}iy!=_O^E|&Rln)8B= z+uLJH=|gnECTS>MiT?>cQ0YJ?A;BG_= zg+0w_d|qtc58aI{fXf)dlTG*n!l@f!dCmfGB{LUAROUMgWM9i4?O8=omI+!+5Gf4H zAMGKin+aM<5UG_v+OwLVCM+{ZO%*|;e4{dzj);4HfknZKK34<*tHY-epC){C^F#eC zcUVh9F6=u*=PN5d56kF7P~3<>$Uvo733ya+Ka^2_Botw-G_K>bX2s5;vMKD!}?fVq-F{t3SM(b!-+-zDVn(9S_NKe&=YZ=4gSx8c#tGh`^x8~?@co1t$ux8$h;3;^I4DxTWvaOm zh}5@{Dt{IMpr9>-y2R#rmFJ(fJPPmt0O9K}wt|}O52BM{ZG9}K`#oY56$FA)Y^5>S zXi_E(6AVU`!9+eyAs5?fAo95i84E{QI)s&_iy!vLqR(npbTY7Q3^SSa!F9(mi@zWB zwrG1+GfwSV51w>qD|B+|bygn8{gSCv(kgW&QY}usV9THwvQ*`H&Xz|3$^keLr+TU8 zl-WvSt7$nl)oFV~s5qii)0xjm4NZ~IOd9nAzqwY@{%W^M1l@=l4iavkdq;?R`~qHmr?R&*ogjgDA(1kfv{C+n*=0NfnX10+~wWGij3J{zrcM<8EVDcl1)H ziwFKS2w}DAe&;Y;fl2}W4#SbE`W@_t%9#ce1ESb`(Brs2^RNQ)#%?)lNEKgAP?`y< zC5YvlD*k}@$B(gkLN`Oz$FILke-kWjE6p(kh;u0|? zH;JdPP{714U!}V@CERg&LCS?VGxR0OMk97%y=W~gMK{zVD+v;4Re}pTtV))$k{9ll zm7HW%GD21|GCf-KQdRU_ELu5q_KIq!ig+k*sn`K5_KIf3?%5?>kE!8yl49RrP`il& zt|s!mVyao>$q1rI@qq^rTf`I%@4WlfH4bklT%2RAO|W{JzhC4kIx|qtFEuDf`HA+5 zUS>J(qnso-{!q>c$jst-8{qV1q|bI@D;2y~?CYW$vJyR@*HnCcj6ZGjK+d)c+u$d{ z;2+M0zhEG(a&>)A$Y+UPY`snS!+9a;c*Sj*MnO7kg*x7p$$;3c;s>}pAZYC{ka$r6 zD7aKk<~cCOnG(9@WBO2|>vvP03-x!zlFGqy>)DOpy9F2c2M?eBXsQp#@Oypx3Tz4^ zHwh56lD_;y3|HKvgGp^V9#QFOwaK3Wiwy|3b!`OkkwSgH5_zNZQ!D^pgdZw~IlOQy zq}_-PK?Sh|%Ib6I=ssS)@v|ePp^tVXSod4-ywuT(#gnj2pam986iqMieB&fk3;nS< zkDO3#{R#kCT(kC?@o~pI#^SspqpSg^7_i0O&gEY;+p*~8TK~r=iLF4uzkpm!(sYB% zY}~<7;_T{Qr5^L~_^^BgK*I$cB^l1tiP_Gsk1S(q*KxR{X$&rFDwtU7=avZnKpOTJ zChjNaz7oNskWyn*BZdus1LD#K&Cr9y8orEQ;S`rKa<*&usQu2zc(>~zTpSmTld=4t zvj1dz=v6jG<>5F=y~mi3jjDMQsp-O}QYBwAQCz;0wH8Eoe|S;epGI?2U~xWoIy#Hl zJ+Q8iZU~H$TR+jw0FRFA0i)GN{jaQFn>=c^-9HYN$H~{YlE|ppvcI~KNXBuvpSN|H zlvLaPhV0+kQM17V&@*a=)KZ|Zy?Bw1GNS+~I6o2bo+Eyj31enp^8mi|s6_1fNAuz_ z5I)8HW8RU>fpGbU5DsadkHcMq$QmVX)p5C-x2NKwMBjzHAp*Z^uo_~G&iv>uYBnD( znaN#YCIwYeH`M(eWL?cqLGhRO2f@LjL^OJSjQ*@+#;Bgybf^&>{dLC@>LNjHa+6lG zHwhfe7ykC>9DTFAy@2-^q~ep|3CvHy9M7ofahKd3Ve~YSugSvw85j*0e{3ujpnNOdRn0dZTc}Cw_>kWuo6t;W4`{ zEfURX@$t(f(R?gWM0=*ajvR%Vpjx)2(-k?~;=}M9jpL(D;_e1&cKk4+F*LfT6dXk< z#!RJlwo=8j>D*GnO<{6p3xMd3l1$UUk*Ioafgg;Xid{A}z+()>P8t|<(0jW7O*xdk zx&Dpn0oSrDKw;P;y9AU$t34v6O!}hXMf}zt+!L?!{b`j~HGsc0)?Kl#`X+ALG z3Q!^s2q<%IDU2DcE$ef(sh_;Bsrfp^zpbs#ebwCLXW`<-nRzoxa92&z9DF zpOLUh|Fq`E(`$}&OgPZ|IO+CO9w)8G>Cy7-@;K@Dsc`bF+4Kj;Nw0nttfTpXF8pgL zw$FGPJQcrLT_3&-KgX0$#X3WySF|>Irt+I)IY46#(Cm8z3piD!V|3E1>vT)6=jx& zZ2kxRGEtnV$d4bY&@tHvjLm0B&^6Ye+*=&gHFtN0oCK1mPLaAMFJ9M}`U3hTP=+72 z-<`;xAYG6urn4^WZN{|AcPKIbJmYxW7jS;DF)fwO&z>#=moB!XV3RWz%@?JL%MNktsTsHK4`)NCL|!w!x&xGBMtZ=4qM}bf$La+0#3*J&!zFOMUOWKlstSfN zVsMajxJw{n4b}s%kSjzZs81*wmOfF3XQ55bxKe484*#Gw*($g7OVCS=+T;QRfXFM8 zlaLW|+5z;)>yp)&$L7sp@yeUvr`j!9g~J5EI`^MZgIi+U2MlFJq(d9J%1SqfF8VKs zD*ygSo^?zC$H}v)2H{PECWK3@QQQDDS8Y4?6qRDZ-<49FT(CP{VHIO+gZO&u9s?48 zaHCv`(j*E8CGoet7$qLR5p-C5EHUCoqSc?){f>Vye`{iMLJMMQT|$Gg1xb+-XpD}I zt!zY~Vr>0%y%f>@&Bs;+S}MEIn!oppTej22v&`QWD9Y+)@ax|iPntOG-y(F6_@>At zbdR_TyRaZsixMhZa@kmPh%vGWV+2EDKMji%@q=77w6PD1#_wzj5CkV6 z2o@wL0+FtCS0xZ&7ZQ396cq#%q=+OTcGs;g7<=!Jy`W-4uwVkxiwG!)1yq#W#sZ2! zk_Yqs&bja1Y|!WZKmYgpuIuxX+*8h+nK^Uj%sFSuCKa9{zmz?Zy_Mv`Dg1TeRD?5T zjKRKcVi(Ja{w}v3Ph3b-S$s-hVWv${v~wnx{N?P(BL zTQ4fE)@fw(8(kvZh1fn34KNp-%VwZXM^D6KuS#m6Z(j-^#*^C^T_0+ib6Zkzd^-SPAH>dk`roKG0q8P zR^&RN4iy6=B%4b8yU8>E@1i=$u1$S!pQNJX8w%tu9=`pQW#Y71n7_TEis4TYJnX5W_7M&E^v5)Yx za~0jQ204eMv$0mZ<0)zN(jV_8ReYx6xUM`-Jm1ukS1k2rnZu3D#)>Y&E-CGm*G+J! z&5fmh(=*q~xefST?sm%b3NTnywpi9 zlY%8ZZ*r3Vj#1y1r8HgrSl6|Hijll-ln+}?p6F0F4gZ$iL66BxX*QT-j_bw~Y{E9; zgtWgb>6G@TC5+`z~6Opw}#FEG^C-Rjo)jJ@oh&bqpDsmkR+d+6YgFFRu`Nlt@8 zPT_?-Gh3(S-vS)FB`CE_jMvhCd|k+o1=6_`D3E8zQBJB0__6>xyIKO69tWIS7x2Mj z0QbBlS}|Us_^al%?`b*uH~JZFFmJR*b(03Fo1IY6T}1frna+an7(zzRcJUUC_#a9S z4M^?JPgcd06Ml(yFE65S6MY3szbzoM1_lnczpD&j-7tXJnzw5Sgme`BI`$Vl?WaMpD-i3Jb+&z6@!!*k`Pcum zKXY#RTL(ogImVwUW;_3It@j^^O@uo^Es5gu;x^H#oCLwtSe36f(a2+MqB{1F9_UXi zzwTpk8sD(f_H53yV>sQ#&v}U*D=+V{D$#NpM}>4br`AmVZ|$eK<-7j)Z#(v5`4jHA z4KC)Y6`& zmw&4X1G(R9Uu8%y|HMua4@J53Ki%%X?IVsGJO8-8IrBYtVf*sR!MehE`E|3ktZ{Rh zd2+2}3+veyStze_i3q&}tqy?li|sm(z%(yDk07%5B~^a=#BT`}9)LJqF>oPlOL@P9 z;=J$R6tAd{n@pqvc&-AEx*VOgpuD$(2vg zSdjATZu>?0)jCcWJqI=HeMAMD2bla~+!2>NG>{b7nZ&{X%DV*4Im992dnj-=+t<$R z|Ddn4r?5FYx}(;5G@*Zi+Pm=7w()E2Na`2SQjl4lJtbpA2S1w%^~hJZrJa-PJMP`M zJl+YR{-Uoav;3t4NR89%j9z4L?LsozmER>9ZOc=-$mxZ&i}pdhKq+Efc8%idTlwD3 z&Jp1sbD~vrsBXSBbDB(vedPnip5S)&#j0`rPyV49ImgJSxV?gSz_^HhqQ^cD;zi(x zgz9Anj;0iK!-arVg-*2F-aF+ebx!mrJUv*6TaIbc^kGaw-;Hg>192bp%Ujr^ZT6wT zybF+$T~kk3{t7q~3U>9Dj1vm(f5xHUuS+;gfDe&p0?yB_Ilibbz>unQ`Lz9zs-vA{ zLRZsAvQ0?NO4=Z2mJa~L$|s@x%}z?t^dE(wb&2^PSyneKwXZy*ogC3yZCyn?QJ&Y* z16rv47V{>U(8K@053;M7zz>(kdXq_S{(&DJ#&aLzhc58LSvEhMR_>FGQ_KJ8C<88w zQ5`<`N|QM%{-at>m38y2F=K2#IQLAO52k3RRKBw(2v?OJUeiZhbzn+p6U24?Ug=aBK_9*E&W!I)~Cg~qDB13#a;6A$UJ^qBd1K{ z>*wD?PFUiL62cNs{I{L>UHljK?>YXW>3PwOaQ#E*ptpIV`FCYU|3u%;e~LeOoLy}q z^8u^>$x>SDSu><%BfjeMACk$=^m4p&B?xqEWwn~cejoaG^jcdRxoi0C-!UP!Aj68@nL5D!f zlF}q!T0-Fr?tDbGmI-Me+HK0COB1Q6i3IGT98S&{MA8HrGQNz1&JaMFGH7vmu3d|O zrnzeoNNwZO9@VxuY><|w*}@8!rbRV8p}E&iOS_dX$J?bhplXu8w(tzWI8U=Lm7(F} zHz?P7qhF)nJS07=XyinsC1hqaPO-6;l`luW2`(uo$Hph5mG_eIZ)+znmfn$UcPee8 z=;1OPOF zyLC=xG=98?3`Cc;Ch#;V<$LXl(uONGes|Qys#9^3kX{&!IsJe=r!!g=0YDSJrB<1a z-$`vBqiqsiRTp*w(|7zX$zLh^^!RD+qNi*|4Z4jlugX+-W$-|LhmCyv7q!6Al=taQ zO+`E0ll?E`y~31;08!D>(ic%&?5N;Bb&B!V%tPkL107bm#M%Q`DDlZ6pJ2ls}&QmfZ1=ZbSylXsxJ^%J(t%)89>`C>w zj(Ddud$Z)4lq+~w)O)~ubg1mFWY3gCUe{WWtJIrS>UHh+mNd#3T9V4oV3*eOymzMe zp0@J8N1DGy8~$mPw4x+c{NPERtQ8*Dr##EZiS)IevLhD+_SEOMaE_tZ|9g7$>-k^O zV-$e@KhvWmwV@JE4j#yeK#;PfVukQab!D={%EGy&|DiQ0MVEV)W=*_v#h)D}-sv%~ zukkEfdRnMr)Y8+^DB&qvm+VR8AcnxZ%z;iub#8wS8dKkOT=sEQd7_`%ha9S4k@cP# z>unbKgd=_>Y3BndB;hvD;#^m$r^XqcT6^Gs*O;XVjX7BxQ}%yuO!tJw2rYcVMRoKO zRX;!VMys+9tzZjq(AvUOl9Rvc+*?!kKGRJ{71_tuar*yUN48Y5G$sRbqg%YZ0vX+r z>)P>m8IZ?@N!DuVF=st;qL*whV!uQRZ;NYPPL_3R*=$xgJ&u*NqVK0SHTKr5pom%- z6}`Hz12t@r?K+yBwJIlCE)xAAez5FbL^`58Gsh)K(G_JswJtl74Ba2{WTCgzPgorP z=HJSTZk9zVx?K)ca4{)b#t(Fq>uYHr#aLZ75)c0-GRgIYE(@~URkGZbd1jX3PX5M| zwffLXUG5aHB<*zMJZC{qA8k z+Jg{|J@wQPkJ^{bbI4lej^rzj)dvg&$X*Gliqm1t2l-mEpclHqF- z$XtG}7B`YSCEH%tNLzoYBSAgUDpVNJqeiUCUm&aDg3U}O}50zMSw@SA>WgC)n`~G1bTnU9dW$RNt zeSbIitZ1;yEZOC`b*0E7gyt z2h^W3_Ks9fO_`_fmRt6F`I+db%Q>&+iBlRaVuxpWoU*RZJ!P9yJ@3T`?CJYCl+zLV zp1ovi0)J}dttU{^(%e(ZQtmeQlx3DNhX|BruGM3DdH^FnUqrr?jQc~*i&q^q{wQtD zgB|Yh5%}Nfc8QAS`C0#^qL~k%t!Oq{%xi3Y%ea!D7EvAjjuTt_{>1Oh*EMhk?82Ki zfzp(UlWO%*Uv-C~)}E5Ne|e+5JvAIm9DmeT-TszxUv+vRe=-ZdubAVj9#S+Tw`9^$ z-?e|`nb1>U@?Bdq)`Vo^Z9z+4b;rVVUv*~_3KM5hlcdf?JhWO$#6Ev3)qA4;y?pGZ ztQjzpFxpH_`E|IvIWFxz{FT*Q_UG{=QogVhyhT0!TO>VfB-S=+0@)g^N@}%lv+6qS z0;ZznG2>a{?%|DI;HkmCw&cbhyl+vHRs563JaeRAZ*DYysc6Ny=&ktfFf`@v?0oxT zTlwXd9FSgxLS(y4%h$CO&OUGMgK`4v*Ye+AWrL%n)p3(w#d*scL9|5|E)GvUHkbrN5R}y(IlU?~1TZhWk(Mlcdf8 zUbT=H%NNlj(YI>yOXVnD6MUJ8?*i1UlpcS+^DNG_pu65zN~MdVE-tnE`eYTgf*p<- zzo=w*O8UDB585ZQ6Hirj|B}7ziYP?eV)ew4L7?2~L?A9-biU~Q0<-+MlI$&kBMs*@ zK&$dq_G5>oWS~o{s~rzdw7yy1pk&k*S`w&gIPW(AIf+=aR-|5uhZ-uA=TXpuH@q^r zV3_X)SHGg!c;LGq(no~K4fM#Fv0u)>)0$)+jjYZ4<0MhJ$~;S|Y% zmb!CX`#ld;oReq@uN7}Zf?wpPdae~S^!K1CAO*G|eex$YbX`^Re>h+B}&e zCDVoY(R{R7`O)>xWJl4Ql7^Omi@;jHy6yq0@00X)S z9`gQjibQNC6Rcu-b5@euRp%YQc#$j_><^pe=Z0#oJt=yGW9kw2vZVe=Np03voDd)H z<&sjKoPnGzDR9An4RZT_k4-giwYO&T`;u9gzj)-z-4={39E@#tR-6b#d_A!7y=l06 zP?FoWCa>?o`8>a{5oTY-l0`@!*UHN}Xl}buBvVOFTbFD*dP^p@-4J%1)k65IDI`irDUF9b{C;O*^mU1Vf0WM64!zR66LXtzw z@^bc?{(bDvNcngcI)i{LTjLW!EdLRFijM-6JTAol8^7^#&U-6Ly?*LdYAhUOQ$t!9 z%~>y%L-37K!UW}UCAn?K&zM8+jPhBBZF-C13E=-o@67H0iQXwXT1xLiQ-{_S4gc2K zHqzSd-~Gqd-sCGkahv4cv^Y*T4|Gc_-z~$m@RFtW@z-nX8oxp5VB9|?_hUZKR>PO= z#s07nqakdRA-zxJqM=&Xu>SbjVWJF&iE^TDZ2vJG;2?TbkWtG$$M#5^*7dYE;8@s1 zal}cld!%|d;-CCyqF>3ggb1uH(s=o)?=?f*63peNrSObkb8&ZAs2e!a#@y~ZUHG)< zMZCrxgjsV-ig{${%KpSNh%*yzLg~baJ952=OiHI%N%Qbf%1lZ1s-u&8&ovQ|4DRVB z;+4YFOr$waMYyM$U}_fi&8E1h`q2^HYKHW&?T5jt;NrzIClT8Rx zCizx;=Bqm1M0!!oEZK_oG=98LtJwqiD{8)jW0Jkm6NMn-OvHZ*6%90z$u!8FX~HQ~ z=3zuTIlqb~CeS zX5;5hlV&!cnZPBbZqdhu+zpLi&a+v?b}xl0vk1ya6&&V!nF*cCpm+Z=H~Nz`fD4W8 zq4cdGUs_PbkwJIP;v5s~b|yFmZX-J1M7l|Kfr*q$_B`Y7NIFl^WCF5r93u*qk}A@) ze%?J2AJO40xvnkLt?MPM*3#TwPQTHA^IW{+4a@Cog&tC~_E2h*x=U)5+6`GX8!6%bL-_^Pr@ zxVlmT*~b5Rs!Ov1YdGI(oj~gsOmO+C^G#%*6spcKksVAVUp08IqNCPAoHvR$*F@@Z zFu+&E)L*3Nye2r4=Q@2=xh7B|o%*;U-nMptO52bdN!Dic{oImlShF59P2J%hWg_ip zh#p_YzGccx@T!0bdtCc#_9RT1JQMEg0o7$D{G?2s*(SXBGQM+|<#R+djY`qUmEs;_ z!Y7j=kb6h+EimD&EJ*G`6B@oyAya{5kWwM>5EH(fL_&ZszD`3|n()<6XlS|#RXt6+ zcd^hpOc0R%zyy!}&esD$c~Zd*0VbS8e1r-7(O&xhlMSD5!XMLbm@RS`h7=+B5?RFk zU0LPoc8^yirO}ZFh-@(VKR*FX?tyVi&ax>Pjv{7ZQ~xjMB}~P@_J+WXj@KBOEO3KO zxDrNik0`#xdXd@e$Svu_B)Ad2L~=(SfWr};;Z;0z;_hxD!+H_#YWzo-8T?j&Oxr1a zVqJ;kI*6ZA#3npaq{K)QY#{0RCUBVy{W>ew;P67JWvU53An?;n@LuB9S+qLFX=hVV zIc@fFHm8N#{UHH5mjRdwb^^dE2BXvb_{@r&PY#2YX(F9r`tDy6PB+2&L!8v$(ZQ75 zdQw~xIvt-aQrZ>*%_XCpwJj@O_Hnc!ZWKGqq%;~hUp^JJkjzw*sC!GBAf z4qwTbT06__=1C1Syzgf680U#xkFXcR_M}*OMC*>h_cqeVo5C0@UtK%!W%;V;>9`4G z0jogW%;klAB;kUb?k-ssrcDw#P?AqZ)UpOxEHRz}LDazxyVGAp+-j!t@g8Oki4#g!qWH_;?UYgDqYY79aN+Nca^2(PIO`BMX9 zOyD`PtbNYN=bG@%!lDrG9#@`4SYdI@G;?Na$6b`yrm>UjSAYJTXBE1SiF|{MWIjaRYRUI<zeM^U$C@WRGSGz6MWS79!j}rpDJHbAozf?!>@mhy z%Irdt9Xg+HzVYA2LSk`DQZbB1fHM^CYfSi5!7$H+ykJO>g-F-o18fZCf`KL0h#(j` z91OzitZauMgs+-bKaSj$MJimu}z>PM6v7}qp-WVYwGwsO|J^~91zKH@i&;+JPW6OZE=YMW;6|c6J>0U^B&APu0=v zdgyr{Vx4#Y5>2lGKe~(FBVwg+6kj;wa7BVb-Pr`L*-9hd0EOs}W27ftP2dN_1lnG1 z$yKfe16;Bqj1eA1>a+))r(`G!?C}dO5=}aEV_zY27Zd4-&=rSkfaiactUFlO+_OyN zML~I$31zJ#@kwb6lzocC63<)m`)~duB9e|H*L|IdJS5Q9n$V@KNIbNb$Pg2`UlP$n z-VzBp!1!0oH^+oNC*N8oks=d$r#atwCbCk#*ODiDg4SpgP=hL%`wK>; zGM9_{Y5(rjR?xo}G%%>3r&Ugfr4oJ+X{{KEGIpCT0O!+9MJHs%eqIYq}O3r3|O z|BE{+&QD`B+oORo1?{Zw2uU~2>zb6bIMd3M2`PmCTp=L*K4vBYR2Y?Bi3lkqi{8=I zu2h-OJNo+&Em@G=AfdluY1<{}TdacCacikf@Bn!F)hA*~(tmfz{q2w5j@g}kw`JkO|qBtPv zzcn!4*z)+-@06$*b?F%zLM?oPK0{eA6Y+HIy@*HDmt+z#46<1@2m$y@69r^NEXz>C zV5sr?XpGgRJ`;(tI4r`H7PV~?$0JMW028q~lEV@dYR0##36B1q&7?VSfv;+YiM$FD z8O(_HGzmbZE_);}*#su<2k!=r%5o{{l7>lo#A$=TM@!q>J1Hy zrPKu)Vvgo%fH_)7z?nC8sS7oSVZK@egDACFLp1Pq4bZ}w1axMMc3Su@3y9XWS_7jg zwN^tcbQ?6lO7|5~xb9S#L6$ug+L~jhLJ6d*I~8sq#j@Zn;n~?t0pZ!U$SNV)f?w;< z`a?!$M2@gLtnilgiLsy(P+l=oG$x*lpxat3ln44ES4ht(5GimGzGRKdXh z@ipH`SeR5{6`~NiuQp)?Dm0PHni5C!ZU#sP4N1SHzEFc@`D056FDe2PynAil`m9%Q{pIq(=OC_C~XD6Jh% zOM!FBz!HVorE=NN6D(cnfi`@gGiAzP7$w^xZT&!|%+s2Lc6qBNpNmZHNy z)nR8AlX*gCR)BP-nb?$Lhui)>R;GqBV!g%cfk*Ce@Lgx)3%m*@tBOTXc|=w}Up4Zm zi>5I7A7DU~xGW5}$M|y6R}O)PK~{Feg(>@!CZaY8sVP$9VKCGgm5#AOC+b+ps5H_f zMx{anjEdL@2r@C-Sk+RPLg=c`(JDf$Wq+n>i2m^_mXbDzM@2}p(s)!rRDVChTU7s3 zVzm!)M)%b(ohCn|Rf+JuLz8IoY)zugi&QOvC&oFY9*VL5S`Cb&)Hn?l(E<(3$50`l zg5K+tnxi>zQdk3CO0Ch*bQ69?12b@$5>P=u!YQ>`XBeey(KdooyESQ!34f=7t4(N$ z@?Tu%8Ee8mvf#6P@v7Dl^kYou*e(R;zWFxc3NlC zjS|oEzRLPody+8ogIK>-V4M)K4lW0Nq={saUE+C%H(E`gvw-#|7lS9V=S03U@QVxd zZ{+x@(9+-hLITut05ODMlD^eWoTcZ)#$Xy$wZ|ZGsu~DH@=fq^A@({R+woOhVZzfC z83Xbx$W%76nxig~%TjQAYzBRx0S^W)w6O+jtk{IxYiW$FD`KTtG2^9&$4cL<0ai>c z-9TeZTx+LP!_4iV9XUn1VkAH%J-0h@d6tGyEhNoK(OzJ&$1#VAz!LYI zgWLZYDSso`X5MgFCvr{2XH$T5L0$+BJ}CYqr|gAp2m zd$&qi{BSvrJb!+>)84y3lRysgJfcbXCa%yVd=t-UFIfhMJEiW{nM7@68W>Kg5gI}Q zU7`UbP>?{KW$;SPq0}uJkY%t`Lo9}CLYl>}hmhuJhFC~*?WYcDP`JNALsGIv zwmIaPr$j;FUMafGRFauDh@Ur-H8j)&`cR%G)V06M_QmXP*%7ddbU&&gFAk@}$8sn; z(o<~l!|M3v2~^b{J&kf?Y$>nxq;xf*Ko@ey+qpEPgN=VY91H^MC0(GSKEmHVL{e8(Aogehb7>I*(tKO*a_sD`0n-GW$wE~j8) zS$VMn9}+$DXdh|FEY=VTCYS^{Cj65`{{zU33wTnw*Z%6X;rtHJQIGz zDKX1+i((q+OH|ufaBB=%aya~mvVNl*z?Jc~;ig^M$*DZ)? zdAAhA?a@W*!|gFl3i?^4P(&ibq^E1mp93p*6zpI~frCvl|9!Jk*PPYq>; zg(hn?6AafD54M%UViQV{A}yDYiW_HnBib4L39;+))T|J9JQ9LmM4ixG^i4r4#1j#wAnG>JvqXcB9-s6eV! z#jJ~dI_8MFt27|i#StYc)d4mMFS$jZ`BYYJg5Og_;{pVf><46!m|*xh*gB>*Z&4%tyo3S4n9jv%(Y%FC0IS% zKqsd0qtIBU@wl(*%oBXG4@wTR|C_Vb;R56B2wkFuny=e&?|%xe=o(wOmiZiB>-b_+E5Y7@MKfOUr?i?SSI7KySP z{1rUbN3vEj4fd-l#Tpq~f&7~UjA5Cr@Uj9;(Ii%&0h+`LbgR7rB^s*5(_r%s#V7GM zy||+ZUA7j+Uy^SBD%Hm{nGEFm3|1;aor_xMMawO>osM&$n}TQB;P>0f?46vX$zAN^ zo9$#~l@~Dq7G~8&r)danUec`UDrr6X_=DPJ^l@28>$oph#JKf$4Tw?a(-4Z-9U4Fp zdxwDX9X7x>8G;jWb)V)!nnfDG2KbCD%hK2^HvBa(8|hC#`49baA=K8=KkH1ObTt7s z0b~^Zt!e0SuYM;`=y5Y*MF$n%q{ZHe75i8Ng9@&-Ruhul-m4fpgneKcYb+Zf-M`$3JX=%o{93EV*)MsS}jq!-Pwz?3o@;9UL!bo@!-PdRtJJ5 zo>$eTJXMk}EFPZA*{8#w=DI#T=6tJrNb#laF2y&xTNkIh(+eA0gHtE~&&}n_5$?w3 z_6@KNhoc7R;i#H*?hEIych4@qlF1qIGfpBcr@HvE&Nq3=k(MTS&Fi%9{C1?XY5aub zbC#=J24AlU3_^!iNo<`4m{8&X5SqdyW)CWO5|iAjIa4RKY`VQI7&txmbbr2AGpsa^ zLu=NwCyC<>D{a8{N)EdWh_xWJlCE1HfI_X{3RKv?Ek$o4LYOMB%d?0Bd(zyByud0U zf(NM=5o;wXf}B;GO6z@9*CCVshO2XNJ_Rz7FBBkzIr9U!!DG+P$LS8q7!0i_O9<&Q zhmdU1v6=p}5FJr=_0N2>O+ez-l#Q__?G;&-&63JT_n{cx#Twvv#s_3szYvpyh1cSoXV_v(Z}4dum@{ZJs$TF& zJcqqG`8_F)TjO3~9p+fwpyD=qbH!H)ODulX!9ltSoc|6;zBz+_RN^!5LDLmdD`DCJ zYn76lpaF84F;jZTM3!A=m^{)6p^0Q*v>tNXZN-v3Wf5i54+;C1CEFK}D>9%e=QXZs zLn_BJYu0o9iF1RC;S95+`=Qi&oOB#?l9H=a@iu@v7Vgld@Kdyb>INn}`4y0kE)yP{ zku1AuIG@s_HJr-(RhTRV)Ha1Wb54(zTjp&UBpUP!aMtTzNo=|aE|FM1Y6g2d1UVu> zi|mp(dG`uV#Kgy^+qehPFY8^2;G5b_W^7A+Kr+%Xyw3q2x>vyi!+QY!>p9vHEX}#- z3UmfjvrM%H_zB~C33E;P=_$mIE{97s!1<(C$+G?=CZ`o!inQevL^V=?BTnC8-sV{5 zT$|7=!FN7F^V#&z<>U=~$o?ynJjtEM`4k$g(r=6PGgMVo6b1esTB}>DRjVYxQP4}U zdVE#5Gh_qX+Cj3y(nv8f6n3-1q6i4#r2T;kP+G6VU}@kg&0&H(t*}gxlGOqWn|&a7 zZy_1oFcmXA)iKNcf4-!wx?r$ys+~A5vrepOV$1|u&yHMPG!8E-Y@%VW)6V*1Qpr_*=f%X`g(Y z#AD-DPbdy__zg+ssBA0ZCiEtm#|XmWp$u|NJ;BN!fN;@!@!N5T;bhOt_dD2+`u?vnf(v%)+W0jQ@pC!F%uvV&dhQP`4dw3rhzUGJS16HNdvxbD zrmb{l7K?gJ&WzThJF^f&zAEr`%#i@cKg3^UZQD(OtBOw-@AbUrV!c4f)qg=Uu>M4g z5ZZA1);|&m?5+A*ZOm4iQry(;CZpc$0if3lG)v>&4l#U)nyUNBQ6i#^{K6o{9O=>C zWE_5$B3BpnP8cer%^5OO*cth!@?~)jFsLkNYHE-k_}8lx{q{F9VH4jcu*s$!!X_h3 z=-<>}3!>s2ozGt7Km<#V71ICwf(xv(B&m8HeFWGVNKxtVzSm-{o^1jR>8e#l_2T~w zf2%lPkIYSi9VZ+TL#_;K4GoyqDlz(K0M=hjmbGG~vNb~C>E$}_6ZpTAiHraSu5WE3 zZssYWbQ9`DQ)J@zAVrRA_@CVzx7eJSgM94*b%5_`B74u&5cW&AKWZsNUKbO(N!HR2 ze{~SGrU@dp#$lwh5xj}%FWO;?RK7X$T3Ibh30#d5#q1RkIqwI)>^;?dJLC!OLlYA{kflxX zSns!?eONF4A{ba>dn*Q(*h>khYDGl^$z>rpPjjg#UjtOMj4bOOjm z;ZhBZEhw-i5wfQpR)8uI94;7w=)o%R%S{MtN-t>vX5&U>Tg=8+2q<1p@g&82SZf4t zJ;jU3xGRm4sT!kXeGO3ZO9GB11_RcEiX9M%94S&Ji_D-Ogw8U7VbY^pv>5v_YZO1y zBp_%XaIl5X)dn$-PL>8`r@6C>uaNoO=6jl-U2v6EOgR&}qb-HLeu^~Ak0(Hklh0r1 zB5^L9rNn)3o%D!_h%)?MY{YIUm0WuDx&}~&-yqBCOH6qB^Gyf1nUyJ@szdd zP#JAPw^vBR5)R-6`-&Q}-=1=qo;v}h$DD9St|eJ*X@?j&;R@wm7M`Zmro6-wvxYV+ zy$@(EElVd?9eK;8JA*X_2fV8JaKLr~F;1+X?38{hR(gX5WSdS(H=s04xz>aS+Ks|K zx{nY`t(-w*yi&>Tq`nWtjCg{Hr<3>N#_iTnR})-E8WYBPtTB`t$zetM zevHC`m5#zlK~#-ZcBudS4Yryw)&y6RWHn}^0|*ATHz7L@sr{qm?Or0Cg2moLBI)MR zw<4OvUh)(lFT{#;;~1Isk!Hh6^|jAz?fpm!jnVxqSf>LbbT!RPFK$8&xw0`g47J@_ zZ)uez$lh2VNqUzg+QXLm$!j!(V4F$EuGK`oYTyuhs8-4_U9JJ9#Wu36CpCtz>IMzq zle>t3PADvzJ7UB1bZnU3&;Z*%A+oI3iBUVe^BC^&?=#X3IEQORHz|dgcapfka{-wHT}Q)2WP|liQl|#X2-E#R}nH==(3w zlu^=_QLseoCjny>eBg0Gm-!U=ci-XU`zo18zaqS>J18O>bXi^aPBoFA5USn36hFf| zLyy(u#Ahs?izYM;btv-snS9ZhzQ%eop+lcx?W9|6Koqz5=C|OwUEt&sG%004wq8Hn zPy4$cvXu%J%to|8R2z4D#H`0NXtnLa?p1JdUg8mk`5oQ;=Cvs7Y^~hMgM)vF zJ8NAt;XQtazBD&l%3s-f#fQ|dumOr)NOmK$7kFHpTqrnE&oIO)S^gN6y#A)BkNwHU zUX<-$A{@cyEQ2T6SIJ=pxdy|PIB&F6ZpHb}K!3G{fD@KtyifgHw-$b-kG?844s(=S zFezHXKX3~taygb<4{y^6_IwfB`y>RU_0W%y4-BGZF>S0=5^>c9-Z@TqB+A6NmLbj%ule{XUzON$g?gIO|8fT8ww9yq8(*c4fs}ijC(VH^wKo}UFFPr&ZL^j z>Y!`FqZ&Y0Ih8EyOpVPjk&$##)sN=yN?#$$3v=D&91~dCy$%b`;oR&f8|tK=>@KbY!Yb%zM=k@0ST53MZdP0%H0jJL zBVX8eB4@OP!HXb|br^Hbomo_$Q}cJ8rEvbL2cW7v#sMqL^|1iP+aB^xnzBX?AaXRa7>JWDl38d{y*kIx@mx4{0O)Sviur0rRpZ ziU;f(Al^r?h?y68hfJ%hRP&Pt@kO108} zY~)<3A(rrd8ej=Oi2wr=Q)bY5wrr+nNZ}Jc0iT{y#hUdjk_hUk99cb=i0`@vz;xH- zbQ#BX1Z7_(3H~&}w*0jhG)C;)$)QBM$n>!?~zbEYx9Iu$qPZ|maI z_zUg7-V4Edzp9c0+J#a;6Q)(S z(6R`s%V~h#78_f94r3R23o_b$M!(r0B6>h_f-`v;DdN`R=`!mHK*htbRlcZ$r-oxi zX~tauS~p4#J3r5~kLA#-b`O(tjR@324QWgXTS+ma`KA%JXxZWbEU-fhY; z;fH`>at<<~F<*nZ)^Nm>`~XqKJ_fH2>MIfqqdXLlS$vx9ch#vj5Ez|S!M=p76)$PD zOL4Op3}#bn$$8Pv!A5(6P%Ibu?ULLDq^U<^gtnQEo>8}{!?}Az*J&z3<;Ab+H1$Fg zY9dJP-R6+h8nv8XjR;vx?_*U^A-n3I-Rxnq)@)*A=CgU(Ujhv4=2wNn80N8)5kD=K zwn5#K5y~VZ4qwzH^ra;lKwtWrfX=&^=q-(v+Nl8%y`rnC=>1cZm?Yb^6#o0z!RSmK zXX@&z0TI33HH7Hxp#em1189Wkjp@T2Q(J&))pj@9k(^YMNH$tKvy`Ax5rQ8)>QIfzfpO$tEe2!w41k#)mq9`#cjP-HqX}KI4#Q-ybz2(} zXQ3^~7a|nxKufryxG}rg0&s+(g4}!#-105)4*`(vacdwAXXvb>XM#Pi&~e>zqrbbK78{x^y~aE^IarD( zV2jf&`W*VbJ`nH5Q$%JB011o1PRV(k95#qU=Lw?kZU=DK!db0CwioR6#|_w**XBXoCju>&Q_ptHJA%OzEpN znbNB>oYI)(SxubMMX}N)8o(@HA`XW2#F%=>$`_z3A*5xSA*v)38EO0nxVC5A{|S9# zIqQMKEz4QAPAUQtPM9EZ~FBmDhf+A)J+qxTa;@ zLsYKb{splFKQ{}zg37vhC+ReMqTq-BKbK9L62`#<7jUjEuId$^Dca(9FrTV^ zV2~43BzR$n3_De>Vl;#o&e=qw}s-CV}3|(NJQ>;pgA&d8IrP#VYTKVO; zxfnWolwWV5Aux~PF%WC>cffNvDOWIaHpx>LGs@Q(KmRMkV&3KWm7bYH=A&alx1q}75< zaVUqMdRYQ!p0^ONU3-o@@+_g^>Q^Kix5_UXz^ziYNLw4b=*-kxNERzB-nGFrFhLpM z8u#mn2~Qkt7t$0V6y(Q;Kj>`7zmcJ_9_7 zASU7x%$wfYW(d}oz)B}VT~G+v=*}mNE;6x>F4hoJYxo;7wuxSJn0b9Y z&F)a#1n~4?#_y3uq%29VxRwOC{1v-==c0@AN~W_5Jl7S|)4I*Oq_81CSmXzxmU#3y zpov!xr@o^Chnuo*@wqg-_;g=ogW|ctbw!)44Ya(de=S7!;;Vs}KipS|?0=lj z_$oWG>v}!!g8j=^$*R;&`;72C3|UNYx#UD>O}~O$Yq3BiYPX4WJaE)E|1Mu8E65$d z3+?h6(*kE)YUQpnn~FcS?ATsdafct z$Q;F$PCpr_RrWy5QG^WCVpeLryflMVTMEzRk8~&8T?4F=^A+}LJYoc_G5q1=i1_B? z#Ouy!ViJ@J=mu0yn|~&tBhS;WZ0do{iA^_IkbS=`k_&l3GUbUkpEI)0m&A$;S zxfvH|C=KhY$q;H9$##)VG04%eq+GTL~CieS0Y2!T~66Eq-?scavmNTlDs8zUEXLf+oe9W&~0@GiLbJtsCk{7 z!ot(77MjBujrPZuL(i@%mf1d7A1WJ;-oHAy4h4hTLw zkC(K*q$z6gJ#-R)6990oR8sZElSoRE`cTCx>4Ru{=Nf<8)g;X^!RoIW=eD0oesPB6 zk+x6L-fT{%I8?ETGGeT6X{Kcv|F6g$AnqHqr>;ey&nP5<$G`h=BE9X0X6#dO{YjA( zrpJeTnY=Hz0sL|Ph<{ZcHj)})@AU+&-J3|ql7B%84WHM;s%BMldyxHun3-t5aYb;5 z34Iix#H&&w&qStokQuoV@Wpx7;S=yv#{A54SC^!E)TZ#6v|Zp1DNPX9mx{pOu!UDZfBuvUiQ zcUCbgifr;#vnm{*2h2UWD7s*P-hs^n6bmboMAasEM0&_P7O%TChEm>=d|7Zsu8Dnc zJ^HgS<4pN7h<&j+MC+eL+?xHEObeQPCODZ>)_jycge=NeTT%$IPN#jRY1k{0W=-1& zBF>tOBO-3bH`8p=bBgKtAo-~aN#|tDNoe|VZmK!DJL_=F%{Pj7|4$=_<@$N(B!j9aL&5z_>^pgGkdYH5yQC*yG=cPU zkJSY57u?E#(@Hwm*A98vF&1O{lpIPSuu`NR927NRO{j5H^zh)&ERy?j#1q!h})U=^eh+4j1t07(>yMzrw>lb7K zARN>GD_uiq4Be<9f&1_Q{wCuAKU^j49%=kzMQ*4>%;v32M2s)~UD=_ctyA%=!hK?0yc-bxvj?Id_qS{glLWr9I1!jS;8CHt$^Pk*<^(UXYfW`Ewc499_eVi{QRH5 zvetC1aW)Dd1r>SfN5Dlof{ymuH(q)jf;nP0UgRh^!hQ-92et^#;cK@Pao=ASs{MZ` zvY2ZhC-OI%g0mk-L$Hg$Y^)12h`q@;3}=a6)kq540U|FVO=ZThIHpU{yXzJmh!q|$ z$_bKBn8wy@8%ElBcYVro@Z>SR@pfJ#K%TmYXhW|!q5&ot7MQkwgJ~Lv!BoCnV3O*> zVAB8kyHJ34COM=#fiq`7$t9yc^2JBiO-ii?hAAET2F{bo&PuyK;u=jQID~0gR zGtqk9gdV*nJ%aMf5__~=aLxy(KqZiVik)QBK9o<)I?aXRkpM-<&#Q%k`dx|fPzEBC z^CWpGVk?BLGes{zc9$wLbLvkKip1Qb}(4C zWt8k+TatF3{SPI7ZcE9B{dG$+&h?y zP71Tw^%b&XgMPMwN`dbW87VIv`2ih<85VnHllw(_YMu)vj{)S)oIgkGg_cqg(C-3` zPM?NOFNaR4;-?(Difpe|5qV^|EWX?kk?oFo)MwpQOb$erU(ZQcxT)zBsezi#)|z-y z57OyPrchrgcp(K@2tjE>*S&I`M zY*ri4xJPmsftj}$8&yQji+rsHl7T*cFA+|(O46Tjj?DVdzrZKfLe>mNp$OM((9kp! zs*kdwPSQLmpGE=Mrg{1S380(2p#jb>-bj}9Ix%6%uXr`g1izEF!#Y-~Z6;^A#)}2I z{D?;#2|HK7)ihn~VZsIgN%qv-977&vip@1kgeN`;F3m{Z^; zQ3M%5jAu?~u+7_q8Kd{ZECSiIrOMZdvtNc=Yg}X`;(T9#N+@oW90oLW}2b4J}El^<0xRu z2zY4^7)@w7EloHKFr1ZM`2GcwZAetruNCsXx{!>QT$ZzLB3X77r@byR8V^h^4yA@r zM#wUWO!0iM^5mJ&Xky||t!T(FNXQN0^O0VJ5YnfhWY0i&!k~A8HQgLlN1_~{r)PbUzsxFFIA)3T>@+qGPb5dtdHgx0UZU0yTmpIsX*SyIX|tY!hm8kIKo|{uKB2Dp2jT*`ep( z6O|x-%Ykkg$|sx$hkcK7oQQ)14J*%BYl57R>c z{}rgztkAMR+((dk1-a})uWWvG0wlPMLsyPv)=zdSUm{)?&O~mM3B&SOLY{r3I@k%= zigqZM?tTTAakw*f%UF+nPK(2ZzHrGZ?DDNx?W;O8?{qowXa`%+65NAp)iqvb|42$J z7We4N*rrbI9C~7VFpycI z<}bf`#JdC=7^TZ)lpY2~tn&h@6P@|_ben3|Tt<92?<>pj;{K2yzv2=>piip9@Iu;! zv`RETC~waK646;g*YK#0b&+5wG7-j|{oLXcC2x-LPhwqSxw(Y?Y`Zizc?yjGJjxUe z7SkCMJ)et?tbngBqa*mTvT0;|mVG>rq6TPbev^34WD`6vmz+O24XLnFAME_eEE0!F zL$P8nmfns;6;H8y*_&ptv<4rEp^-vdmVUaF4!n|xi4lKP&RITNLc!0h;EGu|(__Uy|b+7F;qY+p_dHDCLdr=eEGSGp&)#Fnn;4!-=%z zq}=bstqj2-i=`A?9bG9utK+Z!p7xb5rP#FCaUm48`>z3h4_QLm=;v}LWF#{Xk=YnR z+Ej%i-xdS53@|%oO7U?f__Gv!jx^TwV5tB+6bE4aSV#nVnP7=n3lD#oKzGc`Ws8$aWM#9)henZ3 zs+x@~=lzR^F;^$a20`FdDm|NQUlqnnUuwwZN(tKvh*_G^k{s*>kNlq1jc@l(^0|59 zRvKiYje)hke2(T$DsCq)JUs#`S(5G%l)EJ((*)0u#4d&JTbm^TN*783!#PW!mXRoq zyoj6&Q)xBpnYbM~x?1^E9erZUTML1<_pxZ|TTm-|!Pv(9u+}yegTAU{6F6r%Wn7yO zP1Xq%7a`Q*X#{tsHGn+~WtMXbskmc7Y`obm7$~mz6x1X2I|5{#J62UFO3T$LF1W{Y zR^U4mQ}Gv62hpBxM>AyGr(~pvR2CH$Ib><7HNFMS^BtLPA`9snAr#$QqajSfi|t(M z{wz$|GBT2M69_;K*)+f#%C-)6vaAqd%5FJBs|(zbm6Vhd-C#X8oj6kS9+2A_EQGHo zUefu}K#WPr(fc!S5n1%!8ulzimc8C?(&0P+^Yrl)SrHjutE~hyL7T7S$6qO@bwJS5pWIztmJ_^d@;`QD>snLP$aD=7|@8 zqsU}Rqd46Rnlzyc8x@79C}c8R zWup`r+kfV58baRhy@{^M`v7wMf(cl?SdMGdOEsZNmJ=I^yiOjN2|i)lGeO4}jNHyC zyNk~KvY5tm4sdBH-^)y>H*L^^Rn{G{BJn8p_LKSYCicioC4l}I#VF2G;v0GuF7;Kh z&yok%G1mIR$v4k}_5nd#!0S{}m|d?EY71kL$SqR36rwnxOr`*ng%GZiZ}vtR6PZnd+)(-MP$BFMMo z55SOix<)a7r&0kKv~U-bo)9f)CfjWD&~=!Y0``s#7PEWUiGGF@ah{l43_DYlKr= zq9~6g;=4YL=a+|Say{Yl3kZq>&!T?|2GqA*d%qE}&XgPuyuFG*k)?A!`vg`7iP{v{ z4QKW=;Ev)e^i_^DkyilJSAe2WR#JjK0@kJ{Z8CfYoLIi1-2EsxIeB`3uT6>JCNKwS zXuS@UP~!y$I)NPbk#vli9Ud-a+KdAmhiN_l8@`%<0BbK`Yp(u(C_4}ED2uI+69^C> z@Y1VD5LANFR1`33LfuG$AR>y5E?fmPg#{H^vbzbJ7)9*m+V$$SVdG+_3U+MR1$)NW zPyr!mzTbalce5M#p8I_~57~FxnKLtIPMh=2OEnChmC#KBqXV5q6wAili8D;8#?|42Djj zz|14x<={DKYpYJFR}}-Zy{Zl;A7^Y?AqjaZcfm&pb0MDJGsmT5>w{=xxz>U8xf#*I*%6ceC-kdb_M-DQOCHCbh*hw~7@W$1XgW$Ny>N zC{q!h3>H>~mNDH3#F1{V#N;C`jAL3`K}rvO2r0G&oQEzIgvKJ~vS}iKB_idVCXSTD zBIO0-0}z`agU!biPL*0#BnFx<5{(j+(e`v}WqW2L#|z!8U;F?s!R*Y@fWXN~kj6)r zbu+5-dD1orKfr@IRdb1cv-l@4lcpr4=VB6EDNITKV!pMy&h%r<{K{e6WjAH3ZU+ln zJBRzSRQoXpf2LP@X&cL4aH)LD6Eap_>?oVfgS8`o;XcscNvKpjaqc;06%h7_9Jz$@ zH{p*tJ0JX$86DENgiP0ZiffIZFY+j@59v-TBuC?y`9*T*`&cnYqnR+rw&Es%*$5Qc zFD~k0MmjvfSYOy66O0Fvm)vK6F4kfBC`K^c3uB1MF_h6E&dqDOzR64#A~#qi$u&5K z8lXl<2=hejax)ZVo+fd<{8OOY%O$DunycdTO22#BR$=4*^GT{Spo+F>Pq35cwZp&Y z1vsIk_rlk9sXx__;bhRIPdLPIV35vu?}#o+c2TRx~)caN}fZ;_L|eD7*0pG zZl`)Bg?OjUOpaqjR`c-*B)(McR2RJ2s~b^az8Bg{|EBP95{N_HGc0y{D_~KB60U>5 zF}^-73{zZR@VJ5Z)7QB@X@wfFLak8)(htBCHQ-`~!8EYihd7*B=pTF7h4n?=u_dA9 zGRJZrj8+U+7sbe8b%q&_!^9dVxAPD+PV7tZ^S!dAjKwMf4?mWu2n^=b$&OdrLa?<4 zT22M5*-~vGy(^KpJ1NGP?_Iqt5<56=>&Rw>Y*E~LG zX`g0zVSRHZ86bf_z2g8EIe;i6PrL$zmmn|Ta|ojQ1b9N-+f@kH3blY8MD@e|<_ui) z6oSx=Fh!e<-arfZ6Ve1Nh*I9`8L$^IGj$_BCs|< z&aadWy;<{zDEX(Y{}E#_hm!{(kO3hi96=sW^Q?izndHWgAJN;tz%rBXK+MZtGoT|s zv*RYF8UB2m67P|SW42s9g|{Li>&x(RN=$Gz4T%zYynY27+h6CY3mC{~B&Qd?T=moE zQXj%yN_|N|>p(@6AI+Ys)2;@a3n-Ts)06zH#YMf%IAzdqbhKfDf^jTaf@5C=#}t2@ zWc1!XId>&t4nGHHW}4mrzq1LFgpRG43AQBPJhaB)8R{`Ex@c0KWqADu$macb=^2A! z)59b_<4;z;oE`UmNb&+CJ+DB+^dJjCY2=k0FPOctedRG2!ESO}nRuVmVhJxajYo6; z!_kSx2SFz;I0PB}zSjCYazL^Xw+QeQSlk#u;a zEeFF30HLGSsN@b@sFl5%?WU_I=+)QXPeV}N`@b1iEK18p#{s$p z9QR45gupS!ms$kixO=3?<^e)O{-y=L40$RQIZ{Q^aippbZi7~)d68@VRI`3%sb~tweocp)O%qbxUn8RH8j>kw>c;G0yPbB zz!=|PSP8)3-TSY$V4i2J%3-@L07U;TO`os>pjICr*K(v|WfThpUlhik=la#1r%FOpl2LYP4 z%-BZPH`?4CqU+Z?(+UN&7Q)vV-U+T}f*S&><^a2W*1-|84US zvWMtE{$-L*5f~#??R`+E#Z*jbT9{)mw#bJjir@Z3{p7%K-gIgX0l-BF3~vZ$;)$8~ zjFsW3hgT*GgD3nXBOd38!0=A2jM;0o9Bhgql6c`2Oc%3b+3<2YVR~X>nl&AV|IFI? z!5;E>Os2LMUU&xJB&6QT`r9j+L&~JGv9!3OflyBpm;HLW_<9eo^yjI1z>Rx9W{*O` zOV0U+;N3{lr}v%L>NrVWnp?;rMg*YN(z}xfl;}}(G}&q9EY>tf#kf*R5C_Z~%J<8x zw|VAnaG`>913btj|Hg}J#_+n9T%5lsbBcR)fSpl!Gi9IsvyO0S7+QA@P*U!2P}(xb za#Mcx5WmE6P6oQOvkBt7Nj3AXjA>3?{sh{H*Ap}+Lw8;%MfpdOFIo2l+ayZKVilA9 zd0C^lRGUbn!SapZ4c@NhU>2?fFG(^)tB#D2VeT^XFJF^EeFr2jDW;F$l{`Sgyh=U? zVMDWK`WNd!(F^5H1QH>&IsBRdfFq3I1iq&b>cz9&C30%@QfV8N`u!8-^6()SSk2&H zx9d=ox71Pu#~xC6!763ulldd->R@mvx}Ai1lOo-ylC|w0! z=4oY(^ul*4VawD&5=(mtC zZ{ascsBl}n0vgXERd|#NYEDGtpicw)nir<|B5#=!9;~g^A?%x`2R*P^GLSzkSbCo@R}mD!c9`d{3M&z3X#G8mPZ zgJr;G?PL1MncWyCTHm8>ZMMB23*D)AJF;2-6DVfSH?@IdO?eZy?C%bgpoqwz5XIP< zP|Pn!&`ryuY&QhD>vCK3>U@jKQx2EEz2F)$e34&$d$#7KYz3b&{)PNS0lvWvqKCf) z>1IWqxnaD8#AKAg-F(46)4i*7N!UnlwY~M&SG$FplNUb6U(5r&a>Ennmrd!IC-#}~ z>=ReR2cNRq4zX4fz-pKSjZXb5&MNA17^@45c!CmJ(jM)Dy=sQB(aB_He{dC1NIVc*27FzKi7@yaP7v z5W&EdlwzMQ7(|{gKL7^Du6MFrw1(O4W9E25?7VS{b!yxFz$Tl(w;CPI=Wt+&kq^Mie z;a1evEFdT5P%D{E!p3zahJ@w2OaOBY}}<%h`lp_{)HlsKmpW5nkzA z6glk2y0(0Xrrjg7)fpeEXW5xlU>C_JcNYN6_wY+eNrjgxvqG6;7LvdZ)=|n@_67)u znO#kd$VXo27fomOSi2nXk5j;wg+VoGcXl){xL(_%=? zzEeqFca~F(!rg%ci;Ei9^j|hz{y4Zv)ouK80;3QIYNT27JMDSYL_3?gKY}3+fZ-IGC)cjFLZvbqUX z8m)}bYhCCX?)EeV=2)_9O9qJ%(S43c!rJYzR~9x-rqSwm^C}x}+sORSXul#aWqs{e z7+G+DR)NJ$(27nkP#;Y--Z4B%ls>?8)r}XsqfCx_w5rlaG?5pQh;~HJ)E^Gswo5Mg zJDF#ri_s~+MUwxX&^GYvc`rLe7!)STJi{Abj zD5Je2R6KQuvnwcINjIZ;dErSdEtO%lxC2^Z)G8ZKzAk!38+sKU>8lvEC9h(9n(-k? z9r)`(+464))C;ANZ}wwgy26(zfJg%fXAx6S8u*+g*LV zlDk$~S!uI_a}_<{1Lwd#RPSNH4XnS@9uIf*O3qzEp`Ys1g}w9!EsCO8thbq=c4!o4 zB6Z?|XWh#XH=6dd{MyCVM;4gqnYT;C$j1`%QZ0riY%?q3BGj+jP1aRK&^p9*+s&4A zgJXAqj(y3sz~9Y!sBjfhmP2?8mU1rb%|)c0ORccDwF;P{fhssXUO*UEZnPCzZ#xwZ zCe3i*wX2ufCwOgjXUiuOyc+PyLmh`@GNyw&P2iIqbcmkT+tMvZ0smo^pkS6^Pr7{~ z{vkwVwr7;mOO_uYVpG^dV`mg*jIlL2%evLIMy=aUYg-C1E~r25TYA}h7c+tDp>Q+U=EtKJ z4tGl}4;W8l&}8Ji_zX@Xc<3>QpgWlv7EW*w#!U-YugrM96Z8RdJy zuk*pLm)ZmD?aKgGafxliHn`{ol1DyZy?gBK%2666;lPpCi7*RaNz$D3xCIC-ny*mv z53d0hC)G_g5rhkl{*=s5ah8k!4n~B_N_$gcw+{)fP=s?GYP0PXitTuG&fiIJ$nu=# z&iA`tsC0kKE(`ixL;ChYx`EF8b-K+wgFATG%J3y~B2!Krk1PX;M=zAma+unOh%wPwag<6YU1SuqJ75qBCw~m3%bfEF;93wy4=NT*% zhmpk(^2=dl5jZ?go?LWhvkJgqoa5t&e9EL~_3AFqJl!jk-=2#7 zywZJ0b)F#PK~f5)3v@F@8{lObdir|%#jh}Xm9fq>^HrIJZuPAt3s9k&kI zbG*`Z2t}UedSSUhljodhsHLu$@r}pwrQ&!(WP{)`w}(xl6iJ2jLM47O|9O?oM7vYm zKDE*B&V*CJgk=FleYxmp#_>A9>f0PtL`VBu{A6$Um?+8cg1r`#lj~qk<@}IFW_ppW zk6GB%p$0o%$#9b~$6xy_wcV-_q9j`M+2ceat^C>}p?PNl?Z*lW4ZBgV(18d1dnC}z z`4B%hS3Rp;(lqt;tQxQ6L=u6^(g=(hWV4&4zLvF*i!5xSxeK1@Wb3q`PD`7eE@{({ zN5!o5>IFL(-qJaEjvzratknuR_vnvq8sp7qSZPG7+oTur?@rp_??8+=QkW(rVH4{~ zXrfopCXugL=N*)wqm?Rz0e)3>?hycH^jr|)1()i)t?~XSY{UTOYs7nQu4{&ZV~AY#B-khk~b&)f}LbR~tyU?udX| zt&-g;!N&TRIx8O~KN@RYigO<$vuS?j4+zJ!+~E2@*=z1?w-;D^*>8LiPbdCmPeS2x z*KOuEw{{a&CND_8W3IZFZ0LLz2h3(SVXX}6OfPt~L)WyTb1ACtkdDWbltWFX2PNE3 zMn1e;5!X7ODtW9YMX73pG}(W$YhNa!IWP`2S zJOdZFt=mF%ALCI_?-!xvq&q@;ScG=HN{BsfoI|3F1f)LI3!e=eF&+GrAysYx(dsl2 z>RE0mPPr%?51}Qvtj0E?I*Yo6O1v3atQpIObvzIAwv?B7F};uGDxIAii^jfv-KV$q z^_ylneLF>^iIpwJPX;^F+?Pjd9F2NgGr7ZC(eH3Cmfc7PSvUuN)-n+#a3B61+bKjt zeyAUi%p(`Y*uxi&AHyEr2S73h;w0!ox8LDFjT{HUTXp!|tgs)U&Fm2Mp!dOfg4$Ld z0D&W{rQcW{3WQICcw|BwJ3>>$9Rro?d=UkAay=!loDit!LXX}>pNV<#s)K;tQ8 z%0;7CKHpv7u--^j06ZNvaPT-M%)7&Oj*MwegZesjP^yBVzS<$Q`Yo_e=%8ER%gJ+r zy?+kKxeh*bd>MQHWlV|Uf0^f(+af$@H#@zE5EgNa z2Jqw+Zx(Y&2ule|sZ0tm^{7{b+sD%3`v_eJIA33>k2Y;fo%mW4{SwmHAtC-WB* zOLRk71AsC~bL3w)FS_}ghg%StL~BlE8UitS6_KeoxNcYh-CaOMWa>o7#N6+aKzJ=R z20>jWLtqUj#vzPyO<2R84*_9@OX5D<;~AjE%3n~ zSx9Wb6Di=MsSeUkOc3jTj?oK09Z#a}sG_mv6?hF|j;7`mwV%to*3-D` z!9IJzpkQSH!O62?uVn5pa=uoV=zlvX*7@VLKtYJ1fj5-B(N|=^i!bdZ9MH42Q{CKf z4~YdtfYWv4V|?k#yzK->W{itNi1n;V)K&9TXKEviUPL!a)(--xywVS(S?f4kDzF6P z;fHD@+2=FEwB<`D()Pci6JXCSl1_kf^xjIFzR-V^atVW^JUW}F`;Swo?&~K;BPc>w zjRwKq4#1ouj|SM9Teh)`9+`sv2fw@w;}LOzNIF;b|6o9jGTez#njuUN%{bLMhkj!V zKh`Vp(2C3$hs%148=*iakap9|3BpRZer(L=>BRg~VA(G>@N48jgJ9Vo8ypc6?lI{P zAfA7nEnr_i?FxW;3Ty?}6k03i|BW?a4{39vQ4hTaoS3xu`9G^=PM)S&ETcJ_D(aid z!dLYU>ww}_wwB*#DU~ZPIFAR@8OAE_*#`v-R_clkzW(qr)Rj6_#px;SgH(wrDZ>O2 zk-GuW9amC5GOc%X26{PPb#4Zbim|@`s`L74~C(RWQaaOq);^ma47~)W&4<^yIOkj)gFjYN8{SD@#^Uf+sN!=>rm7_eR zO=mS@q}9mF>Jz;18n(Y^Q-}fe7CfU_CwL_{VqiNX6 z+OYv3NIlaSZG;?{=%08LctRBoHmxsRuuE6FVpjjf_O>E+=~4yn-PIQKIC~$@it8lx zA2V2A7_f*+hpF2JGlofI0vvU@H8aQ)r$3DmrO~67_2zsCS4Z37K9oZP)`L5N@TmFz z;k>ZmztGNWuhKdK$xX8_E6kA=p!*V=Qnm&fBgJH`+rn%pWhQ@!*`X_C&n52HMNx6D zY^b0v1$$XW%4`b9q8t@necCJW>YV)cRfYSg0PdJ)J6UO-Fwfd`wUdP<(Xl+YNnr0; zURe{15~RKu>1$&He?z6ima^ufMRtK0+~Ze9cc&MAxjgEbW3LP>Xy=7=37*}#TKUH* zwF&M1(&M5fZ1JPLvTb7Ug;$Gi8j}NU9?#OoJh)%W7W)&v=+JJDL~&@}Nu^{B0t^0K z=8Iz1_&B%5Sn#8z)4c%2+IF!jXffv<009|_l93Dn89MtxAYA4kV0uTZV0w20Lb43S zE4siDBzo%8PF+A#-F>5dmntu^4kR+X&~K6(moBkg&008|OnB;>aE0U%akB6WyPaZG zhri>lfSV+dr{7`=X28g4=j>dLF7{tYStlUttJ+qpubm{_u+rpyL5JIK5vg&5#jWOtSetWzDFZ*AU+yI4VE)5*8hx0A4 zW)@g8$@+W&>&t+|rzUx2_i4nut@3aEVh#@hOOs{cM@Kp!-q~<3d{}a4Q0IQp@{F6} z0K)==0#XqLD9@Rx9vH*^G%kL!34N}GfQ)xYBn%e}9~Qvn*vM`bIl)pyp%+>xKx>u( z9Zq_ygW;^kN)l!zD5xYrf@2qCz(Q9?-1s6M5fCMJ02VEkzp6S(?N+HLmc-_KT@5jO zSPFxN7*5g%W^zv^5h|^y5oe!7s@$Ze9Z@g1xUXy@ROyA&Nby|)ec&3(Dk?sq-X^lH zUN%r6-gzppfu6a}ZXgnPg%--?ckE@3|Le_YviXG1U9qiO`ft<(@}_#>MVg_3(`^;F z!rS0U0cVL1u}`Wqc_z2UA72I5rzHjh<96!P_5ze@3?Wf@|^Uq5;!2 z%JvqA1lDTd4Yn7b7h1NG#+R}C3F#|)l?q z5hu5)9HV4SCw{TDbkz;@OJAhE^AoYv)59z*_bh!uq3L~w?R%yTR7mj1qJRJUd5bEO zIEG~hX?(i+0-E{x+89&9QF`GFP%c?yD{v=fcZ{I8JGI9sn@z2Gs@0mLUNs7VjhqaN z0fyHCisggjPmsV&a_6*A`%Itw`qqVK`P%I?*+Rt_8j&7~Px((iT(PqeWe`epWqBND-(xn(2G z#cdC5LkZlfb4OsF-6Bv!tu+%Yt0#eurq^b1)~NMe>1U2~ozd zh_kR-(}tr}@-L*i^sXFcKPU3B3E(T_?V_^lA!$zXsDqvc`@ki)l0*Xg@Oh;d)5xS< z3wk)WuC^`a#aj?FFg3Xa0mITg&0E*d0ypXKDa`sDbEp;}k7G5yOOnR37tU0{Xwz5) zr*pZ-I4{^yS^4HS1bLh{z|tN>anUb86}r*cy>j}V@1~|*5_51v8w+XWnTEP zdvy%c+(j(jO~S0d-ck}{ITHPknC@w0rn6fiOHAL|bo+!c(6f!5eQ7*6q?=HTB-nu` zmZzy+*;MpFo-loXlY@VUV?yXmFFFY5Oxs)6hk)vEM;yXw4g#vf+}S|50|++s=0!$m zN$GIKLk)y#>4!LqnGP`KPw4@Gne|a|zylm$!nF5Z1cXrzHB>|0#0xC6nlV7o$&Wiw z(BMFAXN)11jftbSVLA{V!d*d?sk|dnWS?+?G(G?VPLRjr5OkpmO{RE3U4Lp03)mz^ z?cJ<51u()5kVzB=t5Qzj1w-oUvi8#UY-Oub7SN&9Cw2OKs%QoG@XwQ3_mM{LXenH9 zyOQgT-be;Ax>s)`8&Bw73YKK6D0nEkh_Iudw#L}e7S@=Gc;q(91M-_PAbA>0kNYLG>X=z@#$uVGoMmIsoaq_tHR4`_n=m3TM;6;NNf5sVB z4te2{^XX?owv$SqIzJEU?Q}* z?^#I#q3|8JCNu9Z$Prs?#5{<3%hxUT(_d*U%hP`VR?#>ToQ6G3uR0A=h(gR@HLC}b z$)E<3DSI*Gmsk7S0&)n-}F=FVs5RonHMW_vFWT# z7;;ye*@rPCa2h@wA$OJe^J*&LOKnE6<4Sn$_aB*57i!{$Kchfzp`xqOBeqe?24{TlT}q*ZxSw6gu3=7ndl5=KU; zwcpw@1_&$4=CkH;k;fpfG=rd!tTT%KVWuI*qUsjcdn_nu8PmN=#!wQC8#n^As{3$l zQM!#6DC%z7ljCX@92o3AgsvbP(=?%DZ<`sM?S zuiVP<6dzMKhFE>1hp$pE%w%X!3p-sRw$Zi7ExTBncQS%aucM9gfH4nb-TK@ zvPpx(sL4y_oKIYFIFwntp6{?l(S+5JWj{6h4O>J#SbQduD|~GGy^KT?0)P|AH}6nW ztCPjA`TU=X<@k|&xfZr&HAN{>rEjjH5*`%!Y$PLJpQ!a2#~mcCh=7j@*vf{{eg_ziuc)He8!V^oAB`rGW z)JquT5AY%iV355iNM=1K_XX}i75Nc{uTT-wvyt|G_s=a)D#VctWl_L^#GQ19sV52K zt-ci2)A*DHu%5=?&IJyzo{jx%Rrtqtkf%`(UR-TspU{Sf+z;I8i*1tIu(dy_LYVNF zI=E4$i0XKR3ylRcIR&YRPh;K1Kxp!b#SE{tu7OS#8Yqa1nNDhh!wZV&S-ap^gg+rIH7_@>z@27qBXr3AR#V(hj>y>_UDKkg`YGbY|Aj;&frz|$8 z*#qdnjJU*BVI2ynoIF`==bym+T5hIpJ=)gGMCWn%GE&llbZTUc@L!+<*gN6H_~6Pu6^|ZdQaQ1Zt)$=w8O}@fi)4KU=-5r+6G@xs zi4zku+R-6e$X%E_OcoRKBo>5eP)>a`M8UOy=N%kSF_-(uLMc6$BDWD{A$gfT zZG^MgAk2#wx`%O@M{bCD>vvBE=+eB{eWhS>Dl1`j9Hu$kWzwyf+GU!MnM$O+oMJfk z-j-_g_{H?c3eB!S3e2hQVBbvKWu|Rrq)6}6lx?p>+hwi=oZj0^=Qk=F6gTsHJ4oIO zZF&W0nI}_)36hBQ!e94{SCnzjM7>D9@gx{7;roDhoTmp~s=o!NzrM1a=RZWJzc;#c zG;DV{DSdFIx+O|*KK7u}wVP~%9xep;%&P!I2<~|l*;oUhgic~Qk*{H&GLNH%_1!A= zreu|Lw}0n~Bp`vp45o=AWXIKJxs>S&3()PgJx*f=d@+sJT*a7dLi+tD93;!cYKe2x z>>fu0rtD{a9Y^{IW{}K&L)RjM%<7vhH6X_Jfg@B-9M_rT_qxdL1LjZB@-j@@Kv!Bgs15 zEBk{i%Rt09;58k^V?rk}KcG>T$X@fShiW;|8cVFbB*WqX07K=+m4 zsa>|`26_&Yh%3@8${A3b7dk`;zvJUE{0_AOm$l>_fz3RX59h98LLg|qhNQ1@xR=M( zSDEX$JFuB|)o#XE-XNc^IIW2D_?000rf`Z7ZM2uK;Ft3hT5O~Rw+%Lw z21ATT--RET4K&4o_QDr+mmEk*eM2W0`+1>_H1{PU9nm=Ym!F*y;ES2zijZnGOx^N4 z#!`c=-#1i>!>?ys8$Xd+RhXOxHdhQ%~a-b zGg&vh<*XA$A5g>-PNWn!IyQO)?w|A+qfc@GezbsJJe%&?YYq|0&7rCM2v@#5^9L}l%dTq?*o)#( zBf)hd4R|H)aNLdAk_roJSlzRWX2-Wakx9J|q2l};D*8E`EbyNxm%{m^ZKYN7wAmX_ zhd0~s3Xh5x%vQno-6&Y>$NzD3ykM~k-l8DZi&>YD&?OvCkTx}7EP41lzpkq}YIuVn z!rVWLXQMdpGFOt#rNCW9N$D=a>}L{z#Vyf~zp>e^T!h(&HsQJRw%2T(*3?;Rv)f21 zeuhV#%sql4SDw?>IeYIS(=>>#dX!|^dvGtai}TRfJi(a5Hwuj%WTGC#^6kY1OH{C# z0v${1C06NF?GRSFMZv`l6}BLRNMS=0sH-}U4Em4d~Tn3)AV%tsnkm) zxRop$-`ZSV{@jJGu*GkrOA5G}R`hZ!QXW5D*$Q&K@W;#uXa5Zq5)A|F+l0bnI4>x5 zSPrF0a)F% z`ygfXgw6dzwBbbV205FCIEu>1!tar$n!d^oFHLtkb?Y=D-~seJXy~}RtPxyEoP41B z4as6P1JQtiJhS-RC^}{1_1>iry4`kV!DcNkzR29on5A-u{ftHI?P>tic2;o)ZRx$K zj(m>9;cUC~aZh1~e*9OZD|zBnM9PkicGf+EdL zCo<_Q(oDJ}-+B?e(0eL+4L>rhFojo`hUuyxKgO0ysvxMsOuw$hB%IjM zO1E~fTNkbxx=W~h&Q_GzmuKr$5O&vq@@>d6CcS)Qb9*Vv3G-%bHPvr~bS?^g4}JyN_|Q3`8oc zrkE7vVD<|&we5<$&;^a?>_|7L~k9@PP}l2?a3ZZG$unQ4cYYQMAYv?ghnfgpDG@$__6gpWqm*v z`hurL-?%Jxlo5W3?6}KF-+hwHsHB5kj!gbWxGESa@GT`~A6rNQWJ86t!G@S`&)TO( z4ES-L%7>@AkeZ{oOhSW1$@@ z0j_2Pnw#k_R)kD187w4%WKuZ z+clnEe56QX6vh%UEs8Ds7h}Y77JJw6kKSrC>z0a3OEFtTsTj<;bOzxfg^1V18I>b4 zfAZWUKe*mncO-)zcb6J6(Yh_p^g1cJuzY&NEBUgTEM@VT@` zKE6%|ZkCI^&`+V?y3-8?rPQZ)g(T2>GlX;(_1@F=-a4&#rhQb; zch~j2jX5`I>ICvCKb%BpdA&h&cy|h5U_1;0Fx~B=z_9;f1Gq+DUIa&NlfOtvE)U=( zYg{aaD(eqa&F^d_dMYuXXo^Np-s#FadYHrE4W`F5a219|D-2SF8B{<7;gbw3Zi}h6 zlP7b|Qd$itY8|bpn~u%#ph4Qyu#31PJa!Wo^6Q~8YYuWXeUtK2@i8-oj+*2N>~#5f zVpa937gc4Hx@eC}NY%U5r1TIP1@>azXAbA#OFmyk1V#ljC`bI4+n;a7>;(1>_rk~0 zSpIEQA;hG&O*XPgG?@w^(AvRgPwDemIO>mH=+oDjNz+fQM^;KZiIKtL= zCRU@ht5NrfEtIj1Y(;&&sZ8bz*OK$sRP|@;8IuiW3! z*1PI&X1Tmo^)(30!alL@4LgXp0zr^u+5*7~T`!R5kh0%oJDmsmc3JK763G( z;2vtmLXyF4FGmcYHE831tXZ9~{i0~U6mUGQ>< z#JrXbM!0&O03H~Ljl4mYmOYNfr$NZ#_`>mgb%2HEJIvgZFks=if}ziJlg(aGw*8>( z3e8#uTLNXqIfu4F@^+>we7xtgHZ?DE9bHw=7J#L|PJ~Mo`C3o`kI))^&Gob`?pZhR zvaaee@~i2`uk;>$8oT;T%|i=v%mCqVy&LMz)ObF7E| zWA3E*{CS?^XLuPc0MMoC`ZyJ{mkkzlFomO3uRr((u51X0ok1E-A&yc$j;pf!`a9_wr?Tm)p>M)n zsG%J(R;g^S>|Zt;CAz)MK{Fkr@+PF18BNM^)<8?BT|TU+W$ZK1;WnTmEzf3H+ONf8 zLe(qm8eatM>H+>PZ0({UrUPSfxAgBFR^XX;sJ#Z*;4!SQJ9KC;b9hc3`jK|%4H!}OfA|JCqfgc7`k;4cUB&^d(0f3a3K#6euNmAM)%LZ(S9=2c zAexQ2AhUV>el~_L^S8j>BZ(5S9W?V*6mP+4*~+|)rlOm*!mmhWsTh~$OX0GAxjUOq z5{2=_h1#{g+Sgd9g)ddN59~dsz^j~ar!T^H2D0=>3p2fvd+oT6A~F#u z=5DI8XrbkQv1r#@NQ^yXD`RK=LS-Kxcef|%d0y$XsRBohofZmq@@canCQ&4jK&xg& zOW(H-xP*4_KznhYav%E!LHsJK8raJVO4}}^Oy5Mo2vMdv^)Qw6;XtWYLc;A&jkBcY zN)7QGuVjMyUw3CGh0lR&3GuM`Pv>eHPxUU(5^F?+B_MKCZ z9#|g^?E8+JYL<}a%njertzPK~H0H#JZ_ON%HmJ6`Q()f|e=ZpLYTvf-Yv4ar@m8OS zGLpTpb70>E3%T!WD&L362B&?O7rbj4*{6Q&oX%zs%#pjs*+W0srwhE2Z+H-*Wm8!a z^U4Gb z)BPG{*1jUep@+M0s0J;-0RVwp)PsrVKv7dzF3G8-DtVidz`C#{S61S#9?9cJ-2e5L zNR;(HVur?qE-!;RHh=}LfrPW&EHro{)}Rafz&6;foOR*AUV1p$HHdE<8r&9Zuyszf z!D9&xTDk^&Y=Iu^$70JG+a+PAT|83_nAjyWFkc_4)YOG%1@_MK!sVh$r#4v3*a~5? z>?MWgv$wS&OJ~`KOjLCHKm^yZf}}6w$v+T02TjGSv4lR=KN3@*z-Nka7sze$XoJ`^ z!_r4GC#D~@SuDAHYAMtq*SHI)%rdkUpd1nww;!e@_{HuyCKE;dtg$Y z*IKL{dh&M^aowmj6LGzG89u90h9#7-ywCgl%g4A5BUc82F@W11Jb zMq^z>vCDz)+IgH!j^%}&?TRDWy7K^u)Uhsfi)>p9$JzB~iW$AgU+bsoqwaQ)5{-3J z;#BC{dRy+UA$1Z~CeZy|qJzXj=*AxOLeHx7%&989K(`w|q_k&iv$LD-J%WVtC+OLSJBoNez&MC zVt!S{@sSTR_e8GPl3L!jy7}gjTaawH(%xNu#ug3>PI_VW0}ZNfZ_(EQtY~8a0?ij0 z`P!e=vz_UkHL7lgf+U9re(VmrR&uCgfAz4-^MK0o`l%3eFOI6-&0{MHckgJSI!{j_)) zGOMtVGQ4Z9$fWXzQdes?#q+uOP&a~r50MQ1E_|GBl+1`+ z7sHY_(E%}+m83*Bwd*)yBr@d!rl4dInME_qIZTVz>kpb^E0JlPOLSQM{woaT)nrOFNM}juBfIlM|av~+{7zBz_*OP+8)>kci4~L znXg#I#tMepifEt1=mqRmn`lge1CkePLa!RJGLPGYLi<^bdq|j0h!W0^%C1$nbID{j zq$e;j*C}f(abX%E^I1lbxmuaCy^_mFB+Mt#9}jCNr}6fLeoyB*JZhSWnq0WtSblT$ z(J94TO(HlJ8hS#Ya*8^b{;D)HnlX(Ff=Ihb#7okK1T$!70B4<+o2lK0v(wI(^HVXW z?-#0(W`IF&wh7GugMQ8?Gy@F!Q4(es-ebKSy#rL46qvPTz1kZ0*o1ZsecxacjWiij zq_rEi=@-@i8105)$`zYDPxa(t#FHMLN}?XZtVwP%!r<5|jxacOj3W$=&4lARpT#ls z?OysI?rQvxWTvV^t|GKp%-}ZceL`K>g8KJ1p)C%p_=JS16|x1q|7J^sUoKuG64;_vA3F~a=~=d) zq=loO9Q7kYcMC^9-PDg=IQnU&ehx=e0k*88z}XM;j%89TxE$++n9wM&j~!gd@B;gg zii>$LPhfRN*#yM;3DX9BN)=|XF)!!diT?9(&=$=x6A%X4wsK;4;YXU!TB+MSGpFvme$*c{Z*+x^!;<%v#c_5xoJISKa zUL?#bqd_CD=#;E+g>B3c0Li+z=ot26xGT>Is|3xL{mCrL)C`pXUb`Tu9Pgn8^-O*wmY z!f6^}q52lviLYklE9FEMxMySxxPg8bDG zMazc6sx#-r}nq90ca> z)In**ZTQM1?i;x{NQkVHsw$$#Z6J`%nK|90RgRC4Iz_R!2$WNp=eCPJmRvK)6CIgL1 z+Q$jIlS?Fiwt;k=Oxu`eo1+e&O}euU)?=tmrdj~-slFu5AqcjpFzAR7=;_darmquC zH>HZpndV=@ZNT$l8i31$G`}S)Q4PQlD!mq%@>G}J(I<*7lA=L4+#&ytRH9>XiATS$yck4X&defk(he8r8yl9oLmk zi8Y2pzCgPql7~;tRJ+=><|d$sy`4e2-kO*Fy;Bxo4}U9};-UXg)4s!CP44AN-Nzp| zxqpPr;*#GFR|@W!M}NSQh>o7}d8JvrTwqW7UbhdqMLo^oR3l)asFV5dA1dTrTw(im zUGg+?;O4Pz zJ2~|WR?&-c*$p3?s~!Dq$R;>>w#~@Pc3UXYBP~rj=_mm!8 zfHfYTs^k!Lu$WKaC^3_Sf`K(BTih-Bi%tSs3YO%dSdu-sy)do)xm-*#hm#Mg_thA zw-am!`VZPMJ2SQ%zm9_1uCu~P~q>cW@_)vY~XiJJNr=LolbPqv-%-f^(xe)4Xu1 z?N{0p@NKlxZx=F`ugPj1RTQl^sj#E@lx#i?-rLoKUB5<#RU2In!eWhDo`SKTkPTJc zt?VNhXVKIcPQIcZuGOT%!DbodE;YyB17$IMNit;k+W7)eI1rrZctUb96Mc$`-^cx9 zCttSNU${h^PD}BxHX%L6juDhvslijnitVvyC2^tOQ9q0E<;wVp8q)j8F?-M*UBi+7 z=F-sK!2wa-Qa+MbfM?c|bo~NDw?-t49xi(?#b#VzP|xGidy7DB!KvmdvK5~92stj7 z81r0=Zd0I=*@(ay{xe+36t5(;5j~wniOZSeU!aK^Lx$^`-Pt_WwQS%ex2GfbAOGu;x4Vt0>6w(4jFWMYvU~7Y6RDk{Q&L*Vxy6= zdYDb53WMQLysX8M`bAN=MmwM(<#_%2IFJ~{JppAN9YpQ|zHCpAHnysTa&ICxVY#5; zKW38sn5L-!Q;$SKF(Tsw72gQqWL@Mx#lf1v{W`XuHZRDQz!{v6fJG@LQ9T-MCW;QP z(ybJT;E8~^IED^#?F!}2BiF7PuBz~`I2`)zXA@H7A?^&DkRlIp>)@ZLEfUam6Pu7( zLEn3s4PKff!MJ|3iRQ6A02wz|k3GhN#~l9zTvxV&dZ6}8HlZHqTMh)*14hJsHlZF6 z&NtZvJ-C@*ah{n0&^YG>Go*hVtR*>%#jlBvC)AiO&OJaBSlkO(Z6kLx=YKVd{9P?@6Mj**?t7;=T{tz4_$IsMqrAUq? z6h_BZJQ56%87;C#77Q(JXBvreXBKc=v{wvpmcO?nk+H?y$|s}}FlPlsk3nm((TfN3 zl^$~>JrGD((O(YR($ffCs~&-{@EBn%d85@ z(JNJV{eg2k@=9*Sq>S8(;y#?J`y!jG8umT`0L5E#D@OT(Yu?bl#6~!@L4(Z!CDb^l zyjA4{l$_rK`*!(z@$0MIpktSFaqRgb=WX>?x1gNNz`orD-}!1^&#SyVB`>mMYxxLn zIpYnZG%^}0BR6w!@$3C z@M(8Fz)$yk<~-71)Sz#wIdeGH7u?X=7v9Y)_jWk7RnPpVL4)wx;&1Y1%-CPeTvTB< z2WuL!Q*a>tZ|k}Bw@l4Xz4bgsy@H#jYjfcJ=n|5%ro55P-uTO?X+mzs@Ig-R1EChUGRBs?b|%&=#0BT^$|K%N zplLN zrn-6nJ^MDVowoSz+C1;^9r=;J^CDkYcd@w}luJ%^bA~Wdctb?BuYl5MLY<0uov!Fd zU*(dmQ1o+}ApGc658h#CoLc~zGTg8Z6*!YwW9~khlSx~tGPMoyJLMzWq+}6@aEbT} z5fBwe@cMC>K;$e=iRX}Mt{^8^)5E z`KL&0V}Y-Mi`#|QD%WDFr{1YmCeWpX67v%|?)K+~ro1<(*-ut9G%ul925Y*wx37XV z9eC3i#Dg{M2ujA74c4^rLT@uQ$_f99#h5@6d6BUhc}I=y!<%B3B=RC}Rjv5>U^Dbv z_k)l`q;n!kSOTw{v{48(s4^UB`6|ZxbY@yHYAX`Q_iO`ZC1rAe3dIM7F|@X((7l`813`&w)rA$@*=fWAAg?NAm`-{ zFak54<+sw!LpRIi*-G+y676GNZ8%VjpLoa#$mu39Sjp+VyZl}G6?gp_(uj&K%YAnj znEK+mZ%jOwk5E)(Gk+H{8i^&Bk7yJZ;Hk<;65yvTaT)xB&0MW{V2&KR(NB zU@ia^EqLuF)|1PE!q*+epqKMUB9$vul)SlTZ1o$Np=7uQ=HJYZBbG)nV(F&pF#(jdl5^oM&c}d-JxK`SHbQoG|HUk!xm9 zEn&|pE-!)EB=vt0Z@WGQ+QH&pH0DI{rdM7L5N{zegEa*EZM2vl>V?j*Qt;rIcR48Lmv?fQ zo8^dr17c~y*AYuIUJZq0y;z!@m%pc9cyZO$AHii>h?Z*CiIn;si6%A0KQ*gwVV=n# z;rPrUJekkgEqu`v9nqwdcFRP-*8*+_H2WyjGFeU)s9~9_$gyqo8C^+hsy?HZ|@Z?V}E$sV4e zz0I`^!-`Lq%#Ahl*VX6~t&fT)hbQgzsC>2>$C&uUVP(c;_B8B>x}6=* zKD92pwb4aL!J0#eLT0U)8sfRqVz}mJzM7~V6?}WJ4fcNfx($}d4((Qpt#)=FuT6Gm z-{$N&A^@{GL!EZUgvY8rsIJU`+;ZP$Vp8y(v0PRyk558SN+9B~DS&HptFkQU)?7MD}NQPS@nz(nDL+ zE1QDi%Jn2Am$Chgz6I|{EG9|jD*Jr?Bs0&F9Fblg`M%B8G?Ufqi?E&cR4sd7dR1GN z!2F38Egrp$9^FRg0~bH3WSLH2g6kUb<{k{g?)1V&dwR6KmspwhWmwUn6?Bo*q(SF6Hd{UZp{6(g+Gwf*9+$9HTBAP4x#+Rlrx5$ zz`ogq127jF;b4-h_B+7RO{qS)jZcJCUyZ6}$Gw1Au zgxz~@JQvk^b53i<+`v5FM=0xidckF#NY4OIw|=K_2?kr(tmEZVn-i!x#|zrq=pKt@ z5w%*n0C~%s#^GDYWJ(*#r*|4*iD_<1cS2~D z9z0EJnG3wAkl8{Z%0R>X%6!<-557I`=B2zlXe}?K5>m=%EBdhzX{YdFL*yUbCby-R}l>XP)kME+?0i?IRw~d9)Iu^a!W^?SJgM=Hpx6a zU?(2gy8cdN2u>h57G=5}BHVL%YsJaxdK-NHLBVeI62ZO?NG;apfVR5+S&3K21JMd= z&6C~ic1f#l>o#!1)H_YHKkVLX$~?0D_{g3!ckoU+2cA8OcV4`2x7+d6b9IdYkz_Yl zqF#D1bk?M>iYdQ0NUv^@TbX{S(}p*&GI@u>2KJulH>izU3ctqwsg1f$zNngGJC~V* zV^4m{w_C}v*L}r=NB9|BTJeC??y8;l%7<6v;a+JSb?_B`Kj>2x?S4D6LB-f~;TlJoGac5S`m%J0u3pJpyaFaD*Ff#-xtll2dd`h(SF4dFcJsd6_kJzQLQYxbZ91 z`3C<^7e&YI)@kgUsNI?cx=gwCJ5{$#bOHXQWg%v_!GPjZogx);hlFF_ zIRy4pZFy5u)Lc_^3K|1uK>}|+z~%88mi2**`Di<$dMcH!5l=9mP^pp_bB4v+I&#FA z5pZ&aG>_-zw1zRKiB^3T|9>~fZ*OQ+IwCS!YfgAm0_%7mV|PI|&kdu`$MM`K`rL=- z)adgeJU5O$x8}Ktdxk@1ii5wIq|05DffL1-`BvN)_`s){qxy{-*tJ4g-vvwD3=P~C+ zwX5!AW!NWF!iWDu)Wb`$T79GT+oQX&tAIY<8q5!N1Z3ZIT^rX)(X#N{{@O~K8lf9+sq`yS$ZXRcC62zLDha(k#GIOLRdFq45}`-w zBw>3_5ww>`$bt^k6ccwdKQv33o#dVY!!kV+|B6>5kD3A7YdEqGYpYPFh z79>HK+r&X=Q3s)C6v8orpx0}hI)%f_PkSk``qZsp%ZOU_6QAxjXo78 zee4Ym2{hoXRClw+`6ttIH)-Rj)5m`hRs>PryiVZtF36in*=PUY=s5qr_!e{)EME*@m`|(|@q|v$6P-+{!Oq z8Sh*sO3a@BS6w!oE1tc=W?M7fn)x{|Hv_zN_0_O)^{x24iu?zweypx%#=m20cF0|p zV8)mI@i*`AQQ#Ji&xEsZd)&gARnYlC#}Ydn4o!tJaEtAXg479!`Q}GfmUrs;+EpQ+ zU*L_*4ulyt(i`;aSjks-O;IcP>p{)mrZQL$V9#?K*Rkh#-%_6b3zyB@{J(J7E0ci{ZMsEs#VUu(}GlXA9|{kv!ALDP|n8R5>w7D+Fxyz zv-3CAG19!q98|6J-cjy;D0rZ2Es1N4R@vI9Jz9mjm|uBCZ?r8AZOcdYcIs9$<=IpI zyhu%6=GS%l){z!rcNY7d&SI}_q@|6Y#qMkpW$nLIy|J+lBk5ajM0MbN`KQsh;<{i@ zs|$LeHz0@u^+9)de4*2KWBTCH`IQ%f9~yA^7G6-Heunr7lM?q9}Y$O}mQPKtr zT4p`Ln3HK~rc*8pTF0TcFbllUU$RIb7w~CIXNg--2*uSZMhp$1XW7U=8>gBG#dLvs zfO6D6-itNM85JTHn0jX<@@sq!-uWB_;0y8y77G6bOSOVu_O%uK3Qg5DgE)PM8fsQi z)4|aPSsfgiEWwE2td(;eSF`RtbTXZG3ska-cA!X8avmaK?%)sBcAEX}jV>H3>x+J` zw}Q9e!f`QT1dKhe#DwNpZ)J(?FN;~?#44|U zn%0AM2lk}|x1~g$xLHdV*=&yM!*AwZYjD41Htlft&n`srTanFF$suC&!ihCF&-e2X zw`A%ZGyi}6e^1qKYo-4yw#3Y(6UhiO0t^oD^*?nvJa^{SgY(>&um6{-dw^$p0O@h$<+Q4fFMmO##afk52x4smU z7~_4_M;<^7vlc@PL-7JyzrrTxSNJS1@{i8klhfOti0|@SVYfCe>}~T3?sVkL;}K`DKzSThtz%vt(g{8oSmIpao_(zaY-i zQJlqN2RdHeg-x2k^FRNP-KdXkv0?3*eOsR0*4L50cJKGFSd&7wB-!ssJ4v!0@D12V zOp=XuY^3y$s3c2wJYJHlQq7O29M+(V43{YVB!5Ud8F036xRso!RZvxXspf)sEoYC! zLrNrRt5z1M(1q3f|2#;wRi)2sM$$DSeL}g&?%HC8oB%dli+qD`mgy(~P<-GpGn&T}e5M4C-@fH6O8TgupCa0^^qe zy&gzjID*<^uI16X6HPl_9ke$Rz{2CM^fV!M7=L0XMRFW`#8gKGfJSnNT-ASrw4}88 z8fz7DX>2-TuSZoOM=QZksAD!UV@L=PCa2D$ZshMFEOnRsxlS{HTgX!=5TBj)#Kh+a-)!%fwZD4{d}r}z{2czAwTP^5W_vYX{_ZWEdKQUSNxVkF zH;0D}JY+Abu-^MUA3ui=sn#3*PGrRjMjl-A0)HD6wGOU%kl&QzroKHlui{DaY2Sae z7yD^1UMhlcca@^-Wo7$EWc66+hnz#lu;lJO`uFgSR`*V-)ty=sR4ZMzUeBuWN*<-w z8clk2S6#ewkJSF*Ua(U8;NjMk(Gy*zV@+~1d@HN3bKBlr)gw+rZ?Nh5W&N6Iz|wsL zEugUYZfQ#_z4?Rv114Nm$hK3A|ES`_*nd2XDDJ|}fGc7Rtn0m<(y2(x7kAkC6}vdO6=(F$$gL>q9ScTXw973|ZpFyn38Bj_=IK%< z&{s*wH8D>(e-z|&iPKKER=4`^@l7;=5fPnS)wNJmYALgLwdo32h8X268X|9Nv$pQd z5nko!FP6~E@v8*>^B3MA-XbWQ$qe!erz%b3u@01cX1`$*Fx{n_akXgu-d7_;#V6tp z1-827z}(aZqqAIi8H=Eo0)mAwICB-*V!9US*Rk8*Zp^oqoVvy+e-KdO+Lf)Rq_h=h(Kd5cFzhDT^;OeDpuG zoe6wY)%Ex@Ss<)0tYSrt8kM+U*b@z!kp$kr1W-_LL9wY6#0A3)!6GnW62i+kN?UDd z)s|na)mE!mmjWszfFz(Ipdz?|R$(5aElULwH1q$S``%1uk|5aj&xeNkz5i9b7I~`j7VCr9cr0DrV@yKb+>$jAQ6RFz2LP6i`-sg z?y`7EW!C4}jn3s_)EsT9KGhlrbYuZ;oK7z+h7DJ!DTjl6eW&(1l-9h=iXmKMLWznTUB2ceF@V89ZJKa3q+=>0TdBBw2x?MHFRfqI$i&SFmx=% z{1v2L_BKS@c!}t1{p-@q08E;ATY3&C;o%=^QVRxSvHw#6If%)*&-V$K8E^!UG;=&f z+N7kzI)ipgq(9(7Z-Tp zWjTeB)n37G0bLmg{q!}SJ!gj)eSauXe!1GlyoGP@Ph_n?a!Q3Rq?j+fNgc42qZHwO zLmIM6hU*KcIY=SC_Jw~%{JH}sMp~1udd9IblpQM?6Erx*Rxj3DUH-nh$&k6qQvc51S zTIIDL(d_N8V;l|dtvF_)!*}O9XR~*{&KyK?{!cu;K^X~d0?vXx@O^jiO>CVj>nXSu zAWGrZ>=91#%PzXLj`A*3kWyQnp^I)yn2L!?jn`G8rPQ#E{C?

l1psabdj4axcXV@;W@E+mhcPb!w&kXsw3JBgaBPvutPN0L{ zWhx-&!$I#m2rwhk!v*5E;bxU21Ij6RF=n(JSW&{&Dj>yC!VndZ;wYgX0ZM4k>_-8_ z?00a`F0Hq>Yx2Po^s5sPvmUilH&0*NByR5IeG zn>z-DY>{Kmt}y#?Z-Qx7LVa^i5$bQ0TrWv3CDiXEm)h|OpC{D!8X;c@_4)jo zUopF(&8g-kh$c$%Z!O(x@&VGlT#+X0wEUWW3KdD|BLdjpBv+3|=f{Mv-x!IklAib) zFE1Tq$|YIQS|PLfaOdU#v2TrLXN&L-($#lMo4;e5a4yko(?X!`Uq^Wsa0jPTVRd1; zx=(5<`DI&WEIDP}zldM+GPXs8DD7qWW4JK_@in^3&JuS#m2VO!jTGmP_}Y4nAS0d3 zB4@|^MPlIcx!b#XGB-`0jSt|Dw2C4i=#MK9C>fHgwkaG+iFH=yck#G&!^BII96DON@-ftN_eM}#B> zuTHHVEw*aH0$8RFTg^K*kmA^CmIx_^LO(}IQ0R8hSGknY;KM8>dojTzfF}l-V_9e_ zHZ!{`zIcz~zvK@K0xd&Fdzw^u6_Gg?>LBgBuy(GFE!O7hVb0#asCot@i|E!PsWz~9z%;r=Qsc0&Hs;_B>MGzy|PT>TEa90gUf2I^Qf_{hO9Lk@l46c;%PYWQB z!I#S~GWarn%@T%RIs*ASi)OP8t#tiPoOZH2pSM|HG5bfR37J!c(Y+^lH+M?JZQk>v z0KB2>LIK`#bjAX_&sdsex%~y%!e`2Uz+LjyALOgK+Tv+cCB8Irm<^C$%ep&F%+B(d zr?xI!+s+q4ySdXbMRupNPiYIwD|Ne#@ zA)6i&@h2jr<^CqYeRY8{L{U%xbA$a7CwmgIdy@A7=MdKlk|RWHMqOZjCfp_H_Ye>h zisZYmUACFYeDikaHOJdoH?|IekV-ry3*v;!#S=fsJQ3Xx8na8~+WBXT@j`4VaN zkfDU>xt_)(3SS}{TU?AKd@ZJysPOd)xf6x2MSDRm^9;X^tQvWVTjT^B-Gbb1*boBu}%)C$aX*niyvra_A-*{g!gHhm!=ohTUjyt;kuI zIGOqcdc!u((ps$kRoBTN#-wf~UJFYB8~mP1QsWyvPwT-Vu-A?otg6*vTJv#XyxTr0 znP4}$II*I5jG5V7QD%ao?W%Z1Tan5YHOY6XeJo#YfA5b}Cgw>}=*Lr}GqEh}UfKG% zY^HQ9LFwcoq4R$y2q$MM&BquLArtT|P+Q7eQFX+Wxp2{1#R0^1n-(nkR8aVJa7`8sJF?=hf|GLJN{yuc8~|7=Du;1u z%)lx^D)^+@->dvgj^B_ie3xB9_$Lq(a|eur{wqzWz9t3Q#qoToAzKn1wMCc7 z!hbb?gb&#bv{KiapL{HI3qE2bMcR~|&E%dk8Ez`=m|7{`PA*DFlWW;U2_YV^tn`kg zn|~mvG*(F~2{}d3B~t^LV=9xkHj{Fuvd$HyBp*QUEY#{FgZ|wFH9{iRsqoi?qhrnf z$#eUMvVY=;o<~#rCr%D`qL_88@=<_plrNDVW$iAd6Y&K@!~y8lo0J zAQej6B&G}dLZ3VuwE)4bNjeL=@D5uks3lkYGI4QS@t+9FU^H{Z4@*ouSFA1G`)?q9 zJk!%(PMuYX`{-u=x2y}iZ)K|JJ>Y$z_v?gPt{kgMS?A(T-qE}&23TAxDh7C_Fuf@dkz_QLE3MvQNL%WrBS!s zFw}!c6dix8uBbZUJorz6+JH??U*yNDQIaODxs*S;R(MEzq*liTXLPf|xHl8r-df$Q zV!O9PxSw?}qZ=Ezq7>x*p_uEUjiDho*ub{;Acp)#fY(QW_bjX{{ZBWS?EoqWNLj?P zMwwrHs-T)~?)^*_Ejix6vh{Q9@XTlUBV6kB$orx!y-wjBE9^O%|0+v3pi&wL9zE{%VD=*|uzQYie65IoRm-STj6W<(Q-ciV0{#dj z53#6&Sxhr7&U}%C+l6@eYde|&Y$G_*M<%(!Y|&u(YOG2`Z99`18JP}d6BO4Kd0Q%e z3?#*OIMFoAWgHY`&X<77+(G9O65u}Hl7!bukgRV@CvMwF%-8TI32*?0|3_9E4sQIo z$cNYQp|n1e*=4m}VZfpv|Bb|I%7FL}WNf12Jn|LduV9KKl#TwlsJU$1(GIgh%KSj9 z%(g-TV<3J8Az6E|E-*FTDairq$gZ+FG)+T~Ni9h&YhfgJlVJA%0dkual3L)&*At># zHWO>jzw?fKpH@9u&Yy`$Wy|+*3%+u=#e%=!+O`+`B}d{HeD@FKv*dP`6HvuF-S$K^ zIGtyEBw{5^3QdS5sH1w?gWDPb#9{sbBxTVNy+~ol%P~LzmU=5BfB?Z)TOk|V&srf- z9fBKkm_g=mh_aW1ISJFn>_xIQ`)*KgGV^5nUPjxuAcfErz71cK&>RddMp>1}3`60Z zC*|YJgMsMJt0kADn_=)0iU2}~GvtEg?xfKse@833nJmB1=5s+i!O0Jq8oqxVQ(8ML z-L;CzGFM<-Wz*7q@l5Pf-caX#IXD=a`$Su^&4=5YWt-S>lt*L|TbrAJzs)O!e)}+` zwdGpnKRAxEU@Y5yE@@sHZcs$(3H}nJ=#A(gn%T={5kAWK2!6n#4;URq9hA4R?XolM zSh$}8uBnFCK|heE00%D^df;!?KB{gwr%Q!>snEIhG@*6Bq*`@Io~>P0l^TVywo>-? zaWXMtY6Tm9o+(HKe<`*l0)a>9tF?+TG6%wI$iT@JSo|u1&EMxaP`Ci9Zs|)pnxBAA z(UoS=ND|BeG(xV@&LeONFu2qeKeOWD(1R4jCxHx|6L>jP-Z46mx!~g%WH3a6c?x-6 zh=F7ueCxl>mYfBR!C+YIfq&yTVdai5Tq$p zW<+1!tyy4p<5lSW6P93zFZF}wcQ43fj~zF-TdTSU5Q`dR3VhdUL4*9uXO9l2sq4|u zCwHS@d^BM$)-5gn-m*Jo^I@Q{Xihb?<4ZcO-C&Z7lQ>0Bg}{1qI{Z> zs@OYq+E7|kE9;G1f%lc@^cvWF*htJu9zrMnZx+TcV7lK*B^&#sCIUf z0uJzsYNwm%EqgHOs-4{}uCqG6{;l9j z=T-|e?bE$-u%G*&i819^QZuCGi;1e^3d}M*{_%{1*dtjTAF8^c43q?X7g|AqUK+0| zpD^ur`xaQ><#er`tVh$SLJs3vlU2&;|0Az8Al~Rq8?zVw;Y(>ouip`(mW6 zYDrC)#c?O9Z{k5UI zvmD_qa!LvD%DYI^Hs&-{xX>V0#F*8%BNm(Bu57<5$0As9x!+aM_TlB2MOLvKB~b=h zBc6{LWLZv{l-IG!6zGgOfH7ifm2oXR2yg+|Ars9nHYnVBBuLSnIN4RK7O?DKe0lVz2%~JB;=c$LbeT7f+|@wIf83nQ!<~Xsj0f? z03qdGQng5QEpkuyRJ%15>YLg3a*dWW&P$Nn%G0=LyR>>_JBj+S71b_(Xz3jM=v$%o zz6I@b%-d+QH`{k#cev7j!tGeRO?NY81!pe7K-H5)*OOw3vvujF90NCh1CV5$60Nrl z0<->GDT}(>+4b({d#&;f{#K7rt*&G8HSr3?7Y&kDFkqHYhR<)yvDXUmWu2NK?1 zVy>3s?FymhKeO9>58lvX=v(_reCpS2G4vhkS~2v>F7)&fOjz7KDt`3lm)SD-1B^y9 zGueWT-hZXcBYU#M*y#6Sv2q|I7X5m2v>eC?eNrXtb60`L#GUl(oCLTHDa#SqHT>0r z-QYQ$!lTu>n0>@>+MaO~DOK{kPYlR)F$^8YOY6PynwV{^6h^6+m>}l!`;dIDP@j*DiXQ4 zrYX{qI*#zIgrm<-=%Y%fyfHj8dFGLK0#7v0tCVwyZ=>Ny3CsI(+9bd2--|@r!56gk z-0*2rM4mBUHAMze*NL9CzKzDsewmXHBog|rNj)1n zTJOv4-)Q{2_%QFs_-0ak9N+hC5srR)vfuw@{pFJ)k>BwQy5jqvFMbh;oalLfLUURt z`~91^IQi~^iOqQ~B5fq$NiFg$X%W74a`QJQs$1g!m-Vmxc_ea9#s8n@KPg+j`A@z( zQ6JWfXztrVyRW6dFq(ffn*#5j+Z-NA+J!vnad{-~vbeCA&`8|P` zA4eWfi*U5ell}fL>%SEkRPnrqK=OUhbxR_V6Fm>pk7(K_^i|%Uuz#cR^W(y&fg7v& zW<*?^ z8u^%VaH&(}c8`XOVdI1BqsIO9sny-X9TU$7qHhRgp;%Cb1UPCaCn}?d3^@y!ev@?$ zQ0@zt_UZnw*t|^J7JLT1M`~6`b`8juF=hR=79+7sD_$fqSRDntFvbk&W@ z5$8V6x>33I?|9|xr>^P?DVTq_bz4?ceMweP#n(9QS?M-jhS}p7?XWDW42~L4qY8*{ z1xHHzbY53V3A}^UkpY`f3PmI4HYXPO@N}@EdddeJD_YJek^wb^hKbjkW$J#gLT$~k zBDv|U={)PWfdH_g#+#bE%bOuSd>$p7y9)>9{1)aO^vrUV6lO6Toc_gm0x&r43gok! zllq1lmf+xmkUmG$S*cmB63M{8GW?+|G@{0b7hkv1m{|W6UI&*|U!Otn{?exAydnW5xCMAj)fXcY7QUWz)lPewozs>s$A) zuzHv?IFkK`-_EX#!8-OmNzEH~^2BAR{SeT{)x`Kds6N&Ys5X?J z3RF1)g)$xh16bvh>r8>N_KJ8oQ+r+FdQti1^6m$|0(DniJE0%uuSxlDx;44<2X^a? z3+dLmr`Rpo8@0Lx!aeP2*{!EqbxW^HR^2-OUv{hf-XGYle_lYh#`sP;T8;VNaFf6i zt!jnpS|cMS-I~N`B}Yf=5!J1AP+~@ly9cggw2Caxn{t_uviS%@BvXg6(8&B5JPb<< zrur3S`=N9jneNP1xk&&M?AqBo+`(xq6vwUG3WhC|o-rG(Y4dsLch50TfB?CmQ~LPv(rY6FJpijH{ejYBpisqSr4 zk-+&l!+X7tZ1e2h?euM2OOxpn_nY$4`hL?I-SV36GHf5+w=9TuOqsoW7<%Kcs$+Lr z9b0?&89dLjzjxP?mfmNNhPGcF^*%dKd7nKR+H-eyQgI~<@c3?G#xp+&@+?b>`57Kl z?Ar?B36ydb2!V>fLh`No(H7ZPNDiV!05Ixp?^i2q3UxGeFV)G+bs1;b6v{iD9itU` z$p{8ocNk;XMZF?nrTvsobR$JCA<156m33&KE#QsD1bajER*rekR%&)WcZ}YKW5*rwFp&+}{FZNzW#LtmOF^$gaFgdQ

9SxP;DOsl^*~4!2;q6{0?Za;MT?hbH6XdvBTyzBI*MzQvDS}ZoXMS@6jwkcf z_{iaHHQ@Wk=Pze7KJ5XHbhS-ZISy&7<=SVtOY}UERD8@%?r`qGUC!JdF$xa4&RR{m zb{PSJpnZb`mt~vLOQ20j;{Iq-`ED=Yf9?*JMXE7BV7wTh1H*(Z{ywg&LK z>1_;PpEd{ZbTHd|Rce7Cx&yhc@`$tt7cZ<{i8ZytlV7z}jTlL`P0x!nV`m3$d)G;F|?|hjx=5|!>u^RCnZT7)W#TL^N#4|E3Oh7cJ4tmD+_F z`84h?>(ol8cx~WkK=el79c$sWHS_lsh36L#hqsEfKukU14^|Qda?>lnlUQZ z|GH#L(kg!6`J_bdg_1VFXt_#ji*5b8v}XXtB7j`#>B!%UIUu5@;xTQFG9&fZZuK{G zEIlY9m`bl$O#3CjR+%d~UzPFSKnu+>Nk9X_Vv+xiR@E7iigm_;s3va8)v9s~u(%={ zp-bErwndf{(@i!oES!#jS0)P@WoLR0@mJ2mv2vMjfBoO#)?+_z11R4|xjOU#x27Q) zpUP|>EmOK}%5|9}CEym5Rc2JtfG1sOd`#@B_%il!KBD?(XXua zL*o$Ak@KrloJ-ol^G9XQbN>+IEx)@pJITKGqw)$_7r$TLyn8ATN|ZM%4m9x5MmMzhreL8?0Mmt1wRbpyS7i!%Pj@g>(BA@wBsEjLki;}9GoJX<5 zDq@sa<<36bEK@B|lBekVxam-2sxKcGt~sXf)BjK0!Q)1EU+6q~<}7a#jI!jZH>8>b z-E}KA=pnvo#V(&E9mL`NiTij^kY|F3;%)b_Qnc~rthTy&Nwk}E+`jUK815vSf_?c& z`^pz$I1VwTCIJ+)mHZk9iVq)40LAd-_8{*I^-)_KkIN>3HP#kD`0ejv0Q}%)aLM14EN%97w`DO;2bXbcrsb#R`_U?QN*hq@al(EK?nyu7 zrW-E#LSg3Ll5!?b@%(zUWDBwn>Doo>4{6gDRL zBzN{Pm@|p23H5zsXwo6=hN5~iMd;qihdvF6w?e#LCj?os4E=s6EWJwrne;yaWYT{H zvex}qqH28qf0NjM=2x`;H#YZwRJ8wB#`T|NJF)){+x-U!X&sRC$$LqS=n`GVs2uab zQ=1P5sJ0bQ`koLdCEWqa`%Lmvn-AyCkkaGkgRv}OK77UWQ2pN*s=MJt^P!*Fo4%if zs`P8CA3aalkI~)e$I~RAqWQV&BcuG#L%Aaha?9JH_3fOx=19 z{cf@Rbva?PAJQO(!)Z%Pb!&0pGME25ZrA#?k}Oo!Xgc8Yw2I+GSvPVGl0^S^McPAW zt88z`^;_nTcyBqJOnPf;EJ_wY`q|*PY@XRG2oaEl7Mo`Sl+YSC;LCoMFyP0*e|x}p zOcLBUJ3&7wHwK(!psxbFtq`{B2_aVAm4RN%)QRqqCl(JQ*=mXSL^Z612J}2?XszHn zP0;93RXMwW)-7hIK#AtHRYQjp_QBDGQ6D8DbgLzh0Tz|o8J}atJNMfkX%+2xJ9!ry zuWtj0ZHrL9695X|%y#gFbayq22>z9ig#HHoLGrEFjW^lJ^ycWn8yxKX4^lh-lbNx6 za3mw{gL3(Ro0{47{D9p;r*BK9IPk#7U**g6-Q|yT*6V6eVMTPUsMdT=;9*Sh1xFn7 zA3G*c)vCIX=nP;1AcL03Kt*b0FQcSZuicZv;hcg{Z~E9`Vx2>gEt$zArd0T+aM7Fn z$2dm#vhY<})gRfFJ=Kc-dR?oE#M?{Dibes*P&u+|%el)KauK2obC5EDy}6RSmh71i z0yI1SaT&_igy}V&cm}vGDiU;H>g(F`>-E}DrpVRwQ%aJK&XkIcCMAw>CwV)p62ugv zGdCP>#RF%H3v)lwgSXh5aodz=8ONdK{vv_CJPK1_GwX9EK!{+_h(MY^#|T=YmT zx8s;@v@<{b2T+HzvK7JRP_R?6?I&kWlmGH`$U z1l547YeNe?JnA+6#~RYp<0)7U5i ztR5^&7yO&>dt4|?+N8_=?Wo|<6TB~=Z4=PrvckL0; zDjuMa^4Dc|K9%}fbmVJuXiz4)CF--2Fkk-Of?yfko^~0Xx z9{{GGwWl%9Ay&2olOA|P#;m+iV4)Tgtx&A+d^U6n>-7>fl6uJ@y=0r)XuyvNN5q$g z#^2QhmAX>5H`*!$$gV(Hrf#X7w2Ddjq)PEE9Dq2{uOS(69+P)4V@SI<2|aOrKi}?>smF` z67=t?FEsYsRzA+^>ym7(;N8;JbJ}hzXxdK@5!N#eyN)onuDe4+&P49PEmipju~LY; zDl^!@-TXRKaWNsg$K@ar$=)7l=RwflBC7oAT zoezq5!d=%$FtnEr68;JHS+kElnPhn|0wjMpOI>243kC*<+!Rd;Ra@~nR{Zc-e5n=R z$BI8U7Js9P_oll1?UFIP#;7`e{fgRGPZ;kG4C7AKtlg<=-Nxbk)5}grE$P6V@@#Aj zB^END|D)1>iS1^*%Jxkq17c_vRoM<)0;?GuvMWv5nq9I*OtOxIduV6-7+G+8knUff zp;sR9be99@`3yY054lTb+joMGc3~!E9Eh_M|GxIx1_I}!S6BAVvWN$%$88L=_g+Y0 z`=xZR+H*Nvd1OJhbj%_IXS3MTzfQvHM%LrJx~v1lG4Fs;fB#;)qgcBq8@OqmZC|hY zk&+kV`g?ViaJ{kXRiCV;`(pMJ3HfxPUpvEWN7e}OiSJT${S^357_SG~SEt(-pI?R> zjb{FWE6{K8HC*iJ?Q6Ky(@i(pbAK-x$s;$Rf2MPTZ=~i`hz2+Di9J0^bN%RtWQGa; z(8?}(`S?pIW)FU(RwUd7e1ii*NhKN;{%r{;g36y)H%Fo`d@uZ#?RB! z|7yLwcsnWM`4M;{9l$6JPaE8@TQmx*6;Fp z_O7bv23&!WIheXzYr0m1NINFS{1XY$Y~FOeZiHHytxQ_Q5-U|zt5y8g3aP5Kis!75 zs$Q#DXN6P~vqs`DN_7f_fmn$vCT3!XlTLDdIvVUFy+mM;otIn%XIV~bw@5uDT3}e#CVYRmMS}R9JiyY8x3xHbXl~#^EEplM< zYynoQyvWLdJf8qWRxJzQT4ir5N52+1`bB$RnM?*}U}WxqO==hz1!GKZ`8*38l?TBe zQpd-qje zom01g>OI35SS;X`oQ7ZC>il2u7bwf|kmxBAA!p6=C5pe+c@h6teJnJVqanfJMah3+ zs_qTdVS$Pr?4CEDQTDIrP$H=p+o^vhRe1W2M59!zKkU*j+ISef_j@lo+`%E2-^4MM z;E=JYe}b@mEuAZ>K~Cz!k%L0{U|(puD!|jz6&NZB&^m7@Jlaav{h01+57)r#))?D- z2OSWjPz6R`vTPrAY8fN{t@ST@&)ZH5R1e_=UNg*e601a^``%crnAJ< z{p=0$q_-b z&jUS^Q${dK7nk+JYS}VM{sV#{=Z7-&0QaP_nILCugaDb2MQ8%z>7krgij5xv_*Ub( zw_L`*-GR%LS+s4vkLh!`)6&tw&i!>m6WeI*755NmYy%e3*hJUQ{=ywxV5=%FP(rGx zjPb9CwLvIYt`?~=O-~9UOxo~Fk_|t$QA1DnR!Dbl^IFCF#L=mQ-kX28TGlD<|K>L^ z;#j2Ke=J?A5=T3Fu*+TYQ<7S)JL)5QU~#{7Y0qzf>4fogaj{;xkFhm{g0xO^&Na_$ zJ7JcY+IGTpGfa7H6gAb{-gd%dC3V7x)1ZR5yH4wT!hcZ2KU37dKslGgR$_W!%(sTRn>JAVma#;vO2ap{Rs3tDBo-f6kSgS9Dc@MW zLW(%8b)U+YkdQbOf_INWS61?ff0_L}DUh(fJVSUM=7C*|MDf)+4+p=)cW?(F&PZGl zc}~yo@9Aap6J3OlSgKkwEd0@ck4Vzg{3f4VPSv68^t{9Kd%1$CXR*jq0>AJ_{k^-x z`xLrk^%+`$m?uZcf)h~D2zwOjz0l?rLU)4nvX{1JC3?LiJ$ol$u=din-e>J4?NQ0X zN8}b{s|}^1J#DfQC#HX#`8$H`Je+7@^~FwY%{NfFe>K8mqG(78&0oMAfcJvoSnm#= zzk`HnOW6g$7DZ)NxrClgl#G_Lc#l#Rzpa$T-`(cLVPjLgqL{0Ah-g;Ap@4H4T0!+} z2VNKZqpm>jW1FsiDsf18ZsS5muXC1< ztFdd>x*{8J0bRP^6?w~*y}=dqWZ7Kbmx!V=l(7>P?)i#<{HZ|^kRxk^%l#tU1tBZO z-*QVpBy@B4D1Te>EmXp3v}h5Ci|W&GCuZcK*HkHGnWT2HQXjBl`ZeeOnH9rs!|*e#JkzZhy!Q=1*NVB` ziYXu_+lnc)Vsv71teAl+X4F)7Nm5}zPc00L$7R*Ku9RD+7X~JGE(}cND8ukG$;%Yt z5ZHiCoE4ntoG`(8ZRqIz41<3|rpv!DH_3Ac-O7?OKZ>md6 z(~Pe@F4c^0osqXi7k<0YJLi}`ipvnCjY(g%%maXb#@8h49-mU z9~?ieL#()};BEsp0>W;o{(}QM z9Q5=Zgb+H8z@QGb9?j~RfWSP5HMVd`(Fb~P6lblA>I36?1}60hl=UqPjLHm*$_m`t z&nSM@X>4(7TZ)acOyjzzjcpponv0jXjB))8?;nkWD!77RPLZ*}sl8Qf{501nT8{h7 zO+*%Gan@Sqm?Fdj4@E2;8@$BgO^knquFuU*vMz%YM*c$C02PtkyG+*M zfVV~wlKr8ovY~7-!4OJ}x1PalAE|NY?U~(Q4|HCyOI!G%0y8*1qF>SZ-GzJ9m38L( z$uf}MWdlBv`8Gt*?jOToZ>6>;NyGdgzNXJZXR4a^Mr(o-WTm}ze6exQWYn)6+-#CE z6dowwa{z#JUfC1wu<`!a@ z^*wXQ#(n6{0BPE0V`5G^$2;;GN^7Nef23sp{HL*Xx@(DNoWy)S#BSWPG7<)Shp>EZ zV}B@<#wDN`3lUm)1_6+D7K{s(V(q&-G>$?AJ^k~aP4Xh`ig{l#vqSBp$bxBuo!IUyvm0icCkdSe+ zBN46Tbz5G%N|XkjL!+g;bwW^R&Ajmv*(EeYMUEJ6$4<6l&$ePG+p(a$7FnAt7#kP0%;63|stm z`@`A-WLn7f{gooz-qWQ*{f29&X*cuSk|yE8z;w1EC#Nk@Y26kJL+8}q=Exm7k@n8u zd`BoaNI<&5Wh|DKxB_hA!h|wg_J=l?4ow=dG4&EiL0D{eltv_W$99w-No*f-xjS%G z+`8Figp`j#Z6s8xUfZD%NXMviFPA`$1aeRc6c8wo zK!HGXjI2DN4+cu9buMG%c*!2BQ(<~BamilQx1pO2hs`4gEv73PYBo(8Z8ZBUu#>7f!U6DD5x{0+>WE{RWBi8<1; za}+@sZsnRqE*d|3mR|cgQ@t)UpPVtJa~u$rKEsVFte92cGCeRBeB9)@K+nrtcqv{M z@eg@*vMaAnxfLZd(=mwN~sX=sQRP+Tf})wD8S5M#Ngv{rM#UpOx%vEiQ z*M|j5ll8md9Pfec@AdAJNuduA zfI%L(^7w6mn7(?#_&`;N<_GnNzae>cPrU@#lmM0)yE5dwiDP{@%YQ7zdnP(5aAR!^ zc|%X2B+yH6<5Cxz%p!^M@gsEg)+ArQH1^LQXm|vWPX{PsAfo)(2N{Ki3-TiIuWHS6Nt6-XL?|9jilvO$&cX9 z*c|kXdE;_C9ks_f%~<28iPQ^@SpIXY{ifztgoe=w)``{9BswUXhsW*~snAl)b_gw2 z8AcSKjaHgi=D-M@?zg=^WR)zGbBg&fa%;=}$@FSB#r*kY+2{Zjd2gft&4q-PQHGY0 zqGgQ9&@v`uY8f}>aI(uXhZvu!b(@?cG=&piLR-f33l$kNRX6mh_VBcTuhJJPeSpZz zNHlNH63e3v;G_-mBmF_3x={smfoXm;w3rsaBNd?7@|=&f*xX*UB>88BmP{9DjVoA^ zicI3l`?xF=6V%)2pVhTY%4YnBw}wx2{4)elj6aQGCCZS-#En0(@%mH$+K(lJw(Bxm(Gikv^Tr$RoB9fwymi>m&f&ARi;Y+EN&XkOVtEuaw z=dHj0A0R|}=tB~m{skFH3oeU(83zycGt}oV#Xir7e*OhJjiJYg2cp*MBbp4enwVyI z%KQ)t(9Sl(2q>IRq;FV$ZJLG>dd}_YGT9S&)iuuSgVbeP9zkG;;;L)y*Tu&(a) z44kx`ZL`W|w9_VSKcroBn&cEcf z9jRd*Uy#0cJLT`>%MZzO<``8zQI~gmw<9h4$V#~6O{2Zh)vifu;oEn$oA~^eUb)mn zH8jGiCX+DlRC~!fBUw#}m_3oegT~hJY&k?LKZgC~eLDvB-T9`TxL)Z>12}nGID?96 zC1%Uzszf@`ty}BzV)%~$@oi}9U4r~-Nq>Xa;=FG?`K~;4-|Jl3)jI}=zUS8z7u_$& zJLEZsrKs~@o;+Uq4&%83eL8-ZKF{72?l@pmxScb5W1(@-sBfMHE!QWduZREHfui1J ze8(vfX$7QbU+5~;iZ4B*TzT*=(uxneZXoEEsHkj zGaAI!SGZ?!-qB)hM3X!3fLpuzKvDM5LZd-$WR_i_xaHfXkK+FfT?PD%wV$~$+0!%d zqAVEz<5lcpQLFv+4&gddSW~$LVbIPe5juvCLYL&yTp#Fx7i%OlZp4o6(lx!_9T<`B z4hZ>@z0VQ-IPsK)EmtajvW9!D@}{WrX6JzX3s7+mf5eI&NwojfFDMOBNA`RIYG;e( z$&(Fh?U}@dwOXa01pmD8j=*eGX=$_glwBYepy4<08omY21;Td3Bjw&`mHW>bifK~R zoHb5#as^h(d!&Sis852!FR|ikh-)rCgGjr4^=dQ%kH^X4JhIVYZH)R~6-N>@`4j$9 z7W%XaQ=!V!fy68zF;@@xeUgM*Fsj~$Aunazpc?g}@U_wAK4_&}MM^+%*K$E`S9$Eq`baxpUCH-Jo*xBXT*`0Ym$JD)mX%hPZy?qFS7lov$ulD0f0|zb z<~ah)^C{emEdSyP>l3^3b$lY1`VL(3;t<$#gBzo5w3Q^dv5Lz%xeJs+kA zCZ+4>rQCs0ecXX@nf`@^G%T$fr{~?lUcaPFpt=>rOQ$ZEs=|3~WVRle-7j<{#e%Mx z@VN;Pco)lL1%cJP0K(pJO_I&BK7?b;2`|zfHUE`=JQxM|)47^n-cWG0mNefD>)J0o zTbQk*TlLi+4SwZ=MW3EALO;4+E>NirU8UDHcGn&2^cm|UzkYPP?zp}m8X~>CRz(;T zXq9#UOL5;zd7sNAIJKeft{F9w)txf3pW7J8)?Tg7SFTmY66+tF^IY}`j^)oUgptXl zefLcb&vwgP+D5}%M@`*<)E#Y3nlxwTx_qlGnJx#Lt2OyjvXpWEYi^^)b@Vef3iMht zO`lntucuI`F*ehcU8Cx!|Gn4+%%88*`99RH8ILlg;alWdm7|!u@;zJi>rPZvo|f$^$m{-XX}q|>ihr_jl%`pDoI zi8ed++TviUbW9cFT4R6o7rNNz{xek*_v*F#QyGm6*ld&qsn=TlgWQZwmoYA&ZJqD$ ztJ)@cQ*=jf;m9Sc)volwErpksd#=>`2SRocedH%gaVk)s=q$^+u3c5N>^=J>_Iq+^)!W6xf~eZY0*BY z?v8@W-jY%Ikyf#hmKXD47-(^H_!igd?3*82_f5Z>A9Af(c~)iknw4jzxz=|2;E7qo zJAUwl>oq$u*&V#}>A_Cs<(Z%H6TZ9!{|3`Lx+K-7N8WJ-^=}4jm$q?Xk3)NWom(re zrA;o!dd-kq zoMs5=*_+wD|GDbLdNmN&r@Pk1+WuOs?XNeteaKgXRNK#&w)ciVwA;%yOR8NjP>w5D z&`C8snTAKS$7r~_#+AJ-)?R&O6jYe~)Vm!Gv6g>@MCHyi%bsnc<=d^6)8PYp_6Od@ z;VQRr3wsBEK8COE!1bWl_PK>z3k5Q|p$JD?BBLvNo!huReqEMwB&xX_%D9i2z4b&h zC;^`oLKX*mEkXAzxy};~6ZI=I$slyPzd8V+KJ8G3B%= zp-?eC4q(6#wWIu8Ft75++_}2HDPIe|4CrHN8x>ZL6Y8cJn@KT0l;j^mcd0v$?y80h zUDbluFj34>Q6(TYLo-)LDXS`e|B0#Rq)gqxg`pcEWpqOt{lFM0CPtdM3RiDIOX-5a zlMTPfH#RN3V&SzwLJV0n<9YfOE)^~5(H-$kp(L7uSx1|Md{Q%2rF3jG7CaaKu`DO- zk?FPngrw8n6e=@#)F=SdBllgQ+IlMVmHjP6um(%ltz!I5eeSpn$$pUwtyNsiTqm#8>dBSpVjYlyJD>}BGhNK@^s>FfIa+|!nRv8l;#%KZZK&dOH}#sIceWS zvC6hs&aQK+z}q zd|F=n;1OAE6|;e|N0^O<9|?}fP^7PrNXMso`9^7~?%2ZCmD};@eWmQXMcgxLr3u(a zB{Lqn=GvuT7p0O?Z0+&n(ZRt3^~jdyCbg3$t(J8`76*HZaE)E8QlZPP>|MnUi2Fgc z=4^3+%`>-Pf$JQsub%Ww()IFRDhQ@_L>oI;82?(6_8-H7p)UmpgTT?C=AmS{-|sTE z+qJm1HM$(@*p+#N$->f;S|B6J?!k=p17)1J*h*jh8~Yz$7RS#U#VZ6;dtTswHMqbD5?3yVA6SHT?#i~(KvH8!8m!0v0nZ4kB`;A)^28=fFuS-O|5V1WR;+^ z($pF2Ubs9NTNa@m=sGqn{JjGI_e~a=sYkcl*dOCDXsxttkr+(ILpeHO+MF%Y1@8n5 z2NIUMoo>fJ^x8LBsNsL(aHrTf?9L09UEp>^2Mt!(TC(kh?_ILs^UuTe+s83cLFIWv zCz{1>>D44{b@_KD6&nrCBQ+_Wj!>wD<4vE;nAlqD)}F5!6YQHQwd*TaL|GL0+1mP4 zeWlH)B%wW~m}2efEwrat8?{BK?1MuD^Gi|#0CPb{wGnUTNa>ZEyxchkHvxGPZfsoq zy4q^}LmvMIm4JV(B_7@A3{+%A1*CID=F)N9oMky&3c9nVior{|D^QpP%54sx6_+@X zMB=A{lrD0TzC}-Q=$IwcK@-6rN|qf8k-9QO>N-94ak#5`m0Yd}MT<({`eT@o`d`aZ zlATr|&6DF`u7Ii^@6e%#2XgkJe%WM$zQtUKWcSJ$;qDUT>wPn zUYDaVD@V5T3$y0RPv6Xd0j}X#JIDj6SG-jIAkk7sn`bm zATa;yh}9-F{945p+9OaG6krt*YwO~`Ygr;3w}5`{0dlIaR$u*7i(Q^3rV7oI-(tst zsqgb8^L?u;MY#+g%&O9eX{UILVE%9SoXdP^=e<ae za(Ma*USAAZYzm(*DZyDBxNB&qYsDMGJuz_)Yx3brRT`sM1Bq+~d`CJN-G{W$yI3y7 zUfK1ncb+FH;&yN=rSGZV--;)th@Mwpc8;t3*r6wA_{z7ef1UNUg9oX9hpF;d_%2t_ zHx>-lSB<%0aqf;c?i!pR%yp3kB)B99YC`gAO31i2>Bt|xJYPt=_I%@j?Qoe3a~%Y( zUdPjj)g)_k!wcZ6_Fy~7Ro))cCHUk;`;PoofaIs6r0* zc-&e2Tr(zS^|3Zj*12XDW@Y9Ba(6J_;VQ55J%<-WxMiSEGd5wIh$19hLe?lqxPU!eij_rnBv`|8<=Z9zsv1-SJ7SWnmiijo1}SXqAWaIR;O50 z(!!$p06-t=GZek&JBYn^dHBiVz@1q-2GCkXFB%!&diE;idiEI{9a1}R76|kbrT~i0 ze}=}Bz_0Q>v5#8_wuZW<%lJO5K;YdQm3Q;=gl?sBGWWhEkPwXonR@ zb{+jZ=xlmA#ajoXovhE?{urcvWm4tm4y;6zy|3sqc5q@ZqUb&0{|o;yUbz;pUz7bM z1c*u5*KAo{UxZwNz!Rt85uyM!kh!5d4#*n5td^BZdw6~3o36TAiFa#-_1Y`gg(xXb z_(>skTwUs@*VD$rn>k-oEdKDv;n2#4>Z@XGSBtuY^K#GlTyb9I8`L*5)+y!=#+^Es z2-}HhdN=s1Js>M+oU-KA*eqKUn`LWbv#bYmMKS(Robo2IVqY)`qgdyW4JqOm{4-1S zfqA2-KK8hd{*(N_0D$hihO#%^4um+-%h_{lvp&OCe|#>wk3WY03|toc#8qA^q(;j0 zbOyOj&vGW2mrzv#`P-ncindfZSSr-x$X%_r_|MYGVA?b1IXU9|twmh_L7e&7Njt2s zigozR7W$x-%5vYaQG4h*mJ95FRo6|7tmyiOZpTL!GbvqPDe%?v-YnayI^G6R;VU63 z&xD`TS4Dvh*gzchMO0Fbqtk8!P_1L9`Mq;R@00eO{NT>O?%_g2)9v0A1Ri(EtV^70 zJJVHn-VyDgr{tw%RzK(3PSGeCccQYKN~5iEm0MAn&b9a|lMfe`lB2J4Eo4dsO9=LH zu4PK8;6#EwoomGmQ!*D3%y6zvvx7qkc6P2!wSyNDOn0tLv4edGraIRq+rbX*k{qYn zDAiY`-GBIw&u`eKqdWr?abi<#V@E^@*Nn{v4$8W{Nq;p#)q$DIyDrC@ZZWSlkyMZ4 z`HB+45*M#|i>i=a*_diw=r$InyR+H&DT7a&gu?aKOgGksb)#}=T9WNR!fjO55NdWb zp&L~~)S54EY2Nx0j7iwfi|OCTW1vwO_-Sro;2snQf0q&yEED>;N;bGk-gZMEW*oFu zS7fE#;h|!ka538|faGYX!>2;h>-3TwJ>^9ygDfErmQ!LY^DJju!<~qcP5oO{q{`EL zG^)78)}-o0YIF)^__XdwSz|;2~MhgU$#m`RoDil6krAl9KW8f3(^) z@rO;WWN8uO^BWPJGg0X6=H6z@cLV4n0v48JbNO$D3rbjR&r6n2OH-29!a zbLqy2@yGp8Df_=Ji3{CtRSphK8Ei5NPu3n45ub{--vO9n9>xm8(okIka7e_bp;l! zD;O^!*BbdNQ^0Mk5Y9X_%qn3yC0ueUB}Bj5ZGDHQk!S@46lYDmf=sIwGE%x|;OmN3 zNSzF+&?ma~_*^=uX`uve%HWNS_Cts09@szkRIk5G=wXy+;!OBQuu)mKvO#=`moEVIKOslm$Z z-XF;n@9HXH&n@c0BEH^snzS>=+%5H6cTb6xJ56_6t;Jw>X*gF+xEMVVlN+(uRKBcY zo&C(6eNetb=8b*C*HTB#A0UC-R+3XU<{!}( z&9_1+5-Ocdd}{t>T9s^K_tpc9-n;7=y%+n)=oKSkT3OWHVmLmkHy45%`8nRs z(i7G8hr-?S2hKKBcx!%&=AUOlr=46-&mDge?=_^gm%N()R>I*K`2#h-FoeXnOMN^4 zJ8jV@LcV$J@dQ2GicgoX2k`E_om?HPujNRD`M!X1(CiFV=+=A&pd-=Yo|-yntzx(2 zH))IhO+$V2(kE(_a)MC`ks?2p<`0~mMYtoNwnCk)VP9;8x>#v*tx#7h?G8e|dD@LyX_%m!kq<ditlFSdeaJZw{pF%a`m9GFY>ms2hcXZf}@Q?edPfxNAn*hjSb;R zFv;dcER+_18c)Ab+F#+y+n_D}*>P!CQtDQ2q|5JEx=#{NMM0y*>yP4Og}Zr6q-)G^ zBky2nsVuV_Lpe}xS8yci(W0%+>ah;-*ASe))z|n<+4*=%s`xc@P@FOJ6t@gqWx@H` zNR9ITaHMp%d_>T4>Ck6s3x5vykbEVbWcl(7DP#8Nl`f_ zsOFMmy~+Vfs{JQC(N>R1RXNT2w!Ajhv6-|7izzDDLpHL2Aj)Z`KkxmLMd zMYOl@10Org5LLh=txAZBuVJj_FXzRL19h8rRgc4k8|8YVZ5hD}#$G^vLdQg{qLJFn(^Zj0 zTVIvc%6vgEwBdSfv3TTZqa|V0QlKK1)6tf!W39#(QW|o(YKYzJB~%-2#^t4-nj6%h zOe*UkeO=TOgz_~^n*AG7JPi37ZqO=~3zL@JFZ~%nE^|jKi|_VZ$LwwwYE}2E!U0zI zgj#pdZ?NDdW=81%>>W&Q3Z~kL-mGG973NLW2rTc$Ixv8Hxu-M9mk%egS-T$3cjQ^4`DW0JoK)p{{%4v1AkhO7>SI-n-@ltGO zRH6*OIS>>U$Jmj*MLAAKp~V3#!*fh-RGnzo-Y2}ke(M+Zz`49ZO=uBuZzz{y=^5c$ zrIRRO6wY!FHk_a{J?x5=*ptndtsn#j!P|xN!9kN)qn%;0Wcs=Zb5#s;)r~7!X*mZ3 zjl#{x;^`riiMY?t^lZ=tY`VQ3j;x3FP&Qi!<{WNEDh^(s z?9PVGnA^l*IN5#Ra?VJy_P`C2C%ktBCF{`f*MqN%WF2}Dx^79-?CS`%j;vuAlR`6r9E3{3&d(Lfev z9NKU~*`f$GJf0xYhKC-UvK7hOf`{ckRF(qp0M?9n1(z4eZ|vFF+IOVsN6Di=mB+aG%_)c@&a#4(gsOdu99*Y zZ7XS(N|F;y^Pl!$7Hz9*a{cpHCV4u`dD}ox6gl*?wI9A7Z%Mf;le`~UmSKO%jm{4A+| zJ?B{aLSwtjf^Y)+LXVdnXJ3f?p?_g-?S}tNduy>l40vHQlt}IvYioXDGVb@;_V-R? z&+b0b{jb@xOB=H5qc+y;Sy`79WqN5@x@nAGozQbG)8wznugQHP=%XMX9mP#Zx$qEMK3dsP)O2n}>ccq8WE)NSwt+77 zmka)CcNJc@8_rnWjuSy!-K8`%ysnLjl?*!?yPYt2MJ`^wj8R90l~@FqC}!l!pMv5U z+7YF$(M`M)ls*S~8mZ9nDqy10 z3mU!&DD(NoR)>BnI7*!y!|b6&_Xa2M9+x_#FN@4Oe})HR56w!fC z1T)oI6=*pWo3~9=OulmZs)DK zfMoGPTGm?aM3EjtRD6p(;nf*kvp=?Pq;$>djIK$y1ooxB z{`vuqfs34NW+Y;rhRPnttB;7F?g!24@B$m(=Jt|^_G07*&F11nA`&ZfwrXpdwHI3> zF)h;J;EW8;ThnJ961y)Y&D(r&oJFm7CA};TanNZ~!*z7S{ol4NI+K>dFj}7ZMU>&Dm^+Z*J zrKIYR2A!j(E2naGGB4@ASq!%%-M8T$kaW+)U6gds#XZz^hx}5K_U8%1fmkZDK4yNL z;Jhu}A4hn8P5L7=p{jJV9Joj9bDyb65CJs_wdw+VD=9VuZZ)N6Xm@Z0apvZ#8QScF zm(S2E1X;<)7;!~`I$82n|rnT z4SE%OiX1-l6xF%QRNsz@cas}h|5+c;Kr7^%`Z)76$G$&wt*7q8R>qt8nZF`FU?|E_}i-H5QQ^pH|Rj%6)5&#}q%M8BF)BPt!=^D*K>uFKwek`Fu5iWn)^ zACu&R<*JDHB|^6H%3yA~fL9(-v9C$2s$Q7dbnKt(*q73=d6}_G?bt?%6{dQvoG_*H z&az`yrt=nM#!j|lAC*|iwze`e_7XdGNxEd2-szGD*s%+`VgWiG+xc_VqM7M>9Yq@^araOI%E>DU!^te&pdp9%9KJNDwPk^wrM_ZB<0SYlOsg(*(Q zj<;j`r(+#doQ@r8$97NG>u^+d#df!2zuZO1SOs;gJ*Edgd{|-QfW-EdSfP{YlDFEi z`z2Ne&DvvdwaSitH=XyGk{`5VcS@}Ee(8>Mv2*OGmnDjO*vD1+Z9BGEV!w`xF?Q@< z)3GuY(j^a3v5yH8uwJI15a@L!GR0ii9KtqDxFRGOk?z`+CJGTik0LdKjNJsP42wsc zC)4!qYh;?bvi6WK#AS_L*r^DQypH@*>ikk+k2vuSkE~4w{m>5T;jeI$)#=TTpTEg9 zTAX4f4ry^|BKCn=fh&GHn7Qw;-EU%0I@UBo>~XUQ3)EN<&g9Si6<=IUA-?{lFq5&B zStCj6$qVwuGF zq=pwVr#7ir-A40I%EueF9gk@u$OB5?mn( z<)6P|o{HyHiHaXd{KLdYUAH8o1*FXO#-g_lp&28ue@jud>3o#l3)eS$-lk%%vt#;l ztvD6)+4qSFxhB8)q)q8YUYU_?r$l07*3K5Yzbo4d#7wj9g=*ABGQCHbS8$)!|Xq=*9 zc*>y(IhDTrgywU_?*E95Lew=Vl`85QkaC791|~BMj{STWlQ>k7M?ma)J4^djcEK@K zuR^e2pib{ECSOZswqa)2Fzi)|{3Jdg`N)Ng@KQ!%EsA#mxq8LXs;E(*Qf#yr&KZg> zeW1p<8(Xa5aRcIKr_?GAvczWj;+)&WOd1+T=zH&g7)&8zqH$B%T*T(#t_g9Cn+iUb zfu*j9dw*IJnp=qOfp?JM~M& ziJVcwQhxbLn0y7l?1urlRB59e12DJTZ3Jrd4OEX@^8xv!?b?c75nI}{4U^gn1wr?s z`swnhZD%%ko%RFY6d0VR9Fz7?@yuQL~n zjW@*teq#%MFY^rsoFMC$xo3&Bm5lKr{RO+Wn_{X_wl|jz2l%AQ4QDu&_-afH z;Up56H7rT0(P$;=s6i`PCTBQW$uzWWZbj?n_7z%*4=o(tV-C6gYlBcC0lOXDJb`v~pL#+Rq zsHWKVq0{48?tLQoV=k-c-#{lCduJg-X z9IlEbw#t2%P2C)vr3^%*)rKx@e?sM~Z=QCvyC+V=Yg^6q7;rUQ@hr10u2e`w zVaOBm6ry!p;u$k!4pEx1M*_p;+&zjS%iJfXsAila1KKr_c#k=ikvzXG_GE0R!ySOk zG)jAo3Y|!{fNNCiD~cs41*jpD)M#@1>G-9@JEB1^IJF0kKRIyHLn`))40O|e#3kyM zO+#|vJVO4J;)Q6wDkg}+>M$<$$!kJKd#;ioE=UYHq(g}d68V_OXAn986k;qki&S3L zx0KV^cw5HCS?4^%%g#Q5#=e^8p`O#ENH*s}zJB8gRVrIk4{_%RLkE?4SZN(0ipGID zfhpYY!)?E1&?>oTyb^#;>&mSKz9*x|Er9oe z=c^t;Xk-A1&d!&)p{gO#B1vRR^!qKy005&H{qE>0&TS(0iA|BjVjG$jy-rGm;$Qub z3u&WkmUtNpmV;=UKlr~gzeYFzhx1FuNsYNP7C~eVyq~^kmvh|wT60=@ehK}uN!D%% zQyaf#e#~?C3I>u*q?8U|m;lj2+!X5v&xw-Sl=!$~30sodku^=<;I_^@@4q8&=T88s zLf&e2Fhmu3>*81b@6fNe*8gYt6+5guW4CZh1ag-p3pozC-#Jx@kgIHd#9#5!c;*zl zOTL#su-|J5V{{Fpw_<-fm!NRPpH)!5QS38PyX3d$$u2oagj1NvF8)T@@4%jJ zwfUO5wI|Tzrkm6jJ2FIy?D>L>;j%m}c!8o;uJX3k4s5n7S`tvtr5P0*6$nKtAccLr zt~5co(&D{Yu95utED@mHy13T-P;6+1=N5U4{q3F?00q;X$7elL8G|9~-);!^gzAfy{1nQ|(*J09itl#_Z)PWMk z2eJ6+U3Gjx`K$ExQbCpJYvR1BId(CK^qB7EsJk_nEmbwQ0|zLSj9mOO7S2U01|Wni zj)|@LVwfXd20~8;Gtj3$zaT>;-!rDR4Gkx7M@scDz+Q%GhCSZI?%0Q)4pU`MwadOl z%4TPjDmyoJy_D^WZA_-S*-kg`I2dwc7u)HUC)3?#r#rHR@?>Y8gf%zT!%pWV9qaB= z23GGXHLyM%Cm)%yu3SQ*DqJ>`n_S)S%brcbW1YV{m#M4;6gdKyeWg{(ie3g5H)xISM^Np|*XqR(3xinHu+m&)ta{Q z;ZpN0GZOn{JDn_z2}urf1H%dOb9OOPK|+@hDnmFlZf*j{G%~t&^^`C-N)E2wwv&^} z{q!y`-+Z4DDMOsR!BbgYWH$Va!fMSgtdG>ls0z$r}Vnu)wV#Dps z*83{F-;c(o@j7SoZylDhCm0^tjN3-xHJm+4!J>5+8+Zz4duHLfpWowDo%wqv!+$dF zukm}K%cogS4^Go}_Ulyc^cBY*6qvA6g*WzKi`qY5Eba@=mTm88I8U_S;}(vWm)cyn z>CZYsJ%7kwF7k?D7iKQuxgxzaT~`op_N?JA8}MWHi&~>=9l@20D;n+Cmh9TIq+ z&Qa1C>~)?)c5Z%AHx!mtt zz~Y}3Z%yTwGzThnOPbTQ#=iaidz(vn3d!%AtTj$9%fc(331rHS|IFCeUfNuDR8~A6 zR>V|li5{Anc93|olNovNB$8uYM<*znIcTKRNvbP9`cSL+iz8|W5 zQ{IT3{(zbcbdkB?kn39n`+YrPgI*fyh|60o{nag=SP%A?Lb*e=F^`!i+f`#@k-CGB zVK39aFfY$HF1g_gRTg%&Pj3AZz!dR)?g`x~xsrH98=FGxs zGgtMY0yXu>g1z2;>)Pj2z;O(B)MM}2&kEg?mw4H{=>!}1#e00(2N+Hb1>K7b1C?F=V_?JJI!eC<3)fX z_Vm2_Jt6i^V#VnN5J-YThnIn#w162JBZZwht@G9l`-v<*=9^$aw2JL&f-!EL`&}BsasiWV};Ch zg;;-mb{ML^S-#xTW~+=b!F8lb?4aOW60ztDA`sDnA{6Yxro3bI6{w8={_Eoh3F}>HfFgALhVxCHVOA#pF{!5`6JzbjtKAa|r)H!r8N^=JYE+bxruNgeuLMli=#x|cNnmW(eTKVjfom%uzl@+BY!dpcA{f9x2qzA zH9f0kr7A*8*E>#%KtSKKMRFyfkzD6WuIX16k!wl@plWK}0oVL>`Wbr>-ie-iWR%@? z*eVXvuP5Ap4Ul1FRQ#Bv4lQsYofO;r6DX$HOWbYdWlf)$lPaI^A_@Pt9bTon zjsghpDdD=Rdt#pI5{HvE4%B(P2#kSZS;8NH5rHls53 z5b3Q`aWVAs%Kw^1n1FuFyJ@z8=ws-O&^zP9!cFc^oS}*5Vc}}dD0*R)lOe@T*CP!R zr!u*HqZ)cn05^+WI)D8g&L-gvFv5d%dYM^;YLs=&E9JMQ{l%VDIWR~s3e90keIiKo zJ||Pk>uPX+68~M-oDw~#KRiRzpHAwZr`C5wDi9yIvlzA7#x3Lk!X`pcNlb9b-37af zDXS2SF0Ba*3x?i?bpCr6N$>h%GL7Sskb{b#+6NgG{Vx&1Du+=gM zec)#m2>{=gcd8MgQVA<`a%=%aF5avHVh^rn#EAS(=~)WmhtpZ{U!P$9b_}@0k>tmv zKRnZSOtb##KRYE)UN1mRvmT#&wj-^tlX^c8RTx+EQ}z~>n>FyOa*7mZ!ul%?kB~_o zd%5`C#V89q zyzh9Lyys88d*-d9sn@;9(=_fUcX)5T!+SoyW>R$Xz2Jdm!W@{0nV(~e>(HCzFY@^2 z*gvk9VeNaAv9gf49D8gJTnuESD@W`tf?x!NK?+SOd`>t#k2!y(TxPnd?o?^D_q(Y4 zGlV^u@sDEdJKsMy?~EGF-N9P4ehlej=bogN7GG~!oo>QY<7~I(d#Jy2Ly2pP-Y>Ws z=sn=?I715_5{@I$s&skKNN$Q>D#Cto4B1raWI0L1?mPJs!ELa)N}G5@kDH_hiyS91&(&LOBQJUZto{M^Lh!^JN&U_upmbN4 zSUUbuvBUZUSp?>mes;pivIHBWuux1W&m`=KH87;r3pVe@N@$P>=P-;kvLB@(l^}tk zYTd~2-QM)1geBl%-}9XnXK(&)>i?dF~b zUV19fy72PqhsBJuH#iWIA~LWqvX%cz_9-kUtO|z>33hwok=ojo_R=5Q3?lW_PKGw; zL_9x(W+qK`_ZK8`0qNb?d$d;Y)7#o65UzI0o0WkLxS{xHx9=zU(&cA6+!TF*;HX4c z_0YGKo&*m=_}V;StfvZAqDrF(qMdlvXis?O`zyu|7Xo}*?7|X^)bMN_UZDHV+TS|N zme{%P3wzKUXD|%8B_Su20TNBM8*ElTA6LIl_x)etV;=^ygB|W zy?%G#Bj}LKl8|d}qjdNFM4|OJ0*LYEmhQ45cH~Q`NP_-EkbPbu^zd55XPNeDQu1U< zZ2oAXJOfxAejO@*@&3F6;+|%y#oAI=I*mZ zpT~4BkHk(g-B0O}4}0szdpwTI(@Ofg<&|3fOR5w8$n~;0=j*GR{2deKoTaaRiHnGH zhHz6^U$=t;*jsDDsykG*&Z7JH^`$z zhhFM{w>E2^r8~92X_7iDdin*$^r4*^DaZ=u&)QC$l9#MK9amU?usmxP*EMHq!L<^zW}I_Iq&ZJp)5c?&BTmx8<9}IB ziN7EYy0ro>Ng#Hc?^lIx1?qh~lDD+V#N4KPRqQ+9A7lE5w{zeqz<0q+Lbv&$q%%7N zmr2OWfSl)omojK8bpNJb>i(m-b1nw*t&u(1o~9rE@JB!T@sDr6-ScW}an4EcQ;uCf z(dbloYBt@^a${O+-0tt3GiM+)FXG0*f7KleC~CiZEK*E-`xOT+s2%k$=3#Tz5* zrwCHCCpOKlG@FgN5YA2=X=Tvc07>cK4XC z`a4!?i-aCqj|fo?yWY#^$$`e4LT=V)8}pYtys!Hs|MYiUI%k{KcmBYV z3%C6CCV%Y65^^U}ZtMKN-~S#CWCL)b-x$JEzsz_E`%m%z`+t%5Y2uRnI@3~fn|XS) zQg)6Ih6zr0`096ce<#FARt5c;DY{Unv-M{@I3~;)qCYbR$LKkI`Fnx>yv%!j?FIaG zWAM{$zU&_Qs_x%#y6!)6{+vN>t?@ID?8_YfGnw<+6Q9k_g&)iIU>3x`;U9{_C1u{6 zUe(%q%!dwn;UATbQ2Fz^IX6cS-?O9ApEzgE>H6B!D1qt43>ngm?VM+N`SVzIOYDD9 zBH}$>9Kr{nPxtlFv3RisA1&jJB)J2whwtvBoF8iSKY(N(Q`UDf%OZn;8HwP}Nu@PT zl7pg$x!wzZmlZ017>M!=ltKdU5*?cNa1H?lDqyP}fI+#rg(_g39Z*0(Uls6_9Z*QX z02S~H37Aaj=A^+!Cxtc;K%Iy`Cgo|3mD##kiHx$<>PxqH!jqg0gm#F|*5^<~sDQR8 zj^j|INDKCW{22RBi|p^FZpdTx(b#i&{x(Zw!unc4jN2@%p^T~q9xRhmyl2vN&9jDJ z_`JwBI+b@SrryZ=&&%_VU}}krZEb*?SC{Zp!mNV)Pkm$R5((UME;c)Pa-?^BHu(#+ z;CjL$`wO%++yR{GB!A?e-SUrUjdQb%{g>w>0dLNZuMSUK$bO=Fo4F;@najQe+$i2W#1&kjuG)tCB~HeyUQI)e6CGCDB<2yYc5h0dIhA$Uibe=WfYnr=I^NMQ798 zs{Cz~ony5?Rgq79OL}!p-i!$4ufc|41Z#W^z5Ok}^mq2q>RSO)YuvH^Vi|R#IYVFg61<2#B__NKzhsioa74n4~RAP+t7OiderfExgLJ~ zo1l;6cgVx1Tbv3l0(-uoCC3tLc`SzhjzV65bv7H#Lv#}!tkp7!(AHedg5Hu>dT2&) zM)1OSSJb}0r<+SrF?{rvtRcA zFujyN^gpO)2>GsOQvR#oQOf-@Cx7z$SLrh2B#-l=dp59!Az_Y%!873X#1CbvX-_p$T4`*!w1^U6=s>SqX%YHWT^E;T?t zIpk`R;xaO`1pW=)ptwh^^K<)M05dEKuDZXx+gwfQ9a;;~G*R1wuJc}4`?~%LQd>!w-b;~x zh0#jtCXe z@Q~&&D;-ujxDu>~97gj$We6@3ok{ByYBW0T&;q3#pcw5qhKhrSf_;6Aj-McfSK&Ac zafGivXmoN;_CpnjC}qekl&uABL3JrS$&PEq&G26w>J#!cfyW2gn%%>$@QSudc66{p zeNPV0N>uuf7Haj&Nn5EkA|tIB1|V!2*RW|ssPRZm*!3tGYQjBl+0JY4`_Q)6g13|0 zXz9cv0hk`~K-mE;aDefF$NPX&e0%X3ti%s(Fb;AVvT^bQS*30HtyU>&TRKPRo{&;- z^^|N1O?j%;{97zomB%!+z`qF4ds2Q=CL z^qfUpdQI#OPdH?>=V*(z5Erh0<6V|A!SVBW>k=|ReNS6|QpH@I=Puo0bZFW`&EYwU z%R8LdVsz$d_4gAGQ0`E5fxfuKJP>Km<%Vf^$br$q-Q|qqVbfe=pWi%E@|kD)XJWiN z?0Rj14(q-qXC@rt0foYxhq;KG*j<=2o zckN8l3a}vgglX04od6@VOb+?Yjzc+luzdR&&{hl_rxNWX;J8Eq;pMCi8Hv{5J|+?B zz>i6yUuGm)a(qb~e2DEZ>+Xz1w;x{;W8zv#G+8B*gA=WO?C~WPYJm$R(S>$N?0~fU zYnTmni3^Hw|I`iRUl&yvO7zecWl7rXjI?ozO{IMlHZvpb+sp%Xp*Pk2SX)kHbbljW zyZg1klen!vl0gquGZ5W=p_u9OsP@`9SPq@)?9L=5|?fBPVI_2Xnl{g zsa}{wx_Cj#=TTM2SPv_bP!hq$ek7I+VRBab_vbR-wrNkaYQ{hT=oC`R7!URkUx6z1 zSAxg;UsotvA@0EEoX)bdIa%B>xJ+0g-Q{ZvQ z^lLI*DG!*0dtQyGr=hCOsaBVAmlnvTkn()SYHqtdRs%ywJw7T4{{t#14WKPPNt#oqnqstOVSm?~SGw6q+yvxRrQ3~z zY(=)vvhxpD$}%XVC%8ik-VaA+{gi!;U1Yz@RFRVxWviEaviog)5I!P2Jm38_h{vo%N1I1sMJzIfRW(-Pmyx4A?_`~ zeN?)DlouZIQ|b{K@zaO!8;PRi8donOa0b&_$7S|CayW(-ZP931N1i1rRev-5X{!Eb zm0Q&xSc%*E17yc0fV#GNGlCb7n)b@0NB>S0r0b9x(H`TPbi|U!K9SZqGmF;{*r>iodAPECbBy^M;|A}5hp`5d zMJZ+q@aE3=NlIEJp0(09EHLKLAWQv_;nd)*s*&w|q;v<1cW*=?<%Ne|4<5#*5k<4O z_tqNc6*}#py9i>GV~ww~$k%2ah5#r=hlh+P1C2~6WN=~NhTdNxmQeX`D0JdIss(vC zh~jQ2%)$$m8R!~&b$IB1{6 zC)o{r2Nlv3yKx}JZfwtwSS`u$pqM2xT0U3V;acQUL}b6qQ*xO9HO{ENoTIx^ySx*| zL9H^Gne0;b;qmV);G}Nrh7_pRs)`QU6-|WkJHDbahj;upRYcsm!e7BPC7Y35x+T8_ zdB*TJKug`H42VFT)c2v?Fy9<&uebzBVnvM1-dofGSy=?O284~NeF2I$JmRahnn+L< z@l{!Wwo_`s->DEgVQ9(=@xH2{rRmVx7ed$3gsq;)K5(^_|257{qjE0t&9q0G<1*_k^JwWFyGkLc!Y zvF4G6naUP!*AjaRH^$xOn^2{6(C22HGI~PlUX^hG!oDHCP35t-HjuXs@%6fGL9ns% z(9TN#J|_#uJMllnzW3osY}{gDA|bzDCx7C;^YcVvJMEL-nB*_z&kPGdjKmnG9M-Mj zCue#G$ea4z#B!ecJ&rr|>rT4V?_mi4FZf-{f;^R<*v`6@-&f4$Gte@h!0*TW9^lu= zuRHLiem9Utek1tpA}$xj{)_pEU((1oCmEm0Bj1}yBi|*-Z)V*8b9dqQU*TdUxRaX} zJL&Hi!2Kb91M!#gyOQ5P!sRy)_cnfy{SSVFI}(ZiuYW1{PE@bNohbbOFJS_|SVl>n zABhISeEYgO<{ab^|oLx56Ma6O>#MGr;Wz?`e}dS(w;E42Yp z>^YUTUc9U_FoxLJ@?Z76oH!-{XNx=|aV=X~fr;b&lp?A$^jiWH0CCD6T393@2)W*g z^^RrP%{o)`tvw-CvY_E4ba{9mLn`v+O4$@l%lXYl1cQ)R-3{2yoq)O72TOd zahL1)JB2l|zLZXE$@5JlFqa&hmgvZw?%;rAm+R~o)AH@(PD`4r@(&~r98{UvU1jE2 zD^-~}zNrLeQzpj+y3^Qwd1QAVvT^8;mgv8<{+lXj$w%Zr`s7w;zUUgxAa}WLB|kB^)sYTD_~{Z7*>@^cx~Nit`87$rt}WQ4=SyM8;%n*DR>2=oJM{2X zL8D{!>>)}9h>5XWw|TKzRflG*sx_f01N88>+SpND`x4y8izBY)7;eZ6p7|*=I>-8c zB@=6hROfP7FWlrqT{S7;Swb1%Dk)^v(;*P61AHDf)=s~URg;p#Rt z^%RWteSw7Ae-gcmBDKcL!V@J{tA7P=xZoF_#HR4ziN=Pux+6TBS1{`}87hxck~s|x zEMKd&1NKG7HZ4t-xtW3|xK_gJjtWuI7CkKTo&q^9eD$xY!gucWcb-zEjXOwJ*BKqif$4+#zmP(5 z%bc{%QH4si^tSIAicpD+cSzJw`1~Lu{GI1$0VnDFo#k4f9d^s#Nza@rU70}q?{3mV z557ji8nd{V3ya)Jt=))9_j4kb)0+e_F&S4PE_SnNN0QW}K)oK1f7E;}c#VXrqFSvl z=qeSfwmNptx2mC#4@itGfp2z?hJpSg

|V(iYha>g#{PUuy~gie{@9EbHri0#~Y0 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�>yr+mK@TJRHku#`qK+ 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%0A|Hux)Dk#VjtZmQoahsY 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

e!#lfM|9<;q5RAw>QQjzrmQ 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 `T0-*z?QnvZ)$t~ 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�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 O(} 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 z

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 z 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

KS~n6`9(6J1+B9R8dv(YEkmXK;_tn3C-) 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 HrLwn8; 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

    tBt* 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

    +ORFQ%ndquYDt&J8^@eFKFHya` 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

    ;(BXOuKU(tQR4bof3MVtL%v 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
    U2SeUt6l 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�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

    >%I@tO6Y)6vhzeYJmElK_>T_2_>4KU;8 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

    e#9kOLBsLMg~V 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%0AqvhXU%l}y||G%~TTWI-j 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�SNEwt*^2y2CP!g@hJu|XgwT<}I= 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

    E$t^9JZ1Tt=%zsMY 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%0AK_z)Swiv0jjNy6?qz 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 z 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

    ){7`n!lf3 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

    P-H+# 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 CV6&wF diff --git a/bin/phpdbg b/bin/phpdbg deleted file mode 100755 index fd4091f5e5463f8bb4737544784e872cd71566eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14001864 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 z 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

    El!9Wge0g(Awf~+?UtE0OS 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 XWYwy~_yj@w(b~gYROU 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

    c;N3^MVXn}Eyb2fp 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

    ySKaUugoh%e! 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

    #i6dDjmMii+rar5#Zcc!j?9ZsULe1)0 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

    >)$t3Lc2nG{?t8*#!o&LWk!E4}=cWp|@SJhne&& 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�LHpS{V@fo z12EjpVI=`mBg1t4MFJD)=-iZq*=nfBH$Y%A7dRIsVN*FVtnlvX<{O%X*%2WO@^y0a z^#vB|;r#te&2k;op=CS_Z8jaDy6Owe2xqFp6|{URbjodFSowtA0#msp-DN(mWEKX2 z2f2G=ofCd5-xDpA9kQuV7W8`dG5tKTR|&}()j_@b$!0K*6|KvSmXj)7pZq`Z+l(QK z-&)}}c+D@o*766%*+%_G8N8;yGI;F{>9@f7N9DEVG+w)N)c;GoRt=-o!f4ABqt*T! zMq_I-5sO){3n#a(lh_>RXZ-xHm~PQbC_pjYg)3d^6sEh~1^grh5T?6P0E+1bqyWNn zlU+cz3rI5EI2YzTnXD#~V7gL)DW-ch1xqm9DK2bf3YK8HW8E_ENx>3Km*v80Tv$k$ zZvQP*rkL*P6hN5nGXW?pMyCM6bZ-klwfBq^K$vc$o1=FU;4NvgGfdY%jpz%auao?5h{J8M84{3akr@Ziv z1>rVOYGO({S}{L9|EJ3PW1_tLRSQ6Apnq@4rm_VJucq*(4%WD2Lo@d)lKM?TpJ=+m z?XRCE%HzIW|Gpn+66x|St$lZ-^7l&QXUAGK@F+!8{-D2osr*}hr~9WD*_+yO&HIj0 zKtkV2z7Nm&0~42AF&Q`em&ykMP{n zdF6B3Dr4b;lAl|-IlZwwV4q-jl%qcCxsTw~smIIJDIGWoqm*hnpSrRS6dziNok3hQ zgOQrtN^YeRhvhM*eT6sBv@1vX8&~9V(adT7($8wo8qui=i}7~nybbvtadx{`$#-r8 zY2@O^&c65tE-PW!))fT88+TN%=axAhz`BWf=4flI|$@0_s&#wk>|D&gEj{pUN+f2!+0M(Te;KJuME%g-?9wJ%il z2d;Okx3=lpzg^plPTS-7C{%pay+!(|VC z^a!sXocclmX$|~|oc@btyn56VuS7x4?Sy#Zb(hppSG!AIIt$Zf**$+(u~!L+)edHj_z^;GqWXT^>&n}tFocQ!u>MMrwe_T?f^nNU#+ z4mPO_JL8_%huR-k;p^-t4>_d-S4H~ad<)OH1_aG(=Yu`GhMpQ~6oUax=&YM+)W0Cu zXe&dr|1Cb~Wx4(vIa$LL60aI>+LM?ncjvJA%H%qo_k${OM`TwQF+*5QM>Z+b^qU`t z+fMQsp|^Zp-sW-JRy{*D@2K7qI|icPE5hZijrpF~Yqq>m$yL&kiElZVAd~2^vCgvX znvkRK(UFVfW0>=#2&_n6ee1m*--~H{&ptEwzx#YI?yF$mP_cfRP@LT2dr@@|e!L$! zt*56JUcB$CjU3fKRiYb|dJb*3=xR}?BV(_l}jB=%V9em=Qv93?_+pC|4dcYY2BiyGzMVb2xg z(RYt2V%)(<@jk3`&2Kb8);P028syO|gmAE{cR1&g(^}_TK|GI4R!w#;A|&>#N4JSA zQXk&ez7mCt$js0VC{fy2`)l1suI7-2Ay6HM`4PGp z<{^;4x?J*ElCCT|lU`c0x^r)tE@l*Ekvgy{Pv+Dl+C zD8xAHST>Cqr@s_>l;+P_B~wdAQy*bW+N@D%1{w+V7WY)Xu6aGiYI!x~4I_l`FM!7yAz`$~nxT<5;h{viWml?P4PMEW6O`JeKbms_5-JRX`liX%?|F861@&=0uQAVmZvUn2wRb%GOQzBX&Rf8^zO$~jg?r(?kQVWTIuDA9m3Nnv72c?3_U<4SvQ7~Tx0FGdD)6G z{V;{XO_i>9-#mHr4PHuYU){7qsJl$X=D#>~9kUf26d9 zKVF)46;Xc$KRf5ozjzea9?_2#zIIOao9X96?3|m@zm=bK+E zVG@|i(`4eP<;?B{sV7gzCT539ZBJmC)CEoKITXSeN1k(bob)KYst`!=_azsH7o6^? zz7h%N95*OqB~odZeZNJqZ`HX$dr*|Hs3daW*yF34cYLm=>ezst%`$BWhoco)=dm54 z)DVt(f8cuLB?Hj|)BC3R*RVgt?n^5yh9AxF$K(zX1jR~43uQM@8&5chDzAC_y@7CD zWN5|tLMnL=TqC-nwapp$=YGt;q3dZ{WY+t2BkIXTBkwnzMZ~F_EDclU11+>2i(B1rW9qI1^b=KMxt* z$+rfI=EU1xjOEfEcf%^fUlc5sQKD0DQ$LS0_-{f{LJW0MztDp#Zzq6NtHhGSeh{7> z&jOv<#hKnsIXt{NMJD0A`~1r|OPzFiSPZPvK4Tm;$ThlG2JNBe5e_tcCQ78fZY#CE zuc(`M3gdUiI6M24piODDttAI2vzDTHkB&LylY)i0Tm zi#xEXMW=o70F#bUiEc48K-MHO1A2fciy)Tr)wuMs_q4Q+$9cCqv6+5^>GQ49)x>Cp z|156-PuO@)R&|grm~euO;Lz)?W*9_3INL2PsY6^*iN__vd9u^&-z)p-Brj=|Q42ZF zeWOH9qquT(B&%;@jGL8?rJVP!0#6|V-zuqsrrv@>3&+F~}Viyn5cmgTayPawf0k^n#q2K2XwV zu^y54^LV&Ec3iSNXjj}mOL>CndJ6F^zGSGU?oe6ParIk_`pbyX&&JK#6&=gR^rd`q z#TuTzrMqU|BB6a|P_VPHMnDl~E_d@uwKFYsO-ECPqZMj^HRR1J{&x3~- z+9OVdNbgh1*M8@d_e24%e!HS>#Ce`-9%0;55uP`Q%lo^Iv*(?f>l82P=3^9FuV?4v#3PydH z0v2KGYb-fHUzHp8Y&5g>(O7H$!7W*DR&R?jT=1Z16)kk%teR+r z2r+xWH)Rj<;O?$j*G12ki14~2(X9jmQ;!6*_JE=}^=oGmMg)Z%>DQB93W*&fe>XC| z_JEbdRWw(g>J{c-PHd%3V#1|riZ;Sq)AsW!j5YIydboq3kJV;ZhDSW-Dff6zYN7v* zi^}=AHS+CTuvxm)sQ*1NJi8ex{ib>&&wNFf@U00_s(~5OXLi>glgVMZ!X#%tn85>J z)224V)h;)?-HDCw2HBF@=wA-A#A^(r{!wxTBg-T<)>GckjV!xHQmAxiZ1nF%K2+}u zth!E($@J;LNRN?M+?(O=z)Qk`gN|vn;`chzY&yi7)-Oe}dquj}S#8BFyk6HmchPv> z%x>;t#yN);@5KqeIWPMbbq&N{;?|t16Lrz9{5PKI+H`#%PEc zSuMCa*F7krw#U*D(%LTO@K75Q_#Nw|6WDn*TGJGsjQIloFM_WEmfZU0{DbSzk>@b@ zMrR`HJg0ns$U%QnU*#@I1OP1ik@F4~e|-7*5_N6SgG%Ddt+T5EFdN+YGnr`A)L?D% zTYE!R6v?>qR0P9CIT|IhB4SH&Nas6J(K2GWE`7p69X?Nd&yZxjBm& zunSBD&%E22yv9~R1lyxp00b$^ka7#>~gL&{%Q$wReT z8NvgwjGa0?cj2(q9Dh{}XEd0uwkegD0;P}kiJm~&rGKJ+QCD*wxm>N&8^sdCk(<0f z^G!EwWrno2h1Bf$_$lb`T&{USj3XU+52Pochn8q4r=i31%eiy;?=(#>i>^HYCs^y9 z?&`N0jd_)5*r4$@)@*bK_Sd|!hD3KHZsUEj1KknH>nG9DkvdwQBv}T;nbKd4ZwpF; zUQ0}CA%*ngfd^zncjLkN`2A`?7fnhGmm2Z|G8Qj=r_wmL50u}7PKT@ddt%I7A;Dzs znsgJ~yDP*#kBOLm$#MF!@4{FNNosdLINz8)KNXS3s5h89n3=*0%2_&g;DZ^2vtz@8 zk@+$*L8G!wM*GP>Bt~LTKkyA2{v8Q@h^LjPvc@F$IE0ily!cybp~TLr%=2EJ#B8n?k=mm>BcyH?4-ZHg;UwtzHMBtUJ>d`~}5 zU2Us}=Vu~$_gpH}3!Pzv)U3+Zjq}PO$z8k3>2)RJT|qP6CY@;9iAF%i*Fna#;9ps~ z4Gkj@Qh`X2%U2?K*Swfc8LR)?OIOH(19SD6Ckc0aTGhvQpt6vyuw#7j?uBB~-tByH zXCF`f``WzyF5!0EoYY4$<=Y)!%n)K>y>wo3B519&Z#mr;@gEMieP=9OkMIaauA5M| zU{WX3TCHBaZTLhYtxtk-%{w;@E%ab=AyIjVEz1Jm;>yCJ5uJ>NBPtb2ryO_V-7P*% zHXh}QB9pi7WzJjp8Ih7}h~ye3xjstf>c%mC-epp`nj}}YX+;`Ut{p^51{39@d_-rX z;VB|m0AuYrxQ1nn$2oorqDN{S2wAEt!-hV9Kus>`oe97Nya;fmb)>SGgE6Uou6Q^=7u`JR0cbYC{!yT=gB%@n{_L*tcDemx8ePu z^+b!{T>mjeF2>Z%mGO%NTkAvF0+bf-kjm`gbqn%K7o41Ahr~XMA5ZYbJ!GqeM(T9x zJx8Pd&wK@K)r}#Mtvy~?vdk0WP$dXUFVPP8yG2;bv^Xvr$=jo3>1x4RUhvxo9gc*Y zqH@!tnQ9Fw3suU8T1mM^9Z?o@u%zGq0dgwxv=kwNeZtsd_0m!-?Lk|`yF+k4v#NAv zLoMo(Q@xigk-V=EJ9y1W$;?QiG&@&Z+TRoHoTCOX8*b@eFAJrE$}dIlHC;amCwYX) zR5A8No|eqdYqXl_p2O$$rZ+h>xqXdV!}KriEfYx9P!|)K--QMQ8AFh9_9$c?1({fp z^Pc{CUcUM{uj;S=k+1H~8vS*Gpq;??v5DY&8FE3rkQjHqenU$44~c$6KZ@?9=tZCK zRc{3Q7W+LTa9wSpN--R0)gH`gjQ z?pSuFu(7pFh|lRYPs`wGLA%IrS9fBj0yOzWW4=}oJ!=h{W^2KE*YrAvz-Be+#!px>m3Y5fMBgQai+5Jc$ z*#O?yTt0=4@zj|GS*C2yXv<{QD`wN-0x4rK3s`w&FxePURNiwIyaM&uii-eFN}yue zchylsz`9d@bWb>+-$7MrTx!j1^TkI`S;<*JH5ARN6w*UhPfLR+Oi{3!Y#%4LpJn}o z#BdhAF6LFmv@)u7tEDeJM*Xi;e%>Qw)eeA1(A1N$Xfg>Fui_Q-xbwYgjo%v^$vS*bpi5RfB3oxQ6AP zy2pk?Daj~YCG(I8^%K>ECj}x7UVT_Z%z)KvS*c@$h%A$#(o=a8%B#QrK=m&Y)PQPD zVatJYNKeG}Zi?{N({m3=rB&zg4%-BLMSL(wfZeFn}lD=jlGiKbmv5+p657c>B)Gwztw1v$J1D=2!p37=gAyjDh)R0s+>ou zO=~~ZtHqroGW6KpSh2P^4-P^N`5ROGuhUB%LaCZvg{*#1e)Q=}M2k^V0Lq1^yi>0s z##S1D2+}x<3|#<-q30+8A!M!sGP}n{jL51k=dP!&ZHZU`$4(*k;*w3#(}*3BRdw82 zK|qOa*{Jz&A~Vvr2x%+~(PEOgNT_wyM^nV`Z8ZFa+Lb=Zv*pS(7Q=Lwz*Z%EI+5@x zK~v_1Wa`-c2y&;-U-A1Z104i%ATl`@8O^Kr8@$ZN^)sn8I*z-ugdx9NAzMZpqNDkC zb~O#kv?nV25clKqECMRinD4`FM~sC}P@OWiaY>McKRa4OQiC!Y9s$TgU1YB1zb|Od z^!mba{K2Xl*-4O$k&5zQWJ*C@O%Zy{A0#zzipXeQg!&@;3D4?<3B` z)ltn2D#S;CSFrhUvW`Q`4A<5my~K1Yj%UWgrzL?XEOL~_IWk8v0)_;>m{H(zs(n^S z&K?f?f0TqjLKHyMl?N1XnDdFrmXL6rMTFAVbIccoX@@X_IG^p;4p?I03fOnd+~aRIS{fEY!MhH{lgyB&m9#s-9#>?kE*M;7tpvm2I5nHCOl zB)9ylV6Q%+3(Dg?f$$osk%pfq*s6y?oj)#wfW>??oH!w(bNHp_m*XI|Lfo=&`)b2z zbDwCEvb!D$w?K$$3|UFC-Q?V2%d8eIK;qyl(`Z`1DIy3iB0H_H*cyV?V{POLL}Y6# z>=0}Y@8z%fIr!pZa+|{wNF~UDcS~X=r34cT;2oU!l`j3afFt7Tx1D-hscX6OCIUr2 zk`l@5bfIVmJ%(H?suC}dI+vneMFk1u>GTN-cqIg*fu&0K8oGJBM8us=&1yfIiC%I( zzE9fXZ*4BmrNccjuGQ!fp!nrCVPqxC7o1J0GqTZO5*HGQj9 zTIQJejir*tdWnR(TH>S~t^hlI0wu_vV8Xtr)?1gVy&$83tqG7rF4&W}@oR34r|NXJ zhYnN}c&kS$7sc`d;SwK>l-uvBCfAKC@XA&u#N&yL1^4bDHMl;AF*alad_x?Sy~us<%6<+&hRjr-QC0otw#b$-j}#okn9 z|1QYRQoHl4>@UgQmeFv}585+0*`5oWg`X;f^3qVaB@KnxP?}Rl-O$-}Lb7gitS^Nm z#f4AZ8D7=1Zfe1vWG|#+9v=th=V{DWXv{yPD`LM>n14JD%=LMs{}sMlK2i8iQ(ddq zCTjz!E>rkMs1bah6$*0k-S$Na-yw|JkK%iw;Ct6P)zb-l&q(2Wwu|q@6V%orTCb2w z4WzOFQaKizj-1}L%V!FaoX9QXVnaJLR-se~N|@2~PRJNAB5!yH&pI5%4Iz=LX>8xL z_YNRa&c=QvOp+k4k)DNCg+vsWnxDCZ@H^$?eSW%ETmX;sWz^<)S7b=C&f7MD;(PBcQVWI43#eu@ahjtZrtR7AOd= zspxdE<23UL2RhP!N&2RRDVGjxG?cyD`4u{i$ocql4#0=V48?3ra2UamwOT6^m4&%Pi8jGPEu~HnEe_qpO&~QT(GCOzn|3&! zF+iA1{UwbFr6LzBLy;Q`Yo?16_Pim=7rSN%|DhRXaZQy{li&!w6<;w>H|}(@k;9)Y z8T=keFYFIPCCZh1h<)7P>Rkb!>`*ua3x^!=74UrKT0X-qSw0JJbUhyo)_7!o2`_Gy zY+|_=x*^51yc{3N8;qk25_TeV9V;i0h0IjCNU;*Vd5aioS_Y;6e7DH!oT+Unoynz- z5d3sfkTFJjov>6AX6|i(#!G&ZiLd*C)k)n%O8uQ9I^02LeK)B0=k%&bj)Mg>u`XEX z%|h^=5U_t+M^gfKG>aw*TsC;EZ=DhZSM1)9^%s$MX!rr^uH}S$&3CQfN9J(3=(Zr9 zEB%i)r+Q;JXuxaEOofF}zlSlFcXrXDcR2>gL_Z|vNBBqNlRf5iguHRr&lv{2$B)3i ztxeR(YlvFR>lNX36U5Lsp3i{wLBKwq+vCuKM@bGOO(=4mFws9MGnr_&)8Xm=!bA^u zO$zb_itx;GWwf=Ys_{4*6xbol=0Vhs;(s41$;G$hzzbn+Z_t%1qq4c2x#YO^IrzxTbG^HuxRDoc^ zAG(@6GQj&^NT-4OcBN!!J4uPVKJ{{+MkR9aeU`G^h#Gx?5ei18iEb*RR{B#d5`RN< zN+inEW{f7+qeqvA+F!_M$dOUW&=Id;l!NvQLRDf^nZ-J#hITl&fi$}au0LeS&Ht%4 zrzUz+`9l^U9$kOP*zNSuzecIv`%u_VYc~3s@aSRGqPn>_W3RK4s<*62}u z?k16K>r;N10V}&O0FCE@F{|BqgKvH?*jHS(t~oBoS!p0 z^x$sitOX>p*Qj_p6@qx&mtcYzr+D*z&ljSkMe!)FJi93E`WWFHnLkW1{}E^Re3q7x zp|>P6%jkRw!6GgC%TnJiH$`RReny1@@&z#)ZxuOemmkluuLXtbhKS;(@V6b5)3y=X zruSb3&6?W2a>C=AWcBNkf#?y=I|?}+MLt}Trq3am&qPPk-87}mj9e`W49Z-wibd7- zZ%y+6KLq=|f^5E%`}sbYqHGg9%kQw(7XT%M8A<-NjCMNi>Vsx_k@fUSfI znw;G5j*ih+liy;(Z0R8Wz|nQmqN(2t0d*33)Z|lNSVugM8Re=|XdU96WS)3@9urvI zi-n>#c-Y(FZy@qiq5Mj;n2pszm`-sTbb<3kG3QIC2kl`&dkXK%vR|eI;jO>u^B)9Z z2J23HDvfoMf-rWh&#o^NT_R0EY^Mb0y{K7yDAdf+jY!_(`g?++Zs~gOj+ESsHKl2N z?~X)nacvQ!3jYVt0qNt0m$9E|txU|S&e=W^H4a4Rjcxbufwb>O2tUO?(U6kq1~JVh z!!?ADO3w*@=_0iXl10gkHvA7-AYi=nuEYFRS*Y!AHe)Rg3OoZ9bT#!QiXPNvB(@?s z1mX*S*I`yaY(3>Lasdazir|OEk{1;UyIqLKe_@9Q%QD&Fp!3BO!Vdqz?q+p_a=U6Z|?1{fAwEG(pV25gCs$A(#m6y!;PZW}z zD$zp@ITim*PL;|D$jZmIBQjQLJ1`F%er4fqpzJULz*{)#u}m#IVq;)TviG~ zP**_{spK5=kBHkr+}X;sDe&tBE(0zLw?j_T1rXewBK?jo|I{K{`QQHb+YDYtYn=9% zN8B?(L*PYqCJ0~7r9a|-yX-b3yqNQk?tgpha5Y6$w(~c|(Q1W^wzb+6P0}7&@;)=T zQU4i@5Hgd|-ljw_r^DpqRX%*8O~&K6coHEeKg8GJz?cGb4d;Rhj9ypuhK94hN+_Z^ zFqOSerT+)4dCfD#k376HizaT7f+Kkk$`6jD>IAOy<-xw{KCxmySD*M-ChjzmyG`18 zeTD4P3)M`-mLo42Qb^ERJ&9JtW@q%bGx#Ez{W}>&l*l1BepjkPZ$y(`)n;0(1sW@8b#CHx?GKiYlN|_Fbepqh9u>wLe#u z%rLny=TgaVJ7g}(V?qtlUF3BJPZNALt`akO?3ks_E3@_YoqYS6g%9ZA(b?Ses?-yn z4o5qgpD$-05MrI5FF8N&t{N}9aA{^i*k!&uUv!_P-9WwIqo1+?!Fk&#JDkyPe&! zZasL6)uZ#8k#hre^Y-`jRGrqtQ=W{CZz6LnKa<{Z+cP5!UQfnaJG(tF<2ZXx}y|5u*pNru}?Xdpl6YTf4A{>_6%`<4$Fp!dFHLJ^T#OoJA)E&d7y+ECZ z`Xn|C0`MZ;Os{9x8TAKbDws(I=gL_esQiLYMLhV=-?3g;Ks1)bQQu7b#U8+UK>I|w z0A2i_3`#7o?h-eubDWDFlNM}OI{4&h1z*Yg4vwCF`&40xWctl~>GbfS?0}e&hr~7A zb!6Z17mAPM+_9e(WTfo4vvFicQPg+6DM$8Uq$a_lL%*X~jxsR$J-%F2y&idgB98@| z^%#tko@p(TO>Vv-|E7PeMK${CN&Qu)zRJ3s|0qd@-v0j(_a^XBR@eW30to~JCoF-W zC{a*@S_N?-f|_YEIwOhVf?^fKB8sgG!i>ZsI5>$gJRPM~T5Mfn-DtIz)`hrX5G6rT z16qq>1zewTToBuU8}oaA?tNx50sVdb{a@eL>(A>I=6RlT*K^N3_uO;OId|nfc~82+ z)gK$o)l!XeV%KKA6Ct2uCnMyPEi|#N%PqNTCf|{^tWQ{6sH$e}u z&>4b?IG^CJQc!mT(5@DGQ7*Jh&=&>$0N*rFai*X?+aNmoH-TQXpi{CL87X4*VW(5QvppRG63=2HayxrN>;sEOo;8IWlNR`ilBcNbe)A(2x?lD zm)F%mZxQri3oRGakerezZ$!|=7CJ~!5fubkV4&v;I@3b;%7GGpoV*o+o^7GujUX?4 zUwMlSbYDS_wa{&Xni150%KIG-G;XPdz9VP{F~2L&cQ2aGz9x`Pc#SSk8J`z)vxTk} z)O0pO%=Zhr%0mBZ;Aq@Eg zxgiUU3Tgr#W(cEL(8DbBT0srDW(Z^ZD?oc&=(KFf8Nzs7(9hQzY)ll?pfN)jj|;lq zLQfX7k8qVi@=`$`vC!iMHG`WO`dTX?=e(AgF`R8Z3+(T<=e3VNP} z4i>aj^?GCImI*q>LI(*VRZufV;#h*N5p=7C zesv^J6LwM!7j&7Rt1a{kK~0cG6(Hy$LGQEBl%S?ZDnQW71zljF?+fa674CY5K$lz4 zMu7|(Gu(BQpr={ri-MXV$Pi?Spd&1FrJx@6Dfa7ifJ!WAxj=>?WHP=j=#CbHhdZ*+ zOr;-ZX?)fR`q3JL zkA8w0u8^6#4-2~1Lc3<6nFcQw^g#>#@(8cfw!smB7F*Cq0(D|G=K@9Wlg#BgcRxz#4Na2`7e_6eBaCh9PDMkZ}{ z&-%k)E1tHytv{26ecCO%XRv3~)CA(){L54Vj#|C{b{o^=%UBGH3PXI`;3`uL>VKYMkTTr`nW!wJofZ|0%i(uFB&A=(_27 z;jtsJE!Kg>VQ)z#-eS~@b<-8LVeNP$qldc^!$$IXWn_gParz%Z(K8d-KrT~W)S2$- z7*){LrI}JAf8kD=MV9P7&e0*i~rH{NlNExzH`V>mX^{5-QwVztDDS4r8AVALjnF@r$BhL)-^dpa{a3I8E3>xzJ;+{wzeGcP_XFng# zm+#g8hT^Zw4MaD`os24WXYp(-NO})t?q?%R$cnxw5!@C1s>{q`jFju|hO6kTNZ|*h zdj51i-BMh#1xxtC#<`O7j@uCoEXj<{!(jw~bm55CR~`x{(Au6gQhW9fQkEGFyD?I` zF*A~(#L7nD?SgHPuOn5eIUeAod-TXnXg(T_>r{zRASaILO$Cr~GNi`r-uAA1RNG~t zrnZmFwtWX*XnT;hZ~4BQ`+7OGiBrxUQOpB-DrNi0Whl=lDu494VKR=pif7L_w%JZJ zU;X)fv(|BE@Pt>3`@#X>jc(Le>Vvctg@-N?6B@y=xh*eQ>$u5O5p-hPK!oPIXB~GX zUqkUbqkQ#8S6Vt72)+!R9sYSKYK$ArR}vUgKB~xbN6{E=lTw}E+UC$$#e=Z1dqVM> zl;0mWSxpQdyemkU&QGr6Cl{N&L%qr9ol+IfK9<-q=$8hnii~Ps zcJAXzXLR>!%Gt^kzi~NLgZ!zyk>&Z}W{F(QPwEQZAGPmO8Qc`wl9GOh8+c!Sk_Xr< zzp+UcD9Q1rbP?r^zeLeMhFKQ6L_kS_VH&01wY{S<5_llIdH z`)Qj}y}>74)>=k?bN~L7^ZvH?+>H^)O|#8=A3zz~dDfpUoG$U+dxB;bm_6hHa~}_S z8u15|WmrJGZjL>#!V2obDI5fsnS+vAqit--J!|Y9YB{BdT+EpZQRQ8qQRR*OqfzAz zkt%PlVvI=l=Z-xdp}_2l>>i}ZS6;aDgN2eXih@sE9ho-s+OxO|EgnQ`K4j))S6;fN zawrWlPM#{D1}9Hc*J$fG!{dE$-yEvt~((Xcjbzrtlt@731#s8kta5RrC z0Zl}RMkc_G!9>G!P$H#fOW+{^IMpyra!p_v`lUOhYlLSQD-z#>I%TUj1qb6sF{xsl zU~w>RL(9gEwl$b|ENHX2y?mv{nu>+$8CB$_K8B1E&!||tGM~E42y3b{M@yFpv5~dc zIh#8%iA{Wc|CME=bnm@T3dK`O{iYCq?E3zBzMFOek!$!q9plR-w4te|^bb`$?@PQ1 z7_~Pjs^)rMYqS5H`F8pU#~-ZlSNjz9K}QR9A?I`k^4;L7cX84m+y@hf@L^2($c2ll zN-@uoQNtj``|z#Y=}x)zpuB}u#Iov2bSs>IQ>hA@>L{h^tZ!8MV|P!VLyug+8)QB9 z)mMQa0@Tomt-)1WX~fY*?p3Fl`Rl7cSlD$K>?vi*eR#%U0!RPstjj4ci$9%T5px9h zS^SB=t9E7|9*jLHzL*yt9dw>*<3V!3;nAm-nU91`cuHV9NcY{(Sx2F}>olmhC8oss z$D=8M$4s^|vNiJVc1@P%wZu$Wytc&N=YRd9u5$5I>MC|0w&m%A{>6-uL669gOld^i zvZX!db}miSqD=&&9YBp;uNAU7KDW*9%srfM_7;;3?!5CwB`x|YSKK3UVPbIm`=3!> zbABs(^rW=T#LC7ed`kiAYFFar{TAd!iYakc z-&8r-PFFS=JUgn%<{qNl98P`1#UMri4#Yq4&j*VIW7!Z53)%9v$| zmGrJ10A9BkiMd0CPQjRHuFqhNjZ+qJwj5uBWOBb#&^;b&Bw2DcMCzaaty=GE_#0o; zwoKZORZvT;)T4q9s*$X+i5?|KE4!)m7Nylt=fW15CG)^P$aYKWi zz#-E$1P-(2STtW@*PY8XNP>D8y88fwp;K9&O%TYA=3alPmt>wzaw$ntzx2NS!hU;0 z+5Xf~+FADVP$jMOlAdJ0J#{eOh;L{p<}mxMS?O>&-BmD?t)GGPv53(s8X~wegQw`U~902YTY5mO=aigz647Q&U%qLcGIqeP~dk z*s3n@odU!FU(s0noM-THZ1>1G%JappAI!R<<5KsNkKx{SkZpl7R`7yXn3kVgW-vLA zeyZh%({fss{55N`*SBMAirJ({4q<#22L=0qzq|SVFaET?D>PLmT_^k5oc)~PPd|pk zt-jlExWT6m_yG0wB5^Lsv{li(LNSWiYR^D>BZ3nYn6WaoaGt9@g@$0@v ze>0vjIEwJ8CjQ7yewrvJFICNsp`3_qHS(uJQ~p#;}lG z#!fQqVN@z3#?e}3O5KG+34f(mck+p>2Uvy)yD-|W)y{PM=|1(<-)i0!np07g+L5xN z*8b_I(d$MLPwC22o$67=r#dyG%=M$+b9^nm40omw@!rNClW^tPhn(sZjQS~Ab#xr% zAl8dW+9fS%4U0V!^wYiJ1Y_`8{}oL^)j~j~|3>D^DymM-_Jn$^pP*6T2zo?&$P7FG6e3*Eo}Ufyk+bjU*5OFUN|J-u~jys>^G;ujCG~2 zVQ+vc&Kqk9EZMORWrE9A+Cfnyx2(P5_l}29<&F2Rd9>rPId{C}kLMNZ`5xmcXoJM< zG2Z(_PXjsG$1vHFQ?~f<$V|~2ZD&#;_Pnj7Mu~#2va#anEyTlQK6D$|J<4P#;|nGu zZ}%GlXJl-jeGTt1T7Kh8sf5+>8H%1cF=yYfJAW}TR9gbg^as}3`63|h@rCa^>#-fh zq=F5b@Ds#{@GUr=4|2^`fLoj*rxr)&l%ikIR4_xqrcCiCW*!BsEILQ_TXJjlV66%? zF>?U05ty$6JF)}ThV8ca8AN%CF@!(G2wd{%^R2*>wD%)g5@S1i`xZE~JN|~Iba!pj z`=pNYJ1Zp5`BtpqLwG1bi4+a6_bp^eP4Q&RpeJL7C}Y+*jJy<&$1t0Ag>*P%Ke3uf zExXk^2IRPbC?T%8*^I_WHXsbfF1O#4*xC%G;D4xK38$a&ASj~k4Q2>;xs#DhGxL{$ zD9srNW~}JI-M5r=brYsk@a~V?!~xcnYBjw#(>6tfQ(0LN58MMiFOV1l!D@(YEYP_g z=mmjPs`Z?y97NI4&h)79H}Rc`WKo9igc;oM{=xZcgmBAgH=d|Tn{`aWn_SfqL)B9Z zQ(`Cmz@Fvp>y?Lpv-3X}wtIOU@r@||F zk%c&|om`^i4g^FS*_m)K7#`Mcw3cekZqK8Q!%E~}6BKy@p7nmWfsEg{GeJL;G7}t{!W$L(O#@ z(NfSt^j{OzH8Z*=bA5Vld}aAAfWj>_4N2faXyqwez$`0x%$~=b>r-PbI13{4WG^Qh zocXKG%+1{>u}x7pOSc$OAX8sw!WKSpNW@gTpb|o6k2gmX?UjB^v~IsP6RnpKoREnB zqJDa7pxtMg!=TKHw@J>Xo0$n)v>&V8-_D;1Jv8&jnj#)MfJ9Gb;*aLWX9~(*)r+!J z<6H&5GcG->H{0nrDivu0v;pufSi`wDR;#TDy1x4Lyx^Eosim=)MP!&*pGhIl$Uqxe z@aBGyR7z21Uh7}cYwYLs=zqhaW+1KzhX|=V5?upm3Wn*ozuk*uU zZKDgdjlL%2G#EJ;a^ta)R#M+ml1rBm4?G=k9+Qxbmy_gVV9oT&iuvSyrcECa`+gCf z`*dFTY#E(e6~?;+X-|bbzu#n|=2xQkZ8R(?|EWKlz4;)1v_qZ57d7{WtH5*e9Gmvf zN_#5L?v4{A7&NFV{o~QpuSe&Z4(&#pO_mY+Ly0AgBoS6FiS6uO9gj4HFW`xgJQD4B z!edDV`3(hv-kwzEtFKjKc5>Uvxjgt6)ePgJ*XUPl$$rm!^eY75>p?2}-eIw8*_SmO z%;)4BrFBj}yz=pUZ2EmSY@l341oYLP1SIwq#a(7{%@sfYM_)7bKHU#iKS9-VCPOxp z;fDLkYFvEwBPX|xD8qc4p-~xzQ3nb*u9Z>wH}vf&_I#VFl~f8oH{u@({geEHVnF>} z`)D~arHvw;68J~}dRjXyd2{0jvLpH3TAg9Arr#kFNsVXEdt`9c&XeL@l0pU&y)#ap zYJ%d`R>qG^H6QS6VpjT=tVxFXqzG0Q2wyV9hk^A>jSo4dL@ICQas_PFa$gGOCE1VPks=7rDlhUNBRLlt8N+0nUrc{;7M zM|}D zJ@8XSq}#ysd4->0#YC&AQ4pZ>t5mVI5Cy-Fr%WR!7_4X)0R#RAGyJA4dZ+H zpH)vd#vF|8LXI1S920BfJ9@kYLtQ4j^R+lA68X>V&jB&K`)VcF@tn%`5tR?rsk(tw zfm#HtXUg|A%;s&+VqV5-Mf)WkY2m}aY%#_4c#De6YT(ti%p{7upS+(`X2iL4z*m0* z)#Wg-YqH~UK?f7t?>8{9Gxn@^f>*E3yHsyh{{O!E%QN+hQ@Dp#{3vGD)h5d@Gn(C) zpw9vl z<6ib+ry)!JS0`GTO`^+-drIdN?ADiI79yeHuUOi5ba|H&uG2YsoYl0_Y^VrMLy#HYg3G&VL&e#~wLI8O z)h~-VDbb<%m3%U8DoC9s^$ln9r6%!9?W|bh&J)~ff%e$S>qyEI8JhJhN`#X%`JLN` ziKEFkNhpK4)Fz&`Zc3<|wAAK>PYgLv4{PH|Lc_@VP2s`FSyp0Lo?saJW=Zc(7B=_W zV>G7qCWrFJC%vv$Qx>l(OarOH`na!pi8DhRO5AQ5hsr5j&LR<=Thu+m)_HE8G^*j= z?w$XXHnnS$l&JoAy=gsU)vDr-wu{G8-L-gl9fmZIG}~vEv7y*W@S#z(KL;tk`UCkOXEL)o*!$A5IQsRk zp_Kos=h9R$&p$3=o*y`Wx2^pP4??Vz9v+=ja`>=psbMZ~@UVV7B{F$#Il42VbFti! ztxQC`^cC48SZrxb^qgH3I}ON*UZI%*(X`GY6PBgtMoQpvnhg3`xAds;vXmfgp}T$5 zk8a?Omw#*n@9+x!|JFdZ54jO^VFQqCp1ZWDLnD@g1$>(P2YeRi;h{vwa(FabMK6TR z$8NGmPV$G~6l~8wci;0kg$X$WLD+~^saM2JbNFeNKj^%+z0<}jVjX60B(JxNiYf%n zbT~nshH?1y*y`XMlBi=d#{DW=M}puV@7KF-&iDBBc1+(CZtvE$H@l6@JS309do))c z&;2l-J=|;WBw+cE;bfvmW8^!gl-{ ziRZqCCwW03H9k5=&bLT8G!vboBB@w~RLJ2vj%!Ec5$iIxx)RRIE~8l`;Ci-)vMLiX zC4I(-r{GswCpjHLLr_Nn2YR}tO$D%nesc{wD9`AYRy+W2+Q-}W-v`5B@jBe>0d~22 z-H#QC$kw|ss3VSw`D#hkko79MpTdvNMpqf-vn$zAxjW-`-ND^S^fwG;PT+ga{=eh? zAJM4QGh|c%zIveslwo?cmZus|3E)ZcMiGExkx>N5G&6QB?&*O}XQ##kSvr92=`%(% z{y*igIWo&r1GIDnCuztP!1)<9z&-RkRf~FMV}D{{*i*kn-3@9g`ygQ-YCw@btjO(E z#oheATZurtu1ktAndY2rvQ1k>TAi~!&jm}K-lPMAW`(zFTYUj|dB-9z?Y6VtBepgi zl8ZdPg8ry6os<3@HLIojpzFY8?0WV=bT5DK3!S!Ix+md`lnpAOdt3PVTWjM7s zqd)TWo#(=apR_u$eS-6!lST(w;lY3FhXJ@%*Y2hYjdM?YTt;_l_`mFz?ch2_sV4E| z((Huc{@1!-UbwRJaIpZi9fjql$4O4`diuvadiq+O>FKacPiKRi6t*EHm%&}&9q;dL zk@o7{>9lDN#&JdF@X^NK^7y%FlHYKUj;Stw-l=Kh^TNmP-n8`i@o+cHR}J>Nt4$}_ zHdSWY^xmIn(@~3Mhi%n?#7rU&_nCVA?WHyD(~)*R5uIAR%WqWKf%rU&J9`g%cKtN= zI-n619nOJ=sfUSU`VUl0O&gYYL%JUhtGOo_ZJH=tn5zxw^JdcgzMKh7zOQmDmHTh^HxnWY683Q|vNZESr8)Yyk(0gGqC>Evh=cokmuh(iV7Wa8ss9 zPEdZVZ6+Xt;me#!1y@aL(>*wu^M8B)jj#TXq~{)xgHLy=59WxsIec&kGqq5x8G|aq zsUOpa%7XD1sp+lv`{kwf&*UHHoPBVyO;Sh_;7yPj8!fy^p?GwKi-<^q4{FQ zqJ|4V0U>NZHfjlR?W99STg zk-qFi&v>dP+g|CHl{q_u_Po!|_%mShZjQVMxJwFj3prI0Fw24!FU{RAz$CcLUAKzu-TXCX1;i#@o(hIBBu7n0w>!khdqFF# zO-iOQgfZfG2R<|W!_dPI`M1n(nZXoyqX*NBc+1KuyvSE){4Wu}6L+a@vvRh(S6*r? zOA%h(_qg={0{_n?x^8cQjI4LRoh&N6bkvVlZXgrwS8v~n=`{hjn%%MwInBR`M7WxS zTFil5P1j@Xf;EHBX1^>YC~bN4VN4wph2On!JM~lrS^pKlgd>=$(JfV#3T72d%$foX z=0vI=PZ?%MtXn4%$4vQ}8@86tG)qS>h!TxcyF2y{m`+R8L}nc^K&O*qw|@KpJ~Q^g zO=PHzzbqq4?qW)Fl7Y3^UD9MS{_$68;?KD~hRNElU0nEW+>(4NzKrea##IT5NTk&* z+056P_+MoX>vtA3@(KCG*aZ9IFI4-gajm#x3cww!rHAB$Yr_7=$%fS&cRaO4M*E}B zE+iw8&x8CQa_)-qLuvYG4(H;7;(mKquCM-da;Cc`gZ!9QNPNckUUhKlfED4eKPDgp5Nj(`yUN5n~9|iiGCZ+|IIA{ z>A$fe{4n_z-M7PCsS>uZ*=4wE;&r1L>fc_R^-tJw@nC4gcB#d5$qsno)U}C9l$3n z${bA9uLMrnEXt*31_l~=Y~-VI2b>4Q;GhC=op@j!B#D<*a-&x2$HvofeL#G0*9^sg zszH+g`RGY~JLL%Jx!`KHbN;(-IKL;=E3K82i{ZPQy>%bU$wel7^hbdm@b4Uf>Z_=JbJ z$Sf+d1L16^xW9Keml~OQ)lg6Cu-sTqH$_;^goh#n)Ru?oDldG}?3--*z==+*X`50q zSE$J&e9jMw`EnayLJ3onccu+@+el(gw?l~)E>C=5An}jfGEfuMSHCaiGXIMCD9e|` zvqb{;eOgP*0`nCBZJ^~*T9bT_SJG>2sL>pf+ClR>H|wL$9Jq5kero2f>cTYNy5P#k zE~EFK9tPuM@{Jp(uX-Ej9CIkFOqKiUmqMN+(X3fiL@ojekca#D!D;~XiCZ`2b7`8P ztjt?u<{>jV{h}-J&N0d1qF&7DQ5Up#Q{f%cezhuV{=pfZO}L~ve0gkFFGPMu(3=Ln z*sksz`r5gWcRfdD|MbUS=WIGlm`n#K^Y8;WH8YV{y2-iClF)G{;zaOGcTHzsgQRA^ zb8i2Yv?ed98*qbh6A?vVGjkJ~xvD!j^(`$@tG3{oXS@}lDsKL=aWD}Ym-q~}0U?%A$4?Xe%NaJdY0K6BGMxlJ zqjtfU+X_uGE5-L7ChE;x&RpvtvYb*H>}oo8sxx>BLH#~|W1Em%M$!+Cix@VMh9dIR*vbu>tJY~b zw8UfUPv()q{o~)HBV5BakfUkl&cb-@;+ps<>=3jh33-XgLifM#m|6|el6r=gz0#6T zAmxqZazfcc?GPtaOx4%q)5mpBx3AFDpf#puUxVzblfNwxzGfAVJ@WbiV}Ign_>7NG z$Do2WW7~Z~LCi8_NzIK5eOPevQfEW9MP3#*7`hKwhy zB2E*Th+;fWPIo1|gfED1gpYHP2MUK>8UAg#`46)3U%lnA@gtZg88%M036JP;^5En0 zquL?y3uBOaIv?gb(0hq>#MhA_Ol`9S;N2bH@jC;ra=Dm%MsVBjnf|S zN-GQQX#2CGk3>%3UBW50-ym8dfDY;4EGK#t3uj@;a>uWQv)Gm2*Fe_12n)0ytyIDJ?kOn7t^OD zuvimkkK!xT4=7p$j56%eR!zsb3sr}^Vq-@`>wiic>7crmhO|bRSG&#(*=Imr@<2X# zjril|rV%yY(TF1;LGN?D{d})J5A67Sh5h`nK1*QmQlDc#uh8eDp#i4t2amALvpr4y z*Hp4j@U_5^7`ROmrXYe_>v9KR-l9O$SXlNQ!mF=-CyC_f`Vqh0FxL12UmDgFfq^os zyNRLWZIh{E!)K9(d1 zs7dGQC)}j@+@5@`qb(=f6sx@y`;tNw|Jpw!KG_o*<+z(1;ugvKxI)F$GV<8c-2SpE zp~+qDk>&yro-_Q9tzr1ZAFrd>)R`2RI?GdQi9NM}ShngvEP6LlyT~mgAZ275geqS{ zKU!q{4(-j*N}OZ)>W%BhW}#Fcdjw+Wygg68786?PeGM7EC?WETuuSleLR&1!vjIu#aBVPp8d zkPs1fdcS(sU;TFb?OuN00GG)!+oD9Cfm@3y6=TBvti6jCnZn2 zcQAn{HXge#s+xL}(da`=Jdd1>??=PT#@E=aw7WgdLCKORyx|^%-g63#XfT)cdhd&D#{-Y7z$>_rN~P=Egen_LK9>+cG1%C3^3rNOVpg z`eM{&sCfpdXmbVBD5km%d_+$6`%%?-!r#xvttfHK_N%-&bW+RsCMy)(EkJ}^+Ip{$ z5-(iB7v8#=<`iCU-+4GPI(C~%b)Wy~UVD?ghq&2ww@{2l++k;^6TRO*ONh&l1_zh%CT}z^2ww(I zaSuT!{DoSd+(PN<=OL5KQ2kC)QoQi@wq3V-?V^cKWF8ZRU2NMOrAZV%Dv>T;*kIq@ zux}68w^DXO!0xthhuXKP_U&-{Hp#x7Xx}_MR@%2~E$mGDw#mNrFEV9bVc#yXZGtg+`}QmQcD{Xk$i7X`n-_tn!*4YA{M9?(ctwVhiW2f&sKxkr)pR`sTQF_@I4;?B zw6qc7Gel0hNiuQFmJ~|8)lds6=poXso1orY57}8ko~*wT6_OlFI3;?Wo5&cX``X2c zKXm`RKr7D9&Ka-`k1|GC{UztaA^a}XvTs8z##^JN>q#9gyV$nu^p2LDtdq z-^v{51x}%Kjcuj8oI^c~bOi<#e<#2J=j7BmSbpj#Pnvr_ceeE} z2c4%}rHQrdw5spF{n^ClDb8fJ`68_&H`#K#`O~#h`fz<9&DppcMj0LV%yd4^}+qOAO}C8c!wfpjMgohKog{=N)BLX8+-<=!(G40VuD(OxThxTOr=OhfP=Nm*$f*4ba?W)egs3;kYpzA0`Lrgmb)w3e_CORe^G?qWz9Ee&@~)W)~D&s`)X?V40~c==>v%hbfT zF}Aq|+qvh-uQ3l#{*u#6Ym>w>@$)0N>d+$^xn_J1y_@^bQTjU*M|SUPj;!0Oz%IzEjMN0XYkeW#SGOxcuN$;sZD zQjWO#dHjTfEuHldw>f;OqOjCdTvZ(T*bX4-(2w1~&kV-@Rg<`)nUP@tKQlo+hN6Iv z&3!#DJkIZXJix`hks-Ct6=*$QC`x@w|0H^LHuoy{Zfv*NC;J|6hS!;mMn+XcYT|)I z4&8Z*&gDK7Ea9Vb*P?2jPcKrBZpUjez#RwYuD!%}#Hz^fUmao+uFZ>Focg^%F3K0| z8uDlF4M3i*KaJLvjtGynQm~4O9H0CJvsQ^o5~~}Wm%7d7Byh14T}C}Nad1pwTf-|H80-1w@)O zKYx??bNE}z-&_0{c`i}%72C-y=}k(0cvxRu=}>L?eJI{Ka_yw#Z!j%3_5zUVA3LXi zyiCtAOw2H^1n;tooCtAq02wI>VWz72=e~Tl zRt*brqYA%5%wrrz`{&IIp(nwd8Dk z6jy_kIBi{h9mfPBrCjH|&acVtzth=clvdjH@tm{l;&bG$(I`j}Rrt?SS?{?`-7G=x zxNCGRC`*kG6+(LzD^OW_ugKt3Z}W@^Q#-G{#XJAnb3k6ID<5csk$N>=yYqi{#WfH~ zqU3z-q`hm9?|qwaQ_YiBE4{m5d&wR_b#A%S2Gwb)EFE8c`k9xsR1Uss_L|E5^CsQA z4QWymF~@3H2)H}`Ano2z+4~Z+J{3WIJV~mUBBFK#f*ir=P;aS?{lr_LufCOxJfVa) z&Lgq8Bl3JVui~Tb@Wv=l=1!PR*FUV^LSMsBsZSGyZ`^!up0jW#l(XGej8tFpu@N=q zE+5&xJm1~Mv_eU?ob!OznyFhtiOls6vy03@@b^YFs*PW2q8hOeZPj&U)6O(zmWN11 zHU=$bH_@yvo`07@QU}n!VY|k5iD0R**}ah9N2$G8DGMSfcs9F7;^A6vB z87p&}GqHcerg`VpI>H0`V+_aEwp zpCk+S?6VESe*>Rq#<^k{?71u*-d744+7p?a?1%7=IFP)LhG>zk!88K#w`9nN z5@j`>timj!-`&GFNR7kswi#OPI(b`SZoB*3b>gfHObBENyQZh|^$$4&sxsxxDKqGt z-R*xwrx1zEp@>uN&&Qj{R)aN|)5>FWn{^82*_P~$Ma2lPiQe=XwO!$%DvjL?b{Mdr z&rEzi-7e{?|AT1@fpZ#g5t_DCp*25p9kky}53+0u`{blw5M^pLY%9UhjPGUkldoY5 zrMp-1IjN^-b@uOG*dH4amaHi@p_gLT4>(0maquepRF|=u5FquvN74P@I(W@_wLbTMz z>nisfZG<^}J2k`}^5<}1)zFK3l;}uL`W-*P*+?qVY*?sk^L6Gi| zL6En8k9Ry5CHkL`h##lA({6;YKnbG?r7Z41xyc+zIeaSLRAfpj@4)HoM4N zkvBB8h3m|j(~-7h9u;Qdk(&DgDp~V0vw`c@-!TeFF52({hUVTpu!LIRn|a0#$z5>= zL1rxeh(Um<5Ev|W@8&BVVy!MZe^PQPIds`-FJLAdijY9F8gE_8 zb?t_ZQuvu+egbkZZ^Xeo%9Ub^NgU;~oXj~OYlcQYcy|fIfaDQq!ppqPSX1K4a*qFO zxADI^V0fNOKhu#>*4um`O^^-k3UW~JoM8zyd{bv!pMwkJp(Ayr7#lue+X#S>DS=Ojp&dnzD6XTmzS*G}Zd zXGEy%qK>0uQETKP2X&LqJ^uEbqnMAk7&_Uu)hcx-&o;+Z)p3`8*X8Jdv**8(PqOmF z_>r61Pbp^kE@vPxZ9wZ0jC1zyoT88}QF}qJk(zBtmp{@hUX3#HrO`(q%?5|j6w<1D z-4K;WJdYvYQ{E+F4eUol74MkxRG+bQn9yeIU48Y{rpCFYc~7ahNU=orY5kvps|qis$sg>i>1=NJnoJ9=y#9UdL-xt^cMXrZ?KAzY%Jld6AMCHV75!}%(4g* z&?QmZ>Rl1_I&3-qMos+1^!Tzwl}yJ9eG3{%Z%xK}Lw8y81ZHt7sIu3jGJ%`f--+KD zPc&nZB`Qt+P1NG4>3;IMnOpyU$ExYNgb92nhD8ulSxA@XOfLi}O5dQvLzt4bR9}%$ zT^sQPCzyFdgJtu-(ixnU6Ef#Y)fM0P8qT21Tn(d=l%=;-fa@Sn=>=EyK9W_hIxBk!5A{i@(6U%~i{=Rnko~JXMn`9( zkEnO%#y1#Ot64EM9LTD3n~MqT;`DL+c(e~tva$J3X*KoxsyCaS=*%m5m>Q4es02Bf zNfYWX_knM<5qTk3o)2izGHYolJ_+GvF1vE>07II)^<*Q>?I&sO2w_SRkMXrJmB{%o zxrYBTNHj!gK-~p;Fc+kmV?dwqkX#JNpfEC1=nG#SbgJsS1IHe~qT{9%Cm$tcF!8Hw z``wSf`M)%tf#<|~g6#mu(DB#Y*8|_v{?rt$j4cF+$97_a`@5&S0eXqrXu-&}?UeZr4bXnZN$yXO@Zgs;+vM#2fqBK{*#> z7?l#X1JDhT)Wqg7-7#(qt8K3j^a#k9R)4u@U4&oA2GYxp?;nsIMD z(+qR-Rq_-*e~X0mGk)*lPX~it5QvW8?+bJ`-Dt}|{;u=>%K6RcQ}Dinlc5&Qmre|yV<=(=Q2*Mi|`R1S3A{csn~SB>Yn;_31jle z`=oxhSXr=(+u&Zzrif^HGU5tOoz>q!_*`p0%VfgLMZyzV_ngJA!kn0x+=Bj&dnsW- zK%wh?_7&R_AH&^k6JQ{*J<5PmveGKTQbMt}Omm@1}un!xeW!Z4PPEQ6iWEwq6C=q1IwOe;O( z^3|Q!6Z!uT3%_Nwd*Uq|xzCx-X(#KGnNn8RJecov61h{#6#iw~ul0!VB-c;RAB1-1 z5>KCY`V{j`=3J}x)W0DAOeES>I*d@94ceoo!t=ZeI+ZVZ%Cs?KM4q^QN=?_(F}7s@C3&P;6|&v~?b+@!icx zT)nj}I+@VK=6Cn?x2`5Jct9wPQS-*&@NMi@=vWuuuPd}R#+h{Xs_mM%F|dJOFAgSp z4L~8&gd#d*HU#zQyn0S%ufmYICUL^8Y)&yXC%iYI1rbjnbuT`1F#cE_lZN=fwOB0s z9v?ucij#Z`{t4oOQ~Tc%%zrEWu7A-v`O)XvqFyRhsaf5#lFIZ<$gY)0BHtYHN&^imk>-H zjDdhF_oBUtp>#3XLep!8Zw=juDRo!+nA|A#!Mdj8la@>qNh zXiW`YsfTJ5H#PBEw)B%4-NnZrL?x3NYtVgFn`0M)xrXKrg!>w#L{@5>>k2})f^gnN zf%;GB)NPm!+i1lwjpc8NY2Z54QfaJ)gF;Xq?O>l8EK3KL8qCn>TdE&3eyR7YXn6NFowAG!A1g2=~$Zi@c9LFtUI0Tyo=i)a1MI zYL!D|CqkWACxZ0z7BEo&Za1KU=f_?UX->VGDYd?%)ZU!S){Q+RvQJV+GB)FoY>DAX z!1|^4vlVgtz&kv>7rCKFsv1v_e z^9(Ghy(X=zsfaXP)6Yx}beOiD=$k-pxy ze7_Z@V;fNh&K@0TSS#uc4_MYM(pQ0Id;6W!2Ky`45>A!bwhY~}Zor@jbkJWjgjhVQ zXx0-b_gWeXFNdAgHilx?SLQ{AxCg#1x$TrnbOZyLx;g6aov}f7HI=?CHMP@vA#T0% zixQG6_R+Fnet=WP%^cI~wBoBV2LYHAZ3!%tjt-6v&X%I8i@L*%_X(~TzeM*hbZ|I^ zhVxS*m@@tSvAM(2;ZJn#ht{gdJ+@26;0Bgo@h`9(Jy9%QXSLzOQ7>19oC!z^@3F4Qx{sHVzgOhpfIm~lSn3fbY`@|hcY6xpq3WY(!GiK-1~vr6ZInTuci4M zkmawO*QToUeO6lNZUN08OLF`=aXF0MJ0T0*!URgJjk-gL;O;dKWpJ@}CY(K2hNcD- z0AOh--C`>B)&BzNOrz453X%%3oEc#MTiF3VwnwJ{9(aS!H&UsqFIg;6qnsvZo2EnR zk-IkyuUM3x8pjJzwhBl0k_R#Jj(ap+V>Ta<*(5Z(sc^ z=u?|%XI7CrA@IqBAuqAHOY;cINg2#A zaf;*ztkH(v>t7Y+GZk)J!vh`DHr+YPh{R))c>ZV&(RS|v(*o0^$R^E4rcJ|IIFUI- zc#U~f8~+65@iMN{!28P#zA~d8l$vXCsB1NMw9>Cy=i*^d@B6-b1(^v=4G$X@jO|K? zKMFvK@2XJ|vk7?RV-&G{bc?EV%cemOx`trY0|FzP2BG9VWdwTy6e|RleY~p3SKlJ0 z8UHt@$e2zXrbA>7vV(B6KoL6^g25?1+}Ivms?D#v;@3EyVoCBWzfwvhj``=Yzh_O| z9$)3|n>O|N>NnC-sIOy_HS%E`WwFjsNHbP+#>jXKEt+ehNE_Q1r+X-I4b3};4IG!z zDw1w-wKFd0UB>VrMT!b5Irf6^{OP@Y4T==1fs1{{z&*~3`Ve&XMIdFPgKu?nX((PT zdkXHGsw~zsMF!fEe^lChv!voe_Z8L{hTm7x-+Th9X}{L6klso`)m~9*MpewMaL%2- zgA{vTqaUu*HKm6bK0}bH5>gD`zLcI)srd}qusLRU`8BL4S*EIyZWMe&JV>~3`*IV8 z;c{Lh(czZ5wclx~P*UmwML}9@GECxzB@>pQs}Mv02|4aC3l5GoynD$i1%3KklC4cD;|OYh}t2=gm`GW1jMYmxoAdkq^u#x|)- zD1@JLIP0P9$;)|XRorEN%f&;ukK&d4a6j*^sPB;BrWnkEq0sKooAlu)uAuJUlP41ug4IYn03Y+Yk>V$ z!VepUUfP6vMevW73wT?%a!YmOBVk{cC*;e{{Q{={P(nBAKIq& z?fy62`}W)ahqiAZr1b86tj31;zt|H0n7^Rvq>bPA_ha(^Z=~71Zk4HT{~Klhm@?AX zTK|~8t7+E{{r#By{~Kv`uU}>A+y6${KcCdd5SL*L=WE5g?9P?DMp6jy3zHFAS-9CvT6Lyk%u)O*40{LF3ZkQWn24-RsC zO^|7c&`%;9iwR*p;GS_CD|u{nad7@OjVQ()!jyZ*m{l~c4VYj`$Xiw>UQy{ z=TjBZ!K^$IxEmTJUP$B)w6h`Sv=OzAxjT;i#kTR{$#XXnb-CI7`UZ48&NNPFCfC(E z=Ds?6n38t?b(HoGo8jug_;c?3&8FFrp-O3!eB?fwNrDXhoIBYj2_MPHcI}w^)ov-2 zK5`2`WS0SV-w&!`(X$p)9f6fPrG4{*5@gEu)LXgw%=k`DDQ;cG=4N&Ks{F|Q1fWsr zd3avKx7Q#rsH@%4^Hgk%ywx7N2Uvb&h*PELQ9sibx8Zku@~@Q1YfaZ#bxCWfUpVRz zDPAjQAnw-rotxy2fJ!M8bk1%qb{@H%JRJ2DIQ@^}xMVn?mLsRvB#tK1#+st!!77Su zp~Q_kD+$JkLfWvI9I3s7iGo)9uHy=S`;C4Qp{&ctIuJx?O`^{WDa1 zWCA8M?x6a2HMmdeXh|xwlAO%z=_QK*syR`+&3@2stHm`H>{2PN_&{ZG5274kkhaKtmv25 z9^12ulB(~i;?xH^x3cfQ=Oqcd)9q zHU!md3J#UPsNK&SbceYRAeyqGrMUTQd;p*q*yvl~{7FO9+`fu)zkl$^`8%kN;MZFf zOc5QcaLzDGw;c$#WLpi{I+kp=7R1JKVb;K4?7AXdoE1#;=OFMo#Ku{{VEicVxI+5p z%{V_+ao<9I_&nXn5V^?d8p?k)l;0Anc=fuY*cjwnZ1Z}3x#523g-z$Pz6r_K?qK&q zrixeRzG8-^Gki6$nyz!(1b;a74rlLrx;ORu_weiX1$OpwRc=d=m~M%}n}%jOd%8zm z9i6@Tf9mXP)7ivW`rblsyGteh{o}>`g>_&#q~S96*~-w5t*|xqFgFKe?L0D8ALF4y zK33YF5%#Cd{uJ9EsU+drjSQpMF2}*zyf2YIfxGVXE*Vd;g&JPcx+4iCAX#G>k~*Hx#J_mr z`o3CPysuEGLISY@e&!D8lwN%PucRfx0WA%qDO>w3Iy#+>0%WyW>pt}NemW{RM2WX; zR*N>fF29y!=07j|=Nwe~Ry15r?my>MLj3z*(h~SnpFAg_P-^i+5jDgULM~gh=G0h0 zrK6eK97;SZpF(suZD66pL`|lf@3^<&p>8H%9a+5!IDwBhXt+WN?hjPHmcVj~;56DZ zZ?kzPW%7T^MQhAq@hPO-9}v zaC!^dyyb4=zd6~9o^%8b`$CYh3&hTW8$YwI3O@mzoRsa!7{`rrWGB1WQ5yyJ`8fg zz=?Y>{i0j-h86lwGt`whrr_U8xa?L?(zyqDP!tlv*)iKOz#B6sFHdZ58n*| z)1EI84NK|5FanZ3iBBB(+w9&2@k1{S2a@D_$zqowi_dnGgOQTPe- zAZPb(TX5uok9yRk;*eXlv3I>stCTAVLjHWXK*5&_V%IXVD_LuJtY4o01Q{^OuqsC z{WXsd{sBOZQ|8C5s)*yC=Gum}-aX0{U#ek8L&~qJQEwisgTUHm&3v5|(WK?-_P(`F z!7%m}|H1T#(UwxbwhhX?>zY!_*!_eHH|jrM!wMD!e|!BfBbxadmhq|@{L;tLy3y`i zf3>kxb#)C_G6-S%$D?}YJqlI&XLK^ZC8gxT#y25?7A-n?$$91*HkR?S+PJ}bh&B>t zUpf8pJIows5#)WfT5xy>`Baxx%gs-8*v^S?Ce>%WU<8Nt?4!sURlq{=-rVNwV?oPJlBhT{P zISW}a?e;W*Cnhzv1eR$BZ75LJFL_hj?YT%^IR=;LpuG`ts)`s6J4jUwgBc{Woyn_c z5|>CcQxZebR}D;@@a(<@D`w(sYV)YNofI8i^u|v1ay+(?_g)@-E6m8nw&Y(T?(`cz zq1P{m?X`v~{uLoej%=xQYS!l7UuFkUH=yh`h~IA7Z4mFD|el~xE-M_5c<3Z{r3 zzui6BHZwecb3u_&(3w%@j0a&Kxo`f39%x|D4#af{qK7x#H72~_foNh+AewG>*DVzG z?h*|L;w!`l@KuHT)F!5>Dq3!^^1`bIE8%fQ<$#56JRhXmii<+=gb2+Eg7bvMc@Uf@ zR4C2|-n=l{jnO%>S;sKQw47nc+oxj~&h{#t-BBUbzGfgP;x~Bp2IGsodgF^S)$+}& zHhzQY%|eZV2Ic=kBeikE^#bu{l*L41VuYHJUB3(CBq?@vC38f}7oidJnT-;JnTV|A zQd>NLeLkteGdk!+Qv#pdEZGY67N2dR4)^Q@I(OUQ9{x{wPNMgx1JtqGY{$9=LPI>QJ80%EbT=e>(YUNe-R2FtLi{g zd$f}5(a7Q8mSYEUw25sdO8l=AA%J*s^lU3v>9ta5Yz97xe+O*X>rPe5hQ+rsP#h0D z+R;BXU!G!#!bK%QRHoJa2&N8Y~6TRHm7=L^>@@(iVhzci&GJ& z_R-V{o%Ms{9h}YES9$v=L3V%GDgVf|)lO}hTdqz)Kv2x((YgPEml)MjdxKrm>KoM= zFz71yp%B+_tZ<&ei8MsuWW{Ss@{A{R7H|*D8o(6*46?NQ15@W+1*R4NGq~_dFPziA z10D632S(OXMIFE#|Qx^0U;{F~8JjjsSUS5(7Bsu7tH0Dk5{AERvF|j$L zv4*&X_K*zDFrm~}|FV6%$k!mdStC7|`&2FI{gtR1$xlh*-t(j+yxL|sm$u`5DvN63 z<&}$OlvPGQ+*#QrLKK9F<%@1n598~blii|QyHpl^(fn~i^xcA@7Z;8%13#Y3FMkyMkyX9XRjTND}&cgL-lP!TiAM#}cO8rxF�b4sw<^yFu$RH!YTZpUhmu8NwBDMSY6Eez>Y}rl5 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 _0jpJ!4{u%Z>t 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

    jb*5&wER9_zwhBSW=a4CYxcR_T$PcF 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

    =`K^Fg#-i^ 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�x?KXHQYa8gwcvFFpeM;3Yepj}GHGT_~hdIAhp2b=fhiXpJ+?*ctCp&Y}?1`{}0xAvn(y0QLw3$Mn`2> zp3RNpUd!F@KeLw)UimQb$`3JL)~d`ra4m?<63a-At?B~25CCds&*k>Oa4|TUw%YJd z)6-(KESQ=2le@w*dA`8sM|c0D9EHYVS)h>oD8Mu^cwaJL-YL#^W%MdsIG;>(Tr_W3 z3UY0Z`oDbbFW1iq8rc9s4NUA-T6b!4Kg}hR{p6P4uSr=O{1c1yiZ_A10PvZ+bAX*I z2yiqt=1Ze9ehO5~{F758BN3P7|M#p8S|F)FheK%BW3py1%GjdL1wMDxeO+N-Z*h-Y zu60#epApm`nzsZiAvmW4XoA>f@~m5fVI*U?$b^rBnv+x zE>t3+Z+18}7t$4i@C?H-aeP#y*D#_R4l^o<9sJ`)l@PFyP#R2kyQ;~ABwTLL(fRJl z&9szupH3jV0SLT92m(g+V1~w_P1yPFK$L)b0iH zP2`yPs{Y6bny3$sQ~Nd^n}VmcPxwsu6M_S2UMeE}GKMKuqCUVdfux2y=nFg4Sa%xE zfZ-2ibYS&~oS!;bcWucE8r2f3BL6k6W%18Fpef=+Bb73SbGKTnQ)`Fw8Mz0;!|h)3 zpnWq1nFP;)_VxOfF%m&n&nw-`-ug(gnLWK` z3=LtL*_0goEHx#`MrMx=$!e-F-PC-y8TY=riM3Ut@w>~i>d{e_d&O$%SDG5Qw)8ci z>>I`%=q5P?F;+kVlpFBS?0F=oaRK_kqU(Eg0(`B=I;fVeP%URte&AYZ$_(O7Qb$k> zhyG|k;q1`V z44iG0)?`jcmu5aom#QaE=05%iJ>eK#&E5em)^9_Jt)p{uRH-0I4i%%KH7<9CKc_jd z9+Yw5NvM(JtN*9+YjY{TI;b@0eb9}DSHYn*=!ax_ydS?l)Gv9kkazn*G5wO82ACPq zLEq|EH?M^sryFiiSD@QsR3ulg5Sbs^U*Kka*+7yDMOR45b?!apDi_)hxg*R22ZhW; zekfnJR|ilf56tXi$`G~sCo?&ARC^Yir>F7)3k#mM5XX0Csor;-yvy8G?&uSikvGNw1w z``DH=>3+(zBTP|dBo|D70uV$-5l@AC=awZUp<;M=Lj=I}bS-|A zl2UBFcS+iHUA>~z^qmvdNb1hnYKBr7u@A5dWv0vmI*UsIAnL}R6M&uC`&ljK7G|pp zhFVVhixdA))_I=6Z;_CXC{mO)v}N(46Vvk%(wgBD=XkRaosvBZTrDMxNxsCMXoFNRQ(o)IBhPdbd+qvFrg8AAnnpMmzd4N2Dy@SiUZOyPAkYE@I2wI9m6p3FwcMl-5-gS?Vt|bXNH~n8atZ z$Dzf3SScOpb_3U1?_3Q_KF_ayyInlc%23ta!KdTL=njz!Bj+{R?87`G@89S;99~R9 z-#WExcmT9p_mSgU1TAOnXEUhe2HUbhDB4Nd482)3@l~z(Z6NPApTJqbD^;>Fsa}s8 zzILoe$)LUP$7z0|)(hqDq`cpG!&JyDozf3FV{~KrM!^ZOsB`nHGzI8%sK3c82V>o7 zXM0ypUG!&_Z=}%@8ZE0^a5SB8YkKT3Py)@xzohZ%#dyLDcw!}0p$txuW;-1y^iy~njlZ_xbD z$XxG6K6R#~5Qe@8U6V~)gr-W<2)>rwsd<7X=!)5Nxgz|t(P_fc8&g^>p_*&Kx~!o> z=arIz@k{FQdQhJ+>MT>*G~Y9QDglI4a_lt376^i+JSHp17H(xa;v~XM9~TFP-(aHlolA{mUTO0c3vr8ZHKwd zojuWx{hW%(V9iYPb=gR)%5ai@m-YGt!1!N~SSFM*q{^Aev2F?Rovae;O`P+B+|fzM z;kEhzz$NT1l2-nul`s0+Y90w@f@}p-5TBF1KMg<4oW-GXmP&Ry?ptG;B zu;}U^R{{gs-0ijOvlf8Iqi;!uJa4Q zFh_Hl;%6|qQZ7pJGhVzpd)B&zvS;lr!~kOZ{0^T33mNq9o;7Xx(u+VR{!E%bXJv>@qBFygS)X>r&V!?b6f)V~jo9otei^aZ241qoX6-$(8P{Co9Pd+Jw1#_R7h=hAH0ZdApUHAA^rSe0wkz0Y z!u?hPh-38jId8BY)_cw}qQ|8;8qnC+oh)|7wDqQ=xdfzZ%piZfHX-Q}ZeNF1g8a_b;6_J;je}KwI4XCu8O#DcSy1^rU1vJSkaE zi*K^zV>=+5ep5b{ji1gKjqYSM;Zvvg^Tb~@d{ZdN%D?LA$FA}(AeNMSH5}Xp3d6=L zh!p>2k{~?jL{#a=##}s>Wa59bc0^i-E&&#$6!itq@WZ^V8&RlvortM)(`fgA5suG& zr?a4gtUNNRKu%Y}`Qg#|P34=-0TwCFGvDcP96e=1UAMR3g@uKCEZs5l+3He&_&Iht zmam!p5w~6lb~rwtSz0ifhUEwMMiuuERB_M3S4q3j>F%C5PUe#3kM|)VKUCsA|CC8M zKJJjvK6I43}j_h~JTo7ViS0QW3K85KRBg{mCG~ygu|Dk2C5zm+3mq z6)K5_vv474gy)7iFR|BE{Hlb{WX}G+#*-?UQZykmNT#f{;QMFXx;~r$HZ=m1>y&R4 zp7Wl4gbzl{2R$zYm&)D>+-A6%!gY@>-9baNraAc7me@bBksT!@k)?oyMVaVeXs zOIe*t3j#*VSB$ng5PR%tlC$X_k3W66C(l6!Tu&{+)J?**?#VKIpEz7W35`_8%0WXX zTN$X)+>#jd93uwZz@%_MT1lulFQxd%zIGJg=H2=gbWw$5$u;E1{zDRyDUomj+^=oT zAZv`vn@FQe``={1^d_(E#GV9_M<;xmLS(NX9aW4X z@Ke3`0KKK_Z8*3`H|0&52wLMmR9Cj~kg%=CT>~-?jnWbw8pMXApYhR@n?wIAqK|of z)tnsp_pUy7$ny~ADwk5OMN^-_$R6Q)mYbVj)!8f{?#mEE4f*aQB0tJm#o`~<`gDvp zdki4ma@XBA--Rr^NXmWZ;cvSq8CAuF{OhZ9%4k(LUXT|tR4O!R%P8(bD71xjmPb4h z0UdF{P-=2dI9S}+;KT4fTt4#l)#fAa3!l*=ua$;Y{nvfjTfc>s;bkcLuu`kHw+)t6 zZ-?Bwnt@BCTyq&O1Vo0`$b*zmFd&>~fU?YxoY~?FC8Y&B+#lY7^*bn86@O}wjH`&^ zM)#$DMYJ=nn%C`7=U^rq3}PWWy+iyj`ZeUn@eoiMcCyWna}%c`wz3tbvfKS?6 z57=a&jMddaxef@Rm!Buf>y`uDJ*CPuW2Q?z*SZ zq_=k^6I79yy9!ZW5sqOL;NCXdq7{NSpXe5CPs{0betxLtv#d-!QbMT0ZTG#%u(bU5 zUz{@wymRIT53#Hk-eA;L-!k4;Na%2okhsGZ32kyugsu>d`C4Ty64DXV7enay!y*kV zGTP+6$)TfykEx(Jj?{8|rPT-G=8ZTjZ}Z!?(JO&?vv`A{$(%*9DYWJo>;K0b!@)AQ z`6;dBUK8TS+?~o#K6TX!&M1*n*g1 zi{xFBk=)59$L4&;9@%h#bPjj9UwSliXP;BMK`4$z7dgIZq};LkBB!CWS!tCvSIb&w zi>J4_Kl)Xmx+9VF=0na7l(hF|D&R=QyT*+4XP!vU4uQa!4oFtJMK1#4Ynge5JyTx%Dvp4@5k-@Yw`r%S7E1chB`gl_R3?tJAWmX$_EitH>13|V&VX#or> z{E=aWgeOOn;Q%~J^p+sYt)XnZoBPIvR^v1^|F-dbzwL3WnXA9D3;fa72djd}hL7DJ5o7tQO^PpASdOczBi|TIv+gO} z^uT;tHgQb#2Q5cjZyZ8V3rc*{hY&fkilNK|%DCtHR2~U^xIHY=Pjt@)<9&@6^8xeN z_Y2fjUx`lRkp&U5qD!>JG0%H*#ff^u15;MmtGv(OKrOU{9eX;TevUo z8lv68zp8jzD7pO4=Z)n*h;v{dN}C4%G22h)J!qLf?!I15EB)8x{7Gd4lQFG*&)h(V zUsdtG<_mjrU*8_oxB39i&Ai12lXNPrGn4gf0+LJlC2n7_OFqAs>knC(GYn?DGAWJ|mc$j|$0oDxv0JU;HnbqVebNcYdT!+}#@`|2{2(}F1o#iO%AqEBizD8Pe~{^Tm8^|EifVmpYDPO zL5VWGW&g}|J9YyfM(mP{u;fr7YP!Gy5m3c)3E@OWZVEqj zKf1n~6e?>sF=ogc(qi=oa^mAHPwM8jcgtuT;q`)bj*bU#6pAZ3Cd%&YQkYl9K?ma-uxgJpr}>FHtaV3?m%3@)XH8SLlJStG)YA?Dj52755P zy*0c|8s68$vWkC+r4@W^?ZH3Ex=WZ=}%V5KD(6JS1B*3 z)-#%tC(H*JX2u6PvIl5x@2n3rDkbX!CMD|wCMD|wjqxYkHjE`XV32$4k2{#EXqP4T zi%T~Uo{4mL*P>j`Z8cxKj37*(PVAX@3B*~F-wro>_NBi2SfoYWzfU2 zx-X{N$vXEBdq9aqCYgo~(?R79XlITn{B%klXqb9q4WZRwm{QnJ4l9a3s|91^6h}jG z9O-tV8PQEW`WEBcradp45JabW*7qMF$1NObhMhEHnFxf;i#I)K?qX&hv|*QmJueLT zJa(Q=zS{S`4wa<_Xkt~AvPT(dtYf(c9O`zfUO!uE>vPLE| zS6;86gR*-OyX!MNh2@0y{tv22^=|b;x?6K!Vq%&&4%s8k zt)hEjQ4K(r0d5Rrn~i>#WJLEO{|Q7YsZrT%blr@iXZu8sQTCB5Sc3m0D|H8ws&t8| zRL*Ls4-V9~cBk5@n)}@mwV#7>Ff|XQW_cu3P(C!&{o2dqvla(_{_3~$k%TwLkJe~2 z#;ZO@f`!}ort~kSy+U6Tjir(D?)Hk)crD8pb|{|d{gLhvH)Fh>oP?6;(nK4hWEx+{ zF=}skDGp9+di2aQ3?pqkWJ*P(uZh=M6>293DDgiS$$)tM@PjQGa%V@DAl#1K3r(jK z_~HI}qJSD!6GGE$hs3E{l6R++|No&GV#mIJ(AJ&;c(cWkj?xYLQQBrX{AvZS-)PVD zcQ@@#Gvi1q@J!&>ZrVdqWp|4tjcvv@uvhSAb`pih#-^Wcx{$g*>ia2q41AEm=Ki%8 zlV8c=RLHu1B2h~hSFs$*4!SxQ{;X3olOKk)`E8z7?vJwjt=YhPKq5k?W)-iZgyrnV z+-~c4>d1s-o$uT{TR11$WvQwrbs{O;A_|NJxMNt73s=z-3lj9uU#DjFx8j^vWSVDu-xG1){Uk5I0TewZX{C#I%d?XT*U+)&~ zwc0Ul5^b5P1iT#2j$kho+gPFNbSz0b$W7#fZ`$F*u&9IYjec~){g%5JG>UF~+R1FJ z1qd!=3%~EE+pF-&a-vFw~^fyg91VM{aV=PNy#Yuw@ z#Dpkkr`z7zhT`53(4hUzuv$XX6TbKjfb8SD1hT4G%m~3V%^ql5nrJUBgTu5wNj5W= z=&E}WU!ZT9AW>KKiDO@a4R#p&Q&Yb62|CSkfEqD9b87ztuH{>&nr{iLEtQeOix4lU z_>^0td}5>f&oj*Mf-)49i|98%)rM=p#iqZ8Qe9DrZBoo}+7NPm<| zn6ZX*J0v(j0ox6@ytZ+mo!Up~oN!A;1TFMQOb|$n)qN4v;TOT4t#ppM*?!@K39uSO zH(7|msd<))-t<4ptET?}o|^t!dAbkN_gEco-0S8U(4y&tYcW6_h+HTnWw056Hl3Oo zB)V61*I<_|xQXt?rjla%C*R^+uTLC=KBF#LhJSO+H5~rYK`x0#?E>sZ}%1s#o1;XchMnLd5#HcDd)wn_JRp?_LHDB5`c|q*ap(Wa%|Xs5oOnIoEM+B^4jt1y)H`QoX?RR`wm?4TG;_UNVOYDmUvO)Sqsv{+ z9cEffysLYyxyFHI!{zy^9bVxl5^+Vi2v*h9{QSgHnkh)G*zoA?@F)K;N{3o<4Rf%E z{qok5fl?dhjD&_g3rN)RcOqAh)OjNRLf8x|avkB;OTw$0p~7M?~wedux7Ta^6S z4_v9s#gK{|*>o2oN!&Y0@A{obmR#FY)0Aio4B4#PMz5ozBUV>$JNCNItACyz{DRvC zsNzCMk|r1xgdKjOjhT~743J@zW#=O@y?{2|>85BC7v;i$7!T-M|2)I-jTb>%IQ@bE z#f-s$*}d?v=qTbv$@AiSh2Iwcp>)>yxrEAHYS!sT!Kv^nI`?!IuZdo}x_alalL}ur zGBEDg`4u^hiLW>}atqI=;0yiY&2&BVdOBr#{N?nI{_!Wwk0Vv~(D(!CoWtU`rhde0 zQm-$ZZ+sQ1+qs2B)0Mst(5-JHugC>jGvy2vu~CYQkv(_ySHBEg880#fM2a3T@E#|4 z6a3jfWED|(xMh_(i_hPy(1LwZg(-6~WlZwkUUIof9-d6z$4frZBo9s|@9WLo-I}|5 z;`i$DQvBuA{YJlEi@%=ryCJ@8P6NI8j6Zoc`GvpRy}u4@%H;e1>GPh9_Wn=X_}|u( zU6kY%$^DYFC3u`ghE_~P%9h|65{&Ln+lojD$4z~(D>I8fINUFFT1YF2_(=no<5v+T zNA*`bO$x~Wi|5e^XMH*^uUQhycU~?S_`xxq2_?S5{5m^l;K#>wzS}B;HSP?pDcw?^ z!`||;eFK+*lKw^$$8?^vb%jDmf%8Q@u>C!Su58U9FEMt+zc^0QN|MiT?}B`*J&|sv zFIAGM)~rH)^qd{PVgb|Tu4q5l$fHyEQYu2@eGl!S(=1Q9@QhjoaGh#%|8vxCb1$&D zUn*AyHr9|q#FS#$me|}C$`#3$oqM3oU8-Cd^{sMqZSHfs&;9DbJ>U$v?;}W-ILQc- zSkh%y-O^(NZPwI2c_@*ArVq8FgIrA=l_BPP3h@aJUZH65h>RwuhpZB7j!v;7t zH*;Rc4&|R=7dkb=^ehUUZt`>AAC~9b?2shC2hlEV8EuNpRs@JPMNX~M<8bZMhlS7G zSBJ|bbO@rysX2n0&`+lEsDEYE_RbT#c`oQX;?W)l^e<4^e9C4!GhZXY7I9|I=Y814 z&MhMHahDF0NeNS&>X|%a3S^@`w51P!=G{n0Y9)hr`qx(3$JO?6k$sG|j}rSBU?1vt zR`(Z9WrEz6gS;{PMAH?~*Hui&uO*;M7>3f5`+0q?gYHSf)1~OpP!|m`XFy1PPvZf7 z=?Z@~m=E~<{Vz!MpLKu5Q+C}edK1yN@_~P)vU(GvEpQCGl@kzBLO-(T6XeOzu6Ly=DY=7jZ77Md@@T zopJn=w94>CbULhKJ(;0Mr=ub|&Qnd?Ns4?&*Z_255jU2-VtgLZI`*xs;s8Xvp3TlSGa*y~#02dM9a2 zMv~r1`eR0t-bp$uBT4ThiH1(LrFW7POg@>UcaqNal5%rq)#@GVm!kOwMCaLGhuB|N z+F$+buPOG|q2^b4gi1%**ZX-r*1kT;>k#|8$b+5x9E%V1AofFJO>Z+NAQwGZ)v}O0 zTYOp;KfJqktypw&U>N^H-GeG!R`|(B+_3reZ z_({E90-~q^5nmNgAqJ&JK7DsBj(#;DK@7)1tpMroQ>R4_ziLh`zhL?bRB zF5nTO%a1p!f*@At2|_x5eXeQ)Ir_MR$=}&uN znM2%;v&=f&X4c_UHz>}9W*y=KIcA}jUuEjJ%G8+RsEtI2Wy|>%jujzkGOHr(2D378 z8d`-d${=GIWwwYh+nK{()E5%`K-Pj%aLLPhvoivYX&o(eBWv7%vD4x#aB0W#(BerQ zVX9%qqt}^gUrOveXi{g4=-Hh2qj`UGj;4n!dtxRboWI>11N{SLw? zrZc(b!7j24Y{*?t^98f6A-6w1le}N@{IK)hz|I9v2b$R;86dxz9v7;alabzEqn#s7 zJ6m$?tS+IQPS}+9b=&E2l-o{^!)T}9`X~_=xD|^MbvRa9fgUhEqF-%z`*PxKmgm@Y2V^@m&6WqsE$t7Vj4={2{cs6-~7bEnW@!XSFqL z?H5VD;bv*=XIT`?l6};ej~PoZv2ESika)L7^cLBE_I>5 z7Zj{p<24Dq_r3~cE6zf|&FL;T_Y~!pRGMA;BVU_A|N0Al_tLt$up#c}(e9@Q|E13p z$k&{|koy<>?xh{;!XobHNrC)co_&1|C7;eR`p?@>WseqNg>1rFj6b4k_8n~4taHc) zBi7VG`CQ9i85ymxDH9fa|h2R&r zEK3baUEGWuGkPGNj{tRuVG!Yk=Z4P>|H@f>CQ?meWtVW>X=elZn(q-eKG8n(<(~Y_ zdzaShU>pQ0dn4`glU(j{18J4XZI-jh?{I>ZMfAz6p)+ zd>Ei}9pZ=)wZEX-$f3^UYF!1j&;uqivy6<^3uXOZdNftwMj0WV)sLL3Mpr&W`agr| z?QHr2(jQbhSfVqH&i5EblK(N%)4}u)ZTdperv&R+Wz(M_{Wrnw6%pU z64acjHP3$8FYYw${zXuny9%D~5`?~Hp?3*t&eT#_`ehed=xu_UlYRk(eds+F`ddNO zq`A%Tp)m{nwO=zihWXG7EHomhZbYAdu}c6t04T@wX)875*6Avb9{RmGDkJ5`&-|C* zaUHQzOAp`8<67fSGIsxalIOo2b?v?52q9xw1B9*TnqY*)i;m8z2m%#@(96Y6&&c&V zN6svOfX#a5BNX#+PGpR&&X_k0{a5Q91HB(WeZ(?OH8V~rSieDPwV~-->7*OIsSAel zJzIrpRKU6LOt?zAf5n$XT}p0EzURWy#k1f@2A$58%ZcxXlp9Cxsfxs^c!+Is zBsFCCIZ!&cnnlj?U3xKTdyLzj=Fw#TqX8tQyj>7GE0XG;{)p$P;5$pVne{*CzT9mS zK2Jyrwa!xt4w5=^G94K?i2EK1$0{;YF8T+1ynz?UQo|>^+)(E8RcBt#wu9&Dc znoi$*nAhovw$lWb1Y4P_gfg{Y9y>5@Gw;02yrvF4iEbE!4Mjc54CWsO)`GF;q{md7 z+`uxGbBi!C& z`^LKJOqMnCpP8E)HFtp_? zz3*~nGGnII>>mR0WaMA#;$ur5K6LW?89w%$(sM)WU?nUJ{g$!Pr!r^S zaRvtqR1N|d&rgekyAR#VMbXAzTh)rIay$eBNMNO1U8@*`8Ilr<|8BHJnHV9{omIW}XaKlEbX}(!yPU@#N!SQPNP0c zi}!)UOipnVm@etlDY)|Q#);lz<3YMH0e;`irDVqaPirv@Eu=u|w~WAWva5f_$$It= zaI)v|#!_#tlIYyd_VtN_^@8&b*zaSuuOXxE%3SYLiwXs$%$w=NXKO4<{WG zR=P-d1#}oB;afiWUz6~)a1*QL2#|0_hMQ35)A#w*8>-nsnm5Dwgq&&ff;-JO|7@DW zCj_SXtqpdX$7`C8OqiKz=-^HBDjaPzI`igGb~NpukZV7Fi)Afl&i87*EmX$DUmr0O zAM543I^9%#y{$TfeXu6|1g0T}-)EZzC_7cuFxMYy9OI+>h3X9J#Ujj;9}RsN|Ile) z>=d?mLX1OU17AJ=W+Olnv&>g3$Io(on>W!R`8Ho6TN$UQpJs2B^=+2&%J?>)o4wAC zSiF@EsgZyNW8QNT$`+|6oj(t*x3Xkkaz|53-3H=+j;4C&e4GynXs~fV>_lGImARo} z+HNt(@rQ$_%R!rqr{|Q&{yDQL#27VHO{Do9b;CC{z7(oCk_2g3r+um=X-~*H9qW`l zo4+b9fNs=+bN#*}?wd9Q{dm*K93$5|Y`^tnmu6j?BF;W4P!Ot?O$O%Nv-v8^Zl`A) z;z-F}p%704bENk39!m{qu+lwNTqfreGkV=%9OJHMv{JJpsT0>lu$pl0LYn2dW(=Jp zgC104p@b%_Jo&wzP@60+bhzB14zZ;Mufr|m7J}%77Z<2)g`?TMQ^^GVnYAbI_+b7<0QKn1-J&~%s#raY*Atls}*eX6H_}E#OFEZU?-Hl z-OF?xnX-wXD6`plX$d;5-)Pp%G37JopX|k&pZ7fV7nmjbR=}Relm9$@ZpYk0FxM=` z(f^eEE0*|~Zme@X92UFSEQFtql_ay=E`+}@sk(caa8Bk@zS>Sop9aSdo~Z6xY)(`d zpz*FcrvS0XF%*!A3{}TLKwEbS?BXR0LWm0+TjIDyz)%g* z1nefCbD*D(ENQajhqmzzcJ-Vc||$TVCp#kGdh=eu%!_PEyD zdvYDm;xATmN-huMS`-8y&(77+IP@|R+Wz{jme<;x<%w^a>OzPgay2cAjCr7-uBr=* zwlF7p?AvbQ`=_PuLQ`r@5GQg*5I#;~Z3Q?x7ktr0pyA2<{Y5^mZzW%GF3;~ul4GZ9 zdXS$VX%Lhd<&E=KCS4LNv{&NXWq#B<&weQtZF6U;`Mu5@I`@`$+;|5)!^wBTMpc^F zQy3?z&5#=paMd@)?C`~i-k@2T6+T8>1j|j$ucDg@935WPg>U7dGSqe(m-XShvxU7= zT(yhf@#~p}zSNf6h>zRdvLN#vG^CfxV8h{MAc*aer#L?*RX5XY0_*syCBBZ@POZAN zOJg5yWf~Mmwq*Ao?t-|dtd&cr8;a%mn?qcfWCyBB<)bss;x8l=mFsD}9+V=EJcD?z z-+I4jc!~N8Vcbe-Z4oRdi_mkrnH`!@5NSYT8c2c!vMZ^Rt=ltzm2D@$Ts zXybSLBlvke;|$qg1I2Wve)F{Ol|i^|-sV!c?Cq1ahP*Dkc7(wq7TL5vY`ver3PU()?6sa$HN`)x_|59$78Zrbf$ZMTC~V;x;anDy|qor@1Tu`pg% zp4=8qJw2b6D6?haEXm={5k0lXxxo)pXKH+5CNhfEH#zz>mL)$Wf&d*K^&>3hP}D-o z@&GLghI_i|27C%&_3P`dT%MV^mYZwd{mcsIJ%B=RVO9vPcUJ3nx@1tXTN@`@Ftr4H zM)i_?@*CX~G!orw)2^1k#s$+)h3t$uUCdnLYnSf-w43&}P16GzTb)Jv zkuG^0n8B@X=%{PU57ec1E0pJMo97GiWZ(a}zJ{v1(G6uo>%=(4xBVDFYTbxHH`b&vcb&4P7Wy}#t_VJ~ly#I&pY9^&?nH1;h3JAzM=IT7ES z#YqmH#a9L3<}4n7XB;AbIi(CIpx?3avb$J~m%Oe(N7Pq(DKHF1e(u}ITog6DbeN&B zJn#xxCl^yXPE6baO{cUC4 zR2lbz*qalbkLSTcb844wYME%@ok&7%bDx)+f^vi8%*;ktL`>HDE?8;=x?r3`EG=I=y*{uI_lVqL|w zpG4*3uVK|hay@-crsXWZG22_>Pf8pXV{NeGo&SXQJXC#p_&x|WBi^Jr*f0bckww)> zT431@@;$_&I)qZ1=wy8sC!9uS8Dt++0!;khcVG-vG4cO(uKZYW`2vrhoN4k8GZ{#x zW-=0-CA4Si9h>~g_%*YZeS9zZ!?TxthLPt@#ft_NMC%)5L_W8FYbp!^tx6KMS zURz%i#jvJ|0k|>Mq;m*O@2-=*d=h=tL#QT78WwHQ0Ba{1MH@UZ)yvioO;U<^3$@2dv_cAwm&tZ1(y51o9aX0xhH~CGI zT=EB!U1`_q;fH+7Hl1KlVHw#Lm~eIB7eQ}9=5ziDqs`*$M)Oq{s+qUVS8H_msTC&W8=4)qty~lj*s;{zM4Zqlpf3s5|rnS?(O%aQoU1W-!Yv&OLN!lQ&@f2E=l8DR?3+9xl3d4gXFcgL!Lg*ski{%F zfHyfKZ6!pG%d6v`fjZ{eI^2@kq0G?{RsI}t!9!k4YpzmQhz?L|{GkxrawJ)!_WP}` zT58Z5Nu`DI7{{S$oP8Q2L-g;Ya>%1=3uNU^#`CnGI7a6iB0bi$X#AQ83F(s0n+Iv< z=C3$rq-r!5t_m;nJ-vt|YJ~re&drxgHJ27Vr?JG6dD>EMzL&`ABUE13Z?!HK=PoZx zcW)I=tZdisP0FdqI!VlZIXSnbzPEZWG`D6b--Zobq+uMqy;WU(O@wb+Y|-@NA|84v z4{$JEz^}68!)^JXVa$@CU))@y5m)9aLu&()i!=qW;wpG z<-h?H`y86czCZ+9K27TOnlKf2i9MRRlBDpmu2f(S%G+y(185SvGb5#0*eH7pBiL?e zju-BAniZ;);zudq>V8QVeI z`7WXAX8>l$hnI-~8bcV{b7C{!FUZKS!H$vBZG|mE)m4I=5=I|J8S!lk85XJ@D@gb7 zGBIdltzm1UOcY2^zZyv{a-b^M<@*O1b{VREhqZ)U6HWf6JC}CmV$8-%;SkEDz@A2z zTYduz9l@Mfrs>S5JZx*mTOb);v6GC++Gx6W&x&cQlr4orq$sxLYarYsC{1qr%bhL+ zDZPYWV`0{(+F-`aPq zd7w8lKf4_z0PPAc0K_eGeTWs& z{`mW=mTJAh9(U0Z*1Ax_=n;sty5O4XsI*icc|BgI9-HR~*5%2Qzt~^G6dA#lPHUAr z=bBmdI}L9&ybJZc_SjW3?8D%*^fpbPyH_>7st*4ldodi+fkP@#Rim?@xO0K9-86JZ zk^<=J)=7jL-F9B2aJj`248z>}rwn~He&kMqH}V?A3v$QHjjD@-P_^xlvQ$aFT}OI|1pa`}55arp;Dcbq+( z_K%3E+qTc3ZFVL`KvL1nn*;ljF@2u4GJiKhekf^5&3;BWRz)h;Y-7LxSXvwmVU|sByCaW{KTr#B}ND_7E9XSq>qKt9O@8}3V7o%|S{#w97@!`#}kQXXtxu8qySAl`-eQf5C- zE?r>yyQsnTejy)3d}$UAy@q2%YiHesIGz(@A!wtV?tf0}SuhGSVn49NotP=2ExhSG z#gJ)tQX^J?nlZ7M2^Q2tX<$TYvJ8&m@Sy;Tl@zGf#<{l5b`H&L?|~W}@-cv56mhgzmUkT=(X<5bZ4S3uh_#SxW!eu(i6mV zN%wENAA?iFsz(!gokn-08cB^Zn)O|yLgId8Dagp1lR^th%qVaEFZu_-;?ilUv9Uu1W(k;=Hr+)xaz86nDEhI4id8iI8kp5_ zlu{nP6!PvJ$V|1E;v~2=9OTxZrxJB?O!uEdd5`Kne9xosndxSIP+zuJw7)xgkiD{S zcbFheq16-`qv@1DCrY~LRVXP{*~~zGB?xB|0~ux^Ee&LtAYKbcT1Z<1=^d=Ct%Vea zxJ+K9OMntVp>k8>SMps+W;6FOTws0M8@#vJMHa0y&6)GQoWgkC)n#6(rG|N>7Fl$@ z?_#2DJB!ORs3}<+DP%GAZ)PUQasZ9aRF|T<%#pUe+5=5{<=zaM4A+vOB3%h7nA z--PZEr`Ezkv)CE3{VsIJW>RS4wc&JC?7|cc8D=2Dri{2f(nC|f$P>26hZ>#TYZ=`K z>dxNf3?FZ=$0&M?=v~ z5{p(x3wgZPv~oszF!5OH30Ohk?+sG9+}DazLVBs%b5oAy-8RG_^*wthEV7vW#bc6Z zv0J+4kP2cf`5=2#=vizM6rA^wA9#?W*7>mwRn8+;Cp@D`B=I9hrMdJIgwjcEU)rKL zQX9hIf!m48!gb9D5+zKvJ%ykjJ1}fS73~X$TE$oPX*ZAkY2iHW7p`wUurDU>O;q+S z=D2x~Lp~^xCEdSte=|jWcI-9Hn^+xtP4j)4MmlR&&q55P1aD&ZT#><~3~+BH&vxO> za`5>xyf#?rHv-RJR)}SI>AFkmIZ&?y)()f_Z%I9Ax|&;3Vi=`#GxIi?7+$mB@RmuW zO8390*bMKy?OxL^6&L<|c!y|s9#eS(7n{9?SKv{x+If z_X*p^i&wZCkLaGA*}0BZ{mrMdTgt9c_N+Fx)PtG|Z3$+z3bXgROPiD$R`|17%h71}H{C+PqK97TuwqCz8 zr&F2H6={jUwFvvgeXOwWGIDJwu~kA|WAXSy>T0yv3^d0WR<;Tup1i?FS#oD$Qz)^s zRcN}l|Ip$C^)~hELJP`FG7u3wbo)pA4%ap7&I(xxBgm{5Je3yH;O4TlBcysW2ZjEN zcCizSbiIxDCPRMx-)2CJS1a6f5ZT0eL=0>N#L&hL%wN5P1)IzgtmR> z;=`-<@3z_(ZM9}2HG2uw-UUe8%~9WjQ7fYHuub+n`=SwU&!I^zy`cp0fg;VzT}R88 zQZ<_~tYl#eScwN(1=rH`zr`W7O$y!7z=y#qO53tez0cb+{%TJDunp66+(f24LDaJA&V`<2#4 zHzZ;0=u|U+Y7$FTSCRuk8nsG#}5AiC-9`F?OSVf8t(PV z^2qW`m$5ahga?I>*u=5RmvhW~&%K|8A2$(|O+GY<*sYk|=|0YsSC0#*ND73+X)86ef#a}S7pkSch!e7w#_w;%5?YUEX>wp6F-FFF_JrX*E&T&5)Q1h zzmb3R;~QexF_q3Yh3+O}>VnUp_fc=;Endmy!B0auVzu^6{+;tZE4GrTF}B~?F224h zT8MpnChgo$`H?*mKZgjIQbF=OwRY9+myEEUN><^u= zrYW=WliYYwqrOU84>e2A8i1lYU3=bsFtZ`$f=W^|X93?6G-{#832MAobrb4CkF(H2 z1l4B#e3u}!*g~86&;mplzwEc?ns&eX(yN&WcRA?W7W%%Rrse{w_RB7|(3OIkJ{JrN zK<8QLXI25*Hs)~836GHw zR?^9K$36N-%Hgv83;q?n<5Q7*jiAEVRel#ni{w5n!p8aZle*2{=&aJ_zyTymTA!y8 zaj^Kf8e?kgBwtcX&P5N)jBq6@u4%kt_VY@^MouxZhFxx~L_&9Ng(VqnL7nqOH;lF4 zM+NlO7lGIKWRp4l&6Wi(uuvN_?}~$^E7u0=S~=F#MVR{~p=yOdTw;bvVCJZ?@%}hF z#Lzne@75}tof(fa={V({`bTHkJ%j?88|0tm$vwOz zfh@Q-dw}j&mWfiGpGdaQ3;9i-xi#gP&98 zt_>K){5x8DJ;7%W13g&5t{q<2tT!sg>(^%58rH^bck;bxFD@C{w~S1C*`TKM{Duif zM+zZ>a`luK3z+9xr_EDlx@7Oyl!qS`TN)&0o1&udP-G6a-#F)tvD3%3D@R*4bOJKr zh$D6ApFxZ85UP=VMn&ldq3VbDB80R#0)&h`)*z(FdHn8H5FpOh^qSbNqt-@K$DVV= z-P~VlXxY$gi;u&;H~8ox&L(_x5IzQ5e1ubFO9z*A{TeK6ik41U8*8PQxL{x~4~5hU z3k`A{KA*9esdxT>?``(D2=9dteSmr8|CLL)C^n(LvsY;nv6BncTn*;b^O{SA)D)3E zz2MjLo@fi1|B^jqo>|`=@L5h31i!Ye9BgBXhg(8K_8F`}=gaXxnE8fkB}50KrL2%V z_8G2nS|7RQm@lIkzePlyd@Gvj zR*@p2s)Xg6*=S67&a%?4LwBT@Ff`%>TE+pQM$^c1dDg+*dF@9Qed)UR@60oNQU~+? z9=-uB>|4xwqN;VMT6#xZ1yU_=#|TaT2f6Iya?KhWk}aGjXG_Rykx@I=7D}c`96pBe z*TvY6U^=L-+^$$;{oc%s7cHktYS9^(8=QahC1=Zief0RBRHe7G>_<2qz*G; zWIPs0-_p_|ic$~+o5dwOc@k|f1|SzDi*<~+U=hIM_6xo zccgU1L@DaSpP4C8e__!Z*DwX?B4?1+)qqTIhKioNlR>4~`Wdb>@OiDCKtSn8vPA@> zQw2DfBzjXMs8BWL(Av~s4k)9{7r5A{C9Lj++0(u8Fyq9Hp0d`{#FY_Z#Kr|~3lFU* z+-L%1v+~1@uT>UqgT*Z2+#fCdICQ&YwX@T`kAi=*8r8LW!)7MG&jTlr?1cY884*XN zvuwLD*O&?&G)%gdQOmrTTMvTkz*Np(+qkK&Y=1?feYtE#Y=0BIHhKQq?7jHV)fU9N zS2S|ce$_PbzH=>2s2;XV6^-FcP+prQvUhoH*?_)Eia%usoqbBbvX8;G7-4)ZY~*CI zk#;x#*~~#*Y6U(>76oEACYvk zPK3nO`#M7k*_Oxu&O{$SDlxP$endrjViy9S?sRrhiph^Ac}R&Pg{GYbuT6yboY)&Sq+qtc4ku>%$c|}aH~-b*&zY{ z%rn!2d+UZEoczEIToC)FQ$b}RFNck(ZG065WrQaACpFebOZQAX?X2{PgQC6grr6<} zOjb_)A0}6b9X-RfMDxK%#Sa)eyuPe=$D=M8URT!pkfYG4H1+BjJ_7*!Ci|2$tZqK> zjPeI8&k)}p0M9sLa}ZTW@nDJ;k>tpHMshaiacNj8 z(o?z`elp+@o6#uzbWlP}@ShwYj=mgLsT+$+JtXLK`?{0Yax?W@q4xjldncZ~`wUZk zz;#5EsiShLQ#5r8@u3@e-o=fNvhG`Ul+yb6$=ZJ3LLv7H@hf@4yJ*Xa+5_pi4M9nz z=Kal&HwE$j#41QM7Z$}H|FxIq5;Mo#g2p2k0s65SR$Xujd_7-XF#T59uzTypjxRng zV9Otm<;LX=smL8t7Y%7PdW2sXl6gBcukYWj{O^6g;dgm`|N0Kw_sKu&dmV$!x4-x1 z=j*-aN51&3Ymc6A@Vs*obd2TIi7XjOrZ;mOE&d<*bTv9hY$Z*nwWLs+?my$9S?p-_ zPVM6yU=VAd$@)6_BtPI6N9*Vck#4l&`5!A}k`g$+ z%h_YWhIC$FA9}j&WqMj<0{OVXeaw5{0p}FwCY&g3V4e>nX*{H%unp7H>-b%!#|R)e z;J(VZY_4aexKMvnMJGLVf5E5~o|gXv z(F4SUE!t&2nl?AT+S-p2`*9c_M1OjfECpRu+mJQe=M*6M#q~B;ddLCPZ4@_w$Zyw% zjpn7m1LbSSq86I{(9`%xy!Z7o$64sV1vOeKEp8uLY@xM2G_UNp!%Vw>_n~6Fe%ZGz zbdC?zmgYkjTj*_q>M7ZLo!vYOohWE0LGx<ICkM9{o;PqEPJ zeW-3f{9bjj&}#+lsIubiKD3F2juBMB_sr#*58X1g9Pm=XkM>|Tj(J^G;ivASg7gM5h`06tht4Snh}|HZw^8;Lku>0sOD}e zn>Y2ZTIex8R0#9?{J4eo^P%dv553DmPxhhVAoL~+9U`dd)onrOxfVK9P=k#;JomTI z;XX7E&mAn(P>#XIxWS&%`LK=})Bj)j`(Q*ZJY;6w{OUX7Zvd6PTRLJhg<*3Wnl`$RR+ zLQDLzg=F!eoh`JvprX`3hYKxe_XmIs$H-%k9}hHm_|}K!(fKM1{Y+59Px2al)IvY> z%QgnPl(f({eP~|U>nyZhP{WJzP*G{2F9>Q-k;fDISm@(|8g7%v6ZW^zhyAj76!l%H z8Sn1}m03yt1ifRSHG*n?%Aee4Ep)t~29tR;|G`497SseU&7;*@Ec8-AO`r3yG0H+O z@S%Cw7;2$s`Ov&}yISaJf|?QKwcFG}PZZQ_VR>uhlK}=B#|bL-7a*HgEa*_L+5qSY z3))X0c{Ao?>23?%z21Z7jb(y`ej%vAaNbzXx6t?evU$Bd87N9DFIY+s9RYCVz32TO66m;^y zHL>goBqXa?%1^I42+u6lKZH$>q*p<&mIM#lLBtd#8pn)CagsHI2370HL}j^ui3`JVe%)-VdG! zo_kgry7C71em?Uj4IBL*0R<`&M6^XO-BdlpoxP>g_IPy5dJa}&)H7N}zl<`IGiL7# zXBMC$Ol)p;YMb^8>6p1y_QZfYf*m08)E&P*Vjv)?-oCXBU9|ioaf-9 zYF(4?*M1x@FsGntO@^l1iw?nz1l8GY=e5+cTLQP;dATyE^$wCta`fW#_ko~vSer6Pz8pQ!Iw|@8$6}X-bwh<0FMtnw!*SE}NKz{lD za$H?GkHwn+;wCH_H<~@UrxM&vsnLj_Ytn8 z7J^#@4{?X`#uumou^D?$sf5FqNb75g#RX!7fDa4a(<&RB$O@4e9T#F;>!@Aq+CtSY@Fg*2O+l#o?^-B?!BI@oBIks;QlL$l7a1L& z?;OOPukEg=$&9Q6Q_NwThYJ|~C@yK&D4}shwiE0jH-DH!lE_0x)sF!WE&KZUcGMtc zSl_$07(CkI*P;HJ$LVdtyM(FzWK$>NN3kyFEKgQGlo?Ac!TQbh zUiC3_%SM&qit;qFxVB~G3uGG1Fl$02GJ;I6y~<;`6z`>{&STx&R-35R8)%iHHJHB4 zsWX*j>S@Cuv8Ngn>JC>5sEbX=q3x%818Cd$KR-j;CgCrLwz*Uyw6(YMo5Pp*RuEqW zALil9B^Gf6`}{h6SZJqiaR!dl=x*xt@Ra=98RdxfhHRCRicdl`;U%G+EmvZ8Ka6=cU)y3JV1 zdWh~lsg{yiu5LB0r5hCL?JK7Z4Hz6ldcsP2NW~5d`3BMuCw`1%uFSKOTr-92INPBq z3n9>Z?rF=yd5A1_1unGBx>^0T)SwLRI)eac(BxZ?J>tLTH1w~BNpDA!=5(dO%&mN* zZlTgGZ!NCX&9#1`3Y6}KB%ndTp2kXG!IWAz+ zWwb2DoCpRU0A$`BD_zne@ilf0XJkyAI97rUk<02rHTz>9m^qw(%${Ou!hTQAY=?}4 zi_euCS_|CJO2`8D>jGEDJ!^;a*l#UYFHlj9%CPoq-9Gp45lcFDf!}q02TCQr2JAPI zDtbQbn;1sYOKUf(9_4C6u5jWuo5VSVZ^{)4-wSNCsip= zovOXNUUZRmlP)8ZvM8LYsR~=&)NO6Gm5@>pPM^Ia@k9U69UJ(uucD8O%XlO6qPwKs zKCNTL=nMGG!+?u4M(HCjdaqMK<|E1n_+fHIS?SK$gI*J{dn-nt)+HS&BraZ;8GkHN zQC@5A!qTtSEx87M^H4j=G4Aibh4nkWD5FP!`>oGRr3KjF)JYS|l0QUJB_9pF8*3Rv z^KNA`2SW!pYN#4T*$jhz)!D<;8M{p7LbqoCnxIpJ*m9=7MXx_6OX1th(zOF91 z2A*Psr#nn&YzWOF>BUooBzi9-frVpZn0DqSoY>xNy$QZK{Yw*kGhKN>r#i^|Eh?1p z30{iv_QpX`Yay_Dozof2>@Hl&>+eFuA^iovdujh~KmXy@DHpcA>)2OXFwY{lY%uM= zeg8KY)}@lJnD)sJxZfKfc@3du30Tr+EoF!}Fo|#+r`c#6dzgfZphe@k(YmBNJ-oI1NT6Q> zB_J902({e(HG~sWdKbkH=WgL3PNRGt3(8`hEW(OwDdXD5K_^yBc1FJ|tCg z*aP>&xcjf23E?DPcR~+HP^{%~sZ`N1Tkq$hqBb6KuE8#g)JU?Z18I8+ptDl5D2nLm zY`)BzZ&lA#JF@PGv&C$WwGaKNHnezc;hSW0+L@EY;5kmko=M=a^ijOaA>_aL|AGJLe)VUw889xZ~|> z0|G0}vr)rtvcEYw?9pf|KB|0W-so-_S#-<_oAivx|RhadnMLmu&BTt1~x3 zkZfq7nko|6)C&1c^7(uWE{u(ONhci>t0F>F&_k}^I3iX`OW2KJYFoL$DI#79gIb{7 zrGR4QhB-?}bhrwg%VGxdmrFCEh$D1;u{FeQZZ(i}q#=04oNS7st-bbOP(PA7bpF zpJ$-Fh_soiOAY$xNv3GV=}%kl=j4+dM~(4+dJn9a3VF0h0TQOSrOHaqx_z}!2Cz_8 zPy}-_GA)q&JUz>AWnhJtb&qKMDa?n~7U6Yn?cTFh{21r_BemJrIivVwflOSB14eRV zS@K&B>d(zH2laT1%(E=Pezhz)o$slCw${`uzc*{@Rt(YkJN}d1yIU07*UfGz@Mz>1z96?P4AEMmL*=sb}LR zq{>=nz{4n$QeZ&uXYxw7yrkCC9ogpy1tSM&n02r+^F(rK9Y;fP&vePsSA0bV^b4c< z@(~3TZM4GZjlEgh7nqkCm8KO2!#Lw)BYt%Dl8hn`{&T!Z4^a{Vffr3%{Fwc2lo zMrP0mI){a>!X%&Sh=X#S-o9IsEf)Qocf)ZRRxARH10ub6wWfaAK)T{=eH~I3O)5TN z)#N69;%`<>F6$FAVBl<0nLE40(=7yxBf<*WvR;* zDI-+sk4eBr9>APNl8^$QMiFRV~?48==j6o#!!4d zD0H5vA-3v$)wQvEIC44PJhPujg_+Dg^M_`%vdfl)n_j zu2reVmhmfTYM!&JnoeKn=E1C69hfc0&ia?3j7H}SZs6J1`Y~|0$o89iMqW@l|4pUA zCV36o7{4RcrrdEsA!xM3`BpDo*1ZRKpOhkaIj~V#T#($z6%f zg;vk@@N^S688-9d1uo~T5ydB0I2W~7B$-P1zyF#6o49WP@&czN!zB*T5Ry|CXbH)< zgq2MU0<+`+i}7r zWiyKMr)B5qex;Frx^-pp3#5*|e1~Nx%bzhChla%FmX*n$D24fUw!+nSnO$Y{H;p_A zTG_x7i}YHq1uNI{EAEy7^ES*|VI0w3o6(-8;?FocUtvO7sp5RCX@aN~v4f3xjm>v_ zf2>)mZfk7Ep*mYceBFMv(ZWr1xmj#(wDjxP6WKd0O-lsIXS|uaFEHD^;XEZ*iO6FI zut-Hqyyy*$W|r|!PJe*aj#(8bkQ$x05!J+7l*Nlszd@_QEC{ns#Qq+?kX0c8m2>N3 zWW}ppLri{{8ud1KY>15hx{(>c2AEgTdU2W+Dt0*+U{9SK^>%16#=xIjR5)L+Hh7TD z8gf`N8-JRw82DEt`M+16WRxlMQl~dtFpM2?cD#5&RlJ3BVHGS24N|>iA=fY{(SzB~ zlYe}B6(fK7@ok&Luhh+he;d&}etl)?C{7*g6ilE*;$BB*${MXYwELl&gG3^^#nwDN z%05@MPK)HXsOmd9XOkNW)WIfpRptxOV`VZZR(;CFg#GF~Gezr!@$r@qRV$!BVyIe= zPtVSUO&RdHF4*2ij8bdydwA)QHnxfDyx@Fv8+xz6Xsm5f zw#bgv%I~|J)cL5R*7^Q^_I^oGvg7^a8qw&yqKAN>&GwO0WO5|ghAWO%ptve>d2zM{ zKU}17<-~Z*&C_K3L4WCd+L3Dl9Z}sQsl;ebh{Ag?;H!35_l*th{$i~>HZxBvanR|^ z@lToqdA#KAqu|G?rZV|SW$JpJE@7$z>F3Nd2e`Ki+X34{DMIn#0u7I-0`c2Vfu%|s zXBqzay&Eb-cKsR4U+ZEZDZ*`C%g zF7Qs(l9zsFiFfS-m>1^1uV>M#-aB86@XYJh+f=h6FJQiG-K#XZfWFZipOGi@CJ4uj zN@~hyVWAp1XIM7IOD{efTMUPE+1Q0-2(qzI&96ye4=_GNsbeY#XC$h0T`#uGbd7`S zmt84*!uyAcSFmt9L<@h6^ukQDF49;hV@+U#fEl9MrV^PQ^1X{ast1vtg_ zTlS7z+0O%IkJfz9rfO3ihfs%MEdD`xMIN_q88|_oa<<{u+>i49;U(Vc86y<)`UP}p zo*2lj9_@8Anc?i8Fb!2Hd9fr-!BEY;P8Qx^2_J&~1A@ zpxa}Y=jirHVgqVE&Z;kZ|AYIb3x$dkbzf)>+{VjC+dy*E_ zRXvSX_h`+GWSMNwK)>oM_v+V4^vjz=J9nmA!S@H;_gdHwwj*w@Enu(`xA|^vkQ6=G z-Ys{A5Td>z0vo3hs>dIU_HtMxeOVXY=tH3HN4nJ=u9e|IO^F%RoqRB=M_KhuuHhcX zfNjmf6!u?4Z|*Pe5Z2SU6tOvP=fM5kF?Io5jN~ePlT|3mQD@^sNRe&ZTu^EQjU=1u z%Aar4KiW9zaPks2eXZ6wE_Un4O!^Nwh%C>Xge=63lO=GF6WkKyi6u^d=WJ?Z&+B6B z`Nz>L-gmiXb-7)^ot4_HOin4r16G@q{GHr^DBj{X991>aYcvS9p|z1W93r?(_-%N5 zIdZ~{Xiy6ZQ;fKnJw1oV-^c$u9_3|bQJHv2{t4(m)~W{&JK(qQD4idOpkXaFp;33e`A;x;;WAm&M!ei;eb@D|-6Zp^+KpjUtWglcBd zp0|cVHFNl-b#&l?hT=N&0mb!SnxnYq62*42&}5h$>cXR1^L|`o?4%jxpVpOsR^VJP z3WONNkEN=Xp`JxgHJOPy_OO;SD?gnP=~y@HVDW?(6rl5$cdJv*@b;zPZnXfkxVu$; zd~faxdLra`YcBt|tL_+sjvL%3hF>Lt!x}a^I@3NSaQafrfxI(qol=b65#_wjw0DsJ zSZ|RbovqX_guGO@%G9mh*}GPDl%(dozrR7;$9#aepI#8+wwk3{HQg-LP<4CNjQeTg zw%$#~qxHb`6TgK!9icusWeIH*nwf@RSic8P({j;Hr&Z8q3ENw`vX)BCCHni$dtjfX z&1}R^(pjr|k*Q~gvv2}xhy`w?ZW+T79`#Fvs%HR~HlMxs3f8mEN9IB4B~BP3RJ-ZP zcG*5T{y$NT%D{{GHVuVQ8=-hCQT^GkHyY^#LFJ0Lw zL8jR$FXQZ>b)y&Qt;DBH!~|f9)@B#%OP}7cEH$;aF(R4uFJaP``Vqq4GYKq7Bh_Cg zRS9(Sx~cLjQ|9)sl?5G1W$L)f)QR1l2Sd_ZuXG;f6Y8m4CMEO^YhV_xa`#)y6YI@X zexPF~>#!6@HHlB*L_HzUB>15I;35D$NL231+kR-`x|QF5Q(Np%eu^L9tR2oaCxJeI z^dR@PVhJpdup&XWo_X}Npea|jJMj|0ujtX~?6MwlO2fp^Wte)jiEKTc2Jh$S-VUg> zSILtv&H8m8s5E#@pKk5<)?3u(xRlN}(e!l$4;q8ge~R!b-H|-UQaH5B2l(=0P~3F< zLBzb}Dq)Il5)@n7!fO+^^lpN+p%l0^wYOayE!`9iow`Y)>)AXb8%-VW9I&5R$DR0K zCQe+Ub-cr@<0ZER7~pX%9^=Vsu)f(j25FrtSqPI4iX@xkm|ia)Xm7r=O-Z-1dC#1f zx56+pgC(Q~tDY82gE8RDq8?>enM~-)3j+^E}}1A95eEkG99J z)4s93twGxsK0w><#kqZB+7wH_`++GgCl2UnB(T=r=4yoqSFhv=es<(cTY+ zeh@&(A3&8~$qI9P$=Q#2^p)!`fl1u{o~!;IWBYre?QdnEzi-@X`#Z?=7e-u+0HSSf z-$LU(T1`P=mMFGEO@etK|B3vERR|)xT65gU>m9fX~Ml<9T^*o&XZ4SOJV!s2+tweTb%GVqB=^Ms&t z2c11Ox1j85+8$yb{g^8Du+y;)EN89Kjc?veNXP-hCEK)Z*$wkP8SPFA<80&@I<;~rl zqZgXP={aW4FFEor{`EKyoFcGJO|`^uW~VsG-scg~6Xtk7I)l{KGPkXhX^Yg2&Y`BQ zx|&)VS@nczpbF{L|3Lnzec{^Xx2ov7bWI z-}h+bYKdU*?2RP+TrXBdPpn?-Bj8w0BcAo4KD&>OcCQ@X02ZXC(DXLs$*IR=t7_C^ zyHSs6pAD$Tmhm%Hvgu}{9=qons~&sfW(bQXZ#j8DSwTAq$qwfZ(&G1HfVl_MAkkRz zvih%~?m0I5uI00zIZZiJLbYhbUFFyQ%t_{O{;}n>Nn{6lgtrPIM}*f+a92_>YOk|U zdmTw4YOlld)n4qccMWr!&5R-oZr(@!ixKKE*`xUFTt1vtlH{hKXg|_32a*=lcNMZb ztIbzD{%>pxvX6+Of5xw@K8VS7nSedp{((W{m;e(j?eWjmLVt$(T(!`j$zW$#bD|lZ zIlL!_6=tD}6q$+!lPWoBvY9F8YI`St6tB)=K58^a$65MstkkcQJe8yWR zZvwYi+}~X%GtcyFmtF>D*8xWusgwiPa!>IyRkCiP!S2klb{(vq=&Ol?ivTu!+10v5 z!$ied#A<*EyDrqI5MaXlBZ}%A;@ybc#FmPCv{n0DW3gx?_;G_l{J9>fe~zT?E)0z= zRMSO>KaPKLS4CFkdkM6!V>y#>Z0=e}Dqm>-US>0>Its2#G{2o+aW%h+o#R}90io6W zHX}Wwr6@NLx@0uJJJ=eu5*j2riC`@6pBFek`}EH|8GVm(4dox_+NTX0$MR|3qWcRH zOBUbx5itPB^T&dYItur$)ur-n)j$jkEpt3WV3jg=XpXz#VKpy(~V9SYN|{g zXAqcEi23x4d6@d<96ZQlHpEG@o73%VmpOk+`H9~ z!(O|nhQOjxq%3U`S_#sx{h^;(3$eb^X|aSrd=GBI@RdK?1;%chMzTjS> z?;3Ab_hVPu)txo3nOhsd7WMY}Jmi$~u%%rP-_@b4O_hTf&T~@z^;_LIVgU5&aaQAC zv$udXcL4XYXRwUCRo$L*3WzvSb`oY)k7X@oV*F!sY<0dxJSIn1Y4eOe`*+GQlYepy zH=6u7+tu=0?T=Esi3NADhjU$B2vfQMm{aPq;mk^E;D~teLmkyO~FmeU^b zspW9K?nQ8=6wkh7XOuy?yW@(JShs)k7)rTiD3V@`LbpbjWtngDCd*7s=iu(R+1Y)v zH!T;7$EJGBSt*j+5~}%%vd(L4+KRA~EV`BS%=@JMg8c09C$67?AXczB(0}$@%gMS*8IF0F{2R@^_MeK)85Ko% zNiXo89dEFdy^W*CCW+A-4t2c@=B!A(+9W$Ruq-6BIk)u(i6bmM8*1g;@i~aK)tn4= zO*QYHVwS>5s3T05la*#AmE8Bx&n9cu)Zknj#%VBaHN1b`OCLJz3mKPj60q+g&tm)a zxI1{{mlPenb{o7L&j)xp6L#V$I$pot;srC_MU$BuG5R0TYqD(HDK4JInCU?^PRTd8 zB_>;V!SW)b(>8y)B_pY?Ddt}Z#*tLI%G8tYXwtRSD?RjV`c|9X)1>P~RyX}Nn?As# z4|CH~=@~XTVvZDR8#)8kC~jb3^xz0T&Bn@fFpmD|O6N=(gN zU|^Lq>dR*vK=S-~_2u*3JWDKaL4El`w+Y9lEJ1(e=GkOZ8n_NpN;JJl*f0xxyOZb) zQ%DVsrXLq7bWwSem-4WXpn#~C*_257K@DGbd6izuB8}WR#s8@hJAM408YoYfne(2<8i!X4#^uI50KJvdeIPZAh`_IH++(df7*vQ#a>=x}mDVLma zKJ$}TjpIcDGx+33&RRdYQn|Gt&`>(h`N@|Z=FfpqM<{qzM&munAN*(J`G zArB$1Y2@0pq^)({A)O%GT8#m{pJfchX`%aEyI4>L@0KB-@`sTcyCmhL5 zXYa>`dy)3@Ev@qcZ%b33a<(U)mb%20GV+mbn?1XvPaahl$2DYy{>1fWYo20rwmhT~RY;A0e zUvHjV)-@agC!_eyPOgD;u-u>tVmn6QAo+Zo9OJC9QHCD`$#f2VxKly0e2w zp;&R2@kvht5Tn4fl<^w!3- zm7351OOSp*qQ|IA6Mz2oYa3U&`#P^74@q$n_2r>D;VsXUz}!ojz+Rgq1`Yh)Z1=CaGXq+NvP-Iae@Pdw(oXzIGRK8Tj7bV$CZ^s%1U^mk8envZlP z5|=(KAOyYfi~1`0lezaw_>Q5F{6X~20X}`Ydna6kNE1*q;^?jvSSqf$mw;JaDRE?6 zV2i>wYoqB2?uD@Y!YT4C?4BTTo+YUw?xq6$nUc<`4w+kRA4(VOJ{QN z&a=#?$t6tyxn%pnQOATFybcTd6`1S&R2UlqAC7B{O^vX|&d`~*BKZ!#yFFkQvaA~* z&VIEO$u-VZaak;VuH%vJbCWyEX5Nfz!uD9-NMcuE>|B&o@e?RZAisd0*>RLY2=&d8 zmutw+909YA_oAxW?5`>E-u;2*R-%U98B<%E%4Z%auKsQX3fu8qtCrk(dLUyR8DBRU zzcw|sGOv$cUmLq2w75;Oa!oYV*ZK3ehBO!O0ckG(V@?t+A8jSkV~D={E`O|gV&ujb zl%>koI1$Yv2BrIXK@ubk5_;k7Ez5n42$1hK*3c_t-Mb9C=6sUTCAnG6 zrcCzM@Uy)^OGYvZ=86lEml5D#N^70Y9C$dPbEk^^CTrH*yqPTkJLT-~@_t{kx_R1b zd!{Gro9jCY+lzeNlOsW_=Xiio_Y$v?wSFZU6}PEU;yiLR`$TtISAFX4JY&ZBFWHb846M0)Tx_sY zo#U$0aJ`z>rzqpL1@{_$@0fS%a#*3px>Kin6NW6*3JCcGl%2m5=qXL zG#09<5v8XF8TVK)xGFm6dTxej@Y7J@8j`~^&MWGmjM3ycTxzzbDxV46DV=GwaF48$u_Ey7 zdlNr2#yXXUmK_-`T@ybbY$!l#2VM)PqJW;KJd(Sa_)*~jZ!0LW-mMzdFyXROXPnm) zgC+VxI8$ZHwlw-I%2GRPyHK5)(4lO`RUJ(}bp`A7iqh@lQ`rh)Z%{HmTjzk}umhoh z_-sZ%M^$HbwczGLXM=MsU^D~)Xd^=;;$ z@#R71FNhrm?kR@kmiP_DW>&s*>Wt_Bx1Yp$RvZthX60=LKkA}**){zj;LK#QC#F2p zh$d6h_KfD}zWdFzg=*w4MY1_h3oyk440i!Gmd9r2Di3h93s6iWl{nJ_?C%1)xPaq5 zfP5x}BWuSWs(#gGz}U0+tn}cn78kN{kE92qPm>B}yHlXjq6ZL?ktRX`Ms(LAVPf@E z+~Fi(mUE+6pBX~~*2kv_8RX+5b7X?wJ0nK4rIX)gKIgX^{+DUe6xN-hIr@}2QY)ET z&H5B*kMj>eUiv5sYG&z@?%`*fQryFkCwcgPfrkyDawRgA;>fXdgJObY2>tg%k0NKJHi*4^x^SGXCi+cg;< zwi(@czS>+Pi607Mr|NLgmQCx3FwT7&$t3>C@49=niOFKZ+%sVeWcFC6>2I}FO5MKG zJlJvmlCqiO%nsWjlGsxi8w#I^cc6l&hf(33R9IKO*6gHxvzM36@b>Omrg|G=wAT6O z^=8*Dn~C~&X7d?r32dmx<22P|{Gm`BwGE^;bj8~1*-&pY`M=GwnYxcN5&s35*f@O- zE{wOTs9!0f%^qnKl-#q+Ro&b)NHg{gKQN!dWT3F};4KxcR!SXoNY-q^-S}V=9y~X< z3D;h1HsMh9Ym|dp;Qy14H+GGmIdh`cUOQd6kTryKtkpZT&`6EQ4jku>sKgp=j!N1* zMk#(MIV4a^;ukB4;)rL+8gFs7`R_x^biuzdRk@~;NB^dhBXbG=xO;e}J!7+Hs(ozZ zg+~Op@yx@ZEWD_MiFC9Sf81OVGU8-#R7c z%Q)s-c5?oww>m{ep_)Zx$!O!Z`!R&WgAV_Omn>m-U*POM&g||BC~NlPC83%Mzf!9w z+2u6Q@$6*30&I0u$vb`}OH3ss<6w@A=T+3pugGldi;P{+TTbgqVrTCQ#mSK2C?$jM zHbewXiik?D%MiSKN3N>x7{M^ke;fuXGs zFo(POq3XM63}iuWMruxO&6emqQ=Z&LYQ^YPk-~b6`ePBxNUMex#I`7a13IrTHKij> z5dWHmLYoRwjn~WSZHOxFg1-Z{q+S_DKty$xp;r zxeH4TId<1<`+iqw@y_bn$p;e-<)y%LK%KG|y7J4if?*s`H>7R#VDFUB;^Bn^kQ!LN zCjK(gG}@PA1M-A=Ij1( z5=WXiWQVZyIWQH5s&$XeH%`AYA<68=(y`?YfrRd{!&8pf5S55uZQj3a%tRsj;Q3I% z*e#~2>IV7-CGw(PM%GM5eoK`<7M8W|W56KBDAvWja3aLw?tSO^yHSP}en8FH3q1J| zrqw)k{;blqOqbzIp|aN#yCBZ8*9VqAW-eYsWyJQ^bN3l#unq2A^<}ndiH@`gA!P0) z@7}peZ7w$p=#Ft%&+p?wWKntgDd+NRGrK>FdU?}()I5#j+u3Fu5NnmByz1}3k+?Ie zR--hX{3Ba|ICKL5Dw`i^>c)!tn8OjuE+lQNiiq>J;dEo!AMN#>G&)o`+c}1$hz%r# zLVP@)XxYl%NhUqjU=@*Cehj1$n)MSF4ezQdV( z7jvQc`IuuIt0xm8lPXAVfOxAJCPZ!Ne|!f+`-h44yJs)T+25Ga_EAMls%;R?6B}U3 z$o6K!^SPeHa9~A9u^rfPr(2Gdd!Jn|Y($Y>?`!=TqTb+qqCClUhR|0KqYf{1SNP+q zLp@a9Y!|P;2$&`~T&+MndZgzWnYNMkb^D>W6lrYP~RC^#jj%-li{87Pbr3+{8D;oIRQA z_yV3IJKlmFyK8knnsV2GxKoxmFi2O&l+TWomd_8}zJlJfovxj|PyC;k>!0cO6NY_O z2JnA;0RON3BK{|N<%EAj2J8@+-m_8Y#hcB}I5N=7vSc>%6pyuP`*1Fj&#t0Sd^DVu zl$cUg5Nl;t)*I$`o-__67e`Wqob6q3!E#+$RrC?EW?u>F53xr?o2;mwkyO!z+h+5@ zw3n~57loTNnY^Z9wTiGm#U8T3FZCd?q*Cq#@jQMGUF#g-z`8T?El* zLOGHwRhsj}W@+>TI{J&F79#m@CROP!*mE~H^;B)b|10ODezW%BoW!`MerLxusC->~ z3c6Me*Ef~~epvuM%F2;qHhbmFEa|`u*kP%or9I5ufWqUs$OzSJMX)j&e_M-HobPh> zbVN@x0rAqAdAlCi99FQm{Z~)#Xq7sR8tU`>N=>27*|o_n(qe>#$CYka!d95k%$*_Ig({3c5l!_r?W%Cl5?BsMt}Rq;#kAc8%-MKpJ)gWCt!FXs%b1j- zNEsgU#n|VRh%9^kMsk^6ja$p7wZ+!9e73e| zE21bSfFz(IqOxd}#f5tvmBkto(9Hk$o_l8rvRJ?8d;b6D`G4?C=FU0ip7Wmfyk~je z^DY@I1C6>*6m8NK@@-7oqqx%?%=pJ7W(8HS@xN}K(F=U)TZJXKMmP{bIi@67RHnvv z+~vyXTmr6`FZ?-IaXARmpMq4=srxZH8BsnJ@taZm}u2jfRp*LiAXrpy_ zfWR1?Lp8FwD+kIUpjPnWf7v)Wc0U(v(dCjY5`Y4;LLh4hOM?6(uQr)?g`Fn}@(=l) zvXm!2SAxD}b@4GK%(9l0lGDg%)fBDUs(sp3xVqh^6+9t8YF!frUMKT)GWlHHxX+_?R`$xm&{-0I z62PARDzT_-4_@15(Mo}5WkUoYK=2|<)_q0EB}3vDVaBuKUx$om6$ytK&rVdL#xo!Iu-qOfl^Wf0D-IdY zo33j!p3}cfqV4eGDN*1L9nYSp+2eUS-~U_V`TiG4z>YkggF3ev&!s(o@OaMZk{HkS zA!j_9@A}tfSs1*5$lPd2fu1=4cQ4BzFfsKK*B6QNos9oc;St5b8w^7E>_A8ORt%;(&+VRD*JKtsz^!b^|HC?^g8Rx1ie1lLDB2WbCTIM zy2+}ma+_XHnw_B6Q)Vf8 z^~suLbUXQuL+JIMD~?F7tY>N3Kh_r=1xYr&PCN03(d%Fq0_$tY)H&ZdbIl>s#~{7U_eTp!l9sMdV1?=;9!XW)(sYV&3Z;_RUHA=0N zCyHu5jMC8T8Jt-H9oXH2cPJ-WESC4pOcLK`=GoK^@r{wy?X>q~z-;S(?FI4qw9EYC zy*9otGoSs1!uJ-Lb4IskZaW0u?Z&6@9UCvow$2)RD#Cq4sW7vjDdo4sde|?yK*_=V zMrK4x;r+#NX_cjWl1TckYU>~+nQZk^6mR>h`U8h_`X=@}f>13Y-i)o~hb%q^%-bP= z*zX|$dK@<=a842|{8h@y%-|TmHC-N&IR7N%-NLUmQckYKlsF`%fA?KQv0~fcvl48Z z&tcn^i7xq7if#J?Q$R6K;`ixNnnZ^#WBMhrIrbWP818LIt|HlGGD5Gw$%!Pc8!y7a zNxgU#bT}!gsp9-J9*+AS@o4ODQ+P3GZNq8B6+LD3_94Mxd)BJ|NCJi2fu2${aI#dW zMMQy6*d&T^iGeJp8$$e8S0{<%FIP5Xl^K(lrK`BlbFLJJW^d<&6X>K4og(_P#IZl5 z84D&!v(XIpLy>T+n&GKkJvhz^ zQ%yzgf$vs27jSvee4ZCzRlGU`6 z!nx*P8`vAzscGR?sTR=Sz(9jq7SN9Kju7mjoGUnUIf{Eb%{e&^=gR)P%bZqV6T9e= zDPoU_H7l1T=sP-D-$<6wAoE~F8+paJ%eluw1;Ha%xhKC8I)qy+9dKlBv9Fz%;1<2r zp9BhJLWm1kIPxUty626~De+7)^)^zExW2COZsYRA_P{WsOg5PtWDX+6STMR!`AG|o zukmgZ`F@4B%$TlxFa*a)z;+Q(BgdNP6FF8s=OMX=6c2h=Sg#2JY}Fmmn_6%Fo~_|{ z5Q%W?eB~bcSt(a1&Xz>Bvfu1wuO`(I(hHg4^(8KXUx&ysUB)>~?2!*H7)-6b73DCkXKQHl3PFU+*jq35WBQ4zROs+H#D2 z=CpQD1MN>oAO{=(+=-n{mcM_o{Mm+XLO!vLhrze zw2bh<_S(oj=%0#ysPF-6%_mqySQhRit74ERyt)}dM!N~WWNzd?Jvi#}>|ecK4xn7A zFk7}in zvyu5YWL5A+&x#U wxZFV8FD?aC54MzVX{T7(a_)8_Y32jc8oPzm=<%3DZOnPu1Ed$yn;l*Wr=Zf^of5;drt>ddxai##ZP+$s=Xp9*1#VnfBrRv7`FTG zlRW)3Ruid)0r=`dW+5RWL=S9@IZYLtb3)XRs#!cX4$XTwaH|BF7_uSwwMUJ(4FV0x zViLPSfhx7dI;%$@bH!kxD(hH=kE=M0=uGXgc3n;_c9pS{Jg*e-cA^ieL(r>v;@POp z3>~)aGf3o-Rpu1CGmq34ZC&Q4JXd9FAd!xN!s@kz(0Z4N)EMZ>V9By%T}n?9sg&xh z%^yvAslJ2pFM!a&`2wH&?f4FJ-U_x&J(CyJRpTT>sLH1s6ZvY0+`?b!CfdnLQ&~5} z>3c&&%vK~Fixg3rrhG`H*QC-V6glZ)Qqm9+TM;QAHH2J97Om!nh-f_9$%1;4#d4(~ zA_{}5)k%hJKw^wl=~pGvqlSw|%8Ts^P^QxBq@L)b8|><)scgBOQ`PC?Lk-><^%ym_ zt0LvKM0#@CDxe(VLe&I|B(DCT{j;|{*)e@k>pS5sCiHFr*zD`Iq@?XGOtZO z*P3IJ&x_2F$>$~J1&QZDU!d0QSf{j@6F*Y@U@zX9O5SVwlgVeCpR`V~%yW~;f0xoC za%1Z^Pf8}&H&a@Okb6HJu zO;;w@Q5Mnee$Gc5$Z@O)VnZG6{@A%ZxEQZkKct~hLF|-hM97_EMKmJxinu-+5sJkN zPBdcErA$achb1?7&Md3iA(jb9_7^enls>!JwKFT(As)o)I`>r`#2QKp@3?j9?Q2SU zI1^l4OIZU`AbL(=1!;B1dN?3^PQlmKckWo8)7~kK=v6F}p$u)_935?20i_iUeKKF+B zc5`sS_xtuqL9%aCZk=+MatvW=hbg!`RdCWRH&$5ULzNc(JXM`V9lfwA7w5Rlx3%v# z^Iff;Kw)s|?Nb{{PMUhxjHzo%dbzA;sR;j5-+$-D)H^@FwZdh|QfLMaQ?UQvla=3e z$6b@AG?etX-DO=Z#l43q{#YIG=HR z8hO9P`HbdwfX@?rK6Ab`XkUIy=neT!d@ka5y8P7kuPJvQ!L!ruJ%U4QN6y>jB!^&! zW9WTsuwq#v$I#-~6*fyKTQH|O$NP%)lYR56AE6KLFl!Eh%^}Jr=xjXc82^_wS>?+YAPN z9K82TJ2rm1r@{MMPWaHnk?|{Qp1|AZXz==eG`wr>IyStwHK*|V6%5r;;gy|2;0=C# z6#Om(13wPG$NvC$U)rC7_o8FLYo8kSny>9U3cMy5_;K(~nR;yec1VNweuNQ6#jm{z z>@~X`4c@^&8s4RM9vj|kno{`vDDxQb$~i{pVe;Oi;I{@0{5br!`vLGi{Y?tqbB+bC z?8gG{^PC5cxCCzj13wPlEABWpeh>UR1@D}UW8l}eyVz@H9}V8VKN{XY-F|F%FG+)U zz55vOil+v_@A%zE!S75)?8o7^>9%9T``Fhh{PsK+yd52Q|M=BW;B5p0KMvkeKLFm( z_od*S>N*B~^Bj1;`SK|67XD~>e|77z@q1w!yes0Jj=rAR21R>K@6q7Bg%SI4`2Fmb zW5c^(ZwkMijs8CmV>hZNl_?%Yr6W-%m%6x-w z@k&&)3>m}D znuxxh(gi@ZBM0lp4O;jU)jhNWaFlJyT~MtkNUcRdD*qqxGf6*sWzIScj|#Ilq6^9(@1i--a-jl z`YzVpn2KpNBVqE=U|YGK_P3#CW!*pqcu!X+Z2Qyd`$eauhMwZLuDBda+ampI;xT@P zEI~!5-!KI^anmYyu=f-s6-}!$f+tPEe4uGn4xXF4Tz8VI!F4%|q_8raJ|$V1}6Ugp+ox#1n0ALwAdrJha;b~In(sljy` zm5FS=HIBW<{w;u9gsR(wRVh_M^(62reT?YEXW=-Rm^xU{HjG8Ig-9h(f;H_#(??aJ z%W@iocxXh>t~QS-P@5CMg9?;^+{B?&uAS=I=z}NtQTzUt`v*8K{n0z%)_wZ(3)R;_ zUo`vChJ=pc246#DG3mhI3eC-FhxRct=Watf5olhk-ob+4nEsg$W{R=Gn)EOP?NHCl zZh234O+oW+R8E=xyu__St6tgHUC-_d=iEu%=8{){xbrnF;WACF$= zkFPA1zgVs9(y9Z}sP2^8yrK_~;efUb+p;@uVEvFw%y(E=m5=w8Xya46?IXTSf2EFE zX+tV6GtMd~i@qWdl}B$bC?E2vHg7d`wZT`p`x7#zH`887UezC6B(Lg^Hu7c12gF_Z zaCh)@e=1Hw-0X9_n6eTi0X+iLmK5@clMwTzf*d^8717W!^s)Vp2{%^^=5K`flpSd% z0SU{Z3IZh90uMd1p?gAlBkn$p;`X+2?k2&@MBa5!N{{QLjC)&ozy0OjuZ+c%R@@k>FFH%(#`XkE*`1=q#{99Htu(${8Zm2%(gdx+$tqCemq`u*5|J`X43L@tMc#&Aw>Mq2|3e9%sWaAK=Lnw-;8WUwEHON>uL>_UT)RHP;OUt6Feyw^x9ruJ=&e!IB z&XbtJJ}*OPU*{Oz3a>M`epy?pM+D8DWrL^=pYt}sP0{)pA(GAa&dqVXBw0)_mEw!4 zT1pWVlkZT66{Q6s=hXe9w!&?U-QbJYhYxh9*jL=!_Jvx8o*@ePy!n#N0lZ`WQKr%` zmX*0L%HpDptd|?I_c;(!xs=4xsjT0|^2kQNR=TlFD}5)98P>{jqxT77Gy;ljbT)De zYz%UP{n(w!h$TyrMjyIV_)!BA+?DHd3Pd^HXH3Un{_+B${Y5OPDtK8&yknB`)dD~} zs>Almf|ZR`kKSpDA|L|K^F@$E>;$#G*cWROb3DF^^#rRiEPM^$_E1Z~jN`PWYkiZt z-tTko!%5>#ZUSSQiq8lhhqsW7ihN3!YD;ey+rHSV+KR?-{RW6E+>$%v9-pqL(HS$S zJ{_6nwM;(WFs9C2ZT@pG00<-{PUfHG5pljk0@W zu=pG;(ua3qc>~rCXp&zi@C)Fy70T`~T!)ckt~TGT>QzK>bnsrDkOHqSFcG22D;si; zqr>M}&djs7o3=1Il<3U6U)B&%(|Ql8D%IC{^@CHibJl7LxP=zV zU({#Kj#pFd($}9mCvZA1``EWRu_9pAVgi_`}6Ts&9Y<{Eojrsr~53-h{& zp=vYBA+YqfK1NjUdr^+2>UatwROCs|tE9L*FUemmoI%Txjp~|QE5#4$X0z!^#yslM zR`kas@xhC=M_1PG%nq;fCh$;-rLggY>OO}!b5c&)iWVAtwiaonIeU>4DqzD=)L_kJ zT$HldXyCHmU_K}J+FQQ2o7@KaoNe40*h4p!PiRGLDj)EWzNxI~bofoBnQ~4gX=^lU zTQx#3(e_?_jlOq{cNNCN1cF$J($wrLj5hYG`kL@(nzppZMI&mi>$cKY|9O@_z7B(a z&8KgevD1n|Z-;GQ^pP4kI9?h^+T%(6?o|D6e{NUrmg+yY&Z7FZfS+L3OQO9g-R|^) zF7yvO@;8lRU}|MN+NZ_?Q0xI|Z;$umfS)!X1e8|Ct|SUxb806XwK29(-|N*IOGRJG zp4n|D^=&TC<+r)w(+Vy(N3k8s{6z_0t6oSyJWZqI6eZ4oJn>Fiq?!j&C>qugCl53D zkp=|h98}Go;DAxCZ?aK7AYOZH{FV-b?k|R=0=0R*Ds@YTqC)UBuYLeNXO+*r61^{2 z!f*8b%Zp?I!3;h0U4PBn>JvWZi=0wz#anH=#wvB2Oa71bTxQn4=Gj{kR#c^>iN^(@0g?+5Qay^0V z2rB?l>-woi8`Al<_I|w4GV~nA?&2^ux6NVfxMMX6t;%Wyx3xrl9fa?b)vE?>&Ke*$ zBk?+a{pZ7NGJ8+o#JHRb9-Wqd_) zjr+hjwl{kpc7|2$mxrSc6{p9L!-lidLM5Kd%|CKLNu!el9S683NiG4nHde>0GJEkg zs|IyqIZQu|d$9Yq`7}1xM$dxo))pZ)cw`w5wQAyzRNhk0*jNie%C&pjGQa*_nMWwY zv@b=RbT64S1S@B4B2|P|HK5@TV>H_q;>0eBylbm8aE%!hM70IeN%2o>68-l z*?my<2}wc1;HlZRJj-rK9mm+*SsRkG&9C2}W}Dx*2hVL+DAwnXmkQg@?hu6S@8opP znOfyIl(*UW(MIvikgYu zGyo&L`E?m+KO5#Rk^Xl({l7`a1E9gejWtbvdE+#(zQ@otYEc+pKgekX^&ouOd5^c-( z(cbL=Q;?oN-TB>|mi`h;So(Rfjl6O!tCVeT_J*1`2&wLx7@B)a`v9WF-DW}GP7+9B ztb|+eO`6$bzy~Yjz5+eo)6spxN?e4^rBM&kXcg|tk9)=K+2TJkbv_Tx?wsQaoa~!~ zo28F@1daAZi#tb4I}-t{c%Vlw9heg*jQPqUKN`R9D1H0S@c8m4t{2n^dY2h>=fMKS z1KkMKGT;LxuuHji%~qaSQ$fU%D$<8~Y<+YSR}!1k?BA8Yep^QDZ7UA5kDqfZrqo~5QPiBJjxav+j`pwkNdjhA$+zxf( z8|l~?ICcg0QvGwnm)|C?%|(VSTaUOl!1zM>Q@Za#sSEeGDkddfBk3XH3bUVS5B>FO z=+}q?PG58^ROus4X7_jLY8U%j0R|7i zcAEFmeW^f*r0v_Q*cZ zO0Zx@keJ-bK|(g=_*d{Rwi)xAK?)62} zru(7uz31WP`|LrCQR$$x36J*QE|j&I@Xvqd5ZrF_vF|!6f&={@*|g)ab+nfTiX)5#&sVmb))`ctkx{%Pq za(v>`8_W7h;&vYrDnYC^Vgp`iSBQMl*Kdt)$Ubd;f5zF52*|xsY#Ruw5WTCQY{=*L z{A^0CT;$ahkYDcplB5|JMwDX=RbHoVCQ9TcWT@Y;Wea96I(Mj4f#|7q7&Oynd1LGz z^%Slwa0g~v;vygaam$j7N$o*!ldiLzIGL$BF|xzA4Wy10oiWY+hU`ULe79G`Ti#{j zS38&y&q;5S^d%g*)EY^630!ecIR8c|ZXPwVVmM9yNCoTPCmzw6|;vlJx)QrnJEKUGxQDo)0H#tn|g zgeH}^tvveEa-2V5;X>>~G0nk;O^M&Qo?y3gBs}~m^P@<9x0BdM6et<+m9m(r|dI{vOXzmWWRl%*if>BjLc~mDYi?}Zk@EN zrMcgY?eB=v!Kj%|be&u(@q{j&SYSyQq{BcoF44-)2We#z$g}HLd#Skn#hKHU0@}bd z&{Qxh>BckilHiJ$4!OG5M;F9;Mn`2WE(x9x?-V4W!T!aeV0-ft0E}guk&EE_oR~n2 z$W^JsMVcdj^UgOqB^;B*wko&ZTuOanRl<{&8I?6`_Tsruf6sh(YbS1C@NJ5-7MO2) ze}Q6M*5lG|Echv_kKbTE&Q?zpSSh$q3Q8Fcf-|Ms)2S9(w|eqT^i|$k#9QXF%}NVr zbSWZ;OtMJBxb64XqWU3*<9@al>uz;*yv_V8o;$6d%a2JxP`S;VMKS9iPHxW${1ErC zugb~8v2c6eZ2zXh;zESe3gj;+uJsC0MCso+jsu=V@R0PcBmUUJU-ZYG)tzv)PS_xM zBe7^mXvm7Y)!EE;uM(W=ctsYvW=AWpB-Hada`}rGpfmC>#23D2nMn0m7iR* z&lW)`zM2IW>J905>@>_|gMA6xI8!Z`ww0{)j+70~bL@=qKxl4yoikhw@D%|BB!GNl zqg~+$sZi=t#)`3x>inSeW%@gMGOV%N$#=nQpn@{vLMG_UbSw>%&e|y2fU6r8$StZu zTH0WiuSs+lRTsn{0=nJL>nB)sYh|9=z9LF(n(4#jV1e`%N@PWl-loRjUsac4e@tOO zI@bcKVvnVbzj?x2IVzsYqjf$be_r4*SLhc$F(E3d*Ot~#kPz0%`Erj_hIjFMxeq};RgkrgmJs{jM!?(%3*^S z#*Qws$}JLq;=Y$IpBy-Qy|plz>XJ_BRTUMB9}?ScpCxK@3xYR^}2iP2*S@dl`{h!k2?2l%98`vc|~ z4g?|>bna-xajd$d5#hg#_J8f|=&~vmW`^DR&@Wv|=%Cgl46a|kVLR)gxI(U6wr+x{bz`J*=!lo_+~?B2h_>UfD!%(|r9?~BjbITt#pl28QURXy!qt)k!*tsuL0 zD0f{Ww9ci23#W`|C>`8)y26|EiWB%kIU1E41A7s%095>$m*8?7RIoEkBL~bL$rcz0 zCfyA~9{z=Dk8Xi&>m2a-ZH9jD>#Du1JggSyF|H z^?eGaU4k-Z3Kv%cd_;@T!tY56;qVgV4<{*Ie0p%(E_$LDgGVj$Pb!2_UL4XQPw{9L z?uGz=$CJ$epg%mjH|x}$NgO<=E(;Y7+S@p&CWStqbYtL_VSE=3Et+;?VzA1iyq+S4 z3W~yyuuK#?lz{Kv1E%JHCbLq|E~lVrzVI9xzBSqKm{h~LcEcki1?2zyt~+nMb*e)C z8gQRRjC0c39w4Pfnvrb#fcYy$EP~8w1=y`K?SJVCNT5f1yiZp5iK?$Tc9R8?LX*=c zPYOEYo#-mZ*+Q=I0(SF4F5jx5N+*}ylEUl0Kw#P!8)8K+cl;tziwOJf@vFVzt|S}} zJ8+a4cXzaB)qDqz%Wu4M^5wTC*2Z491|~a87_*8=eyP#>yt1JLL<--<3*!F;y6SwAD++|85JB&X{1pcao(kb}b_=AL}p zOq((2f(zJ4+RKYec@f6P7`>fMQ+ZQZbFS$9T)B3ic0*$lZ|xksrRHmkGXVAilbWxS zhrx#|^0T}MFSM4(KX0K&Jagz8?^`b4s|oc2Ej zshQ427wlB#A?{@NdnMmve0-9l7Ily<$Z@M&R`~?Dxycd4USM+L9Cz{>5xbo9H(E)xZ_0DaPm}S4dG=IS+4L9Ck}2#TcT~p z+Q{%o>@EpaB$7^VBU+>7o3y3g&C=>^?s#y?*o6Hp+R7{!kBF}W8B`o6Q&lh^n8|6+ z1+^o;I7uzs!LGy)Do`h<(|4(p(~ak-)woesxvB_zfSUtoqUPT_$vFoOZm_eVT5^#la(!5oRI85+Oh}kf4P&(8qFpq>@a#8Rx`EB z^VK{{ak=}rsWXKxQBZa}?a_1(91F8WB;{R{5GS~)NoZ~&K%t$s&AfP(-JhqVKO#tq z^_2W+HFT`-sIpdV!Ai14xq3FCIHS|ss^Ai1)P zp#q_zz`iLLK4>hq51uaE;tGN9MSHdFW}XSB_u|c}ch#bp z!ztTBhEuj(5HIu8D|mTP{%}~J`2L3}e!WwCXL|9o4lVkQ6g|%=Dh5wdv%}8=cuw#d z)qw0&FUlXgfv4oH@21$Wt3agiq&dNJl$0o~Ttv#f=ahSt*J1xt>!Y02Q#ieevY07> z*6K_YHN-=aU^6Q?Q~9|qUu6A~3M8pr@Gg?ng~HT00GBV0F-;|1iaHk!lD;H%oiK&t zekvlX@@26+`8CS^RafKo#8+FQ3vRzVD)FvY)wv;7B&8R3LcmcaPxp6GwJc79UsqKe zfbyikofL@a@-)dVx*_(VH}VM!M`Q3T$Sgdw2LXZ^o{!E>%4L;z@wAXcR!xQy+N34n zQrn52aVS0i-+uC=_LEQLWO9`K`$-?$KKIA&C!4mbeV}vSqwFWo*=4>w zLzOxFesaHEX04QIvu!vs>%;6Pe|i4<`$=MbJqps7WWSRA@ksm0W+(qx`^i`(lg-q^H_OtE;DKNg z!fuE{DZ*YZ$fp)agsbYG%YlVW0&(c{8xV)SDC;+BE#{rKh~mL&b3ET%FqKdGBsx;W zyur?~3(JgQe=--y<}Rj(XA(6^i!|_>ICr#fXHJ!7_ zl^4o8M92~OTwX*HnPWb!%ErwDKT(calkrHN`w*7#i1u&9>1C6FZ9oEJJ_$V`?K`s& zn6K-NOWV@k1>&PBcBX1eZZPb&E}|_?XAO6#n;^elnkY;O(r>;VTr9J3kI<-`Ixr=?ooJSSB9rDz6<$2z4K&}!~3#UbRcIUxuW@q2FGtetkI`TR(J-0PeV z9Q)$)xcW5Dx=YMq6JGURT_jCq4*T0eB+|y9Uh+#9OAlPgTc@nex51cTo&Rhnc;{ZF zWOMXm+iwaSCo458zKZCyW`Y&|s*@`{e#BS~{@bZ9A=jV5xgHttd1barMpkgPNU}KB zlPJzuhjJ6^o3vmHZ|L*nuLK)4oezUOb^npN z6mU|k|E4qCNN$&H9;UQA2TY+Lk-e+Kq+E&~Ff;$bPWOVk-|@rIi;BZO6rl#hCs=Yu zNZ+r@qPZR+T&P0dSl(}4u(PN!=$%QVP83fktP02TXWWe0q0wy{1e|mwHbPsP)d{;+ zy$54nT(8}iE8p9+`4aWkFSqmrd%owN+S0DahYr+f#z~z2!`pl5YwAC17v4Es-;le< zAFe0h+Fb3vo)DwfiOjn6`A_@y49Gl2ClOHt!0u zjX5{)<9aPToLoyhT&uc_u{VScOwi^ZlpZ=jY4@F!tigV1URSAMR7G)@8P{q{>$pnE z5=*HDZJw+iv5TFmY+%HUGF6qhm}>*fT3Si~Gfz}uOG2$7ty;Rs6K0swmi1q}ma4T^ z#XZK@qR@dJ_e@1^LXf&nY7yA!o(i(A=UU=7GObfHuo1MetlcMPcfqt#L5Etw!UMct zzda`xWuW?u*j!_5Md(168I!f88}a_DI=89f+SvG14LMFf!mV=yx7(O~W%^B0g&L+< zaq;iwo?3i=U~=&TcoGXAU}arS8$4wYt9U`_0Jrrzzl#?IvWnxuj&!38kR>Fg{WxJ& z=)fX0MM4MSm{1k1)RwOF_p6U}0Nii2`xZz!AeDEjwamOj{T{4w>E#i4F?eIu%9x5Aq9~jQX(K_T~vIocHgZ$*=;mh5)54xF~+(>2YwGj ztSuckAj7!V4H5lb3!laq(UqKH0uK+6_Y6;l>h!#goxuN`o-d0&EE&w_CvsYKNb3aI+gx}pt`oAU3jbeyX<{^EG0T^KsBvLY{Z z;2ZVBho`_YH}lwSO-72LKn3bo=Z@rY_J9mPuB*JDemgD(>zG;fJKN>14DTAQH|K5` z#&+wvr>ttHt65RMi_beGK2Bl^2B$oTtr`@W|5J5evq3%8<+* z(n-k#h3}~j)f0w3*Lt608o)y#?hSC956FOIT3r$y75J`9!uRUj(FCTxZa}6dbg-^+ zIAj>!-oAc&7X@yf0=IrwyWGv5@W;bFM%GX&+%1EZH7p+A9oO#rj((TsZqu8sX8~Nm zdYtbBSP$@=7@>-Rj1G7_+s?eF4;h&ZT~@_Oc1BkxBTuTAj&zpuCb-SzyY?sinR|?n zPX6nBjt8ha_$=bn#$UDL-{LAlQ0e2}^@x`XQNJzp$;}jDG)@PN!kb&YIQy}O_)GQ4 zFT;x9K_2b|HF$Cf08QywuA&S1Nu17ieJ>`2wGs_^{|+Rz8D+-6?wnsT%7%P>&vCX6 zZDb*%?uoazYWeoL*%Viv>I?5|_F>L=^LrgpZrB;#+5ZUYV$--Mc-a*=mGjWSpFRR4 z)p4VQ}m%0UIL9-Gkncft{u8(Eq^Tvr(NuC6x;5a~tv2EWz1w~@WErkzA7*FP*9 zvPuj8lhTe{&a=SF3OvDGe0uN$f{tgF4{4abaY1JBX~8nGGW7b;+M-a)Of52y$>v$m zo^_z+H6FF48+_40m62LkQ|YfR;_SDC#Fs?xSxT!V+7cy7hrgzt9os_nuZCK>S9HqS zP@H=Yn$26SIh5ewH>Gx@wzRZQhQ2bib6aTTtA=j_@rXkQx>xKXIAF!jF-G25EPcg8 zwMa2#t{v6&_016CwXSu)BZ2ty5TF`k9PJ2KQ@xv}kP zIzw*=?>{y7ErejXo3v`N0<2!EMZOYhB8;TmKZn?4%k{U2T=p=2X9uLgC6f zmlj#Z6Ac-okhODoC*TBHLfju@9$li!VXpkGoo!I;ZYCA_Rmv@=a) zAVu1|JcZ!BW&JF!DER%YpoB2$;T_w3#xJ&u5_tVr*}nK1eP4KIrY{_yIKBITxFuam zlXnnQ*Sepj1Ur{+2jJV&qZO16!{JLo*{}k9a%5e^pR$X1B)Lc>_a~+FBA!X-ne-Bs zK31jkOghh`PgLpCR65V3a|O6N#FgE*!C(8BV8i^zKrTtw6qLDlbMaB&!^#+C`*e8> z_4L|yr?hrX7P|E57|6q z%R@UJ)LZR&XwMwa5w|;xQt+>3`s>z(tdHT!)kQLTs5miJ=uu|bl#WJ2cMe-vkmZOZqgLK4mE^ho1(91O&_&)aoD+wwlw!2LV7%m-<#t^i{N-bX!h& zwc8Mcn1##ofbC(T(=+3YdMhuqc00}M^#aL`;i0uaajDyZCPSI!#~!Pw_!Ci6Zd#o7y&5M)c7 zD8)$(<{^Q#lfH*Fb)2$#P{!`qPma|w<*3<;frExtj*b7*PaApTSmAExh&!!Uy4%77k#@{wpqGm#4FZdkPiNCEOk3|* zJ&0*}Q24jN86%>lL%;P8c`ayN5*;^`pyqazCd*tpR(QAjrvGXS@| z-#6AGs*wv6Kk1^tSuN2EB~Sm%s#baX&9m)hEpg%8W<6Kqr#9XR7L_03AFb+(#iW%I z96%7lp8gI}2yQ>nZ*DN%)P-!ytAFPSf7&0Nx1XYYnOo6~;Tdy6x;O4EvG#b-`8HR3 zSS}0;(6wAslCvh3S)#5Y`-9A-SN)0uT>kH_<_ni9M13Z)>KaMx_Sj`Aal?RkNp%ys z+~_?FMa18S$Mvqta#}@YB@W1J-()8ftt-X(&^Eav!veZ))?_Ef3MWKipbU(Oqma z_xE{!fsVLmBSW@Pi`+{62+K-pf}2bAX96_B@%opD$cmIv>6CTI(iGM?P*N}_VJSh) zoY2Ik)muxBkd{`xF_)I~4@>pRr=k(5%RZ%sH~=aYVh(CvMkKf}HoP|3!+d5`x&94O zGr6i-yr$IMV`xLEyYTcI?_}4n%cdpXLr*U{xwd@BzqN1$tu#c$Hb@$dR{pXKJv?MK z2D<2mN;k*gwUda{<@#5C!@GsZ(T(?vK_6|gr^$=q#yC&7(&Y}8D^N)&qLcBo{Kxf6i8L_&K z6K6<^T|RgO6v8`A$cr(J2`<#CE#aw%3&Q9wPH0lrbTXH)k04x(-&_Tv7j{5o#IwR6NXg9xfJqjGcNz&Fkmw-t7j$|m*0|@ zVqDx5woKW|qlTK2h#ya*%k^fv@OI*(Wz~C-2aM8QD4yx5QbeXzZ{r2tb;Vf+<1oC;=v^{0RJ;=upG$H4c&Q3$d+3CPT6i>2 z*!0VQEOZE1ieN79Q(upYvaA`xDJJ&*@{At^SguSiiSB8zH9N5}2ViC&W9tKX4@ zD>0bZg0}SP8?sKD|GvCDeT+F!nY0PP*vU!FM2=a!IoR&L{641pJAv@8IghfGEZeG zkueueF7gZzg{E{J4jI!+uhgwf_9xQ2U2nDZl z_!%s}%Jna(SUDx@d+4MUW6kMKrDg7q)nuJQ9SaCKRL=AszqqEf114c?IpvL38969W zy6@qtI5Ekz>Io2;tT%z<4?o?E5gbc1rjPI#7jGYCbG}m;Bo?Op8QL=8dkI6;tj+rw ziE4h~3{IAk$#qLp8~+SfFt#u8P}ddRb@_P*@}E+K~UB%ae^tEj%BT zr=e4pSL=1s{Kl^r0f)%B)W#);!fQ4hdCy9a=%hn-t#{eA-j!YJ%DnIGT7LasPQQhi zpt~N5Mtca20(Nbgn{E4mc`|Rx6!aTey~KZuaa}J(s07>;!p59 z#xsD-1Y1}#9X-{gpyWE19+<*(DT$w?bSX)7Ew5(_Hiy|*>`MV_7Kw^rM6ZJi6${!) z)z&ePr}*D2ZQge*1_?&%hPbf0BYE#oR`;jUfZ}wUA%L~KWAz}(p~>JVMUMt`C&o@u zV|5iN7+~*9OFgKCMTTun;g7u@g*W0FK`AV%S}tx|3(V?JQj$|8QI$5Yr&QBRN*mdi zog{)vb)e+@s#X69FB2Shi?r(B*iZd~mr!gd#jG$X_R-Cr=3dTcIfcBADs$CpIdi9} zcA*@y*!-jpDl)R47^7}VWAM${ZmDSqH6i-U!Xlk>>#cc)%cB@fbrT0)ga<-cqbuen z?jPImYbdxO3FUx@9uuJr{ra~nvb#aPdb31Z499b{d2&~)5=p^MwbplQQ&l0_pW2GS zzFXrrqHg1J@8{PvH#r_oK0bFVKd*w;w)yIJW&7OQoC2AWlYDz-R@>LJ+rHlJd#|^b z*TeO2c6B)j*xGCJ?`AUdlrWL_ql|53n) z>%XP-ENN}}Lvp=})x%!9mAzbT-@0C*11Eh6I1q?wD`sN3n+{93E`!wmJ~9;x16(0r zE}PCJIni@*bGIL}&4F+Gqvv~Gp@W$8urZ0qI)=(s3D@@L%MVHIkJsi=d&-712R~Qm zf&=DhIT9By_<<)n>faF726T_2qnd@pbT_x(rO4ti4M-!cDe8Xq^08=L8^cOE7_Jqa z0cXHQB}>6YkXbo_J8Wav1(KCdmVLHo%SJ0>l8@aB^S4BF54nD0n!_G?%T=SQ2M)nvvXHU zu4opgHTtlf^$*Ds_C%d*lh6k3+}}zre3I*>BK{||72%F(2x zjEM4~Szv#?=FDAa96NW6lY;~_n9vcjRJe!Lkws=`WR;JAx7x=j}Mj=?Ljg1 z6cKcG=t5WUH*oH^7pruUuO!o}2W*Um)XJs;KDMpQ>MXXqCSN(uYenbixi zaL8wTWb&c)D({SPs*@0I%EnRYn3U-p z*xol!d8n2 z_r~JVoLIWLM>5E(qxmI3f!}1Z^^XS>b~kYSVqWls-MPEyv^^YBJoXbc|E<|J;OdH=UGV4P=7CL67WE)HLVqRG?wG7A-~nIowmq=*m-`hS zAf>qZ)87alf)A*o);cNb#MRDL{SH3jbl3Waou{zZ^0>lYwVa7$m8Q{Pl>Pj{K|=8% zdnVK|69&72g{0p&M5Ws^p)Qa|dZ0bBvjJ;k_7^7!^hd!k`(vRJl6e~yxtU+>_~8_g z?Bc3)3O`_8$iT<8rR(dcO<;oM;RvSo4;Am-xo`Gy`MONjE;=Wpw!x%w$h0j zDn>izP52nX`9EQZ!yjXig>wW%e7u*-g-cO=_+WvkJ~W~|Ad)b1oFBa|S=n@VgU62Y zfaENE5b0!oVd<}cBHQid3+Z3v1JXW`AI7lnhN-j`cGpN>CM*Jx zvRMx+^3i@W20fei2q*Hh)~oF2$VP32n`sVUSdWR48@fvB?&HOtf;$b@(!?xPLi`s? zQYi}&8OORM#skp-21|>y>fzvGbTkVQQ~ojzw)3ARoXE~p-%>Ua7lRf89Ana%95M5xrCB0eL}?+edvL>GSnGBiX>@V&s?AqBHF z72p^^8L@~&-W~8k?A*5UAC>|ABQ+t^%Wuj!;i+7##=-|nv}!raV{AwxX87Q#fr9YC zGlH*6M}jyj=RBa`e>1j>o8U{3r*WYH70Zg_OC8g!3l^l-oWDG5ue~3@b*Oa*XAc*# z?5L&Xekb!o$&{H#CRXDUY5`Mp_2&HAetC=JOGC~+cEB7LrHMAJu2TAn$@SQo-!px> zk~)byiD-7u$>=>snaJJ^YnbxP_c|(dB6!q_5&jzQ5{@vnr|TP;4Eeb32P){#L*v}} z)vEB&NXhH$cmSc{411vz(QOe|lp{lQ0H@tjJy=cCBEAoJ5z^d^g?#0MFBZ|72xg9J z?oPGkwQ#nb+(S7bXUNv=v&B!a!{z!OtWT@Wv+L+)R8@oXhnlD-M^~b4nX%i1+!RV< zcR`G@=?eAUSu>($_Sto|BYNUXo~Rm?) z`B!o00RWJ9DW2Bpg#(2)Uu3afaZPa0SO0NVboPn(>wV$pC+5lGF@2(584|?Jn2kSL zkzT;$4HNt%f~kh_Qh(o-Wa!OERS^r%xE_gXUY!kh>DhH9po> zJL>@x86}O7*_%q04#+j+MJq!Nc+&Pg)u_!%eO4<|z?R+47|6`Z+n#Ji$$8~Ybwo|+ z+4bpduJkC1wnUIqZ+6Ms)8?JL-u;$p~fbTrc zV8=Dt!$1HMH_JaVxi-V^hgmrnZUK_L{U)1amHP&@Er;7UZ(uF5g3Ls85K;W&LElr= zsu0^tA-2W~NqF3Oy+=(mYa|6JhWu*AnF=!$)A#U#^smMXMv||r^r)F<74V8e zh*MOdf}&}!frjL3t32u$X>Dcdn#JFA$3N!;hN_XD|LNxqT0ZMXd=mO)%V;+qUmtGG zo6*m+Y>vzlBmd)>>?lUQPZ8(9XJK#SpBZD2_)I|S5fT?2-s=J_#+Z5Gmfve(QJ0Oy zAST|%k^05_tcr*Dq0Jl0v+;lsd$?tyHcwPt9im&#E&yDBRV#gKhOgclE{y-%E#*d69Y%SeKBRR95tt@X8*gQm>u<*ztKv_o7Db?K zJm66+dbD|B7-+Ys&G(W>t42_@+LNysZY>h6YV-R@{;^wrLknBfnrL}-Rs2bQR$N{c z7fF3!bXENLQ)J6S&48x=%wJpV`l_&Pv9mnO=JHLqD}SLoc&a!dHYAxmWmY12dT;$g zTVZ;xRxOwL$uc8=-9~Z6zY@K>nF3>stg2XHV!cc6n>YfJOTd2Xm7JpmtbPSn*ZbaX z1*^}3)x2kiw9I&8dTyd$ja+BUel{Z}ia4|Nj0iUo;t|J+Lv63_p$pda{H%)S!x3?d zMXK?@5{{AKmS?qj@AI>&K@=IS!IYX(yOV_7d~O7eb4dAs?^F0L<|EhZ_2eZ!Z}BW2 z*{>XV#;F5g*1s>bc)Co<54uRMk{>{^DOUcMc5Y_!UD+j*jQ&(R_v`Z#HPeq&?pQnb z<7BQFK_=fl*Uo(>nJZVn$=t4X?kdR@8H|e5mCS7#tzdp3nJW^CWbPI__b+IZ9lI=?M$=tu%xm_gp5LwrQ zc2=%r39K(2m;T~(a$&TTX~(LReP8^oaJ=)3u0nPahsel(y~jefnJnBGam@K=(*le- z($A~O^OVj1OORnRh7npsf^A~GCEgfr?mR>DagUjQ7j>6Ki|g?*XAHZF zx`he7j1!2cjTkeFlx{(Xr;mK!fDMqkX;5}LJI$7_yNjL9X=10-Q>;M5NQW*axqe3& zKx&(0>rcp&*C}RJP^T5WM5xj?#a6EiS*(#UI+d7o|Co zZ7KN&=n&%rn=gd%!@*ZKVH*<;zO=|2WaH!u05{HSSA8*mA*^;~O}IG1a_6fjV28v*v&T#P#+8{mc3G0enyj zPjc`BRqudO^=|C1B7tg;1gbBE=xGrzZxc*Uyw865IC)umY0H%AkBr|UJGvpqp1{?K zllm4;(|9g>18XKCL2Ywl_M z@hx_G)n3`XRo1;umOeJ|%B3n@SU7oQ)Rl?!%T@ZXob-{0q(_|e!6Opo$ExxHJAK%Q za?-1vUxVUf>{4lfOmr%^ECo9{QD{8V*ZrurW~%Bulu}HaT+po@r#j9&yo%(ip??2Q zXk(swE-!ceM5`8OQB^}njk&B`tDdQziG4zu={!?AeE+v_d|65oO^xC_BVbpWqeaG3 zNJ;whZW~)vVKz4;yHckl^Tr;yJ}1DX^-=I#7kF3XSboFDP6^2~9J$$$?? zdvq0Cg7q31b_k#4@+8DyJ*}-4?G+@@)wdV#; za+)UwQq|m?E4?GeE|lKL;`Ig`$I_Lr`bL(&y@h?=l#499R*Ay7{-DdL@ z((ufuO7*?GfK1C1{%o!%cfF^oRlOADrOo0PX`ZOx-^=RYd08lkcpX|qD z)K$L|2oe)k9YR&7yD97Iurm%UXO z^#7s`DLnHZxC9k-%56y1u0P8laV5;ZMEv}8cX!y>jNoD_TX6&B%}IN@b8w#MrUqnl zpK+PBU|f_oJ~Kb0EMwcD6z|62%6DDCeq^3Zb&^@9GPTHcAd7uP_r5D5BKNwY8!Dh) z2B-qfC4AEhQ6a=J2=$;6meYvV&t5kdB72dp;gcR!Eg2iR4Zsj2@(SPf9w7%C^MdE3 zs?1WoC|drm?#uEhmvq*zDJA2h7KRBH3xn%>^442?`tu?bVIDnrd18sjf@3aDVJ?>2 z1a02GIa;ah)OMSxMUH1~m+SwQO|(4P8~3cMiV(0NZXG}d8gF7643o3E5P@W{5BDDk zdvI!t?aXWDCtr0(#I~<&h>2#uu<|IT0hqiW#7ma9Mn{;?ejqVwLzOulh`=GhX_0Ll z93|+jKU^tpV?W?0=FBQEE(Cr-aVG$(#DA(+iC)n{z%vt6TLT1vo(fY83d3yvt0vbK z>q8U`saN3J2@NznDI>b;r9vBeH`@JhHITgb(i_brS^)7PaD?8w6VN> zi4f;&MBuIU=w3EI??ZfNX)C;shzfdpY|i3!r!5&IbACRH{IhlQp^Kj&cQZt~Sr# z7UX4rS0JMfq6u7B<~*VvvM{SyD1cgGH@iZ%f@CXMPAjbds9GsIf1bt{`}BeHQwSB|$EVRxO=wvjLY z)}||2iLSV;t0>sEc8^p0&_wMr7p3-PWeQORTBL|9&=PLW(;_zkZCZE2c1w)!BZ4!& zf5o?;>~V!MQH7*31h6@L+1D{+*tnn#>kT{4jCZwvzszq`ziL?cLpVmO^%+mhhP;v5 zzr>JBHKIm)iVYU$;rB@`jaJqsaz(V8nas^%pgh`JOi8TEG=5aQBDLK%?c7PMK)fpZ z!u=odfL;um9#r0HQ~OV^QLFm`tDa1@(G$){-$py*n#OuxK$VG*7>ej1pR$Azvbt@pO*Y`mlxlgU_R?~b~SLa zVkot;%diBD_@=$>hnV8RFziz`mgmTwWmgtKvyb6&2qJEd|D&odFOj)HGVLLYn}a2j z1#m`p|D-kWNQIq*WzDOPVR3)4^4J^`1Izup768Mb7+=YH^B0RFiQVS--^f0_OD&dW zjR)LDvpbh3&T$*GNH@_?4zIo?b&Da9#Pux% z-;bhXQy_=srNLhj<0Z$JyPn)%`*Kxa)(a>cEw9zqhPS(Y?ln~{rM~hJ!3X80Z{A7d zIp@?}(!_^8)dX=pL|<7J=_&PfIa8ph`zwSHUMPQPN_{;En1#L~BVJkOy6 zMcRBZ3esNSZaWx4Ouv`a>_8gHPKEbog4+izR1-s``b<=|)n?UD!ZyQVU&9Q7ATDP) zk+q->p_SB@R!d*ImiQ`J3u5i#uMvuQFYq z;oJ)t?E7+c-fhxpVkY!uY9B4fvz9X+2`pF_earF5S$#eAu}qIKE8DAosxJi| zua3&V_SOM)oO?u*%gWT2mgU##2b;VJ85$V0pTuObg^_EhABx9<)&-=Rew zCn1GzvjgG^y2#EZ`%cumP_N&=Rr9fPmuEo@zg4@>ZM?&joa0ZMlJi)Q?0O*mLnf#7 z?wy@vI{bza`Yn^q-59Tv>Ph+?Nl!XSvHpzKf06K*zD}9VV|Q;CL`9#h$C)p`3GdYE zcXmLk?Br!ZVL7t)Sns003~$)9${jdoq>*7-QV;>@qHQ z6R*$6EA-&B!8a*h=0;KH?bH};4DIACf=g+Cc$>DlM}FtyvPtjw-3KIo4>yYX*MtGj z4n7>qQAZ(~^%|qIRBz4{J-`HA>}yI?1psdg0GPt|+xyNg-=w$v?saATHu#q%Oz8dl zx6^;->Uh^kqxjlzL$>g7w|VvVJ>i}IyCk;~l8a>wsJqzcdQx&ot}S)1{eeT`G455s z-tN`6VcOBkC>(8az`Q!MV-v$cFq`DKC&vrSuLJWQ<5D$0-XX3x^TQKf!vtw)4K4!O zjW(oS_uEHp%+s$0oIAv`&IiVAJRdUkL3@@T;)JeT)&-m_%8bdJGZ5f>CNUVs;+@Ee z!LWf)cB#1|H_oTsf!0?$4jXc8SVy+-Gx~?tSwxIvha_mYIkwf7*KMa}VRfwDa^93I_3dx=M{EBzw^Lw6O=2M8u^UwH9;`2Bk;SWWh z@Dn0kChq5w@(lEQ2m3KS;J^^guE3(qxvPg)M<1--9k|rC?oQ*!aec`X2~$jFTtwiqug`9T*3C2w>wLCfkcPUwj2{ zZyolzx5T$ARWS;xqthpnV+2>27jcqc4_+aAFtW&uWn{Rt5sg#AEpF{TIeXf{Rf3Dd z^{ul13L}2v!)ifP$0D&2bwTb7^14u8;xH_%#6Nudqyn z&BWpib;ikcvV&x9=O)?qkpR2-%r8+3VlxpXiaO!;KiNh$Ayzm{z>c!%p;=&V{+)d) z8V)3ED~maQF0r13dzbi2O#xq`v-Gjfyawp#W8Go;2n#MqqF+cV@uU^E&r1v8HLc6q ziVU)TFP&bKsM&`8GxNLQQuzcbUzLtPrHl7$sSL@eoa8%*Io?#|Q^061)Qj{ToU=cV z%1ST#`=b?YCu2U=ZXk~_4GfqPKA2N+ruM?u;Wh9WPEXduw>|3?S9_Jp8A>kA*v# zXGfZAtC_$5lh3i*K3cv+e@^Ht94f!=>rwK1mg{#F10hVGd7;ffXpt@)f#rbJo3rY> z4s-cllDYJ5A_?Y_05=mh$9hs`vr~o)hXM6cT$Rz5o(KQQI?d{~+g_*lz?F$?;;-z1 z=6L~itLUtt>O3&fh66W^m6RAzhp3Wc?IYaj)cepu#lu*psvHl*@Rh|K{kfbRgR3t! z2EHO|@@Qk=J+vpLF=o(^*7`>7Uh3#d$9YGj>`-=hwf8hNMUh^hmPkm=~t+1c1s z4n#>e%Wrh$du6t^v`hWY9Bt`v_ksAjDd7V-GalDo*yx|s^`SEN#`sRONv<2%p{m8b zh@I(yBATpfQD=&3r5x1aCIwGFkn8`$+MB>fStO6&8IpkjiBC|Da7j>9E|Dn6Az+5g zz(g{Fa(cuYJW&@i!mb1oCXr0WQFhk@*JD|Kx*qGbt|(rZ5J-X-0hCh(MBy1mT$nk?Gbx*c#50T5gTi60L+f%qplM zQo+rTgw9pAQFW(Ao1~RkleDjz)ZXmsZru>+;RC1BiSUT{@@8WxvBuh}#;{lAL~St{C_F!~ca(q~R}^r}OxHF!J3@6IZ~``PZDj z%K1~H-fBeagb|mazcF%_rqXCi&V7R3&rHQcPZC5YafN`o-vYC@dz1 zcTW`)gXIbFy}Wf~=q}cqRy4LTisMuoLj~L@vjkd;rt8o~e}Y20)8(I$GDE_!IUGet zg~#VSkhu*QbN+~)CGsrjwmFCCPR&DvrAB=tDf0O#pN*ByVY_B+3a3dz!B9gaje(oHS9n<1d(y;B8Cz*l93Nwe&xD)|yuTz;5(juX=taH45v!5?K9C+-c+pLhlJ|cq|VFWe5!)|BQ1v4tdxo&CN9) zeNwN3-mUQdmKXWlfr%MZu%Vrt$gvmJ%c(_*ZeE0F4P+B-raV6tPB!mmH13Eto!^g= zFWVw$hB?`@x1bxo<*E~caef{Ui3iIP!dLNSm|!XUK>gl&>Cwb#SU%^|vf)K7@y4wk zYex|++A+5jiJ=j4U&!y^$gvd9EH{x0K^gXaLT`7`cRToz<3Hl|FH=q){)Y!LE^fby z43XLWeSV1vyX|z5i6G+kesApreJ`bxywLW=;TA%57S-Mw5oIgo$++QEKkGY6+TMnvjA*9q@qkgn2GNK)n` zDtlaD8h%bDY+|)@Sc6u)n7W8i&xO<8b2`d(hD2AnuOgXfh~d*B{@d(cmvdD+nX4jP z+0VcMBfphIcu4T#BX(BqLxCv1TCwzBn$L(eAEY(cu)2bD6VLA85SkQPAR#xw`F z>yMQsgsvq$uKPdTPWLfnC+JQpf}W{^Eju{)M263@u;{)TgJI&{KVfoCPmJ+P3vrzr z`Pyw%Epj6-r2iDpAIzUxGGL0KAmsKxEThfjar43CkwJ$krttw&oDEYL66F!PiNN5WY&1g;e}dozig1n3o>&Csya_Ra|REYD90m{cj$*Zi~k(Kd$uDtxNL`X^K`0x%frw5l77HRGb=@NnydQ;8XF@!=EzZ)Ht|E zY17RH{>k;+}J8!TBaX?qI&+TvW75s1k{7t^c%IY;j!~ z>T~&bq2=EKzCURBUCMV;UtzFvpv8)7pp-uDpb}?~NlPbNG)!m+6@%N7N$L_B1{g6%+a0K&4RX6hC484yu&bvc2s?%Q;Hc z<%X>M){0+{pWO$sX5jVl!Sw>XfH6lwGerae^hu?D^k$w8}Yck;t^d**7wBnYCZ^-WBA!PXV)E@Uo*ZjqBrHQO}I8|IK zh>C->KG{-*w+C4^$x>?0a7&g}d><|~WS?=kETS=WB|9fLC7mX_(WI$g^r9`2(hMxx zTXNbMIUS9ho|c^b%sZl7aRR(PpEt}0Pa6}fPmWqhnm`f*eDuCDqa}GCv0Q)4$n=m& zmv6BYds5}tSN!rAvxmr3MAz;9R{_(U8>sFM3+OBZ^zj&|0duPb=28P@K~tES7MQ-k z;LiN&C=sW5OBCCoO)-_ifMW9WU~-^Tv88;ND&^52kvSB4~z$1-4yuk z4&3+FfB0P0+%6t?iJE$Y+mH%*(#=fZ=Nma4jhrdzf#~?%WaOk7Io~J8axO7)TA0-s zLomolJ>rr!y0^@XjE~W^PGst%Z)}S-0k_pJ>H8kw6ss5jhd2??dmd4?>HO~QKr(o4 zR#g=&W-n5%yE=<5H+gXwz8HC|xD5T|evzPr)hFmn@Z6sp7~tUG|C!ZNE zQF7(q7C`SA0QRKq6@z3Z2goA9B?;R)k?ey?4QLn^=E4n1;?Z3h$@6f6wuf|`Tb#~LU z&`h;kGt^l{zaptGmn=oU+vS&9!e&?+HqK$e>(ZahaTrTBd~w0mFez)iXf}g5(=thx zKV91N-edmOiW`BVhLmUxcB6(g8>iKq6_x)Axeg`N6Bt`{kpE`tHjKNX#(VOK<06 zT7q|Tc$?Xm{1Np0)E`aSwFOby9YsG(+SPNKXhJKe)Mu`Z^jZzep)2{-O**hP6ypbj z|JlzPmjYzPyGe>ERpH+N(#Us|G#mLljhOv%TKd%~em`e+t>^Jw`^M-|*I1xxfBCMph0^PUqLW{h1s>4-R5=`8_bwb!_M&Y-1f#hrjKD^vvA zdB7ytR$cXFw52cA9DbV6ieR(N<`uzg(hduMg8md`O+ZDkGP7C*c!3mC1oIk=gsxCa zK$s6x(p^PcC{V@yM1djz%C`KQ+<}WE@a@%N84RBhPd`y+d(T0j0z=Tn>pQY=nDn$->wcAo@q=sebimXl9o|8 zmzUbQhzjCcDXP*?pv+1R%LoJqFQndgx)iQ@W|9y-$$#0BYz~xAX867D^$F*J#SYh34zm$gc~FQek1o;0Usr~_ZkTsqUCQR zA=;0UM~zwWlVsz)%l?n-kP2ZQ9C^+ZQk9??Y$=rAgMRijkq&p~*N0ME1WjltJ{%;x zZ6@dqyJF2L5w+*LNO#pNdrJV7PO~0BO0Jnqf*R=xBjJ5XP!xU5NH{17ilYBC63!Mh z6-6H)f%VZN3BqwAt^T5bx?e157(Eq(&oBy}Cuv!v>649wYb8NZ*=Zy^API`f7myIG z^KAKHR@T`7eM~?vmCBNhgiVrgo+Q+LZ7I8#A13|1UFmTRQ_s+c)>^Xi2O^apI76f| zVPIXg-Yc*!SRGryDI9k@>bSwC7M`8#2e z$g7kuAo25Fvly|oNB);$;Z}TkPs+>C3v6h^PBDt9_OTBIyPrwpzIP4FWEY^H7HFk4 zz5rw-C%=_pF_QiBcma@^9x);<1kA8c$Ls|~-z^aUe60fZ^LrY!CDsSGgS6rsWG483 z^v&aBpUJVMT$`0sXl+6j|v7Fcs{Sd{|`(zH!(o-ibMGR|l-~U?*?06ak z#nv#FS99)8)32j~Kz7peSz5`xg1dh^YIYkv=Pq7jzl{XF=*=z(>I9M|{vK;WD_IJP zkZ@m*D0^xpuSi;ON>F9*A1b|)MI|rPS9%c~dAg*?LXj6rC&g;-msjut82SPPy}dglFLeGpC%B&{ z@hW*;z(J_W;DQWw+qv6JbSuV41x{kA<3}_ic+4;;aafdbu+>{p;~~L(j%&IOF zTH!CrX0)At&Hoe&MeX4x#wmhv;};_84YK5SFv(Ij5dmnPcPIf!54TSOeyzYm z;5MvVTCu!vL^SPW-VX0<)?&nU$KC#o4qU??HDj?vJM1BY5$M6GY7DHGr193UP$pq{ zlrl4E0UB~+55k(z`CZKM7>AgU=PY9MF{Uz#&gI~D9;FEj#rtk+wq@lsI z1xlG|r?3lHtrkgo)Khx&%Qlfw1q846rp0L7xC0tr{!~1T*8^(M_%xHoAKa!k{73%V z#n2b2bsfahp956Iz9*bG;y~ixYb6pVH_K)aNTj*_G`rxC}1x68Th6sSD&DL%$}4N+n38--=)wNP;FPEI64BnT>=C@L|AT=OLi+3oRo zhJ1o1j9K%DIcxkkGiyrqRj+j66>k$?EuPOrVQNK>jNyo9!5pfL_DA?HdOrF8=wNbr zCsXsPZ}wm^4T205qNpQ%P9$%Zv$ue~FjB6`iDcu8h+ymb8;O@Q;8OZ0ca)SjTQp+I zU+k$u?(WfCS!1HPR~xx0k}IYh1I=L9iwjZ&yWsq)tkdaW%kU%Eq&F)K?kjzV%eXJngK<&Birfx8qQ40_ z)pOLw{eNTp2-E%nkPKmg9&q>Pio~1&LbEk8gwrMz&SeNQ#qLPH-fJ2*nco_Rbxj1s(m1_PGfhj%`PjylwXxpRv6p}mZ7wZ`0; ze*Nzrmr4Km)p0TXt18Vep*4e5u=`>-CH9`xMB^=X+Z?CCF?r*_>0MwiZG=X4CMBzy!|D^*^hlbBLc+2YJIjU0)A>=3GR?46WpK zU{q}N4wRFq#N5?iChf7aB`mvy)DUIm`D3k^T3X35!Lg{|`JJ5b&%$QY;c_?XS~TXv zzvjz*dw~fK{`Q)HQn?zQRVM{n@r#l!!BteGQMQBBP6&@+wMyTvzaxObWr8bWG2!15 z>O?EKpIkZX@dRHzorR0=9AZMj9f9r1*Y%1=2`ZsKce~+T9^F*u_>+3&R6Bdga)uvz z(kQoG%IEm$HdI?|^lW-fZsN;QA)Ss*(Z1!XyH_guYMZyD*CY`q>c>+X#4)n5sscplQUYlrrbYoqFWAsyf3D=1BvpH`Y@bV`i0pMR1} z=-`d`xmepPO)qLt*Y%uI`$cB$64J?E8Gf6m1b9A(s!|nkq@JKz|TAt#Um?!4#j zZ{MrbCUw;PUzf-Yz?B3lk~f0yq_U!hEz+mr8`Ssj)%W`tMCn&#tYn;g1{jUf*x|N>Q^>%z4aF*n;WBF}Q;Wr1it+~QTOy+L+ z^P8ZF*xr5HW0($-5*5a-IE-)q*uc2LAW#hD@T)})GCLKH#bLVNJdQ_n4zJliy@+X+o7?$^Zeohl=a9e>_ zubLsm4b&+^S9KgA-cX#1tYlJ%J8Fc(0TwnkSz5;H`G0kR6U$uaYOX?G1A&2hib13c z#8Z>)v!zHad{8(hrK7Lq+x73RXq!--tt3Qf3vyB>nbh=R43gLS$k0~;8TyZakbN-? z!LIouMMUn?2S$Dl;EY6j>m%;s2iw~SznOACHjcz= zNNJ2pj)%{Wh<};p_bHJ44!Hqy_0md40Uo+k%CJHi#$dTTJMKJG&Aaf)LVc&xb^360 z6DvPlNQ%2sP3aHC`cAQ6sh;g37$qz#UaK5}p#Vrt*QQ}_<`p)0i6B&4^$Nv&uEmG4XuCxt zAMrX7BI}`$hBJEAuV$n{b~Qi)D4-Rr6E0u!e0H zme{JlaI?f>pZh{q4wNi$28x0l0mGG0iDN63tdz@U5m@-c9Cm( z%F+>bsqV)5OX1e4@Ig3773dCdI^QM@INiAUwNfSbkUHG0YgGW89NXt4UOgb)-MTUt z&;LblP&zl*|8zlc(R2KOY|mTouzN-+%ig&!x8f$>^fzSK5IZip0}$?Mp}&6bZm}}2 zQhELiShSU_M_h#0J0tMW)R^ZeSu6FG9^=rXWDTN4cT!9QT(xVdDqvKt%Iy@17%j*B zktO=st+j;EUnwW2Zf&J48WJJq4%m+*MGw8aH^Xw4hYc#p-e$>m8@nXP&SbX&h6eYM z?Nwem0!a>N-ek8WGD&WjS$9?k_51s>v-0a*mvk}q2*Q72Sx7G&dEHp73f_rSBW4K< z@Vg)H!u5*%6+7Er;L%IU)!gTO55N69AoYB5{r28`HK3RC8#6{qz_q_(N83#MDdbey z+w#}uzR`Yk3~;yBOs@80jhEOK7rQGC_qVOPb=}n%+HEUuU4Q8l2?@8Z@zfIYI;oBQ zKaGtGY#(YlEB*EgDSBh-3RT0pPg?(Fyqm`rDt@4bBLi#)Z#}p*lNvs~_0yl8qK5UE zoInQ$wJWM>B~`4`at`RQ8046V%qT3s!UeV+Qe{)-I7XR~!PAh~PekanIncvn@L>V+&@^Z*|{5 zX=C=*iRRSaVNC5*nN*y=MU6PUB_Y7k(39f$FFsVbsotBeFA^z#Q8qiN0YI3?F@HWF z+ok+AV!jZb3VT`Eq~JS^!pdv}{_}*a4oFj8PO7ddwo4`%)f{JJDDi%1!mn*djq3xE zO63Z{&VQ&aDOU)raghV|^IDj!yhAH_TFAq70y=G8C%E@v7;32gG@_Fo&z$?B5&Q@S zgc-i}ZZ>ps$pE(h#uly0dzFRltrdnYhTc)M8ufBEz7V2=J7CgHD_O;Oh1T=Os6&== z=|Raktm2o@l->@UEb_n{FIFSW)QbU^G4ftu86U6H7#le`ma&jZjCS2@@P;$_o$h5__Y*3@G=F>MD>}*)Gs`{9O%A zE8&!2hc7t8h-|ctp&5LaT-xNmB;|6dTY@-ovBt>Q${1Ta7YT`N61p2h6#gP6|KsVK zhH09?u4{ad50R&vp*Huwml-oc86j?tJo2@HG*4heFShix@UNK8P7}35{}X~I=c2L9 zip|EX$cnt`hE+o1W#t6A@#@=?QYbc+Mo`F@O6!e6xIHXWAdsrn4{W`W6Dp#TdaEY* zWG!xn5s-HhWFiB%y#UA=&iap+6 z*n~Ygf=x(XG60pnR#e2GVrc8ak4=yYEsz_P2H9CK^@M@O{KXm(8DXuYi_G8N=KKwx zYXM(}CLWpYk+CHprGO6*aA{9z?(z!FBWE(*Y{(Rx=!hhj8<=bO0P*B3mvO`WmA;h|7@uaYG{Fw*&sSP|^)0Q4gp3Q@MFq>X zVhl_Pj?r7w!XEt=tA)0*2xB$zUI|TPjE)MI-BHh zwub9vvS8-2*o$1B!t!M1eS;bzc>^PP+`CLDB>ZlPjoNrs!5O$kJm$3G+Y~QOOUtSF z)*i+opb(lcQ!6atzHVVsp~$oXf2ME-LCtn(#phE_dow$k%eH&nfpOv$<*gafQZA?z zlq)y(t-6c0!XL*7aVZsH1`fZjdLcrXUi=;E2&VTjnWPs>(LfcZQ$g8^X*pc!4n!~= z6t~}u$9Fl;xPb4}o2~dRr1Wp$`!Fq9@qLPlV)!bxAUJYzy+QSj=oW(SX(qnUL4GT~ zX}=fWWCP#lW?1oE&nD-$@cot+t@!?cAFIMw=vO>LA=VNM1u=HQv4MDQpa32S&7cuA z7C^{YtX1i|^&@{X`gSFKR%7uIby@p1h=S3vz+W?tUxtDP^xrhy+MgD`qdy&*^yhT5 zKMF?%M{wM6i9!D<5gfO`M+(Ptn&7xt`40UKeknEP=Q(lsUQX%XqW^SSw9@}h#mXjs z!~BBp!t)IN{x@s1@JqId?;MD0rK#E#{T}|_oT=zL=O!zCpGFb&;ty74=pzEeG@69=vxiqR(uDF>iK){?QP&&eWMlMgBTls3txK^d{2qPSKR^) zj+`37cT5D|KH&RKByUV4uWux8zuA`tzF7NmlbAluzBJ|MTbLCh|KjjJ|99Z;f?`&B zU#g~;$sfx7mv|-T8uY#o#XIbLSj`^wfrd# z-c=l zPU*MCN7}NE&oRY1j1R={_KS64QC~&q9rJOzn?_!~@%%|$ar@PZKL>m9@SVhHc>>dw>Um*ixkaDjcq`YQUU;~tcE8wq3l9(H zE}iGonTP_(Ys);6XZVVtsb#rs>v&^VyHBE#QR&sm z>4goc-W_tqy3dDh-;u;w-MKQE+_{angUarr9$G4F$jDz!u#Nn3bfM^J-J%|9#d6wY@D{$pTu3F>%g59bKApoBwA>%W&bB0aY?XS&zy^{N!EPo@iSHL2tt-t<00{bY-#frvC9;{ ziD_w=J6d=yngMJPrDs$-)6<7%cme}FenuEy4OOU7&nXitMP;sSmsC9au5rN;{f!FY zz?FK6wZeO;aDMXaTU2GKZ4`p2?{T{ZPJ5KG`Eb8e6((REnuxATvS_Jao5|DCLbn*n z>@6^n={4l!`gaJ1@L(w4EOShMB~~U}9JR;B?%Vjjn}!jV_lL}vbkQ0-ySWY2m5yhw z=Q{Go&uMg$w?zWp{=qRveD%L*3-_XY;1hvYN5KT1U75xN_=zNs{}@A*l@sWg8@K@} zRFFZYxUw9JWCq}tY;kj0O6EW^hmx6!=0!qL#R^Xx7sb`QM2?%8PO?kezzCGdd4VK z6Q9e-3v;K0B&h2^r&q{YPO@7+ZGJC>sx? z1D9XGpSfosi8%>NZ45~>MI+u$fLuLmXsS#2BjbDoh@&ecS%0TMwfR3s;n7s@^PDvf zv9<9o%`S6}YB3@sKWRj3@86L;Ey8JW`%jvaeCK9@7&PL6$<0%xxb3 zzHnDXk5(C%21oQ0GL+ra-NqrdkYm1(0^^ZFeoENnWLIDIG>VsTi{1;Y<>gIRnn$E&7X$><-D8?Wgv!hybe+j1sB zf^Rd`;x6P!K9tST{q)AR-s_og`h7#V0x*@8Es;wFk;RNfuLp()be88MhneA9SerSx zC~dYOg!9GCHWleezNTCiS~qH5yWW8Yb1(AN<})4Z^j7@hq*s3I(~n%p(SZNO z0=rdU1^cLT^A_+9wSg;+)9*O9otBF?QI7v(YLO#w7M0gn6W`0g(Oq2k)tb0`sXV$< zWmz-NaB)FicHJs}3Hf*_*1{Xy7G;b$VJaM&09WxH&1$*ca$kznpg+JTVv9Q{xfhou zF9OW7 zX!O0M*>@v|N!$P14vAOeBZ9<6gaTmNsfq_Q7)0qHzFtddu2Y73 zI`$no-!k4y`!-ow)bmf5yOjQF#I*?iYvoG5f4lNT(w~;gN4!q-d=|AV&c)fyI}m>5 z3T!WZ%pm5^86ZgegBRRNtOgljW>6}wkpdb%Rln(8=>i^=odIU?!RM)gI?--Eg`Z zF{OS~c$By4pxV>~ne+Mm!h`ka;-C*&p~1Oz1k{^?ct{rUaPtKqiDHd7(u$u0yRsg| zNbx86R@l&U-n_zw;rZ-@7v#@cZtEq;9hO+hg=9zf3;Bd1ZpWUXu%S(UKiMhl*516r zrfjs5)Q2s_U`gH_9uT*lXm9?>fO7kerQVYgUQR*_`99|rUgOz6`*{X@A{~gn;7JE= zxtyKYTQn|~?qIY(oI^<}ZFEIp-t2Xla0cF9m!An3sSNQY#1U++ln2Tj`-pA`EYCA`-#oYg(W>5%P56`?)Yl zaPa5R#OF!eEQx{14BUFT6fyX;Cxr2dK&Y=U!2f4}8!@?FBu((!3#URbyRUwnx0@jI zE^;D4xrcy}Rw9P-&>j4dJjf;|(55~k=Oc0-e{jz0&}u8|G*U-m>UAGV!VE)SHRivO z$NX2$6&C*txBmzg44o03MtPytI19$@7sQurV-CHirEWaX6`RUk?8a2?ZBAt#k~pY8 z#1$TMDys&S&sXS^&q-Fho@*S};v=HYcMvjHb+roEsgJYi2o7G}EqZC3z%+TGyI(Ti zAF=LV=FZT1Z$^_#+G(6<5iMW_Mq) zsOg$dUS;G#tRnGbE_A#P?Rjd;weO&omO3TbFU4zSXnl;Ju8V|arKppfIRyeUns1qF z1WJ3PqGD%K@G^oY*l!}0+?3kP^+wjp;GlIp2P|p(d1w{zVD7qBS=u92JZD0C?U9wv;GoMKzN%jij#g#LRXvZEJNgjtu&O?srr!ep%+Q9nEpL6$srBb6SiNpD zFN6ABPdK%l9lTuKY1V1b;-Ew8yGoxtTY!7-2y60WY%sObK(JQ@iK=frv07K_7`A%8 z$MJ#Oe{=PzbNa*1J`DvUa4ILIP&g9OIP19(TDRGuxvPEkop9cHR(#!Ooh40aearRm zEY*^#G~6Bk^||NJ#&@^}g~Mn0nb)afjkc322nbb(d*<9sGAqMF01F?~uK7-q`EI`$ z?Vhn(P0#JSTKW^Tg>nKMx|*e*?2iCtWO~zssY3sX**D90tOW3&HjSL&Z9{E%cdmsu zUD9VU*rb0VWE9p|O&`fk(u#w|H(sJXz&C*%qhPN9c6i%0Z78*df2p@nbLhSZ$eBiU zMl-Er&14(RN1G9IgEW(W1Al4afk^pXiVu5#PS4j#GwWN^#Cra%3tuBBRFY3#6BNF+ ztInmCsM2&~^k1?lbFP=);R~f);Dq%8*TK6`C_13l+vYFHQf@lGi^L>dD64y+=K089 zQ@2@jS1_`(x^1%I{Yq0@5Se?r8VdUm16#%q zCbbO39>$f{q1}K_erqV+Rj^kmI>(0M%cR&)*q0d98O>ORVmUz8W==E|(-fQau07FE z3~d&LD~;Myj~FEVBr+8Cz5F(YBH@Jf%24b@%YXo%M~1?_mEX+Sj&n4ojP}4k6rWtP zDm;^gt14X-jJ%~Q&LI`C8t^>vnoVEoYb7@qBmq;#`AKOqD^lC2dMDwMm)7Azz8}<9 zu4_rghs-3XXiWAQ+T;y0v?=SzEN?{yLUS@Aamq>nM4T?$W{6V>Y}1`I@yMHNIr)ZE zJ4pT_yg|>ni+)7y8|Hbv^6}$|^T$Bg^z>LTp=|855lQ)jN7ymea`8!2(0fOvCX{8T zlYIIJyZ1_jRaz@;lHIugYG|jalXv8ELfDNt()~8yC1&$BoZ?2YG zA8zNCcL54>s;fn)(iyRy;vQuiLEuYCv*))Pk>nkIFh}c~)Qjcl z&!>f3%Gf3KVuR|0M;CEeAmbM0M#jw&6r$2}91HI;#!j}T@gSjZj{P@nC1xC+cUh)}M&an&qxB z3cI`=FsW=6TO|vE-v1e}vac1D?q9!v#4_0}SnP4}^WED#K0n@mlK8yYAk>QDGpAK^ z__X`O_@tgJea?=@XO9}Crt~R-h<}VelW#jo`aE(Zjy_YH#peJ>|1o_2b?Zsu(=r~P zYI}3zb^Ra4XY9%1bI;*8`V46npLHO8V)}>=zc|l&FN-Z-L@6+rDAZowvye56D?QxU zwR^9?1C80&mVd4t`afPz&> z{!An1QKJfDW**U7Nl%_?vR_kv*3Hkywk+8vB_GaK$VKPlp2X(Hw+N!2n4aSEZ##i} z*mCnp;`2yd-1tsy7M}wk{m1b6@y?UPr)4}o)h(K%&-H&8pNnRkBtG{XilfhvX7O1E z(tnITi>99>KD&R8!{<3$bM$fiVSFw)S$w9%=P0F46BKG55?}i+K>>5D9))j<%{+&3i(tF1S@OBFkoM#5?5A`Bbxa9 za$k9(yr5}O6PsPW7yV?CR~_-V6BKzLvM%38^sni2cv+M6T4J!|8uw)E-my{qCfQdh zbHM=nPkfq38NUaWqd&%>@;=Hmn#2q7s7zI;G$*glv*L461RoqKv;pPX(R3(JAWTJ z5J#V>&Ej(aq)&*C+(+_#mm#|pW-s?MZ|*N|2mhjCc1WO%_*Gvkv9pzsO+hPJ`FWuI zXp31`S+iOH=Mp`-x7`S@5rwGr-OF;2)e9z`8vSZ13QpycR-=2=&omD|uc?tm zUTuLRo6QW%J%bK^PL4X#V4(iL;jxPf;m?e@5>Zj2r9!9g7rJ{li<0s+>YN;~9l-5J zfrq2JnCeJYy<|xx>TFD$4DuMb&}{ZSR{QmD^2dUc<=1=m#qq}wg-=s`eI1=SA%8^V z_j$O-ME6%0aaIu-;L9Ly{G~rXUgCs+%^iRI$iy(LN`sWDi{?r}WpTe2; zd7^@HVYGNv>B*_0kAELGv{xGlJ#Q862lYdACcLbf{qhO%Ia&!G;PcJNs(x+b@%b1f z4+1s8XGR=8!ArMgmirEWsV%HzZWJy^#eD((O#{0+cvp}ak5iC|9W?0MNZ?I93pbf&(~J`xiL7kw(v;nIj8xm zYk6yJXZXXIJu5i%gTf=7=cN0p*N{~eeznQ^5uEx@U-b)xN4jX)#{hUX{D55B#RPeC zl2uxGFXY&4IrCWlTcDI5Ip>eXzlz#}=&XWM{p~Mi8P(r2_{LMOwYh7Ky6 zUTJt9jS$Zx?jmydUNhhAct0Tv+h4C3{)T_f16Rs9o41Ceu3kBfRlJ2UyPHE>F^Z#v zul)6R+ytu(7ZYbsozeKhW835DQzwpl+|if+qV_$bzEP3-a)MX);#xvMBNg|{@qd92 zjnth%-Sc`iQhTkc{k%x+Zwq!kYr-`-zF%6*lQV$)-o9hWTJc0AfbUouC-=490gl2^ z1HHW+Wn*k986)NzzLeo~m3m4f^#*Se9$hU2KKI6|7-2Kl=hW3_u7M2v=NYzJ^L@b= zPFbo%Z{&It=CJtw;QTTwcx^3bytB>-Ui(2|L+3duS%uYW!lxSi6TJ4Hl9o!^3;qV} z&4yuh^HLyTV+GaEstAwayTjLL%Rd`Km^Yj=Z1udB-cyHdT5yU-dsWA~!uE><%3e?N zVlR{9i&~CfKxr*T?R5@gCHP;-n)zpPf;X)NCwK`Nax|ao=e(xf zMD<C|1JXLz>?P~D;MRt^HMdRj#;3y;bP&d*Sn z!?&C&9$3{@cfDxr508J25&Ogcm6+UWu2!ykL(<`Pd(Q~!7rAzLPsxQ5mD7&0DCmz* zl@Qj*2eZHC{F_Tbz0&M+t#}kBd9PMo|3bU(W%$(SczKnpJlgTP1Ui1UA#YCHUu|J$ zDIV$b#z>zxGU3%+zl_Wgs6{z^GTxjr3~yW88ttaTQnve=ubYu>KOn)tY4Az#bbk?ESDc&3=KH$i`sxZ})41 zb(b0}I6#H_-m9lyrN-;L^n~!W(eVzY{aO`qoO*SpsD%fUBsZlQhbl%M_C{BNyGVuiUUmB@jZrw}$U*U}PoAtl_?eDJthjR`5 zO%t`em-d_WUvXUh;@_|K0~4U?JLTqVk<0TOVeJL^xZOZfen<24%5!#VLgBsXoKchr z6vr148G?{Rg1qv}{m^%%WxerN`F7j1H&aHHjuYYGUbh!dNiJOyim7(a*HM?=Wv2+w ztg^}oOGG@6pT$x|1H@V{YW31-if=~1H*H{%Jx>aYWO)2%^N!ddXRo9z?V)nQzxZle zsy%$b{`m(c>umN8g>NRrHUR@ugb%hIV zVLpEy;XfRTL@N|KepGvTe~y+Od?zjwIDS|HVjFnq)~O z#*yUTp>OD#(#hhJODua&qY8QLP%dqHC-r}{h% z;DTGuEs$Du+v*Sx$g)O@=YqZQbx{?j;_%bQv-F^LZAD3=p&C22@%xYTLUgBpFVL<++$9_@q~fT>i7`PXS@3XI(^h1q`^sy%@;+y<1pCYl&Q2$y)ck=I zzk%Xx*!4wIOqV);RgS;H)8_z^UEFW+;lF|K{UO=ORY0Eh28C2j|bm+tt6XjY0v2ofe|rU z?gpC3TkpC3%S7Mt7kupY2jw2n{PS~cYiM^#0=}32_latG#? z4uniLqu%BEuOs~4I4+f_s5`mAJKA>QHUKxmsyh+Mb{bU@8aN|8!B_AejnCgoFI=sHdg1@wkwDFz~pj$F>+6&Q1~_3 zgar}uD3d?)(l8n}%<3vf%Dlc>rvKpKM(#c28uQbD@vrfydwBN)#R`A?dSu3@FumZb zT%Y%^a%~)7T2dQ)^+&aZ(`gWA4+%NMR$!s1{Mb-ksOarnyfJvRg|_fo646Q#u(!)W zDx$ZH6cyzUIRH$ewooq2l0UF4d#GH5dYGSFIPq{7N-if##3A!i6!1yf!Z%4N8|M}+ zt?)1f#G#gJVyaS^{|)@kmD`qFhzyJ;lsQgGzQZl@Z^VS6mB^h`F{UoBa@7nVh;4t2 zfCw^t%{`kef{bnO6|`?;Zp3;2kjjK@k04|K{+zI}5_5H>stngmT;GK% z&f7wnYb5BS_7I+>$-Xr${o|6uc74$%hA#e2tD&aJ&N)6Kbo3 z0K(hi#^m3pcSW0L3%~|O0!$i(bfBX=k$O0#19ynPStaak@>!%(R~Ru#1e2~Pvh%<|AJq*51n zhx+jqEmrww7cx4xRuT{S15SqbSqO+gl5aoF?|xPIRQHz18$r&`KnFSp0s486#=R zxeCYjsM7*-?NOD1a_8BhUYB}?-%3OA9d7iV<$i~s@*fU&wcd_wEpGa&ywp7ud2;iC z`weecxq{sKLqZT{@Z8&D?z+R_B&;6?B0hOC2;tj}Qvl%<*b|eEa(So~HjbPoI8i5L z;I2V@Dh3RXHL24_W#ylbKvOuDTrJWzXy3WmMCGIXEcNmX^);VqmIf*#tSLLBZy|*>PdXIDQ!>O&Gs#QU!wr?YtmR&hH{j+H1C$Gu^AlkM)Z}E z_4BhF{@Tnn+M z_{96CqVLLuU;+C%uN%rRDt}eUdGx-?dDRpp-i&Zs3nJm&?v^we@e+x2tr{HRJKeXNG40loubmkI z-X%)&eqNO|REYcGYq6ciT-Iozxpg=Eq9uQtAsZDR$3un^KNn_Jgp$*-VzzU_&pr`E zbj!Sc)*#n|r*4E9iwh68@TMS#<^rN`&1S{s?mSfp{e-wXzlcl;sY04m>a7v*Hf}w( z4j*CrdfT7dBE)KC-mg&iB_>T&7dVavS_M;D6!Ab)V-G)m-g~sihMyuh2V`W>55wo1}Udsd6?|mSrbnKrG8{?I;~% zE6Z-fM~kxTwtOU(WvB3wRF<8}hrKNO6h45|_-Iv@oyJFUS#~=BpJZ<_9(YM?hv{qxJF z#Hg(*=|M~j^HB=pfcpp>$r2%JdNlrCM_8=cPn7FqWDWXrA%8EnIi#x;M;v0mCVVI@IFSg zJ{1~L`0Jq;RPp)e=LX+5@>M{&#mqHqU=nZPRKh%&;Nrx3gHd7uOaC7I+y5j>v~>R- z<8I-Ye^FcT{c@ursZaM&T&|)QzOTrYf3sfk&GBL=PcSs(mlSSJenoAk48xr-nX-j5 zi$oEYMXO|lEPDXG%eTij(=yUbQ)xF~uab6_`J%n~Myl!tE-Sx7-i2-!;e!3|KT*WI zcgEz?ap;Bmb2%|G7DC6DzZ99ILc&Jl`E7!7p>O$P)FWF$9&waK_b!flLO&zEOi{NP zD1F~3M2JMn4K5Q>i?lq1CLq#sh13!gb?-KP@6NwJaBZ?PFgArKcWz@(9GKJIIv;ZV zC9*Me`yZA)nLqCt|3Uw!Jg;}a*|Q>Zo!igpsX7y|ZQ-qN|KvhvU_z2Jn9{~kR5ACN z+cr5WDq1=H6)sza+kY@~owMhf(ZNBTq~OD{54C+-R5j(TYQ3T=#pz$;w0-K#tmt_l zFc)KbK`GyDo1DR&W|&^mtub5j5$M)<>mW3bzB+m@n= zA3lA*qN1XslXw($PFqFKwSfs~{>iHxwso0xql4|WqLr^|^M0;a*~-7x_MtPgy5}bT z1g5q3=hfQ23U(V(RN1#`(b$U06x#;>rp&cHw`Z<(2BxLEY@40L=y2Mqi>gl>Gw}I} z>UKQ6y3w}1=P_p>tDDpBdWqIDH-hjfAZ&Yh%r79^(P69iAItp8*|RG1tAIPh@2RnU zXggT6a`TeHTfxC;Tj}&yWghFfG4oi!-OKO!%=VG(tD>q`>zo0I;@{xRth8m7{3&icMGh z9TlrPx@`neqVKBv zH4Pi~G=o6m-Jk62d0gWT+fj%A2oX#S6gIXRQh6K-T+m+ZvPIBXl=}Hk$D_ej zZHMg_1B>t5U+HQFi-6~2SQ9+#pnVMiJ(RwmiD zI{dtzxz>@niO!D=_CE*4DLVA0Mc~}lVdDXYO%!rv?sF!3-g7bbMb&3q|Kv>ioaVCa zbNNG#%yq8J!%o`NP*i#3oPX_&Z&?kn zG+Q!o-)Bvlbp|Fs@3MWyls^Mn*}In}K`Z(To2!QRLaNV;SPWvd>IfGw)5pZ9c+ipn&nZI{yz<{xHmh5bqq zFNlG@pf`QWORGSylS4%QerN+&-Fjzh5CK2dh1Je8`oN*9TQaLb(Z5x41rvj8k2dzr z27xw-dCOh4@92PJ)6m}Fpe{vK&zn$vf zwlzf+Qvny@xa(I)m-ccNDE`pKbd; zN5x9bVLOtT_c805T690H+vse~0>RR9I!nvH+9hAg($c|Yt4;K*@*k7jDre@#V7F6> zDi_Y5SXWU=qm_vT?>P;8SV)6|h80x}J~;gSimEoYuUxi+EXtsIAaje;wyvn+-SwOL zR#ZS%*Ju9ib(?Glz?H?5rS7jA?h9iymi09;@0p5fNQ)$?PgJJzM8n4HE6>8q7jwfeK|JW4&_%#2V_7?Rls$a+Zi(>WMjGohEAO4I|ZR7Xh|B*Chd8sk%onlgn zx52!sKsuq0aP<;q9ce zrr9P)ClEV#=B7f6J2Yz2y-|P z4Zr29{J_`1p~lSR@{FIh=p#V_`c(qpOfp_BFzW1d6&k5=rQQ*qQ)snlZ0qq4!7WF2gqdqX z?{#Ne5S(Kp%s>Q<#`D!7MNMv?kFVZk1W}Bja;hShrzZ3=yY5`S?h4*z!-O`XxBel8 zeD!W*I9tg*fXO3Imun?AfV>qbiRfJMd!(UiIVA=A51!5xzIxAKgCK%P+2bn zBUBknWBT`>t72AiB=v$G9jF9)ID0`59%-~vBxy*DB2rPVKVvyn!Le`#FW0Dk5m86q zmnrlhq)nhrsRM$x;8ZP*ZV^kZI`mHnVepL@1yp|?kcJe) z6xYjFrbXyeS~sfdLG7xlj(mw$<&Rc%v9+p!0^G1bTXYFu{9BgGv~mYJocZK~31>RX zMuaZrxBkgz3JoiLTnQlcbD^S-3-T1iQD^tyrqt=JV#*;FFd-qzXD+YGPQNs?7^EXl z%8#WX2a|)TBY`p%-f}dt?mH0-m9(~q)?}Birp{CWKje}rr(QfaO5S5F`6wkZQc==l zE%`TK^o9-1_vp+M^{D;t>d{2r=LmIWYitUbch6HnVEQ3zcJuXE4RPw<{$a(wM8fV= z%;K#j1X`f8#J%CcpPJBIaLbe@AeV>yd^N`NRKBV4Y|WSGc)lGrS>vt+7P_1XjNYBz zN!%87GH=MyM945k0cIylTs~fyO3w*QPIEK6hav?PExkz+;Lnha(?y zTp*>!sJ+$5&nKVrHedM)Uwyi^=uDtEBB=+*X!w8VQ0^Y)s-4YRpH~wSRY!&&;mzaE zEsXKGKut?8H}iSo%U5-VJdP(ba|kB^62hs;`*?2u=I|tx8(^z}lmfnt$_OKJzDYUWXW5V$|fo?oupI44r&Wmw7#L6Ao{~_GDA9l zJU7-!+0$+M3d;KG#|n~o)e)gbrMJ-ktkHjVhUdn80^i-H-=p9! z)rtuVt=3bwR&pO-@y<@v?w<_4uHelQOj4~?XX<0j`X9uvQ`LVu^&fH;jYK2|NDKXk zKRGv6Q+>Kk?*zEn#mAyu3_lXr#nAoaz{A=Dx6od6G`97PFz)4~h63#^)s~YL;Xo7u zt>h&tP_ehnaoUw4<21wIO|4`OKO@V=9eg#1O8E29-AW27?-gP%3b(1DdJwo6xyLJ9 za=b$#WWHGa9NEplW9Kx?;-k*_O* zMkH_<$IvNY6|J_frP{#&8Py*9dwjLM$!WHSe}jo*Jv@_Ns)t>Kw<7{oD7Sl8^F15| zTx5mVr{8*xu>k!KcE&kQe~{mXTCwj~V+&C$w1sl~ADP(mV1qj%MLJNAa5>y^1xdbo z2hX>VCTtCuOQq##CEuT@9~Z`rRJA!$5=PY8kJC@kkFN#J(2eJ1*!0iOj+-(i)77Y0 zMDk;*x#(0sm!FX-a|U0{7GYu*j+l_!;RyZ@yYP z5Z>8*2gU&x?ZBO986CJ1B&7on@w;gUMv0hdZkAOdYGXV&iC>Bb$MMBPM0oH95NU3f z-4$2-QHDwte?Z2}!op{sp!n;+Mf>sZUPeFuhCq{ke9Z5r{kVs`X8SQC4v{)Yt`K44 z7l+6{b~N7)Zt292(K$G-TE^(z*ciRmWQ@jAWpi>_y{81jsCBo6e(cN$pPa(fQhc)U z!FV|#b58BK+A<-Oq2i4u5XXRsk+n{r_m%36Rk@D4IBNq}B#5iEFRy)h@_l&((e#^r8526sq5*K*Uw8e1rurS%6zZ^_ z&{DhH!O=J?oR&V09h=*qot8UHpWRw$8TuRY))Vw9-O+n4{OIjX%=|NQeBahHr*d&* zYpVuub*}&JxHUbTW5S6Pd*lnDOp_f=EaJNtB{_bZy#SG9C5wbyHHNu2yKHdn%!T8X zEkgel$!Q4w>v{@zy0zjCGLIPaP-zohOH){!_>xLCbLE zc~%Jgo~A~JdNpZkI88O(61#bxmXX60btC@#@q6N4G!wV~FeZ@OuO24wPcJ8EdWZCB z>^U6Dfk%;Y8L|XFa^7VPurg$gw5fHZO5w;4mxbYBzBjRDo^KW{nt@!E!9_)XRr7s@vmI@X~3P8Y>MZV}HcM|~Yl z(hHHKcui;4Icjf_2WdrWp|=s(c!W*AHv-KzN-MdTT%m|3FsN7Vu)W&C-6ZgK0y~H? zVm`{3(!Nn_a&D81$h=jz`hUo+)8E6KuC5t1ixG8^^2-OUx+R5E8xI&KF&6e(kJ zm{zg|3aOR3JdRY`^#p^7nsQp`8=<~D`f1&j{|48-0Xdq{R^qw#;!P*dwPztFf0Jt` zg+%i;Cv|OCnbi4bF@w<->-oh>d4LatXWw1$qcZwwzQ-xl>=b=l^zNt$;u3x-0y_8- zsX&m8sE{yO5=z41&xDz7&P{BJg9a+z9AIC(2+DxOh88&kwkq4U~1*-N?x<{ z*W&2ElqsR;FUoGL%iHyf)#1tUCZKoY;Og{hWi>y!h4f`4*KhLO)XwDhwp7*@V_jT;VRlU^Xzo@ETY&{#gvsX9&AF8_gzo}|? ze3G-C{Tu#wa=HmJ_#a1aWQv)JPfp{}K6CaDR(N9Mm`H{H4RT1GA~cR<68v2D-!Z7~ z5DZ}aQX&(0v}e`?O66!&Bhr5ui*rw>Sdsc;3R<*P`)O?nH#gk^?r(jG)!ZL@ve#&p zE;EscXK*8syxAQbK+rp1v0sn4)hO6U1mj&j`ViOOyX2H$nyQ=FtPw%XA@;*XvgCWj zx+b66B!iDH5%y&l`z=3GqV#}41gSO`x8ost$$^*lSeLiN;nUsk$Q3Rs)k=*)&sAOXf9Y1cYp7#=-%$>>g+Rs$96-YPA2JV(JiMb9uKa^z7~zm+m%SXiU#|g zj?atRt>1-qTHD{rypo>GlT4HEWd1nMx9wzJb|(^dFh9TG)0=C$F8tof^UzrOcaUdE zPktodbENIUI9Jj-ew9en@sadUJdxPK=cGM}#HD=h;zM|AWq(w-aeR!OrnP@(vFE8T z*)8_2wPL~A6dBPMHv!r_b^WPgF^IqxE3WEmZ?-KuhBDVxCA%>QCKQP|t=k!{(9GSg z^1kB7UDqxw!Nd85fh~Bw=-d@SinvA>*DIR1o`%yPdM1CsQ?2499zg9T^Up)Ji7f)U zUgl-L-$CG)dh-`|o(wK^ke52h<`Nz7yQtw((FT<=_Eu9DyPnd(7C@DY07>6Or=%b0 zzS8#keT~!jClR*`>Ws!Zvu9mP7TQ;(*mDdRzkI&y4Gx^@g#>mIp2%pfAqQM1>ByT^ z`fk$2Hh02HI}-6rEid&Y(yy$mI727`A02Q3Zxkl5`}I8_v1n9-#lR$OfV7IpOR_rB zDY2`5i@iK{86B|8_#4v(=8r+wWw$K5>t420Viu8Zsl=$4F^ZV?J2YMXkn+Exlv2jW z3dv{Lm)$s4pR;GN)YMR7^5sg-P5{pd3Vx=!6-S14VwbHTM9B{Ry z3tCC}ORV%J(l2wCzractyzS*IXS$WXnDnmB{C7%vY1Gn(8jv9%1jee067@>dnu7r? z&j3Q)sz4W7Z{2Hke6N6#Z)w(BGJ(|fPv=|TppO;rz?6X)Vnwi+FXfyiiNoon*!0C1 zy4S{5p-d0%nzB;9#P%I>!QE|%8T+GX*$eK9p4I_#?XM~NPeP3Nm(q8$?eVL~hJ~!S zBzuV-KyL8Ng`xa3WoE|hbrqUS0C0_GX}K-X(O(xc+Q-*Rek{)T6*;AFe#eEAH<|7>3gA25Zdt`OgEV*%%>+tm> z<>DF(YD)GRGaKXmxaY-QG<4)v)ZsEbxfo6p4}iOb;Z>*g;k$OIk+TE`K)#}5TKH@! zD0+u`c=ZieymXC<#JgCk7vAb|i?#4f1r09nvI8r6 z!Wr>~E6xb5#0kY{w>Wjnk>=2NpRvAdr&tpj>t&SUooERK%8Pg_`#3rZ4|4;xc`J!p z=F@)LIQ0sz(c&%G0jcpReY@EOjh>>_+LIHg(c^x%r0893{zp)(*k}^c`T_bI?cA!#jOLO`M?uBA{4G8U8HSGroS+nx!vfQs~RhaPj|&aPq_5SE&Zf!Q&hOiSOiIHmV0nB}?-dlP^!cdE<(AsCaHd_+ATrot^04{4@wNFVAQjeni6ggXcYFA( zk562-a#0XVfbQ1dD0HG;86;^#`YmanG7TnUGFNOVwIa1$P*Sj4l-#=dsMl@Dy4I|ghiKQ;%Tk5mM52Uu zxg(#nprmMTi8lJ*gfY~M#)Im^WaPnKueM@Ho+o;(%<8m{1&$K&f>>RwT@kl??~+s!y}!~GUy{U6$@yxloEehyH&)IyuGkEUkW334naD9e z#BYy#O$-|j;M2>KRc(kB)s;=6mJ*jz05$6C_V#q+<>;7ESMasF4m;wn=xc+BHbHaJ|By~7Suh+96)%W>HeToNaCY{_Ex77;u}f=kHp5;@>csyIyO zgU2zyYuG~V`OV4oL_M|P!vi^AR88B;imHwDe@ZXi%XAm zS#^BjUEnaOBl-DL`)B2$SwHiY;<{zx;y~#){)|`E{#5rxCY~~uCh8evS{GZ)0E>T2 zUug&3y#*?hdFQYy@A)mh(h-@?gd-$mI}?tQkmF4FmV{hq!gnN`=1e$7LY^}LqA{XJ zIwA9XOhdCd$U&@Y6YImr*gWLiPt4EKY~nLX2SyT8)Qc}3@e65g{y2w03pR=+4Dnh( zp-{_>{^)>fYSh5o%ohW*pVZL|Op*N)#`cMmD3&u#pmaN1*J6KZi$7zzn$o&|X8JQG zTH{mrN&NQYdVyc{ySFnu3q4ido^)+^rsFp~8=md>O~;1kq<&|jtGf!vj?R9?Ax6aM z{$+M%`R^oPbgEAojy}Z=n*K1jeaUO8Ls!a|=4E4Pd5{j}+drj4gM{cfI`lOYF06&G zb%#Ky#`u-kuj{4ltoCi8KW8WO(xG;L_?^jKwW?j~_71k%`zh^Roop}0!sZQIWeUb| z;e|O_NmKj}IKNbCcUs`{#5*+fR+%ZSRnRpoq z+(+oc)B zd>SAZ0*xi^FCiEq(JQa)NPUDxWAR)7m#Oe3NNiJCm9hJIkag;HZ;xHivkdFae6xtG z1*F(l#{yzgn7BB8p4y+aWf{t+U_C9(B`%sL@xFV1qESw2k7t5xp&5+a$26|QSdGGn z*<(u%^R>6c*p9GZaU4n^$a}9xb@}*_l0nfb@8xu+M|xVLr5BCOoqA4sH|+e^`P_}K zEvyX~@0p)%Zx1ULBb2fy@vd}aAzW2SRkNpVH&Gl{;lGt z(uwzx(zWkS_~F{ZjUHolY!qqI$Cq)H!er^GDT?2b()SOP{*x&Z(w3(!%R2V=U*Pc} zQ~mDF??cw_VFEvc-+TG3N4e{<^PK4kuf_y^m4h&ei$pc4FEXhC<4fjM0-v)aJey={ zk4ZpFhL;%*7<*!m(Z-U3Z%Yae$68u2NZs!(*seVxQdwW=yBOG?EbJjZO!QLX_pLG) zWr)~lOKb~yrE5)mx9S>IX9X`hsLjftXX2`WYs5i8&L*`cWvTR{0JI2~De9#kVXH{jE-Fk^G(C9^;$X%PPI3DPX*>8_KlW z3^ES3nKgc_q!Lk=FzRCSK~TH!vnV{6nb6Anu`{SG;VufI!G27VB#LxDHJD#<9zbmy z9|Hsju8Tdw`e$LAtKRHn?IRcS5*(G{P5(k754GltJTMAEu<{T-4bK&Z)Nk~ICsi`2 zIk-J<})o`hbWgkH!)`~^kPS1@h~ zgaxhZiru_G{Lw2=8~r{ivw*&5rLH`}Y%kcSi;)-_A72D{1mA=}FjkcA67DiudJrvJQD}`$@v&yT<-V`Of;2 z?GH_?`6`+GKN@;lD=-7Nawflp8IThjjc@7CXvo`lT+ zOC*mo-*~j8)Tj_p=NM4Y_gYi%S6N_1IS zEQKg=AuPpoW$zUL%FU zKazB{oz#yc`zO|zmExO>1H5cNDf-MQ5;M9LCG@#+G4T4z2L8Hz;cwl+UJaGC@`E8N z{KRK`M~kJ6{>Y1xGj@>l1Ds)RhmJwoF`BHDopo=~T8WK31LY!fW8@S05`}JLE#`**c%* z{WR+Bn6PT%*LU1rX%zt$ck7zsU0eUQYxYO`_LM+5MvLvQP+R66a%p*vI8{o#6a1Q^ zQ-;rYZ^)(Evua>)xZ#DJv-()jGN+}HZq>*iEzoF0E9i_T>hE1E?h%dX7=9|L)mr+4 zoAqetpgJ#C3c$8R@f&~6m0!l9JiZd!)$KyOPx8E`gvjykD$sfS6eWpoHGdH`#6}&I zuHw6FLEY#S%8`S|xA)4y1JR{Xr#)L6UM`JuY0s?6URAZ|6{#{(DOnSZM&&c|vsC>A z5Bl(npvt|sRaMsWShuU4@#^h77>&wvW@SFlA|^6EAnG|=-5Q@!?gv=_fv{wmDO2Pi_!B|CTGXd3|`$jde`N zI>EEj%%^mBV`6(~x%Bort+I}d0`X*r&{cuF=Xlh->-A{X&L!~DkymTT6MKgoR(8Ku zIgSNcSR1-3Uotb&dNill@BW%sW~*10t5@z&xtNs)u?pt=!_&idaazT%t%Rw;uA!^8 zc6-j{_8a^4@D^;JGTVo@hiK_HfB1zfHpj|Vg3}@EX(DqdrAtWd%zikbtgMpeeP}^P zXchadr+e&t2UWg<$$Vb|C5}YE4K6$@!xharg=;Hc(fdBl|9<60pQgVbUM@7ir5IaX zyH-s;p7oR?JzX2U(r3KyD`?Q0xn&sQhC|9%hEHq$c7hvJUjz1}%oHa&{CyJ?!yk!C z>pcpsXWgI#)`c4j4@IJaZi=5nPI3kGX-LrriSTaC8y(RvI^m{pq7&!5!`iY>w4vKP zRkxp(7p}_;@8}RVp=Co?>fudLkCncn&B0pBNwXeZq)?Efc4>kWS7iB8DzF?aA#E^s zEr)}!s9Wq|j)hE4DdKkUOWHTII;XH=t+sGw{z`4xO6jVhLNruG8>N)UBKe9nLnlR0 z|LuJYro0wBL$IRL=}D}B19b0aM%yu?&0DMi?GB|-Weu&)ysXN8@?PfFmUTY&_rGve zRdklJhgN$pYe!Nyl@v%OWssCZ5(wwhqtB|wblgzoj#YtcenT)Y0GK9?v@xx`D?i3) zmA|2ng5l&CMULv6lS4Z~wJjZVZN*wBh*d$(6?$oI)%>p3FaH&8y>v{b<99oLXFGmp z@H@xxJCone_p|tYngiaR-+7MT9rV)T9#!+Rq`uf1R+!a=kuRz)jAqhgRLhZEXPs}Q z-55NZUSyCkfCQWz62iSsNWq+)A-;n6Z7f{d{IP|r-8aHaTYWk0O1-pS)iVREUpHJy z&!%KLe$%rl*^b}ztT?CY8PziVBsDyY6;ZLQwAozp{H5`@;{^ z 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%0A-Y2&)~kB1bfDiH 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�T4M;-o83XN|mB&_#qM(r!|u^@&AOPS1SZv>B_ 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�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

    U0pY2;TrY^QNvb`>HpekJ6_keHVn7TlGwbJu( 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%0AS<~G33OQhDiY4Pwxcpy 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%0DhamZ|l_U@yCE)(KKsFd@c_((O5fJ8Yd{N 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%0Au2UuH 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

    y=6V^{VV(Q@`BXo;EH_l$|qwqFcZ{nThKg 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

    rjQ>huhSz~a@p>zzSt72a@$4oL1 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

    nId#6E9|yk?ijp_GicfzIb3jeEV~UpTL(Xx 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[zpdDVc}}Lpk;MahG{^nZd)YI z`PXcEi7Wd?da=D8*+knb8^7Xy4fX-USwqYphTGS1=Rq)(yzTWK76tCU9ysrPVOodN zA@W8hE&Sj0k!ARQAaPRE&VacmeJHz!%&+Jq7n(q>ZsB^pxIT*$xUVOgOQzv4&V@N$ z%Va~wbtRo2&JGbvB!Oj$5JYmd3)Abx^~Ibxz!hefmW|vk#f3>NUErdGc%AJPa0Tmf zWK|@|gdkE#xz}gn#r4%(rhPqd(6g}s|C`e#+6lte=V5E8Cm^q{ahiPTkhFr9U#FH3UDW;XQpE0 zG!-C#U#qZ?!4^ETTh7X~m3f-r_LHo3KODr(=C=o%AhQ`F6dzoL8+TlzB7kc;*MYdI zKDg3Z?lr&=7}Zabg>!iv0-Ve1WRUblV~I}C&_Z1Abm_ldED*Q#SUGXsRVIDq-07Tg zHrM9h^6iz42ez#ThQRoKvI5p3R$J@T*uFLg)WU{uuMF2q1mdDATVvE@iu$D@*F?*UdGYOCo`T+wD-AR%35=p1PSSbz&-~|C}J{h@`@a41s zC9N+j_5+V`wO4koJaP)Vy~1y)rzhc42eMYrV&&VVy@SrHxz> z8f$YThbx8RO3yjH-V#Nx!j;Ro_k-p@rbIxkup{7P)sp!3%8Wc;w;CJ12hNc$6KJj3 zzG7!gWUWHxUEjK6HBOQyW=8JnnTpLv$6$Z#wjSY4c_I>@Bb*u1F!tPV)oGfS-(SGS zSqGXX9p?wm>=Lg0*~Ic!6UF1o=35R{OB_P@Ku4mAs3U3BlCM*FP#@Bvsv3G#$*aSC}X?B#%=|x>D zBv<-DcPc5mn9BtN6zunqC9P7^xu&A!hs6)uE7Qwhvs%}4xP~Q{@x}KoP*}`>PG-@_ zl=0PopiP3x!2@J$Hr}>lFF#yw;BaManBgGW?T6KYobEw&=-~dgh81A4`vHd8H@VYw zX0^FeJR4n(MNSx#%Vch;@S*;tSI5m8R%4Dox9^ku_mrEZLe&h`#T)2 z!hv)#G}W>?sGYLvIdHXJ48Ge$T&;b_yE3k;w>xb(P zI9xG4%+Dg=I^2Q4B5rJ)#rlCCHW6354!DkfTH8M@xm%0{2})M%T+|MNRt z?*%{NaP7VqG=?nVdf0{Qe|2$f3`|EZ@BF~~HrWX#qH|O6X)+R@pNh^B@q6Ycv;u61 zAtUKhR?F9IeZVfKXkW1q%#s1lXWeOyUw2!D`zVKN*!!utbIG>!-!~E0j+<~n)O-q6F6C8)?XvBB{`#ijSQwWge65_N_)mLC@0_PWBo zyiTTb<;p}^FP7#&bFz@~;}9h5ln%!ngKd`-Nf}u<^Ee2vR?3SI9@$JM2$}vs8UrnC z`*4n_l?vP@Wl>-#K(Yg3Y?9RqyRL|vVuVA_tUJo*0 z0j=%L?%TMs#}(hdhOMVL2Fu)_qZygl6B!4UqUtxG&0_rY3Hf;!hILrg^5_$WC8)`K z{cvsOyo-)N=o_kpXpdF`qA=-fZo)gxB(9I+rre7RhYESO!zuplVMo znWNrzEgi1YzIMte>J>dHpp^N5mb&@%t(&a!T*u)mponX-p!>H6_V4MOr7g3*Jg)3% ze0>vf?S~^c3wp9-6wV#lHL$;9Rt|YwUu(6j8=8u1UPDv+u%ElwNxd1CFqy0>4 zP_+|qJ#HC)JQ<%Jn>m>vC#I&z-hr@Jz1QqA+A30kHEw42@iA7(Z){?FZ7Z00vO409%lBwxgeLMNLivN zTB_v=;*g8M8_VTtvBF?x01Ouc3^B9VC210B%rt-|W~N8oJy?K}V)~KTv2$|l#Bp+o z9p_?QF0vgvxjS32@BBEwAF-A5BerG7kK}Up+C!O)vef_Ob z;JUxRwUi@dLc$8IOMpTqhCN*qz*R@?J7N8_P-JDoPlJBD#TyUv;RDYYT~Z`&eg-Q~F9tYY;Oi z?|U0FmW`)UP8*iMpq7jh#8U-*baUN7Re0~Kw_)krBkzrIwSPoNN zUkCS$7d4yAz8I%t-6hqg!FGFiM#jzcP0V%Xy^$4|pj}C(mvhOn47%h?GFh>JYZhKu zRSQ~kMTq`7d2O_pc?v9Uu6VzVD`aP!Z0a^yua+U~t?yeM&DTVW`h?}^=K4JEchM&_ z^^J|;Z~oO{at9t`+y$_H4 zC*Sic@Aw=4TKTc%Pk!zj{3Z+S*Vt;309CbG(2bVGJGn-7qxY|2Z@req_@3c3jZ4P+ z1raWNnsViAH%c~<$<_A<>JovpA3M$08w%rj3+XFLN~tmI7iW}PS5ql<@l&W5*AF9@ zvg0~H9B7z|)j~(s8F$&IuQP#ig@Bs*Ewx?Ex>YFCv)z_CR~;M7fH18A4xg z2g)^^?E$*pP_zfcx`IW-wY^`f`CKQVJs|ww#Xd2V4!OLPOXU`m0|Z72V=K3tC)V7Z z@g-Po=!|V^MR0>PVbHLkl`Y-ggALIu&B^G_yXx(%vwR*F@3)ao`|taXIlym4Vz6Tz zNq`G1buT7PROlgmPcNoVK@5^x3Ij^#Vd)32i<4~<;bWoun;ai73eV6k8rNO zFNPO|c^pAs*LB+(spz{}(c^mWo~pM8#4~&Z8P(-=OEY&gGqY{aRyQ^@agSfeCC$EX znA@-(4tC>)i2G&RBBD%^S1V4OGP=ouUj+sx$IbP>L1jmyWMQ0)4o{8D5=e_F1$0Me zNf4fZRhx91xX{PT5dAJj?9_L3M(*(3v&k6A-MN=cEE9-v0DS>#J0w%GZhaNw1e8ds z4AUe|wDysEnrZm{?skNN6@XGQG$wpVph7!KQKotP*GIW(;kXVX{G6;q1Z=mAc#^W} z+pJtCZaL>F_BU*_1Ip5hN3gCP$+ERwdjzW3kq{}F-CW<`A!e;|lf_+5=9%peE>jwUnYH zliB>1R#Kyh<@jQ17G3El4G{{443cHjcjS21638Qmml`#n@bIFob>UZJm|{rWU|RD#m| zWb*{5tDD%@>^(f&mFBZ|d}oCJL4vl-WW>&rPU0>{RF0oLS>k%n4;^WJ)xjSoD| zpVVm&z+@MlB)oYU21RU`+9zAKjM2Dz3ptpF3E#jAeQ)g_&%*5i*-9n+hzRX?wK3}A zjK9kH$vb>>w;d4e0Roa6?STK|107brYqNXV0mq8=?LbGrnU@_1v^`LBBnrPB805bc zfn%c`=(h)&Rbs~u@coWOd*FjKv#E$H?F)yPew~$0v{7Gi@0t9*@RbgW;rl)VCt^#9 zmE}}|%*Nuk?__*m4x_}%1=G+AWLC{@SMdapsLT<^#{IW84P&#YMb-5qavgoSQxVjU zXn()p+R?@Ob_en&6w^Px$v#d&j(^ta#&N>ys6wOut0bfxqgtpzo^``?0jl1Ye3gBXF`{# zv!Xn5gLqOGPb#MI23^z{0+a6M`ZnSkyOO;UhySuy7O$*cneZUf*{SSa+1}DD{Y}jz z^IBOmRT@JJ{(oC9-Pi4E@2;D7b3H{30RLdF3wLJ4Y2S_<-_@(V3-ACIZmvt{&SYu5 zs5;Lq=WlaXH!OW~#3=?9+jMfB<=1F6o6Z!-jc%?YUWW7Dx=co@mN~Mnmq+r&H+-*A zylA{pH8o=8O}%0}3k(R|621yCUz!P)!`8z@^GuBI)$2guOl|yC2zi<(=M zIae7~+gDPnUn8fd&pZ9CTI>D-Y7czz`8V&q(yGW7?!Wg63=ou@z&u(z+d?&tYwvbZ zX!*K*<>B6xpGRC_U$b&SH4Dz(Sc%ydh&6X>TF;w?Wo+0ame138L?W72bJ>+ft|d!# zq%@gX>TPbWzv#s^7Eh8s*A{+>I#-cNtdFJNrv_Hx&0Uz!I$bg6@8_kex~-8E zu^<-54Wdnypfl?fNQ@04qdvRrv?__P5X?s7K6ej*67>(4$FCy1D)pR3hV=P|fYNS7Z!vH|lGl z#MBj9Alu|k8Relzlbm#O{cEVisR0;nT3a+Mdo8U?m^x_Wx}{gfN)wLC7NJN|l2Igj zI+;l~*Kb6{F@23gh*oI6uVc%LZt5WE;yTW`=A{+cL2X;f>gI~$>P`)$4b!fcpha+7 z)7o(KIie~aT&KWOixo+>WfXZtjr_Xo=KAeO^wa?L%vu{?OUD*d@g%z9PqL9~VRGH^ z)FQS)(rQtc@S^mm+D%AtbN$CC*VMpLHDARJM$MqWF#nI+~gyPVX$xgbt z{u5Lr*jII1-O^118e5k1cGe3-6h~;tZB&t-OS-xKQ}hf|12FQkrCXRcIfVU_pFdB~TEFY=FC#1p_hmmR{a& zW1(CNWy`(Q&GiB=kdDXBCg)R2H&)}Z#pF^Vw&HtLcH$}o(}eyNYy!a(E%^>O^93TS z@3rehpqs0R??9!_8YaA$3nUIR(HYa|q#)0{>FjEp4C{rSenojcnVT!#A7-<-u>kux zrPWP6A9)sA2v1=xpPXNuTgxTyk;u~uHGlynVTR5zj~ELQQqADfA1h$sR= z!OAG&SbhOIgsR7vuTEz( z$@m-V>*$Ig9@h8dUPYmxm z&UGyh3N-o;SRXAyZT+YvlQhBwjuh76|E;tI>3eG$_By2>vAzfgRbI-a*PM%z{)wcG zvSGuF3$cuHVeMfjm#OAr56bV>&tH& zRlBEQB05-K1y}5S@pwR7H;cwPM1rR+Wqq>>UfU2sua_BnamD?DcLc;WB!B)jjrHP+ z`vvO>&3|XNTIq@snT0Jli`pK9eza_@WRY2ozsiIITyJWv7gy{@R9+02>!JapQ~H~Z zAs}Ixlq+2#8B5nl710H0up6jgAX4RN%p7Hq{uc#EJG3a%$%yT=F4BCgr&0?DkT zR%5v&xt)9&UGXQm3>zBKGFGy&F<2d|@2D^uv90Y5`6K?=q|o=47}tJ^*Wz4&wW;Z3 z=w6nvkIBOh$=d!~A4BWp8{-oO2)xIOa{2|ASiEBPucCYcxc(vh=Zwu>hK&nyFK3eE z-h^l``1!~nl|+)eU|TI67H*P>#IwYSDM09cYIGL+@X}cPf!&G1)o$C|4D2h@*V+U8 zpS2XkD7mSc`K?<61#Mkd@qi4vr=N5aaP*a}H&n#@%O9cJqE-cliqQ$5lXOc%x}>NC za|OEdCE@&nuyVucfE`sFYWm@n>Fa3>I}BPQW#ht780iP&-{W1*N1}V8agxkfCtxy1LYbzr2MVq9@qZI=zW!r zW!LUFA$8YQM@P|xe)3QPR5fq${Wion;dh}NBa&Ida5gw)(oo2nNmj>(VW7aG6EXE2 zcxX==RcK#Qtrm1+WH$;~_FXyduWo%6{u#7p5o@osR@B$mnv5HI+)vXjBPcB+8CI@}GUJ-(7IB~{ z(>R0!0FUZu4z@hLK~MBQO%ZU~1AM)qu&*NiKvM!byeX`$S4DBR2ZX*-WPLxP_7ul? zZ+#hCaqOk9uRilMx%k?1uZ~7v7=G<4|JGhnCn^{9!J0nH=C>Z_PwuQfe3X5;Y3*#v z1d?5yCs|mjL0eX26}B*etv2ROwX&t>EuxoT$-&{JJGYELCA-W&%i(&Vk*m{Y6^Z_Pj`ZKtmVJH|mo5}1sca~zGE71Yokh(cw%rr+hZ1MjCw%s&e-K4|7N6C&P2 zm=JNce>{qSV+Y>HRv3x^IRtSXgN2N7?JEOzJZ-mc z+gQSJeRJ#U`%qP4%S)566v)^p8@h~m*D+XTw7fxeQuEr%&O1 zW$SlzmV!9YnyG{7)^_t-Y8fJtK&U4hb~A!E7+WfHxP1KHD((9BitSvMo9nM3t_rDt z4u8V-t}f255V}$nV!ww>VclG@eT`q6%o1Czu!uJ8u{$hR?%E_1pE`OB`!G4(c8$LJ zcNOM+L3rifA7CYg^&Z_F+zqf;=|xelmpRuD@Y0C%QtJgI%dp*^X5ARn>*vCdV*1M3 zuMz%0mjisTCAFm87#toC*Qz)Qux?)|WBPfG9h`rkTS_hEVC#bA=)!9JIds9NE~tG&wY%&~U0+4To}q&={F5_o?=6$KI;$^fISI~%Ib(az0QnGrK;mqV zc$(mjEPfWVufi`Qg1E}A35kSlg*+ohxeEVR!XZ8zAlD(X(9wi{qkXlh_UD=MN4Gi> z+@V5walMMTig#Iu#T=M@h|FFkbROowI}X2a2-o!v#2#K~6IZ>sMiEz(Y(iS=w+umy z*Ilg;r3<+1HXKzB;krQuw_YQEa(HnaK`_zKmOlmVlQIMw?}2O9zO&7LJ%sDAu85#q zKd7+3_RIWn#t>KecHmV5LKNaAbMsKU_)agbovp` zC54LndIbAg&^C%N8xtf*2~q>^kA`g zY+X*jAIXu2xsLJ@J`^ZdGxS`qbFMc7<+=e;h{C6@cz#R#LChhpfy@{1=>o?wqvahA zMXkH*NZb7)?xUD5m`7Y?*EUk$z#t6U7$IEl`K?uSb!s35GyLG^m!~`9p$k4GU#hCx z8c7jL-GO!Z7DPm~iQE!>s`!y&++6WQ>(l^sPhHDZ%Vn)7Awpv#S8bv+<@m!ATULQb z^6={hH`i}LqNfIOTiV*ZTBW z=rBr(F8Gveja6xrqWOxDM~4>v2dy1++6Yg1*sHWCAW}_W#aL~ivJaft7W51;;FegXOnKnd#Dvh zSQdX^H=3t%qIvVa|5a>DBI|E4M;0*_5aj*^LujkGMsKFJ9;a(EVXmV6`lkWbE_4$x zHFj=0@So8nfnJz)JgL*_rY^(NEln*z%YXf~%6D;M#uYzH#Cal6>lLl2?nQ-Hwf~P{ z6bq!R!RoD}x7zY7yrfwc1c4bbH}coV<%LV}Ec@`2ZhgImGF-VrZe|x^E6KUkVsaW? z@F@waxFKMUWt22~3$~2(NoqHUadZ6!?&LB9)timcQCWF!loTv0q6>;hec@p@K=Gjt zZmz-(P~kUg`|z#A<2WFs4<%C(FWF>8vy7^l*GSwb79r9Tj6?XeNYtk~wkO8TbpZ+b z(%Z_YLX-t1sl=27y5LiCKADIwr(0>U`c$xVF>bCYROZ`Xl8RM130y_<3deb>7)3q5 zx5gqfiwQ8qz0+hiNfz~Tb(gS$PzY$S44n!;*8FvS6~oz1oF`tVKG$}C9N>ECTtntr z^ewVc>4(=wJep0?zkRX3K*W5Gqs$VPz#!?0!r~Rr8HNp;b3;h7MSb0b9ZEa&Hf|{5 zSiX31#jkzAT2|#w64xYxNKjfvGOS#k_}csI>jNAhW!ey5TL##W%A|Hc?8hno=Gl&s z!8~xN<7@BJS8QM3I~W}spO~DwHnF6`h&GkW4F2p4x@z_dk zC6$=R{abWPN6C0ROK2I%670yQnh=r1guqV)h^OaFuXiN-cr&}XzA74AP_b;K2$5Ij zAZB1<_UPz9tv?Bq4{s|N%Sylk;+$7TYw+dwv%U@*4dKwaL=+#3_)d zk_wdY4BjH$Tt9(sWd5&l-GXqUWpv)JWFyxCxNB3V;=Hu-{HpiSa@<`12Ff%wV1vJQ z+}x|!YdBsRx}~FJBUkX(9_Rkrd0J#gqK`SVo9ic0jX+ z7=a=QY{Vt0NWZFngd8_lynn&eKt?SWw31QQtED3(wR72n>o}2HWINStBafTww;?Ia zzQ*z@u$BMbV(W~kg;k}Mh#pRA(#`c#s657X&Zw3PrhKl2=hvP0)`qn5(4$FCy19ND zl{hspJG?xch5xNByoApCm29*Fg|SH@$|F+B^Q+!R%W-r4ew1lyAX{Bu%i5}(<%av( zuZ2QsoIrte;i04g(X+`-&ba(tgr6pXg6C7|4Ba5Jpv!3wIPy2S{7|_S*7cQ7X(``@ ze#o1fCG*Bz!`xms47|P*-O^DK_TwzU1_pUzRZLASSX;0YS4RT7CbOHX&{tZ;Zs&@} zU7USRonNUN;JWR=XU?*E5jea$tJ|;-V+scF$7Mud$runm3pR!+>vTt6R#+=*IK;X* z@OxCvC~angoank!>EosA<|_POKL8agXhqlx!-PnpwjpJlFrCYglByS5fr)^1?|K+F zSHkN}k7<}Ekhsjqkq-_8wr=mWNtRc(>kf7MDysH1DCp~7SHAVkIc0q1>wa?P|9D#5 z;NvkfpCK?2HknREmt)yf_L2-=SVuC+Lda&d6oyqWb#!j7UtYhc z)cmssFK4poykAKVw;{hoAF~`cSG*ju##NHv+d_t9sG~M)xAmg2P8MMct}3j{3_%aU z&Gkd*m+o^#Fj`1be?sB^Dze=ai2#ma^?yC>!BvL;#X&z&Sh=3@;3~s!@T74)>%sNI z2SJc2{GHf* za(ZDlv)GWKgD;Mfv zb{N-}G6^5;KvpeT)$%6sQ)-(qe9Y!$2k1D!AzaC{j|`$D#9ZIqXa{nKbDe(WMgK-% z;JuY0ehTza=Quyoo|F_9G2PvF+L#X zUrfKCH6bUmIy^WwJZ6O~2sAu-U0($T!Iyq_)^Cw)CK<&>h z?&Hl<%nx3yGs5v*WXu)fCxSwe{T-aj@+fFhi}z_<#(fgQw^O8Lmy&o?Kmjl0s>Xks}_=&xs} zW&tK-_l&9?22TRe*C$vDfZAI6`D(irZC|s8i z!Cl!!9Fu&vzWz1#oG*`s}^~BaCmIo zdRlg2fy#H=*Q^*QfO_Qarj}lKespYnbaYfkwN_u63xUtOn+(<0X_$?npZD_1ImDHp zl6DxPYYh!);*U+R7uP$8D}ArY{0zYwBUsKDI>)B(AltB> zb);)LO1?ZY=6Z!oyc;;zg*Sb9n647yes57fP4QWPpa7bAX@EAg#5q5Ye0=xf#fv<$ zW->QF*}^-L$J5m8%~o>x`2+{aa&sL)w?eGTXfBpXMpt6K_`4#}PLjsbTv6}Cz9kii zRZLsSkzre{JlpGCFWlb}TN3AUD_NxJ1mgtlpOqHb;TIV+n|EgD9&c=PIju z9k6wC74{W#-IT<2e(8=MTxC_ySFSM+eTDeUQtZGiY;juFqOna?FSlb1y4Mc4+gWkW zbrz1oz6Q^=ZeK|REIi#rt^fhJ8@vY;rI)z=Egt8I;$2KErk3v9BiWa;gnsw?19Djb zMT2%g{1$&~@>n~oas2gfBd)S57J-e=HIqOnDaWm5FggkTu={jUb{*u%ciVwKLK~S- z?(q3BJ~YF=`S@>IHFszW3-*fyCrudQ-q6j`eV91#v5eyp<>q?fV!bBM6?O``rP8qF zqWM+7=tHV5o@k~CE?9ZPgl%F%ut~R@>sKINQv>rw!ziuY*0c&b?OU=j{;M_y0pXnj z$+n~deXIFVg4|r!QI@HJI}lzQqFb4^ly=rWuH&$OLA^i{v9!FY**$4*-CV!Afot3- z!SsGXPPpQIadlaIZC+xJ2P}4T{VBxtwpPySMR;8UTXfpD;d(YeQEHc8jAEG8-@e8mk_>ouK;TzQtRVO>bgOYwu3 zDZBm@!KbKdPM>G*tq3pv9O4SkJ*!LU5wOD8h;{JKExSaAD_QlT%Iz%^{4^~>i=lHWut(*QHSUEQ z9DP+9`?24HxSl$FMl@@sJWixxJ#0@7TzPV#fAZ7s8FsD-f0yq?T(_A%MYru;z7{yT z<+#FmO6#8#1em_E7M2)y`Dci$bbVddH~9}19%Ti%j=nzGsIT9LxW3+3SfPR~9?6+$ zP6kgQbBNFq=)Qa90>mK^r+fZLv0~iy-2pxojAk<< z6kwS_6ot8pzyBwKD43TqI6594B}LqvIC{=1Sw#`?37@VnV%s7@$-yg)p5j#Br>Uxw6?ssK7~M{p#pT)zvOZ42qbjHlq8HT}@=1sd9kwg>2cVqTV3 zmyVaM@mDte-v2a9z&&rcZ|3fyH!_4=8u&UX^M=m&tE`|r%_5L+pED1`$6rN!{cTjv z8p10luOqJA z)(7_DiihjosFdV$y+*mVH{c@l73+fUKYkkmy|{i9$ti&$Kwo`NI{G?6BIy^~vjaOc z&gn?$4XKrE>#1j4e(<8-Mcc8k$_Ex)M=L4>wP;KH5t*{-T!xfrFP3_{9C5S9<&tJu z5Q=le+{j-a?<%-H9eBC<`DE?>(V-vX-Gx3E{<+1qrw`9~S zt>;a{GB#|os#{fv2OTHFmHd{Bq5_slZu0d7S4F|XKZAZB7|bN*qT-7GN03emM!rg? zxZ079_l2kwHrf#(B@dl15dK-h?@i3hN-1!k(E57A!Ti2UJ^dAPW!}Y#g8d0)KiqJ* za3Wl8`-&a>p37ts(OAJ)*KQD$$+skk4@ba(eMC+vkAWRv^DyEPj{hpo$vPrCV96@u zc;wEw#$AM+B~YP}F><3~X%LLblrrv;-?2zVwJhim6xi-?G`7R>knp!uw;gD3&>mHY zvY;fDm?EVcHlIwym(y(qAMh81&(hpn@di7Ru_`BttC;7aKj4)sbq2^&XE{L?5?_rDJ*4GaqfLBuG9cZ#cAhuO0qsGe> ztxRfVjKjXi;kB=LoN%*f&BE5P<@v=db}K;SJ4=GxwOsOEt}`j!nA@$dxOaY~QYxrh zhFviYDgB{LJVQ_s5T3BSp>K90r`GC3$6v)h(qdddMpV$mvnP|jT#63u{Y8y)Ik%S5|?~AqWLXn@-VOFw|cmfg_yXx zet}=5KJqt9YDI()M45a`&Y7B4(#wT*Cu8tD%x-jpOY^OI9S8!h4>sD@btEk}5p`Vl zARZAq+fN=vfc|~&^7w=z{(uxidO$^Tu|$?kkWICuIfI2H!d_Y8Zv+-~b-ky6_oKP> zRq&kw7jr<&cK7*+{aa{m#5DtWl{^l zi|~ORGMMjCJBl8rA?dcS3+Q?*y__Ypss(?m=&XN9B%e(Xz(}DS4`%=B+>9h=ee6Dc z#RDv>%?Rn>9$3$&5lk5m(&i@|P%+=J>Z1!M~*tDy-0QrT*Fv2iDmm7&y z=prsu6k8!nS9Zcyas^$^R&~BU$9`chgMTO(U*8BJ>n>lHOal5ZC^D%TpbW zJn8k``Y__!e{UU$(DMfN-eR-aV!m(&arMmPZ8PCfA81OG|+j`7iJ zW8$)}$IP9$SuN+c2;Vp^JS*ht?EwMo0c2DQ*KerhvH_2-iOaqoXLUPgm?jOd-PQu5 zM!&ap-G(JmRGP1qY)hD%>(?VYu$;HmG_18ORiwBTD_lOw!cPa|5Y>Wiz)Uxk24k`s z+X%g_r#k*jZm!>l#6;@O}EHZ>+ z9$9=nh1#!GUj-k#Ft@(`bHtVD>uhZ4ww#LY(^s;tmbc}U6s%M)ef<}RtL)l@S6^pb z{@M?5m`}s;%4ISFdlHZ2ExfwZKiYA+3Z_^jR^HSrHjC__?P~d|t*$o{-+@Nq9NCRJ zLYNHy>eiVgH&+pl2y@+*#PzlTk=!~!+r3=f_VqFTL(Rfb=xcCX>)J{pZ1--buW*1D zXZLb->nq`0vA(`3NnbN+wMgdFB19f6JYx|krZtn$OI)A#;Huu2^O^>^t%2lq69>*! zR`oyu`2oJm&uXjOyGGKp_FAu~mx2mJXTDfjqqaC4nG zU9Z(wyjsv;dF)rbHXvFF^=p2lUaIQ(Z6|`}x@u{#u)7SANzEbB!&3zui<@h#fomd} zSzO|UQn{W5xI*z!aq?E^)7>~lBsT9%2D%6YX1cHf7t(1CRn+!i! zF-1z#t{O3&-X75l%+wy%*T&7RFB zLZ`7_T(SSF>?y>^{L-BfCt`89(0Xyj{;y)pK-M3Q!*!u*_GlQF1F?8<4buNLa{U?& z1syJB1=?O*vHvTM0eRq$)4_#E)+nl`9=iCiUR<&Nt7v<5fbP(&k+eZ0z-xOU(^xOA zF?y1J9uNsh$4F`=6~bngryZC@TrW!EDa1x-;KvX)w7m2+j<_;ULqWm+V*66t5`Ez zC*g0(;kug6hDK329xr{JM_k3)BY$burNOuhSu)C5+o+J+npxJ0;UMhAbpde|u}kYD z{7pq-D-Zy2MYA-z(1?IlFjZSGZ<4ID9Jyy9dvQ%6uEH1AUz&AkkvXlb?=GJRJMbdn zDtm9v$WnDzC-I_DEyQM1J*%E|Md2wgeZ7sis;(UVo&YskM*Ej) z(u;-~8fO>4K~+=i%PabY>nrXH3|^jt0n!{qCzG^J z-mvT}Tf0RIA!D!w53KEW!a=H~US2g{=PKp~a9^O$wYk4L_g!_a;u_Y>cu_6IR->zl zSve8+seBSE+xn_*Rzu`id`fws=CA!WZwE{Wz;GleEhAY_VZkP>*l1UFV_XOD`Yx$E z(N2Z7TN#wk@h3dZJT%1^_BC|6CF(PSE{@8gZJHGT*rp4$-%0ico`vTWhu&8%9ZP@;QAuN>-;OY zj*ZFzOZAn|7J+J4A+{4Lxwn(&JoI%DJ(A!$DF-X)Yf*!V?$B9-^U7(LzAk%kofww{ z7L^sI-f}EA1vZ>RPq52`-(%m39hpAb%^x|G&5wD;G%~exQl)a z!By6K3l$ZrBp!G95^oT^f}W6|bU)cV0T!>A?GW{+e38cM&1diU&LKhv2s#$ibpj~L z=?D0FL%yg8?`&+VX0+2jeAhj602QJrFT)-N^dt0Db-wlg>4d-;y59yLe}z|=^T{KD z@Bc>hMM9F<0U|;2@rtBVue%B#_T*eU8__-9=joo(-Sb-?MU~@IPvoVl9P1F<(M?rM zaFLHzRa1q@E|@<+bvP{9IR2_qX;F}JSeB-)bt;24t)?Gg^DzH_mxu!gXYXV)sd#Gn zPIhfBwU}(GPW_t{$E5Bmk2@%Sn*+HYAeeBDzA}H8%lq_o7jf^>tTaohQ(=hkQ(}UL2or>$C{ONXg5eE>Lt1f7)X1+}++4pKiJltBE-c?oEZ<$ajL!O(+{blnie$Hp`vv2E zSx$NW)%++)WRAywy(;cJON}o7q|?fCA}!;XOU=y@y#zsu>wED=TiA=&$vR@|8yhle z*S^eC;ITb@ao7nnaF&a?fVjR+tGuRf$gu+L*Sq_3y7lz|#5I+Ys;-JlUs+)7rd779 z_4R>a$Aw7f>w}1EUtQb%%W%K9{zw1@kyk#v5=*3FOYx-e;%v7Z?|dsN-PRo9>n|i$ zke&6uxu?$7xeA;(rb}g$?PdeZR-`;t$||bm!d+8`u)1Q;0x1OrF0{_|DPHyzszZr3 zFY`uuL*GPa{YyHb-Uup%`4c#s9g>Jq?A>@}b*_TeyF>zxHy4tN5FsFzPEMn<{w33D zrKl0uDyq`nzLEab#BWJ%t^^ekdG7T~1D6JF+<5gOI_qCDt=d~!2|^C!RZ=!=ZQU@o ziC8N)K8%Mf{VTKyNu~8BZaVZ9H`foK`++N9z0~K5m^7Dka}}|2=zDB7IiFg(u^Nx9 zB$^Y~;$1s&)hv)5-O`;X8F~2Dk_2Zzqn(zswNyqsH`Au-^aE@MBf*n;7k)o1Hlkct zlPlTO@{;7$M(xzRyYrj|e?l=%C~C@PyTmuSN8|?|9i9k}zcyV_IQ<}-j}>pGFLFOE zN^~VQJDbYQuf#HV)q#JkSJZXb$7J4AD_bFJ5RjYG=NzuJ@hlueb1;*bi~5JrB?-iL z)E~h91C>Je3~I6cW7&WJ(^^H5(_?iZbxt5VfZdn8Z|rE}(9)NASyU1AA+phvA9)DGKjAFHnw&8_F8dmR#(<`k*;F?wzju>v zu2^5`>lt24vrv|DLEcKQ^X zFA(D`PJBY{^CG8pCGBy#M(}CnN#&Lkt+ZYx*|Ey&CBdk=n0pP~xYkTz`n;pBwQ=q5 zqYq9ex8O5SvNrYBrt(7uY&xw_LxFs>p_G4{l|H1MR5cs@dt#>)b(S2oDbB}ik(<+sV*zUI*Clw3{gE>B7A@qDd@SiCiDL1y*c(gO*DP>- z|4D)%;aN{ZJoua3!$ok-q2}zVwZOUuIyrKFOA6?-0Hz3uXGLO$fG z+(TSt*9PJbz>d7c*x0aOaC>xjaQEuC>@tIp@1?IVBd+~+R(rn!(^uBc68icI;@Y0n z=5u-I>qPUpyZ6p>Fb^a4g*d~j`D&nCmy_veDgjYQqQlq26NuzIo!{c)gu*ZDHN-Ww z5SOYHFo>Ps(h6jKkKEPE5GTVTFQlcG7>w|9@ZQ?retjKr6)`qt)neSPg%o2b5u_JGjWEu^pV?Q2-|m2zeDg#XYs;!5XhWqyXpTr3xo zzkSS!wg;y7aV;UP^7R$Cl5p76My_;RyHQ`uh%3IgpKhK2?r*W(q7=mlkSnwY=*TN9 z4KZ~sMD_r474aNC8YtI#^NK{+YAy?w>`si6^lWES;LR(SggbG6OU%Pqh^y>*m?4tZ zAmSULKH(-T5`hIxbZ}e3lLjl2a=ppztKeGgbM5#?z;-~yBilh-J1*b|0rl|#+Aavq zaF#;3?(%-DSRcQ8EL`dOyY0}B#r9Qry6z#a^7{o_biH_Jc#1zy%2o6W1lNxtuJZc@ zVdd)fcliY3O2iM)Kej~RJo3vBaUH%2xXM|*-BQ(h`sNE@2W~MxO-00i{c5DIvL9}U zZ0UspEa0qn4`de^hp|7Hy_05Q@?4i0Lh@uDMf@BgR=FGxKY}RpsB@qf)cG)uj7O8y| z{Vl=uTY&4Ac%c!Qg@;%+wXeIp{rU`l&cB89RraIP@hnpZ>sqds*1_8)EXKe~U;j4Z z+RJ~7vUTDx`4_=Y^X3HxQY?)7R>XB_+1V80FcBSH8zMz@T`S%I|JSjx;jyu>c)(Jw zxAt-UJAJMl=?cwExlZrn`fY)7t(F~)ZF)!UjvqM?0Tki>e(ZN}uKj*&`#*u>2haW9 zu5mH{5a}z-I*rNn({%iZNMvlBK)C%7y(GQ3e&;@}f_MAB-oZHq*K48UO84hxD`5n` ze}uRmOr(G1FamV^b-(|>cOkCw{W9qMHn#(GRZQJMqo=LH1=Nofei{FLfLssz&3pM8 z8_!~q2MB+V{{eA*`)#>T*I-{8_4O*BN$5$veE{08!oCWwpGI8eQdJbe)oBleh^vDdY;SFVpsGqaEl)oZ_(*FFWur5Z6Di-PupHLcq%o{7;B0jRST1&riSAip*B- z75eJ+-U^!?_yNSV6-MpcE4YTw4%FLOqF?ZtW8mtcuRU#FX}pa6>yCeja}8pgkn1bB z4TWtyt3Gci{9S%HP<`dSs*!N{!Q=I@Vov*i4U{WH*4E0FZj{MJQQfpcG9!z*KF41? zKN=|44Qo|19j@V7wV^1CD;swi;#_|mah1QmfUY+z=q3qQybP?bqnztcBChh+7wF{; zgL@B!NMR{g5jRJ0{pmi}cADZ1c_`OuzJ5#05B@CTDu4X7Y>-)4xmB%%D)yrn*PlaN z8-4@{Uxr9nxz^_mg}(kmfLtZ~R9zvG&Krt#oPz5w2FMlSy}67)7#1J0_5f>VP4Zv* zmjdM~{I$nI(j#CHG1u#y>n|S**YVJDy~(+L_E@-1gp6x_ozV>E`m2cRTl`%A&>8`@ z-jMaGW_Z?LLtI;v*81IHU1!AXE8`mDSpH3*T*Z4URA#^#cMtW_O#LpqF{q->IX%^)w z*24&{zuo8B9!!*rauw@g1lQjQlxtYm!_@l)!hhiR5ZAsxAyUE?lIP)GvCc@WFZct* zm9B>o=UWha;%~j6ya(nB9&|Q{VXXp1`S-x}^L(N}9A$wTA{$1rXxwL8ZoseDVnL1j zM#7enE#{YXJKoReQC`UZh4fWcxnY;f`UPx1BN12k|L$|`_-AMSuZ*kkEB=4`Ts!8< z{9hT@cX4Td93a;Zk)_;Rw&Ta>Isr6ZhSOxq@UzxtX$6+V@3I8+VDitaSujwlpEEWs0OAAgu<|_P%z7Qza52WXE#IjY> zuDibVK4Q#O%*Xzhz`3S%(}YOyA)*XaJO!aj?SD2)&ecr02Zi&21q)my&mgXHw6reOH6IJz zgWdY&o=vg#E9=K*_*0w>lq+l_o!_>qrEvMXTm+5XRZa~!uPRtnMAsEv2#{;fD&!Fr zAAndH)7%cc&HDfsDc85@hh{#jeBcNfom~D9$s1)`)yq~VQvA=Wmo`V%_3}vB-e{|4 z)B;RDG|VbSl@&ghkiJs6QMQCtxXH7d`u`q5fGE?<3e@g<5FypVm|g!#I>lGwYL5cjxIXXchEom>9eeZCFTv^fwrC;DI<$8wc>t&wval}jPXIuxl)ORAT zMRgCN1Nc_li4jDbRAT>vtNf|I3~`kWqTb#hHf?p-uwK^I)(vBuIIqkhGB!CnNp{KD z_2i!W#QnRmu;S-2!{kg@}{;?SXPCJX+0nyHS58^u9Z)i1x(RGj0 z&f;;)ALCb_L|ixYq9)>#xH9)o97w=vXFb5)Tf*Pvy@=}$i)k}`pn(1bPXe@^1>;%H zHNx+B3UTG9q#f$^TfDdEdkJ;SJx~ z58!SOd=LqUY{MRTg|$k49i8kak0ju<2e=(z-kOT?49Z1NT1N7=9#;#nQ=DoR$fCMu zRBaihv@WxzP9wEcbY0zUT9DHo;O{Nb&cbc(2!C-kEwF#1L%?YdaD9E8GkFfNAt>EX zHctSz2j0oEiT-T!Qrf>WQVUL)$A2d63+$Sl?)TPfsBR0%SR%PX;Db)~lSdLb1v9YI z=f#LNyZv=II4#--6y^2dk4=t#;z%+58}<=6O}W0Wk?R`b`s!%(h1Whd{)yg%JRuN0>Pa`F?y9~+ze#0P3Q`-#H{oTXeJ zY~-p!24M#f*TclLeJx|caI0P>3Ds61^jmqG6d*N3QV9|_3K|(aVoV*pWlD5+?~&bT zrO-uvm$P)8{F9Ab^O);_cA#yP4H;pm`Ur9jxA)K&cYEL!RQp^kksT+Nx}%|!J|?Mr zAH{WzDEjw)8GMWBNAzP~b-wX`p1dSZD}EV7Ol(`&kDq$H*X+ZLP${_ye|D=o)M7wy)d^ z&UwHqSBTV+mpr`vi^e8_)v;x(s8SD**1&e{-EOYm?liJkg_nNff1dk^e_GuAiBHLS zfTikUYL=*GeoNnBCRR>4!Ao^>{a(a1p_|(zqiS14IWF?)v8}75vSonlX!j2)*13vj9TW*TE@)~&GZ(e;G&<>Ha#lAi zeRE_so*Ew=6${FJlz)7p++1f-Wg_usNj#Y#*PllxeN1w$w1{kag|sYro&7F(tq`?J zX3NkuVM=ql6YWb?;VR$$gdNYh=IRaSz!|xC7 zs#{+#^1`V-I0mkDq$C1MeN+=RnTOtk_nWGFxw`fB7Uzof)ue-m5Lpwq$TN%`dZRATFNc&X8I>D*24%tA~9Y_OPv~? zl2s-RYV8je?#1;Hbo+)fa1m0JLMmLQW}TpvXhn3Vk35!nTxX9+Ut#TC!a zPRQmeyMQ2JqO!cWiuD`xHW(vBcl)1=$S%PDDmNw3i|gYk=a_7+vI{`Z5@eEc73(%c zJ3#nr22l@Ko)JVb$54j5{rVKD#V>sMtYMV?!`o-*4 z1qCkB%@z9(3=Wc9!kLPZQ?b-)mdq737&|YiRm&-hP8Y~2EKsR#u0MjxpVjS>T9Nmt z3mGE22=p{TCf!_5pRSi5TbWy%P0quie$LNSW+647g_xR}YO;Y>K7;6I8OI~5&h-nt zqxB-HNcL_l6U}B~@gzFwV{(z&)e(K-`ZZ$RS1Zn(p^xH^QIwl&7S)Dwb+C@3lRhTB zxROX&yAQ#O_lnxHy}IU^wX^7|82Io*j(rQ{U+$y?0W?Wu^0pJS!RlF zuFFnZ`kUaCU0^_aRXIH%QLfY6pYSQpb=BiOS*OYdtUF%UiXlSkprTxbpQhk?R~AGM zxr?#cA}(KVTk#P8J&W48@meg7;-jgQJsSV@e+mbA60+#p^a|03;<&0@rtPt_|xpB=Hnt!_Aeghj|z0ipO2V^UFE{ z*U;Hk$_m?oCpp(Z*KLH;yaHL&k9FccE6PVGaQ+FVA6uz_A5o}=2XKE&^kY>4HGpHi z9~-U~EaocuvFicw6h)k*eyk+dL4mU2c#`_Dg@z}W`{g9{V}qPsI!XQ5Abs+}-7jF{ z1EL=riT+?Cop^8vwhf?ZX#d5g6I8zrnpIn(uEyfp9 znff_DQ**j$*(APY=y_%e)>SLWezc#@(kQFWRj8@T=M84y#`(EebT*bv#U3zTt$0}-pz=+^Z9j# za=mYu+l;Li8nl$_^ggaQq!Vg#`GvAUPNby10d3Z?5UHy3d|q5}2nTvy<|nLN6_588 zo-ddY(H0_d=%#3>j54X1dfC>xD*jbx&r9v+^rNiBD#izNBoe~fY*uNM5S?`<(IsD! z5xtaINoKQ78z4l+z~TCEBUe1GUE^9%b!*QTlnp{6j@s)Bi!(P;=d92Z~6eYFs5*KpnZJM{+_gnH(LP3=vs(KlWRYzW&I6ip|Co$+`IjbkfHptUF$WkwNoC*y(r-B9#(I z>zV~YpYE57hFWmCw;Q@yg4rO=$8zP1a&yJ=Fmt)3_(Jmb8j&>qS}~0`V8ePAOP7vn zZ`ftnn*^J9`3NMG;Mf7aE>5(w@I1_zgfg*6F%L67EGfV&E-b*b7uSoZeA!c+b*|T8 z&KE*?kI9YGgC0$4(u=FmTUxNBX@c4_)wzz1Iq^u;uyniJ_Vr!-sp+`kjp(yv+0-|6 zN!vBdu0UAbWD!g(G&V>=D_gn^!OGQ2jeKt=sJ@Ezv7hFT@NV=dvi~ZFNLJr0sW%3P z$Ht{i`l9CvE?L)C(GGYoDtzoZxxAE1ssanZ@N563fO@sgS8{ovXn0j7Y$7 zB^tYz%1%n#j}zqY>K2K?4hdidY_JE=)^Y~9@N5vOP>&?39k{8m2>)L2NuEC_6^k zqBHjzWpl5v{a%J#87zdrlZcL6-{M>q&Nax+c^2YjOb-@(?j0Y$QlEx(@`CGG&h@zf zt2OB5928*rvWjAMfc3D19k_}LlWhlP_08}Z0pQ2%0PneSeGSsQh1(7=uEGvPk-o}K zhSd&u%^Qv&m@BlIMYlaC=%kOygWFj{MmRCCq_pxN#*OS!Fl07zv)jizy zmGujReU&{nh`EN1AeAU?|%vf`4}Y8MaRpxv$$>u(@>6hK-{ts%3#2XJLrY^&GG$5$-c! z&(6jlrz^kJ#|cIM74Nr^olD$VbAnpPsr+h+ZXfG})C^IqV#=z{Rgn9An#9v7|B?bOuJQ~amg;9ZS;5f z4~Xk1I7|3|??4elVq0}GI6N7mi5M2|jd6XHKm8vft_K3~>B123oUoXph6pRrnR#XU ztn;Q4=2da#4LRg!G)jCzc%sCdf|0`MQ@917C{IuVd~u86 zjDD_Oy-J)!|DTo!obk|CXVrXPUt8k1|K_ul>*+>2K>Y`VzRt|-&*AU)YFXdV>CUnG z#s)E}cBRTTl5VyXzTYv;-fWhD?jz4nvv$^1u`djMFE13#tjvly`)v@|O0}$EH*uLo zHYIxmcC&RhCNGxTnk%MyIjyj_)0eoC;^i54KK-`yX{s`9+_VcD!>k)d^BbMFQO0p( zp-t6Woa=esZhaF~?ggzE%BDL0()x zj&jIW*Y%KsrCf!-%fnn>KY_URlkE{W3oR<}e;uHF9j?Ikue2wstz5!iJ8V0|P!$#J zfj{Pd^k0bx$+iP4%TW`W19RDsnOHBbZy~O-lPh<_%T=_q{*o)_SILHnuuH^vas8{PZeQYH(J5b($z2=P7Qld3 z$jEwe{cDKa7bSCrS=dqqmL0=1?5bYSj1qVUpyGQrNx6#mmaqd~7vR%4FbSmzamfNK zSAJ38KX8%F$BMG9i3A)^ed?K?yZG5BK2@7kMA!Psg9*@A)$|$0_0*&6#f4X_zvB_w z!rZ{c{F@`y6YC+WS#w~3LB z)RBLZ-di()5M_m&r1w^kLrW*=y%k6L`i_TK9}J!9Cz~MPjA!wFtnw6Nn85ko!PX+; zQ+}p#dtfX??Eyt`kGsqxaHoFnBcDIB`0pP0UUaUXJemO2(CJH;oEv|g-@d?)Z^1G9 zayFMt563bYS&^Q2VIe!i7@vxaF)>peUkW(2AUP?;W&AO=a7Wp~8Hwo>y(%D39z$ZMD!fcG_)UMLUZ=C$q1n zm2c;vo5*vL>}x|iOR^n+4R?*I$@h*8k&X4TuMO=i$y}RI>7KmB%f2oJ_#|Lo8&tN{ zqI=1{iqJ!6;UQ;e8%W~b&asldsm@oyl`v#sb3FP5zfFxp{c~!zS`et~XMIZXac#}o zwjp*-Rx@{Cqi)ODQMSkZHS6sGs-N`p7a{@aO?%r`i^e9Q7bJY7OFSFbzTljHm|y)O;`-*MD~qouBAajOl}dQ_ z;}viy*UL&H*DnRhwG6QbLdcfd0kJ=f=*PZ|xXS+f6n0>+YxS-CXuB%4`87ko+<--K>f z9*hBu5?C~j7IY7M5`C;&V}K~)@`tUf#CYT!Gpd1NH9+~I6AQ#lBMwtz_7lGe!)+mJ7hPxzJ`o+ooFs?7W@It7lvVG0OdrORG{ftbI z`(zu|4U*1AVd3$<3qAf7>#N}Uv*?**+gHlfnTtVXh9T+2_2uNe=$_o6v zxc)riD%-wNu6N3MTd`|VHM=h9#q}3ZEzhB}jHF`+Y}M3d2tP)dUR-|>)#p4)%SckL z%h{12w^Ebw7%rJ!T>llii}l3N37?acYg)~RtvTRnUw;X)lQoVdilAI`M#UN#m%0s& zC@!$0m%jcoDxJH=qci>{DOcFfbSdYr*khOG#r3nOR-#RdPWhVTTqnY2U}?Mm*1qxA ze~rk!AO^Y6xqk9!0$5)K!v7tz^~Yb2W_Q>fUR-|#aTR-V9VVlbYxQyMvEfeSbX#68 zuD=SE6#7aeSGdk~JY-yHytl^rf?orc{rQ5<6bkFBn0gWG<*8)Z<5?$RzCdvOH|VFL z++}`F!hC_?`WpzO?D4FVFkc|{tHsUJV zzEZAXpDz$xe+O}uZC@$Zu+J9=uKyNs?avn=7%e1m`&DrLU6j8+Uw~k=ko4mEdnkW@ zz5u~!A?d~S_fh`-d;x;dLeh)tAE5mG`2qx^g`^kPe~0q-=L-;wmXdBic+7HDFU8Hh ziY;r;Ly%9ja-J3eUho?b@F^^=@NTYnJS#h!o{inUlUZx&w`%_8Y)Lh3GD~+nPOD{g z6Jo-z!)6B6N{=s_Kjp;HW35y%4}-_EnkUrWokKN0_`&GZ@Kk749Xj@vujdwj|9Cu0 zmY%lvEA&n-+E3k8n7)c}!ru(A`h(HovCt?f;zr{WPIG+~bA))DP`18?YElbvJ%{Y8 z=*Qx5LUgN?WLWj}Jkr<4I5|8{*w@$g)ae4!*T=aCJWkl2)aG-ARbS6Q%tx_q<6RsF z9w%&`Q2$O$;H>gQZNIoL;}?Dx-yk_XL^fbYPEs)S9gXfK9Ttaps;{@Wmw?dM-;>Pp zB#38mpjrD>=qny4l+B<)Uqck+h4u@kPruW__iozxf)5=h6m70MpLS05|7nrHS>-XX zug|hvuxT_+;Bmqh#kG9gPz|>w*KA{`uZH=`km+gf2yy% z1?E3pq_5A9hg@H;BCdUXZC97v`Z|QT&OG?}i|}d-LSM%wC&Qz#UiLMLxc2qcKYblR zT*1Dc3(&p}k<@I%_6hAi)p6(Z($`VMwXd)3{z7j1I)=E;JQ$e1I`(yll(q|owbARt z1z!3(j=1*q)jxfmL|i|6`p>9+`|bh+)o6yhrTy|tffcsd7l zu9I9X&#-Oz93@-PQdZI&pOacsH1gVnkRueiCMb#a{thU@Uy3q1(X zv&z(P?kddNeTeJpImFd7laD9Y>DIBt(%;m`V8KVZ$1RF-{UGN$&bgjPT%~nj`GZGF z5CopO6dNX~mh(kTE%QmC<0jKt`AlEMDgyS}zks-QCjIE#7)6ydxx#5F!E|`wVS_N^HFa5xn4wEW!r(hsu@bKUR(zdSL$CN^J7khQe6QV z8J|Au_`6&c{62-aCQ{jDabCtTp%rbFKp{OntL-L3^>vr;Bh9C_m4AY`x^wt@rnXO1 zm>O9QqI$nT;QRrRfa}Yq3XPxmT-INlHEB#fi5IJut(nl?nu8@=)*gH*^>ie2rmsv> zg}(kE;#vbBDPd|m;c8%UPIR1bR}nI6t)C8%>q&ZV{Y-#dPttqqX9MJV65dFRub6LC!><8!ISX_IqY3JynYGPo-maQjOJch2X7=8q|0>EQ-hTZp#8q~MBg=_wbg=O3 zhh!HNuzX5Xtdj>%SLgFN#5E?lJ}X(+g>P(#tj6w*K%7E49kX1~$}|b5Sil!HT+mzO zy}151;yNptYgon8KYg+8SlEHzL0q|MkoNcO~#Jki5A5Tf~)(9N--Oro|t9 ztXSDnsTD}sYFUTL#2%+h?SP2y@*CW~{x0I`FGaVs9ivz+X~b#965S%t3`WPsVVuBv z#(i&ZovDuxh=6a)I_}&Jn6;tdPuq6Lb!nIByjx&bjsJH7uOd;%5@Nty9pug zwrQsbo%1s}XR0MFt!_j7JX%uA(euBJE}#Q8on-am8bJcbWpkBX0D6`nlU`i0L*JNeuCfaV5+*8(wO{GKFz&+7 zKgW+j90v3FR}7-WpvrK!v;HnBdTJoIrL8Th>*$=H$(O3|&LSydsXN*YQWzsp9PK6e zS;q0ma&!HAs3KDXF;i35CMM81Ka=~pt`k}wkyf6cbw6B|o9q9G23xYJbY?M0$n@bt z+P*rM%4ItV=i)?y8QIWnpXbM^#F35mr8?{4c%0G_r}G1d>-DyYHJ5RST#v5n_7KTK zTn9A|K3dEp-qJVA;H|Z;msN9*fO~-kA)=cT*%fy=Tu-z1YmwLJ2NBmX$%}u6$k;Uo z*1m5%V?orXQl+TTv4P%YN-;WIdB0$rbNvkBN+j=?I|K!s6t4dgag7GX6{6=rceK1o z9Iv7wSbJ37gsA%!Q_JfXbW{0{-XjMuef=TK_1dJ=CmABwCYiqO=UOnT>%GfWQD&6s zi_E?XfDiHnf#cGZ%fu{e_kDidilUT~3S&BjA=tFQ&TqksiWWs|ZMWH>*OF#g5F2j9 z+{j-a@2X9{-CW;?xUOh<4MMXPZq!Kln^>8P697Ue-&S~vT68a0cl%YuE2VY6nTf@3 z$L5o=+OKI9UjJlEEB5*Z8{&tq9o<}?u3b}`Ig3kGwWL)nX=C-w^Y0dui z`&k1yvgnA*E#5D<$cwllrzlUUwe>KtJw%xHGN7-1!BxDkKHy0}&Pnjmmi0=MQ{kqi zy6u2?Z&4AE=U%^b>Bfy$g)TQOw#ggQs=cL^py8TVN!hS9h)uX%+lps=_}Idjm)4tn zfCF!HbH(!olw)wRzToDH$F+g$K%eWu^bWpK=Q_jvT)v4KUH(aD?;2(S{3OH) zpO0xB{4y+K!zQ#GQs535O|O>4^RXoh+7$(#E7-QUI#(g$HSSL|11IRyW=!MKUxz6HJ|5HARUm0<;p-f@xjv4#y?utN>!XkUAv))0@+5J6Cj!T~j`q1CCe0^o2%0P3%Lus+qkvX%_&uql&=euc93gq{c*62ghKjFoe!;ZaX0S zi|KE2^K$kjlE@`w^$X(Qhe2l!Np?QHNX#k(BML#=mHK7W$F)U27WWH|()UiU=k_WP zp)`E0SBUrKn&*B9!E*F9Hje>ga1W zmzA!s+;h;f_d;P}z4Y}F#8r0kBKYNl7aiu!O(~3NNjgzy(u% zoaXV0ALXTsBmFv~yqBMqbBI`Z2s;ptJqs`)FMSnzp40o#6e7;%TRKW|sx$2$uE|(u zd|>(kHclx1{>8W!g_nzEk~A=xZy@&xijr6E<%q3TwBDa7YTzu%#z-vuQ?B7TUIPb0VjUK%}gV2;UyRsgh z<~n*ZxyjQ`+;V1LMM*y^5&;~Ch^gMEGlsAvMz>39rNuJY`qS`v`d1*M9}~)a>h2-@fic*3?%o`}#{LXWzae7%e2d?CUSL zkiXMgk$v4XwY`>2qszXwC8g7+@XGJDufKwB%Sc`)kBSOa(#yX7Dm-D$zFzCw*LHqz zFZ=pyNKoItA{Z?sz3l6+w~)WnTakUO=({bOSH)#t+mh1hQ+VYE`^xq?z4|3;6yP(! zk2EcN-*cEc8%fWu5Lgdq6AR|L43iey^B>2)vVHiRJ}rHqhY{E1>}*!%Lju;>ECI4I z3poba4%Z9VlUPw6hm+Lq($ByMZ&-7Y&3jOfzxT2E0|W;EH+;jr@Ra4 z>tFuG`!g3ZfBKCQkcL|18Rd!EJomf!lRkmC{)yzL9|8kQ#w8bW4B}}!b()XAevX&_ z9>g_PwYMNjdz4738MSOO6bUflj(#8sS=b$oizdRmt3ipLrcjxnHZjsCI7hOo^|F6 znD>R?dKqz*U9X|UXtov~1NcUtmmDBj_5*SG=U}FL`rYRok|};}5OGbF|0{cE0w2jy z-T%?vyY~9Vx1nS#qs1ewq}8r>*PdlZ8fhg~7aHwhJH)hRT2iw!)ADqWRx&2o1Onk$ zoN$@j++bs_m|!krZo=U>gu@|(5R!kwVUCc58}|RIyGnX9)6!gBB~4Aw$KL7buCD6- z_D`>?URAxC(^5u~%)&G-gGOD4K56Lg@a^h!2$pA9Grr}wRx)z9UY5`GYQ*(OX8Mkl zZA|NAjFYv1EKI=mhb_zuOKX|6Lc_o7@Z$O;#C3wIlO!SjBF75BSRD!b!*wdFXA6Sl_$(L*LBNK<~<@t7CM?P1CHDSCZ z1L2s6e_*XySQbiE`+8+Q*C*$3g_WGBUcsQcw%}HHc^LpVLmYEZqihWuUW*DE*p1LG zIN*$a3x#-n;2Ol$kH3kP^3ZHzPEA?5O*-aVRxJwIN>^Cju}#1f;^;XfIoGg6uBx_U zv0izMfn5^0HiBL`*KUbi8$qvpI?8ntxi*4cIoInYa#dBYUi~mnL0oUU?7`pDo|x+1 zij8}g>wk6qgcmamQN(q_2R1+W;FsSftUG4ku$t^QFn<>H6w-A#Y5cK%#5M3|RrlN- zuHetYTn{0xfj_GTu9xO>9Y9Af{WJ3YyWf28yZ-a;>YkwYS=pRrspucr0RDk_<{#ke96uFt^`_z9-u(LOH68Q) z{r+XXiaAleQvU$9uZJaaRki+#_4*0+e8(hm#d_^j$f1Sx>Tm_7Pm{>C5%l_Qrq`nq zxi*4c9j?Iim_)9s>eZ_qdn4jX+p(Vz*p5A}sON#cw|Kma`x(zaf$!6&-H6(WSXgLn zMb&W`URLD3*1C`3a z?XAbyjhTq+SntH|?wGnRC+ePI6(d^{mH8^>>(wr}1-SC|)@yE^6nb?kx3>!01v#Ww zp->_7MtE=WcEOxPuByJbyxIi|61g^lUU|FVR*762L9e`B@N9`(8$qwUUGQfTxvHvH zulnm9h-)tD)?h`|3yv9?q_7 zMzF8E{`x|RTvfHNUiH@(OXS)Jdgb-kmq_H=2zur9*Oy7;+6a2(_18Nka#dBY>ma_% zfsni6)&q>^%O!FRlcZstAeJ$m(d=ASr_*HH+Pmw1rmWjv;I3@?ZC0szr9`fx>v5}< zKaKas_4*xl5wDWSHB4aL9nIF0s|7$%xwM|e$H8;1cS+=W(y(VpGHcA~gE5t+%44qo z%AVb8C31!OfI_3Rm&8xwl5xF$m+gL?M6Ualq)OwHFLC`B#`X09*CpXqxz*&1e|6`_ z@+{tjxqkeSQ=yIre#?&q-{leT8kg~A#P!irq0j@r{~g*>UcTj~a^n>jMAPf)B=sJr zhysgTywSn%1_tBph~hHyj;|`0Tcf612R9zMz~%ZO2H_ou>xfB4XZ5UR8<}YmU$AUF z9WX6JEbAejX5@00>))~T??hY+p^}uTB?+B+ob`oon8e20Xe?-mULGb#^{ho>OF~f1 zPGXz%yG|pRdf9<@A+CWPC_|hcNxba9yAfBg1LmR~umU^afzWf8mmRnVab2{JOtnREiqz%*4#y6#^|{*_&-Wp&Jy2U6n;^c_RsFyEwVNZ2KN4Yj z-NSgkA91Dat$2X7;s>~aay`?v0};ma1Bfd?lEYpH;C(4R<|soWfsT@eStRF6J`c{ zFgd+_+x9@f%d2HG<$95;S2{kEet3Kby4`EeE@X}A8Jn~wc970}d%MG(`}Xanhl0-v z1h!Cr)^?XG@7Hq16|!@BwNw(^gk&(2XkQ_lst;j*7HM5FGCQiyac!K~M7eHr*Ej5A zdi@xDQytS!OrO$nDSJN=6oxHK`p5hFxTnx9Q-yyi%E%?IUJtSx`Xu8^e`ZXgC2Z*4 zM+=!unYm1or47Ek3D9+UBae5vK7%EB2yunMD9nvbPRjlnO3hz8C*^Bhr zquUzkXy2#As;7=#x4L$KzqdXOJ88Yv`H()^H_#l^sW_1GzMXdLCYLLp5BC}1%I)h> z10snwmzP(NYKef;j@{yNeJK?$d_Ifx+5_u5(?5IXK=4o51n4?^k&P}_KHlwfi0eSC zb7$F^Rgo}E#+?O?s8J=YRb;S6PuWPhp69-|?q+)ZJo~1Xd@KvA?}1(uGg@X^x7yo% zuEln>?^10_ob#kNq48PHybaj<1;o`!B=DawUB-wcP1_P!$SPz_x$?LUd>s52WpbUP zFGl!t&=V(C;r4|UiMf7+@%%fPT$k2OY!N$SR2V|fjH!KXF0ij(MqEYPSI>)5U?0E zEazodO7s#e0j3D~{DR$#=RYH^Fph|#)h7A!+%_Hm@APm5c3}x)(H8FCiZh`fF0700<(^}RhwBMHuYZ(m|;;H2N*J@hY z9}DY7I+sVsY|_tvBChTpasP%1pR3WLl%LQU_r~l1kNf&xi0kpu_|VX3G16?qbpuL;Kb8&s?^6GXAbA1oHiyy5P*WK-VNlc$q zVO?p8Fv7;Y@%gbogPnX$>ChqFOxLYyR`0@Td>7si6J?k2-$<{tej9u$C*a1>b3q

    58g0hIz;kEIjF>a`xgp8$@Z#ku}3;>y#B`VJFV&uCijT&%{@ zj&D(gNz9jW<#ym8EBBX(tGkM~I zKOnAXv*xnAG6<7S%O-BOj{6GhQoatprrS zxaF2efRG#2{{aXdGr6hTIO?ii&Bt z#Lj$}O)l3LF|O+nSGU$K4oeu?TSt19S_SR9+xP7jSDdt*v0k}fdp+VB=(V~>f%VGA zXKlb-shXr-JFpRRrEbE&zE=GBuwME4rkgNV z>3Xeio$?2O^~%>Z+>E&fdgZ7p`o?S~>u|2yE;z>YdM4&d^%}IYD%PwM*MZG1h%&C*5m!3q zgvK9m+g|Ji*Z`^AFs{xSoZ$2JNlt9-E_A<{y}2T+hZ_<=WRw zyCQ=Xobg#_yY`i@8+$I|nwU9Z<(%?~|r8b0`V zuw9w})o3#t|H}IbE<;=glG%9aT!IvZ1gL+Y`7GBC@O8JYKwNutcS=P)k4Z1QXBodY zI_n$e+kq#zT>rqz|DlZQP_2wjp{)>)=+Y)?59m9LB5g)`J@wG3M^8P}8LS&w;e&VL zmY?kg9ej|2h0m3U>ta}&HfK(^n;`hNBmrs%3hM(`1$Lk$w^9k{+#+5d;AyW$dL19v zqI`ewT|R-$j$ZTE<=ug}zIf`K{=YqYDzLBRBXv@4@!)z5;yS{>R+w$WC*KMLn%BAY zR}P~Maoz3?iQ|WY?=lH&bLy{dMS#}_b|S82W)mbUAaDl!juh0hIuO^Oo>c&>%%4=R zJYF%^YbWCRoHFwXlI0Wd(rXvu8t65jSGm8aWsR_Y?vJwe)?UPQ#LTp@6?u~|usBT0 z&A7qSIsFAJ4m6Mdybp1m#ewu7*c)Gm!!K-0@!sM##3RYgl5q&K3v=fe>N>1Lh|Z7Y z@ih55MiIo-FMf@d5A|b3&UF1QJRaEr#5Fb=Z<~U3j51nUZ!|Ww+^=I_SwHtjSVjjC z*Zx?~=;#DF$`&H7rKpBFmm-X?aYSEXcOFGtw?iO3H;fH^ZMBnzf>XoII(Fb9e2hR zvwGIKto|B9Tn96j4&m6AOaVbB2b;?haK;t0c*Rd-T>B7L8Y3jX4(qQCfb|XCHzT(( zibNvWgyQIZk@D^xAeQ6iLsiXEFQw3&!dY;!59JY!gsJDXeR?^ zV#czc=M!2bvvIgy=B~rXxgG|t+>f;aS0#D)byHNDk*i#;7c%=ggt!(|Up=c`eqD=7 z`8f5gOI@yyup1izt{WNSoO%}1>tihYG2r@Rwq0D$Dy|{;e^vFLqf^hi z!qw~j>~_Y1>oeFkjphK$6=c(zZ9_P=lZHJ*jv1N3Gz1ePEKMz6;icS^s%dQsodsj6H-OALonw)WOO?l(qjv%gQ$pWlcIqM3z()ZX=#Ptb^-LI_MSzo}F zzQ>Lst`Ew(5XH*bP{5U1+8coDKeGD_2EkYNz&93frQ-{4M0&lgx@;T%EO)&2(tC^c zxBdy@%42RfJg5o*Y%b6%ooVoN#P!Mw^9z!@1hy1#rQ-|#6mfkh096%%tp!}^u*{ng zSG%fQgOj!uaHZq5o`Ja1-@&JH0%sI(JrlCf5Z9xXXBnIU1kMayLf4aDY{$|i3nvj* z?u!uxD@@WSlBP9fx$(=>x@A$14)mtarnEYaNwU2_ue4o|L|ktY1yu2Tsb7V!zr`8q zh^y$^zp|yxx>9r@tB}8!UZ)Y)ldEt|Din$J${EfeuA=WzRlPcKa~|*dwZF+A8i?yy zO4lr%*f7r5Hi?meI9jO`>CfsqjNl}-Qx6lGPhUEh(qN%qbzWXhKlc?b*J*|+gSbx2 zz|z_9A04EnIk)Y^VhIKpmXH)h7`epd$_HAQh%3`82$c@gLS#$i+vtaB|3KtSm+KoC zj9J9hT}7TiCu}hDuoA5}@!ptyeK$Mt7Q{7g%o{ba)Y59xnvsD?9JCQp;|IpQjraAn zQ6sBNn}8y5?CbfiUV9iL3vrE`DJ={3l@4?vac33z8c8`KsABr%-xZcOOE-b^ftD`I6TBabJ`YYr5X~y-|<+)xP=(Rks&U=f+Dg6fH z`m8*zUCx9<2vu5Mh83m?lfj;0;#iwwT6R{M__`D&w*#+XT%VoCHL$N0O2tV|5pu5Y zWnBMk8LokSEuS#9ub*LDpR+vIz`mA=7TecvGOoAhag}RdX_HQcmH|Z>xzufM&9Y~4 z2jc4ZU#Yj1J7Fi`#;FT7s2HrMT#7LA1efb6mh!oX>);ewFmo`kz?z}nth9DQCx*S~ z;9fEBMn34+S2j=n{S3sPBd%F!z1uUo(_1o|HK(&$nzp@2BQq=K-W{&nT)p!7vCl(X zwJBTAQnJC{eK|N6(@?)lgz5EBw)gpnD~s_oqrrd_UC%gy2=t)uV3FT)8&s(g)^Et? z$NmN4TG+ou9sBe(ro(hDvRtOYerM)ZDG=`1TsQRp8~rIX94zq0-<-j00{;yN-h z6dR{?*R)|-5J2a2&@Ee*ZYaXYcGnJkis|*mh--{C3G{5%%mzfu0?HCO?N~N0<6*}2 zC5Y=7j!#Hi2Jo8(67;Lu6(++*B5PXaluc(KC(V-+akc=oJyFZgVr#v$$S4*T0gh zSCzs$Ej|RgjtP&i{cdJo|2oj?BA;qEa9lFZ_2o#fq}q(jJg*%Ltcrrg^#P0N^_3F2 zmWjXal3_bA%ecNOumd$eM;dQ{zqdHoS0laFTtJBoRIO*x^^Ev?E64PDSD@DtYAAhp z3#w;vuCI}+R~27dA>1yQXL@~Ypx4rZERh1Y3pm%;Nz|*V^(-n;J`SGyU*CYZy8hRU zk(jZ`v_6%~B=t<-F)SfgI7|^nSRCljF+1=^#5JbbddAK^Z(7ez=`$%kaKn~nN>e!g zS2oY+pBUFSA+95O&hfWGe*uif&{Kv!X#is~p;@*cecvVhucQ@-v+hG&U4IsJx!8dl zs{$2MgxsI?aaJFAFX9^bvnqgzl45_>BaG|&5Z5)}&+2NgLywl1KkNO#HSlL4@l~!%P`?tk6yjvyq- z>>Y^{dd9Em+@UhY6Yi>a|0{2AeHw8k%RZ6dz)A$X+FPFiu7O{BC2FOQd9}Abi}YGL zhuTs!QhV!jfnIA93!LrM-uk>;y*5mH>kENiYu2k*d+Uo5^{Q%n%d4OJOMzZ%)~i=P z_m?H=Rn__c_Gj_=1z!pDTC-lUedS!gDp#*c)(3EVi}!Os9O$)Xy?XU?|2@(xskwxe zGf=fY;P_veKZ}ol{RhMqjngDB0eMQ#W`YUbD@(;WN)dAZ>*txD@N0-`;D0RxqDKk3LN?~s@O^YKHk?xx(?rEt{vd z4B0L{UVCJsKVE-9V5vkSm%Ci|F}?m6ag92wZ^CM3TGCxMj+lu=E}PYp?f!uEQ6p<9 zD~d3}){DD=aeXY0>j~Ngn<7(23RaL_T<4IirJGoT*W$dl*nF5QPSl;F9n?)$EK2YAhtff>P*p2htG|AX{8n3>a3MiQHWAWmT!$esECi~IOGrq};PT%Glf2X~IT zmDe&d43anmocaLM>w6g2|3h5I_1Tn`&=;#(;b1}evXtYrW7+!LUtnB+iMTp-E54k3 zSvgjg$m_keZ*TptBaQpF_iB_eNU#6O^!ociuQluS45U}i^$&9O+Nq#<4dL;x z-(!0HW1!cX^@_*8a;~Q(>Q&Y81Dit^FRpj|?@X^v(72UVf4!z=WvtB%uwFUWb<}Af z>7#0WU@NK*{DA3oy+plAdVJE0*@o%^oa+X;dR1~fA#QK|nCW$6px2u9joVwC>n4eM zRkc1qt5m$d;4he7w;--Te?fK9r3fSEy8SS(XI!@;uKE21K^IK9lyQFn@8{lzxCZ?N z<&w-#=kyn_aT%XsdOZVig|6)k$?G)mcUYFH{RP;*K96xd6LCF~na=4c8`hAwNPGd- zkWZ7q801US^A|Z=bY|q_-9_cXB_B#yLax} zyK}e?^~%=Wz+&7V``?V~xxiJHKWh=NVjG*`e&$229pGHgLwXf`yQ=!Luz%o}Ot0q$ zdaYSb*gwFzULaSmO7?Hz{@7nJy*@6`Yt4Ga{jr?ug@Imc=6WXTFZean>qUWHYv#Hg z^%roi7YBN+nJccp{)XxGl0dIDbH(EcIoC@i>Q&YL0<2d)PV;h!dNs2(OJhxDfc46` zULjGhjWquC@e=jACdKB%Md9`qAOHFUiF#GlKY-g?e4Hi;^jfoGaeIq%ZI-K7CH(_l z<6o}~^jfoC@pwW${`H9x^{Q(9)oc7~i$uLP()ib_CF)hx`heH?*C$ETYt4pijb`9A z{yALLHUAah_7)%i`eccERkc2V$7k{JuVKVB7@t+0bSXkUK8ufkZ9`mx z@mbYz#pAR1_}6yCH5i{&9alU)i^t2@iMXzr@mYuTY+B3gsO~Q1pN0Di_&B0Y;2Mn2 zs_j{LjnC>rdaW(@(q}_^>sl4(bK~(@yq|klpx4rZD3Jo!Upd!qxq4O7|BCG^@8{kf z=(U6zOCQGlv7GB3iF#GFy@mD4`?>c@)N3P+AJ`{RuZ=W*V82AYmbO&&nF7}b`1pbA zB8n5bv!@7~-f#A&~ z#MrL6#Ky>gB8;&3+8&=L3USa`1R2{F4=NJ4N)9W*U zYtRo%&;>Q&Y8+8a^4;{RfLoecC^n^@uOO~}4-t_g{HRkdA!{o33=pi9(i zBlxvB*C~m5Rn@PJ{e(Yb_H|mKUTZdFYcvDwC*)jb^pqVx;U<^sTNzgqadnrD zttiWi5{D~FT|bE(uAB3@&LXasoi$GAMA!|5iJ3|Y%YF4ScIIuc_trg3ueTtsT4sTq z&=<%_y6$mS*OCkV+S%baeHD)Nwo#|{q-okIQ-kiF)dS*F$#liYNRzAAuQRSTa6Qkb z{2Mi!O+b+M7jOo1z*W{q)&7Fbp>3f9Ay=r6oj!e<@;nJ#gZ_frl(hxv6|g#7=OyYD z{8`;9&fD0E^!jtgbs^AeZDNJ9w|VIGR=Ijra-8O-(4~v^bqjk+&yuLu_L`NkHZ$1l zq1W5w>QzbqE7t27?9u<3M7^rpzqM3<<@JH*$knT&^Ej94ufJvWf!ihOb!}S5+OKM> zhkd<6u3nWK2fq!~Uw_B+`rJUTH4F9(554}mT)iq;f8C7guQcX9{X9>iURABXdie*Q zFITTh)?cY7D{?vY!iGX0VgA>@KwNvZOvbbc^){2KteGY=S~f{L6Wh1>>)>{-K%IY_ z{@C+euHRr>Ux2s{W-L8xvzZ%C=d3#SF7i&+)A(>(J7hgFKI;_b z7sN?xS9@pY4x&<5jAIAZyIl9M2lyhyHGV@}Luog1C`iz`1&V&hI zf)N@4)RIsk0Y%8;l)jjqa3|s#qk{bm^9I&vGCY5ak3oAma1F)})b_ye{4LJ)6-ckOI?!tgHI_b%=W}ze zcS+Q%((_@?aO+w9>@mC+aUJX#?im~iT!c7ZAl0>;46E93et#`O(|Yk^)# z73doBly$Vffc3-h{(?6mu5Moeow*@Kv0*Ygt7i&4g$g_g$4|)KTOVh7y&G{o+&4bb zH$+I#Z&2C8cJ#`)?q^)zjJWoUj!w9)tmeuxE;DtQ^pE%Tsjb)lVO-yWxCVMHQy>M& z9KCLH>jRyP>st|5u2(T?4TV6jSzT9Kub*OE--fsbdMyxQnLn|8eG23HcEpwI)y#@f zEV8d1?Yot6YdbUIcsxz6*LNbWyuX0{wL*KV%%>G3Tj#6`;m$00AJgl*5LeNJ^7OiI zcet~?LkZEYM{)H2n{jQ&W#7~F68E2h_b1HINJRyZ5? z8*;Aik*HVbhf#9g2JScfHPh>TfnICYEABVsT;Ch$wPvmxP<`MxOt0??^jb4l9Jicv zeZNG#s@rb}e(f!;-{mmV>jx3nJ{sz+xxJ(22e?cIs9ivt1jQ&YD7H$^|Gk@0KA+A!}1-9Dlf-ePjpk_PZ)h_rl(re8Hl*piw z+67+;^jbm7>&}(UMB~o~` z3;sc(UK^oZFv8jeUqf7FwhMH{+Xep^*ntv%<)sgMwF|zE^jbQH+EO%9yWksvUTYHz zobA;v_@+d?Hd4FbTY+9{)~i>$;L$*@HFNc97yMJ8*P6L{wF|y2QLn1D3usdy!s6_Y zv39{fBd+c|BU1D8YqSiUei*in$uY+DJBaImVG|T(pUzqFHPAL5pT*i+R<^VLhiKvX zFnk=*zW~=@K1^+YVP5U6?;^d{mV4>58>zkZuYq1m3!+2{ulCmWB$y4)N0tPM`QV%Mv-P? zUzTgde5ySN{V>r9(%RWYCJno8SB);dd(4&B2mY`MT=yu(l}eQBl~dn9UuNtxKCVUi zcJN(30jEEf*@6FHc3>mon$1SF@^h;^CD?)ZU}nm+^n`5+jm%N`wbgRQdZ-Uv&-__G zU|csNuBYKsOa7(K4U?7}nSwK-f5Et(7jP{Nu0#sD?)mlXz4bN5^#a88oD$~; zhrJ1GhWablE9d$+#MSj2c%SRX-Z0VUZ9S8O8rH0qwGG=aGsM;=Q+4j;@#1H}u8LOE=aV>*(lQ`WbAMNq|-XA{+Ck z3_OguCX!h*U1nZEGE9Ih_8aoO*YOSbUe|Q~`R814-dSi@uvrEHN3X2@x|OBBzKrwy zN)j`s4O>f*_(FPi#)M%tmVQf4&m?rxIzAZhC8O~jVZX|fnGbzc%`>iBSiupA7cd7N zS6XFlN!BI4Wl2%4yj`%3r884CRxjn6vw+k@AV(4!yDOA!1hNx*$?xmo*2Ua_O&WLQrcT9sL@k<*IxdO5nX@67%2 zF7z|lERz5o?{a;}bqsR7UV+Z#HW%&kbu&6PK@wVGMt3S!VX|01sPAD!(2hL^>RB#V z&hYWRl3O{m_Lf|j?CGYXU*Z4hHt0e$w9Lxq)WcC)ABdcn@7I0;x^QjQZgce1wx=8J zy=}72`$^HQ3Ergk^^&|Yn$fSoz9JYEY`XTeAy3pXe*O zl{3TkHD%a#N>{_gI`;MaeEWJ8Lh+}8fkiYb*#!H_);az8bKLU|(Z&M%Obm~cc;BHY z{~dgnM}Q)XT;b}Ka~(ijEqz*ROT)kuJ=+Fh2y8vw1|8pRGrE@46`E#I9;}K|A-%E= zm_fuf&}&677Zc~{m2rJ4;u`365mkj7NUy9xz}G#d83lT+5GPBXr&q>xD9~$lF!Rn@ z(ktKnTUz;IpJRiAO)(gF!hZ+ff73O+6R;q9&8A+AWe0!DO#G5G`H z8hO*MPm3J?I$~t#FnE(3f&d4-xk>OB8dicBX>A&YXdR37&vlY1Gn>}z9s9i=nKnC{ zGGL}6j78cx-!=`IBp?%77xYRkZy)U%h+OQ}U-z4<+g;GPMaBd zS6H7VVZ9#bw}AR#-ulMNpU!uS_+HfOF~g`(s?O!)>-D5ztiDv8>+;g;I>a^5YjtY! zdT*^qT#-qru7CzT%Zd9K+OmbBJQMz>eTEwm*VTV-b=B#63*tUr-0oDdC|CN~jJO7N zz-3bDzlD0e7&36g%Q9Nk_twf%b*^yjzPF0?x-HOarSkMh-&)jf_(GT$_uC&mbXzEN z=bgX((Lv|icS6QFd#Q`pD-R<30y-tVqz(wsq{&>QVBCe-y3w`{NQx64G zIX%d&w2O`(m=C!<+#Kg8_{K^n2FF$;;P?laefiIX0j|;r?FkOMpfN&#B=4GQ|+7&;I1n$Ptsh%4yToYk|?F$YWTxC69&y^=7rw ze}{3s{m$b*b}of~OTDi8F03iEmArzmK?*zMjF+xHySMlXDtGc^r-o_bJvHQ#>x?2f+3Boe!P*`oYT{rr(c*LZ?bT zpddjWfhOn~h-}*EbPIl*>GelQuOqPu<@)sU00{a)$7KLlC-+~lcI=N4*Uqk8-Ti{f zrrA#9vNnV%g=a@v1r{Sc>-7-R0ph(mL*1xesh8y^h^y!eYRO$MGu*7`+gZ%NkSmQ* z_*02okGgSnuaDIEdRvP?*#_kbaUU1;N(UJK9Jn%5yZBvro?pMiH*_6t>o?RHIIsfO zUjSFyUZ5ZT?f&xr-|&QP*|d`Ef7Yv-<9cYv!n!+)dZl*Y*T@ct=DMmkFR<_pUv;mprdfwuayvWsLKOIfnMo=X`jK+Qdfg89`g_Dxv|htgDRXvqfsW5o z%EoR0J8%H$m2&+9;>zD&R9nHPd;%K_>;UE3%XCl4cUR}0jpQY}5>tgE9%Hyydam_m*;DY~#@T;}rugh1>A%6J3Ieo0wmGzAGj+94n?V0(VG5nx zdUqt0>d$j-O2R*M-ZA*IoRWCks#!w0su!^ixI#NNkLwfBO<#$&gU#{@tOu@qy|{DO zX)Wk8)y!85HbVi_81fzmYFTGxa&gXRmv@6&wgMgP_ z@mkq|Udw>!k;F@{Z73a$0~vfOC*Y-5T$>H_S~*jChL>J?5ukpR$Og9qmdAm<1aXZ$^{7y$v1cC5k#sI) z8?z}I^9WXhNScXUTF=;J-GJk}*g2O;wkMxCw}#f7_2PP2KG!2<-C&i89Io!_8fKPQ z5S^zoy!FKOihQnvRU#|vG>5A-qhjiJ6^~ zTJ^Ka=qoD11`=~0%ekmjHqR362{y|iKwAX7KbDWj;JT&f6Z%i^shGefID^N}BJ6BF zPOIX~syLyQ{XvixmDVnxAd2f*Jbn&6Iy81TJ}@voK(~WW`2^@VB5ntGpUbUK`TBkN zSp+FP2+(mv2iSTW{JnJ>a1B1S5uko;&XusNo*i(l4Jw?y0deKyG5##zS~J&;h%4_W zcuv5zX0DqM*S##a+XJpObKQ)%9%Q-QA(87-&0IDE>%&YLDZQGT!Rs5E30t?@EIX@f z>1y)w^Bn5Kia4vAhC&apjGrfwtDc^<7yP`THImmBSkI`i{`!20T*Jhinu3-1suJrO zVd!-kUR?hIaYdV6r`Nm>xMmc@3f8q)uP;C_`CN{g0WOn4m}uF=41~-`E|Z{6ce`BO znQ*+n;Dx}IqvhYCZZ8a>h_sYyROvW(s#ljQ@7MZEsaz9gdN!+DmTGLlp9QgV=w}Oa zyu1{NlxtX&URBMPBIN5tUCg-hc+m8oKmUB|mm`<R=FrotL4U8` zxvqYG)St!mdJg0IGNf10SD2t!Nm8FP5=zna;(90IiZ+EHp41X2=+a)Qk@e#GR|qEU zuNC=eB)$GM;);e83BjwbUe5^~V1e@nn0Z!u6N1hs+eVU9|_j$9>(=G61ggBUfFxg)$3ly z^|cbYQa_=sV4VQ#^?JtjbrQKYLVe%> z^7Vm!#`R4SxvE+paMzD@`(e2F>G)R~O!sau4?$2}PNlMMD$U55IFdss^em*;w3Rfi zHfQmMY-Kq&dTJV{G+(a|A+F9Gj)%_Q*yxlhy?-ygehP67^jaxVp1xSGpFvzN1PdFw z{TE$4b?{vt0WZCN7I6*qS{}#ZRKOdHc6_tqI|J^#c^}4e;|4Bmwxv8 zSJwJ>(P-ym`|9={hC(=Q&R3f+|Ku~?{E2@N#pP)>naFAxE2Y_nnW=jEv8cU%X zj-%Y>W|H&O&b3C_G~A}6R~A>7&oZ1q6lQcy=sRQBNMudRoU%y_Oe`5p)5yB|aa+$M zS9PKs)f2){@us`Jq5GH5?Z6Ec=TiL%VKTWuTH3pI@2My}Y4rt4I@2AW#pWBbS+P%- zR5mRJRi--TTT-c-L?ZFJOBF@A@_0lYjH_PiBp;7MJrLt;MNTc{(UA?+3*n^Dg3{D_;J4}YmX&$2xG^>&wXb!ntdl=VeB9_Rth4%Wl z872xs1w5`^p*sKqYsMJYl!MJ31Sg&==ygcXOxrW0B}ayP{Ci}pniJ*P%*GK7Fs_-r zD`JBT^Y;1o!?6RSQ&V&_yh^XGb-=VabcR#W;#_ADHh5bLtsaEQ$S5_jByLP+G&`3S zS{k}B!JCvT#39M!dJ8I3G}r6M(C8slo+_K`f$IU_x*qH+)hlgtIm@iDiQJ;+bB9SE zcw85jEbL)5EG*?p?EsB4K)GHH-_MpPnlKsHEjI zXL{YjxV}u{orP(w6&Bmd8oE*rEoU8*&F=hya~Ri`Bd*jB*=7iJ!J^XC*>v^l`Uwf+ zDzh^S;uEUXAYjtKb|B2SzDA;KXno+8oI#g0YjNs#63Z4@6t)8$jO*)Afq@-BFe=!@ zcHki6`i2V5uQh2S*nuI&^-Z(8x*>5BzlG_ZBoB=^5FX{6g&q-K?FTf)5*>-9>+_1MtZu|ThtKL#(o zJ`r&Z^jbMn_l#n_5|q`jro#djCSLj!9j$$Hd@$ZiU<_D;2!swFfV$(~ntrD+%$qv*Vx)mw8T;10a zpSQ7topJk$XZmw6qou)>b!CfnrD|N8=)8?4TD78F=}6co`-7~kT=uq28a5qMsAUa% zCaugm;7!nTSjhDnM1<;DYo+)VS06N5(~z> ztm^1@|L)X_Ya7ZQHNDVY|28}KxQ0MAuwGoT7e@4W7Z{e6)?#|f*3>cwUR-w~IijhD zXs>^p%W$px_Za1RprAg`fv}0@n#-KXm?vREoS98)HY&L8H;da_I0zYSZ(VR+6CY^g z``vo9w_p{X`fX=%Kwj;wUHqVgZ7W=@ccw9)XT-T)E0HVc z)d8!rUe9Da_e$j2NoF85L6U8Qoa`_R2eu&)fPQo~)W5e;)TAWkcjh{eXPkNO#osQazReAoL%BpCg$ZtjtYX zRI{#BubeB_E3a=+oP_=(@I$SOdQ{!|Yh+`-eZ@|e{=uO>B9Ln`m!4J1urgLyuY9l& zuW!*LgryVprK(=N>RHVQVtgTE&vdtAmn=G3`=*n>ZW$ICHj_CRis6pSP#|PiasBl$ z!WA8cL1|-I6YcVK)5*U_ql4anXcl5TCd{PnYZ0rGSySj7+RyEj&F$(Cx{{-4Tf}CV z*f3yGkxp0y$cyVRIzETCMQp-4(it_$7TbZxA%M_|9UmQxVUvrF*1j3dB(o-j&zdw% z+elB>p5YqF!O<(LXN6d&HeLl{X!P))YbC^7FvNF(5}uS4ll$uBO1VP34CexP`<1s3 zWL#C4oB$`Go{~|P%ra=)N6wYkTQ8P)0i>0N$>1XxB^E5WD6CgLc$oVM1Q+dOA0}BX ztzZ;rtk(+|NHBbO-_uBj0U^s4KBx!9`)c(pW_F!@u2M zV*hOfyPF4(!t{Eqt?epO^hpEB~qHX`HooJ7t5N~g#^Yge}(4oA%$LC3&!*u%*X8SuU>O@0o>-cp0Mj)qnL~r*MiOg-n_-9`L;b`_L}M0 ztZva+-3pQQ;yRm8jd>6Aclz~fTu+$^XU!djpaL8(t~g#XBoR6_?ue!L!vb7-Rx#O9 zuJi1@#sA=C&ZAtKU*OkYz*@+a7r>Lv-s%Ld6TF)wozZlfBst}czeJ$vN zJy=DyWuMYW^{kWmRJhsA-|N$_MyhAc=Q9iHS@}H5`sHN@7V^&w>RI_b%KGJ1&$_j& zGyO@_NcF7S5HeQJ!c#lZ(b_i)>RGjCxJGiIdgbHZ__z$b-Ui<%>T*@_3l{S6;`(PO z5uY=QcKNzVxvJ0(D1_qm-g-`cqM%)n&!engUR-a_Kl5PzPk( zzl!}Xmr@b4&*W^%u;jq1nzMS=UV!jq7IyylU8t1&mbgY) zd1s)Oz}U#dp<(z()TIn-i80N{*u-#F=1yw1CaNgO`7Uwg1>^a#V?9IBu`zzc|L-w< zauNiqfou)8-@yMeRwu_|u6LmeIW%&F*jg5cfI~-X-(>j{Ba_JLX;?4{V!>J&ZPuDG zZBobTZGvu=$oc2y0eTJkbyG*%zNfc4|6bGPexakaZ!WfD6&pw7H7{-ldT%vfPggHE zAZ)x#BA3mAN{N<*{}MCCT!mvbkpbB`@8e1f+Rl_QxwHDvo)lqZYySM$4#f55o7>|z z49EKVYnP^H4p}XeG}BN4n9M?rz%xl*?sT}G<8qC$JLvM_O5&sA6Ma01Z}+M+SJofP zp6iQm_Va7ggRHSqt^nid-J%SgKD#jIDFec zTsu|gx-XCGxw5!+sm^tO9@h)xaP3md4tUkG4kE72*V{8jMqE9M=FV$a+^`~vB8nS;pm~h!n6GPeay%V zIz0v45GX@-i7RJyJ_igt?m2k#$tV23=kkzcJc)1LW6`InC|2N8%=JPvf^b~RHeb3K z8C>6px*3f}$Md*`$s7)wUb3`&|10%V zW47F4OQwUob|xlk839<#^&;0D>y$lqxT8ZfSB$dc4HqO>yIfnL9h)C{a67*J>^J9Oy*MqIY%?=EbF=W)(ksdvbDeLS@=da}=TxlMEaH0jP|wX&PZiy4 z1&JYl5_SLd-9XS4oV%8j(l^q4$OXwe2Q9=^^tDqL7KD0SoXSa3`kbC3E$yB4-a%We z*M||;q0o3pRG%SzW<5Q6578lt-U;@m%4KvIO0Y0n=dmDZyo~vfJHmyJA^v;BRkU8A zUZvzp(v&M7uYDDR_z2=EuIB0%7A8|!Gh?^eX4@o$kP!VCrRDF%^&b#dp@THxF2jW4 zq*xuk((YSyLD&vFnHBam#8q_pVThNLtpBhhMVQ?BfNNiQ1b}~($h9R|*G|?Vo=ZE5 z+XdV30x{q~c*{qwdUz?lzgy7+m{*8eK9SAo#Pw`Z!;mYtMVj9((A?bGY-6&<%d96PdIF~k+*IylllDlA^c=&YV0y}3zPzhEq-EdXD(KEz-Kmg;o^ z>X6~sjr`K;=)0I}81=)9M~_8et&ymx8yZiV76nS6AW>zkPQJxlyAap(Y_7Yb)Aq{^ zUv!JZV@KMc0H_aWCm@1((ee7-QOvaualP?)^oG9SBSWI@FFp&A-mFnA|Y;d}W zDoA?1#r4;lP`}|fAO7NFXI~P1v#85Dq-E1E^6e;H^q8(glc15`V1;gGWm^}WTgx;b zcs*-wHr+Pun7vs6jM#cjH_YItTmT-G1r^X4IU(9xW8|lpk2OhGOn}?U-Mo4%!;`t&_#{( z9T|@f^@(n8jfg7&-Hg=DC9Ztz;4P^9c<)$WudvYri}frhrVYwrjRDfzH$pl)_H^%u z#_8^zgYi+)+1YXJuKoMyPIPsl5VHeT0{Y2>Ip6b2EceF}SAGU^yM%gSr^vt1o}pfm z+4EbH{!RVb5w<=z*DIc^<@O|qyR7-WxYaDK9N9U0amB+lv35mVo0giLS!*?VKkn0u zD;}na8T(OQVIH8@wgQt`n4~U$dvV>2?gVe6-M($YdYr!HwU#oXT<4j6<^8ezTgG+5 z+T1owc6A-EttrE%on3k+X=oYLRa=jPx{K=rXXOJGS|w1sKHw^p*9Xo80}&SsTve(;YedYs_}h^y$${Cd`;F|9@=3$PW} zv+&>kq-|wPb50FoSuj!%%*f$n9d5J;fl ze-U0>&p^feSOV9c-uM_QQi)A3uG}8b8+=Rx*SMZFU|E>ff!*pTmbU--dh(p7u)zWz zO0*YdVX*dEn~Uvnp%w2cu4iF?)}h|4v1F2tF;WhsXh&=uQ(ixAM>J>5=p5VXtJ%`qr|^k;RQ zh9D4HlCPItMrOra--*t;?z(dZ;{E3c8}CBn4?qD>8GzQZMdCIMOG5h1Y+AGHxpv^x zv$ne)SMC>h7jWe^;pk26bj7%5b%%F9TZDaBtMj&ItXd~56zlaeq}O#H`Cy2w3kjQ3 z)tl0?5RT}inLS~Vq>-=j;=H$5yMV6? zL#>;$i2Ui(r}?+YYfv$7I-mPMlRFBlo9VTdDCm_k+E1>8*u=Z7D=R&5ji;w5n+x>% zEZE0&%D>n6ZLGP=^U~{W60g$L>mDWb%Ka`w%nm$TBG=Y&eXhNwqbpa>jVljc_`P+Q zalIX-+l97+&GHFQzc!Dr-Osq*fle3PU4TkbYm;*0TzNg~xv-DFulTp9yS^!YsOOsA zLp@IyRlq9cOSu--2mT!Pai08J)a6mGsxhUks2$*3xgB^Of*9BV1fzmYFFWvjIR7DN zYtfHzy((w}D1I-le}TAizBH|f&rQIUjE)T5pqMeBRRC@Wcs=U{2w+gpLNF@Wq+EG@ z;1H{4y{LloYfX9+^1D6w9D5`&Q&$Zdg=AA5ji||8}0UO^QPh9 z;SL2WT3%dVj;Qgm#%PzXn=aRD;;PlOytuvskrO?38*x>trsc(z$1kUNMUOG2^?_a2 zObib9jVsUfRYGjp<#_^nawA;5$hiikh3+_VH@SJ(H+qX?u zud2PZy!|e(LDcY^d9>TN%|))tSO6D|mmPR5qIL<|7O_dW?rsn}@Hzxg^!hLkR|Olg zUV42!;)=(_qusu3E^=)EJMacX?Q*m&Vv}(_GTbxNr;<7F((4-$z$?(Uh)v8@rPiz$ z*Eb=6k4M`gHjB6_Vh_By-i-kM-W{HC8tw9R^QJK~aYDCAFU$v8gN83R5psPoS8^9SR)yR%Du zu5>;(|A-#%!nk%0E2UQI&nmV9@8(e9Tl9DrZU-8H>ph68=(xI!Yj-1Xy%%v6J&uTR z-P;IU--Eb{9!JFO>mJ3xdfC_e5LX_X1nu&5lX2bE)c{=Ii^z#y6o+x$rx;ex`oQ}T z*Erf1vB~W~hhkv8?7;gGzzMW1Vv}=K*$xb{#?{{-fD+nUQE10@D%On6vjd##{fMiC z_7>&3r(3ONtS8qGA+8eITaI44_NoOI+gGmFzeQXnw6`3tioLcx_4;ANRYH4lnS4N#xqv(%x+edupqfG1V)NNAwhS8FxzL3he?l z0}_Rb?dz*BS1_>W9lZToQBU5}zLM6Xd&*oTVy)U&ulLp)FjtsiaP92}g$*xWhAYH_ zO=Xwmhz(vv0rlyn~YUx~r=VI=sl_f~~KNw;s6iHo$uk*XFmp)_B@` zPhTa9>tdYJXmU==B=kxvTlrk4C$%+L&$^qzdq3hTiYL$4jZfI6bUlmrzkEO9;&v><8u|p{ z%J+%-ZUplYB$)89S)U-W-bciWoO6WN7XSVLMZ153FU>h+5fxr%yTtDP_P zxi0FJ155*g1CPF zWwTA+AAQCb*&*M*usi+T({(p7Wx6=Iu>s`PWq1b z`3{t27&kKuWGtmEShhyjj3oNJp2*qSWJ(uRq?CLq!gGi)Qa*f+s;)H@#Es8M0>aU#ZFC=muF^Pk=ng6k{XIt-I6d`XHbhDfJ zABkKYsBz;~ooZI0Mi)gmA9DQzw=k~1l*qNU#ahX&!mg+uzoNa=*uXBDssO;97?^ENon0lp#Odrr?<)Q#1Wlu($|B9{EG zyx7Bh1HJ>jA{Z5HV!iU1BSRIOUu)7Oy^_{RW4aCI9vWIk1(REBUymSIr&EsMy94d= zb{JD=uHtE`inC9I6)$`-kwBIN!7!U{T#xTY^@x>{uU zT(5h=BxTrkN@q0!k!8xrn~r zAg(he%>B(KCq-SvfRn$9rl6SX`3&Mg`0k0v2K)QFxeL*EypvYan3`(s+(BkFJ24~F zmivD3D`r^CmHP|nY0cM<#rh94Z(A{o8VbO~BL`eSd9g{|fbcbt zTlv(!c^Wnc+FD7&nuXy+#7OEH+n6#E?yw?SS0Kq;dUly?^2cZCNh8^|Lh5BQ5wP2> z54aToKF??iDhE{!&|d#Gk1~H&r+-4Ot)vf5t=r~T1pLX>egbpq* zy<%gEss=*va=ms5$$j-QrF!M_4Y^)LuN{r=wq00F1DCQI+w{GazuMm8&}IDWt2l}| zI^ff0UpA#dWgyl!5m%`)0CbA$S-(Nd#zuMvkBr1d(Jo&%N6f4Z-7ql&M#IO_I!w67puTGe^u0A7a%)z+el?G{ zA_PJYa z9Q~rGI~|A)!&36d5Rle9f8mZg6|$>Ws9C|p!#f$gcL7(rU&d$7Oy$zlNhqT*iDfKu zg)(2k%6&J|tLRHX9?H3k8 za9lSmJ=-5AM|ZXFu1|o=T=f!Hp5Q#hwJ$!=-!nKe&X4*14fzw$EQESBGFo=Q@9bAG zza_4OUB!cl>*#pzP;4-chZy>Lt)p2j0i#}{@nLe*sd6b|W^sL>l@a?S;_53zkIWp0 z%Lr5o_LG*5_RcP02FIgpvAc@(`Vitu_1Zf$9usv9MS3NzpkFNu@m}g$xn6qx6yhq1 zC(pN$^!jDQHL$N-0hN7w>Gdm!Yh}4rp1P6r`c=d=u&T)grtVYl) zr|~t!wRh}ktsTN&3s23&pR`eerSv}CR|-^3csz}2e@GR(M!@B{eb~s%k;WVGFNwAEXi4VQkfPP*6Rxy*Y&cwCiOW3+*qrj zD{*Bm`LlQ#H|KL5*ZbrAkni6#b3FQ00mmz2RLnJrxb_|G-@1L9u&`vIzGMA6`{rTF zxJ`~3b_RT}JNq)d5ahviZ9B*bghoqiw(rkWY=*^L@jRpJhhaLmz<3$`Ss0Tstew!a z1WF>U(RlCR;0_08S+|`(KQ?Vlm35Z*MAW`U*1PiyxJ)lX#dZsxxYh~<>_FwIvgySY z&+gtOnky90C|vO@jxNz$p@2r=if46pisstcKCdFzP^kF5^%7*{;=SYXfzgSZ(Jo&% ztwh$EF>M-%1U7X&Lw_mII&j+s^xqJhbr=f0)K_vVXSO)MK%J(RbHmPii?y@1G6bg( z3eoWg_&iQxWXO!JCH1TVVg-Jb8~3;Hcn&W^Tt#mJ*TjsLwa7^b>;jGg(dEg?A9Hnk z50~a0%D9F_t~18;jEn-Ml~MfOdLt@(_qJ$O*Sc}&Cv>#-&8Ov{twjcjrOm-m_+)2- z(DI150&BnIGIJ>AdOtdI_qN#R@ZgBBac>1&lj%JW-XU#dOmq$PxmnEh0dyn7biiMB zK-m0(;plK5=^coX1T6>LE--5z?5z_|>xAojsmm9cThDU)Va{YcKZ3Z5-dwC_m^$MTA~9z?mjT*u^a z9aEd@d5G(@k)9><31M!{LxaO(|Ml|A<98oT!17(J}^7j?)hY`n$j_myzF;LZaSKm~y!aLJ_TqXON-x^4J;;_aQcbgz>wyA0z}M-f zctvwPk~xtvPiDvhsGw{6-+EU zn@iZaEST7gnXzmwlZ0-A{RBdm4fRAxy$v>^dW~$wfBB)%PY}83S-TBZ9aFA;iEdHI zrW^N>(p~!ebZJxgR;xRq+g*Yy=T^Gvyehz$fgNCRpt*g;{(&?9@T2=?9=Y#cQGk!; zQYW+wu_2tE?!L0rSU1j{55ql#Ey@v=MVWTYYm!Z5Kwz0od| zQL!EPcf@t%sbfQ(gB`-UyvAa2(h6nlP|g|@bNvD0I@B{1AH1+4~y!^O|G`0!K5`VKAr_IX2W?mk~^1=-P_t-|$V-+;MRkXJQHTaxYbPKRtY zC$Hgioc9)+U%>0FZ$Vsdj*keN6GySsf6L1I;Zjq2Amqk><^6?kMO?kl@^3G+w+3$Y zFS|996XhClMs0@{SCxMo;>z2$qAqxEn~L5ncN}IR*S90C+%|~f+POzfu#R4tedYay z??7BfMn{D9800cb6OKhayVb}S+X3Fc{Vv2ceK_YD)q2tSK7$Q8ll& z%hj#F@;dr^C30;Au=BM&nl*Vg=E{2r-zSl4OHz$dnS~G6s~!7(#5J(5g~ZDHP2cz2 zzVdeL2NBoua;ZL*s`l08>e^Rc&-xpQTvfHNm@Dt!x?dt!Rqd-+Kg^d9*WP>oYWl9~ z|IACCc}$IZN74PTpF6c-U{(^@w*Tb=!$97#Stbc1j&n9xP zXe8-993!!4JjVLDM8}m8&70N-<_pHV{5|3-y8JMKHx~_1Y7q#wPZA3$17>*Fe>4Kj zm5(EQL@HN073PFH&j=7tF4#)6yGlI9Q*nx;!5pn zT!wvJtiM__TGBjO?@a?Q`}$9aYhYiiBY?T``s=r)a%~*@`p;6iHjaHwxzjkDKY+g+ zi1lyZb}62MSlu7SGG`4KdREIOW(adG+Un$0AIO@vtH z`j_90+6AmrJG0ifo;2(kvb(cuY2nT+nM|396QNLDaAiDa*Cf}@6LcliMW9S5b-|T2 zxUy@KYghepWsVnnO>*t7U#{$L>pu|Jf!OfT4p>`YdHY=3k?2vn*hX*4m?eW5cRf?X z%+!|W+Bh5DTWsX(jqHN9Z$wu%Ix#vhHhc{2@pY5VU1&Q#?#9#fHRsjMjJ6B-_}58x zDQ5v!?%U$uqOLORt_EWp&`&Tes*qL47jsRp^3MjYx1V-D{9Dweg^7!l&_#E2aq%TZ zUH@|VdT~7mxE^FD@bBf$uXR72Z03+K{JSzQ$G2o&dOc4f*NGwDZe>kn3t8 z^Xlg7rPs$Hu6&H4sH^O0Ag&i8u0#}2mT!-+NXUXOyhQe1dc6p7Z7p$rt%t{ZYRzG7 zp6|u=V#HOLV}RipY9PH{g1CyV#||}sUXx5imjYMbe&yey{@S2jFk@zIw&uC0Qsn1L z=f%y_dGgR#$oqya1FoXyZ}K~(pqLT)--2@5S{h#1*OuLO&3XC_Z>-q%S746#1EZacx0d zHweBY;MzYl8dc8w;>Go9#1%G$ep+ewc6LrrlHE!Lc<|!-B*b--P^zKOuCB(h1FeXw z8<{{HT;SR;c3=nMD!M;*x41{PsyTbvfhQxbcx@vQ7uqShLqfzwmyxFz*J}`0VG|43 zwe4=()25r0 z{n}j;x!y23GIT>#Ph@SMzOK>5p zki8ez-H5AbDN(N7-K%ipf{XOxx(9JRD7gII;TsMME@D-(_u_gj;yNbyswmgk;CNrJ zVm$_4T=ycb&k)RYq<3_94A!0)X#lSK5Z773T*nWoIRMs6ulo_#+r@M36I{fqWKX&B zb)s~31=mUBy5t||fT3C{bseJkE{yA~z?FZdwCv=Rp5j9|`EK97dH!hG$gppjuVO|` zFh;X*9lmEFuA(okC8^{vO&Cvj@gi65!@f-_SJ6*ywel~v13zF~55gtIV13uy1YX*( zk;s~sIc1ZWk<}A+EUTR)@mzLFOX#E(O5d?xVCmwrrsD-8kK-$txaIs1={0S&C7l~i z!VR}s?hT8(9EEaT(kt(C!F}6QKmA5Z7j?sfR!Ykx9hD}{L@upP$c!bfoZTDw27Ev8 z(B@N*J`lPS?ecYV$jIbWd~-Q=Amok`_-{6d_)Wf&TRF4&y?e-{Y1+gB<7(D_e0_em zblh-+MITzn1`*%Q55o5;v@K%OoFW=Ip=UFC3Klps)5M<9A_HH$t++JMYg2+7}m@5R!A!$7gi$U0X zRT>gcO=@$2eSI6^DteRJSJw=PE=g|wRIdjZ*I%>u*4rgs!gzEzX;>#L<5oS=k|T$E zB$h3*D9rVjjO#l@7FdwCbyAy+fGg{G!Tx&xiMjrsaeb%6o615ROGU2ho%x1t{q+}& z>$?zFwhQg?ce5?4;9|#s$cyW{{YAH8Zf)6?1z*V2Obyy@$Sf7Ni7hGm$UR>XU&i#V~u9^h_ z^A-Ex`T(~B_es1*s#g_5ytsOGXK8W2%X<;mI|R35xqrZM4eW9~1S-sr@#6YE#PzFp zeDHDTXRui&0Xh$!`w366$y)D6=iYeZJx9<_-#7F0x(D>y)!w-)+}XaXy~FpiWM+uD zzJ_uA0J;EqTz9p1hSl&9Qhb=}TN&36t`b*jUU#+cs&An(c9`os7}vj9Ev}so*lrbK z=wPnbut}TuuM*epE|;qc^#RQFS4^)TS}m^hy|t_TS{1CUQ_tGq4#eQ~*S|$v2a?%1 z`WbANNr38=_ZMuUkm2)T_sjYBv}i{mDodr!4UYfSg?BFF`hdh643k?2)7rGK@iY=| zC9fzit{*`uM9UT86DkRIL+ISlfu@bys69A~>J|R~DB>!5Gfa4ktHlysmfZZ8#%Ep3 z?7(G6q(euCyGTceuqvgK|JYH|>I~E(L*}%z;^|Q{1!LgIu$BQEk*&kw@l6m*b3W8` z294|Xzu;?ahVRECu5zETI;E`(ok#6J-VG7Nb!XlY|9^zZkt2h#{iLORk5YC3bLFw! znk8~=YiaLR3Mi8v=E|B|p(_KfHUD8^t~{2@69cZkay^gbc2&UDSFRVb+*$&zzH+^k z<#x4Pu4+{T7(;4b=R=n`zX;p+B*c~N67~h_?!XXDsAr|b%@q}P@hfJG+FLB$4#YKR zZ>E^8D8zJ9>le}T!XW)edRP_h-=W^;#4a8 z#$0)Ot4|`=Mrv>M2V5%?r$=h6SKi(_6maz*RoO1gmAAJB0g4!<{9 z-|l*xE=ayE#5XWk!54z&8!8o-jB<@YYnFa^oc(Viu4q#T;V{YSx8z`j1Ttq>#-x!l z>;)kONzT;Ot2;0599H(XM8ib)2wZ72c-1Dy!W}M+*XFnTCB(I7bT|(2?}gdDVJ$&M z$Vy?ViKvQ*Jur=U{ah1JY%=Kz?ZtIi( zbo>7OH*wQ|j`*{Q^~zPcB;58@TRKLBUc(3(aNQPgML^2lEY>UcYtbyy=B-1w3S5|c z*t``g0vbu(+D#H>dNvF1A$X0^=2uyFpv}&vz&6{4nb|qt2Dx1GOv}uab?S_@5GSnqZCiQWburfk%ynJB)r(r`eZ^dF#a!11TuU?bO0mS1SN?y? zxYE>z`o?<(hhjZmXZo?P-^f}v>76kRST9y7=k^j;&gnGb+I+n=tEW;2_%Xk~hY!a| zoR&alG;4;W44~X5wzwa0RfPM8G?ie4res7JZb<@paX!S5;0c8w7Qjo5pFv_|}PLuA2aqu9-o()~c%` zwR-3B_p8_t$<+&BRo66=$?Hy zDHxokT#H5(Hpj9@^s3%geS+RJL^9Q)sg?Ass&~?<$6Oo3x+|;FnXI67-|K$*wx7DU znd_GT&^(-{TxZJahGCAZ*_FMdbbd`Ms%EM4?80*Dm6fh!J6v1dTVDo1e+#5it|QiF zcLnTIJ8NAJ!CSgdAst-SE8Tf39j+Aaf=sTeU3>sX|wmhsbrknoJYDYS}Q>9at9T>W#;S z;&5tHIboI}Qm^Tq{<6 zmm0Ts`WS4q!`@rW4tzJ#*Y>2uceN5Y4qT^>xcx20^+UjwZ6H6=nj!w)7J)nHd&{%0 zEW`IAJ5Z~&{R&~(109?EgdI3wId=yB z9CK|9Z|YSlYuKrE4cz3Yq-c|O!id4tU3WCKUw<6g*PL24OjVGR5FYhhw2#|%X(i2C z@8;K`Tu-)e{fP*I)6vcd-^uB3{S@Nb_7B|QjZ4(dI3rsf3OJhx=kSi-ww&R_soyDH*vMO$Ui`RF7)#WPhaUF?r%9r0{?RtvIC6k zCu2Jhm}6^(6Uw98`$)glyZB3pEA`Kc{0zaw&1x4jjdA<+F!^0hC?_E9&7EP$xc*v% zTt)t72Pyk*&{xLwZC*t_g}92Y+jf78On^sn^hS6Qc5oo_&Y-zv#72+z|zP3}xUc84Fm+{w#YcD?2VW=}5 zk7eVAtUiAOTw{M0qtV&X8IL{DJnH&ik-o@V+F1&Wp&k(t_h2| z5)b0vN6Iym0+kj0^F=P7a&6G|E7;M;ywd+);2KrC6=L5Z&>kY+C1XpuKH1_Y{Qr=? zqNI@De2BoBgr+LdIz%p}qo}|2gh%fGh=z%NA$V))RhS~Lme5HFk}g;Gul`Bzc|IFC zSGPGJ0nY75z+9j5&K_wFgWJAWM8efqx&R3&z)Ic+7pNBU!}09Eu?V?_{5Xe3+%f7W zyl3Pd+O4AYbrAl;VVh1r)@igKnkx51MW~#5J}9E|Z}D9)*5EtG;^EmVDjNjk-iW z7YdH2ulKj;t6D9t8D`L5tiSK)>FWcCD_x&J)y7W&uAin&8S|uBQc; z6{UC{R~2!62yY%IpkhNLZ<|JSHL;i#ApPJ(^0*cd*Y`glwr;QC#zCnfeN z{L*<`i-_y%*&wYyYba;19gy9=mJruRqU4$m<)=CnLU{VBA+B$TkgM$Ptrf)e)rVLw zOpF@9`h<&F^6XM7n-NpM0ZDcB)qUwReOX0Z#Zsm1S6Sy9KDa&4h;dzul&h@s4e5UJ zuD-J6mh?!uj>8hAtFVocxkaG&YId>4!vX!tbBm>RfX$0zTwjTlE9h$zSY48-vVMQo zS9@G9!7q_nTA0f$&E>g2N(d)+{8@_-0}FB6+BEFTO;YXd9~(jygovQ}+VK2YZ2#D= zLHa7BP$YC{d!kWif$(@;hsH4MW@I`)4=UlHl74-Cv)2f?1XX(bcm2`Fe&zLFXp5>{ zHh+T@RoLU$wl%i(mZ-9#mFwsF22_Fkjq_*6&!0b!PKBDB*X)Vf8Z1#9s?@_E%+D3? z%6Db<`0GU0GO;iRJ%c58V+fH2MK0UVmCZY(Rk<>IEauwLZ{p{QUt3AFQWj|k7H9z- z)%$Q~qOYhaZ=wck58R2Wd;_ILBw-u6qKpgY@VMTE0E+g8z;1b(xuO;|2QC>LDOU6z z-ZXZb9FHs0TYA&N_MKu9M&T70irs-~$N&{k@wncN5GGJsM6#?GOch)MbZs6-TU9y0 z^0?xm!WTrqL^7+eSsZM_+p4yWUZ>0B>PBg}4}TLe5Rvq_`qZ}3<9f^EdLIHPdh}T> zfQL{83u|pvZM8vcQ`4Z6P%Fc7=5WH+jcQLe7kFInM_lJoT11l1wW*OHqFCWFDc6f$ z`<1<~gm$o6o@j6xmUW>@IWRdgY4y5Q#SiE2Z{c>o9%8OtKCAz|HI5|GJ>(ui-@{HWTGQu>Cym`(^&rG#t0q4zPGQ_GdqLQ;aLkSEZb zlViBRiOXp94?G_VvG#<>Y6ld>udj;;NoxB1`PB4+u=xe4Y58=O;^V!ygh52V7fbe& zzAmwchT}#iJG-oFo9I-i$r;_$sC>;F%~YUw;HG1a$uA-Cuq_0>xv!%i~{ZABM8lP3xX==4@=S&fOksKURoI|5M~nMOU$JtQsC|Wy zLJpEpPA#qJ)phxX3%KpqdML!&6Vgxmx`B`^fx<57C1I{^DqF6R0v8_7z6uL^N52PSZrf#TSgV$FwJJGRyl%N`ArOd=lLdWMKB&M5 z>nrh?y)I;Sdx^`W)9K-7&zvUbTzgP5>IIk}vr;xxyO-?(k1O6nUbMb8&YdOW6E4%T zQC)?lNTdMEVtC_C$tvD0k-*h_FCo4A@8n;?W;3;UQ= z*Y)Aznp!0r6Yl1`a&%^~ePw=^&j}me9`dX$%hoC+le$0#gaz5|QNE~4*bXqiD_yfV zs*hAK5j4z|`Cak;Fz8kx$$sF<{H|{kLXauGNzwr+=KIPO0a`q;>_8`#Q4Mz89zU9_8e@z*??xHjNF1@w~n0*0YlOm{`saG->vmPD5p zo&00UTei8fedOuLb97wsUq^J$ExIJCuWa0ql{E^9_pmR5kKlT(sb$Tk`$8m-1Dw+Hhzkx)T4v|pvP1U!8`4bRKCvZE-xl&fn9viTds`Q+j`IbL0~oz>bNp!;#M zb{0E|;yOeoE{sFafK61ZrWI{sst=T4kF{ljPe` z zPhXk;^?AfKHUbDnfaEb`2N>5ylwUO0A$U_Y$ckDu>b6`va?11#-X}^tSNYomtRIW_iHeOtXNC#4 z2N+kpPn2k`a<>PX{R4QPr~_;d^ssk;wFg|TtRMSwv+9dh+2+zD`G(sAjH`;CP5gUH z{`LU#4-_KhDt~)`^<(k8l-LL$B@2+m?E%IW?-M1OtJLj*6D*?G{Xy`&1jA=+>N3-Wtu$5lh{GNKMODZ7op#!+JB-$A;oY4YK!El=F@^G}F?JDjA4!(b-6T z4F5b%JU^D|Yjz=phY&)oRkOZUj8eTUg~Iam^-ZCY+gn&a=_{LOK#6Sp_3@W~?x8

    -C2gfo@)BE+6mg}_0_mbV8<#8Q>Ir1b^1(G7JSIK+r`dnqf4eSu27<_|_1JOhKyr?HcVX^&co{7wPiH zh$FPUYhMe-oCTrCRI&tIFYE0q^&bcg;2MHf?duvBwC!o`KY%5c_Yx12clpL%w7TSE zh{>0=f^M=aV_C&!Z+ZIaaYec`epZMGg`!f`kdLawd-PtDa>e=;^(Pd<2=Qc!UF*uT zREQF{hbV7;fv2hX`>*;FM(~JTd4(ox5MGq)&*D@z;X4k0>Q?10V7hr|e^oK&Y5wYa$Q#`Pf#$C8&k5@`~l{%4)T+trz3-6N5mHWT?{o4LC z16ANQa;3f)dnI#4e{J>HHgdg(X!IV*T>be4>S0X`ePHk|w*`9?aSrnY^Nt+7ScXVp zih2Ed?dybr;$IsM=+VCKA^eFRY z$TA)*Ys2g7FW@&p^)+|2sulHDY}N75eS?qJ>MKXXd2`=^LkC!I#kP72W=<>g!V)9B zw!TDa`4hs^~*LO+MdjvXk`H?SEw+F-w1|0?}DFi?8GEclEWqR$poVYmL78 zkckREcP*W|s-v0&GKfjB8f=pyd;lD zH27>SR~$FsG-~u!FXfX&S&v@(;Gye1M-IQV3Enf6xfNP_4f+lE^;ZkT1ie-A^-zDk zqqhF)&f{cWw<ktP>*n5fl{f+Si9`^_9-!tkG8wa+uYDgu?ZK`vxDa)z>4SKiCJ0 z?O5J|)k{k(>;|L4?brscyq}QkvABOATvJwWUxW1yBof=$zTP+ZNUgr|3KQqbw?hZq zZWmeVnowF_AFk!f;}foO_4>0AY`EH*NGPqZbzI-!is}a*57p``k5js;uQhfcY;{#xU!SP&e|6n@ znD^ZsGKyu>a>D!~J3#whqH-B9+SZ_+4v81OmEse+c^#RWffs5HTZ5Xfv z57yd&1HhH@ruD4wM_{}!PwDzV9ar~PUsG-w5aG(wa(vC)P)n^uLg{j=j_XIbD%EhE zhou|5)rIVstM^0O@c&R^khylCdZp{1#f<=L`}XzrvcbW@;nDGl^K2rMK7XE#T$oBv zoX^79ec0UfE^gufwA-)4vX%LHW0_6DLVPW|Y_^cQ%v**Y9Nb@PUyt+bP+zfPX*(-2 zVuwv?P<`D*?bR>0U?-DNE3%>7dZ3o;XDC;g=qRH_bAv$^BMEFXjBm(CzHY z&AFbb<4Whl#9W)x&-$x4*TFijbUaoz*ZSvC<(OBe22-AWMJxLxc{$Ts=+WHYYR{tk zTkTnd)?&|Fg&xD~naPa7T4c|h(^rO}o}{-jaR%)G2xT)F&t)5b|9#{++AYbsE+;(8 ziuRR`$I5;mloMDK(5~; zTuE}D=(hAHrZo{&1U~cDDpp$1iL2BVyMEd&2 zge#V1Er{;uTXumR!1W8z4t$GnCCQHF6!hhH3%Gup!1RX=f{N|<>-Pw_{t4lVZLp39 z6%fE30asgfKubj?{wEY_S&&nANa3?t87Bh-b(eHYWLE=krLO}`ugji60Whn zHZp7Gj7VSqjBss6#%8WjRbTIN*X8x>0OI^ECN=}C$$NXi3>;I>3?z7cpxzGrH^Mcp z4>YMDb(e|i1K%TDWBXbMtjWVW6MK38tJ_70^?^SpT$>aVUsgwe+E?WI-y`IzYPlt< zXZ^o~YitMV6tT%eksbI8!nH{;@nv-cM0Vi+i;%0Tc3`id{`x;6}@mG=|Y*I)mV zaE<#3>we%(9*X)2|B7&p+XYR6th-FqF8FK0HLefT0c-M*_PZd%?-Q;~ifQ>WRm&|= z{q=7MS7hBXxDLHhq_009TxDZXRbOfS6>$J zxW@LiHLkROpvo|A473K5+(qpxa@`RjS5?a`Q9WxX;fk!uR}m+hARw{>y9n1NM8uZ} z2;2$L8jJ*Gy z)GoN2aEpg^PYf_uPOI3Xp)nD(8kgKZoS5g1#e!?}b4>bSVqgRUR1NRZG zv3;eqnorYy7pxE5Pq;QODZY{tp!OBHJ`f>SRm&|=|LcQn24Q}7`$EucFqWbIm2-jF&TT>m8zCKB~wkEatyHwRz zT7Si{*QX-ns%kw;)KB<+!ZofBH2>S9SBmNbA0S*~`$}mwpQil-SRZ(raBW^vd?h77 z?JII+5pq?v+!EEZ4iK)f9iUp+d|G4&4ic`-ONy_g1Vnb=P=s7nwF9Dl!e=7ns%rg} zw*?04;+7`~*X-4i5vt!|r`L{K&U4;O+;aPNKHvJ&Za!}L{fRR>Jb!I>-7R>OZo;+o zCu{Cb*ADdC%&=KOgT=RUiyB{;PPZWB_G-x8l2+84leb;2+6mt82Yjv=L${Z3O-p`I zXocrR|b7Y7>S!S@lalCdUKjRT!Xtgg3#>zE7>uJL*st!b89Zq==8c8qY%US+Kb zZt||R%dJ<2HQUH-RC2Ao-iCd<$wv@g_R>qw2+ucrlG*{ZuO|uDX63YcT_@N9Wb+0Z z1UNB1GKHt(eE_@1`~5EEMnlmeyRdL{+>W0w&lf~ zE7o7J4||SqmHp6;;S^vsh=X1BLD^YFDxY#iOP!05Ymw_GECr<+T3$pAChl~<%Mt$@ z%@eNs?v3uC24M5N~0H&BEZzO&EO1nx%zi9(&tg!?|L+0C75) zh~Vk_S<%c_3f>~e5#$$D79y?{!quyR$$OdsMY+;(7^HWLaGknv3{S`V00eeGoTqyG zx=gs<5kOWemrh-9t-vkAS!7ew>U@V@f0p-aN1Q8|Xa!Wjd;I=^y?uL=mwmQOE9F_i zwCw^c3*WA_FcH_=gsW`(id_4BuI9pmvRpqzxRPW*O>FLRpDP>a8EEc?Hn~cquWu8W zy#GMv=KcChCYwx8jj}~u%j;IV{`M&+5!VkBuAb)>y(8T8s=gi%SMZigYi!4Uf^bb= zIKSmj*p3h2whQj|v=V>w?-H&D)0T5#{=8|}avb{RRv7rTI52X^vSmYG&ifT9&;2I}*YjZZWWF4HZQLW%{o+*WCE#3N^!+pu=ch0MpS>Ux zs=~5eeXZmAX~I=@X_7q7mQ48Fw`~Jp4c!oN{S4uHYK{BCI-NYFCRbk1LO-IDKCI6Y zu3_<8OU|sKeng`Ftj`m!W9gZ-ki_TLA>i5pf4rdEzwQf!YwSj}4!m_fqFht{bzdZ0 zan8XyBI1t(1SnUmzkZ2ujs3F((3&_U>L2(K!d13k@fb|kD&cvtVGL z-~S%I3@4+S$Bq3is`+Q^B7Paj^((;jz9w`%j7z$d_0L+J$BF$eUnO=R40h|u=w_;V z!Z-F4(zfeI-+gpFEb(V+5ZD3hL=EopB9QR90pEDLi_hg6g1?Wx`vm-tx1a=ea;|$l zu0#IKyib6q`QMF?P3+ip<70!!98Ses69jg-T)lp6WOv%XZwU4`-eo&>+<5nC{HzI) z@g+cDH*iHicm(o6OhmAsNl&x>o~}HM8aTN{mYf~wIX2MEW^|`wmGnGI=W=GHjN*5hyLihkCCG|*(?E3 zeIN}tbBj9!e>Xlh0{`W0+zzC3H%sQNf}UT{i#q(~n=l6Q9w;=)L;D6Faq9y|QRH<< z@N#M={2e;LdMmcoTQGB4p?A(G^_CaQcwq?p>9f{hjwUk%S+Mw2@2nB=5Z(zUO3ei_w@0lcas`E@guvdw0|LklJu zfztB1-K@Wx4I2w=w3G+8Ey?-I5-;LPTZ*#1eMMZM9jhc)9GB(arRc=ZaKcerG+=mUhEp!-x(5w}bp(05U*S{g}mbP=` zDEwqPo0*shU+k7kq;|lIs+maqfIL;2q-7+NBZj5t9Mf81lZNf6Fy+|AB;xwF1mG}9 z%Sa}#YUP5i4o_qx;`&4U5caZ14U^|hM^{EmSHX$6zPI{uLaz5fB9R0Kp#@7Ts)km? z)t`3c(v>>t7;;En(kz3!3n&Iw#B~Qh>2Dar7>~o=CzUF#R_Tbi?j&3>hVkkh;ii&P znqwKuifOCoFEr?n8)7|c7vXv~T#OCUKwsx9Xc?#mR-~`H3D=1R65*am&T7_z?xJ&TdS~$>m7tE#xidJ64Hs}Eu)an zX;!|iDT-h;_P_2UT;u*%5wnfYQGLb!*SiT<*?ps()c<-9;VQdtw3GT@?Cy4jmDcAn8AX_{-23LT74pMwUSi`o%!2=nL$DuzL3Yne$UwG< zIKKYYV8V-@i@*6r@@$~V@zw%?oxt^s&lShF3?j!PPEN$hrU>kExq6z)V-WG}O>Y;; z|EcU12DXN|cCwr0^|G@#s6aTa-HFE`E}5s5Jk}%MZhE^&{&%yk{Bk5YMVkrbiof|n zgpZ(rY6@xX20MW3Mxq@kk}LO;bewFSz#g|g;MrGPdsFVrqUN8iov*yZwXYsm^wTsW ze4%a#MwHicP*ky*@nJY9m=-H*FqOm6?FgSE?5y?xS8T_kzS1~(Lt$rFCl9%DsPo1$ zgeG&*)?L+pha#?Tk=J;Kq-7+L>#Hxz?m3h3^lQr$aiwkTUs(IrP(G=0y?7}UdD}$@ zuMeE@C%|BRfZ8>z)5>~Y&$_B+1$ZCUs(ro3hbKFx3;m9|nWf#LClpDGxK_x!VP6b6 z6>74Z%^A*I#f|rdaW%mQKGZz6M%Ykd@aczZvVNQ&`JJ))l2%~PCG};)Vb8qOclbH> z?6b@}$wT1Q+}Fy%v~Cq>VBMfHFs?3$33{vK>l^!DKTC4FkXEalCa)$n$$#fqf5mpe z=cMM?8Nw-7?8E+igs*-00R7Chtp=335-{AeO zeLafecwYuzI~PPXo#c5eWQJ)YwtbOqSQ{m zjq4?@AB*F$Pj)(#5Z<5v)^UAq)golG?2fI@JeLeks z_CXmLMkJGu6=Hn=#|_^fQQkb86dO)wCo)i6xnVOR%vo+$BCa1GS#moeb4#&Or8o!W zzh+rl=%u2}CtqK-i0jkj7H%hGZYh>qgr!b%ylSNqS`k-9K%#9Rr$SApSWz$X=vi~H z0?o}(MQ^DvURDi4Um@T2yZ;l31OA@xh7xjX2T53TN7vgs)&Rjpl0yysF7xmy+SM)y zc|SL+UxD@ytV;}W0-*nCu3+#&ro6bqh@94v>q@ts6$l3Hu5;9Wi*Piyw_HC7f5GF| zY*-PmT-M5b&4%0hwbtmZeOJaT!MEnHyqT-Gi*Ip?YhT_*pEPoH`(0|d8l^leIA)X< zVy;bpvyFCu_rIbY7}5Di33C>8Hg6UR<}HBBZW+!Zn}gx$&5wxB=_Q^)o}Jfk+3rui z=?CBD7cy9v7e}_dNBtIg;*kp(aug?nN%J6Sl=Z3XKh5Cuhb&sd7U-l(`hve|` zNIH9#9EY9Uu3R?%o{e_kPl?dj4iFdtk|I0sXXO4zNLog+DLX(H0I7QjvA(Z!L*4!I z4jc9LdnB`1UkQu=Ns+$(Il2E)l9rKdN?+;1Ds>Mb*4K4zsJma@VWYm{xGc|edLpi8 zwZh)j*BxGM3j40yUKqcFkdAe=BEM7b*$JbrgFaVe;QGGH?s&z_6y5KFxiHu+z*ofi z8+a^p|EgBf77Savr7E}6 zUz@X}$V6Q4AzZormAUy`r!%Qjr!J+{0W0EqFMvdSm2GByu47ZF*$bD?XO#gf;>yQk zkSo>^Wa+HWbt;`v2C0im#FaBeuDF-XbzCp$mXTA3E$6z-gF3*5y6F!U$U<2oSIyb6 z+%5ZkRj$~({Xor|%RT7ItD~colxGJ#eZ{i>L2?25Y>`u;Cf!+Z_G#9?9h&qZzL|(C z_09A=3qs7WP84z-IH49;5m&Fbzyokk9fz#>37Po4_< zOWQ(uBCd~;=aF4EK&~fGoH(YE!g8)>{CXCaTaRr4*RFgDCdiSD+dkRYuRTQGY4Yk7 zauj|N#mVtC@5)JK7JCvLJ! zMqW3iW)rz^cf4Sa*AhUSzk&&Pnrm9>_H~I*W$8;jU33Du#Jr*uy~B+|!h2j339MiJ zD&Z>oS$Lc$*?DY*e9D#kyYcPo5prEt6D#-)^0;K4zGB9t zM6S%$)CN+0?!g;y0?CUF<)%yuoc{zKMm-swJv&6a-@*UuB=5h7vS%~uiOvr`` z@}ZWs96>gbXF<7Q|G@Ta&ilacx`zP`%NM(R6=g*S4g z{#i2_xhtLeT+i}B*qMwwvq1cqZFW{<2Of&>9XiPl&~j_v_@q?IFwU((G@^+KmgG|h zb$0#QVK?lX)Lf$wzG?@sz4cMA7;`h9JS%q&Z#F$sb;jUP^rCp;R=saT2l2F&eR^sEfQDW? zE1BzAD6y0z+h|`W2-ltIVJW|V6q+8+fLF1KU>mtk60VsGNI=d$Gu1iv^*rJFqyGX| zk(0wUTQ0yl5Nhiy7FRQb>-g+hIY51>;~IpN6i&dcrBo}RgonoeiVsRy@_t4_E+|NQe(?EuJE52;J6k*h(to}HF!2S9$u za9tu?r_(c1^>tcPvd|LR*S87R^I5t6S?9IvBCNP|Q$3|^v;!X_Tt~9AQuTGju=zS> z5Vqfe5XCB0w;H*Af^bb|N2GEE`AX4Th1JOQ(}e5nak-HnXD>`2R}*X_*B>Wb)92*c z0g$gIRzbVqX9(Bq=+vreOGst);)Rl~BHBiM{Rf2W*u+%{G*?A}d=;U>3pR57-wD_3 zu-tYm$nO}g|BP^bby)5|_p5Vu$8i1UgzL|&{$!=3Mhs^frfMk2w$Tp!OTzV1R&G7( z5;zj6X$cy+{ygD2JtDW<0{IH+D*tIWa{YC}_2SuKDZhUd3i8!dR{_^=5U!Um%k|3u z`D&V1!gYtQME{0xP5cvjfLa#bemHwxc{_ky|1CxNPtYqiJeE{aCvp9EHC(CpHYE~H zx)Zn}sc#Xk%ViBuOW9wMJkHbVLvQxIcO>pl4EpQE;WPYc9appu_<5N7V*_fMS00b( zKwaGO?-H&uney*P$)=X8c#ZYf2S`zM^(sau2~$f~WnH~$DCzYkY8O0AxK5{ES%n}W z1@e_N1pIf7@m&z-Barysd)_8jTP1u^+e9QcrS^!oe{0xWRxid2uMgDg>kh)T%34yQljh04K^SI-C&*Fw z$*fr^<%bIzkNd`q5?IQOU7+o znV9<`uHA&|&>B3#I^E6mWk)aNf#{;H<#j78!CNdx#5F~@GRe=!xt3vxQ(n2!3X(I6 zP`rq158-;h=kSWMDVWB zWx-XmejMgUh`!2xl70p&pI0D$Ub7tnvL7fU`68}gCR|A}q#SF-3@FSM`w4lO#ka4> zhUsPF{-2$hJk7c)C#%|ieG3S;ren$Zv3p# z{G>6587sAKFVqf)hKs$%P~lnG4abO#WVkY6A-I2`9L z`f{W`Yyjb|AG|*fgYIr7;pz{=yca-Zpi8@1_7d-VJr(G#?SHX|YZxZWaMW!r&nsJyyR*>e}c`&FAO=)I%FQ{%Zdg)HK_Ot?-?=)vr{8i*kL^ zhezY=%i@W0yV-EX&Mg+TQi=8VJm1rodZC-0E9k`{>+5-;FV)}E*Onb#BChX(zT!5I z2}yh4syiAW?Q7>*n~iWpTt7*;%3Vd8kHa9>XnS7F=o z_r4Y$5m&n2#+z&17}EJweN}6)Tg3G zVpi=yze-qZ`m?Z}^*O>-e*ddqZuP5QANV}s`qo;C7Seg5uW|!(g!H`4iV@j?FA%P> z=dD-Et$y|ESzjbv?PkBA7Ox}vs#HBoG;gDb4x7MgYF4ga@l>VY7>-K*@1BD3DH`s) zIB>{BoFz!y-=h8nz3q~2*@jtyIC?!nZ{60{bALjdZ-`t?NTC0#?1%5_8_3JfV=Lry zQ(8aIsEmLkcpxwW%Fi=GjQ&-l_L;w z{SM*!P(V&WFZZ}kaitxxj3qUkGS=YwUkTR(K|uw)K6#!mdtS<$?BsD}lywcRG|v9P zfSiI}o*dVTIvX}uU`qFrR?4ZOup&F~XGC8Q1qBuG`ee2O;R)IK(X2|^Dz>lRC0x@1 zIR(8unbFEQv&dd?+XX7IZJZ}hBL$9+$Zc;88>Ve6^g=eL*|=WPEv?{&D1&g2yyeAr zY|g!=q!k36mfmN*3;FHU+yeD#nqW+=93~j@D#cIY=#_2NOqFGzMt@$9w7%3lAXjA>suV-?U-vz+9a|A zPZLSE<9ZgM(R@bd2C@ zvA#ABlUym{`V9H}>v4U6&}cp>;@U-S|Iaa3LZkVli0iZD_V35-EkdLDq=+kx1@`?| zUz>+Xt`u=ilFz>%ms^BJ^GOj`I@kV7k%3r5bptT#7j%AUs8G=Lq6yAm(D-kPiPjA*QK z*0iM7E=-oe-^Bq3O~(BS7j%mn_tr#ii@QWzslUt6ws^|+dx)K&uV?D?72_83x1oKp zGTts(0+-?r(N|oLk8^xO2FwnSDbiP5kB`6pOOhER=T;n@*^XtD78Eh9E-{gP#r633 z1@E|5#s7j55b5iFBIE{1%Sa|2ec9;{eWi1be^v&}4v@+1Kz)6H&XND9WClsiva}VI zEUO1hWMAnV!(WihRaNmK`%32+{(Z?Wo-Ar*^|Y1GhiPob(m96Tl+0CC@gjYFn7r)2 zB54`Pq@yh?=n4cVu7e{gx9Gf$KdQSv?8Bt#EGpC4QUhoG`7lL0S95jP2UEIjYYRHd z>Tgwan8wL6i<;%IWRCCJ+VD1V{W5_!d{u4)*ty$Ac>sD=i@d|t*7NS9IFkQHN!tIq zoN}dYbW0?k^LRw{_1CYGoO?-HMzWjD6--z@);4bIY>;*3`uc9l$R~Q4jr#g`$wLfZ z?ITCwC%J}gLR}M$`WpT-wjxoauRl%%#rjHM1WGpQ>tFN1M1RXn%XKIO`AlEda}_t* z6Xx3fdycR^-rM&HSJ`ivT&f1rYwOa#kyE3-PIG4se;Xf`JDn1iqxun@YD z>rK0>ppR&dh7Zzad#;)oM-Th4W(Zf=uai93)pKmXKFH?OnkG-VV#%M4kgH3z8)^jQ z70Xyy3=%?5_E)|s`IPIlFKISvu7|rf^$y$dX3n*~+`1Sc*J`mtZ`i%?ZyqyOX5Yw_wq4(Q?`^4X>Txw4n`u^V5&Ykz<`$*!My^=j;!pA3dmoYd zFdkROm}g$tVs$J*BUidm%ab`87E6P+|eMpU5&+lF3=j2z@GE(ye zvs_+bMv)I1aAoyY=^ioco4mDv-Q8{2chJc70^vG4B7^3t%yqc7A=Jq;CT{P`&|gvaOkZqr7O>Dm{DL_cAJB&dqv6>{amuq za$ST4j_sZ{|JB!Fg~LYsO8wx+rfKb<@$Su@DHwC}WpFBnh@{|ItXp2%Ex<0x&3Us= zzW)8*`Y?C87wz&drGD`1-@W-yyIG!xE4OYKdDgYOd3oDKg2&aHS>(++OeF4!@Zo@~ zzT~Wwb)~3sfQ@#5`fHC(4@jlFo*j^zv((oDe?q=aRIMGL{@QYL=j$DJjvc`ImTab6 zeka)hivXQ3$nC)!n;0+XJUn?xt^NUCe?8;JE5`Z&?Yke)2xJM#>Nrelpl5()EFrIG zMK+dORCDGFa{V-Yea(TsT4rHhnUK&TeXWo$Hr7`HBT%wYU$Gv`#XNoevw@@qy?Cr* z>lwd0FbV$fstj>)eXU=IkH&Qf$|>me$&y*p{lzs@>LL(v^=h*oA^y3{Ejf34KtZg~ zE@;$O8ZUzkc}u~YT)3?wRv}l~O^9_bDNsRZvT)l}5v)jGX+I(Qz)0h|3=0-{YZs|x zUR`~ypSMB#38izblx~*HTP4-la(!J+c=V8Al>LO2((0hAJ1OQgEP*cT#}TRA#`^0K zlKr1_G{Ya0uBj>|PR{IB(>Kov68uc|rpqZ0NWLYCp zkwU8GoxFoaJMad%>f*5xauj}YG&7Y>9Xolfn_VpNaakMI44>SV6bl8NZQ_#?HjSw)8EaeGBdAE&$8^mxo(ynotYjz zKg)8~O4)(Kv+2~piIZ$mvlqMB)k$NH6_yG;FNF2I%911EO4|jp$C{UV25Pv@n}!pS|37jZ(UZ zEBDJlu1xa7%wE1QHjzE6lB&AIL|nO!BG*32Tr=tHtXnX7<&@;yq7yIT%6kit>yYF} z$)?9fXO1eTt_cy>2MO0{$y_HdoSS&z`Oe__5aIfUWUj|XMziWsO$has&(uIWfO}bZ ztMx2i`B%usitGT7qla}_Sv*lLw5R&L#uT1WV=vpq)pMd9)?T>-4%sZ$0 z@Iaxxi0k_ZS8s$y-V1ZC$K;9MGRY#Yd}ciAEB{>P#<`x9nZXvx7IA$Fo&~w$Ue@Ea zMJII&FE8rX{s569`!~AO14COE%6e&feA*o_AbGcQQlzg>!wbo7XCbp{d#eNbwHe`h zKLU`n@1%b11B5G+#1qAKQor^=!c}(NvXlC?4-u|Is92Kroz$=W4Bh$oKELC;o zf_y(%aWb#Z7c^L09w*EiW@%%*ZlL4d<&^)uNPX5|!W+5racZk3%+F6aY(y_qmicnh3q>7*Z72C`*^O&iQXg$o!ntZLC%njc_=~6O zo^MKc6E`bnRLL7R+Sl{M4rJ3=a&7oY+494G;^riBgoC?1edYede7iunj-+SP-dQ>S z)tVi@%E;w@YT1CF6DCFQ_J-g!gb>O$mkV`k5koG zW|Z=}Itv)MT4B>idV)U{^tO=LvlA+&{naP&OUM;s~{roQyuCmJ&kk6i{0lT(@ zLHLp(gE#!KIaE;5YO>p(gE#&$t;To4) zt#PIC3DE~*h=^iox$B%xrJY5+s5#K_%6f_gMMeuaz}5Ny;;e}WU&PTw{50Hs(VZL5 z26|2~z2v6#yc?p7J2ABJ#((nIuZ{Y8XN2#g6&Co?+>1rt0n_FzDYl&u+2KsWi|~eK zRkjZy&HtvpVjH)09;KMgtvI?WYW$9&mlUyA zmfR9zvT9!k)U&S`M-NLV8lNykghElozRnfQTl0p!m^yy^RNGrxZd2>I^7w?fq0PnP zu=j*3L?&u`oK-v`t~@>=ZgQ+8OMxt#%&SCE<*VN_otEzw%aiy+9 zSf>q}C(0vS$1h}ORl(}6V^VKlz10l7H?L`XA&e0BgsVHHGnGAe^0)$YMf%F)6XGVj z?Iqv}kqFu!tcdGF2o?6S+g^mLJGEO0sK8CcmHNBLZhH}~%d?~D_E%J2Cq-PTzYC2G zPt-WHB;o3Zc;Jz?+aIrpE00fzTTPo5PlmWBTxT)^?avd@h`93jgt*;<2}ygxwW_Z# zD8N_575#}gO4_ECfmXm3X3V$0-io-=c^kA%E17Gx-$exjE8~gEhl`p*MtrSCYZ{MUyUwPa|++>$qRjyMbC)^ccFypr0 zH~MGg{U84jyxX~q-1shImadOn$g*>zuMV4D z9eblKsGIY$jVeL48VsXvxl5gCanRnn3;bU_kmxJ07$H}JSgGXB#QjzOSM(KlGeWN2 zOshDHrZw1=>ghkOP8<@>b#R9_vW;AC0@ok<+Vh@dE$W7OvGeAj>KL?rq6Wax_=?Nz>yP~-9t~FBHf7{2(>CWFcG-m1)`*#d z5PGHNd$zQ4xd3xOdBd!?Xx{=E@}4!An>d;0s^Hi%Xu*Po`(!(6w(@1P!98C6)%&eu(SJ{b&%M-@i!it7vZ7qE z=#NrGdpdwC7FV);iK*5oiWQh$Rj>k^(o^0K=jU}CpTUvS1$l3maTs%bdh8-`s{#JQm zeuMXn_G8{NFzCm7!}?U^d-HZS^!we6@UM=tuIO;{4`lC)&mTIi&fBI$`ybAG|p4_Bx@z| z@XzJ43M6aai*m)^KaKNLdv*9nz%{q1l}f5v0*`C23k-k%G|p4_Bs)VQ=Zf((kt>b! zB%1=v-Yja0+JSnmG|rP;FQP;O+y_^npHM64YS~zkzS1~P{BxO`yGoo6M%FBtmO^Mn zTxpyq?BkNfc4mB7Ii{SIh%1frgg!8`xMp6RI;SF75my@L34LH>aXp)zR1vFCUum2t z^f8pjwR7wMjq`+aJ7sY#Rtk=h@|y;Vms^ZL#J)pvD%51YVlu}pDOSr8msde$@K^Lt2I zMzU%LI)G~z0Z7LX$?4FNtL*}&#QG%&Mx?LL;)k%8?GvBZ^)gH>Qm(Qk;`$unD%&R> z>se}*TH<B$Qie6&tc5eWf#fam*`Jm_!(&dLWN0$RZ2HY=B*N&H!WEG zoaRg}YQrSA1Ir0-Q~-4|72$h$JR{67qO5kgadW)ULF6hoqD$?IDdOHz`%-Y^>8r;T z{aie6f`&__oN)bJa#BQZvCzi(1s@|%^zIkrjvP*pPqUe9nk>$3^VtSwi9y6&7NtcZ zFC9XXYwB{s>$O6H9}hupvm$_=k%tB4uQYo@n_Ne^;+V@PB7An`fcoq>SM+zmzSegM zSN^%ojoX0aXeno{z{EJyVp(IMbeQ$`4IH17nXPo$BCek#x$<&N=Ek}DSW_2Dg%t&m zy0~1fJ3TJ}?8E*P0V&%rgJh*tQpEMsa`QYk6o`WfZL7Z%wfXmg7NAxBCF5L6O-;><09c77FT}dKCbiN+MO)A(dH99XOb%Y!)^$cvHvHnWO@SYr{vpU14dv=;lXC`482&3dcR9zn9E&NQjK%!fJ-CbLM zeU&`NvxUAiISf6SVtIXD1HWQc23x~yDJ;`&+**JDv|U4SUFDq;1w`t1VjAGlt_b>O5-uql>4 zt`<=bo~y5QTwkx@dP-`+m10w7Nwac`;GqTeV-wo6N|aq9t~YAAN-elj?7Z0n&KQbe z721I}YPh~2SzjkgPN9d5OsYjzq_0{nSIPS7am}1ikn0__?E>m?2KCoInF^a?9@pUx z;F_z^*VHMQ3M;m+ELqS>c?hdj*6Cz2@?6_J>Dqxhea(}HezuU3YG6@c>+Ng%lO3v# z7a&fIk-^}^!Gj0!w3Pkyin9n#?_^~Nzg4Tv723O}U})dqQFj(>bvj%ZA^7^WYp3n9 zmeWsPzkVc{D`>X;cG1jN3i@I4$+dLqDs4>=0Ues$0W)F-lP=dP0Xk2y}T5YtR{5ni*}|BA7P=s5Qdn@N3^Y$lUs zyuHPHvy|z5<;YgKBEWN)fct=!Bn7)Dn4p0LNjl z-(@nwhe%%P>4N3W?KZ7WtwX9&U+Gx>)YPSQ?%n)HTwjZN(X>_=#Mdo@(!#=26`el9 z<}=v>30z;76W;6$oTK4H_#9kc^Xe%p5Ny;}tiN)+uT08aA?B4ymN)F1EMF;>-Eylt z!Y@@~R$O1#TPG?lF>fyV`GG!mZdehRgq4UZ&O79n4U=nSB>Q`gA7@kQffaE@ze3J2 zBLgOpd8}tZMXYYWHrBJS+`5;%x9ns=n*;BpuActBwyy%zp=vC*XnX7QVYv}CvqfkT zFj(JHgPN8??JaHx>eoBwewyEtJg)%1-0He!`O|nxiM?xIU2Bl=qvs?N-0ux-0`6tK ztgoq-c1x`~fru-Q2QQl^eosDEy_7Tax)Liyd2c4-%HzTFc?W#My>}G;e|u50pz)e@ zz@c!#Z^Oa}BJb61Ysw<7JRZDkp7;$3xk3x9-NA~uGI(izo^QDKj>7-%bDcNzg5OVw z+8TadQA!kXJpd0NnHyOgWQ07kf!JqN1Db`uP9pUq^F6vzqVaAfP;#{#E zdxxLbpGeM=itkaBYa-ETUug{Z{Xdi&=;>m~;4Lk8ZhSY(X0jJqGV6eImS*Ky1_o*^ zKMZ6xx2P9&9)Fkl_iXdgo1q3jBJ|Q=pjd|v$c=^JAUzbh2 zT~zVS;&0e!2fW#`iNp|m8tW@(6nqouE5iz80CMuWDG-+BaL(SI(Gk=m*Qw#hc4~CvD?Zf7eIz%DG{7PG14% zx6`a(&$at#m#eRS{{X_0M62E~EzvO-v(Kcl`q7>W&*4j$VXF zLE#S@Ce$4_97+tn-|NA`@{0RsVO_RZu^l$2!(1Q;XJI+unsUo<7TK^-Iva|Lc!JQO zkZWIP3bUnxcDUm(9#`x-;{I94RrbSmvuequRGd=Y%R2a!#}yg!ewS(gpr@d*6w_G2 zm~%|C!1oq+Rh@@M5?;TVy)3z#d8Tmg1^arB%eCs4agq!6?JGoMV>fOXCBwNv!@h)* zwZc-|dB?kJ_4Rpp-y#2_$7_)?a;Rg4so#&FHpS zv2waQJ_^5o%N-Sc#R;61;D%QmmPxrIvM})KO5#$!-sYb3GDVAF)z73C#Pn>6& z(V5wav58E2cGNwa3ganf#xniK2l`nSA{1JNv%)e^>oDexoaT6g-(h63B{IOi-dk&5 zhxl_~{S_)$j$U%?f>8>kpsIUEuU+7{!&>G%ug!(4enwC~f2l6#~#y7i`RR?cYt~CyjRCc7whav=y@=!TS~FGb-!<+Q{|o z2Cnm_2?1JTeQngrwa-9(;K|zhD{se6`#1Cy%$oL=IrpZXb3$uwC9u5}w%oPfH>yuS zU+=E154^~;_U)^|n_E2YO5EHE^o6+Xt$nrnItUVmd@0Y}xKY%M(v2I>1rpoz#hYz! zHJwq!7mB!^foB-n8yrwzm$k^ExbQ1pye@+1c4?Xv&&5 z4V{gJ)SZ>6O3!(M)#-s{I|mc4M^^7&_%Nd!-;(ny*m|iuz`Ny40#}mvp2sh;yaPU| zGu{Fd*a=);tmBG)@Lbs6{vfc(_y!=b3%CyY9$7!|?EtSGy!XYQ`FsqhbppFxt{%|5 zFNVh<`FiUj<2!-C9>Nv-0lB|+%yo0>aR=f0Q@$u3-{p@sC${77zLRkMF`vehu>Ws< zn)&;97mNV+As)P|cGY3-mw}t3St&&ZobZ(*+C#s~p4xsFw?B}1*-LWEis;?8E*oAG z80@7r)Hk8IL_bdYO*N68M`)t~(x^H5N)dOwo+~7KGY$0xjIViDwGu z)}aRn@2a%}uC>MSEgQPAC5Bz_#$#J_(gXn8cs#a&EBAN7e(l$Ci&`1RV8Zzh8>J}B zwPC#AUCPxR=U&vcyo}K;rN<5T)yE@x1GsYgx)c5m9bml`+v|t#W zLn|F_*ZFa7J?oy@cEQVp-|PIvc~J4x9Cja&Pvhj;1fX5ujT=_|U;FvRtMviUp3;J| zxVD7Ne4=ol_EgJX&#k%i|FAziS7wwe77*BBW+LBNuYbf=1U)=Zyu!Ieop_ z96NpE`cZPpk=H&1jk9a}t{*vk@ zb?pM)7lZnm&fFLo9lLmbOCPZfGk5j%-dcU7^SNI~u&*UwlTm}6Iu7f?->fX2Bp z{x6Z>^9|iZ{4Wpzx1QBqYX|0t1ZoF9)YpBY@57w*hx&Qy+6^sro39)Thp>wGhskXn zpWF$(frB5Y<(eZ@UQ6;7WBsA6BR9I)^}~R7;KYd!zjinbGpn#2sMcR6e4csOb3Nu; zS63HfL&L@#gtbW7&PqXdhrK`KeY*Moo@C}qcE_*WsS7OWMmdtl`W0^|zuf{J|o?8;o;uwbamv<%%o%|d&)yfHt|U=CBc(%P_~-!9-{LVKog z1U2>#xG~_dpRi)<7iT7AG-2JxS9t!`z4iSrZhUR#eQSq|Qm#uXmDsHh?5!=g zd{uQNy)GGSCgAh7%jJA*aPYxeuJp+BcOf0B)z)siyy4b7=dQ$qiNU&lLK?UHwGUnE zIdWapBOT83ZomHMaNdj8UzZcLvGgAbM|4wCHZxYhGr;kJrZS84BB*CQT3gR@;}!cx zHkpF}T4pf??ir~i%`$iZ2AhTVfRlz@?)BGvfUfNYODhI)!}7TnKumZK6^bONXWij) zty<1LE|+=2jbhof94{UJZ=Qf#ALyecRU*+(Zhw8=GK=7edC$H3z(MmG^aenmKws*G z8`s}{t>^Gj{KUiGb0lyFqSEcyIy=BAbKcaCs9@%_g6mCm%dkWAC78_>dS`Fak(glN z_I*3x&Bnx-F_na(|RD%t^LwpXBp6m;HIiTzB~wCt8FM zXsnBmSG4!0vsXQ0oR`xjvpsnQHS}pGPbeF38s~dqH7_$*|CAX<$=DwQmC z%Kj#!lHXV#I6$~Q7}p0{`XXq30PX7`!d1R~&8*tj7T#dhzUErETiz`@iG4+eU4*N= zoIT0hzRJ#HE96tISkHPkLaxhQ`Q{7%tpLZokD~`iB!1cX9j|NN{`lEC%tJ*z)?4l`k&z8nzkqajMsQ<(8+f$n|Zauhk1BCA!%hxP08S zVO2_{Y6hNt^=eqyPx$fZx#rAD$zfd;N#9=dVm+>&zGD6LlaX?TU!Ai8;pP>B3ST4T ziuKn|N6pp9D@K)bO~rQXXCveq{Vz0{9Cx|xf?BShi;!zK%X@W!yyj>MX)Uz_ z*e>|uR&Z6U4(#?TT7M@}u6#*DSlP$EHslT!TvsEE1aGnq?)Brn`CR`l;p)}2 zwQ?~Uv!qNeB7OaPgeyr(dFO6-2~O14<9&T9>Z{){_;CU=*4Nh5Nu;koLAYYuwl(P+ z-&L!xC)Lzfe?ayp3D;O(H`Wc&6(W88DZ*8DS8T1mo>Eg^{SJbkCR}5E6=~zf=S2GY zKM}6j$F;Gf)~=}4*R-1Y>UX^S4B;Bz~8PJwDr!(d@){91TA3H_Y)ZyR!@uRj&Vs&or>G7H*iGg$RgcrdcqDb4dp;4T$4w zt#q^F=UCowSN?*-7UXXIEsb{Io1}B_&3K@orLTyqCfZlT`Cl*rpY4>~L2#w4)SogbSAY2o0{-`<=Y&!5mMsF3U3gzM&{Z+v$*0|!kTW(~8h?KQD&<40fj3d$96 z-h+vC?+oX|9<^{*q40L>vbPQ&%#ri9dn4r9&CL0E2!6==mb;d#Pu2bj$`$=I_eaXL ztKx<#S8Ez4C`My_;13Ab$#nbc&Q`nuFR|+DuYX9m_8pV^RFkG{L*!GNX_dTTRtvGd z9?AL2eJd}%V?EdZK)D{5`vhxpm7K5Kx8l+p?Ew01^G~1tJpUhWK?!g>@N9zr_hLNo z{oVYZzhNB#kK=uF1bABj?Ev-@;+{(w&NL?{zN(f0H>J<|adZ6Pt;D_L5^RH!Q=uk@ z`Rpw{&&JPRWLKd{J7!uClY}LQ$FGikkS*|5E`)?7i8bP@z8g`ocuh|qImixg^wnM0%zuJ?iTe-9e3*K!eG2RAEdmm_9w3LI zCk0$X&toeDiu9HCFYitGl?6!;SI6}QMby>p85pdqXHh>0;9Bcs6f)mNt|4czMdC#I zN{1rvO6-u@6I#dh)X^>C5O%gAu5@u&7@K)t*m+WU^;~=U=%?+Q7IA%>yw06Fc65`& z(35pspI2F5=|bD!R~)5%eO_gK{Rq)YaDR=my>(J$ef?-HSEv%m+v@DVNtN~W9fEPs zmlLm%!_bp;Tu=1$_s_^40}lNq1Oi3n*2lq@#m(bf1t^=&7(LoFHJnfPc>FX!S z!vog?loZF!9nThiYeuCUbePPMzIJp4^`KQW-4|OK!Lxh24zD zBQQ%kEN5U^;AUK+-eTeBzm~*eF4tSk<$LE_%wNQn4s4HKk;`>lFXzpCL|Weq6Y$j3hk!dLp^LVjL2* z123+3L&%?1XAoF0IS%F-w0}GY50G2W!nox=Gg`Ic@0~JA^R2J!6Y>|)CgQwxA;8NO zwjcQGaK9Acv%`FD%UFP5IR)mfX#};{O2K3UuOAy|YLy5&ZzIfE8wg>Qp zazShd2#f$p8h-%oz~unl>yC*U&Sp6WGmW(o@U^9u9k^tM54V!LPfttqw){I!w4uzIy(O z%olR?HMp8qAE}-6b%b!OzJR2Js`@G#-@^7RNBIe_3sDkPb;Y`Nz#linwt(0A^4|F_ z$y_rR#>UvZ7j!@?lovHtu2_2e^A>T1xyIG)?#Q|3^`chFvob{2Y`vSV`utm!;HLC| zudk2#58?I~;=B|l_sR5SJy&rw2!!IBR5f&7mm(IxdovpU6(?*yh%X(%zDF&bRbrGYI%Gan{ZxJ;r6^ZX{q9!mmJ7ZXsXc4I!WG zq;l)AklC##u9M0w?0;F0M_8Y!T5cs0$%gSQ-aqgLj%fYkun2aR9A4ZX@Y@Ag^wW0i z?#{vy+S~4gSVU+1@mOAl@h!^s*2s!hFc(;QdeX~VmH(a}yr-$CuTi$Qv~nS5s?d>L zrw}5pZvEB24q4aT7TO^XM(lYJ&l?4u9UDl^84fF%rPP~d#R9i2sNC|S+@hYlX;+HH zHtF^fai#Svv<;zwtP=#jWID&kmSE(ccW*O&IajFIuy|bEmF;yX;)?w*{7v}hGPhf% zb<+kfz4oTqNQjsBgMNJg*NWx+g~`TCrJV78_)WDCC9*|aKR~$h&t-0vl97XnhBC9*64@fIPs5XZ#&gfa z)~vK=n==+tdMR&cC23h~iC_^|22X-qefL*sd<%x-6m<2_it1Sh$Ty5WvE)>!$;SGt z*V7$pCR-p(#Ptw)4y=2TQ=ukpn6?G0afT{$I|vhTeTF<3#v~x8LQNLIffbsnq!Amc z_$?DA;@U-?Mrtrk$fvGTi1_A^d-H(`dRz-X^FUE8e~S|xze}}t}kq8+Sw?mj_aEGszU$k5%T)3 zFDy9@J6XqdO?_2?>rn!ajv!vVz@xqdLfW=oNtIeZqG;fdP};+$G4bj)3|s%P2|cM^X-(ki{!tm z^ESNs1+}9s^k}c_hHNC?Ui6vl06+Lae<{;{=Q|P8F@lpPjvpK7@1srIP#+SS0Q1H| z#nN~ifSL1bR4uFWfl;7Y2mWuN5% zxbD|ut^!)kpQ2pf@>w2)+kYeG+B`(Tm6WUHvpfXX{btNnK&$yvl&kHt8e5C&OVy*&O&7Y!NSA3RyUfjQlxi$|`a3$q>+h@t=#r@lu ztAJMXrzqDC`7HUoIP@us#|@ijNw1__-}brkd2zoV>np_+I8C{J*k{S-#r5KgL`Gv!pjruJ8IR`MkLQ6mzAR z0;eh0Px>tRytqG#xdvugdjqSkWAX!^<nyh}Q=1A_rb6vLF47Nx*pT~J-hsPEB zuKsm|&!Q++umG!EU-EhWa?Ewp1ojZFH+*TovT3Q!3s6;Gy>(7&?d#W?$Fk`wX-w2j z3)@Blc)4}PUG;di?fR<`K3`X!S>+;)+!tZy60@RQv5ob0iTTxw2Cn7B6`SQ&Y^C5* zuHW?QufJCR@)D1Mt5$IA-rPz-S+0NVbNzLR9P32`SEB?=a20fINmqz0)z@$PTz{kf zp!)hqUdU&J|2p!nFQ_Hb340{R4v#>&e|XWY~TW{-8J8 zP2ag=m%Eqsuba)8rsJ_?WlOj9k|L`e@^#PsNJKu@he>zAcQzY{O4b*$&E@jAWVk-} z9X{7b30LV0$Zm5!tv;T&?zvZBJ?L|NoNyIKS!*@7&be=wtFIo{hkUM2#9TM60J{ZT zpNf#{_>5M{vx_BT-q7=G7|O7MsX^@WO~2R{3*cOF9qGq>efeUM5JtWj$7xexc zG(@tz%p#P`xxVPH&y8H4j+!fXv{P)`4ROgZt}fOG7~v}Wby+oFu~OkQp{2FT^-kXo z9Egyss__Xq*BAZBuXp)e4-u}|?vkaq-O#NKHnvcJQmfjf#o9l3Dd&2oj%!!Ub<=9( z)d##t#rOF7`kc$P&tEPI_nXeDqXg_B_7%AvCi*HH2H1f-bhYs6tHt`3yOw2V7?FI= z)s0gM`Q7X5>(NNLP7bHpd_h}KiE08o30M8I_WN8@k#ZfMxj4L9+e#_Y5qpQ*-tzok zAMv^N60Y2ML>`AY5CM+WcLr>MO6m9`M@*SkF4{a>aTp?we;7U&-qOtL-i1dNNXdwZSnf z&!7%#tthlw6m1vW@0VMrBju`oyWjzz>tLi@)o&NzxZz8Ya#gcku!pn@aJ(Q*xW@IY z)=J?!NW0)k-wq5DuB}OJ{w`JPSzKSSU4Z(UAzWj9ZC*#{l~iAm>j>dWua%KjRbLYc zn9se_1L?bICV1Q&+%9J^74L%(@cgs9@dB?`E0Lh<$?p#$EWWl%fcs}1@cjqSBU8cQ z{ObEgmEbG~@AikX{7jFL%b}+&+ehcpr$sPOz1@))w~vg#4_;EA}V30KOPoDMB1vri|qhipNRh%5FNa&eS# z3*tAt#p9}=AxQ8z(0*J8pTcJdjW66w4&r3f1bF=vx#GCtXUW~WB-gV@R!Su~Hsp#3 zKS$nhH=ZQt!c2}&k28CvSaf@|VcOvecx>jZm9hiAn{FVuM&m%vg_+!#>+s}-%VQJSv+ade#Py2= z-0nNcfrRA7T+{7n2HY`%di(k%!f&@9T8o?tHQ5x`{uc(?OIy8oZ}nV%gpk|4mmEk) zHpO+|#7PynewpywU0by!pM;a#nCtB23+-oKg?8X81lewHNRgZgH@Pv_OnPc`a&jWw zKX9szlvY%3eU+fweGfU1kPN`Jt&FUQ>yHwCyCt_{o9EhYMs~G-;D@|X3)_R<&i#M! zA9GLmcuqG#(o~Y8JmC9lW7Fy(a_1Bd&X99)a$^GA4jj14^MgmO50l%nuVyDF&R@Jj zPQ}S42ym7M_SABHgxohZd*Q+)IgXRf5#Y`L19#MNeU#jKe)RI>2o8Xg^Ko*00-Wf9 zT^?8Oe~ch!O2o~G{Pg&1s4 zdOP?3*}N4iEaA~?l6O}f*za-uM}GbF{p99h-3@ljCY6YGOI}QJaxd{G{3W03(Z6Kpy?GfPf|njD{=CGm6}ZLXk)Du1hl?T3s9@9C+@ zzKa|!l$}&@&Pq8eWi?)yyqnDAei$(r-0N}uE5ASRS&|{=s*VC zniH2>1V(`5eS&i9D7il_w+M^?$@>K5R(F8=H+w0RTgUreIH_E@#qDcNxdrx>&XbpI zUpM=`Y}fnmt1q{pdP$}e;_WmTKh%ZFDSSAh^V;SA}|6Z?-!I? zvgg9l$AfZfpzru8<;pE?Uu()Ou&;ESP_})gj8#hCUtey4L%}ifg0i`)T5j=q#r5UZ zal$n&w+M^?$p-}G7L7v^msDlv^js=dzPfZuR#K99OQ~;`X(s+yeVb@E$mXhQx%D70tS`4{+?=@FB1#q@`JkZOI!*46%Pj&UK=MIB zxkcj<1rXKJrBH62=vQxeE5ZG-))Ijd=vN2!Z>>9pGD&l#avs{5s`n^ zOGH%6mB0v)6!~Wjk^5t=1V(@)_0Rf!-#=@Z+#lCp35)>A{cvr4{WU}GkL#}lMu4Qq zKWl{CAJ<7ak)ic1W1bfv(A(I<8q6@2#^%{XI%(z|7I_Ra!Yyt zEVQrF1eR?3O0rTaN&T~2uHZlL3VB1>TvaW%ME+SAkA&lm%Ppd00g@vBEE;$uF1G@} zB$tZ(v!qSlCi!9#$}Q#nv(Ua?#FvJ>Z2L;GQYuOPvs|v=pLL16p=_?ImRlnKtjmOJ zTy7B<0g@vBEE?o7F1G@}B$tZ(vtA{i%T7YM)iM5A*9gqmFN44ckQBwwdX3y4b0shW zB)NYU`n_TNtn1|dm@9!1ASv?CdY#-Kb0shWB&mPaAN&4UZ;<=r`YVAEAh{o|t@qE; z$o+BsmB0v)6!~Y(k^AHND}fOpDe}+C1-O5+mqPtjdH*c5uXzGXwtXd8DV3!DSuR%? zprwHbWph=v-$mq~Mc2!Y%dOUaMk4>L1tKagw+M^?Ns)inVu1TMdnuG#%KK-beKiOy z+4hxWrBssoXSrO#KkH5MhO)V;T5gH_vu+Zuak)ic1W1bfvkK(?xZENz0whKLS;YYN zZ}w6sx0LtKLi<`Guw>g;l9f_P>YwFu1^+CQyrFEas+LA!tK7{IgaFtk^GuzzC2O`DfiG_s3ib zi~vbd{Hza=`(v&IMt~&u&qBX9T;K3*a(~Q~zzC3}{#pOS_s{wWxj(MI5*PuJ`{CMp z|E!Oa`{Vj6fe|1n^3QsQ+#lCp35)H7>UZi~vcIf7U0-{c*WPU<62t{Ifn4;Qq~C3gwpa z{#j^WKTTlCwyz{BrIOS?%jF9GS)U$8MwTy7B<0g@vBtk04A<8q6@ z2#^%{XMH}v{hPfM$}Q#nv(UbNfxwb&UrAOXw%N6{yzDV9sHdj^4Es=lLmk8Im z+#)anBt`yNKSJ)0%Pj&UKvLwN_2mHfZ}w6sx0LtKLi_p^0!y}iC0Qwzr2bhhSMbmJ zDtSZMTvaW%ME+SnO1Q@57J(5UDe}+yF>-%gZV?y(k|O`CzZ2m8&0Y%SmXiKii3CeL z3%(hAgC>Eyz0cqC-9P=0-{nIJ@fMH(cg4VUBk%O@eG2xw{50i7PB;S~{CI z3N-FP=ov*U5Q=}$S57zK|4$^|?;d&oyidr9kdyP3LLpx%(kVD0=dd;6C|A_i50FQZ z&GpzoYR;gJ_ayIjPVP$FpE$E)kNXPWyu*8wrz3o!Zq`MoiA0#Q+^j_U%1D;{bD7)8 z1t z6RzGFdH=x<*562QC|>ym`xJ$AXxG?Oh+Z+ogx~ftLwa$ygP)10L5$ zeTe5G*ZE0N#`v7W{IUHLW{DOWE~)&7g>SyO~7ozp4f-39jbg;Tu)eSLjQE9F^9 zzolF2HNe`*zFr_)Ww4|&)vjmN+Slm_xptC$eI-(^RD0D)i|p$R;Ywp`%6My$eLc~8 ze)f2C<~7ky_H~wUmBEtA>?HeoF+#4LWM3~u%9U!bI%$!8y-c{iBl%SY_VxU%SAT74 z*r1*4>#KyTWUL+4KX5fduAO9GuSLpL_Ag?qXOk%@eMVuW?^|dVK;SebouqSYOxYx7Md3eO(}2pIGb0`24yAMEbf& zxW@XrF1~d>Z1jIU@B72^n=%vY+!}whCIQb5c>b?kclmaKaP9U^N&A1vunn`sW^`NE ztlT2YOq?HOmyEn_%FbEZE4hMQJK+1j;=H(N!c}hWiNv_2t=KuOptm>1223KZuMn8)UJaNncimC1u39p&t?A%wmFGC@H<9Tdsla zQb$!?QXW^&F9ZGHXCvea{o3=ER@809w3c%1^L6rKq+Au8v;iEw`7oZo9{0Ikij=FL zsd76$Uf|VV@ztKg1neheR|rU6Dka@^!9BJ8+K0&t<_)`C&{k48bAFzjj*}Y_Xw=sf zy+?LMi{_;O%M?2E7rI8?XkW#0a19#P-5^A zY!P@D+z&gf1{^xjTd}R)Iiu98mzG$`%e{{WU(bbZ4a&kVd5@k1$)9dNCS>u`X) z)jru14oO}rC3irJYw#$KuDiN*ttJz%C-eGzrSvxZU(zhT%b6wH;fbP_v&^?`-FfTn zdH7Fjy+ptU$x)DEv!(u1Y;MKTp_*JQLm;g@n}m8Z%WICd!Tr<@ET{BBZiDML`gn9I zy*xX5Wp=ZYT(0l0+5w~ze2gvbW7jd`ZpzuW~Jn)2Ueu7U!^SnfA-!4K9b`)?4G@NOClx8l4VJ( zB?%HFabvjzY3>SxV|T#?c0tTuT#83yrU5i}W_s8&g9RwbTHlW2IEpRb7kx;!<#Y0VUk)cfn~4)&vSs;BY+3x?>+T1fIYqDRdU;4WL z!&gNJc>$zRddy?E`Ri7J{(&HV;0qzo``Gp8KOt+svZ{Hgu>hBdZ}gzfF20@VW{^o(6&L|Bab#yM(>(> z0=^#DM?`~9-;BGkJ;2w9sL$Iw-kE@}2i{xT4}(YkD-787KmY8=;N#DI;L#5~^sJT5 z6-&=O`~31+zW8#vI{39J8YYfiS=ym%e=6Bc0PM=Nl6);g~-?rm%H1$XPHmuQjzVmr1!uwRKT&R>3Ollgm> z=?Ng$jc_$X;#%8E(C6!&y*>eCd6*hk;iWV$JRatLu%`$@EG_NO|9Uv=k0p8KbGit3 zZ?$x<-E=W_5gfZY_~i$q<5DSHKlY|jOmCW*&CH!V(@l@GC+-!wl71zw(y>E(;=zS) z0zKNtZVTk~vrbSM`mjy~U0$gf&$bE|T`!*#z7fNUN3JBV#5K-!P7TAk^*A?yEpXV^ zs9P@An)Nsj?B93p;J$se9SU2ydx@P0+^pfs`wc&u{n)#Hyz<#-odWD;JnO1DIj;Io zdTzC(#vf8A(w7E;u?8gz<2Bf|x@0g9^y>JE743NY)p1>It(6s zI~Jo(dhOVz5o#~gwPWK{raC>Kz0n;`?rl9#JFml8_6+~L*NkN}nos(AAdGjRcI+b0 zF3fexbKNTycxhGC_{gY&*N^f=u-hZxkR{FYL^}0p&Q&-K^ASb+A{V~jW{c-sY25Kr zvza5f&eU~IaXuo7d!uQHGK|-+vb02UK&?1MTfr=P5Lk$#-6bm7g)((q&$0WskzLL% zZ7VqdQyReP@p;q823&)e6Zx~wGeW|zEm$80T3a}Z8|QsAM_i%D5cNPU*9(j**$C`Z zq)FsDHe(`LXvfyg>u@9_HwpWN%aLMCOkpUgPlom@^}iftPd~}h63KMfz(}Szuu1hvd9&60UuFtyRbnpKGwbt==9ko^Xs^tVin#l zY!Hl(Jz^x-1E>e;!=>Jb$KRH&kVW`6#m zc&duEmU{jAeyDwc-GQ)rWi^?VJgAXZzrR4m^PK&lQl0g^H{(DqpC2x7wmy!8s3BKw z51=0K{n`oVitX4=xa#x(_rD68uk`gAx7X9SM`g$PiA&Is&ogUzRHuM|xw$=&g^nl-|rCKkmogDo* zO|P5Za|VHg9`F~|NI2I{{n|P`u*L*04BKXBqD}TMp3Tf%+KX?l&Yn}p)nP^6%F+_a z{)-MwDSfr9re}?UtK<3-16Ugo$3BQC**|+?PBEvyDR6aMuP|m5Q@~C|n)JEi9I&cv zd+SctRyhyawO+UL)p5-;a(A$_MAGN#!BnMSaT|iv$E4%Rdw1U?0h5*KbA?WWZkJE? zNIP=nv1f0t&k*r(|D~z32ATsflDpQQh5lEUv3mayloju$S2y;E$!PL9i1?$$)%Im4>PVG5$3v>9$cEsBtySmV_a8+1Bp-%%w1p= z8j{q>>zA`4n+L$;xc+@P{fKN}y^{W`y&%P$hbs;n755Hkm8j(b(#h-JXO&3L>%giq zDp@bD{~Mm}8)AGybLAE0ce&}%ZHIv6E$|;-S07_E zie1dvJd7#g+Ttq?=XW_=$Mqkv>gBn@%3Eq7qr&kUtm>{#`t#<%JWuEjd=mbn9{48q zMCTVTi3a!#D5zm;8oe7%|IY4gZzlt;ch_+JX1L|au)lC|c6v6ypM!-D2QNFNu4~o$@_JLPynZWiB|R|Y~hu-^OzG)S^mqHMa==2ulO?j%y&`*>_)mQspI+` z>=`a!9%V<-Cr#z*>(@iI`t>^j-u@bp{#W8TGU%!jhX1)I)HgUza z0c>cUIz4BaCeU&HZbos*@(#1Z$ddzVDZOMGRG<`az1x3pk-UBn(hFZ#3z_K?k;7yK z4yd_exnkw>nKj4G=ZqojbG@aO>-WNQtMJ*+RP*_=yTXSaF)E!W2NcynfNjqNxVrb& z_W`c0_g1f2(3bE7@*2!rPGh%UWhGsly>xCVJ$;UyiZnTZKEmnr)L^I%%#ckqOL50_UqBn_Mc(ZXbpG1}#9 zW_V1E4sAqR^6r+VP~ z%S5hx{1(2q{;6=CNhrSFPl#OqS&R?fUkw+GgGFRbngLR$2Y!xm{qkTK=Ns%)q{;2~ z7I?U!&8+6Fk_o}v0oU#I;&49gpGR`n0-#&_NNH{thU>*C(6K9Sv9gzf264TOoVPwa zzUukw@2oFx48uLb|K_?-bzJ{7=emtRB-KBAX-_U((D}MM@9@WMpgnaz{KxjyCmF%? z(o>lem)MDjlh9wV^psH^mjIC8U+~UtKVb<@e+vFz3qDQ-4$%IkhrsB8*x%V8_Sf~o zk2~I(>VNh9E_ME_UuLxC1!Wbh8Bm?ou$TQVPqKARaov(%Wn88GF3ir_ORp_PpuJ@M zdkeY#8Y@bgE81D;&tg>?k<@YhH|)vc^=Gk)yF97m`s?hO;_zn~=gb0r$d%9QfO_EH z#>mxd{klE>z@5PK)5!H&r~$6wf!t>D`rOA;wOs$5k5O8)2H#bG&NgV(t!?=W^lL5G z{~JFh#Y+3_ERm-A_vpI3ojxRTeX>qoe*+8s%1~aVx$e<*PNU$;*FDF%9sWHlRN8)Z zCPu~#TN=ivS8rz_*Z;t{N^4o*YErk>7C9Z)|7YvdZ8ghIMVbVzN6eI0h<7H&gC0zr1m>846{DeWTE9uhzFUI=&y0Nph2|fo>zF+%x^lRgw7kvHyN0!g> zUV=z?b|T`WseWx;+}nR)>@JS81A!#O!H+}dR@+k&?N$G)&aeI77{B?BqWxGwJ0!uc zJqz<_+SzKwT5epUNj+k0LR4v*E?#t{&yr8GQOBTH+^ZB_T|8N#FRwR;T#+YizXSg#F#+4+!r7VG z;fuk6z+cWatjh>R;B&pDmh1lnev=_XoK16hd@L=1)Gv~AMO_Y6)o@iX0e5w|`?_j% zT>lq5@wE_S$aOkAjC^-vuHZ;qaaOAynqjJIAp2bF^uX@|y=x)CP=+GsNd?}RD@+b; z=W=$gyJQyq1K`*8AM^h3VSk?<8up7U-Agu4;1GBOj@=TB-Ot8(DN`MhiUU==-RQLW%$D80Xq|I zGSIIyBqrLjce6Ad*FRx5B;0N2k28XIBdgJjq>k(7*rTDnAi34btLne7F|#LL{OcRJ zVd!`pF6F%8LMhiWf&)0e3(QlBa*6B4J^=s!ij@NMK(nLhljhD_4*dl%Zw|`kIrxu! zaZV!I&YyvKZRkK?Z|b}`_+ElIBA*z}vya=~20QwzDAC(DPXNak98TTlueagrQULvV zmVG|-Yq3+2CSe|u%V9rETZ50K`U`M8OxA6GWoyKC*!RM2xm>q=gpmSFSYfCKV0?l9 z)b9+ReIJw2$?#ln*BSw|v+DK0e#TW=543i--E;N9)S=Yj{fBNt-HNiiAO7HcdbCOR z$5K6}?GJ%}0J!>(^#vFbi-|*w>y%tqfnVodeQ)_U*TJ8II4@b9yxz>XO3N$84|H(* zdp0XdYJETVEyy)wi+=51KX>b2AL`e7dA);+rOhAC(io_{aZEbalValU3JIDuyeW7dUncRqXM2fxwxpX#+nd^iTx?CR;7EcRl>>x8sO{-k4PCT})n6st2hZ0tZ14Q2!R?{}RsiMLH|9$9R{# zf$=VWyWn80{rVop_5O=F(T;8~1ZLdw@TKmzSZn2OANmLG4&Gajh9C7YuHX3D&)<^z z^N&4M{meIh@*Ds2_#6LfBs9uui)s64Kv|1c_KIoYS-#B*@dG}W-wWwHz_`wzf;q+8 zrgr0ud=@$N{^fx#H(R$J*q7IEU5IywXCGu-&rgpD>w)vrF!iH>^18j=2663YTrXZ+ zR9jzyKmzpZ#l`gWY16>!< zjO+a6k;eso{#!*tf5Bzcuj?a2kB=CHSI2drhU?>^3!ihYqo#2U;|J)yHORPDWS5JB z`CrdD#mz;}T{Q?Q{2CGAv3mmh^}XS*bBJ-Bc1xR{v$|GMqmNHKJ~;X~{8|@JUraB} z!opeEp{?I@y9wWZ1=o&eLH`!42(ftj^4y}byzH8@ZZ}aV?}veP?V89D&m}(BJ8HR( zGOmlK=jYDND!}V?4pH++=5pQc=T_l!9|5kfhiPl+sq%`TrDf{;F21~mer@9VD3jOp z+?kMYZ`TTe{b*-U)*3(IWJqq3akUmt3(oe2 z>+bmdhSn;~iGvF!F;_wJP6Cl{yt6`mdG(_-Q>k27RGM+U2(E#A-VvLn72;prLdm=y zS)c2d1bTp6f>WHUQ_Q(n%MHQ=UZ>8!&@lIP*WZeyhTSQ|kIxF{clnF(7N&vgmM+*z z?9TmlYpwpg4zRA-SB4LO@tQMCUKcXc9Ym?$n2I0xdg}C?nodtO{3yCu!}@w4v|m?l z3OLL%uF!;ebnwP_+P>nt?Jc!FHZ(fkm6N~tT*J7GuiFTKo?u*;EbnmJ(3;3NpqA20 zCJAcz%=^I7+DIL&nb+Yoer->re6C^q0F`i-aXow&ot4>d_rn;~jD_(9Fdn9k z>muj+RvDgDYLd7<&AGmV2*~UMuGqh2zPv7RuJ4rLNu?UiHJk_f=I~)N!1W^`+lL>9 zdGsEBm@q`X2d>kzhRG^I^7ZSRf^l&K?Hn+@7Ft&j2am4pQ?`|}J-Q&mJ@u4x%fZNt?ukEY-IHGVKy;no7&oizp*>)Y* z%Q&D$)r!-`0#Vm1bPs%nTw#4~|4xYO3k)Vpirg&>*sA(q#d>-~Zo7#>RYSXA6nrnZ zO~U^#=aZJ=$==o!0hC7?Z%7W7v5+ekaCQHumFPtKP2FYpU4#gah5oGj!`mNcTwz{^ z!;(*RVrh03C)8zY@u_}T@#~=`C*H1&&&s)FT+=Ut8}4LI-JtqyJwWY(ry18zi&BjM zz#c6E^}u21GvM120YvV0taBFEtpT!&+xTjwyEZ`cYNhS=8`(Qcu6f(%TCrHPXV^E zNM64tq$CqTtp5tuM~6tQ>o4fivpBCVjWeQ0n4tvhrS-sosyLOr{e&s=F@%#pvXf2WIxz6axN@=}oiNJo}&I+_Bt!?^2`VjV?Wa(bAc>-v^lDys;W~26je>mBES-mT_ z2^{q0HSiD6{I6fO{c%rT8H-kuhnT#Qi{-<-fJuJPOE*j4CMK_M2{T<|nS1(`!Du0Q zGm}>eb^UUlf07^c(#;aMg~{vN!c1SmGWX<_!Du0QE0fo^hxxve=bz*Uy>zn#Zu8|e zuwQA!>sPVNJ$Yp?T1ei`N~cnT|jYd;pfcMscREoxJ|2=r7;7t~+ZzTDMLu%dj%CG|8F(BNRldLM%vXLvvD{=jLb_e7; zWTzrc4sfnxk3?GbZWgBF`uEulff$Q!HC)xXs<-S8E{WC{PvOY*c=)R)dHn`fb$ndU z7q1lEt3`zxw=YLx%xdl66pbzU9-HhT{-rYRkDh9*_Nm!{xbP{ zi@1ISZiBdzy(M*L+g#_0727LXxazT$m#Qwda&=t)5#uUvXOX;~c0JoF#`fUC6(Lu$ z2S{GOX;-+CJ>cY?Fra;)lhH;(Effi`lh0dG6Lj9oO$-T;=_QTU^hd?pBDJ z`_^&&ZpQVXCQp>7n0`HJL)*ZVhOCb3_b{$BW;RNeye!7msD`YL>-RFQy$O1mMs{;X_oN{&#Th|-_N+p`&|OA zMj5Xm*Lpqh1G~W0C?!xQuS0N*+YiEjYG={j|3Kgm=z*$}uM9fS!96!KCs4y~6}deh z5#7PZ!^9-)r_FFP)1$?<$MJ>~Pe^UnA7-^n>sMBlQAr$cNaNy&>yPj!oa6_+bh8Bb zctdKl{wU8p$q#zzW(nYULy}i&TYZ9Op5zC;bh89-ydlNA+!AK`F_!t0EZs{sPXNao zlDyLRf`81jPx6Cax>*7^-jL*#-u*w$GWX<_!Du0g;|)n(X&mQ2;rS=|K`-4b0UU2g z@=CMq{{+k2lUD|#g(QwQBzdKAoIlC)Px6E4(-56KHazyo@VONgPdJl9Uph{r>oZV17d4`U~`7 z4Eq7)6rBo2!5=YbbU`YGT*>c3?bz31;7L^ssB*Am&KG6=P$^7odhT229AaFiO@2y`K;I~teNqTSn+npc?oHzBol}a`GU;k^!ZxZ%B|7&}~ zq>Cf^ZB|rVvtHwXD+h?f#hkJ&86U|lUBi23sxDX zcu`~i6k1*0>4odV91GVsB(DFH@so}#9#A3KrD>WLjn&@0$(#Is!ywxIt>I(*uNWW4 zfT>)xw6?f{laS^u|6RC}WLKLh!jr~x1y;oM_aGgY-D)aVoqqj&CXcfx*nvPYN&58< z1o-V#q^a_%)31LB5PJG`CrN1T{1#WZob>BwAl=ii&GFmmszaLitUuc6VuACf_7@=6 z`uMCr7T~v2k*4++aIRp&`rBuBf*^3-)cyj_mHb(MBEWB_B2Dct;Olc!{Ojj-g3vqP zG=X4!!yvAh;)wpV>D;{wcOnpsHw?Ive*LqZF7BOgngEVBBzu7L>z_BByYmatuk9}l zqe`B;>RAPdi^l;6-LH39f9zzy=`TZEc-ZTY4PmsntLcwLkg)w#u=D@EWs)8Al1&pp z8-V&@Zkr6U{dLp1JHIgO-%?kd%9<*=MHt0V%)zXss${L&%Jp)#*LfwoP{IM;j-3o{ z;D5(>AEvfrkt@Bo4u)L+Ppn+G#~GOv0?WDH6mtEWSh;SGGcuLyEg{#xjg>3R_lDz) zOoHn3V|LcH0O;R^Tqj}Qv$H}NE$(XUtZPB$FR(Itb{2!tLbArrx)x-7qlNsPUYZCy zE9AO0Ibo;Jn#i9BJ1gY6F9?5Wf=cI?nA%@ZV`qh2_s7aL0d`i%^+2p#6JTe(hEc|; z)J-ARNl5qXEF{wUh6uOfwL`8q$0)C84=mWL7PwrE^1a}=;|*B*9Jl=;*IQ!bYN|cJ z$8#SHx!xKpS2O)Coa;>?*V|&{YNkEFx!w|Ty**a0rrHDjTl11pKX*UpN|TrR8o2kT zSptZV=6$3X!iN}FmTb1j-gQ90_q&7+0h&+q;U3J6Wy2qDcpw;W_};LzM;KS7RL6BB zu>jPmqzCQ`0Sqv%ESW?+Z9lU=-Z0byePJnsJ(z9tq>LDob$nl-2WVd1A;xutF6`}F zB5*TY{bU{2Va8Q>cx);h#d+E(u0B{+7p#2V-W(iL*=o7s7I3c3ReL~HoJ!t)LfzXp zI59L)zPF_Z+@*_efsrpyhI-&V;XRBnu1fg60NR>e0BFVyIAZ;=A;V*g<)Xt5dda2< zplBZ37g(-n%i?w%|AYtc!gOzInZSPV5t5xnnPF;&-qs<31B`3XTaZdkvNFkMz)nS) ze8wtTt4`UvYNjUH85H}86?ej|Ku5yNyWH3yZHH(`#9 zf|{FwH&-^sdZnv6kb3JD*T9NRrKY4SW#tz;aaz-r&u|?-V>Rnr0?+DMH*!omHVO%pSM5eQ| zPBNS{ri-15G+AqBjXhdtXhm9AoQ3J^tWz=GK$7gNxfr=7!5$zx>!}{sjtOx4mF%q3 z9hcgC0ZFp6=9|aT@s&xkvlcq0)qDY_+F7X-__f1$LZU(Io#JtvG4WKt340u8bU1ap z|0vXcrFpdQtt$ zxrhJqQ>lB{6Fz_6;h~3zm!0Bp$@cR7&p!J^xnyPSC!Tw5=;4PRzMoy$UUCsiRpqSb zlq#xXZ&Z}MVP~rqYdLQ>RUqaW-WbH2YwG&=E<*iEJzGJo?_`y~`$2ZlOEyiwm)AQ3 zd8N4?sjm=^pMQ2_@Ue;K;P2x@&wb#?hng<9$qO@fF;}phyjtNz30Z<$QgFk-M5%(Qd!_~4koOiQU-ftgNvQb*#=dv9&3sPabAljP> zFm(90u^sy+R^q!vwJWR0uw*d5O8}4bD~&h8M^%PBZ(NUqzx8A93EErK&&|CB&p&Go zzLFli4DGGwwv$88J^TCzpNm2dPrHSZlecr=9PkQGam7`3vEprFY<5$D*;c8Pcd~x# z4BP}%NL=);S5KoJpmr?gdM|?SZ7mbf=>gu3RV|m;%YX!QdVu?1W77lUV}r{M`U+c9 z2YNj)wg4zQ&?gTz<#ZhS1zLHE9h;l z6Y%8~VhC`fCcv9nF`s+O=XkT0ebP%_kHCJQc`W2g*Kv?Nu0*A^J;oK+k2fU$OKTsS>FMVSIKG$&m0qi@#jn+NJw1s~Jw@YBR7B|$?+&PuAD$=zH zK1f~B2SE>Pq__o;N^SKX#2~DL7?4pgE_fhy2=!|yuY~c782e?G?j@TiaFa$}x8k!1 zbo0fvd?m;$4Bs{_)+Gfkf<}4ee(es!lv?I&N`_lB^19{MjzwOVt4_XRoW$O$kyq~5 zHm+MgrXR#@{`>>A_JE?gW02SWzH*%5HS}cS``b10dM~TBC1)thm-OTvzJ3k-F2sVz zY0^2V{h;3*PbAUh*AE-R$--jRC1DcBNe8`g|Q%?#q_ux+@PIL#4>AUS7FY zkTwY*lDOhzmAm|sovj!ovdFbwUW3tx!Ivt{6}o#N0@NR`WfWYUex>*~B+GSeKswsL zCdO(bA)S8ZtpsVVrpCbs>_wAIg(*rzyK($k73we^H2gv`@0-m-nHCqqtY`@<5JHdeN zw!z&XW4hq1TI!N#?rb=CIFBdg=e?E#8~lj2%&-Mo2J!*Owbt1Fcv zJ;3dOpv53XHI*uPE_$?$L#vZlK9AlZIi!BctCqJ6Ye6M~>sFj5JUPv^D}@(U<#n>= zVf8&(_4WX*8;2}wE!*hnUU9NlppVNlO%v$!0FQr_?k~7XEds?x5F4Ns&^|pLN+sD; z?_gpnZNH-FI^fUwHe}e6ap>2s{k3lm>_)!4k-&IImGs-OXEO@M$QP^<1Q{0v2aiW} z(@mAr$dz~FABc&oTdlwV4%;BGz;%CMO_8m7IQ%|P2fVb{)R)utMNcixo>XHaBO}Tw zfW6gnIexC;mr7$T=akOSD6hWqOZa)=`3V=0YkKBfW)2RQ?5w|JTwjytnwWOMUooz~Aul!6G_nn{|C78u||znXLM%<)R7}Yqw313SE4I(FO;P7XZ;Q1O1^HXdj+mwzM4iA z#}_pEU;mbImF|xn@ZGOwbER0UzXPt)b^yu$fXcv>+O|u_rtG=A64x&ghH-P3@HP<>d9{jp=fmHK1< zOjuqu{jt~~+jO^eH}%Ip3S49Ck5x(W6CPz;m6QSq%Z2`e(WLYjJjS@j&>x!^f7S%! zIw>!&iHXa2oN*ht}n{VYhvPEzLas5?~hGRyvvh}t9*MaIq@#X7+3lJ z*yO~!9A{i#6>e`ODcpZMjkb;>yZ1k0jIysGOqIdvFLU&yWfzwo?u+%`(x2fXf{{sH#`Mg zrR@N6J0z(;c8+nKBmhGDB=yHW#kgJ*w+E8bAA6c{mDUGI>W@7ST&X|yFNEb)(;wSP zcWkPg`eQEv*Is{YXD<|;{rU{!syZwFhPji}AA6Z`?e)jrP&Bj`=;ZZT#&uGgE4q^) zuZii8eLv&c>yK?uhII1!9OL?8d&M@L3*yNDw!=?{(@@g@zuL`%flGGo&%((XYW1AMynhSOEnq^$&{VvJrkIgZzz5du5 zF>LxkC$Bc+`ntG&O-_I8Dsb)f$2KjR+6#5^y2iNn`eU`&Zg^71)nQzF{joPhsJ(!5 zrT*9}z*X7~pqoije{7y{og@H4`y}<$ z#{Srrx?{VlKlTH_HOBtf#Pq{_ka1N)?<*=cN&N*MVq9bBk4? zGhgwC8P^#4V-qu9@ioTvMIkw*Vw2Qg@a2rFe1B|m#&3NE<0{|YN=|>lS2C{h{jtdz zzx7p&>#M@;Etp?BG2^$snsJSxKlZVt%$xHyjH|rgWi&DKYkw`{D&HTQocXoCj&Xfm zT)&PbrXBnBz_r&OOD&i7_Pl=!aQfTdXIy*zvC(n;2FA75AKN)s>W}?K;3{ng(A_4f zKlUFou9E~nXrHA1*pD!-*W~Si#LQRxj~G{JeUPO7*zW?a)F1mlgyprdKNc5|g$av? z9&JkVbkq3Q?**zT)p=Tvbz2)BZ&un~9mP_*KR=hW^;Z%vb#VjO%3kqS#bU zkk`b-W&8l+8bg0DFrr`eQc+*ER+%D?4cAD&^J-5y*jd)&ubN!Y%llO8r;hN}Ier z(EJ*_bWh!|N3PG;as6-cay`-woLard{Y+j7=WkI03X|5aYW|#b7h0=GBDr4I-ui9e zD$SE_UM*Nokq!*n>$twoxK0W`tD0})WhH!1Q53J^`rjE>Y5P@WGD}fB$6hN#$MtuB z>yt6v=z!l1lMKJh|72X{{aF(eLk4=Zbn^PY7*~1w6{mGbhP?hR<0|dn9`M6mlEL-& z7}q<6^(=5bGBj$Q#On0G?=!A7mVv9bSbu8pckMafJ`g$0b z_4)-mE3?OVm%$@y{%ktaRs|IAQYam<2J=>>&{iqYXF_p222zU~#cA$?1aY18Kk5Bx zl>o+N5LfEU+7Dc*-;mC=T5hw~!+XmquI6npV?Ep2E7I2N-S2#zj_U!&Rla{~EJV6D z;?;I0)!HXIt_K-c`TnhOW4Tg1A^qkL0ax1O<@JbiJymc$QUzwnEsuL6t~W8RiU14k z2VmA56S?Z_ft!JATybwgU)Qb|tJANy0N0K1&gAt#a_oUy8CUuEf#lc&w=u5r{oKj1 z2W|(hv?)pm?IGU9$oH1c9=L;XofP6p#hPjlq*CB_*?)*0)8F%V)%qJXA4PtUdAVxa zuh==&Z8vuX}5JC#AFSW$VWQpwwcb}{Ez#ZH8oJxBaWl-HoYfa?AQO2B?M zxGp=Z-3}GVA=g@Y{UqaR3(KpKq6++c|G=$*JwR`-Pcg19yfBn`W?^Rb1UnaH(zA*= zw*Wu=WzX_9qbzy1%WBjEzr=1SW_dM31pq&ty#6xd+LKoXqopLsYhAnGn-F%mJw{Gh zIuY^y>1x`$LhpP-S_A>2ZLV()nSGRTeP%jhkafj9lb$w`s;(XTt&HoX(K-+jA6^4F%iC^%oe|e=$k4W%ijXn~C9ig$!9hIe$`yCzYD^)~w>H zoi`6|qr7e~uIHzSfXx2X+&S}*`luSYelz3xn|~w2lS-X;SDlKTT~pI;q2$@+vN4n! zxqgaqEuA3(GW*5Fg)_#WtU=Vs^*=GL={ZBOYV554%(=d!=1YkDz-X>@e!_RN ze#004P`1Ayz4TN^YM{2i!17*-{F`sDK#YUm@Vzgo6!jjymvL>c)aG*ysP(>_^q|J( zZzr-Vu?ax&gwzjv592EAc1abg`HC~R?&hln+a$a?u8MJ$jw34Pt@0Xl96FWknr)Ea z>bM?eTvcSh41Gb%R`yD@WRj!?&xu?&Ld|+__~`dCu6i2Lopn8D)hSweRkRBB6RNLl z2x8<)<2I;Q_P#i|mY+}ynZcQ}?F}=E?hB5%BpuiL8CU#Va&v*};?mqg61es;uB?e5 zf)}}-FFF*)EK zpONh^SX`RUs1i7}tW_9bQ1aZD>}-W@q^tMHwf3$57G|`*g@WOPo-ys)0t=aRN4+sZ zH`hV2K|f5umGr=!jB5u)HF#OKeVpZ{I4avg;k zUUGJBPg83B=5$=&%DAE(Cbe0qrcp(SX|xC4j;F(|B&-N7&W?|bjEt!1vnQm6GSQ>Nx<_o!hkD?x zVa;E}?m)Vq+g&!sU}e+-{{YSVNL+bHmNZv;!_HPK)^gsixvj20KzTi$3N-5-;nN6* z5Y{j&x)q$4%)#;8H6L{Ofld#6F@Gjufju*vR&G&^FOLn6gPOfMT(TgZV3prNSEi9` zy&iZMe-gzHqEC;HjRH>3e!1#+CP}Q0>z8nRll&n1Gz>dd3+eM}&GK?rEtpKt5X8up z{4TU66kluSX1qXf>vsyJs%JkWSjDast>gM0b|<$;b2XAG^}_`IERxsvGOo8vbIsWW z)CKUmvU3JWtxjI=VO;N%<_g|{RU2$AP_W?G4(E61e!z(Bc-Y>ec9vpXrIUjSX3i^Tef*M`Uehgf0%k%SYEk*Ky5d^RR6gPT`jbMyw?0fiRBUkPcxJg*QZgCw0uvY@Gh0?}w zp}NtCE!_GyS+~R5)R-bF_kDdFoK0Og7#m2IxVcGM=>3OGkMa>nU zZP0i{x1MRVv%ZNv%B|Gt#m+^UoPtH-^7iKN9Ih3&>RF{VwcunuH++pnSyilMq57n8 zM)dajW_AZ(5T2iqRb^BXS&~1C;xazUpHR5-U>fEj@hn_BQcb64c*WhGMm=l!G3IaLQaeWgLQPK_URHVrPWf!yFW~pKrS{+y3-V!zkKwb-W!S#RW&<=3Q zm2#wC+pZO+~CnluG#rgSI%RMT&V>cu;cxP9}+fTr|0Ju7iX9JI8EjlRQ=%SQulRlS4`j^2)I%| zw_>8%i_2gzT1e`+9%lK)<1!u{8uLvp=!Jn`&F&RY#tf4>uJ^KQZp8}(w|=AJU265f zeT-u--i5(vA*qws`&s^8ybFWTLK3+iPX*o;@?-V2kiXMQO^qK2xCVNF;)ovT6jlrQ z&5k1qxDt*BDFOQr3%|E^uwU67bZ3(5SMm$=I74=Sp%bz!Zx-H*41XPK1f;0rC&GZ$|W) zk!!twAWl0yN&bPc7QUBGFE!Oa5a@xxpGCia?1IJfxY0g1ivF*acUFr92!h3Fb4n0Y zgi}1^qOT|J5(BOQy(3}ew8ukfu7lH+Vm9uFj-fss*GE~swVp2aK}1R5TD}@lS$nA% z9oM7m2H8+9b~d^sa4jW;>thUCpn2Jeh?BrIyBu+ud!aZkuk`z$U^gbOUvtLmSK|6O z<0`LTbH?je;`#*RDz9I2#_Lz&`lXDkynf9YuV2Xyc#?6I*RN&c^(%2b#<fT;=s^*?9d*T;IpI%Inv%k@_{2noJ$rPa_KgpoNgDg8lu6!vmq+%=A2lY5H?L zb>FDM>p_8d?K-X$r-ixh`JU_L?ff$uW%OXKy{?DKp0 zq(!kBiH~ zBzhJ=fh9L+o!)LAeu!L;h4VlY*AML)S7WdO!N&1h*BIA(gcYru$GJ4y*9Ci359qjl z4deQTFjusUPzAKBV)r!HI{WqOdt4cTc9V^I;2T&`hkjjlU9+|7igK%!QnkV=Z6Ud* z<+W~Iv+rlm^~O3o5J;9^uG;o1p&H-;q5^frS!B>I2>b)&WBGv?Z-DG7RkRAW>N98# z0@MSw^XUB`yI*+_k15a5J;|g?kjdNm_KW5D9*@RfrqInveBRQ3HJFt-^&gJ zlAP=4(1_}HJ+=CZQ&J;Ck9PNPgGR1D&iLK)DmxHJW~R?>=~p#)O7(-n4JLaOs4UhZ z8@c`-tN$L}NMPrqNj%+OKTQqY0LtWja>clu_4QU7z@|xVAjpq%BV#okt&Dt*T$R!uL4XwQG z+pWr^?W=TQ*E*{(I(U9GSezO{3y(+eZ^Ag>A`V7G2`Z!H`R=@>Qt;eS_;s`s%_s| zxSY)JdNDVY!z@F&+@NRefdLDFyaq2P@)N!Z(7hH@T*i?Jb>-A6T4d3Ffiah+{rW9)?Z=6URklTm9pwznC*JDI<9YLTx(lm(eoWp>rT09<@1{gRz9|Hk#3l) zc+Na$MoPh4VUC-X^@Xy8ic1oOJSv>+sQgi+nM3ebjqccc%ag#i44HBdI(k#;H@0dCg8p0I$0Z*+Jcq0E}S(=UTJ-9;)?4+#K-jt z#A>@&>}bEPT`vvaSoGea-~4-!YfOHZ(MLw1spS?cW;C<5zE8AI>$&1k4Vs>m_FEYu zPRyT}g~f~vg9?mv@`@qaB(ExBj`hWb(mFhX>qU9y@YTsHvLrdBeLat;j*}#>hXESN z>ts{_cPM8p(5{J)*ZY70whiLgf)1BV)$`mcEN+U^6*|S7lZBZ}b8*x!RfkRwU>_`T z6`r;{g&^zLLK^{s3A&nU%8wkVw+H$dS84rfB2)Yg=;ZYQ#+Bq2ua(%g`U~m+7eHhs z>WiyP9oGk;a`I!*Uh005WDnqa8)Of>CDRFY=vQ2CgY+uxqnFg6#3ae<2$NTmTPd!jUy~rOIO>n|D($7Xnk%o{@dNam z$8{n2oSIThvD^WLk(w|y*|0%V55RNr_yOXI>p~D$^dCrW1M0{~Qn=!L(8QHkOR)v6 z5DA|Qc|FRwQs1{6*GG>gg)6QLLGmiyUofDK9!Uz<3C6W{aX>wu7(IaF4T&p`Ig;E4)aa;*hL+CG!gV2tt8~91a2+$zAkcBebs>l=t%WWn zv%vMJi3(Q771xCzt~fSEas#f9Cq)k+Q{swaI3%|LH8y6Vp{0}8_W?-aDjh!nT#alP z=(tWYt{4+9xuM@BDf%@HAW2@|EeRFM2CfrH(F0SA>wCqy9x>AKqSFJ@jH?po`e z1v8B6z4BZiGqEA7lh;|s^?q@#N6mC>r*Ph!z-vWqs|$?fl|KwRy4k5nldyil;7VEL zs)bT8sb>G^(Lr!?4=Af#t`=}W^5V?m;OHnU-3=pYi$%L!ey9tEcVNHZMhZv92eGiY zzleWg+7>-~-Em=dLZ573xeJgrMTT>wzJW_k<&5T{b8C)qOpy$7Js#=-@?k#{4YH<6 zx!~rjI1zl#6hRH28o82wB@mY>0ek#ha;sP+8>e>2*&c>38MEoQKFgj?x}SU5UUiB^ zd_B1minwNP<<0IM@BxmjQB0jC5RIpbueBwii1UX|h%i0np#ZmG2SP`3*&wqtAG`q;lk+lwz!N@hQ^ ziL*SZ^y0j#cvi8zVtXE4}EsoQ7BsD*{%cs#VTD7FRX z*N$r&R4{{H85^;Exwz_#qaLmYh^urAA%89$Giv76XuncF7e4QKVf`A|ugW+z8|Z;r z{fhIJ$F(I%zf$`k4z@|suR-r@98^;&v-NAxa-9gB*gwsjgPA{(jUSi?r}joXUtz4Z zpnly*1ufV4kn7JduF^LH;RA+QSOGDNBiac2xsQije>O(0LuQ$+TVjav`g|y_?+>~D zQ^qwswRL^e345agQ)W1MyS!Ph*ad$R+i7(R?&#L%aPjyb@KZ2jH|S~?uIPIQ76jllOfj^Lx}&Jah;6gCJd|t<1UD6 zF68tNr=5wnN}lE}Fh zL$06daqakL%DI+8uD{gd8WGn(zj`6pUyhfnVVbp353Gk=eBZ^OzkUb*Wz)-%${>!%r4{9JPD$7Q5p z(T%d5Gm5Q_>u)fwlaf%O?0#s-!YZf639OFmzh_*pNpn4V1V$MfC8|C#&XxRG|B-PO z*ROdCR*wxlS|-ueas5w>tF-^Mf30dFR*+eY&*G8qsnjxq`Bk|1vEb&%4=9+0K)tlG zQf}x%RC%XT$wNf9Kly;*eMDb$BiAhB`qi;;HH|5LOUSjhSK#8U+uz=$Psql*1cSAd zQ-DBtzmr?_&rL0;jJ0mhl&_o^KvC{az1zt3665;J?sDx;q`p`-a(#wzy}Y|z2UOR# z8<14+vfG$&7a-QimA$r7`-CTaTi&eLgXOChj@wX1 zL2lFooNHA$7t*e5S^<1^?crY(f*;y@G6&Nko-Rp1Q&z$DXA)ZXV3Tl9$=>EQ( zk)g%DUmLvJxY78{+EzmF{8E4WM#hW;%efLy;w#0Hmy2Ax*qGvvQkQPjuQcuuFZ}R_ z>n@M@aA{^vrL!>MTgA!3LfxfO-uBcqEQ1ctL$&C+7`o-D{`AcBVwd6H=1P4oxGn^3 z`xT{R_9tyObJeP>sim0{GBxa0soPxX4ql-I?Dv1QY&-Vk;z@9-WWCK21{de7ip45# zB3S{y`0(P%#U?I|`I1Ji53@V?w&0b<&P1C`m)v~bRfVGySJd>`6DLd=)Q#Al5B)AQ ze)AEIZjv8FpEi5EVbF4=amR5^!D#AuL!F4A5%-~O)(170hQjf|-NqZ1>eBM+&m%#3h-aTSjUsUL>CuX<~NmDXmwogVe%T!{8=iPKg%ez zjqNSPxDK$i#Ls7~G#={Lv5`lPPE1UUnxSQN@_LxD?CIC`q)Es1UdFYjU!&uCALH87 zukCTwwPSf#;R}p$yER-d-}qxA>QY+4tPU4Uab@|Bi`b5*f*wQaC!luM^>{?}S(5x& z?}!Ro6XlrNj^*-7AsFv$f=5)B45~+mAUf0a3RWemGWSL~jrJ=K&Ac3=el=;eId z4Mm!&Uv=%Rd)U+OIXB>Qz z^Z<{8kN9hBC@x8QfXBf<7l$6$ZosPk?pFc6?CA7BoN@3;(gV_SlX7K{Bt5{UB}@Ib zupZzlU}-Khtup@lJHtmuAT0L6_z;A{!pbr3@=L1V=BoLwS;j^%br;SH&TspM0~yDL&99Mu$Fuq!?@WuzgLruT={y(2frXY zP9D~fu4ZwXoSZ+W=3a%=#(gz%<#C#SEiA7`j|{^6uj*3W82RvJWoIj0_P(Mo0I?kl zfr_ajc|(n3A{gptD= zgC*AkO`W#~OU_2YDz#98)TN*Y>bU+EtLp3%>_8xyabbp6%kgYA=TE7*1QYFhIhZP^ z%R`NQJrJ%7LG$MPHsdEf=hMQ;IdyKcWUJ9pR%`bsbzEO(k98MIOC-0s3M(9mo4;&717IzDCw*S9gQn;Wt}pzG*?^2=4* zex(~#fRC(EUhiXE@8V8F0mSL6mIo8+&YjJud3V)?AN}}IwV@`CG+7tfuNIaAV(pgm zP)w7VMK5dQ+Q+%xDq4AJ2d<-IN1Lm6PjjtX7s6p&m;SA+-(_ijmQAuBXHRf*-&?y^ zq5ZlMa;2aAON?u~#WUR<6-L&t54ln6EgPshDu)DG|d> z4ye3)72E-Nd!+(v6?jG4dqVYfVKbnP73WI+fx<3u^_$tkWl|+{I(Gv|y98g79EnC?utDajecK`36IO({S z04C`K+SBz>?+28XFRfWByJi)Oc0TIjcda}f*O!4S*#@+ix*!Um5W@D zhgy_;*q-!{pFQgUy!^oq$U{&|D6-wXehEDq=Sp$#<+!*D)b*242Y=;$Tv!^ST=cx3#rJ&WNy{0=)ZgVA^ zFY_?t3E8Kb$^<~o>ERA|1$I^-uVlY^oU1I>)CJqaW)`##%p%LVQhTc$BiE;^R({)Q9+T(JK;W#fo0 z+c3~jE!Y(c2W+TS&nm4sS^9>%caQQ)_5i)N{+4mY&n371^-#f%4sCS3h%!(*uAgUI zi8ad-X_9dr-N4asqeEjR0M>E+JI0lKvXR1Mg)y#29ydr}bzHx|xRQ;)P(+$!Tp#V` z`G@MEAlHplU;q%qHyGFY>!UvI2WtSs2h=gu*ZnpCr?cJOqO*L=))ayl+?K7flN}sA z%I4G*tS!Ex5!>-p5RpOg1GG+e9Cu;#xZ^s%3yteWuG8_$tLi^@q3hpZI(g;mnn}xS zlH`@o>u^d~UNg2UIuR|2S(nfoLufH`HtGpVaT6dJ!cSZ4aHCaZI^ebO~ z>nUM*b<&HM)L4y@Rpo+}&-w)agR&K&M~hTz@M`^2*nVTG|D9&0F58ZJ@mJ zb)uS7lWkvSw!GHP^vGvg`Na9Qku{akA0glGSmR?4sim_EYIdW-r}e#I8CI#3cd~x> z*szW+n`TkG|~PERl1i_tlf^hUTUg*irOJC?AFy6-qH-ElX3?(2cN(Qh=KGmiUTv&w7! z4A83oeGeHFQmEs~=Pk$2CAaaR5w*qEaISpba?-g{Y+>bx#Bk+93Z&zRwq(^vJrKle zlWg+13@JIKa{WnO{YhT3RtaW=&WAC^18VH3TFG0hT{;jc(66;zd0d9Hetit5AWaC@ zw~;Wxo@AJviZmI@t69Pdgmm)C<6WfnYbdXY;L77&D8?{SA!UW_tY04;GflsK5qoa( zb+c2ECU@4a=5gh5MAD(KJLuQ$h6<9W)2}>^i24vB6;f8%4*Jzdt~`#2=6YZ#B2DhB zUq{C#x>&*Lm(R~|3~H;NKvP`}^=uOq<#LFtuFoXH0`n*olafN$8Iy zhJB2kbbmn-`eTXf1B|P5e}UP0Ab4+)Y(B`iN+++=-sjo+RnG4zi+p{jm&23rQVUKH#s`bI?M;ObO42^7r~<8H^T^I<7}q{$779gV90~xgM`u*No3Y(n3*fU7Do+ zSZ-VW@jsRwAN!QGZmF{EIa?!)%veCuU(YC%SMn2b+e+G>HK1rhc+*xmYm6VLX}eyN zmDjwp;txA+ONs31Op~c&cLyVjsGWuHtrOurpSC?%j$BQ<#T93@>iH8YMfo`MPO-Y7 z3f2`Hrg_0S)N<9y=L}$t^2#-8D#ho`IV!9Oe6GXJILuJEIIS{S&$f%|gbNdyuaEkg zmOF!^{6dAx3hXTWyFIoL=gkSu_@_nxV1V0pR92Tl)DS{`heL|=-oklv;^GQ(kQmGL zSRGfKH-{K&zKTds6us7Nt$|$D%j;x}T+bJstedlqgNwiS?f!dCtO#j2TTWA1orIxC|m)Wn53s z(^;8)|FY{=tmVATgKT7~inUZk_yDbU9LnoD=ip_7}emtwUGjEATZq@ za=i*%ul;1-2jlpHp&?*Z?A#NunvqH7fd9ri9&)`YryNr53m7P~?z-rJMvH{m1s^zUA*H>cXTC5h9ZBMx?$|qblg>Jw# z=pDR2os9n#p2i9e6?V!qE$eFHDK7*7PChC_4}E;K5}a7LXpI_{dx-QSC|bR zX4bTGB2~p&=sxfSY}Ad5`vJyP`ewF!3k+%$05n8c-!Aw;#WO;TjvP&(mKmX7jdHG>2&LygIHw%(-5>K9^2EHP=6Y_CPQ?gT@m42ou;QNeuNcKVeuKAG`UYFyn=} z#mwxKn#JXJmAzqStA6in49_iF1!5zA7R>|Co31wtbM1EurK)FIFL$k*0Tc^}|jwIQyeEqF`FSgFA zl^lWpb#Oij_AB)tBA%1Wvi=15U-|l5`-Gi_{R#5F z^7Xe`mA_W6Pm=x0*WYTDQ>)h}$$sVQZ?(#))$5aFzp7T@bZ~u=?ALo4r+v%pKp+|T zUk!7<0wW>slO+2!&M|69vS0c7Fj-Wio3zNIdkk-ojpKt+laFl zKhT~~>A2Rc43baebWS@7b>mMhi*gT5rET(L(-CFHMsD`lX%1Y9W7;>{q^yNehVDx-?1l zE3RV_*Onyv71!IKZC{pBGW)>)it(@J+pm)hVK07w!Du0=v$N7He=mN3!Du0=<2uFi z_u>Z_j24nQ`*pg7{GDE!B>Q!yQ&=tJPlEkQe!|%nxO94H66{y3balOFu_u>Z_j24o}wLX5}Vhi~@y);So>!nU% zwU9pv_AB`bpJ{kUvTG>-!m(DOA9MTi}0X@vnxMusVC-ImWSP zzcLstBz0V$XZd^fD}&KOQpfcLmcM7eG8io+k!!vE`eF8}*?~YZ@V~P7SA*?W9*WV6A81dQbavJ%E2{qXa{GDE!B>T18DXbRqC&_-Tw7{j)OOs^3Ry&2&LjEM#uU8qDYp8$)w=n+o zeAdlzx36H0aTVRTF7F1b`YYn#>aWXd8d~7G{}3aYO5Mhee(h82Kp;6cqbk;FS>>#X zB~bjX6&cuB`~CWZzp0e)l3O*;x^8=A$1N)Jmg#QP1AK|NMPWTq$R3@zqNdNDh;y)W z%{MD^fY_c-1&bKc`q8(ts`wh{>~v&Fcljkd8>e9x*_~g%AmsW$9apYjrMcQ0cD7ov zmh*;L1A%@Ge))HVUqPJu)#!HY&4E4eBOzDfi-$vb_iDi|gr7veOP5M{TUA^)zwC1R zF8Z3{EfMAQSf~f?4y%3>yMp?Lgj z&MsKRoHA`0Sshny1Kfod2yXr53ShPJZqYQUZEP3Z#W+4K%r$5iY+GBZzr1F7cCOo1 z17f3iZL$NXeZcUFB~7)nQmICHeH){=v`g};x?Jz-VJ^#EV@ydcbV!ep*>e(l3dPBJ6xKp?r`R$R}`TPicSWM^G3_oZst zDO%p9@99=fQB~}Xidu2Kg4JDauSR)2%J{wOMRp*NOjj(=QAZ~>Ha3_p7!ar_-Xig5 zzL5(2S=3+fSd6#eOJm-K4ufjVadSex>$noa@6#{~mU$eB}B-$d%&Y`T8*Ux#YHD zl`DDI%BhvSwQA6tOUIS34?{MB6x)Kesg`YpXzd*I$0#dbvAv>IvDH#~p?g8=xE^N^ z53;mGvS8)&ZdQeOS3I|123h1v?=8{;eBB)hmb^^-`InziBO85}x>q>)1BGeiO8tiK z3eQc3`#5$*S9vx_tX08iBCreMs5FK;kn7>FKbE+rW2l#^c*IPs!8oG>LHq#uv8L#u zVV^m1i5*3sd^Tg}R|aP{DxQ_CIK@>pfBBSxN|ohh*PL~m&p8!+?Q$jhdLZQbKv)f5 zcc;g-J@!7=gMqx#i-WJbb9rv@aC;>;m#aZup+XbnRoB18Lnd?0;c5FS?kAjHyrfnf zGa}$nUN^$`7R9}uY@1T+8T+>ai${)ZbbIG^&EunAn><;;2Yu{w@paEL>Y`K3xmU}6 zaIrsuxmr3hGBToq(Ach(;6|uOF0+kXA7S$OxtQg3(Y3Y$Mk}#`PmH%j;r#aA_`M2-mQmn-I=Y0{DJf z)Ot;&rq3?0epu|!Rx@Y$f*17^gykj@I5W$@AT3ny|<{p8<~B39Ph31vEid5Bf}7-4KtFAj8Uj|r{CFb=GVQq z?uqe+lJwqEjBD?`#bC6M)V;S3v;4jH7K713GSCCH@2z`V$lvLuNqTSH$6&pR-~~6o ze+%AQFiInMX9?C7XVHkQexCjN`3)$35PkaU@X?8hiBWSLuOT8GS3WK-H5oliULwSs zmtgJzSiit5v^uUduG@e97deIK(Dvm>G|Nzjw1?2 za#OrpoPnn%x3}v13m#_jDxFM{{mRG3ehd|b;8th9jtWoXEBGX}MeFPVnvcZ4a1#uJ!$~alSi}WM_@G z@V#_;X_D+L-VgKXuYJScI_0-h{qr$u%}w>W6xSR)-*>@Og$0dWzeexU^mrgtpDgvC~IwQ8-}ay7+UvW_eE7ZBHQ zsI1scO{Ft)(`s(ewDsh5T(Q4^xE>HA8Wg-}m9th}Et&>a#})evh%3#dBZb#QSw&Vl zuGn8dTxl*HF|KE)&dw)94`6=*aU~l;it7p2gQ<#(#*x*@EBduR7nrSYNRK@%dG4xb z6^t8ttmBG)ZQ`n=1T`$TTwV6uD$J~HjD;0En2sy@wTY{=ub@!PSDeA1u_gQ!##+3N zEBdvG>!k4A`0H<(hgEA2p#PP)z830PDZJ&)a>Xu$-T|pfcA;FIybd$2zah*O=P8HP zVT#a%^>*R$#j4bCMV(6W`noXJoW1U3ZI$z24G5FK>bRo+mAKMg>Wd|=b~)=gC0O%R zs-oD-ZJa;rQFafXe~KLlBm@8JY17=VHSaANACK#CUJHN!v=>0?7wOr9b`e`#-L>fM z4RLTiKwNP>&dD$*?Zd;!cdKh|*)XI&BOO=l3{fFL+J}dc?*cn(uv~$a_aZNR7YpQE zY5ozu4j+Clxh0{$fVlE?_X?ManRUME>mz5W6QqlKi7YntWn^%pQ0EhKeZr&#`8 ze*uHhLQ={efKoa^3 zi0f%4uhRBF68Z~>>pbHsJ%>5CTuLhMEPIx>$*S%8r0%`7z@Cc6bg@&BCX>()L-Klt zk>hiiv(u3!lh6-CT+cFU(sP(oe}T#UFvN9{aiw@7b}G^&aW%6arq)WmjghMgHw>Kd ziKD@ayrzxhYV6;_QOIwEg8J_`WX3zH_hj1J zik?fy725*R?JTO_)N!2HqkXJSI)hnBf+v5+!$d%4f3H6QLAIinol3zf-HR(p7p#iv zUv$e?tl}%S7w4=fQ9dJbtu>~&uSI&C{Nl{w;OMAvVer0wJsxr;IgLvPpmdn32T;Er z_vvnrfsyvL@L!wR0Rg%A`~zvv|C*ErXONRoc#>lfS_kA5xNCCh_QO*Qwxj1fkcP7lPnenFD- z0AIgATE8Yq4=4uno_O@Y727Mq!sjNLT8(zreT=L0ykw!Bm9t@NTyC%g!{c(w1fxr* zUvVCixHePuYv9kSZExXx8MM7K9z75!0LKhjMRq!Q<@0M3U#WeP0zU<#jT3>~0!q7(BSIZNmUfdmU!Cx)+5<4KF*z;S%_qG@ zV9c?q*c&YmJ;Xf28-r2bR@=|Bow1RtA5X-&KG@^B&8yiI+ONTSMwEm1=kNQLAb@~A zi+aC!a#3BeH&xlrRz0V(sXV8++Cn8(sg!rJuo8+}M6q2h4MJ%xmeE3WEnM2jb&Tik zapg2xNH=ml!gGIIUS92D*4r#qprwUT@x1aIr+xhjLVx2cJ2CQ`ZK1%x&I*iFLWps1ac%t<`f}V}j;mhjdN@}aTUgtw zmA!+jPGwE?<<#;fIJJvb!IVh|I9IX?cwB}o)l>?+SX)^AF-KWDpD#<-8b|q!`jy9J zTqflpbSr^=UCvh$pkL#R%P?EN20}@8fbbzpdno)|avM~O!>0`-tK)hX11bF4N)0L#sZxJIAeHp{r}1%! zSDx#Xl~X73)~Ye8HIz!Qv-a1{;zI8)yrA!Jc$v@+!m=wFf67OdbFEnd%5DE<)0xH0x!FtS+Akr<>Fa@81Fj^Syj`%E8BFKgWqYvGigw7Kb&DAJ-kNi8 zhqCt4X=HhPU%-`k@^*prz0PE&Ro-5Qn2f%maf4LBfz+L;V+R7Rq+fZvV0JMhigrL% zHcPhZGYF~A%jbHimMd=;JYBU#C$cb_>ut4MNp2DR?1odx*q+!V&E|52_SRiNe=PCD zcERt56A|_G&4(*v&7&54LLuzlc0&ROQ*YgRZ_&lPT|nog_5;fQzRXjwDfAPP=QW^L zWDqBUCIdSYZPF=LY;WGmLg$u!sbUw)&N58Af6jw5s(=2{xrY?a026JUag>JGXx($N zU)?w=4(sT@V0&fgq*i@Z!@6ToUTb?^_&B4_@J6iw@60m`3$y2zo>BgUBtvn2r23yE`_5g2fR8pyT#1ba1KqaOGYcB`McmmLTsYxTf( zaHi@XQIl$C8fw*icQg+XyRu+5|x0%UnS75KF&&LvJgFrZ9r$u_nNxSw#}-^#YPo}M|IQ3g(~ z8`!TwxcsG_mI;5bvN`?#|};O@@A3?%uynopmx@|!S= zuF6`aO4T!IHKQ-m+P1*T=6GQamD0!;eJBlFE!QQSMJ(A*Xy%slvnQ0`ot$>^+3j5 zsXSeUp&K)^5V`GoFq8{M82GDlb#?p8m)B6gl9uJ|*z12MoquYyf1qwW43BrYq&jDJ zy%M(Mwc@!eD{2~~6=oPxewbmw&Nr&@dYHWJl^HVKD?_rN&? z6{$S*#dxX&)80VvX2(VEY5_jiP+o~EZ^y2cWN#0-p0cmz?Mh{E(aK)2yquaxyieH` z*_vfb_qiSnItPg>wPUenr%)1=9OOE;kUlwkMmdGWrP++^@Eci}taP2c@_3h$u=5VN zZjU)+H`et@w6kjaw`hDEKH9!7$l6&8o0+HQRmH;S_nf`r6dm-$c7KOA$}9E9k{%#G zY#bu96$Wou{Odj(Z&=sQ&Bq%`vkk{@oj-H>%-M@)q-%?>d>vOl-Vo(katpc6%%vAz zn9HOWB`J*huG~*Zz8I;S3%M?sB&*0u$CdjD z!)aipu%<$;i%Huh>as)}7HSEmQK|FyQo z5dAHNTuoC0T6yLES3ZYM^i)%%2Nsr2ny&|V9MP>3Fj<*o4?JU-#Om|_k0Yv$h+{w^ zN)lI)*9DW<>bUap+}sBf5z3lkLatM@OQ&b&XPR@feK7RiI&kJ%1i%uv?O-WEaZR zapnD6+y^6Zdm-1^OX-Eh`B`JstJZ$y{af4zBgl0+bHN;@$Vn%!ynl=PU&esr%#N0tn^X3oyf%|uq{9wN0uZ#FxC0g%aPqv6b0$H-p>l=J{Wd7vSi5hTzU%LStrh)nMNfWS?Rl1kdA8~ zyB+R>VW%TYhFlkB7pBwGr)DE7cee}DapmhBb03Vvy@p&*r01uNkW*r$Z!nqHbqM_KM}m!;#{&u)tQVA$!%k|Ec{*`*U_mlo1zre|NsfIe90cE~!ee1OV_ zBO|CUDC9cx|Ficd@NpdJVejxhL}|5>_P&awAPq?jF5VP}!VN+MNC*Q_+$9NZW2OPL zFf%>s=>Z1PYOS^X^8E4~=Or(;<0Ezs$M=0Z{`oz>IPdw{iF4TA_*ft7bsWcD$47ju zM@dWrDHFu{Rzj1_40EOnkVB*$6i$X6W+?Y#C-KOW2<5DOd51Qa$!UpLEbDF46D0$TF^U>;>(F$}M9TwX6?NuHxNK$6jci zO9kKF3o3Hm{yb$|>DUWxBdECB-t#JQ-TpjfTgZPTi_+un03a^3zsWnAgl3+;nZ zakssqb5cd-+nA?}D;;}L?XTV2w~Y_4uxJ@qI`*P^enD@q!iU?&tYuuO|EucxFugt7 z`0xsgmT{&2ud3&7T~_#P+nKeDEA@X>-9KUfc%J?;_e; zjQkzNF>)wUQPbuYkB3pq^*A9X`eMkTNJUMXTT-qk2szPrNDf6RYTDeAa;5&SXn$31 znl`tjT%RT&RreEW+T4j+(_>yT{O#{gGr`>F-i?zsp!9Kj#?5 zvZA9W=&F_E~1QUCwVy4<1jCSH{rZv z6m(-N<4PT;RgW7E3=fdMqCTRGYZrMu)#Kb_hBI%Od9CVLh)>3~n{ZX_moZW-+ePa& zQlcKBj4K^-Qr+IVHD@}Drd7~`=K536@dD9zMceGE#|tJ6*RiVX0<6jDSY~ zTt#0i?PF41e;uwAN-Q~$&(p?8n={4RmvN)V0eo*rt|)s)rBT=BPmmDdUq{_4Dm1RZlyOEr;r30E+h19jD`KMT2DtKmw= zNLAZ`DaS0Eu6|@?^(;E3|4zj}o`F&+uUi`yk;%AH9~3$_Mg`(A$6N&)+xF|2)v}Rs zr9M-t=Wt9J`NE82YNxU?u2%?rI){TCj!b-EV#u~j`i&UKxIRay(K#ICaAe|yy#kgX zvg~$DMl!Bf$=%U89OQ6h;y}(Qlrsg(U5qTt9g&fYYnt2{ox?#6M<$M>3YEw*+d&!0 zxLzaoN9S;m!;y*C4X0oi^)m!AuFn%{bPfkO9GM95Nh8Z^CuJn#+D~qf&fy@3BNGRW zd~U_kY>*r1$hZy=YIF_06KWkqRw2%;SY_=x2?3PM4!l4BQr~TII5II~=UolM zJW09UAk15n{;Wv?Q1z(()D*3K zkb>J>l-bvt0FcnV88?s}ota+n$k(>lC@G zP9m!i2P!$szHK_-{btUoC}5lNlyRLV_dGSvk%=1vk!7}nGD1HgF;8Cj6K2T$ z9U-y`apXqo9Q6lNQO0)UDbv@N$c?D>MjKu&8d=-f6@Kuy30LZ4Ob$mTzF-&ZYGk?X zoQ!1p`ZBpa>I+K_M#}7;mfeoYNXGRJxx33mRv|)rtC-6=#=NT{_wCD5#`R<5 zcIcQlIUJezGK?GA&U|F~?UamYeE?XX)i{o5Z zfNLM?W*V(=DC2sca8*4o?nS`)qUy#nd7f5@l&feL%(kjSvNx?F)Ss^9{2te5}mP;c1rS ztu8i=YsZycEi8hJEA3oTJx?CE4hyb0S5^zCpqDbPwC%$b>n?De5?rSY4Dv-|Cish`fF<2Sb1)`%RBC8MwZ{3;^T&H2Gtg~!tQRR|x zr7jZK-=%V!d}#vSTa(b@vb2A1Sp=l&dB?yN-di45-QQcU60XOItU?5?@ZR#c>i*tZ zA^=s7Zvj_$Z`E?u^SzZPTwf!y3h`D(P}S+JC9l8IU{=`9Rk;mMPr`d^*r^oQq*2o6 z)g`MB&{=A#<2nFWcyFz7)#lYD<7yKHJwap@B5;NG)*4rBUR^S-v@Jkmlqup0?=1<} zHh*==xYBo(qXH($b8!47!K%-@OU9M5#Pce*seu{nC&V7YVitN_rg#jUV%xvKWL)VC ziYHY z%S1=1O(2IO69+~oWmwz(1t#OVLa2!`FLEeSacp7`-dkgNd(OziOG^wGwEa+*j4So? zeJWCl^_c-zcyHBlZTHufbbO0OS$Mi0MWjc7E4;VrxUOq1F3Zz~LtQd`eVvd~J*NV= z!h7o>T-)=tCDqqA2-ibIRv}K_LjQqDJ7?--UFH3RpCABL$I%0>I1Ur!+V<8}&h<^g zRrNf1;ELlgL9T6YUFBRqNw{7lvI-Hn;yBDkT-(&T2IK6Du>tDqrrM8)`@z4c;xD$n zdCKYoZ?*82c9Y-RrwCWo`nsF^-oBV{WkgmX?k2ytFChSXh^#`~O@41*N&wQaE^;_B zam}SzAD1`IM)uzNUkJ6>?~T9+Am(W-Uy5kqD)`EjHK@+ zvI=oG`Mv#b1R(V#AcrFpcaz`S-zL;V+m;-PRNPH|Z~r?X7yG>t7$HQNef@HhKK6Sf zFhYnju78K5kNw^Vj1Z!X>sOHU)K`lfj!fK5es6!5P>cNs2#gS-Oke*Gl0NnyATUCR zGOmA*q>udv2#gS-jO*Vg>0|!^0waWo^?nh5K(qn=Pm*4Bzl&pJmj+xHK1rb(h%$Zs z2Q7RqI=;0&yxsP0Z&H7kuOwVsIli^dwf!A4WcvD5gexPm3Q<13wNAKA-QJ}7`qc#B z_Ka_>b8T1044J)ACgb`wgsbZM0B{Arw|cJaZee9y zzm{-SJq`n0!SAh}>$)XqPYWyK`gMeBFOgM%pjEv$^|*AsxR5m|+Z<1qD9 z+kQHXv_9~U2teena`WbKirJg%zy5Y_8OZeY8wkkO%;T)*s^fd>8wuBwL{=e!zT$h! zpKZLZuj`UN@2!7K0Jdfx=fk+_^WOR=gljxrKwyLrW%l)-lJxO-0f7-hlyUuMBz-(y zKwyLrWn90Bq>sl72#gS-jO#xq=?@TDg*Y;L2l`z`?`YKJ!ZFFXelr31E+VTCfh+X8 z1h}?))pbLz-$DR(5Ltx?T%rCN;M(q0*A2OTD*xNvvjR0)n zeC{E;P%w(Qwh!^NA=hswTw6GwTX5CZzJ3Sc+QRwVf~&Un^*agI7S89c=i0{hRp#&V zU4$#v!&Gh>E)~ad$?C7)trBES-kHHEXczExOiJFMY#T3HK%Py;^?S&9)#Kcm0pvPm zI`g&zwSjC~FS0?n$+&(mIWK(S$e~EZ%*z9}M_3ZgfgXzL(~)ugK0*%9tK2d#&kRm@ zTv^sGx{jS^t}&NycgixZ-%miQ?$^%ThGk4{n|V8HxvOlb0_&J)p|>)wKR~#u?$651 z0N0sH(JC&m84dJQpp$X^L2(lH2Z^jg%s{}m`gm{Uw%1u1*B>GPRre2M2BxPc2XIJs zy-L7@qlPyWiwhgH9cLNWA0}K66Iq3b^;gc-TZ&Huq8=p~*B>DOj}Tdfh+L-zMAKk> z)S&GYv<8lh>yMIajuKggh<1Q;4cGw@U$=ef%DDa*0r&`!Rfw7Kn;Fh^yjXT&l^C<= zc8^qHjl&|1U)+9tWnBLS0jPT2^UUB&6E|3Lu##V5nH9^;E;75=ZO_lQA4)qHsXpCZMdA+iebrBq*^j$mb6{}lm<=T&Yq)2WL+ss|@kKEMWf%k1m_N3IFZCEn|dFSRfv~ zIAoM9y8fq%GPWa68P|VJZe*0mD#RN`!CKuV`ucAOz%e4L5C@jD>>iNzyZjshc%8^9 z#M@TZwN(d|Q*q;)TnO%S2Wo4rJ|0*|oCFHM5IdEN{$psVJu9d3yTld10Z9+b`qC z18+;X_(k0|W3cPCQ`D{xR>t*L5ToF#xXNy(X3QmZf3|JQS;qBODOb9y#b)INhOcNy1Tqg)l&EniG=$5+{{we>L>*I%bx z6}R4BHo=Wh!-j#3>u*r5ba8nF8gz3R41sZ4LC)KorHt!uQm%Ayc?GvRlF2B@b^EiF zas4dbmZ)dZ#pM;;?xYFo>N=KUGp^vyAD*R*>u+Ha!Ids9|M0AuIy>mt_7YfF-D+Ag zuAie^>EiNDk$ZTeTdv{g=vOS``rDK%U0nX*h?+Wk!(3$}c{2+WV~bX{+*BSrF_Dbx zf5ICTc7TuAs=M>dV#U$T1|TgN*WbYtg6kf1~RVy88Hg3d)0Csa#qW( zkyrPJ+oqglTz{8x-KUo8w4GgAG4tAim2v$qlpBsw-B;_4g^)gKD`>IVQMfRP?D}`F|=I*UwX~ht+bOu}g;Ht{rts z`H-AtT>pS_J))K?_!YZs!dh5#F%-!|ZnVu#$+-Sk%JryPu9H^Qu{9hpka7J(%JmVo zT*0`)Aor+UDdrr-UFa>z`7tkE`XHVb8D(gw!sZhLc_Ne?%JWWL*D@a($;-uD2&L<7@_0wrJ<=1$}A+GOmA4 zxjvzm>(HWO7YuMH)Idk+BgnY^1?BprTCN$R1pQe04H?L|et~j*N-fv%;c3-Vo2eSL zOqOx|OUm_KYPr4uUd6o0<;5y(*>kHdNXGTQQ?Bn;%XP+fAijP{^<%a?e;L=mqFmpj zmg`M(#WnS7Zb`>u{|DvzUbS4k@T8e+C0}xN8u6Ct>t9o@?^Db5Wh1|2I$jOd%IY&P zE93e%lOWhVSxKBSiGO|xK@S2gO$LY;(7rmx&3OK|{G^-yJQKj zA5qISvs%op7WMNelyT)QS%NE5%XQFl7fmCloeP1CD|g8fT#u{eI%F)FD^Q2k%nV5F zD|g8fTu-RwnsJS6)^N28`6km>?vf?Ao>a^ACiH3B7*juE7SOR!mqA$>*F$(vaD7@W z*FlJv!DbdsTPv>&c|D7}x(TiwYPsIF9Jd1MI-HqeL$;$$hoMYgxvQJt`ixqx14Wo< zWbTf30e5v1T%T3Vb-@JV3Nz(bv}(=D^p(5139d=CTr=RMX;-W=o2-;|8kCiB<*sgm z>nXKdCsrM&Qf9e1gN>zb-_oX0E91&t-2~UuYPk-S7xOUXaG;XYD{QfhD|dAhT+gWG zdK;$4rY0;`w;lo+SMKU2xOS@LnyC~Dmb*LjmAkqLt|_%#VIHTcUu#R=F5s?if@_yr zt{GFy>9Nv&7w+mNxOS`M`chY>i%r{eHn_g&)H*!ahB^`T zdOT%ZxvQJt+N+l9P4Fk4x6FJF8U}gSDqy%59r|KrT)C^8;M%8_>*(Y~?dEKtUdXs| zS2w}+tXi(H2In$%5bTEe1>Dt5a6PA%>-E)==@?lT=<4wEUwa0bzH(PL!S%dat~gI# z!{(OM4scgD!S#Y#uG2MM736I?GU=4vm1J0Z;G)XYOmW(T;do8Wp$E!XQN zk3+Kdch*IaapkUVg6n0qTt}8+rE^_ilIM_d<*sgm>lL+Jy?OFCO?Sn1baKv+apkUV zg6nf?xlTiG7B;hX!#E6gbrW2#s^vORf)|&`e79}#LuzwTrmx&3OK?5Ils+NEe}y-f zexV;_T)9h@;M%E{>(HX%GOpYuOK|O0%XMN*coMRKg6Tk;mfu#}f5^CUmn^}xM=jTx zk&NmkKey#?B;(3mvIN&&wOmIg2gb%VoGCBk%3ZPq*FLpe2hBwXLJ^s|EzK+A%3ZPq z*RyK54rH@tSv#*c`8W)B$r4=8spSgujO>zr;a#Nt+T0~ea6PY<>vf|D6Ar=sRkNy= z%nopuEW!1HTCOvu;}{T{ETP#Zm!CA5z&EJr5vL+kPMb&*q7`fA@*?BPU9tq%t7^H5wTu|_6R?3n_yy^)$+&WtEWtI+ls;(2D!S&p zS=G%GUdENXWC^a<)NjT^+OK|O1 z%XMft!v=E8MllO7Fpc8t%Jh}HWC^YVYPrtXmFyxQom=&)1qn?y8CUL-CAbc%<%;v; z2OL+s2?jE*+$BqJ9a776YSGF=*m6_1E?5~??vf?A4y)w~@m*lJkPmV%8O6M@V8R+_ zg}LkPZVqHzxl5MdI--~>wzUjLJC{NkSMHJ}xQ?pjI+U6;t5uCU2K*nIjB6SX3a(>n zx!%Yd%MjH8YgoF3BI0CaT(42C*VS^pX}czNWtDa69N=X86X~a(;*$7y7YK+Jx0AtP=MCP{B$Fdct3^gr)YeIDZ*5_O>JK3DIkTQ!ft+P#MbkuWA z60VBF>LS;(yM^m1!c}otUF3RBU#>?9$wcA|`L=y_AaA*D-fUk}fOa6rwUcn&K0BZv z*A(HpeReXj9_$pVTe)Sc z?uzX>fc4aCdpxd>`?v6p7T!v-qfB3uEi74eQD9$d^i}Z1lE3gJYRgA`g+46wfM@e| z(PcTqHPjZ_qTK7bzLS*vg^!Xi3Pj{uGO|lBWS|vRY6tfD+@4UtZ=)=ClO1@HK={JX zk}nEG)YoM{X0cWZn^?C4;?@6t%8wcadORW-xpJNb(?uH_*1QJm1JDbTa_0*X-P=~O zp?2W7pV0@ml3~cSyTJ|!efth7mq0f2)-sDiEVt}jRWEZswRJhLdpihkUyYMx5A|)BjtWtzkjLIyTb&S> z43i7=qAJ%{>Q6}PToK}2%PLuR!O60WtHo)BR;I7CUz^qq)?h>^B#m;`viJle?YUCd zA*#C(;#|ur$!8U@vbj)zg*WukS((047Z=r?qHA1Tt<;tG4Ak}yP=CTk=KQTGUlT&G z9Sfb@S=ZK~*(K9gI;(TO307f}1lzHCbH(|wVp|Y`qWxMsRv)CCluTd6I2T?J=_F&x z-)5~Hy9>C|@mNd3BFaOw9jg;snZDBT*jJ;3D9H=kv5dE4b)qV7Z_)ACRSAnI4<+YK z!^NRkZE6A@9htt;@z~d+geb|YhAYckbB^JxwtZz*#+8o8enP?`%0o#QezA(+rkT^L zLrcb$&fEB8ln^C(ar>&74Zz2gai#M%zF5R1k}!$lP;$XBN{em(v#&!Thj{^Tn~DqSYjN85q<3fhm`R<x*&2G@;i|WEJ8Bx34p>>YIw(w=Yi_*K6c<7?D+o9@k-A7TH)sB;)%0+Sx>c;ROn} z>-gTf#f?FkjTCWJ!<@q6T9!3ptL=a7Z&~Sygs$=4KqKqolnxTE{fhM!Lzb`m5?$)K zbb)E%Vu;wDNqF!??4cpTRds)s-hLTDuET_@YJV5K{W5|-_7TE0c!r#aNYuMs5Tr+a zh=XS$f=RM*%)AZD=ry>yF-f??MdT*x10wFgSPSoYH`NF35w33?AYT-ScSdfG-(kES zKvb964jh9%Z`Qv3i2aH5lR{HHa2P*J{QgfK4=j6L1pnVi>E474yI$pMb2qi{IbDD2 zRbv^V8{q=#k=|mHnbmW}7)0w_gX_uXD@K#$$dgS}jOG`Uhb;Z|UNU0wg)!Z@WHy|>(Kv~Xv#d8)3VSBCKQHR{`{qZIx? zJy(qPw$3$B&swp{i{XoSNDAQEJ+st2+IHePi5z@q*n4y4f>nIOT{IW+cDW3pSKfRG zrSPXF3|x`346(~0B)ljhd^S5U1?cM&!FItxxJ%Sm2LDH`2{YpkI5YF(`H}LBF&%N8 zd(JBIK&45n;G69JU069%kHM~bu0i`6umh3TzqM``9Od<_wRQoI3Zh%*+%Uvh5|y zWTT)}BxwZV%jO)LbL^EeEFYWo3encSqA&3p*I<8E#y$&)(2iAdU*0ATE2PP zDHv}0_R#1uITwX^+i)xcT3SQst~tt!VM!>5&MA+goL1+tC-Fq0TC=K#)54p8c#r<_ zhUFHP+KQsUzSijLF(?-80FK3yer@d2el_Z+*ScT3hAVo(@p=~Q7tErGaTjt7`km(U zW)+S_xec+BV?(630>aUrX28YL|Gf}dnc^MVg z#>!{2l~`5vS9*`l$@O;NZ$UqF&@0&I4Z)_l}A*kpdlFTL*oPc23d zX}n_9)2)+GK-*WTB8HP_y*s*YTto>kW_Kx@0! zF1XhP_E%?Ru_g2MAa2#!&Y<(3tC5eL&O!jtH)>ABP2=oucVxaJlDf z^dXxkGwfxkzd^?~yL=vMvR-M7uPzP6g{T=s{Y%)x@-rJhn>w7^_-+o(doVRUx)D{-H2Lk7& z6P`ug@0a@lGyrcu`0EzlhIU2m1+HSA(Xjt?A40DF_OcM-eJBF^5=TH^4?lvsid?bY z#enPk{@>3&z>MCT=*OM1O;lc|95ZVdN-(CLW7bVNGwscOa;2A)6hSlyVg}muw-|t`4nm z3WSOMps&IX2%Kkx09O%lElrd{Cys7q+*R<>)QT{2t*vLB2bjVph<%hSXnm3M-zKhPuj_H)`I1N*BeaZvKETE@I|gwzg-|k51&{4<0pTlPG-2Q zr`i#>n74^>xdC2TxxQ1oU+{*4Hg_MSZR9cgYa0alcD*h!05KTQjj8XbvVxb&&UGy`S3w z(NFji(bvSwiF=7F2^s>9q>jan2q4$vi6GZIG1rZ7HGKRKjBbm1meALaQmzf>)ZB%g z=sqxPIa7wa$TX^Sp?y7GGY<2y*uFNWBqY^A(AVQfy?U0=*ZV|YhpyavdHm+^t(O(e z+|X5Dv423+v&32jA17SNpFoKi^?U^-H`zp{vU-*g+kqxX29q2l{R2W@=US+*x5^W? zku!J2dn+63Yf$-`_~z-W_udlvYR3B71j%3$d~b>IE#Z{CNVp!_AG|*5Z=GzyC@xft z1#>*dH0s@^^?@lLT7htlnqzH#yQw}S|1SlYPV2dGj_$vn!2@O6A&q* zz8zbN^)m9<=#XAdOG@+It zjh|JYe2Yi4j-OS-73asUb6uYo7kThkC`aS?uTp&lhhx5(%SN7^z}1{s$#nAG!3aO6 zAk${zzKUD$4<8ffjURb~Y zy9=8!1Z#J_(}a4iC*T&*zT$Qd^wkRoq9#<`j9JBun+EIG2Vke>{yYlJeAaWFz-)M> z0Jw@ZFko3675eJMA8?Eny%yU5fc0EI3P(|2efyfV^LdlU(Tm=^CbYJ%-ueYV(%Ud@ z&U$;R8|6icRD7x9YfxIHer`@~R)} zRs~bcb2o9F#RnGpYOqDeoL3e@OJlBy^m{}^G6afawCme!$MbjDk^84JR^}xX&cM1( zrsJ+(utf>;^;!iHXS~Jx+G=uqKcx?OTm{dAB-6V+smopW*SZeKnP|k0s242bsQNJ63G5z6ugy_n@ye z^;bSw%WrRWu+-^P9v0lF!ai))4P5WFx0+w*biEzhKw&Mtq@L@?q5QS>Rt5S8=JK!% zrlt}z$uYlBJ>xU61ZaoiB?fM;KkD+{EE@{7j$nn*tqtY^Is zz+wFrw~~=vf=NKkF<2RyA!B)-8<16A0>-E`O0Yo9ni`?v4Eaq)8Gt8F9_ z1Eo^leA#xE$_zepYzm$1%4NIJA&Fo-c>HFrU~XqOdG5_l8!M&FE_vwreLUWq_xAr0 z|H^M8DLzbO6{70(6II-EBY7g%<9@A5aQ$|YP&HRllvbh_r!=Uq-_gP+)G$;rr?(F} z0;;~pfUvLM)k3bF3_5nex3Qtu@t8AOi7#tH06?1g?8Z@fU%0kF3K>s|0|yw-?Q(PPo;$}!=ZRD&AY- z@{b6i1^bzSDR#E2BgX~}7v5aSnc=SU7dzPu4$aJ)jswdb4rH@-rRbh&!QDhzME!f~ z1j&Am$g$Ws0sMUn`?}Xp_B8Bc``S1|*_HggRbyXq-d4Z=Ken$jYMUR!_g1ZaeRlI? zkzKK7UvJv3HE(4N*RqRRnAv*!N*x8_c0qG0#M=d)|La<-s|&JPv#+Q2?0uypu4RR# zi}tnF4s?gjWDD2doStEQSkJ;5*4gu&?51frY}$k}(^EkygH$K{Il5;!)Am7BfT*&wQn{VDQgpgd^FX8%4;*K1lv{V_Xh32can>a z+&z=J|3**edMyj6cEvRUf=DW&l}vvq$o0F)mFxO?`AsyncL!1*Gg7aoA%;e52?(cJ z5o2YgpA2&SUUJbo*WR8txn+$uCP~JGsp3TlO*oLZ7K#OkD%U+}lvpw|FnNmHM%#&x zfPYr{Sdi=Yk*Aow+kgN1F#Pgw-@HN&M<#YM?(ec_;-Ybp<+}YD9ZNj17B@%S&G!od z_NwEMuw~OJW0$LT0d)Eke!Su}nmFGu!Mv|#F=x$tV*D9`0PlBsU(gPCvpBp=W>4O| zd!-DM4$Uj~@1IUu^PjNhi>GpC%=+Pw`S{jTL9QPlNrGIt_TsQ&WZO{Fkzc)A@Z;uW zBfFuN-4c8On&kzK-9q0?{E3HY*QZv9ICmB>@@0~uC>^gHQneIA$ z>iOsBH6gWmH|c8+{#}^&$Eg(IW$lUaX9xmZU!Mr-YcEMZ%fS+bq{>XLYgXJ%`pW0( zF^?2Ds27vXLfggZ_&9e>T!(Xn$GuZTS5M!Id``E%`pWA3wZ9t&XZ#Jv6XGpA0d8Lt z*bAFTU>^)_-$S^5_8s1__%j>tRFBU;qq7FcUKLx z2EOv~SpUZ^=EeOW;p(GqAgA~eN&ssDRsX#;d67LW!lsk@4XxtfS}B9TiciRXmZG=OG?{07qpLi96n*#1FTSD-!dI)ohncT=n%; zJlNNQAZk`jRKCQ?c;65KjPoSsa|>Ha{a+i(B)+JQz+S>t{QRl^Yh8l)KtlvD{=ikg zJ|MV$BT31K9E*(;z<5N$4v19$L740oCUii<#XA`HWA#jlEt5?qw z@f^Mdu377AVLh?R)-Y@2D{>X}EW!2L2-iI^*G4ebU2}-rfuO!(ytg%dtxFLfXoSFF z!c{Z@Fy7nSZ;O^eBe}%a)Dk!XT*Z7tj6Z_g_jtSba|;BJtEdkMuIT^zms`j)PKsk% zSbz0Kwmd7FNKik`R>maJ>F@Cf=jv6ZnEzlusM7;()3e~aDt#1Z#;e* zvs|l{WRdH&8m>RyQmzow!QprsD$fJkYZJL4rryMgxfLRF7WDE!jI@D$$8b{ zX^2y*x{U3}pT4(*ZvM*_-bg2_lyVRSI)xuCELU|=w4Non{uC+Ht7mEU(B%14iKwq) zyx>EAAwR9EFiF0hENkaXh+S^7@!_;Ss~I5I+Wvu`f#(;xEA|p3ksR{paazTkS!K8y z73-QD*1)4c#`R}`m>BaG`$!;4GV!?<%!19jMyG_!jpWMqIwa%zui+6y8$s+{WmMmhj;J74np^zczspLZsudg6pq_NFQG+CxGoO;a4n1 zWj{kMWkim}#tA&i>jU0xZ6@_B|_vLz9+ zztY_ee#KUC-gXMmLdcf8Y-gdn&EsuzuI~=U(|nweO4>y;m#ua$pHe|Jkyv!yQW?k= z%U$4HXFzG3YQc03{N7#8E}8|STiiu&7Z0LJZg7W+oa_D|*Qdz6&M)M$j>gnlC^Oeb4$R=Zu(DU^e1OD=0#6#81KIC-wA zwo}XtEv+fLZIl&gaIS}g`YP&M2+JzlZnm$tw`p*@G$D@%e<;XR#CJd>W^v)Umofv& z=m>pXSy|~4e?zXfeLX$ryB7-W+8C3?+5a%1xL_}L6>YfZsmCn|dD7wp73c740x8FJ%s zyMVw5A@cXuzM#H7OVT^Jc*PQeqhXQTftq!qk|ecVGK+?jU9^@>C4ElR4$!jvI+y9y z@5l|+h(@WD_gA6s1|2xFbDG^Ok=_?<#E5=ae1x+3TFsNhUmGFd*?}NeG2aN&$6Ons zSbvRIe+_b_^(+X_+MDhPp0CfP`6I(4(`=-ObGUMB$aGw59)Hy)_{75cd}X)!jJG)@ z=XzLpx_CE3V~=Fbqo z$rA$C3+K~SawHZTA;7sl64ciYk`TC_P51QnK=&v)8l6brTQ|&AHf2~&Cp+KU$L1_o zNsT$Wdw+ON_4bvvw_^MHaC#e^mDvH>-iqz(M&urToO3-Kv;%YjXXM&wH6+UHtC-J;8ElVz?dv&rNk98aTL7_rZAd-qE|S^TK5|uTUkQv5qRhUYCFz0d z`QEd!eI-a55@q)F97(x7_VrxPr@GW&X&WU@W>^-}NUw(o$g?;m)MaEgKUqiqo zm&)wxAUO|Qp-~xkz!D@4i8A{-L{e^#eLdT!qkW|d;l%cpC|L-R>uZf)@fb-Tb0siB zh}=)Jrhni%Ne_0QFWr-yS2fj#`VkTT*S2>hl5riEaGfK^q7*me+U70mRVHw`$~gTZl_TZ9&WZz*(x-;nF`yhDp6JId5;l-$|Q7CG0N zcEJ?6<+xoyV1y9&C7wv6-yhW17fE`1?$uYU+~stiap}UjOP4OpU+l@jbc5cW^W>r} zh@GswX!O2pxr@`80hl1?td?BME^Z;mospDtt!ZyflUoy9RhfcL_B_rv^l`TB&z=zT z#C@=iNqT=!Uo+&YVkIBPB_li<6=n8yh9r*dD}fP0GS7%&h=1-IC4!a))P2@^{kruz#Vc~$#GvP zyN)skSX@80Qgofwn?}J*w|THf!cAshKT6KW_Laa0A=IyMJw_MFCurm8feK2DCN|Y>wD6_BB z2P3wxAz+eAW%iZ&UZ_ z;Tqdl0waVdv#+m`^s#*;+KLE=YTKR!o&N0hneH;j6es6T;lGqLqB?}>P|JS2IKO%>uuejM)Tnk)L z6gj}cdh%{|1`E)~*9Gy(xY97}F;}8wAw+HmYSuBKHLG|XlMpZim$IYj#34Mg7N+A3|UctS9et1;PTwcq+C7QfiwW^y~oVx@HI72Z>@kuo=0BpXYYqSkMm8 z^$lY)@Nj+`pJj<_@b049rxCWl(J^mvEZ%QUU=Lh!)#obc{zt-f-{x7wS4apTLc#Tz zfBu&U*W;2j@uAHLpgyL3eckV0{>y|bZ!v71P19H0d3l)KVJ}<7oV~(^D}@rX3dVxT za)#TG*AlSGcD!XkyF%Fwyl2{%2l+peyxRE^`x3eP_E*=_3JI=x~*!Zu<-sw`Vpb2 zUNHw@hxISSd-8bqoK@^D!a~p9$%sF1LdIRMmRULLSS6RaX4Pe8)y!60V=mu7k#s%z zSB+)E%O~QSY$`j5SIjA{C#LZU*N?_h7y{ToaLwn6I*J>OqvsuoKf@B(3tX?(aGfBT z^b#Ns-6|XBAKMQiA%gZ;O@h-m-+gQTBir+tt^R&zHH2wJ4(h^)nd?y-@ zsOgM%dBTHW2gLZ+>plw_H)ogQY5MW8UnPAg*so3FIuwj-3M#No=f7JM%Jh}SANbU# zb}N~!J-19>Y5aj$Uz_85Kw@9%Jo!(3adY|Z_EgvxP-|a5PN2m4N??Q%*;+kIBpVbB zS~$SO!FV5v03!7LGS+%uh6q>H<1nFawv8^vwyS6tEc^F8Ot`W(dX}AZtKPVw=kK!O z-`EJ@T2XwnGj;*~F(d0*%Mgr&&0Bf1lP$M>BpK` zZ(G(LR}ZA{!5C{H*POX*Wld01r?6r;ChN!r+kV>yW{U-T<69m`WQ^PO7IM{vqepK2 zlXCUE2oj0$mU7k748V9S+E?$rg>3}fUT7iLl4Iv8S(l9uvyPr~xwc#b!lPFE3GD*k z-{o2V)RW{AF@``6#bN^lP&L#0Jqz$<{`GX!d+*-;!t6GXTlh;Rt*m3SQ9D~Hv+-ii ztg=z4X|d$^@STQqmyUDWS=V$^5M9|c=+x=(Hx)^W{xy9S*&Xo(2K#8miSp0!OR@F+90i#Ag?XJhzQhRqpnc9FLTxL-!72S7&-a3?I3b9On!GYXY_!;2xS z4bL@lf^$6_ zkw~ufX9;+}AOORGFBb>neJBEm@c04G4u}fXrwP|vY1l&L7+;J8u-<>%w*wyCMB9>h0@Z z(mD8hv3+go&yT8kjsN;RJAj$&CtPFu+7wnG%I)h>VPA27kZ^4-*Ep5Tz8)f6WBb~i zj-Va5T4M)}5Uzjoc3gjLhODpyCm}I1-UpwL5U$PS8K*&xFuqk&&pJl9#&)1tEvfG( ze4KFo(Pp#V<>~OZFZ#0tiYF-7pFH#x;&{AooB$$BCm!JmkTGuWf`k6+>cQI+KX=?a zs^$~=uLAv9XZv9KjmzNh;H_ITo0l2v&&on_XdBMiHjH<#mh)DzQcX40!v#5QUid?< z*ayCZwOl_;^!0&auA6iNKIG1K_9+?HrwLcp`r64H6IbHn;RZBOJ`;P$EFY>SZ z;4 z_|_U%Y}ft-;Ti|a2#u5{@aD&Qzj}f5r$7*XF2|b7cGsuEdGauB7~t^J0&w7{nlI=- z(AU+II@{F;{+ih(Gsh}BBXZ-`p4W>%5ajwZE#$hjyWhE~4{?37n;^$k) z^*QDjs@-nA9V;G<#v^)L9E|s&2+;KlgnhjoDu?)D83Am^intEq=l`#dBe?Cwg31BjFhh>KPy2qxcm}9JXQOimB?JCN+ew04UtMp6sGIAYrjM5^@ z7!?O59cHG_>j2pE*Y@hKLSJdTw{H-^Nuo!pb&mVN4qWx;a|^C_=@Y+2zeF!{eH}U9 zJvMSd2Q^&-bRhBGI{QlF=sge}+-oVK6*}39N4onkrKGPWZ(nSG^k z^d9_z+Pgx1g;?XJS!5Sey?xr~tc>d{Mfr>LOZ2kjy>+oWGkppEXWAQbeS6Cw`2L2- zvDi2PS$k`)@#OK98xWASx3U{t8y{|*fUN$SBgxaE(|{a{QmnJD;9gb2CD38ufUf}+ zWnnGNtA0MrQ-ozaZ=<0rzz(Da z2QuSB3?gYQI6EPbP(%-0ZwEd|xC%emhzi>^*-$$maDGS#K!J$6hDj6;DywIGn817x z&*W|jGrp@t`~eZ4@FRq)>h~7bvnI_2BQ*e3s{$-#=CHC|ak6GpPqUK}_1CQzcL8q? z9N-Y|(KL+i+c~Sa!0>3~+mz|#+0?CJmV;1w1+(Za85emm+mK=XdyDGm*Tnv>P5n*q zy(QK)6ZO}3lAOd?A~_U`4G`Gt`Dq?Prue(Z{kusz#ogMZB)vrJAE?#W_mW3MKVy~K z)YueTGFMrtGMBfq%t1q*T<)keIyHvQ+bAuRQjk|9qYaQ(_dsU2=|@Ly)xYoWBzU0QOwjdJ++ zDcaZCdRC)#$0z{nThCg5Z;ATA83HVRZxI+FMEc%3;-^c6NWaxfcf)&2)CXGm>d^JQ zl}Ob06Vf(vSp2^#0AsZ8TU5J3;Q2J2ZEk0{=@MnKk2_#VPl zb-y9L1hUsG! zkZWzfb_d}a_YXAp<2V50+||VU51|hcwqvpH3RLw!Ju7jzM>aebgU z&7$=Iv;)Ytn{aI|*Ekie4~TbEFX0;32b$H9`tgFtNLF;rn;eeCO$cBQVft~;lUS^C zEY_39@3VJ%QWr1XhtJDh_un}8<|f&NKAnNualx?iY~Hb7had!5yEtzxR2;*#>|*HL zqDwHJ-CADwlfSmdYY_;p@7Y?Gp;D*Vvgwq8p?02{{Rh$qxrVN}4O~Vt02yt-)kV|D zT?>UO)Wz3lCMUKsXM?XNzvve7p-OGV#r0gTVzI!r19qG%!vkuz-NbbS5w7Vg=t8Wo zO(<2pzFzmadin}nSrgedm_%cJO{CvNXBK(=g#ycL$MbjDk^84JR^}xX&Y(dPCnMNn zzAWNABe<QWmyHd=#ju9L0CE*|+3K8Y8*I>Au+;S4WA@MH zbnGDjt_OqtE_(!2;5(bV@`>kKIRQ}Sh< zTEZh#UuP^=m!6Qd2W)|`Phww>5`B&BYqNg@mPq@486t-F^;2-m>cMq4atHzk+p>o*dvvA#B|4WO@Uy#ZbxPm-+OisL#E z8jXuy{8w*;K&UB=Q~Gv1V9+>Ba;0qj0ve~3TpEiZ2*~1+dC}iOWD;LmM}YThKjHNg zit&OElB@0-sn-WmAA6bV398=84LYq$o4gJ;P}E9=;0 zd){rRcap|?tETL^SIulB?qhbh(d;AfbO*pupqlVTw1g>TevWVXdzHIRcA}$vLS+ft zm3Ke13xfUH+@Hu--ow))qj!(6h_!V6SqC5nYMx!VAmYv-UdM$`@Nmh#4G-YUC_$WBdUm?$DN)a{4&kUN0->mxyZ{Z4ZAEcbrxdGz_j z)8uF@Zbkt0Qp__FI{IBCk;gSNGBh)O>*k}+$8ZUohl#xZ^{A(>DC73s-j08IT>E08 zgh?YJ)&bJ*@VJWl!1s`Z9@pz51H&WJD&P)OTzhC>m<_{X^0;=vNHx1?6cp4$W@rhg&X0PIw8_HA0^@lMf^OAF}=RH})XXo0yyIEn z=27Ha6}ArpTs2Z$8P^}J;o8^hF;?*z;CfL-3EPvWjO&l#tuXI?P+$8L>JjCtSA`4u zU26OZ4+7FX9@fP1S7rvrd|AbAq*|FX9Rt>j9CD3?GJ_93FQ)zbU>?pjXU)$u6+rzw zdH#0AEmfLZiPP^V#B3DaWiwd=*P4F9Dac0XYi4F(dS>+2%^B8A-kYbn)7#4ihez4G ztHPbgmQ3+5@mNUy)$0}iDr}lqc ztvy-29pIF4QVeX#oH<`I9HYSa*T_F6ta7P4lU+0mCM!Ai0+tjee1`wtf{~(9^Oa)O$cb~?e!FdQ z1KbXL#Ipl}-3R=8-w%5}Zumw|XK&A&StFlEZvt@Cf^Q!1EkEV0Om`of9=UUe%^7ZX zQIoy_!~**2zqbTe^m`NfS~k?gb=mSCWQS+K_4Uc1zJAER=Nf$l#O&^~C!%#I(pO*E zT0fzv2iV}CA!5Az^~-JP;9NadC&=}iTFkX^sPJ?&8aN31$oQ3(pD{)1f^R&*NO2#r6sl|a~ansNYOZUpmM9{Iy9$?a<)v*fexeiaeE3q{>%ec~YOlaLe#U0gi9lAcIK~;-#{j?8Gw7c-@ zunL$YPiSws;4fg5U3UBY^f~6*%r2Q~V)l_@m5Va2?<1uS5m|*8=P>N|L2Is06Mzb*$n#QyT=jl$br7zq z{U3u|^=@xHL%8-5S%nzn+B2z3i%a(2dX@m}A+idQa_yVer(MAP32WwYb|XOW(LmpU zbji-C9OIfYojjYmHN2Izq*eUAx1MMJn!k(4i`M}JSF@P4a~RP^oQ-y`FIVs*s_|;^ zU9~yDFIOB_cWP{kl~)S|({-#YTQXM}{2`syl56G|x)ZTfw13A|<;H*OK3A0awk9O} zh>+q$yl<3%j4NHw2s6Gad=nq{c#%0?bvQEmEm+W1lNx1Zkc=_{YV3EvM8n2SbvapTnSnT-f= zu6}*sG5;c5e@kpXuehG&{Y6D-`s`&~>H1qg6LW3qk1eyWhl#$5cUe=JH;~A;ug@^c zg|I~Wm|B^A#dXcZ7TZ@rBHW(Z0h|Ye8(r5dwyz$Ou%9xnj}U#0?Q2+~;`;i2m%|9# z-@a1udkgzrGA7J5a@h^&bkU|B%imjmdrPS45yG{!P=Zb-K{?(xPM}_2j}oq5-8y~E zROV9HQK*H^%JlUS!Zp^{#x*o}CHrtX!DnfuME^jIuiKl!>!bZPHZl6j;P}mf>5slL zkr{ktbbLB96Kx6Gm0La6esU{Hp+Y%?>!j{nhY42@=``fvnFzj(O=NbBzK#-JN})nI zgsW!y+Fv&wi}SZcoh$Pq8yugR9GFt%ppk)v;a;pjn7(P4YGgY8@+A!hB_n_TohR0F zz3+3y_gFtfu`mj-K%SzwnuFHdjCqH1^sq$V!$^)*{5 zyAY^&&YH_x7_79kxXQ}zD#X{rKzVJc$-uQHt}ga#39k1}Gyy9_64$XIFgiqc0(-L_ z`q3&j8poW+C*+xgD6}P)0@s>2r6T}Ua7`_$ZC2uYYsGL(He=iQGK4S3RkxVoWEU-n zqJz|00zp9`z;!>3?^>N@zn@u=m^{pfwJrNvSUP=zX@p6lHJ*GEI;7WQJTx%zQ+1rrnc35C9P zpJsQaCfRB3Yb-8^aDRuDtZKn1F{@y}YLTH|R6JRCHB~JYtO#!_f~-JaYq(;(HNo{N zw1yx6cKH(#lqAc-&%SAQZEgqP1Mg9m|MndNt~Ki&qu)yoZwR_&XYX}QO^*zX-+HOh z$f4n$MC>OG0QYwO1f8n=R63u%0jDcUA8cUWd< za#&QiCMPG_vejCTr{2DDTM8YoIFIY<@tmD?S4*lC)~uFn2i=Dea+nudmo!u*UUSI;*pZ>^DiGwZ6VT*zfW#V8Lr%Uj6m%Kh+$~<@-bo+rhE{ zU#+>;*jJ3BC-k+-W;P%a&EcHolWl%U&S-8V;#`oQcyHnRA2*DnC%9$}mmgF0feS&n zizXZD9_XH7rA6Ddu~t_$T^OBJRcH(HWuwp|2kzT#a(pQb`uM4rGSLbt5a&SB#@4 z^fmwLIi-JOwKa|tuBqNWrMHso?JK!$ubuUXxW4-S1HumAIQN>q_V)DDr;6@Kt-eBWS|}{l zSMCiD$W9WjvA#B|L(uP1vo0^^>nrc<)by>PX0vV}-9Uc9&a(@b#CSp20a-q7SWWS4 zE?jD$z?NMCT>W(;MUf&70e%Tg*9Va+Pd@LsJt?BIWnvbDhhUcG^1P^<25<5c4pe zfMv$64^PKjLu(aqeRr_`m97ghdoNim6UVkQ_h#?C5n-_1p}hTS1>7_XcCLb}bcZzt zzP@I?Y(hW0!UVwesUTPE9}pXG&6)GX)boU`I2XlUYpxwZuFoMbe}WOdw~jq}^gdsr zyXVcpk+Jcc!9#c7zap-{WF@E>tk_PDS;d@L?S!cY3lOR>XBkD7JaOS%YR+;`v{AbZ`Caqo$0kI~JQ0@& znX2BB9Tr2JG;r2?)s z^;fKC39h$_`BnI7GF8QE&9z2f4-&4Uw{Fg;Vv70lu>!U{Z|mWdMNrk-fww_fg}$B~ z9ap+cE@a=Vt2TLtohRaY^3{abBOv+(9tfx{xZO^+Y&vDjF0ziUvx>)lTktrfh;{oa z`U$@R&I+__fW3n629h9Bal$HAsu2I#DVk7$T`kN(?-ousP+4ZA53pfo>s-Ype0^@e zU4X5vWy4|OT-5sst6b{NWEahX2~#<7YHT4CQ@=ithisz0wJqicTx`)p~xxL+S$^9mkK?!HDp{ofLYzq{iLUP1_CK`x@bmM4nZ>9pEE{FkXN* z_GlU>{`a!Ti}f?qcm0BTuG~E$z_l;t8d|Y{>mkoCLnP(;>XUTL*D98yYSxA*QNKO@ z*3+HAe!{clF$43teaNIM_F3Q4_?7PaXPR>Cp03P6WQ^t~9{cqH2eKh|y%WTGedQi5 z%)2+Mn9WymvA%}=OL2Wo2KAM$5f{)`A2Lg#mfk;e7rf)|pH5!6a_ZEXu;q&Dwbs{~ z{;W6gp`l&i&5J8n=3u&-;1KmbI4{mCOOL5>UP+b zZ*<*nT0QIjESPVo23B1TJM#dy1BX1WqTdDM5s58ojv`;N@6f8RMLZSmL0@aeW2yGe zcAVz=TDHoSlmf`RNnd%ti;rFbO8Q4lXsxd`?=3oBaPnkk$#k=e0T>Z}@p9K{BDYTm z>_Cm*TMywjJ2`MCjY@m}OsBVdnw*WrjR^4fmd_Ps+9{(xAw>`u(fPMbKK>xt)$?=;$)z|_EYMbvl*T+1r&^5?6 z-cRVuv$to)Cr4tiK8}WWoU7m7672#yvuJj7Vqh$j?x{j27R(1)uv`dKcqZ1|%>Z+* z@AUK)>sPo1`dvo-*H&B`@ZdD~$+oI%mV7KHRFcp;DWqyyJyW;JxR?c1})bqy3;x(;9Aq(x&tSXE5672 zt>T<*FTJsTeYBF+ah__pVtBVTt_7o5G4e6j(CSog2dKaHvx);~X&pD`L*9E!{7Ie! zfsfFlzstQY5`>6~(8(*6^u_fxSCr9qg zOrCuy8i`@G>FPCp2=xI!zKeM5ccZ|(ZzacAC>Wj`e>P44^|E%{5ZB)l z+w4i=HFP?9%37}rQKPSXek}9Ig1fd=jNOQYnl-%V`ue_LeE{QUi7lwFNo)QS)_n04 z&=wcOdntjv7`ME}e*oiWi7m)AdhOj!c7XRu4uHI^p!gZGY>9I-GaGQ1avGmM1bq-M}qpABq;;>>Om$IudVwP?k0UrAy?+X zExS%7>w0qh**F2NuQh%|T_pLe2R2e2CE4q}UfjEacHmdZgWpR&*L8Yq^4?wUob^U; zXWyImqUd)OMPv%Fpa&Z>U>fHrUo%piX!AYSS3e%S@FV&RJ`;TDhuzqulI}q)LFg#V3uIE&99kUDeQsvCFS$wskkwuW{>t_kq^QyVtglm}7( zGmG|urIo63dNQv6iEzEFnkxh(0{2XNo(*JO2=}B5Va|15uwC#wgllh)TCm9h*Qi!? zp}7uD#`Qn1pHB2DZg3^9n;KH}+gmmI`n!~?;s#gpg-UTDZ)&HoGJX9ol&j(fSMsJ= z0iQx`?5aQ~mRP4PV_2na3ya+GfOMW>cNw7{UgG)Pj!21Ov`R<>3i#s zDOc6)t(g_8s^LO>GJX9M%2joH>tm+lzOJ7kka7KQl&k9Y)>PhbO+%+47*0>d^-n2R z)$Og1TE+6>?$Fmiqg++Dx27t^>@Kmde@?loZf}j*bKtnF9a)(j_zTKab$e^kTGp#) zz=J2_`UT2Wb$e^1TD7#(R(ZenUsA5B+gsO*=Dgt=?cXy3Q-Niqt>OY3 zwpTP7<&tsz8_HF6dn;os8jgMzR>t*h%2joHYjD-o&6sRiTnHu6uBjjK7^#-QJop3gspJDzGxHdns4d?X5AZG_N04 zsU6ryxSmtq-g4~Hl8z&X5I4u4Zz$%)ec0!UA++N8hQcC-+atoXzmAFE`Vqnvr*QU0 zI&(94eI(n zu}(n!Uz&{TiCV6g)G2I=`Hn=Iv6XQ>SS7ABp5FP;}wf-)+&^2$L%`(9FM9c4o9|s!B{p}*{(QQv#C7& zbxvP}Y??~1E)j68iBrnsX~MdZxZ!&8l_KM^iVv;VllSXcg4F<|zd+IbXuW=czpj};C)VM@?}7CT=3q=(Toln>>-7t2 zxE>+Q0$j~yGwM*VyNN5VXC$@&S2SkgL`3`D#FefmAK*G~MILHeFn9)qM<|H5&ZldM|E<{Hf_{B=Xa!-Gk;aEi_I=&x*Om^Wrw4t%)7=eCnl z09StnJ9bxiIhi)B(lJ#*Jcy&hquYbbBO3Nam6!Om6kX83*rzy6x_vJp?P6ZZA` ziuM)t6}RzX&a7VXWEG#&Lz(WO+ZmR#=I5DRaZ8nO%NqGyF}aG{+d`i8T>l>ACb$lo z3s#YL7;K@4ha`otWR)t**z@j+0ctyGl$Z&D9#)&^+ImPS+i|L%>)(gl2yi{8?!F$% zl_iVjif?(_&WEd>D<3Kl;{|2YeT}K)S}t{GAm}3mE-yLuf@2gysj6=WU|F=1x|?h& zXW;7l5sBouZX~Y);CR81(&2)H*5d^=^(?x6Yl8|Qv=S@l4Fn~(TYhg|F*N9n^C~Je|nF{ zRrCwcc5G_14C3=r0{aM8|5cR`drUyrG?8WyACwZ<4-~5jPhZ9FpY{((6GeEilNC)f z$8L9YohwI}?Y3t{^;P`-pCES?>nni~LX_$2lOfV?_0n~HJ*$t?Yfe}L7N8Vdvypa37g~($om#*6Zz1~|?U!mE`H`@Oi>uYmb zBh%OSHkVaXsn+#XulE-BE3WAu=s`mJy}rVu>5`q}jv7s2+ceQ`^3NIo8dy&Nw22;e zePm#GQ#?&yFg7wgbZe3=m_^gb+Y1`>XL~62!02G@xZxn7)XVV6$$?mGhyb6@U1J9* z#y)m?WIEGOR!v>BY&vD=8Eh);PENEB^!1wGF2LVDZVG?)UIFB@L#tL6d9XzNILym% zTG-eAIon=(gI*u4JZR0$n0Gv%0R`?f(cWyR-0HdBgY;`$3syNBa}7n*ySSb!9fz62 zac~|5i_UWVLMN8rM7UuqJj?Gy` zLkFh;@>gMd(}_p$d-pHx+PZE(!c#l|8wQ6CWNM|VaE zZj-!V0lsHD%Fk|cRr{UhTs?hF{Qv;SQS+*96Ffpzpr`wQh|IzdT-jltCa~b#| z?-TI<>hpIdCw$&2c5{xsWEL3|!g3J#tpLthq5K6rf0sgD#l3AUPvE*g$n}$$Aq>hs z1G}roQ)|4pR*pQiS;gt%P#wsOHH%iB@wOku_ZIK4>V6zMT44KKF(3o-7qxP*iTY9vmTwCd_uqlqnEHC!3j(k zR~L?p>Z`zcObBp=YOY`hIM_1NjcgL^t2b^a^z!on^Y47#|0ee0WV~;X0CM##E9x$8 z-|P(|a{0%D$oaAOV{-y~An5y5{I$bxU*P-}5XA5QBb#RtUm+o|mv9x$*KZ|Uk4e(R zhc+j`>jQ^9O%*@+Zx@QYdGh#*4G8Q9eXaVxdhy%;juvtqzLjBpT|I0LRyTvtL{^Sh zw>nwbd<{M1P4IQu;Lg<^?(gs4QUUuD?}hrSAnIlHU4$!LqjyUMZIHN=<&Cln;R(x2 z8(h(@hrv(t9UNr0c!Fnqfx-Udan@ZaJKZn=pxZ2>XKb{a5p8xmCO6bn;Rg>cuY7yf z-!p%&a@SFAKE}Sv``UWmtWICWyp4XyJl5Cd2+Q>KjGq;9RlTk2>-usKIPk)!9bwSo zww-nW_Vux#eHH$i44|GouGG9Hc7uHt@v}r53%RP^*7X% zL?lBe4hpnASP7O?Gh&4gE3V)Zchl7Hr*l&&A z#;KE2w{DDlR7bMOwfcbQ&zd4I$&mNPaN;v{1aRE&xUZdp>x+ad))(R}JOLaxtmQgQ zxDqjZ=DRq>KHz%Ik3%9b%)~GSil+BCZkUGuxQY7fZRGm)->4qi;$`akae#0Y@yhQ2 z*RNxHVy;{GqaWm4y&t}KZ+(o|0aBISLMgj1Df(ih-x-XeeUEU>%^79$Y^q=u>{Q9I zitg@1)YKEp^mUeSZ7S0^5qN0gd&`@*A?)kNW3F4)jKiF(*Qye6_UB@*TjqKMxC*~w z;ZK;2xo(;3QLe9EYgP0Gm@(HabA1GIsI3po6Rz`i6_&}2>jPmyqaE<$Jgu#7xJbB$ z%`d**BjDKq&!hNlpXaMF*Db5ZBcQKW;XmK}PQg6ky6?e*x3^r#F3jKikRq|DpUzYBSah_)Fdux?& zjo(|%X#n=WiZ~>q|Md;RwYgm5R9^pUuwVO=!1Wz(#cZ}h;0PqHwF6&7^p)Fzb8&xG zc*e=K`ha-%-;14x!egvSu_ti^{WA98cs6pyo~>Er`o|Cc6h7mvNdj~|PVw{qIB*pz zJ3NvZAG_IP<_#p9GK#ii6by!Q3vo=nfix;FxiOHr^Rbbs;gV6@QZe2-(vR{ygdH$_ zsBdj4=f)Cuf*-tgPVoHE*Zp4)f0f7LLj*}2ww%BSA>wa8{jM%Ah0j&YkHv#IYc=IA znohya8iiDL(abKHj(2tZ`49s5ldp1bco2N9t?bB7PM9UvF0!*-)l)h})Z_CDo(k$K zBY%hg$=;j5M{-^D{ym#_$ByH~OPu7+*c!{WTI-A~JJxtKEzOKV>@Mlv; z>F#QGw=^viU`Rq1AR+AVLP&rRmJnXp19=3q1;_$neY`&p2_g392 z{i^5AsFyk=_3i4~^?1_OAe= z0TKP{dCBz-xIbvGv3~_LmlV;zDy|amCGQLCr1GzW2K!gVRmCF`?1J_h``7yIiShb? zY7zK%sqw9&^(%?5tRdj}SJ5lrPkHgqR(N8Rb*-8r8Sz#4SGDd~J&+hTRIxME7_B-N zAL}FF)n7MO!}|BEajxfy_u*8fdoJfJ@*U6f#gbhv+gY#sMV+hXi17!6u6pi?=9;7X z_FwI-+}haJSj;cZip;sOKJ~;?sSLaF$=;ROZPi zI9Q^GJU%BjUNPW z@hSR;`2Pk8c=mdI&|a~h@TnpX%*uDc5GH$1$$qv$^;=%Pkjcrwk6T{ab{C9Zx#3#9 zvVRLa!QA9R(k@g=>yQ?UTN4oR2SyXO1TOqG{_O=`9}xcnC*m)46TtWb>W%*$b>AId zcrgN^{;J|UDX!mjv5N`PyOJWx6M^DwR=LNEuPs&^B@!y8{`YWMw8O+l9sO_N|9{W? zqv0#v0UAZTjH-;6q1vqPiLhMV{nf6jf#HbI4~$Em?~Rb_0qzKf51BdAJ$ikxp7jCM zDByfW``b=tOU{~IO6IM&nNX+A`Ej0Z4P5=hz%_6p{!%xA-Tb{(6&)<_`Oyfu_Avi% zft7hE%nDn~xtX)9YZXeQo#) zpJ>{UDhIx|lz)9bz?FjLrp_M5D{u03m2p=K6+>Jta#gj0UyYQjVHE*sGRRf+5ByrB zT>Yw*NwzA`?uNMK*GtyF4qW?X8r7kP6|6k3XPMTeg*+6q*^eUI2jes$ZI!-f8MI->o?N$!V z5a&y+UdQzhfa}JDO`?K${xxR?OGKpO`iIDsxB}b5e0%jr53ywJEsK7_+V<8TBiBUY zDCHCKer>Ne+p72@va3bP+@jO1Y{HZt1LP9i+r)1;W~K!++$78&it^5*Ex6l*Jo2d{q2yEcNKaY~0Ow{aOS$ zMXOTB^`C(29@TkBRIF5v@Az6a53Jz25idis`!u&*Gs<*# z@qX=UP38ZeBjn2awe3<_%*g06ssq;N>c5**9HK8o%GE5M%6TAHCKLZ9Lax;viZyfY ztU}cEarA~@{ncN^;j6QXm1M@^ab1$bhZdbma?zYFr>1$;bEB|VwLgrS@1l<4ernU@ z^NO8P#k|#wz8~=C!FS6a;@WzCkdUtFVO_c0DsR1dt8mR})FD?j-{mDCF{?+7MryO~_ZRCYK!3X8BNA z$);Z6KlktR<7w`a&XjGQPOOS$K=3^l>mwlI=8Pu%S+0uff%E3+Ap|6@;4(*SNE9z@Sn~tk$cZr9b zZum(XyP=b~-UDb(gG?cs%XM>{TloRGn*jyJ3v_}HVBM$hZ8$Pf&<}*>1`@4m^5eY) z-&=<+czU{o09QAcZ4~TIMQ`?L1R`s-`)e#S_vuXD5M z$un3ZVBOs1)^D{zdu`F4xU=fvOKY9OO#+Ey%TSw&0!<>yUYJeSCK+R}uHI z)(^~)lI#rSVm(Z4f7T-rK6(!`v)5e5bso5?xkZo^s@O?f(?E{8W+~zil(H=66k4Be z3dP=bQD?6UP^v+YDa0ODUe6mxRm3H`(7&DnfI}cth~E0x63g0aPNwnE0*Vraqf^Hf z`?9I~40~kEN7KOSxZ;iihr{{#E~>?wuWe^4u39{@xWuqQ1=wWuXVi&~9W5~7rMG=ok#UD`PTd$Asv3i(@R~%u65oP7?zZD#Zc{-xJ zMK*VKW$uhHyU4Nl@{Ls@)~N##|eK36~<*H_3F| zdpPC_uo@7N>zn0$YjA(e6<{rMc#+)pO|X{FyT_<`c|2a z(Jf=H0ILBJ`?cRD@B69-?r-%{-tS^(+(MRb7|FY|2C$0Ps_JdMAGy9qmgH+AED@ha z#HVWed-EoH4;eGmCB_YF*K@1(fxz3!+OPd`7QO{9Kvn1PFJC` z*Kdyy3SW2Z=JR%;Vwk-Ogthyep5C(wHpjyQWa3EBn?UN6#H(s_m;c@pK0$oW0M}sT zZU21y|JDS&`heuB_Ahum=DIbwEv^vjVbr|h8|AgH1Fn7q(=C+5r!OF|m)EmKZ-1$m zu5do31fKd-cW&j0{^WgD(yl)FhTL;cln0X|Prjj;f1-b2kRLMx^~JfmAY+-pE_R~M z^kDp~+;b~Q{vPB_xN^C<72*%_&(z7WI&;7HW%~rzJwgAP0j|m1a~HokgflDz9TX~Z z&$ZU17Cu$Ax72%UDaf_847PaasgqXU)Z=Lt51wVMinYZpZE@P;dU?8ujz5UEXcJ|!}VS= zs-7QU-5l&)eZnK0H3qNFURP_l9y&ZsMpoFX$JH33zVp%f*EQhE{VQoGJ=TH`q`X!6 z*OHs>TXb**W_`JO_Ih>D54-`m3jaF7dj~Q$jmdiU`jBh0hpdvFy-QhbeTCn_S9x4( z>H}W`T)DmC^zG1}#N&EuhIe%g4VptWk+_W4v-V#VwAb^%RrF^Kyn#D|*1D}O`g^d8 zp4r|L(hoFU2w|^k+)&kD-vnHnR$S+ep1rR6@%2rzSJ6W_T2p_03vhi(_O#ZCso~4! zrbWMt>>$`d?W|(HwQe=RwVLqzUlq=`E1_XZjo4Q-1na32$O={Eycl@=cxBOth{eN5DN?Dqgy zF~1=GG)`c5;ubN^y-T2cIsbPv|Mza-y1#Li4c*bh`m0@4Hk)qfuAP6e;L77X1-QNk zxH95L=wTwFrg>a-e&D^pRkam}@fxRItUFfoU2c+3_x->%_5;oRj<6Nt~h0N3mM zB(necej5Y5q$6l#MZctC9oK&auIgQONhK|uv9^^)DE$ejV5U z0It;S0-x)nPGQI_usW{)30y%W`N4gzrwR_~ECrIHUs9=#>z4o~^*STzU#*N`U4=TX z{{>wAk=jfCG%cOygA&-W>|(SGe#Z zbwxmyk?$XyvzE*EH&EoZxKzCF57uyfQ32-XsPT@KGAquSecH6mBXwL8@Uo(=XQlk; z1I;bE+`*Qs6a(808LhT=xOjqr_b2c@*e1yRqTy>$8!7)cG8&npgOLX16S$_>~W`5t{7K) z^^I}#mS8(pw71l!;1u}w*;zMv&T*29oI#!sBigwvX|M;Cc^e;hC0;7l9eb~RRj0!C z*2#&namvRtt^q4y?dE^z)x;H72on`tuMz3!2gLXI(=dTOi9H)!UwHAw7f*5x*xqVb zVSIx}U@vcRsrdtft4PH57B!~1)U?>@bh%(>*+_EHsq|3i7>#}%S8Q)l_h%v3fnjsN z>bPQiOVqFYFYlM7AHen&b%}DWTjc#MhEWx-{!Rb-70DIb zThx9a?-p>tF%!*Yg*g3-*a5}D6 z0#^`8xIVjTWl0oovr@rTt=mxk^(ue~B1uWRR?Re6!F7M)@&L1|sbNBHoa;&2NT`rm z#A0oK)~&#Gqd#jXTTU)!;{L2Ue;e7Kb+x!$&4Yg>aGjhvK3k`%rY zjO=$2Tvfk|TKlpexHjM_o4VB0eiyXYS4%PnfGf3sHMQSG$MtsLO6^}w?RU{}y#u&X z`&U!@U36T#fGdbi`OmFxGPU1Da8>;-%D)~2m>_P2sHyX&_PYqK`x9O>Ho+vBJE>v9 zFVIQ-F5|$prr+h9wHD7K0<*ZNsOxu`0IqSr%SF*$@&vxO6wVV$xa6JToW%YCQ~O;M z&XY>u=&0KT$ko(-7lm_D37ji+yPy;LT@=oTl)$-Cw+lL<-$ku4ei*oh<3%s7#pHgM zs;s}NHAPbqay7YsK(z}L*Xank8r?3qCb+&p&4(9%y;-MR%vtMv_t2%Ki~lvpXKD%f z@n8LQ@;Atn;&}d@wO7X98zCU-QPo6W;FgyKzQtdfA+XzvTkhMdy8jhQ;KwQAhQTCX z#*||t{X-+ekZb#kI<9JdhWB);@+EqKVTCo-l!^*2s*I&RD zdtr#1TZtZ4a9PRbK}f8M;})1xSTbTYmyRp;7EpH?dR%i(!DfZk{Gwel1+0$i0Qdpb zCksiTihPlLrQ{TgMg@7|gap^x_tqegqvu+1D+aRl_lffRv(!6k6u7E1ND5W#VO?2P z=2ZgjTtij7&C2|JcY<7xK$+;@Tbo=>S|aOn_2<2*zxiXpm0INfbv?i6<`^I6DchA% zvD+bao>AyWu3ju6p6PfL8OuC;Kj5J?$z1t+OY9ft`vEmx7-hqf$1N`k-)iNUzhe>) zqVt^1oo{I~q4K#rd4YT<0bJy$RbtH<@AoQ;Le;wc%5+>`55=PIcd@ILlEph%3lbiRKq_XFnbcB=CO zi@;B{6(A{8(f6+zf7gvrHE*vn9oGyLiGfTZ_ApyTE~ikxZ8`uIjy|-cdL*N?*^)TUEyWK#{k*%I0*!>bT;>Y-Ph#e^5P4 za4i>Y!vy;8-l)K;Xea%X4o*f@s@a7Pd*ZD$@JnQy1lnh&rwgWJT{^J+7yx(~zkFqK@k`@LZ}521%ic(hnH7 zfvk?}Ss+LM-jep(momy^bzF16)oxGBUhlItVmX1%t&acHu(M zDv{{e!^Ss$G&VVIOxS(VU#0wjLU%joO5NY0@|tlAI6R?}+y1EIdIxX?({1}_jq(A6 zT~_7%EXA-(2@w>eYc+yQwjm3hy&eR6rS8|>hDVMhOW$7oR+Tc-JCzVY2|CGMyTM+g zdVfXm6GobaZ?Ar9Rhj8sN{FB&rrN8hzdj}3TMFYnz?G>)qGKo3Uwgn05aHZV+e!7; zBya`O-Cz+5TNA+gtEyA=MhMeX|EjCM_JO@B)?5EV@fAn_>#vGoe{8Ras3}=zuLEGO zas9O^tX{vBiUY0ebuhNq=3v&`Rok!q5;$M5%Sk?wGU?>4Wt%UQwQ-OJu8YMW0b!b| z|5eSwxQ?f(aV_fk1Kl$dX*Sr~e^;j1_q(=1qG|sf#I`kZvF(O zx4Vp7)f~5%M)*)XuET0|eX?5883nw^QJD%6DN~-r&MxHL#yL@BXAYxDL+q~?i{W!=O9&GRvoF>K9Qaun>No4 zcs;MGo~8V&h_kQi2I@%0b)jVOTCr(vAi!1CUvJ_NRr{6PUguH+{f67C;wttpP+aN# zYuZ4nz8_V7Kykf=bB(IKMde?%TkjrNcdX_PzLFP8v}L3C^sxE4!Bqdyu_!W&Fb^Hq z+j#zpE43d`T#ahPa(+6luL7>r?=8voP_n9~r0x|O}E_ZLa#Tq$zJ zc)nEmMWt8ARqPL=xKh_&k?T-Y4;?{1I<5@3sy;5Nq99k3w%*Zk-49$<8;qE1N7M%n z09RF~rRJKV%3z!H>g@G);7Z;9D*eFWq*1j2eLd?A;7Z*OyUEq0+JK&G7jUIt$LY1V zxV@TG8_;t-2wdscaVoAR)duuj?*y)@|Ai-!d^Y{SVG{k@rPPn7>GuMtcYl;)`9^jU z@*h(Wt?ehgho>n!rLGTbmpxJEEBaLwSH-f2r&0F{sONfOW+9z2&}emB#VTaQmAaqs ziMg>U1F?GJuC?~s%ekulL3LF27534y*L%!_J9=Aio%}SwD>!^(@Ya2hTvF0iyUjSM!R+d^hol zawcl`yuH@Tv93nh$nzhQ{QuEc1YaG$2051PWhk(NW zVDcsP8*n89ITq_DAo^X7?D9tk71xi~e|yVU-p}_i=^Yp@A81+A&Qc&uRP7h1xc(*- zaX-khSU&-@*E#72eyjf5TfWj{dsTkmyyW_cmTA?mpqqPvLk8Ah(O$2YTt8VqmX@#N z>x_hZZCTGwQy@^P{w!s$pW11KY{T-1en901l)ZjB!sifvz(8|NU^`af{2e7ka5S)) zwLxw4reJ&POB-hr39r4iZ1Z*8PB~f5XX6GJz`2Ad{Hy98P?!Ce5+XQuWxZ9$UO%}> zZ!h5o)O$;fxx5eoPnCt-FU~12zMHgTmzi5)<%(6vTDi84U@Ew({sG1H%j%&cIQH;8 z&2mnK&CgCpkXy7_jJ_)9Utcckv7!`ye-__@&@LtYO~<_O8F9DP7C#ZzUsb>MO+4}Q zFZv(qEd|oN3zAKHzZ+|2%MGi@%{^mP_|AxZRsLf2qNZ%|%u$@yalHk&9wjbBCvklx zaHSsW^0=O`@-{nRTcyT-#Gt({b4ANskMLEE>k9J@oxQ#axIP_bW*S|c#Pv16wWwhc zW|GNVt8zA$dT;F)MjX-SLjTJ8SOb0`=m&Pzd#kp+CH60f>ci`;%!_$u%#IK~Ie}2M zw^W=r5ocf3v#uuwY|@%oM5W^@;_NG~3@;{-%~}Ps2}s9P#MxI|soMoZn?*57(s31W z_7&Ho#7}G1Dws`JI<6wlzT!&VE--5q%%!>B4P2kzyp%*5Cegb6N_F-s_AgNOO5HBF zcl!~Llt9N->|da`o|pYvB$;!iBUFmFS+9<(*uOw=eHSs;`?mS{sj}B`75f(`uJ0q} zIzU~KqXM^uUL9Ale}UrqVQQ|1Hn?+{rH4Q+7gxQhJ?6xYvCb2YTVrQ<60 zFHl@ROU>2L2A7WO5O7s|w{X)DS{td+3p=u&%uOqR&w#-!^RO4I9zuwOi)fi&S8Em0I ztvAdXHW5~ERenIRd;qvo$It2>VGkcOjHxgs9oJFdN*zC|dtlf|usW_sfUBw_Z1LyZ z^y%)Q!H(hjAaK35X=3%=*nP-MN1(IUqrg?Y%j%=l_*LD*hdRby$AGJPmo-kTzB{@H z28}dWoxL6duJzGr{;KZ5!$!WibX-%wRh*~%bRQlt^2Md&Iu2abS`I3<-2-ge#QLk? zRl6?kG#F`FgdizfmDN%~geA+w>*DIOFmIiajF<7Wyya2gTA!BYukzv#3=J9?FGH<6 zW)jbt2)T-N$NeTPG?WZ6{=nTb?Xd{CiueP=W%D`+1XtDXqPRXDAy@N=O5@~*(OZM- z4U53ldv9e+ww2HD#cT1aYm?fgC46t4mzO>ZTrYih>t{RRy>(P#Dn-b(6W&`7Nv`Dx zxpu;POL474$kpig)-A#J)&Xd|Ru|oBa%i|eS+%Q4yJ}}v#nS1dlWpC#8m(a$ABo}P zhF7Tg?_zx5cHm0=@ZDV*>MXWJ|E|PK16;-Uz#S2CH54niR>Af14SN;i16>hvP4WpZ zCdSkieGp_Os-dAA_$i$519AYT2|gpB_xFZ(&*dht8MIm4sB z4j(eEH_M+tptvehKOZ4i-YzgPjGi|yL&bSgdvAUuLayq!H0_A}S&Hi~09WcJLJu3~ zqY%uvRR%h)zX)7GBrz$;)wop#I<6lDn5w-%0+lP3T#Z|0Ao>Z_JWaI^-~RxvR6Lbl zzQ3W78$$^HIhycy+q+pl>@NY=AN;=COx$)%{j6k1-w*hf`n1gDW59J6@r#RfpDNge zOliGXu}zy>JX+JA^&mLajrP_M-`8x-E|o=ZR>sZRWWTf-ihcijRp4R9fNS6c!I!Sp z9s;e~uhRFgL9Qvm^#y;SA$182UC!;bw?^f97{zcLx$ae|G)F_1b8ERyAXnmzd5vpm zN%PbBf#b-Pc!7a&4XsOXJ%L=Wr}_I=T8(RHU4rXLm`wm)L(t@Ce#0#CSn1*HgfixZ5SsYixbs zLawKQE7SfO;U)GOTOYWP>!ZMx`p>l2*!sYQT+aa4qv4sRR#UIB^??hyJ_cOpv^2s? z>@~ClR`=d|9JoFm9zw0AUPC)zbzGkSu0<`4@Dh6s?SR#BeI0N;A09%jre5OqoHo-4 z5_Mdk1g`HQE<>-O9k4pCPXX8WQFAr416IfN^}zMRs|JULf08(e~`id(J_+MFwO98Hy1Z`Z04jXREB z9$a^PB|KqfwOCH(;#u#2q%P67S3ipO&0taAK~ zs$E%@EjpNFgp6FPk}L64;s7^cuhl?`8DEg=8zff|izKQKH`k(5wR7dDGK?r6fwG$L z|MK4~xl+d}$4BE_7oAGEFXQIi5}s&t8M(eqa*e8vCD19Zp3$~BODw)XIV$b-U6Skd zcmc7T5_URU%G#yT)XHk%>^gCNQK{E)eJNxvQA0|&B5*xs6|%M|l`b9E8vq?FL59@u zMBqA?vkI0eJ{GxtyEM+1g@y1Do5%vqVUq?tviT*vh$$e(yQcLKPk zrXPch+g#Lfy&0a#kFW;`A&bEEvFTLE%C}LSj_WN@9u=z$l0p@ME4SB&L)E>V%5+?B zg#xMAPmmO<2wb_nn$7i(e0d&Q;3I3@$QLlePX1=mbIG|k(qNXPY6 zP$cRx8Q^-tbU*NF;Oe);AR%Ni$Tc0Z_U%)rv)9)^aj3^+fa{|tCl@9l>$VnkTp2tO z^_UEBJuy2q4mr2CsN=dH9*KHP2Dqjtr%q4IL*DHy>bM?&2cjO60j{aZ33leO$074J z7Ij>2hv%Ulld0i4Wi3MHZ7k}z-T}{pV=|B&nh0EZ|Ldcn>D_KcI<8$%C>)c4THPKF7zXAaJL8cH-JLOd? z$GAI~E4fW%&`w;j5 zZmr>(xATp8*>>W318{v)J#bpM=EC}`v|K@$^^PA~xU}+i;`(yn`qoQ7R?BBkPo__e zO|jWy4^5;N(#UklsmB|%6W3P)*Kcf@+@%$0{6HO6x~a3BxV{>=zH{>tNTeFBM!&cA z1J|D>p}DE_c+OfbuQ)#S{P34?o z(Jry{Qm0x>D3%)i}4pnNmV~J<5(Mt$1%Ku4+tsJm%W+Z?u6?~EUmBcO{6^rK74wRR zlA`x6Su8pAO_pf7B<9@cw_^b$f3!CRzmh(z?AM;0WLplsl9nTE<-53l-7hB&skK^P z4_t#ih+*fRNc6BZyHw`0ELmYSzsNhd4T%da;*{=}@d*_*75`Cvr#$wsf?ch!rIKy4 z#hjZt%N!m}uiEx_eS7tz45+m)-w5_f$yDg>ku-C5VVO_OGQ?WN`hn{cM|R0suChY# zj!3xb~Ri>+z$*BSZa1!~kl#ebC9vpR|qUs6NB@7E5#x4sknK+Wax*E$L8 zf%lfO*YApuD|44vSF(4c%xAS6ud~eUaGCG}s{X3h6umn_uI<36nKJI??JX6zTygzg z&h^1&lr?dWtiP67*?G=3r~1n4ucH4o=wH7tLVGp2U7-AcGPm!Kl&h)jSTP!77=1->-0;U@ zt{ZHc75sLr>KX90{5Wt;T;adVn$_Q__wDxfj}1m8{t$8{26N%~mKj4a$W`?Z{6zFz zSIaivkk1=8G=r;O&kFj14a``tFzaiLat3|t^cMT86887$C@&?P}i^h(~)u& ztdCaHG8?Z~i&p+Ni!pub1mMkIyYMdgso* zUi52M6aMZxYVV?tM99_L@d7bFD_9@+Xrx?C?bjCT3nW+B@A6B)m3}@UM9VUx>gqYD zK>by6{bk?^;?8zxJFIk~{(3~(>t4zA`3PZlMEzBA{gp_$8a$uyieNt>?!A|>OBJWE z)L0O<9ric59mNr*Il3npjTCDKW&7FfC|29&xm%1I)^NqW_sVu_^A+13P?Hbfjlxw#38iuklFmwjq92=U;K}z1Y8k zku@Od{44Ig7yH)+V8W$3|B8F>1^lZ8H^$;63F!Q*nqMq#r1!6GY1t|`&v{!C8RA?y zH=TcdIs6i_e+3u~h&uoJ3b;S^uK=R~QRiQ8g8KvhbqG$x;w1^_{Oiqd2fcsIxcR(W zFvqj{@O1w57T_BD0f5nlCg4Vg6pW9m+>=l{($03%~a^0ve)b!d(JMoJ>JfH_eYUw1bLvnDy}$QKwSi% zD>ql8s0Qs-F~so#!JYC`vH0$gE4G!jOGbGD^aF|?ju%MRpiYH;T(p;+Lcu94i$E`8 zi#S%YGj6Hv-K~x*ju%kR)682%LDVU@S-Z@5_(x&D23W3+D~=baI&J8NDivnj0-yi2 z>h%(uWU@N0I9?zl7gAwO*oCaXx#m^346suLO2-w)3)Gqeb$!^!pdZNEIlE%Fy>sP| zbX;+~0OxFm%~a@<_L{e|&T5`@FS#YQlyi&4^}E{Jcm-D#r}X{u<&Wb96f9Bal(op) z1!naPi04DDACX*fyZ{+c$j5ors=Qtn@n4OCi(LOha>eli3YMsIoOioqc>jP=omu<= zk?V-8tm1e9GN6!8x_o)8aa1K&+3!-7TyeaBf+gzo_T^<=RMS8)tH|Zr@q$-E3EW&Z z9xnhM^@^S!koJ0wyy?~T-W+OIp?tcXs4T$3JT#Xy5+wM>TKgRv90HXm>$F&RYkNaN%MgyXb z>p{3b?tcXs4Tw6fcf$Q~|0}>~KoneS`(L{oxWCm)JE{Nmu2x|+aDONDzuw&dmsT(B zr2f}?T7}iX{hieR8s&(c(fzO21m|n}yBYXKx4Kjwj5}Z(_yd%eiuyn`@hb1zdD&>~ zYg|p!cbGk2+voZ=$u+pTyJ=)~-PlRQAMgyX*KMTW;#p4AHz=TV6TXE@atLP|3o4sFUIw; zGATYZNI>+fjC!kL5{a|&UR)pBpt|^SNnnq+|CS%oMXfKwb)3|odRWoP^6)Oy`9!TB z_cy#vW*+4_&K|M1VTrHciu%Ec^FyxVGOsAtarUqke`Or;b4INmx#nc%QLf_@`$X~J zBSzY*dT)JBc48|(D=?oT{-JwV-px9E&p6{eEUypL>=T9c0Xw&p%sWNX+#j*EsJITn z2yZf8#^+z;AL;^3PtK*2lhnCHuitMM1i8w3mg0)duh0wVb2SgFj;pL^DXuJZn4nN{ zH4dzftE^`!uB6koe6FW~v>Bp~tE^`!u16`K)Z=O%RvC{d=wD?$OL3i}<~kJRgfPm7 z0o^)#mGLqZ*Qep~&_!Xd!#Hs%^c=QFp^odVeo+)x(vDZbb!d$|AA`t~}!J%6x7x$5lIpB0}_T;E5{b@-65SF^Z^pKJ8W;CdL0 z?;`pK%0;V`A^KfSRjadCCLUIG4TuW}Kc`3TVe|I0t4_&?Fq#{rbX@m~vx+P6#Nza7 zft|`#N>+MqY(6!>CaM*?PDN-m&IzJ%dyC|;WJmrU1 zH7bsQWOZCcd>6%)__dYb6<4cjXIb9PyQOubOg2#)PZQ&ii27^MN|u~*hSF?})9u@< zzcZAwO^icwg-RrP@_}B`ZgZkiZ>?6x72}XxPtG;URnA-U2V ziQo=#SkED@z9zb-=7tZUsZf@;Ufnvb7}tULwUw}|c4oDCtcf7kO>Ol)Khm&Ggah~!sws3HPJvuQo zIMCm3h6nIz>9|e+Na}WhH@s~UP{~fm^*C^)ZWl}zDtzC_k^Z5PVWa5kxSjy6)a`<4 zmk-6dIg90oN6s2V)~~<%UQ{tW30(a%kPwS?5fFdp2NV80_&eksHH%Y7(GHLFoAtty z40T)|3j88p7x)(Tm(<*;p+STG{uLj=b+pD_A66$LIC6U(G^&CnnTbF0+IGPd@T87U zxcS~1G3vdg<2nsospAu>de)&1sAtUpSJih2Nui30>&UQK-au!s^FWSzoLj7iG4QpO z(A8hlz*TUMKaCU6)w32r4Fj1%oH20`CkLhT0~mWGI1?s(vYq4yaCvp?2b!}boga7< zR56e##7^=9X8<5|eE_mDO4QW{9)~B4{Q$sdK=k?tuJC6Ns{X7e;Qlzy6ToOd)Y5Owv}*Tel+f=nTf<+IjG&b*eaj_cC^Fp72o>(1K6 zlFg^V+S$7dL9F9y0oP!pA~+F}IG-Liav(;>brG0d2Qq~?Hx(*=k z1erqIShq2sGOD{!$Mrb?*bOp;I5t0RRz*NU()DM36#x|6<4@xRy#B13b#ZU-)p!v| zxVX1*t@YnAF?MY7Q2m#;&6PT?GSZadO1d;oaK(6CZ3AwLf(ov+>yE!BaL@U`x3Iq) zo4{yYVQb$$eLAjR8z|1vz_+l!Oc}~mS06YJ@Tfzxj^&CgmVq?_9oMe|u6Kh>Auw_^mx`BW=OXtQ6dwyX@FyHd)B@whv<+*S7*Qf5rwRge zLvm>1CfB|;pNSDfqT~9FaLFLZ6yoGqa`;gDypHNdpyT>Ya5wH{0Lh_=>55fY;v4WW z5jZ1x#u&mnuI~V9)P2qy<69{=mtEq!$QnXc$Mv1SmAcP)gX{G0$jQ`zF`)`|T)!E( zQtz6r<_}Cyj~QaAK0F=QcLCRXL8cH@J9aK*)&wmb*KYxU)T1P6x3JC%JX)zy)~cVM z^{v45K9DKIao*|TvYGMu0kgpB?Dg9K;Qb&|h`gRvs@(1Mw@|3xHk~@I-wvh0J$N8F zG;zUQ=Q~NW>4^dJt{4NELfqim0rl5+1HfY-Q;5gU44YNKl8|)v`n>=!1u})0Ubycb zHqtjR%=mIngPL4AuI~YW;~-Or>4kgQh+#|xCmq-C1Ar4CQ;5?kuiw=;U!ddqUI2)D zoI!GEqU37WTT5@R?*nQlK&B9VuKgnhxmFL8&R)MC0GFnrrVx35)_o>c2y|TE4*(wqnL-?QmYs@~W2eW= znL8jj>A3z70GtAuLL93)WtJ&9Wy2h-j_U^iAntJn$)Smpg(bd+v|C_9gI)j~-V^K1 zD{gnpI<7wq)Mh}Y5GQhCzIKHT9AYvwkr|zaI<7wg0B1p_5U0|UY>H3F&ai=D&tT2K zs`alw3IOLorVyv6C(U|cNk}?-{V@Re2*?!TNvpJG@#%zlE3?8KZPF?5nEN*Wuh8DT zTRN^E1c37(Q;2D2!7f>R^@~%^xBI&a`RKU*I9!khnL-?^xTj0qaag=BHr8D$YG;=fZ(L_13w7>&wxxJs&z)wLxc0iIDw0B{V4$W7|0ajw8i}^ z_pV}2;mkn4F>5(>_WIKR5ciOTm$aHCJ)+cGfY&WOZDB5dc~sQ;0KGC2i*&KD>3-q-KG(z4cK5xCkx^!GW1^{i4Da2EYyup=clXHXpgT@3O;GlF|e;EKS zflMJzkDY1v&~92RI%ADmh;o829 zpyT@M0Prlx6k>WHH8jMITX`q9&fF!Iww<#sn-ERgwq~p2`WpZ+2Qr12Ua?9=u}ZWh^iDYg=3Ag=BPGe-kb%fJ`CIJ$x#8s^C=C*;FNKP;3Vs z*WUtwxJNG}hbG!*`0J{CKcD^DH#FGiPc1gVbah;R8>kgQrVuAHVmjftZ5P=@)y}L| z9Nrh(=CQQ}Cmq*M0KjKKrVz(+6#;g}ad`yoNfRv9r=;WhNdQ;^nL^xX$IhEIZCl6n zQvk3GGKIJiPxH))u?2&6;?r^cGytrCOd)QpGvd7i)xI<0ed&nwsqn)?1j?21d9-6<44IXOuwcR?d{}TYd z9b^jeSjn}rVrIt1Bu(D^VnF|kj_aQQz;6JVLY%TH6+U9fn+NWY34T>E(sBJ?>LfpY zBghmYj1#idz`bnA8$oRUrh$&@{{sNO31kY9&mUNrP7e+Cr-nuSl}F1k1Feqhp8~*l zfJ`B7a^;f<4d?p50pL49rVux|9zI+($6U4jE`J69-v=^kC-w8-lwGF`WFBYV?aW3Xrk)Rn(u)Atj_{9i~$MB zp@}nR=ENS-(_(><88rbPjm}>G5~yJeNJtJ%eB{*FRBCp5TDVe^f%#(;$6 z(8O^om$P{Fb?nR|My)Z>as7XR+K+)uA?o|J+dpQhj_dycfEWW3l0y@xz3!HIJLB@e z#mlQDYf(-mXw&wq0;A*lf7MBT{Be*eL>XLvkgf3rvV3K?RpOIhDqLP|?+F?@uKynZ z#2Ao}9GbY%jy3DGrL7PAJy63KkdPdjI6bjo*2dhDjLu&F0jOaNNJtJ%oKB?|*hFrz zwA%h{EQF%t`j2n{#(;$6&_vz548F-(+YfW;xc(DR`$>=~#Ep6I9k8DJa{v%yKtgh8 z;^zFUi7F4Em9?{MfrlkhOJbbDG84V z-y}lE^@~6aW9mV2XySsC6YFCaCZ{Hh@&r1r{|?kJrXD1RCIVN!irX9)tK<3~Kn-K+ zL2_u~86H%(P-WioI36_TIa_TU*XEJ5bX@-vs9{V!NDfV$IXyW(ImS|_#>b55dlhhW zT)za=Fs2?PhbDp_NS-ib$+5>q$MwH}8pbAqkFHw6Bt7W zl0y>}*Lz1E?l);86CKwt12v4H1IeL@oBdgbhe!JRCrs&j(Q*9>P{SBHkQ|zL%wBi- zysTqmW^Bv7!9~aQ#f`Ix#3w+e5I4A*w8)5q(sA_?CB#oszyzIVrf1Wvnwp(AD7K4u zJRR3vB2j)mr39kmX1ok<-$=$|W^|YCYX5eZj_YpVim?bN&^|mpI55B-=G&UJKTG7J zo z%YZA!A_$8m>XBSe^L@CC0;{vv%YiG#B0wHt$#Yi0Ub9(hyj>R-UIc`W>lMHiV-Z|L zMN7#kcbQMSa5&m@-YQktw4HZL>+Ns4I<8j&SByo_62Obx?4nQ{Xj)31vG_hwUSyZqBH!1{d5%vcYV)B2kB81)uLiC-m!Ktp7rFUV z>X^qdY0j4C7v*{laK$mii=b&K**-RBNTkOg2A#cL3tVyRAb4ju-^9M>rw!|K5oB~+ zUjkeoy*?a%7t=C!dY*N!7Tl#JC*xQ-1A1KiC)IJi4!Ax>%yl|F$2Z+E53P>t^}zM^ z8!l#P;iQjctzyMqv-p-UPI1L5tQ&$@$MvPawZAJIeizd+?UsrwE}LF3gr|B=9oHL> z>yWyV=6HPGL@%I!Z@mn-9y~EvFzsTifzWLOJ}b)0@t@4R|IH|8|w>r zg#BTIe1VSZ%Yp0I0u4{4HMPE6;Nf47&!093Dt|Z~*H-}7A9`F7pgE3DoiPij#H8bT z6L6g)-oQZG>-a#wSq7`)dNXici-_w`2XMUwxZd=}7rhUS7f2*F_mQqvs|I-loxR=) zTuX1J<=RR0tXBfpu6NOLmHu_kJ!hBZQsx+}&R%Z=t_O*^j^%i-fH^of+@+4|tAOhm zF;{7?d>)Zm{e?QNuLiE?qv3jbyTeaGm%NE!S$9N6pHw^N=oPjmGG>9ssT%{6$)>!d_vq zVE}GB&w9~uy&brI?qjrERefM)pr3DSW{%P7xZVL=KlJC3apjQ;&F0z#T(A8+E!PFN zyy7fce7@V9IZ%1)KxeN9f$N9ALd#XHH{=ZigIckAu6F|0UnJ&wng`D;mu)urh!?Ol z@ZQ>J6t*g;ION|iN%`dJduJUeCT)oq`vjz8D!3&nb`m0^lyBjI~j=feO98Fy9mG4Gb z%AN?hI)ybW=kSd->{8ir3poow7 zx^95>%2yoQCfn<^z!mETkQ|ygo9-KAC+Ci*d)Ul^`2UfaGlM;BEW6grPVrY-XcdrS4h3V2vI2n{AE+T_~9rjCsz^H#BFLVtnIUS9^!jdcS^4o$rG%$YN0 z5%tmNxT^kbaRt^5LW2p4u>NYgy}lft8|wy;9GZAxd&>;#)!FMSfEv~fAUQN~cJ5R< zG-W$Tk&f$4P(G|1KyqlJ*WMcEa|jIUh}Chu8K`010Fpx!Q)2(UXIa*<>7qwNn?$Muy! z4Sg*nhbDSlSDb9tF0jet=DfmmTyFzv=xZT4G;xe?%loKP$hzmsUU$F}-#02W<=d!8 z$MscE9`v=49Gdv3lgqj1_(ta|Y;MJ^xCNGRO|V)W*H;5I^a+q0nkZesIj3;nVZJ|1 zg%53orh7XT>A1cI3WPoZl0y?UTv=|>3QhlZDbjIeP#E+HkQ|zL0aw0~%T%uWff@su zLiGJ>*?E$Zg6c2@Owjqz@igO|EwgEAhXZ*= zA?p0VJ&^G*$P{8H*(=8X7@>d(Iu}-Kw+!D+5q0*8tGVtYe$crbpZ0#AH%Ze&%*sWp zP-y>lt&S^BLA{@ts}GZ}I%J2~q26*m(QmfZ-#Z^DAB`$#C%CTNJ^@TWZO7%Lf z{gB}UAXA8QVx6d1t}$&bI~i88GcGsYb&9Ma)v4o(ZP!ua(wy{%VrT5iIjdyEh@lTm z#}%uRM~S(f_SPE?jtq;5+EeR=YMZxT6)qiDY`c!B3yF?%^Y$E(>TOl4hH={+q_8j-TmUI5|1P#0<^ydbwif*%EgNZ9e#|dM(gzB_lpm~N~M z20E_TCqNw!gohhA)LY#sjxmCc>k)Xm8IUPNpDPbO1#C7A`8LX=#G zN*%!UC;+7H6d9jp-J&ai$u5IvDX|&er=80g zfmX*A`>^JTxu)j&rbSE3+Z&?jmiSbn_44VywhybPbPPb)}vd2Y4N;otaJ0Gc>*0*?8ACpi`=%leXitKc{brW0h3&Tj_V}A zut25|(?#3Prup7x6w0?zr;aQ34Q7bTc4FofJ9%n;+^fS{eDyJ}%kmm5JKZ-lg5zw& z#Ry%!j_bpaOBQ4b(QjfgIp2j1_VV4N1zKUoVvD|ZodTodihZus&sD>9h;ya*`6Ab; zUCVPF1bQnrcUCDeXdT-wJ8ER zd&NH2VpCe{ziFKJX{YVXDvww`y_%~yNip%I{@Zu#l{&82=lU#h$vbJC5%#&3W3EjR z(Ag{Yxl;d4c9OkfpX+K&87OFo6kaG-9jpP5Zh`5PGITr10$9d1s4gHp7gsN?z=JjQvDDa7eX zv9H-`flq*E1HFf+yL%}fL90{8^>MiJ>p-RueXeDvkg)~VMT$JOL#K}G6Ht&hf=nS! zZLTvC-L7tquQj5sGgCZAtxg?R9MgJJ?F}J+_qi6V3LonZS@pK6({X(gO7v!sDMXA{ zoVuT7#asf4e4^H=RWW8LcI9Jvr&QvjhSbBB6p!TT)N#d1?`*D zz{4WiTaJx6^T}hgvkL~ay>wi$68VkPTuz4(E|QKb&c*mP;s+VayY`}GN^kZiEFITp zHcuzM9b^hoa$U5tY%%BZNG}y@(S#k1bX+mM(sxk61fA293*4K|&ZU^&SGd{KYVTfH z9oHN@_jiFzA!_|=o42(DCmq*30Q_!{Da3KBV&$CWl?t1molc6nKzg-km)d@smX2!y z0Dce16yo%H&aSeF$@CaYr_#7$gd(@-bn3Xeko|uHnL^b10lrrh-&2|*yU29vxZ>Q* zcN3T7Law|`(DqdI{uSqDzL%KmvGn*P#^)f;E;98xd&MLikO*E85k5(iw{j7Q`;PRuQQ5V z>2>Pt^$n2i2SKI~eLrBx;!Oag9w1$@cs%XZd>$(z6q!Y+Q)jQ|A^)EQnL_NO^@d*u0Dl@}3bB*8 z;@YC0p@0cGJBcfarx=G}{67)i&7{hf?!AR;i#`GjD8vBQ z@;M8~EGhDfN~ex1t}Xf~aY4NOp&oUfvv{C=e{7aG!-&-DxZ>KPj}ezcu83tLhIMW0 zxV{Zo{xZlEqT*Uq`^XwHV4&mrb^!Q1$P{8~!H|tjYvAa(;##<0skuJvuioaHePuht zy7@wwnDagZrQjlCWj zHNaqXTyc%zZ&JVno#}PHCwG-~r`Agar~2Ss8vzLTjs{|746fCM+jhLD#1+>Vej?`D6ak&R;u^zGHl?-x zo5uY={d;@+58cD3V~BvzSwCC`OPx&DuV<%SspE=k3_nF&;7f3A>m@NduHOkPKMgX4 zDEeL4w4Kkc=1u9+_Au$V;@ZvMp@0cG1NJIHkPM$OV3m=6oe{3x{9Rx`AqKdbv2@GB zq_bCCyZIRkn4oihVr;5!Xpl#G^Y$=Ube1;<4&bu36Lnm1?dIu(6L%G(D_ ztUES09ucnH{KIYGI?U2}D~Id#iHi}sdY!#~FXZw^AXA7J+UrEMVi&S)+c6*^>A1cJ z0RAz^6yk+ky-IVJJWM)!#Wmc2N&ypes(sH>Zh=<_N;VJr zD3aic_7rto-v^KKXCPCEa(v6UW|xjDuHpW33YegC+|K3LoO{kLO=OpCZy^k?Z>{p} z44jH%v`;xR1E^IYn;K>C|z>weg=NE=qb~ z+R2n$J7;GqCAZ*Y$}GLW#!k2ULJl2QTpRzF#9T!S%gSWza(QDrUa_k*8yHM3Iv5Cn zxEx`t*Kx(Q@qZn5hBf*G*ZIC#4=U$raUVPG)`j&X^J_j;|IB|TEmDkG^ zJ8#A~fnucN`s3;(KYku$3ek_VKR1?~pG>E4qeF_!BGjql`XR{wpFyS&H|tqqyEt=d zusW_k0RX=MGKDDG1w*|<-dq>AkhMyNtd-Ys#aIsiLID$Wc2fQI!|>ey3NnSb=?D0Z zk-QPRv5t!(vj}zS>=k1<{2OsucpWR}F0a}w&o_#4lK#GNh4#m*!IvFgq2(i88F7vxS9+Z~d;J;6_DdjBh{xQ_ zN|{x8@By290*hC)C~}Ejr;h8-LNWdeWD4>0^f{}%ev_`q~rG4{xpiMjgi*!i(ZjI9eUwv3xt5|<@R^*XK?d*mx&W~R|KH8#WF zQAIHhBSOQ^rTYfiuZruPvAwp; z^>VP+JyKhDY_BbIy#nl2alI?H*Os|n3HGXR-W}U(%UrJldsSTTQ9{eww^m?k{q<_F z*L@O0Pi(JS8^jh@Tm$y1xF%zJ-GbWIr>_Njy-Z%-8{6yF;I_EpC19_LYhP@yTTt8j z^mSmbm&?ohV|(2i+!j|{5B93K4#f7l1+}eDi+)1Y|9XYId?-SDZQF$zTcF(o_NurZ zitTj^YFnS)3;y*=dHLZ8?RD!Cw&xZ5z+M&C;n-eV{xL5Dd%a3(yEnGimbqRI_Nus! z#P-@USD|3^CBbp-*89$;HuK%V`BuwSmEe3!CK@I;2K+NV?5Q> zXs=hx#0P<^x{m6250&C=){FM4xE=+rvAs6`1C3r6d~b~d*Nycl$%;WU(wb*g@135# z-Wc?+C$wDog#XfdvSOFpI66qZR9e3dxn3{Tos7A*3>LXEsckam8Y_ipFRrP1RE<&z{b|RDz$|UNqY8|J-`J@s;(7%<6``P69 zXn(bb2@f%D!}eZT>(&1tRw zu71-RTJq5aSJmE9T%X}wpO@#4$|Kdm)P6!8*R#O&JQYx>*VKMO9oHOieV&-Bsr`iL zUqxM3eDV?cSK~Uee1v>P#)a|T+z7e$7*k`FKs8*|d+S-w^}*m}WZz8XDuC6-(|nZ* zM8MA#Dof?0UvD?{6+>b(V&2;Way(XL@EYK%+P3Oke5{XvKkv=&A2=;<+0VK1_|INQ z-T#|NysJJ<@l{Ab%pa;0PySy%FK?_p#52t=GxH7`SP z>jJJShK4#9AL}EqH*x)jy{i7KgTS>uEzMuml^pCHG{#DU97gvA`?Ed_Mw-c%+CFOvFf+`yFPj zinXOet60oA8LQ&Bg}!RiDZ4^h(#i9UlefJ0QWtPdeNx+{F1zSC!F9BT>(4~U_0;(B zhFRjnP;y<(E@4&;$=>+ZF5h1FNqhZy;7Z+(*S#jTFLDcPptt|7hDyG(FV=DW2ymrt zWC7R1rgQxT;7Z+(x50JLJbP91wUrM;~3kI4E! z_jxZV@ym)U^S@L6e`iyy7aprpEjG2X;+Nv4z?B$%R># zo|{Nb9-mB&ElkeNv|j3N(eWZ8ahPDFH8@7E4z^>jh4bZeOUbNVv7DTtjd*z0Fh$Q^ zr5{jwuTug)9tSxV>nGr~3uJvjjSYzP8(;R9ZM~?{>etxVmD5&+ckI|%$708GR(XZh z)hn=>N3b1RUU4&L&sl4Ba!DxLyex8QkJnG=R|M348#hE)iXK&QWnI|_vn9_;XRj~g zxqe03t6FKT3?91=R}@*;j9_gvm$^*Doe@&mz9#HMi7eUqtvKmZuMGDz|}fXZ^# zEhm@ULcD1KK&e9%>x`;3>x{m$j{Cy8wzY)d0d` zoxI|DRC4M%_S)Q5M)bzHYy9iK^Q?q_6?5PPQktC2*1DVbxg3%80ae@jQs9xPR~Q5` zGv>>l#H}0ktQYv)Oz~hZMEG<)O#DSKcWJ3?R}AUP68MC@K2T$?UkPxH?KOa-&M$j7 zSJf`~ytG%(XzRQ`zD!SGZ{ljs^;XZdD*w7mwh8oi#HsZV*ys6Izg_SpX|GpA$kl5X z7+8-JTu0^XY_Y~r{1!Jw%Jo#i$+%h5DswunHv?A?>oNa^ujyfYCXrL9xZAo)xZz@N zd4rDYEdW!kMcz_TlNWHV4qwq-c9+8HL2a@iA>Ssr9+7@P%^!Fra1A-T3)J!PSgWwS z%ER6nRC(o3iCoqA)~h4sTH&JwqEm}Uf#t)p7l3cmgnhjJs@_}b5e`JiRpn{g@iO3g znS8iAVy-R!%$Fyw`H0`LX z5A?=dTmG3ZPu#@cTQA%2uVSWFUxZvu^#kIE8QmKkk9C0SIX*(t@{iYn3U-P4E^-`3 zwPT+Fu3|i-l^l71FrUJiL?XHTzeJk zxBOmKb;laS4lmelFJ6W}VyL(lBIMe`ctp`Pu`_pehm&foc)|~;ac(sp>qg2o zXBU<$E2eQ3ze4SLn4|F16s@yKyHF{uLs~3uO+c)NIl|`PG4cGCy?hNN5%cMzJfCRZdAk(9)Pj;=c#r2ALvuni|tm@ZRxKAn}g5#ZC$=<`m z=Isr!JMmJ^^)9c9rTptd5%5%5+|QI`-m!MS<6nVCTrO6U`NdLFj7CFpEN($S)Cc%D zjCa+q%6jXs!9D*3axB(Q0QWooxa9ilaJx)`lvu2XfLLd=zuzB^{T&JMH|n`Dq-$9B zIfu8lR@N6wPL}Zvqqc~f7gDz5YIb{Z9sJtAve%D8uGIF*x(jZhT(JsStCYQ;72FEr zRobazV{D+U38R1geF^cmfNShu0Y(EN`qw{}Tz?zxr?ywf$|zCvypA&8zy7&|_z9z) zaC;s`?0dfddY|jZB-c+ySQJy=TV8#j#$G=ab8VRb)(4b-{WNH$_OG2#ANVT?@ppl1 zTps`!4TxAD_&dq@_sdzRxu{@9i%l$jSD0(@@wNG;FlFaCn^y{Q zIUYa9&Q#oz31J>auMMt`y-7VZKW5yVTS^v7E|2MNLwYP;nt-s&(Y^lsfji`-H^VJf zrd))tu~;Vo(NFk*j7xT_yhk0y*K6z46JHi2;Efwfd+nB|Zih?8=H{m0Yv^K1_?h&2 zArrdh?NzAbdJu{UXyj}If zHms8^|C}ly|+ZmGOAsSOr1Xd($dBuG03YtWm@Rm{^ovdbSYQ1t=aIGWXP2>WXf^Y?}59W-G?Ym<&xx1qRl z7wdiIHcuxQ$P{8%?|@lAB_vUQRb2hq8HvOr0FZ%9A)3ln_yN_QrRo4tc82me(7i(j zS}gk4mq~-f4%gUToBJz8t~W{*qyq#s#q2ZFTod@-Qu8s+z_T-uDa20juh&R$k5d4= zh|Xje-|(De?KLN}Q@ge17sWul&CSX0Zxg6)Dq3CaRs3}gz?)b|#09g^S{0U!gJ zLNuD|Zol6}`PVD}WW-=it-oFd{R8((o><`_#+oqKUN`5vD0^K3d!-ihd~0qK$GWlp zs`>|4s9}Qs#dR|)1lW$9m(T0Kb2E@BM05SXX8)_|AAAM?##{kL1EN13t7Z=PH%962 zc)P&J9Sp?$f&F|>dGS%}VB&_WZ(ptaFUDi5ay`s#Qc>-?6tvL+TwELs@4~k zA}o2*Osu?Ld(&Q(AE?A!TPEQ56Z)3=YN>6_JBnS<{e93|&ZGks?Bnk(jBC04Kdf23Hb8~{h2O3Qrp+GthIgxJ*>alRb^{- zA>@W-zT_}x(w?6>u5SmfYVIZ^g(~*2>6Gg4303hnEA#!U-|sRa%kqv0%M|plR;5yM z7FR1cVi93sLd**7Rjo7p7SK=cUn?c6P%c^}vlbugxPBXOrT4FSZlvvRpMcC0bzHv# zE~59Z1$)`5IBSNX)p7kU;2P}lh7%!)J!~;&WzHTvx8fLOwK}ff1I*MMZb%AM?BQGQ z6_Q1(Xh+#Q8R{cwmFc*?8?Iy^Q;0s-ie0U&mP~3J=(xTI03HRILiD*hWw%mti%ye^ zrzr~7qD~#x_kzyzAXA7vJRV_gDVbZ%I|X;ujJ^TENpL+P`v;Cna6cfA;vnX2P<~{) zfY)BLcF8F$GpA57p(ZQ1j@EE}KY*lf7nJOrSI=Tz2puPH^CnmO`vV=<9|ErQ?Sit! zUs;^2S@XhmTt5I@>HUDUSax%~OTavPRr4}VNS;3eT>n7GyArs?5u9yZ>|t|8_GjU` zjd6+TgMjOgz6f6k#51E}ynsOQHmgLgCuLba6ettzo9nR-;5sFFei*nWJx2fuA&ZY2 z%GIyG`tvdtB(t9incbz-dG*&^uF9sz4`1rKc01?CBl3H#&db7oq}?832bNd#ua54$ z(JR@TW%)kJk1t5K%A-?8IbBPZp#2YG9(+}{Ru$J@j_|QWzYDLq7S~J8@=AqOtmOzZ zC(KIJ`)lp><2+5-Yt}Bef1{F+-^En#<+jS>J_d#behV&+xdMy^#C<$+ZdLA5AbhR( z{I-8c$nF^RjpTTst9*b&@ir^f+3P2vO!?eu><55Hz2d&ab=+QW_56Tx2A`_;=J>jc z61dFs12=f*l^^)@MXwJ3#GPH`JHywyGc?xjA3F%esw`VcCvPnqHoOl{NF(mzFQ*4& zJWbVyJp@@%zf=~i(z3<8Uyfz1iUnEMC3<)ERg?Vpuj~4)E_#rE7Um{XTwh;>4`lM- z<%@l5S*vfY+)(>Sa8+^371#TD=Kn4WK--&@NF>>`73F%dt+TM4gS!UXSoXC_g|wzQz53TX3U(YWni~S3t`gCRQiYlu}^U?WNv44T;gHcDSLh<_R6#5;i ze4^GXxE_)AdX3C{I>JJ9WtoAqGQ<=i(T?@~fZ{q6A=lx$ zQuP7n7D-o8&)cJ&><~n+VKM!7UeTJv~?7lIt zUAr)UYU1={dUAFqdFJ@!)I@KD%-cDu-Mo+RNW$Ma_CI7?(p)<~&<-j49?q2azj|O_ zkX#E;w$D)y970|uiF^4xO|`F?dafwjKS^e-R#te(#{*r--b4MyOx{MWY6P#O07r04 z^2IRuJdfnyfgLdh>|X9))q3u{{G0bDB#J1|aUAGoO=}Zp$Bsu!=wVT!0*nNg} zzw$WHw{CD%^?@h{NRx(wMXvupd*=Zd$5rS5wH?Q)CJ8O{Nx+GctZYf{xhQy5Yzs@a z(8?_V%xHHcZM=;w@;VqWp@rVL&^sLU=)Hu_(cw7YD0gtZa$K)}@_%n;p7fpd&++bP zezV#)vk>o_)y(g`_u23M<~OgZcp%L6wRPo+{uYQ320Z>%-M3CF=pnqzb@p`}LO}V~J3`>8ve1<)J{O#H{p&MTr9*h{HEt`-==QKB zxZ!>4EiTt*+dSj@)^cP;-M5~z9D{9M8>Rc!oo%vN&gr`PSL(j?+~t63^IBcG;(hD) zT>tv~HrXuabTQt=ZXaBZjg@$z25_I7F@+H3cj0Tgney@9OoX?z?<5AkC57AO|gJ_;UQK(;xdo_rCS=5bN1%9Jfx| zD?rN)&US3v5oY5rV?7KxPIU@Q13YDj{xNdUgyu0ud8~EIkQkOb#nur{sQF( zaDNzIu-dptS3e*T44&^@1K>TtrD)a4GX?k{PPRlqy41l3Ix`E@x(@Gkuat8(Ztd&c z`S>UIC%5)J#ej56wp%%Azx}-}V_~vZGU>oMs}olw1}|1KHk<;y56Z#863i#Wenz?5 zEo0EwP&G7pB(STuhT!^ss5m!Q!4q=RD>-<9*S}us##^$MwcPCNvD|D}&0E@lU1hIZ zu4cwM)mjf+xhpF6kk*Xrql!twner;A-nt)?25|v$@6M+8?~g z>jy56xh|W$tyj_Zg0K4m*WcnF;&jUd_ZOfRC zlat1YT(&l^Q|M|_kOE;Ni`_@B&Ykc2Ylwey4iLlwfJ`A|7hICtoBYyH~A|7~nh%A%FOj)ajELTs| zbL=C4YwQR7{qQ8hW$SjDOp{@KJ!W!rkI_@g>$aT<#kB{xifJ;eFUgfPgAN&|xLyZbRqVx8 zysR~wH*5NZS`^pof$N1_KwZ0!85-M@G{&Y6_D&nq8+UAF&Mq|b6xSPot9N8U@Wt|S z-J*4zl?1N8eOmA=(c*sV$h6!l${3KV?c-m%J5A}e7r3rH&AV>Kq?tKBl&e*Zo(VIP zE7nTYd5KvqmDsg#DXtrV>vharr|0X%tW~LI%%WC1oKaji0oSK7bDc7)HLEgdX0y5C zoY6BpZHP5XCnmMjYaehu&COM~)}HZP(J~H~D#yDX=c3=D^x6+xpB@I+y`o39cgm`Y zJ$j3^-f7Wv*!6%Zt^>gJjxe|m<%(wIq@j~+DXyD=>xY=RjyTU-M$hEFTgJNIt=_92 z*aBQX%*=IPDQg}#MuyXiCDJ27>2)h`wVuNpzslz=JxF?ML2=y%T<_xMD%!IK`uh63 zrRx48itBdZ`f6sb`*X)jMPvWyZV?MO{j!!8bH!x;RU_f_VyQO49l*8wmD8CToJWi! z+8H9(o_g_kv2>y+SIud3ebl=29a7^7Zv?LKIHDz1?WE*9PBkt=UH3b{^?XRHzX$oA zG$!XuwNk+nGdVM3#hN9?zSPWG*AIS?<1QMBO*Sg!UvFY&8RYk}Qf)covz%T5#dR=5 zu7~GyHEXPTi&ZJDR7AeYMRC0uxI)sG{c~M3lot)#5#jo1fXO{RYiiHXxzKmz-zmNB z08=XkN8Cak+>G*4i5w zsCZyMaOI|wG>T@y8q{u8P09}(0Isng@TV-w4?GsQhPk$;zZ$H}t0+G(1zfpHE!HWu zs+mfzY@+!7*7;Ri}tE3c0OaAidKfm?xV><9e) z-Xy~2_JPL(S6su~Uk=f{ifY$>0&tD>>Q5Kcc)}+F*DE0HFNb@-DkHTDDkltuZ0B5)0J?+t%7SeaK*exL+gxl5fi zPDaKLl!0sP2mC3E@&gs%ifh68%ORRqIex%9Keh^7xv38blz%}** z{**=efd$}-Yrpx+A(~fF{oE&jD>s#-Q7z5ZPKb$|dUbVEexLzdV?W?eS(G2R9k}9J zh5mAg=2es*crtM1rXt3_isj&IIo-y>Q-0tSaE<+dKV?yV;HkhhUPH$pSIQ4O4Y>NV z+WJ*upVLycCigb0i}j%Oi3un_a2mMAexP-Y;F**kxC6N2+C+F=oW6GglwO|!Tw}f7 zJHNC2mD208fGe)~bT%9D=Vub2^!jYz8te5;X03ce>Ge+FdbtE2zuG21>Giq5HP&m} zNbL(Ky*?kf-Z$2(FR+weUjSTVz52qMp!E78;CjDUufD)idVMi)jrHmaE2-C)0@u6l z;N2I(U#VCARaCpn%YZ9)4dj0E<&*X}czqgO1T@MIyd1d3e!!oyB*Nx#ny&<|Ip+N~ z{FQp;Uq$KlRlqgYtH1A%ns0a)aNTex?|mz2?3qmWj+iymU-?(+Rg_*|4P0Zr`v2wz zFX;7L{2t(1F3$Dl=Ce93DeS3p&*9hoXX&CjtFxLM6vg=4wmtX`YssfshcOFiC{Sm(*123#TO zIVY%tJ);xLGLjy4S=a)+Mx5*-JV1^c)qiH*=25J zPXgEU^z^i7nqhm{_Svj=&almOt(WWVz;$|TVh?BOxb1V6{oZWbTvvO!o&v6k)Ax3D z{I|0akk3?9#8?(%E`#x^F!lxE^7?Z|Uj>?Ecs$u6KmUReo>Am<;aa zgidqC2ryTe+td*M_$`p+dQ}tGXNAah1tPUkE(583y{*@#`_`SnmHT!sh{3?qciN%k7LOR9x4)5T73^SFM_}7iEZgm9c?*y)aa+MmcX5 zt*T~tk*gX%@ZxZ}YB<`(>j#`wv=WJzgv+&@YgqYe?sm)hwdnD$T$fBe$ErTUmjPF) zXU!_yDr>U0{oLehuz=w9O7 zx12lHc`nz3A;R2{)$+Dw?_;9IXpdNj+o3loQdE8N1O`=jdo~Dz!j1#-?7J|Zt|#?CBLwYQhGfGFrASwe5LVn^{AIG(-16ET%QPBRT~#q zQ9QqV&Gl*mSMSK!;OTm~>Z4alYViKvdB=CakH1ju&E_grrk1UkCwi;(%B+|N5IkP( zEUprBj@ABKY8=rsfGc-}H`EO+8?=z?B`(BghRT)uo9m4IRf#J_d)CEv=11HjJUc|L zVxD|m&O8>&5{dboongR{tJLeD%XQMt;7-9+-MZ8}N8UQyboMiH1geIhJ}*?g$~DWy zo<>zGYt*Z`;+(Nzw|3Lk8`v5UErEHl}P-OyAhVBY8|zDo*fT3T(fRT z?gFllU@l!!F72{)>sID$LN`z8_0_;NA;89ZZU1Yb^!gg$D%=3;D`^bvnTm*BUk6+h z|0VRw-3ZJ2&2`2&rPtR3*Kqvnwn+HbHvm`Lzs7oPTlAD(-w0fV8(@7o{xuqUeKT-P z+$WLv4J%najZ=Dk3vd-!S-~caln7wAh?ib`srdD+O@d3A*X+bblc*AD|%?jXyKUn8Q|k0RH2{6Kp` zbt}$g^aH$l70m-F{q#zWEB+jCy|VqUD!xJxp!~q+fomdhkNy7`R(k{}KX5m26;xSY z_I+!|jvcI-big>J*Do}4<%ZjVdUIz<>Gg}imD>r}?JgSXmAY?z8MqqUU#zC~DL?QP z;2Phz{C)A1ANVS8bzLi)hjrSsgd@=G&PD0GFRb=tF{ zq1SJCxW*3#etsX6UcZT4g;LqXDhlkhXGKG=-)iE@OV*DXR{k}VUcZf81yo+W4(%CA zMMJOO^>Af&1S?;9zDh{x^?SgTQ>(JT&UnIT==J-}T)E-;QpC!>h|=p1fGhVsOXyW} z7(_#_KlE^o<5xew3`(zmgj|_@fHR&j8hZWF8C;p+`VqtmzlPH5kC7|0gO%;tLyc(Y z^{2qqc_?6gG+5!v^H)4duRjB>{;alsRnpkgziq02TkBVJ$C*_7>(4!0?-8%=sLM(! zC8gJ2c)0SGR>TAS+k|9!a|z!%rPn|8aQ)4r6aN=aFlhIiq4fGo;Chd$UA~lG5v+0ar2W_|d}X-EA9g@dBw=p;Vz) zq1qO&>6X))_l5XZ;99lj%--@sr8ieF=d9j&%gkCDE!)oa70I!!jfAs4%w%SkrKSSi|jCav*J`Bb6zkn;}7l%m@~#Fix$3#z8^!g1fGhXX+V=hhTeb{z#tZW0N^$*P;L5!}jA(zY z7s`C~>y%}R>;C~)NU{_$X>6G(M}+JD1DM?V8zzk%+H<|oRpdRul|LS+KB;b2ETeWJ zm(Auawbnn&k0V5*=m!+n1c;PB9%$lfTw@e+<$~GezJcPp3b^ve1BV_PqKrbzisHH& zxbnvXhaRhmL_Oab#dQsE1y}32E~o=>-?Fzi93DS7t&@+XxSj`GAsG}(j~x+bMTYBI zfXTg7hSICE`L8~TrSy6}a8+$w9+3rjp!6CAuIqs7V(b+lOEi@<|Cn_GoLqf zdpe-FUJP6>4~?r{PX`p&OMvSY{9L{5E*jx&9zXC1;A)Q_n2W~`v@0)X{D2evtMLN{ zaBbIKyXWgYe!$_X#t&Q-D%WzhEq-qhKkn*8*4m{sOr_x8CE3)P1W5xbpWGNUo{P z-Eo(1y_A$*uLG`-Y~5%ZXFB7v^qX%;alIa3^0#XbYZ+)!TyFrb{O#JqS_WDa*CcRN z&tPr*wA(s0X^b41)@;pk1z_-sUX`@pbHMfZe5F(@ReO)u8ohJ*(PF*eIW;~w3js&3 zDiUx`x(&Fld(c@f4CrHfymmmgR+1Tt>v7+LMy}y#kBxjFA9(AvDEnFUR|V1aV-MZU!CR^fW5vpZx$V~PH`;(*FOt`t1cpi zZ;;|z2Ci><2As^0wBvze>CMx_48}WXlH&R#;QHn;xNgx8EXB0~T;CD~*HkpPR)OnV zL*c5QU@5)Ufa}{r;d)Fo5^U8hC``ni}TKF&yg@*9LHXQkY!R zV|(^%f|ufY61Y~v*Sa<#Ee9^5~?cY5#CfrESYI!&@7Na#8ZQ(T`4Tu+3_)zPaK zU@5Lo1FnrQxeC3e25fP5eHcq|Jq=t>hRM~@tKA*5qs#G9T%QhHKk#zSyQW+}3!k@y zUXP{H)5FKMG`1Yuw|9y+Z%*qJ*E@jg2Rp-ctBzcs0bD=SDXv@f)9W*V>xVnTbz4J2 zuFnFlAL$g=ZTji;*}(Oqo#DDeN4-7=xPGitTs73|oxt_uo#MJfKR@tX;QEQqaP9Bw zaz{YLug?RnpX?ad?sfze*XIM*Pj!rIcRK=#>kEMEr#r^AzptA;EXDPO!1Xg7;yTdK zkL!zo>t{R1bwD@0z8JWEFHEkUcEav%*P{HuOMvV5JIl3e+qEdJF9ohY=rq?ZZGWM- zz6`kjVQ0B^ZMzo5_2t0zhn?oyrH=;`*H-}7Kk6*ku5H(%xV{p&{;1PjHPY*=fa{Mt z&9zG(XDPk@E^z%xXSsH5yB5XuF5vpd9p~Dej)3C&YT)|Qj&to!M?i6X4RHNg$GLWA z`wPYOwZQe~9p>7t?OGJq*8$gGbe?P1wrdSO$h*GFn}92>?_w3RIkOn=&D+YjE~(c> z!dc(te(nWt2Cl8xSk5^~V?%v8*RRxT#{S5r~$cd?%)+0?b<7@ZwIb;--_2IYh5H#uY<0CRb1ZzTwAvkpNRxe zuWFtBcLLW~uSl!C^x$RQ`1Rw!b)h!fn=6=eR_|=7QZQ@nS&r`6=m!*qPXJf-8P~g< zTBP5qx`_nE^^?F={+;uc8rm}z6|SEGuH5VF%c+|?G+Yp#((9*z>l#k63fqocnKS8t zd5Y_2fGhVp`$Df8uCh=2*Uti1?sfLHTwGiHJ}A9@4!A;+<<}&3+tARv(p*0eFuC{T zoz#*l&Gl~Js-A6G#43zxxjD>P{J{!sRy!|C>GjLNRkd*iPt>s}^ctD=fv*79OSyo$c6Hsw zgwpF*fh+g^FoNr5=C7_J<|(dU1FrXBE|pwRmpO}$n5VdY9k_DudoKKIBP#8Le*j#$ z_dOR}Bh&8k4d8kO^RGzib?erx+U>wa`GIc&*ZcBwO>Ge`=4?VYPjUSga8+ZrxC$oY ztQ%6=$(3v;{5EjCKNnEfu6! zF)&ju8^YD95_JDN#kB{xO8?9G@^VdaW)-S!itBa2m3!Qq!*xp}^m;vToGKNX7W0C43V_a?Y%IWB|Zx*52#k9!-|Qm&+4w*Xh}ac@JzTFRB=x)r!`k9!*$ z-qzteH&6DIAJ_(5xyQW?4R7bESck1rT(<*P?s0Dij~+VOVFWDMQ(SidSMG6dM-Lv2 z%yYp`;L1Mk?Qp+d4KA+wDZSnZT)D@+P3_#Xb7<%2RwF%cR;;Ws+9;QbRrKFwd)(U|0X8aJ2Z1a1xHq};wq8B4jeI7zcCL>GuH56^6jwvDvBi{LcL7)Kac`rkVPmRazpfaHYYMn>k9)JZ?$Hk{#dQd{ zK7={uQ@cSiXA`=4it8|NRcn`W70l);c7x)w-zmEk*Ad|QFy?}}T(xV2rMQj)*N2C} zRqO`EoK5KFDXzPL>m!&;Wb1WXL%YUpit8TWYJ|a6>;}c0P3Yz+u6u#&Rm>%_^|~V( zdL09uGJ~9lhayKaEe8M(Qaoq=8AH`fC+Ybn?y4|=auH(RULr7e8 za|9IE3E+B7NL>5-m@^95JjHcCaJ`nfJdPibyFoE$6ta1W>jB`}!(5(4uA23BQ(Py3 zEB7jlHrLG!@jvD-Fl6%-*T(|a>zT`AbKMdRu2aDEhH$tFvdkHUY@X6<8n`Bz%j4>G zi*7Bj6xV6s>YYI!JY<`zXxEMc*Mq>-*+D9Jp30)jRl6PoO0S22>m~(&>3xx_W(@=s z*TcY-J6yN9iv9xK8eS-_M}RAL&%Vo5yPg<|>rvp!{TQ^!RkH>yxxUL)?mm2KPW&yv zmC3DYZ&t2{ah1JF;Zjv^4Uy}H%u>EOrB;jmjuqEcZp9uKb6xgVj9k@PE{~772Fg{f z>$15@1B3VXKCPC3Yh$L==xvlM@tSY#p_V>%u<5>42CnT{Yya$V-8!~h1QgdN z0atY|YoAzaSEMurOL46LS9LFIjZ*t($$fYF#X`{SU%9fcptx3ntGbtQ)k0v^kgD1* z&iiYx0ax`5#>G|YRo`{?ysn>1Vc>!9l3&53oT{6A*HS_BA1aO5Uiz{dd z!Rk1Vle%v;04Dc(M0)RY>ecH>;L5!okyz)6yXleGYKtUN6Jts$DZI#r00$%DrBO(yMM^0mb#Xz|~lc9C#9oTs6CK zQCyz~T)F4T>$+Ys#r65Xm3yANuIp=4TwefOujTpqFIpYnc4+Iti1c&65V&&B=RUOK zpl-J;TQihiUj$sa=W|c#*5Km)5-F}P2Cm%mxkm=Jq;(W5#q}k?m3uz-?g(*xDRAYU z&ppzw*~G1T@dGaduHF&yi?{K>61yYB_2s~odp@`OyrrF+rTptFfGhWWZkMZeZkFQu zO5n;ppIhlwH+MjBeHC!!9+al^8U?Pu3tYJerH$(b^j_kDyMQbAGC_y>w;j|GE#(JZ z4P3dKL|i|hoop$tuK}*yQM=1kJK0iPUkhBhcXd>H)vdXZ;`%z^%H1X+`e9RIVjOqa z5!mx#tA;49uLrI>TQ%hKJjpdG^WxqBTyONrtJTXMd-%{ntp>ij6{qz2M&SB8tpf6S z-q4<@R8+XW3Aoj)>&-rSwR#zF)#~;| zaeXUreRQjUe4giWO$k4%l{=ugz74qU^2w{!%UrJ7-M%QUZwIcaRss1u5Bz}kdVL3Q z&HCik>Sc$lO3i8*BWBHP^^&eRZ}1Xt?;!SV-&VHfj#aI>f(Cn$hxvs#egFh2GRMB{ z-`?ZA!Yq>xdCBz&8;MKps;D)c7W)dhC&$X~(8!bu^2czaarK7k)jA-x>pIKw8Pc8Z>hUin41qL1;YkQ%{proxvDkDxcdsR#@(+>tj$sy z{lJCp$J~8|OS!x8K)F;D5kXahpZ{XjsCWSTw7w9>1B$c_n-B?@40$a?`@cjPZb2@_?D{@s;9s~B5%p+_pjcazr_Ex zN?;8!j_7f4aqI^GMw`jz@vpcx>2d31&73(V`tvF$+cX>L(^tVbP4!%GwIUKi0Gl)_ zmYFXMZm6nE^>|;MxMFeqtE$l>RU#CwTk6e}bqw5HzsK<=r8(%vugd;?oJ5GK zRXOYPF8g7cxym?JbZ^;}jN$tGuI0E4#Z|Ry-ygX8v)cMq3#N{*gqMeK2r!o^ZLSCK7c4c8t$_$1GER;32^EeCCqbTr~tsah2^_$`5!) z7zGbm$aTj+pKe}&juG=EQRgTY6T-6xv;E6gG zr61U)U6e)p0Ry-?Er?uH6A8(6M?~~`6>zYA1XoaOG|vsFVt2TezD2Lvei+aFu%Ie0hW#=E8`a zl@hiou5vt~@&n2@a22Ci-8|5@8CUS+$|+pC6jwQ(P;upMACO!(M}(^!PpG(Zw+|Gy z?KmE;lETT2((84=mAic)oLYvT3)Sv&y(os;Cu{f9aF!~!c}JMbcXC$6W1Hf7190WO zZ{@b=$yIV|?vIu0?El8?=k|OF@j=T3&XempG(B(0(JzYY>6R_|JF%)~H#gbOE%%UD z{*^n<%5Bxt4^aM9&Q4QYx#KK6A`)w$$mobAa z%N2_2g=1osLgt*pHBaePKCLUR26J%~*MVb&zQ%w){f87+*{r0va@Q2NYSfxV`vJM% zhT^&_OucU5{uY@l1Li5c$}wn)>m;1Zkp#VJHS|q#ZSIGWx9ARV?Q3k%=OKZLU$+ac zDt_f|&&pVNt5Pa*{1iHBlX{Nb0ea;woD2grlIbEYimTkmMEQZs7SH5KM2V}MTdlYn zJUADvMv1H3$3$`Ej(noT^(NrDYf)J|i70WE`uXway_%Z;AY_ZL>`%HZVo|xat|dQqNl{!BstPagT#n?E_jhW(j^& zyUP&hRV3q=4+4~b9Ts+!AK-u9@=@q6xP;<50$dH|Ivi_Q8n(JfKXB%KYcx!*nzp-8 z_pRN6tGaJ-&ogrGTe!ss^DiVE^VEH759l?VQs|cpH9GABGU!qMm3w|{ zPHbo<#%HxIgf2Og@~?7Vv)I2b?+c{->jB`(?qBtr5@&xQlz*KJlWT;YV;?KHD*wto zpIg&r7qb0T?!y=RSNrGe`ya}`rhzNFf7NrEJlRe-9V%CSexgNYe1B%`6fSMY4L3HK5}vdNfzLFR$V%_00L2 z8qjgIH=3*5cSCWN_chMflvt#+&*aRZGqx%J`gl|$Ih3_8b(=k{F()>+#=fEuc254G%C)L zvs08_x!VUM*YRQQZ!diNR6H;nBG)Lz19QNYyFb>f=r`6y{yHc>Fb`biIq|D~0uMqY zAf5}(^si3>uH5af3vzKe4PO-3im0d3D|h?r!gkpjq2G(*DhKu`uH5af3){6EMnw7n z8Tlx#-0dz4+vQV;elJR|bx}>l^-|_4FUUnEHGENA7eqZ3*Y(VGUf8Bq}zzN{0 z#%*)qUDzHSu5ysC(ku78jfL%&mSAOjRr9!vlOb}|wcUm4=YBG9<-Tu;th9Vl?b@eA zO_d+uu5=+Iw>#EvTn5GUDZrJxpIdU(aR>p$^{K#>yC25p+OMZxo9|ms3z@6%1KRB+ zP2IOn16S_ng7jo+YFOl_+l%7*bWurl-{O8Q$nDtHC&z*4_M*7nAu6f3az7WC`SQGu z0}3gw&j7BMGYhFw74x_ByKRxvKdc)qP9)U(T1{s^v;g6xTZiNX1q93C@?`x|!2{r)*PPpDPNZ zxN?url3eAud);0X*XM~!Dz4n)vuv)i<43a>#r653j*2Vy_$+cotAXO16unE=hgk~i(pQ~A!TD@ZFwD6;BuNq8vqp4RofK^kLdRN%v_ZA3H{RMZ4>y#g8!Njso z*|w#3CRa1GlP$&d)xecotWo0n8sN&^{u(8&uLZ8$?XOYd`a0ms-ToRSuCE8K-0iPX z;`#>Q%H94NC9ZD-uH5afjUC&LZPT!2n;JjxCg3WPtS?=kV=1n079`bk0eAcwC9ZD) zuH5l!l(@bXxN^s@tWKtb#;Nw#w*gn~`1P1<8PISf5ykcGz}4H*6}$kB&70K|R$eaE zqt#3P&Q<%X(&jtFXX?JCKI5viuKty3&w3|t<<@JIo(p~txN`S%M~UmZfGc-Dca*rk z8@O`!b4Q8mdw?tVIwWHKR~?%N#JG&5enWNde=l$q$@t}i02RN!PuNj$7I*uAuIsx{ zan}2REBE>XQSz_94_vwD$3}_k2Y@U0{MaaQ{UC6?Or$wqQR4a`0aD$!F6V?QY)6Uf zhk+~ixHmCBHZt++M}RA{T(vb%#jhU)uH5mfm=B|2t2RBq;A6m*yMIe?9nevyiR-`#! zQJNq71p!jE6LNFac^r`%pQUv9Mc~TaPN-}9t7JKNVXs1Jzkdae3T9@$x70hMV~h#a z3_K~@0S6P_*1)eqF5eXnLB8OlK$DJM12wrKjM-c-+Gv+WwXu8+O6KY{Qo;nm;Li_r>Gl=dXbmNZ669 zS~o|<1K$Cz-0j*fSBGf@GVbyurPuF5ow(bzXX?eQZn1#GM{)fgaOG~-KBpfrs{NdM5mbF@&P~ux9*40&dz0&3RMG-n>2uuXCOF%*QmJ?qri{^6o1@Kd^snIHg&jMREO0#CIAGf={11Jet~fOhf}? z`$xN8q=1Lw`d9FGr^nXwL7)eAyG#1m^nqg%aG<6;YK-Fg*Pasb2C(wJb>Q%^^mJ-? z-?7mnqr(TKtMwG1D-S5Hf8(hMZvcC0>c9cf?2_88Rg{%TP+b4k!<9FHJ(V7vJ~%d_ z9a)O&-+8$52C(9J>)6!j=#j|-Q`4g($3*YJ*pLqQFN*8md$<~&qo5B?O^#{i0USaU z*MIQ9+vPb5`ry>aXi9j2>8Y{FN%<`6C^qO^!na3p{YOtRPJ51mJ~*{EC8DhHLn4Gt z4-2@{2c~pz1LS?{*Isz6EwIwR?j21{>J(#1e3V}Q$;*{BfIXF(luV~b_oqeNs!v!T zxvKG5YP`#Dyj)q2Zf3RKS>uE2yz^r-P#iJeP;5k6giqpRD+E@Fu~`jwe(de;1=&_E z4CtH*Gc%MccIzyyvqO+v)x2ZHbrw#4I;1(0V`CgvJ8zTXItRtN1JWGHF-^hBoBdVi zt+kOUo#p^wLGlM0b}M6 zvuDdn>h&u3x!|#GE_br!cBbK^QLdC~VyP#wP=-!;QLn0f@OfuepY4;RoFreciZvr| z73ah=?FKy-Ky$b{Pph}N^j^S5@l3;lt60=&qoA9$bP_CbJ?>WfMQ2u@?USS-R?M=T z$;bL}b)Kr!a&|9aqj;v_q){u?#EN8kc>y_Ea48;8_vDwIS$(!olEy$WYs_0_)~e_P zSH=U4#C_}rmRntVuM+R4Kd=EGXBoL}sInRFpkdixaFe_KfZ}==l!u$|*#1MQaS_61 z&6)+-c6}1{dd#iOYsEV^PX$iix3am}oCsgF60YN4omN&g0PPK`(jmNyIICirwUS0l zz1h@cf570S8|}2>`X>9x`A7C2S-pDJ9jY0467`yLt-mGkT+VJ##93lBqOj(aeXUP#?h;ub%$yOo^&}x+V7NYO0Vw*b4`ZpI}=@M8i+Fk5%#cL7?b>Diw_}l4_2qg`(rc?W%!nT^w>j%^yLwMIS z8j$k~E);rw@H!z^Td$|Z`v*hdsj{e8)l$8Zu?+QrChuzmS#{s~FL&Rf4{K7lPFG{_ zBJccy&qIOY=PiKIMp8Zt47%fr)n#|9gm~XEG&TW;fhQ;DOSMvZzElp}a%T-vT)zNC zN{tU~hQq*q}Q!b?QE(xPAk&1+mglQbNw3@|5as4LH z+r58e3JwEL3jdlb)=JfRV|T77#=ZrfL5B=dT)zcn*)z6VO-F`LgG&ngMy?=Wz?}x*{lS?71Aw#af?RUx`#TEDCoJbF`KF3bv zGL=%bG+Q%Yyas6Z9njYTG+WtBs z+<eytYKrx_ z;9xP=FvPt}t40^WkK+1E8f@80|LeM&w=aVks;RSf~EcfF{m)B&zM4r>t7(( z15>Qe1!7#r;fh#bTOXnhJc{dI0@owsX#)-ePcG?ow2`s$f!pttL5k~NL1AtgJH$F4 zMyyUKnqaF{qi5qS&g^H%yo-|**T07P+>$<;hQq*&1(12n{V_~qc2P1a7#)1}U!p z1ZApbW>_2X#k3-`JX0#MW&-sID@k$v4P;)O&(FYN;K{03wOmX#)b930as6kYR};}C z90s0D=L%wi?6epMZ;16uv%RHaUW@rg6xV+Ndbf)S0B{(1(w$$R!=tN*4aN1};S9Og z9~=grbhabZqDjERhT{4kaK_NYB&bbI6tVkq)+LMAEmu5R zeW&hQ=K)vlb;(lM(u`%;tCLlATAhsIx)!*m#z$ED3!=2n)A?SmTUyn=pYxWuvS#C_ zXv?~W((5`8*WIaQWpIv*Q~C0|X;|5uW?ODhTrWVbljE%YvG)2|Mml2_i~1~&3`*dN=F%*P&c(w@&L0sM`s} z^%CGZJUl+2&gFO)^W+O+m8bDswQR6v#8LQru}N{g)XUYlm&=#^C*ZnlTPw)`#dSS$ z9VxK(7fjDv#`d;( zfHMyMUQX!JKT%vS2d*O%2M%#oO$Gy-MpD8DENK5+a0PNr^RBZ$lA9A92IQ@ongR{E5-GG$aQLLA4k5*<`P%^*VDW|ay>FVr5JF$SFQYP zuNak45sPTaSWA~Rv?#qk0Jz5MY5G$W#r1)}bzf>PYrBiPZjQggui&dFu2%wAvF_tR z&f<@YWwk5zAlQm=u$If`YFZ4>BHLddgj~f0E>5m${uXB*ov=;m^})b(A~l@iESH+c z$(ctdY*Snx;^oTP53>|!mBfN1rX3SFV+=b%Be*;%t`GHa&2Y!B`--I#c`G|-88xd? z$Q8u`WtP3UNjGm2Lvei=avk5#I-gsuOBS3`R)!^t>%)<&SWuI*q{0tqxXKgVANvU8 znjRWry6cCOQuf*9+x3 z>(rZ2(NbJD0N1JOGxMAU8XD58JzKG&xL$)?C-$+nzfP%r&+W~5RjIoFo#J{ea!rr2 z#siC7rEI(T0jo(06xSZ)nv4BF6S9^LDX!N6SFv94RV^9vd6K(Msn4rd?qw9$>yaz- zb8M8>E4~4^%Jo?}Rk7bXGHr-P0(*w64h@7ZEK09Q;Cg6m;wnzAhjIlCXBW`VTfM;b z@YpzOJg~UFHs_bu0o#;bHv-oq!=tRvTTAUO`mg)A3AmcWChIV2Iqt1AC)RkG*J{`s z+3wPZTr(!?e8VWMPuLG!v!$xZ>7JJQ4JXpQBL~uUT;MLO$(b*=ZHcgXU$X(=S|}}4 zILi>F@vobKt5`>mbvGQf-W%t4*9qH{Ubg_(vTy{P<#Og5irqLh@&S?;#dRxijn{kg zrz(o;HsD&THCQ{ImewWnSN@fH6~%QsaIMdlSlb80Zn0Kwu4wEQYihge>#kH(ZIz4S zdLwWhIxuvgErV^I?D$vF$9Qs;-Ym{_{ZjDu zmqKw(0oU|&u5bC@-q|fwIx=!gxPOMu#Tq>V5(qaaOm>wtk zy~X^Evwsm?@)wD)dA+wiz_m-NvEqtJt@pM!M6Oz|_jZwYy*FIdZqAfLeR~Tg>#CY7 zPHxLC(5l1*!Vh=_+Ouq{tsB^5e{Zdy-+ZQ7F6VO@F@C;O+|=k@IVxC{xH5576W1G> z3(t6*H2NAF8pe?WQjid&)ZJ@mh}BCPw_BBxRkhu0i1~77h4FwxH<9=q?o7e{!iG8= z>64UtRdLpZZnXwOtlq{A8wYeGD}Vcqgmd2-b9p{GM6LpBpI$A54!l)~%Mv%+QC1?M zTIf>1)qpfda>K^W{d#g;@&gyU;8+(XZTfPOM!lRhYkEBth&rwo&#^bV&s&Ns4s@Go z;t(IUMqrI7Y0x_4}G6wuS^WO{&l@u*Zsg%wHd%i zfhLn;(nh&js#h{9dJfcl$BfD6f~(GVp0_S@OMw$NN7DPoCKw%V(x{5zE@rJ>v5c!X zY}{VGx??B;%~$_r*ZOJ1W>Q)`4ty<+mo7_7(>T!E`x3U zJ!#~!S_##yzjNPmyr}7Zb{N>GHZJ%m&}7mW?H|;zt#CE86RKy{qk)pUcVmLToL9du8)V3t%fv5a-eU^4i3AWwn=e)0u;)-vn>1}pyZamo!G4&kk!tc zp|~D{Vu@y1*4K{yomx6rit7`Br1OLe9|WB2-?n*&jt*A(Pc^Ps#RDqd3K(Ie%wfB> z;;P=m0HNnofgDdL+OypD*WbE974~f%eD^)}i;J;nA1E%EdC^EPF@)`CT=|7%*J&TP z(#cLb1@W47-a`2o+qLs~)+uMUj7T+Qq-}CyHXPW9b66Y}}$xf6pHFlik%!pI-jNTq1*Q9i=TJ~_sc^lpph~5oc-RFXM-UcvfCFwjDsF{Y& z74L23!hp_68kveE=gAA*24r$Yn8D{QcUVT^{UMf2=Xsp!Io54{O?)8cx@-d2zvT{h zNqlJ8R$Diq*ROx6-slI^Sl5p%{h2*=qsH^Ol^;0YrT8&+noAkz%2n2I@P6Jn%k4I> zE1%7s>=oM)R|=(!S?DdBm8xF*IW2v|!KUQ1Ya@Xq6QU(1yjL}2ij504WWC>Pc=>bX zB*zsit}4z_&$C>4qTLPIBpzy$cJ%s4yFMx&@IEE*R<&9#)r_iDtd=T9%_@|winA8M zhS~1s?X+tkrVUzrE>QO?Ii@hISEiH~9-x|;w+iz16;`(F`N-!2HJ@Ag)%B1ow_e5iF7u@m z2Dn+syo-~_Rr%HXKz+jEYKL1hW(BhD>ZIg)joXW*{Hp4gl@;UXDz=@-73u|}T*?(| zhE+6Y@*1qJNpZa#l%ir<_$bh1(kPe>ExF3)0w;b|_p2)cC3o+}M7y?_Z8#&MRtNBt{1Oj1BaSXKl_hxMH{@$na`@_lJb{7#2 ziAfgP++3iZK__MWs@8v1&sz_GOt}3kWTjP7j(1U9Rs8xusA0?%V6>5x>klZdDt>im zciUECu5G}CQ_lmgDt>*C=kIV3CtD^U`?PL$<17^qJQ%Ki;K#qe0}caEj*K1comTx3 zM#Vf~h#??m;MsJ<;NXScc;MIYkX5LPjn8{Cr9wwa*1efZgsR_A)#9IktNM)VU2Y?9 zHLOg%CZAu8p5X%%*R_+EcOO2X0corq17|sRxk{4#FoTykJ>054_FsT&diN3W5M+$+ zH7h|B_l#PIac?>fClu`}f@{;dIsXb=`Pa>vDT$t#Oet%f!MvM4u(_^r^s3e={x{@0 zd4#okN#o$;5rMT(u82MOG-$|jY1v%YI$Tx1;lBe{<58(8PO?cu*cTm#`Pp7EGp1r@ zNa60q3g>F``&2^oZ>wkE-vbk3Kn@u{dTRXBgS9jmY_3p#fe*#x|--oZCWU1Hx_c4N~v0!t!tz zV_7C-zhT2|e^v48TaoLste^YhUNPv^2m-{pvkLW$^Tc?fHKEzhfAPDM z8XdfFqkXLIQSStu~s>`ctxCOg@E(}&3b(oaOKu(D`o7)b7YIQ(yJPm^={xA z>($@4O2q^30j~A}@%~J=bd`ASkW;sOM+8nh(C9spEB4OhY6Y|0Qnu$jNtElH=iJ)~ zR6Owe$o1YX4&ZN5iU&RbT)F*gl;VL80aw{R5XS@lewfYUvpyPg^#>BJlE3r8OP%;t zef+T|u5nDD$h7`0`wg3)V?PdDTesxz%%m}2s@by*cWuZv{MlHES0PvRy!D9?xoR{e z_KdH$*}r}YxW+!<3|uXJK>62C16S2w5XS^9;aogP`hn*5fzJY0?)X)Vf6W@@yjj$2 zYcu4k{Ojk#<|-aQtDDNXhLvCZzI8|pUh3_`{{nE0{eZu3*d9;VG#mblz}27C)~`w$ z16#Lg6kn;DORml9mVYT!u3Cky3adN6z_~lAd(@Xh~ku{57^@})cn}*0M|YHC!ed+?=!5rtWI1Z+FhI} ze*Y(SIG6c;54dud!#I(v%^Tdggl}K!^{OVl{s6efdiDREH1EIlaA(?)Z7^fb^qR%Y zd}(>zX#NY=rB|*J9j4OImLxT?>%-u0XvE5{QqaaD2F)gf}t=BmdvoqBx6K75Y? zuF?<8mh#zn5u)~fvDjar#uN4c*Y>Qnf403pj9emPM()$y{`D*M3T!7-T(1YN$~SP8 zU$3WuB}%AQ)&80Uu1ja~q>}bV@{1GY#bSCq`EO{G^IZyNh zYBc;#;L2UMq>3|rv)vma*BipCYN$EMd2!dcm+b(8d?x|4IUl1#g$=D z#!;&MRqb0ag3Xw?{h5fw^68;N{xbE0mQ{-V&qY^hQ(Yt>${A3`o;WlNcQ zL5wurC~H%$lrmx|M6q07A-_@mCGeWrT+j3V@YOm5GP82I#)&nt#C5WC!m3Q#o0+sh zw>_?MaY@0~-h@I>#lwKf+FafBG?nT5sf2iM9TFZvkf`J>R2elmfhFn#kpjp-_H;m}dRrytnvz7&|g^O<( z(x0p1srH9x0n4&axgo7T*DGC07{4wX+&K)~Fg>LuSoE(Cbs60E94vzT^9|FQI#>az zd3{3M*UXJyxAg7Qa~?pD8bMn!epUN%s?XK>Ir8|l7;7wF>TmITYXoG!;7xA)s-6pQ zUo#Qjvc9VGX2r@H_STU)Ez%{q4mNRB_b(eLGuQ0NqA6AuH1qkB0&elRV7#;q59>F| zYg}?w&s$2bxUU(vUUlUv{p%B&I$LmGGj9K?g*XZ6ORh?<>L>pY;ykX8iefXPYORth zm-X3mN3m*-vmU1YAl}_LYe)ai0r)gdo{In#XFVJ);`RfOl~zeA&Uysa(7=P>(@~1E zJSaT}!E@C$9-!i^s}Ntz6=}4brsAxt;c9OG8l^bvk-(KZscW1i_1e5X;iCX%+#d@t z+Dtb0b6*43yIhNM{7Br-4PefZq~h0W;TmrLs%tzz-M4x|2|JO8?s2PMBOKt9CArQv8aex8wM=9hG>`ZEkimL z_Q4f#{0cDINK)}@KU~kvRo8fcx^IQq;}WI&)@IOaeBS~XZ6=%VTU+6JmusdJ-?xCu zxs$dZSmn$!Qsaul9N{)wDHV)sH&n5$=iH@U`DaM3>N(bMi@QCRR@=u` zi4Y6GnAPC<_#}`>{3GObyjC$Yap(#}T1!g34mRy``fIp!9i-!A>jY%G%S|p<_535rP0f>6_pRRqhwYq}?E996in+bjeuPx z#%kZ(#1;Evxw)S6i|^7CRtvp05*J(`;{vHyIj1|!Cm(yijhT}*tE!)H2iJK0>jBV6 zd9Dmcak5nc&hwV{*FFgs&q10aIVBccsVs=uMLl8_*f4)69F+l^6xYYX-{&FCk({j0 zPZ0>Bq^?k;O_-Ub0p!ur9Icf0I&#Yj-;#CbbaP{_ul*oFqB@8z=g)>LfCGHOmV#hxIPKe9LWi@a@?wDBhy7h6xUl9|C&ft zAkC2+&(*Ao=;!WseKxb9xIPX}szRD0IbEq&Yx>F6UMXX+X}yfc13>Oc6bD7Ki!nB$ z9a&1RPXMlUNOL6J_%#x7)-eFM0BMfo!D3zXzi1~{(hocl0G@z!oNS$dGtWqR1G&bo z^D@QT-Oe&^?CZR#c5OFnZQdxZGr)Bhb4{UrVCkU%+O?UpXERT6l|u!TUb*KNEH)3a z)vz;$DXv-Is`zr1Zt*$x>|HTjS+m-u;w&8Q+F;FHU*nWs<<3pqI#oo^>@QG%>F#%m ztL)oWTz4^7Z>hh4IirxxQ(R@=w&Hr4Io?`|2STnmb9NM0*|)8@s&}qpc=`*tGUb`}2+b26vCLOY*^eX$dxpk`8HTA=&kGuYz;wt;L71v$NHC&8eiGCR7tXa)dTxH+3 z;(D6-zUB18uvW1n#wo6{Z(DIy?_7n$ei*JiI$@W(Z(-l|?VTu;26<9?m3`aXI#uZG z{w;N&(L2Re_H8S!yO`_h_HQxg625tgtL)oWTu(FKw>VS_qTeqouVxXQk5#q~7veM>yYZiJaIW-)7w6>HX9C09FXOjb%Yu_~k( zUm%BXg@q)Ld?>E6??rJ{?}21S7?~(#b7E_9XQKRwB{9kwM#H6S_lviAeU~3W{p~4L z_y7ifi<4(3K*a+;KKto`|79|7=EU#5Q8P*vF+G=lUlA??Om(Bp103Y~7|i*FOb- z7eSgMIensJyI0#6XvTK%Jn#B0e+~fW%_{ej8IYSkNy@+e1yoP|o%1y@f~zBQ<`k}N zitArO5xAcV(tA_A{g9t7Ns8-VLFKrg3#P^3hV+;NuRx_QSI$WW6c#r1EYZrpK};JUSc05a4hNpbx@mobLxVtHMT96Do@;`;AU zl>0)OBRM*(r(!9t{{aB+2WgIEvwzhk)}pxnCjh)Zq&bo!x!KvA)w|cq=L;tHB9j~y zIEzimwUO{fQ~!0AbK{R&C$Ktkf!H5L(p`G}_fj(P07!Er>&4^6(utzcQ?AeGv}v5= zdUF%k{{?{Dejry|F!MRFfR=_E@eN++ZFjj3$Tu^8JRYhEI%_p)-?z@+=sEo|2>Bnh+0Pc-WTl7EZPXw{6|Jd3y_IcGoF3SGRpY(cJ(b<3<;M->1#h zRixs24RCd*$+N9ro|(5Y$E$U*8J}LxM&6eOFLa)_&Ue3>Yk_OrP8ghCdw}b2nb&oY z&&ire)&3$Vy_vt!3)jzNnu9OIse^sY%03`x~IR4glAlmY; z6xSWVbzK~1`O*r-btiI-<1GJN-FV;vm*>pN( zS4xD#*sR!IUX1Wu8l2yJ2hO^hQbi&XSQCO+6P8}Ya9>w!)a`sxyEspf3B*1z#Wvi7r4gpfG@1}Ma}WR zKH%Ee(Z4fpA84Pg?FX9TfpOp(#{=y%l~>qYo8o~9;A;3Y8~Lj!uKR)OBjR|#mqsYA z2aszV5BTS*;sJLM#w2i!;{jh-9shd1cRb-C;98z53$*@hNBJuB1B%08;JOMoH&Q1A z_%4Tm&ID+0rI@nE6|eQqJ3azj#e|b6)sNXy)=-cDCzZaz%|yZKlxC4eLQeo_5b|YZS|@s>GcV~HP&mZ3h|yt>Gc?J zU4@J6dM^#+C`x*LB5;lM>Q6qDUQOV->ev44wt7{R^g07vW4*Sj5bt@EUNgXT6?6M* zl=PYfuCZRdI&Afb(yIkrSK;FDtr~6PyeR2)7P!WGZ9^n*Dy7#s;JW%!IGG_CCB4oA z*I2Lq#6;;e2V7S(FH{;Oz1{{~W4#8a*W9r1ASF6SK{Fy)JRZ-IG0&tD>dQNGOCrE_N z&s!&e>uTnW_@boO25^n_O3Lw^A5wZf30&9Qbxsq@IzcYe7nSkaw*%LBeL{b-q4fG> z;JW5L{_M7TRh0C43b@94ZB-%O^C-PO1-P#HwDGf&AbNjZS|@s z>GhewHP&mZ3h|yt>GfH_bGgTQHP)*?B~f~PK5$+0et&jby(&t2eF1Qd_1daJ zyysDReIamN^EvPNK_5j)uP*|wv0nWtiPGzff$N&P{n>5xswnC8CBQY-YpV+Jo=55R zrNDK~_q^u^eH10Vz6`j=diAFyO0O>mu4_Kx&u*(%MMko z>^(o|qbTY1RlqgYt3M@Cdi`DCy5_6??6!JUl=ONRaEuZ7Q+9Uq#wtAJ^Ml~wqwORfzXIO0Ta6u4|8b&ky=2 zN_u?*aE$O#dc+aEs`gY*Dw(31U=%Xm<^&P-9)~i1y zQF?tRa9#The|B5FDoT3&J>VMawN-_9&!hDEF5tTMS>E%5K8liF-wj-2z4}uUrPucW z*R`+oXSda>qNLaN0@qlttt!NO9;Mg!0oS!f@A*L=MM+b{CwNLeD zx7Dknq}LAs*I2KuD#UvprPmJv*R`j;=LdZhCB1$KxW;<*rzA?R9|o>#U*gYht5-!y zuO9)fv0htMi1$27uO9`jYir)~gFcFqUOxt0W4-!Q5~bIV1J||B^k=u#tD>aWPXO0g zudOP?dmg3NPXgDq&-R`l^ih=b`YGTV>(!rM_c-KZi~uz?au+%hOBtdFe6}(((C7e>$)p>Aw)^9cLUd0ul{sJ z>Gcc1b=?jA?6!JUl=S*V;2P_-RfTxZqxAYE;JWU2yypjf6eYcW8MwxJ^`|6CuU`SK z>jwSVZS|@s>Gi9?HP&mZ3h|yt>Gf;Cb=`#b{GgAbq}Q(l*I2Lqltk(E4}j~s&Hn7R zdR3J4`VHV3>$O#dc+aEs`c2@vZrFQ%&__|y>$iYwtXF?ZqV)Q0;JR+qpWRlkijrQx z16*UhwyF^Cd6Zti3tZP7^qwE|QIz!hJ>VMa)t{0my?!6KuG{F(ZmU;CNv}TuuCZQQ zRfzXIO0RziT-V*~JwNE9DCzZwz%|yZKP6Fm{UhMIZkIp1tzH!+z5WQe#(Hg4A>Q*S zz5W=uuAB6pAM{a_^!gLv8tc`ck|@3YF>qbC#h=|)uZoghe+pbqNLY90j{xLTUChnJW8*B3S8G6@}3{` zQIz!hOW+#o)t{0mz5WWgu4kTKu%mxxWY&ZKGvL~g75Dd*MfxgAuYV3)*E7#Ah>~9a z0=UL{_4l)*^!k^;bv^U^f+*?ruYhZ;*WmQ}*T8i>^ZbG+>Gf}bYpmDc^!m5Jbv^U^ zf+*?r?|^Hp*WmQ}_rP^M^ZbG+>GdCgYpmDc^!ks$bv^U^f+*?r*T6N_YjAq~C*ZoC zd455Z^!gj%8tXMUz5X+BUC%tfAWC}u7vLJ}H8{QgD{x)UJij1Hdi^)x8tXMUz5Y9J zUC%tfAWC}u58xW>H8{QgCvaWQJij1Hdi^ip8tXMUz5X|FUBAnp-Bz!Pl3xD@xW;;I zRUzKw4z-1yR!LYTz2{wH=i%olEI;4RBr0 zJij1HdOZ)g#(G`SV7sZo3wu46Tmnax-0W=c33I`M&*J2{39L$7mKaQ2$DID(K1 zJ`FCJG$wMHN~v0!tr?TU%!8JKEA}}p$)EhqF4y($+3NkA7sn@@mB1RI*PEKS-UrV< z4-bM*CyfnRVY$;x-XEwTWB53*#R*muMdJEF%Q#pxfqZh$Vxq`c0$GQVL(oO1|P-A76`0{c0$GQ z;c(q)NOL6ZcEZfOSu9%lDn|w#vgzpcVmo)$)cS}Hl|`p)rABW`c)1!-!Cgb1R&Mx9 zFiFv>z4!KDOszO8&HaXtgc7>_hWX?0S)4pK0qF+@&-0FdeH2_aTc{au7$;jKK>2|U zaP4VG$H~?StP!UUUg%8HQf=7Rz~%Ay0f5m)lJW!B!u8{0>1jBOlPwZhomeaNda=~4 zjI-o_J#cM&-vStIBq_aOQ~k(Tn!Bm6jna0{sgz!?hvLV21sH84DZS!Sk26+7yRj&3 z;PHJbrPm}_i}eaH+DKA*#ZjBP&ExS9%{F+dQz^aTk^`|`6{+^#DZOq26SHO}_OHOB z)g+}??8=Yz+A2x!dA45Hc-viYEXJY99o`G#qm~HBc9%i7chG5tO(bw#{ny{)yjn6A zpR`E8Zg+9Hs`(n&jW6{azuG5oo;`2Fp{M3+YymU)>;)eOmP{JL(->AUQ_ALwbAg%d zxS_RzYolp?!B$bKdmbH5(PY12I5~xz3v#{8&3c=74~uJKLpEuoGiF|>^~P|k&YGL# zs^)L0`9<4hj(3N1zcOwumWtNnS?kyd;}lmrvQk`?h?xp!+`4ts7X7e_R_!zOx>GV# zTn#3mu35=-b40k>eok@4hc5=i#;pSyQcaM0wYM%&Tp3uR$wq|y>rJxaiYv2!ZA8ew z4kA}W9`L;+*QoecdkIaYS7!g((AvK`&#`KRn|#zd9a4Ks(l~nXkdZ0nOBKE!MF%W9 zah8|sF5t?|H)+h6S%<4pEnAt~Y%XKga;0JiSOl3R#Wf`|*yU!T-rd8%-;zeLWMuMY zp)4L`jf(Z8dahz=&|*Mw9TN1od8#icX=E+YmSt6{Ms>ba&kOBJ$m-8s{XTd;_P{0* z_l4S2#iR-|4?|wt~M|3V#VHE zF;lS$RQ5bLy2&+b^;vo;dWNH-a`%GXinE&g{I z1e|!lnPH^3-m(mP?OximzhsC$?&D%bGPz=g7@%R6tMz=>H@#3?Zv{B=@0_om(b~LK zDOxqoOgdnj;`%r!ha4Bj`Rds`F=J@Rmg0&Xq;gyw=c^}mWaEGwxTM*O;`#)rql&%Y zqd=2Ala41!_ATt!#CqnsDObZ_cn(Ub_ z9k+_clvaZ@1tE&73FMq7G58?hWY17~#7IpI>*fn6t~0<+&7Fsj0!{X$$HyiEwYV~j zQCu@nv?vatPfNZTKGn8JjRZz{5;VN^_)b3%U zf6ETBs_ygzS0){>OL3ira;P~n@KK=2o{D+G(9pwDTya{8nj;e^OfV+nflUX}hHken zit9YoTg^Fuj{;39uDad6D6TmmhhsG0!mF=dJIF7R>JCn>IVs1KTx5vsqWgr4mfBiu1^JOPlGf^(&Gmz zW;R!AwkWeR?q`0C+pWSqR(1(j$cTer!*uTxt!3Ug;D{AyPL4$0vx5!ll zu>+dx6*YQi6NjJ=m$+sZ%wk5gY3blyX+MA(eQwYoo9r!dou25|T(79n=QVK%`miTe zF6XVq#(}ZX(NUv+^Uf_n=M%O)>b`{DjGfYYK?u3GhMski%^v?#8q z(HDfpl{ufV%~M=aqc3DGkkTvnI9ujwoME2giW+^<8CL}Rfz35NJgnQ~IEpK3^u@tq zJi}Vg$bsSXSo)05yZr--D{Ay5%oTLo3CAiUDdwEQHBWIxjlP_@IAUFg+=5xNjJg>A z-p8C-h~_D-sL@w2m&Lpf9i(Wkzeh31k`57%u=pLctT z;)*`?HOv+CaNW+FS%~H-uIN)=%Ul)@S9_y6<_tqJPjN+``a0%vc)0Fl&MZXp6j$`A zuV*fchikt+4_p*i^r>$Mm8(7vTohOIsc#IGt3D506j$`AZwi&GJ`Y?JSM;fG4wb7u z4_p*i^r>$Nm8(7vTohOIsc+@x>dZTKdSg?E(i#jYwuw<(-vlh*25FAu;<$`SxyaLk zWlWTcxtds@sEfxEN=_8lHv_=8Lz*MmGn5(@tHB!+=}ps<92s=TCdCzf>N}XrCD(Zx zVa}ry<|(e|Q{Ty4s3kuzIawNI&MZXp6j$`AzsFn_FV{`lOgW;sqECGnH`hIrQ)y#d zm*w*oX;EC!r@njfOrAu~p2^+4(>%62X_exNKJ`7!g|oTtX3nGo<|(e|Q{T^ArX~M6 zHf&5uYW2t5E(T+yd~Pyt|icgMYrr!;#ypt!yl7=8%S9LYuhs@Jl*Wc$GT0N{rq z&5>N>s>5Vs07U5(V}Osqxg5zwuDVP#bRkh(F$VZ32TZWJ$aT0^pGC_>{V1*&1AGh^ za3p&)n-{AXQCu+w__#We>3vbJhe~2H#y4q#Ha0wZ0Yv3Kld$utC`6jzJ^KFeGNw|zi(1LllEHcxTI7~pfv z<>?tN6>F7JJ};LluUMwB->RJ`RgN1y!>Rq(84DYYfsK7#$eiMeF~H}!x!U7hwr*#gSzwRDRtG{&jJH-`a zfG;ywuO~e=onp?T6Xq$d7z2ETxllbzJ+RC1v8A#sGiNk`@0aozb4cDI4mf=Vhr#t|HxXp(%zrjR%=#la-6YyV7lH3h?-MeF$VZ{OLY97 z1p99}&Oj5q6jzJ^zT+QROIPClhB|?zxMB?O{g&wXKS`~lr&|Y4g{-w;SPNFMR`qXe1zkyT#Tejc%w_GF zm>f?#jx}%2Sb4*&8hNovOt0M=+r65lxMB?Ob9Sy)p;S59TQJLI(WLG4Z)wmwOL4^* z;1}FnM@EM=oW4cIuipihfAas?yAHS}nx`Fl?x++ky-8 zBB<{g5KIhapg}MmBo+x7>@XrDna-le(En!l3pabM!4Y@^7v@D!KMa~#R5FuE^mYy6 zBg5s!E56QJ#|tuXGW9u@i6r)MH{p*tiMa842AA)fxG*n*TzGA*9mKV)GapN)Qj#bv za`N9+`{KsySsa14aA95q^@HhD5-b}FE1AHUI9{aidt`Fs^&C!>+qf_pZwQ^S zcp?4w$>hfCd7L_TaA95q^@B)hV5_Otyb%5yWpd;70#2X1xG*n*7_YXx5dIrwa^n^6 zYq`f`-8lU&^b{6U3HYJQ3pZZzzLxvE=GDW*4LY_ZK@FA^PyXB9`rjsp8?Tper`O}c zya;~&&OLyV%t|3qTbAMDgV`Op@p>6Y-~(Kk7s1cG1_y-`JuN+Xk;d$1&_SG;fVF|T>`3k|pIY0gJ8Yqt`{ zjaR&H@CmPZ4GwYjcl9FLnA_SCJ%$E)gz`t7fE%xP-{4bT^NRI@hZ*#U?w)>s?@H&K zL~-M_4tGieF3gJ{`@11bRT@X3g5QcrrN{F_ZI&CaH*o|u;=;TL>U&eD%$Niq6sUEj zk*FCX_@MU6y&nPbxtxLS{#K& zi6+rvd67(q%jCu@-Z%K1#~MNZ0Z%UzOJYbeiN<8m(MWC<43kYF!ly*=%l@^M18%(H zeS74I8-$zy%={rkA1X>|j6oK8oJ=f*4EH~5Oj3bE&X zB(iH+Ocq*8mYG3|;luIVc;Db_Uh~@ezH;N2_Z3DLH+#kV2Ai=Hd9>FLcIT^g3ox3v z@rw5izQIo9(f-SPM9|qSFowkVd%F;FFvN{lyl?O=$Jy=wLq9ksA&pF7K`V>sNsFh@ zU@B-RT8X}-XgZ9Vrzca$Okz+7%&PNuRlKA9<_`z8s*?Qqr+?qIjGv&&6}&74IAT#A6L` zyt1&J*5u-^=GV;p&CGRh8ymI&k(Fr`HFhOfu2dhUgg>;19z%z#$v`cg>{5 zjaR&HP?*=e!u&2iL{>5y5c7AnsJ{Qw;l?Z8Hz>kuUI&?kkzg54SZD`E7lF4Bf)+&d z-Vd_;n~CPeE8aIK`Wtw)`kM*;&U*{*8x-R;uVEw>E0{%ZX~TL@;wdcXtLaOLPhcVM ziytjMiDl-CCN2aE_J@UK>BImA8Rj%bBj>*VB>vu5ZuW}z4T|%cSD)YjqJ_1!wG}_~ z#`tnCx$%nk4NCBwS5J4Mt)+#zEwr>^DfHGBR&WNBMNT5dC(~0Hf9EGzZoJ}sgOa@F z_47RY9;Dx$%nk4a)JF z*VY*_QkgKElgn-YYY%bbwWZKy=SZH{y!z9VW5MkjOirT2&}p$LG4QRB_+@buU(dhO zl)3SW_YErWnpe;C7?^|z26Tr9xtds65Iq9igMEUDR;CuHZTr_258Qag`vw(x&1;JX zD>|8&6!>>{ApEMt;>Ii9H>kvGUOgyG1~{?;}!24?80kaQM+IOWdxH-BJ#ns zS)ZRHZoJ}sgUY<-)sspd1`8TRQ&>cAaAU!oPh>D$cM^kzrrU0D#F9}#LDctj^A2_o zGWe|eA06PvE8aJ#%4=TTlIf(_7WKcR@SHVfXE4#lp0)RQ8(4X6fvkZxT(R{j5Cf zx?dI1%Bxt5I2X21WlVSn>~+&SAd%mY1fEwncKRwEs7ETF5{r1%V%G;e*nFztc;#{R zm7t$YPNgu>I_G@!!UFzU>#rg$ObWC4?26-+*FjxVOKZOQsD&d7&nw2KCN7@WL0wZT zTmIw~l>?klI}t}FXACZ)oq_{&!`n&HpCtyh3$zHWB|tt~weB6LqA@WQCL@OOwFA@a zh@=Et>aVT!ER0v}j!2lD27k3)zYr%#P=R(qE3XULhjqS0^E_nAr^MoUUBqTlm*;GL zNq}E@ZEY8{`m?;*+3oQq+y6p8$p9)}9og*yj90uviP!Z37$=WU?k98c=Us+)b^3}| zL!6pC=QWue&ws5g)ZRkxt=4iNlg+0wj#pj>jiLQYjLu-eECbMg2rX#B>l8aiKH?Sg z4`AhhX~!hpl8P}g)W4s9K$yP;(L9}xd@y)kBiMXe{SIC&`IlD)n@_vn!K)Sj@rsqN zS!_O?I+Rxui@z9cB@bVJ9na>|r2~2W{MPEgG&>?G0jLqA6AW4^1X=6^vF`>Qkv_ks zfv;!fvNP$~ftfWX@_#unmCdJD2lDz~C`rB1Nj5c)2kX!k>4R^hF>IrqT6>c5b1qPS;-y7sszHY~5r~E~)+KNa8yb0rC ze?8bzzNRuMBmU0m$-hYexAJwzH_!eT@uLiID_?iwF8)`(;>c)25cOxl#&Keo?ZyKC z_CL)4DhIx9Z|%WJ`)98>GTIn)l;ZRg?!{gIk5?QSZ3wo0H{|paR<_~#Up>{B=;ML< z4_MfmTG&#leB*?`^NRVi_WdeZZMfcq?->1(c}E$}a$xqCC_)06$}oYU6(-Pr=d&s% zE|={eMD+njf+UCFxwv1{R@W@<$iLu^FwjyTVDl=>zF1jXT=@mbo z8>Wv%j~7n+pARPdqMVj?0h?FEG1~ASUF2F1@$A2qDc`)RI5^_Q>k`}+xYYP3$c@(`T=sa~C*Ix$ zmlz)f5wDov1$%ET>%jbFn2zYc)H*IHRJTh1sytMT8IC-sT8|4eN%u6QQauwD|0N+2WjpEvTI*g0^`9?vTQ|s6Z9K|{P1Ngc1V`wZB z8Y$_YYoLv{q{TlVAi{AKer|mtN6fz;Kgs|qQyt|MT29A&0oWYy=$$r1fAA0)r%1z0 zQ$tf|Gq?NLYrkM3+eH8?!%!K-mX*!i>9B@0jb+@jxM?i0yDqc)xAMaxr?bpp-rZlH z;jJ|VXV^kK!$aUX{Z^7ceEjQjpa>%vBv5D+6O`8<7WVJN76w|&0c?iSR#J-5L1Jro zaO>{h|28rpNDw4AO172**rlu4_S#wwkWyf}`xIKcmjGC5{J9rGyb5!^x7M+FMLCX? zk>sh#hS1T%doaIt5=>DJ>+Zx-lF4W(lMGm+lT4=2;^?MnG2fxSy~|fDsqZF=o%EeO z;#KP_UN?0huYQ!6WIB@`$NK#Ga&3J+THavaQJfux_iLw{Fv%=fU@j(^!uZv<4&2fI zKk@IJ(NYd5ah3zyIm!X{ykVJ47Fzs*X%P7xX>E_fDg!Ny5Pkgn(36u$tRJ7J?2qPE zm6O-q9K1r#(IQUnLGHd3CMz?*)6YH7x82y~YhJB5d9C8$)if9?mQ+~UnaT8l;x5yJ zOeM3(0W^0yBO}w79z&u+XTaD#P#5!uc3E5P8RIpU%p3-*oti?uu1!YIX|HJ%8rcMD zv}78Zn$M)I!rGMb_fKvq2V^;UJ;cFlES=VaMWn*&4ee&6IF&G7-2?nXf&zR^ef--t zI+s_x{^~7h;Z=*1*CQOf(qbu0XlX_0WWqwvEO>20$lo)>%`?;|Lg$yM#&``33J3{s zZ#%JnG_Ts6yq@IX6`n2hB|6icp2UDRN;HK^VP#~JlcLG7vG5}MMP@Nx!+iYPY^%uZ z|7c#7Ie9(9!D}>~&dRj1vnA6KGGmh|sCw{=T;hrW0>*3bz~B&1zqV8RNAoJp$?F9U zUV}+-WK285V!ZkU1h<{kKiyvCIC;Iy!7H-Yme&?JnFrKjyrNXvTp9S&c@^j6 z^*RTyNn~0I4+v%3tY5H+M?f$Ussnv|yiB1qz}fQe3^FsAX0ddpS(^3F^&4ra4@hzH zdY6OOKoTnfN>mxnzH#l9XEv{X!NBexL@R;K>rZF1g;yC)Uh6q{r87{ol2^=r@eg>1 z`1umOk#9RNnVtyFmmkU#ulz0v3BT5V4)KchAHXv5n9VEp``^Cp47B(O1vvfM4Tx7_ zt1O;63EQsjUvq^p^1q64`d^!HynbB{y!=-V{PJ@l0)2?SUVrP= zKVE;CS5Z_BbZ)H=e1Z)Le1qc^zH_^p3?i9~FgLLus&7DyG=eJEFQ@uNfESrYPKNd5 z!H>nFAeUo{QyV_a(BdfZDaozB2J4!bTAOq27sJDLtl6)AGx&O3oDS-=#op2=NhYM^ zm;~?(V2A$ge}DmGn&|}2_m&=x*B=n^OQ&G(ElLt89=v01mc?nWNlX(kgffSF(RaE;H@dZcpnvCarB$eYPTII9`86w;#C{ zrrH0I)Bd`1@VpwbwYTUdY1wJAw2l%N3N9DkfugU={9Iw1C2mU%k{6U3V*N15> zU!~dC*y4C4w01fEL1}G2P2V%v<4?3!GBdXAnZaGrI{zytuXY{DYnYGUpUCU4Rx8jt ze2(Ir^(+TAuP(rUm~S9YU)aV($N`lSO=M6Qq-ZLc7}wI_1$XEF&LApZvGFk2BkzQ_ zR~~08l~3yft@ApxHe9jxsdESN%D?NyslfVMt>r7WK9nntSDdSWCzji?PE<=Ji)-_r zCuw$sP-L$duh@un4;-(&)&a&4z?ayTl9fg`<)2mp;`QrxYzPOhSnHNI3>y=}1A{z+ zgDrU@{$87&3ox%Z=B;I9`e0u=DmhY)njIPX^Eb zyhh-7&1x?Kzaa;e0}N6!lT2jLDKr+0+DcFPwVqMmNa!~lb`&w;NEKgW9YJBl@YySc zBd@&rf!hCHkK>fUB^KCEfTvZ0K@6Ga zV#%;VH|`ie1d%a1N}9H01>?2VyVaUIC9h2m8+TKPU6xfH4t< z2PTtZSi}@2^vgi2o>Ivq=8ttM=7B!#B@%D17_XRr8>R8jUVo11R(ox=P|QxT?=e3o zv29lw6Jg*ji0wP+_gs9606+3+S ziq!*n-FD^V71~<~^jJsyK|Tn#l&`X_^#P1m{OB0eE?~Qyetfb8KH#N2vfwDo+1|pB z;`qnw&oSK6FM~awCMJQ`b3bG0pgj}j$l<5{Zdl&9@!AE8ggxF@fIHl7!B}z}l^<6| z;Kr*mjy1fm0C%|Ef^1%Gt=moFpCO1FuULHxX^7Qnd8KVM6yW^!jT>>rjaOA1iM(zj zP)8(@aLMsakQ=Y~)s2SmIH!JrRy z_MQ2(1C;*3Bpf9<{aHG=>;8R*!I9C1ASwsGUf)m`cRjED1F7bw_PFHuCdiFfJzVZE zUpMYhy9QG&_;bNHZoJ~xGQ;;JXjekn!hlx`Uda93GP&`pk5dZ&?ErVU-GZr>{~dcZ zz_G^bZwJ8Zf5u)7alGPvhPcD+76e}TawR@)<$w{6HN0;Ncevexz-!NT6ZQuQ;>N2n zPCw3?EiR&+f~nU39ec%d+1j(9ok-*&26(mQa`>-5#LZsuT=M$cQ>x8>r#@hYvld=| zB>`UlGxY&;9Iw3o{tUeG`jNoprsIO#$^pCq@wz`+s_lQrUhxLx#N%5GyyBDNacUhW zo}0bm%T#9`s{*{@ljCt}9VZ^~`t|n$UYDsIm%HDW66*ho%}0c3(UA?yRA+wuVgU1J ziQ-!V1OmQ3kVJ|}Frj0NxBs5VrxT;Me2-<1-@;hK*9Tg8HHl%QV6p%9Kf-_jK>^AE zgO+ZtSYOwUd_g<>h?0NdImlkqzv?~QkuPX|{T7Q%!BLvCe9c6a1ooE1gwRPjT}aLxk_y0(+5E$hROQ_Z4(a^dfm@>RI?YYUdCvB0Ys zJ6EBB;aWeG!Jj+{JPz4w)=v`E#>=9qu!brzmYhm~nMm5n z*4n57Pfq8?YYv{*ES@CG_d?P9+F#r21mG2`8(@205fOvzl~=-lqg-yh<^r$SSWaxu zD;4ATU`#wWZV<0d>~V2e`8pYR#Z8^V?Xq?|#$>@d@}%V0b`$uA2omB_4om@F;jd-G z_PkP;LSv+`cqRNd%H_uERGhu?+HUdRe10Ph?VdC@UZ(-C$j^l~Y~T8;{r}TbSbS-) z+}>N$(Zip`<`CPnf4287CV_-zcOfV9Ssk`@K6uVjbOz_o_NMYbArC$0j$gH7X9BMs z)sE#?l3TwQw7#7%|G=z&_WH}W8@;!j*tIHb?DiZSulT+%zns{ANPsZ3STSC)KJRmJ zyb}LIT(oCaMSxc=w!LD!&cpHg&t89yZBZx(zUFm4j#qpi=mmIEX48p&t8A-xx&A zz@MY4O;_RHTNtm4aJ>F22iipE=aYqS^;a48(Zx7kiJ#B>7ibFu!npSq#_JLsum9|| zEo^={7hlhkWglLOQOuZ6FhOD&AhPd5Vj0yb^Ke{tNy% z19*GIcwL6$^`E`|IG6Y{@%D=K6)48>O2nW1FZ{y{;M)Zlugh_~^4ea1Skb@iMAR9hqCSL90wOI}WAnhT!|}@NazNL_)Ry^^ zy8p?Sq5dvk_bXnHc+L8gwf^&UmnJ;axP_{4bP#_JYT4qyWduswD`JMWEQfB`IWnnaGJ zkobvRZsqGXeEFKy&P4u4#BnQMwST#Bj6M-FSQbA$I~#gN6RnY{VUzxJvE^Ew~{{jybX{`?Zb zgAjfWUml46Z6YbOR1%f)Wf&zkUISAoI)lZr{2=nvpbb%vz)avQ9a}v(t?ghG59`5^ zQm9|bPfR{G-i}JA#lvZzH%va-x5#g)CVY-2U~4j?bWj@`)}ZIAA36`kN0T`<#L`E5 zBtM$WsR1S*HHTW`Ia9#m(LDJ`KJ^>&Q6Ft|J@p&%QQythc<%C%ZxP97wAPa#)Vg8% z%fQc;^f@mlVEoIn;~{?>XJFT(Z^W(obB{;gj!=9uIi8#jdu+qxBcC#g2Yy@bkOg~I zRIG2hB0C=V;To^Rj%Sid$uYQhImR!V5d+DG1|!EE#^TXD+O6^2^+!HLc07lLVb`NI z5fT5xQ%GNoAAV!@ht~E(HcBOPo`GGD=9@{|Ydn!1A4jE=zC68z&-!aY zJmM-E*3rbDf$86!9Z&s6yf!;NmYxz##XZ3ozd8_)Y%QA1c?PDxE<2w3jd;D!@swEn z{6Coe>O(xb|IuXb@jck_6k04L8GLN;vt`55NAH6c`$^-tJ)ikU;|AFLbDV))Z^Vv= z`^z=nm>o|eCE?ilVxL&MDTT=q{dxR7<}Z(-!UG1funo&U_MIY@jF0^?e%~A}K>GiG z8*0u;(BtBmWR?UggF%*{!}`s!WQimabC?9YT2jaov1DeVC*=0roXqb$muKsOa??s&LEg3#m5i?1f+Czb;Wu} zNr_9rrY0qZc3(D#*VEIJ)Q2O=09C2h5)@lY4B08#u;0B~fBw&J>^v+U+kfl$*YdFQ zu{{?5tvz<$*ZWwue!sf^S}ykcTXMgp=eN#ht4VOt*EZ1UL!pu#h%iMIvS8B~<5VK7 z`e9A9G`FxbGq;C72s&6JT`tXT~Iv;wdqh0P_|JaJh|{ zc~7FbrGsTp2Mde;k$`E^y2t4g6B~z#YE=eAS(;gzBT-g1AdQ3rj?(wUvXp z&DVLrU(cSF3M0YNf-T@D`6SbzWCEWPTOJVEs*kmqg$>cd*1_7&!TMXbN1%1%xK}Mj z2RnjSJAx3}1X})c{U^xdjUXT>v`AvYnEBJDOG(Sf%E>DzDlN_tpQxfbYerWM&2Cv^ zv&W5>R94TOG>u>Bp|R=N^N6LvA)y1p z!Uqm|@$%K{<~QaRmR8m_wmt3a-@beQ;o~QqJ;pKdkGI_y^RcudTG%<**mHX%@zU;TzerZkP@`q>F0t(93r}O`L*m2i0z@f}y zXV1>&GdtfYY#oZfzC%|ERut5sQrgFoPJDt91G8(rJe0(4lP<=K-OTT|6?Mpg4q9Y@}R1Q z*%~J3`^HjHBST=36$n+ZKLj`ls0CaD+yOk?Awzfq`)7dHfDZuC(=r4}fE=I`Kn2hh zpaU=lSOa1&jt@8&3b|l(@LhS-^7e|Ckfu6MMtteZBv>ptt>M zOZ;m4|K$CD@dDbO@smnVG<>|eGe0%NQaS z9QH@NIl1%TLp|eQ8Cs71c!{$&PP}j(>lc)GwP!VTU+G(&n_yP9f7Y;FHZHv8&dRjp=0_?0BrQAwx6F9bP3_8pX;w=W#&wFnCy|)5K7Lp7 zb6RhQmjNrr1j+WFnjlh8dTCrY)f07tYnO=Z6FZ-2t9*@NZa+}=wS`pWCxy=839Dwj ziCrG>wgSaRF5YzvonvUQFdCgVNMPVhbZ+fqv(D)Jcs;9lbj`%RTc)GyWK5;6plda} zw|a>m+5H^p&}-Gv@kkG&<~bjcE={%?Ly@U4=bOoz2~9JK-Dz6dAC1JFS+HUKW~=(gkW9GAr))N zbBy0F5HMP1d~obllkKw0{6bW#dpb_NaPI1)xCJ+v*^53|uHXJv z8%Z%rl5?AMK$uCtomOqDkyw(m*tuxdg_-N_DJtZfO?I2<(R28zca>XLT-o|yaMb|& zCWWSf%d?$logdP*G=Gg)t-#=MiWNB)I{QaShq59ol0R;|p0!H!Y5}XMVBbDU!JP?S z6%B_L?~^-TB&|a?eqgd@Jge{3)nyTvbKj%}^>@loI%H8&-9xDC@R)&npG(yp@|wBo zeE*oEqVWa>opL0%_psAaH+`RE?58AS7aYQrB=3?;Of@}HH8#gMc~(*V-evvb)Jhmr z`c)P8ryf?VpLJSCbisuj8`&3(!bJHl`iTFO~teH;fH?p`D^3j`ah?4U$1`= z-GdY425od7%zF7fM)zX(l}TgK{jl5W{T$sB)f$m)=)M#LsBS>_MrCZ$Wpsbs1ci#x zJ*uEHJkfocy6KKTx>vWhd^(Tr7k$#mXXu`7oY$onx^Fg$hjr1to1;fLh3?;(zD-Ne zJ-n?OV2AGG*7H-RpnFMPv^EXh&lEwUf#{x&yR(vp?(4aCu6xkE-5RVg4&C3<8*xw3 zJ(joJVuJ3ov(~$Obg%EoHdLVdT{WY`5#4j$Rg$yOeWzy&)uDUOpvg+2`~TkTOdn(e zdPnpkkR3cRJTM5^!i~*y7bAPP9X=RE*?$nKu=}`OXUJUR{-J zq=u`HA0@2)GVO}~Y@Nd{BTJ83?yfk}S+ZhDZ(kYtMF-+F+_$+o9jiEZ(ARJ@`TZh; zF#{jJz2HzvKQ>f3+^g?YRS)X_805bL9m;^bWk_oN&Z{3APLxiH_tX|>ym@B-*T>{E zO)z%}R5k^LgrQv~E+N^{eiIXx5s(y>6OtxKhzQC`i3>@}3QNd|3kZr4L}jEzqy;3v z0VOUiEF&Z)Co3W^lob#XmlBn0sc0?8$R1Sm=o0PfZuJ@dAA(oo36PSN zlNJ#dlaPY8qNtdJxR|K8jFg0!oS3wngp`QdsOqO#I5BC;|vVj^-P=sZzK zQCdP;L{3~BRF)Qz1(iib;B*f84^opx;JHEJtgjEW_4j+Y0D({kZk;+I^uN`ck39N> z_vkv|ePfX&s1XziQiQG`3w`xd zCUhcnfqcQ!1g%a@u!+tD30SQ{g`fdUD-oo@zGT2oRKdp73HP-0J=2tG>`ujnR8XZK zSZ_C2TX`)o^T^ioAa@S+XnpmA5wP#pBufc&U}jw+zJJmjn!Xe$PJKy7G6&=*>q zkRM6Nr4-~{kYIn_e34SrGehmN(+3-KqV!cVT#q)`T`4cSnlW8g#UW~n>=LTeWX-aD zX`L_j=x4F#ve}08sEDZ0=enWy=9Gr6iO%;9bLmtclW2c5benvsp>@RZEhp<;6*f!= zDVqHtIa8t2)6Isv=`oQ9R~x;uP+@g(ia4n`dt!mr&I=nNPU%opKzjn{EC^b51+COT zKTXJwBIH5|^zH(Bb_0#YL3b##As-r`w;beF67nZQ7#nOkB5lH4{e15ky*BLVH%z^L z?}6D``f>I!)3(xOU#z=kz2w zd$$+kvOT0sg^A;r_ie1E3@PZg#4X{F)OV1ScPfRcisnuU4H?P>L ze<@X}fp(|Y2qpCv`%nXYq(Ey8(3t>wLJuN*HpY z3i$|Z?6ouB@ZD$)a#K;Nzy^D#fk)$VW!syhl6xanN1>FKQ~S#$QG+?9gLCZ8k8!D1uT7i86D zoYQ@Mz5bP2;K$p&d^5J~siV%{DOxGKEnxM&15ry|kX`)F4SSDc@9-hg4_;?(TqF3n z#Ql~~Kex4K-=CMcJ@`bj!5aIttf#r0t3f$P&|hTQj+ej#)9#*1Z=Z!7#(snEB}CzhTb zq`mFs~r_1Tz>K9NWa6bLG`chz0}+0HSpn;jJ%v#Q=M%uied@AWm zm|V{hBOX?$#O3V>JgPig$fmCwYrf>>!~z}N+k$2fUfev|RaESXeVT~j^2dv|Jg;S% z+4Xm>7_diwSDAbGleeDZy6shna2(r}QZ)49wmXfJ7c5veak&6UK>c*L4GfGukN7BgwA!Riudc~i}~k%usNtbS4L(w!Dyj> z%Cs1p^NahqoO++*;_Gm0%9#-x511x8CBARmbo7MtoMCG7qxAa--&VXuyY9H2tXyaK zynFOV@o`>Tr9vYOmpv(*wz^^UDwzWlx~%HIe|+YIMM>cz3c>ozKIA<8bTzeMh_PPH zyW;|9@+KXd^K56zrMHGJW9QuK=2~4J`NYXyg-lCgWf)iukF--=J~%dIwfByd>Y4FtKa5n(%(oD96zO+Bn|j^v zf?&-@pRVDytBPU7AyRbfDo_ ztbEpuozE>-R#qoO3=nbbI^no*=!{{ThTdJiw{*+Notq`6jCZw+^jO1OX1#fA?Vysz zc`J8Q&+Bg`KYpdtH|Ry4Y5$wjgU*VEF21)%wjd9fJevNx`FRX4_Bsv`wQ*t;B9`m#9%q?+$pqyd9r!C-rSw;40l6nm_neupHUpJTD^b+q53hY<~)#g87J96xXOkWD9F zYDK@^E`7`D)t%YdrJ^^CijS6!a?St{tuo+uRGtP(=^-qySisA`fNDN7&)IDaMAwyrb*2U z+)v*O*=z2sJ-_$LOJ`H&Ei8Fs{X8I)5t2I~pfBrKVwZL6?`&G*dzhiW~+Z=J;c6R#8W@T%a!CHe221=AC=S=O@aCy<2$Q|#S zJBdyecz(h`?Znzn>L$!xglEIgjqh@~ey*%S@xJnGwY|h-Nq1ST8}>31qqi>}Qqz0s zo)<$rmWPeL{3>8^^NMrhZboTb_L{yxdHnu~nzXnP39m;F%+)AP@HjN^6>0FfEoEk@Drv$CYSs_#ymDutqwkQE zgd1CGyN~hLdhlZITGQaY*9;{D_H2=`UvC*`J-w{wOTTf`l8J65i-~VvYkyo)pg~zO zX4?7#xo7$a4^F4t)H&!oGDqpCjlh^%tre3;D#^L*I$1GKEIiK0w8!Jft3LZxKFIr_MI3&gANpCkabm3>e!xN}+$lmDjdsUT0~Z znLO}7kNFpeO2*FX05kB0A7{i&)z6$1i5YOS{gzSEEZU->~G7gW}wB&wc05H<{n3BtJFj>%PnG zt;L(i@yF5^?d@fmEY#~cYf+DPwlNoi*7(1ZTx&HnaN^D5%NCqiQNPRFL^F%!6P%Yc z@w`Hq$+YQ0yJzaVs&(^@yPK_X|JH@=mT5i?R3TRBOH$0G(c3016MWcIJNL;a$8)ir zF7z_GPxQVjr7UN@a>T0iCs7mkJ+jj(5*bvn@?L&s^OhCei?-%bq&iKC>OJ6mWH)=$ zV|{$B=WIW6Wu4`vmm4}0?=T*UH%;|&ieE{-xL{h3($OjJ4$KmznM^pOaHC7FF)~f# zA6*lENM0%Y%9OtOMqQ(v-1NTvckXshxRI75>kITPW|ngjTV=-8{V1MV{OygM`zw&TvhCH zaQ8dOB&7lJInqfBuic!KzJ`@yn67JcwxDvdm_+2QRW(lzJ=|>Px`(mk(eR4BlCvVB zs{&rutXNi@rzkb-c1Wes?2pl(23~tLYHf*vr%g|rb64Lc&m1!T=vCrk%P6Df@hWEV zCvF-a$}o=AIlXR~#1y^zmsArU?5mLuT-~oAF@4Z;ci$LWAwk*hwQ-O7dX3yywWi?l zZ8c_MxZwD@5pjCiD;^)6nL6NH{ML0T-VvSWXxwlfJ2?LXAxZQEYx{eee*X;~tGanv z=MFJlPrARp(D?Pjy887e?zmKtU#axpB{ly+tm+M`NBwBY(eqUe#0b3@tIQi-cB!@K zQ?XLG^VY3d<tR z7P6RP)S!OMr8RHv4q}!}37vfWu(OY6sjGSLz8z(I21;sWOwCyJfa# zjS7e}mo_aSj|zyQ=^QgozcqQ`j>88!Rc|wVd33H{)eg#iQyh;j zIMsXa%nfTtdVMt6mv`aS@ZcwN7zso4BhyJy%gqx=)Hbx%H!hzsg;$IOd+LD^o~P zeqmEC>@*lP_~SiYC(^F5&NIb!%P;CGHs55eM8>0v!(kT>_Oh9FcYi%;#`9U}0*}K=R7SOroRzD(+eE?SO@|iQ5;7~79F)|xwmIgr*1w_FK%l{2C-B9#>o1Pp z?Q?wc>zG;jF{K~P(mh8+e%z5c!=_J+f9&hp!Gt3wdpk2nxOLUj)mn3)MmcbL|JhXU zS@!$SU0hc8@z|DW*CLIH7g91w)WNrF=T==&H4+j$OW7P{>3Zkt&;+-W@&jI7+i~r= zXruSdtr};RPpA8wFuV7@jA-$+EL?l0y0LiiOOb5Tk4l{JZBD#N62 zzg?iX`eEd@`#t2x^vf`M_h@i0k1-Z^gjd$s541GN>GysN@!iv5>(8^!9v-_Xd!Bj9 zmi=>zByR5%S-M4OV!XMReRFYD4z=V`oST-UI@%|$Y|pN7ZFblbk; z`iM&k+m0*?qmIlyzhV2$fc#ACvJ~?RoLkjIIodUdDw=)ZnBQ~i~Ips@YYxI5STHcr*b z)EIH{?xKqZy`#w+r7Gv;c_e7>6k4%(VpBosbdm7o8y{=$KCbDqOW;QMLdQ-+OA_iC zg-f)bjWW+|3K*vltG0!FzLQ`VMi9$N>8ZpJedkk-vU7tas&|A4&K{U_*?f}Af@i%Z zDp7)+=Y*~vKk?Y=qt}NN6+SSs>7muh;N1xSPu+Sprs{VO=n?qBUU15UAsUSiV!QUu zlifF5q??5^22C!gIKS}r`LsOFXfWvJEpb&t1rM;tBc z;-lJ&_2EE%h4om0G~IQ}LweUw%(%bfrq$(6@;CLBmL+yya!|TQ)KImgl%YPu(;7BJ zy$h}{*z4%=dewx(>#`SaVv;kfP%>=;ZU#H)j;j%1ukvWE~2+aB^I^ zhd@w{bMfFoQdNrwx$n1{cTer{hpFPrr!JdMd@)b6_i~-wKC7P6R+^D|4w60fhP=^t zSl@T0g`!>8xDU&SZlYKDjgc#O5;FbxPO6jct}_jvwyz9WysT{QZe7!9MTSDqG>W2fl0 zZKKN>*~`yXzv*}W>f4hZ_eS@2mnAAHc^^)92&jI)bXRJQPI9*sjdxDj*^00zkA3|g zOJ{CdW%R`Ib`vDCL#<1;m^@G$K3;RReBSVJJ{z|;zV^!)KEJZm)bN6A#I!Z@ zE8li6cz(Ib?D*0bV`n|1A38tA+qvZG`*_jf`k0gN&)n`;U|hB9-Ryp^oiE4jWPChB zE;2heTXufNEuo^}L++HNJw8z}|4xp5vgVdk%7L$k2(FRbURUm7*C?TVE+c1>O^w?7 z=?6&0_2RerNXStX#74>8bw2fYGKCB;~p*#d_BX z&#|{Zx&8eF#&Y8WmyX{Tnyh_hP{Nfav(ioDV?`fl>}_B~F8&yz;=SnF4yD2CBsxDy zIoH^^fBs=v(G!oPnzuWs%#5FU{?60qL4lbnr$1%;-<_opd1M)N?GE3frxPMa#RqS! z$gwu`nc6K~L-pF5N8?xRj1zywnp(50SL}@b-802+4tNlhJ8ixEfoaDQR;f*YyjL$x z*lvwyuM=DB(pIWomwDWk(q)~PX`igw7UvGxsjietnz-ViOYMvm-QMo#q7tyGxAMlx zD%}JZ9mzMlT-v3+uTp82h|{h?vCQovy@tMemJ(XAOh9+_l+peKmYI6+rTXDQ;TOA_ z`=>_Ft)-1|B+v(b(i^yO$AyC>jt1nVzRh_T{2EWvayM9g8rmbim`REu6xiXfz8pQ?@t~?3XNO3guY+G`0Ol`L7q7|EH9tc*AGA2xun=? z-QIpC1div==ss!U9162l~Jyw2YnRO_Hw zw^CJV%egDZ7Oi$0c<_PehWrI9CRkh&tDhTf%Y0q*R$aw=n1_&FX@~LvPZX{N)eFB~GEa)s|e1U~Xq^npCLJH%ODY`PD?9_#?;eisvfK zIa{#t@Ey?w(#v!TMvr;2VU>sNqw5bP$k$~X>d!W5Qn$>=c;G(j$c|!tY1a6Q&z8{# z%qMxx8$WWf=+JHVZVw(IPp?RSVjlCRbE4RY`!e^Q))Y)B?EAEzk^iLf!%iy)B)<4) zy>pp8CxT_WD+vZ;-Ybo@GBGLAi0#h*dQd8@DBoR_|+CF!rg5erm?lJtMkZ zThUWFGVASXiQewP0hfw0Zv;zEd7E~On!EezC1;|S`s&P?E|oW~o_^ydP%|ogq+Ni< z`_%D5WQ*qq?>B4PGjHGb=x!*~Z`I4diz_BZm@de-J>Y93-uqQ}`Qwo@Z(L4l9{j$X zVVQbutHG}1_3}oxgf#yniD5I|X&$<)cv`K;^0xKSJF4^prmLMv4kJj}u7> z|JZBYR_k4j^Nos*SPzvbk-nhoxow2b=`@zW^Fvpz`kgs?{ah#0zK=8|D=yvJx~EjY zJ>xZFwBZLAksgyxUR>YT-M6@Mx|qPkn0+tQ`d_~*X|-@qki)LgHnF4Dgr!r`EPdAt zbs6VRP`sVKjwrwE{xjm1MCnzoi|@HAJXE39>FW;*$lo({)0uILX&%&}+x5mwbM>1# zz-#ApN0obf*GbiSM0FWDCW$EPbo7{l{qpczyDK#|^-*?6K6~Qg%aD?zhZkw+Ip$if z%`~2~Q#-aQFSXn)%S$KpuJTg5Wdl;ZD(VVNO5=wV==)iG*fnF3(F6~&Qm4hj)tOsn zAD(Gst8ScKdqe46XrGP#BUj(*B)0RIW~ZUoBNltQlP0ZgJm2)LB$zOGNY`57hx4Cr z{&22jtX8zRqG6cp+1(E&-#zX=L06&E^14IIKOXd$DHnZ;Os=t#DO#kp)O*_U5UuK% zq_snw4s4J~OLmx&yt-lH4dO`u*%$9la8lbQ6nb0uylVA3t=mUe?u}ZzIdGxk{%uP~ zKTH^M;_$|Cb5!%XmQj1otvcWPfuqv89fmhd !URbI4GRpLbeDv+&368r@_P6g+ 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 zQ1c%l05$&+0#NfGApkZ15du*2A0YrW{}BRE^B*AqHUAL;Q1c%l05$&+0#NfGApkZ1 z5du*2A0YrW{}BRE^B*AqHUAL;Q1c%l05$&+0#NfGApkZ15du*2A0YrW{}BRE^B*Aq zHUAL;Q1c%l05$&+0#NfGApkZ15du*2A0YrW{}BRE^B*AqHUAL;Q1c%l05$&+0#NfG zApkZ15du*2A0YrW{}BRE^B*AqHUAL;Q1c%l05$&+0#NfGApkZ15du*2A0YrW{}BRE z^B*AqHUAL;Q1c%l05$&+0#NfGApkZ15du*2A0YrW{}BRE^B*AqHUAL;Q1c%l05$&+ z0#NfGApkZ15du*2A0YrW{}BRE^B*AqHUAL;Q1c%l05$&+0#NfGApkZ15du*2A0YrW z{}BRE^B*AqHUAL;Q1c%l05$&+0#NfGApkZ15du*2A0YrW{}BRE^B*AqHUAL;Q1c%l z05$&+0#NfGApkZ15du*2A0fa${7=n)gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I z0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8 ze}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*X zK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1 zM+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd z)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$ zgaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t z&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P z2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k z{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I z0Mz_P2tdt$gaFk1M+iX8e}n+k{6`2t&3}Xd)ci*XK+S)I0Mz_P2tdt$gaFk1M+iX8 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 zafhk@2t#WABLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU% z{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe9 z0BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4 zKSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bx zpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1 zBLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJ zYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?W zLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS z=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt z1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU% z{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe9 z0BZgt1fb?WLI7(1BLw&_{^$P(Kx+OY1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bx zpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1 zBLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJ zYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?W zLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS z=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt z1fb?WLI7(1BLtx4KSBU%{v!mS=08FJYW^bxpyoe90BZgt1fb?WLI7(1BLtx4KSBU% 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%0A%fVF6A<}EOX4V zRwrwA62tO?=tsw5keF0o{66Z#wGAuyE;+6e%l#T;4qxW-dtmcWIK%N-Xv$bLgXUiR zZUb4-r{ zHl(2|9ZsO@BuH+b_1? zY4amUjFZGVNsfTz3N&?bJ%QxVNiJPAbhHIoo0B!V8OY9rD%esLGSE2@Bo{?;QY02f zVse&nyc8q{Q*tp^Ae(}HzoY99uuwMys&P$}gQ4h1qP`oxjRc9^9tK+4>EI={NUoRU zhDeS`UF3Ce0b4GD#OO<`el2uWf+Ca^h2P*E$X)^oAZsnM=5h^PvKBZ7TgJji+KdAY zG9y7^)g@+KVj(0ZLiRF|Jxz4f#lkXdUk-yrH@w1@*C1=QvUXdAG3X4kmMUwi5`!kO zXua@FVg@AkL1G}*(dRN44pz8@O}C*BbrLHsF~1V~D>+qZAZyVoSdHvrC_*1iL1MgD zV($~i>KBl`WnRK$I1Q;Xj@WV7hd!VvJ_o@?$}d4WGDkr6q__pLb|!0RM>v+;yvE4( zhZKBF1=-_4_Il`tOn;CV42i|~g-^*5zCqbdkTrf;>z5p(0_3YuRuyCqpI>150Y~wxmS{lAvqbc#wTli z^2|||N)`-I>GlQ%p%9^4#eQ7~*5+yfL_GWQF0XDjz6m=b8D#tlc2^(61>@6XC zOc?1R5l&F{BgmdCcj-rB-H$?JFP?9xe^1>9Sci`FAhAXgb0o1267%3eAI;$ovIVe> zG?Dv&j8 zS=*Mi(XJpdZ4%oixs#GZ8HmrZ5P=PLSci`F5QttI?7*j;@GHCpEjH<31F{=IO&=PN zT%B{UlH*n22JUczKHtDmj*o-H;7Tm+4RqZE*)vA=j=7Fa7hwyslKUVzEknQ?>cTqu zl$hcE9FGOb#gLo~701a?n>Ibc4HCOC;y~h(BxXoWnFg9NHepbPwyi;8FYm(wezx{Qx);|gj6gKX`_O&*wF7ss6wBzCy~TPhl4vh8-nD_N$#BNo%DGRC2U#^ zk}D)RL$XJN>=m&FU29+aoz7l1n17LvP^<{0>L(XFC35AS*E`5*sct;;D!zU@H>6} z0S7rg1d<~nxgtK4`GVvq#)9NPNiLMc8cEDi1L_(=AAIWyvX{Y8kUi~WZ##);m)Q0m z$n=EC^qCF4>Dmt8%9wzOYc3RiK;{5QETO~{S~<3XA4irEQLvk{vat?A} z3~k3sdwe?tov^JH{D=jWRld_nf8lD(=%cyW$Eau+3su?B4`fW)FnOxj$Ir$ID*jfCU$eFBPOa{wIY zeC2b#GO=|%JmUK{zDw-7#IS#ZtWv;+@8AM$-hMlj9VDYvv%xUIDUafaDNJEBnb(_zqdwn@V!ZCAVC1$Rw9+3FS+nH8Qd% z$}vvOW3W*sd+gle_#cox5M(a|JLQoedjQE^K;HD#4<2FDWAJuyox(mT15f%~NV()3 zN$$}pd_N5bIVa~qa&9E|M)m}hy#deo@N*54GyDun(6%Hhr^74TJ??9C^8^f@RS3NNtjC2T-G6Zzly`~xaL zMUY(F(;%_D64QIghv!_7y;x*VmZglvLzs$=9Qc(!-og}gPXO7AM)suf#iyR|03JdX zzD{wY111@(WWK%Ama-eT;q~E zD7h|@^CEi_ecq$U2S1@TKDL2|wCxMB_v;GeN}#(WNX+`@*!4Qx_aFxwWUq7OYX4j87g~+O3e2~n1;>Mp{0x8 z>ChP8LO}K$>IUD?XB}vZOgs42i*bbI=!rwmYixJ})u1|b=Nbrv73f$A{TRzJa0eZC zVKZZO9b_*d*;D8z%64}fp8IBA7DJb z9EI7G%>krYp8j|#;exK_KWx!?7eRM?d~ z$91+yy}~}VUbx=5v)IJD4EP#Bx65+z2vf{eK!YoNkJj&oq%e^|w* zAZ5Z`elU8X_ad@_?5E57gF<3+1zDRGBp+0X+$`G2`TmPCLGnuaQ!Y2hK77unPMGo^ zWG+LHIVrh*IYjp&5I-beP8iRz zjK9PP2y!h6GAAU+*a|0LBK}>cO!%Ge%)fYuO@drYg2WC9)2WxS>%cG>0{!}_<%9nR z`~Byup3G8eqT#J7ku_8P$?f@{x|c{ySrcW76Hxq{QU7*Mjs>}U;a1q@wu?SRzAM` zZ|1|Tzp8Ir?dSjfK7aV}&8@Fa<=3`tt9E_?a`?X^vmBbg7IO4I(dJ)8KOcP&{aR>l z{x8uMUqwG3eG&ayXm0T@(UxCDKOcP&{aR>l`7hB{UqwG3eG&ayXm0f{(biu@KOcP& z{aR>l{V&lrUqwG3eG&ayXm0Z_(Y9YjKOcP&{aR?|qWU_n?Y@eBKKdg1wb0z|U!np2 zUuC}>ei8m(v6;jFX%6^$cKp5^{zv?4v6rdnuQ@zlVPrSAEZ#t{Sd7E_auIK|N1jPj!K&KwGfWOSZ_5HzK`~cxSF3{71tG3bSDS*i1(p0O`?o7-Ur^4!ynly+ zjs+$BOZs;z=v+|Dzqo&wg02On{7d_HE9hQO#=oq8U_p-pV?l61NP(#!v>>dYnrC&- zTAsB%Yx{rW-^#POr@~dlRl?Q5bETWY|FrLU->tq|e9!svP+0GT?{VM7zKeYK`|k5y z+PtvWM*bpC7uQ*jz6JdX1{Np_`WFl+Fc(+~h7^=^m3Cd_Zz*hctKnVC^^L2xE5h6E zZSnrbTkAc<+ge~N7+Mfs5K$23YUtg_d%3r#cOCBo-j`ZjY|+@esdp>ymfl_Kb+0$m zdyaRW*L1I3uW4TSUbDRBc+K|m^{(q(*45Ef**mhJkn6Flg8x0&eOF0Hn|x!A(}8vsAh=9ruoJ2Y}C1NslI8x>AvHA zC-`RgPV~+6&GDV;JHl^Jm!dLAZ<~!VXi0=d6hrW+}ANh{-jq#23E$1rls^F^Vs^qHds^Y5Zs^+ThvUm;g zvU=IPhI)m2MR?i0BE5!rdHH+$*Y)@D_w}#mU*Erhe?$Lnx*ocoIxm;EtFFt(Ktz4~LZCq_#?Og3$-CW&Wfvz5|o~~Z5 z-mX5bzOH_*{;mP8fi9&>2mTpiDs7 zfN}xl11bbm45$=PIiN~F)qrXN)dOk-)C{N0(=AN1=J5{ z5YRB-y2nY6QywQgPV)xzfBm=4^Z%ehX;iu^70N(ms4_#Dt=yyRq6ybTY3^wV6w%Jp zR@QaXnRGwuiYrShiz!Pe8!Ou??`wK0`zX!IFy&O`Vr5s2LiqBeoB93 zJ7s@mJ5#1IPdQULO*uokM0rSgPwpuAQ!rt~b|Om~Oo8wCx$^A>T2umD*NgB>W1hnx)Hi>b$fMh zbdPlJbT4(Ub;BNa&^^&T*Zrn@tNT^=Socczx9;Yk8-uDCn;HX*qm1!J zLr8i^N7K{LUqYXRdW0#$V#CITxtpt*tD29QOIUSQy;W<~SeJ)C32$m|VsB(`Z1=O< zqRvK@ca(Fqb#!xdb#!)Yj2Rz0DfZT=C!?yx)ro5m*D%gME+DRXT#LBLaY^wT;t#~X zj=!1kAmLp?`@|m-M~yi><{M=lrBo^hE?2sg#Z}c+B~+DFrB&rr zzbXGz{;m8~`A+#s>8>iN>Z|Fk>80tTiPVhLOwnx8RMnQ(R?wEwR?#li7Snm@Jay5! zk-Fmgvief`68ds_cYR5HA$@s$X?-!hLSIH-L|;LFZ_u4Vw+FQd@(*edq_jv$ zPMMT4IVC&gVe0eLcd7rRmP)IcRwwP-w3xK-(xNiDW)8@-WhPJZ%5Sb*r5vbIsd}q| zRAH)?st}by<*!n!G^$Rj_Nun3K$TwAQPoRjQ<+p2RWp@R)mmj#g{u0ff>i@F{WSwM zahe^Pof==QkG7$3t}a#=r>m{^(|@Dytgok6>g(%!=>zpG^nLW* z^)>Yk_5Jki^d0nV^-cAy^sV)t`i}ap`T%`neI0!h{qsS;4tg}`#h`vcnxL*h1A}@8 zDT6u(se@EO9fIBr?rdCOoMv2QTxeWsoMX&4PBAVsPB&&5mm5PvOd-J`AtBizlS6Vs znwYwpx|zC|I-7D$d8QerY}1R-Qein^6T`B?{t7E(u45i*wwe>niRNqOGv=%2v*x$v z7v}fo=jIC5^49UzS=M}OiZ$Lk$?CLbS;twwvnE<&t<$U{th24(T4!3PTl1_L)^_0? z!rO+w4gWpDY**S!bNztRDtuaGlEHOu8 z4#(ujHi>H-*CwuQTw45__=gFH5)URGNQ@uz_c%jxe#-Qe1u3&r=B3O{*^)9MZCcvo zv?*zmCtaH4menS^SGFO0LH5uo(NnfgSv&RA)Ok6Zat`Ml&pDQJH0OS3Uhb0IHMuKt zm*)1(JDztYuX%pc{DAyM`AzccDF-QIm6Mh8lna$>mFtuvR0~v7RI#dLl|wa8HCdIR zN>@dz;#8TcVXCpJeARcV995obj7qQ3Y7ClTngmU}X0&F%=98v_wym~}w!PM0+f>_H z+fDm}cCS{e)9Z9PjV?l$pc}1A)cvfxqPwb#)yL`c^`rGO^(p$X`UL%W{WN`sew;p6 zKT;pB&(_b?TlJCp$@(PyRQ<<6=|KrW!-Iwe4GD?}8X7b%sFty>vA400v4>G_{K2@_ zc*VHexWRbQc-(lwc-DB@c-eT$xY4-Pc*%IoXbu?~VhfoSGB;#)$o!BwA@f3NnEIG{ zntGXbniiXOnO2+Dnl_uZnyQ7>2&)oSIjm+_`LNMpbHiqZ%@3OymLK+KSUq!nb3=2A zIn|tO9%sI7zGwbq{=@7tm$g)~G_$m_RIxO&RJM3o>RTFG8e3{ws#q&qyI4D0yIPa2 zC#`3!N392}hpoG8)VB8o(KM3jkeizpjWIif^F(TLLal6I$kvVEp~qr+T-kV?bGe!?8EIb_PS9KQTC|hsEUr7j)#t?j(3jD zjx&zOj;)UUjvpNR91k389X~lPJ9asaI(9n_IW{=1I*vKsIu1DYI_^7eI!-y(Io>#K zIevEBbIgpM8a*vKD|$|JlNi64wlRHT>@mY)4#u2|xgK*h=0eQs*j2IL$F7ZC9@{By zLEN0UxpCv;56Ax&|9kx7gii^b6T2pMOFWtQW8#=GiDN#FDHx|u&Q6}3TsUP<%JP&Y zDVtLkr>sp`ow6-uP0GfU$EgLWrPH>iEl8V_wmxlt+V^R@(>ABAOIx0{F>P1c(zH!! zKcwwUQ)Z0JsI866JU#VX&Xt^tIoor0!;E=V_4H&=I4w@!ahze;~j ze^S3oze2xNe?os)zhA#be@K5+|D%4Reyx79ey@JDex?3^-ZdyKXmZe^prt`eg3bkP z2$~*bFlvk{qtd80-ZEY@x{MEvPmPM;$HwQz8^$L__u#*c!$OvZtO!{avLs}Ah`UK? zQke#t`kStsE}8xctsUkYRwpbeY*E;Xu#aKI%zox@bEbKMImvbx(|TR&Ng+TL3Kvc9pt zv=&%@x0bhg*t&%G3|||*Km0+sZ-ifjXGHyoW)XEF8bky{_(c2_;j&-0zqMbnU$DQl z@33#Q|6zY-e`7ytzi8iPzhQrD-(^2*&N9x%&b85d zqPIq`i{2Q$K6+R5hUjI{{xLBzBVtCyJd3#(b3bNh?5Wtjv0Gx##vY8_8e1dIFHRLV zAWj+AKW=T@vbg1OOX8NsjgHTVpBSGR|6}~|_#^Sh;@uNI#J`U(o=`HOApW2Dq6xPW zJVsX&6Pr(a6Dn)Wu$J^fbNm9&d#chWAW-A#LwRwP}Wk(eH<|`b#e7L%`(k$%@WO7%^A&c&1uabtx2obhG;{zjdaPn?{y1wcXdzol=z1KIzLE6hVc84hLNcIvsQ*sQBQr#vtQh zW3aJ&aJArC!F7Ub23HJzY4i-P8{9D1H@H-A@!+VC!KO_iTSIn)Yzx^CvOQ#X$gYq= zCXLBpQk!0xKAHYDJvTiy{c8Ht2;`ISmUs@Ve7+Ih6R|Xne)uKW~0Ss3Ad;% z28+`&%re3<-txU=u4Rg4h9%oF!IE$3ZGC4gW^-AUw$8R@HiNCZt(Q$@>uYOoQ`)c z7Iz|UOWfAD{c-!^cE=r#+Z8uCepCFZ__Oin;u|K^N$^Z)knk+Qe{}uPZAaH0-EwrB z(Y~YoMthE~GrIX`L!vs-l4wpGlo*y6ni!NAocJj5Vd5`|cN3o^K1;loIDSm#nCoMT zj4eNQ(m1cAs!1i2N+fwEc_&p$Dwk9_sYX(*q|!;%lWHclPc|pdNIsT)D7i>VwUo*! z)l;gbbV})x@;1dI_1BcbsjpIgPbrf6KIL6XvD8l~B~t%Md6V)g^<}DCTDi1FX^qnw zq%}#~o7Om8o32mqm)?PR=Q`SwrH1*2V^HVqHxaSth{VT^U_hZiQIf~p*IfZlI=giE#pL;v^L9RA$VBUbd zYk9ZxuIAm!yPlUm)0%I~ACe!EADTZje{gmL75`&8jz8CZ;=wpz_;8uhG3i=S_X|x(!2X_nZ8ypclJh*Fc z$6#x4aB#2Se!mEfZQZv`VOVX!+2F zp_M|bhx&xp53L&dAhc~*>#!DKZNhej?F!owwms~JuvX?a<{-1fJj@(ro@Jh6UTB_e zUTj`uo^MXJEVWFsEV8V!oVIMUJhAMz9JB1TY`5I9?6X|6{A4+9xog>FxnVhBsbQ^Y z?PFbJTWO22<=d9nmfI3+cH3;*8rw+QYTG1Rx^12<%C^cj-j->bV_R%nXPairv8C9? z+J@O8ZDVYq;e*08;l}WwaI--bJ~-SEt`DCdJ}-P-`1$bD;b+3ng@;B2M+}XKjEIN` zi}(<6Ra?`Z8o4oYN#yj%?UBim@sXP&S4Pf?+!UD}c{Fl;WJctK$Qh9fB3DIzAGtU( zEwXvko~Rd5FQXberaJdI-#M>4w>a-R&p01B|8{fk z=O4~v&P&c3-)?u_aK3O}b3S*zb-s2!bsl#fb*^!~bRKX%aejy{KC;BfPtk9pJH;f$ zq{h^Wtr=S-wqk7c*om=)N0k_*7*%9cL2T(!_eT9W>aS6?;=JR+<09g$anW%(aaZDg zirXG{D(-CD)c7m$m*Q{6w@K)n&@rKPLfeG)2~nd1M=M8%Cq^bZ6aP+}HfH7+&#?{0 z)*RbpY`wA7$9^-m>DX!GW{sOUu2)iE(#WKyN$rw4CUs5nPim3WBdJ+Z_oU`Y0ZE;b z7bee5K9hVd`BHMNlzu6_Qktb!Nv)gOIJIG_f2vQaM_Q}2HfgQX+NDiRUzk2SeRTSg z^!)Vw>1)%crDvs2PoI>&C_N#4Z2GwLjP#Z1hK%9n6B!3Hc4QpQ*q(7b<8;R6jExy5 zGjy2?Gcz;SW=_k@&zzDuIdl4?oJozcYG>8W^34j!^2@4|RWr*wt8aF2_Ui0)*=w^` zWv|IznQfmEG3AFTd#2o+dUtB|+|s!aenP$@|6u;}{Ac<1 z#@rp_FBJ;S%)}^#t`Cb)Gs!ov)s)o~w4VztzNOM``1}9o!!Xe>*^qA7YS>`--q6{w#W2^f*Ram8 z+3=lVl3}f3j-hl=v%!r9w;b#<*ne=qV6VZo2YU|wF!m;p|HbYN5eXro#xf% zHRe_3iJIs6sXXLY%iosYEs;asTFMOh(^7nh+mH%F>R9_)m)f#z z=WPdV&uk}c$8BeAmuwGh7i{-!Kigi}UfberzuTVMZrZd%Z`eNA!onlMt>L!tyzt!c zjp5%$L`RH@h>sW%kry#0;=721h=K@LL>+r=`^U(iBJV|Bi@X|Hc-Y;@KO$d8{y&D! zvCWZn3&XR=w(XfcwrzIMu~9(<6+6{Yg&kIR2hFk0*tTuk_M|dC`wy&-@3pSyx!3)^ zkbak5mVTB#k)DyBlQsgIgN?yc(%Vu9{3)FzA19wEPs@|?z48z8L5jhO0gA!U7>ERQ zgN8v8XdcuR>ILW&>1KQwS)2?Av6Qh zLLkJ2+G*NrdTWMgx@ksfAWcWj0xhC-YDejM=|<@O)s55l(+}5o*Z0zo)Q{4S&=1yk z(D&B&)%P;=HpmS!!(+o8!xO_T!%f3|!$X73Xg4N}MaHehyGESpor!H$m{sOR*1FaP z)>_tT*0eQcOpIGPGD7INPyp3oh*%sR7+i*65t;)XK&Vli;6eh#{VF=d3d{_(% zU^T3R5%N{XHAe#{(dl)PT_o3h7r~Y18taY*a_k&m8+$XU;C&u7nR&lsdJQWLrBse@egJn%4m4}7b;)4xv+>Ts|oQ>Rx9FP2r=Ayr%<*`BWk@2DN zG4WyXQSs`DZ}EDGKXG9~l(>*+iMB#}p!LwsXd|>KS_f^07MH|I3QH0tMI~rSv?P>_ zCJU2r(wp=pBS~!%NghfbOCC)gPo7AANPbS9P1Q=*PS;JpNWV^hNWV&dPQOd9&#cQF zsXSMCsnVUd4!;e*8NUU848I@07QX|(2fqP-0`DN2h%oU1@j3A+@iFlUad7?v@=Nj+ z@^kWe@?G)?@+I;U@>B8$@@?`X@-gyp@-y-&a&u}6Du+g((P&f}gGQpsX$xpd+B}+o zMx@QBN$7_drx<4$`x*Nfdl_38hZ&n0AX~*=z_D;naZYlYbLrf*-1Xe{{3iT4{4V@2 zybk>Dynpz0`FZ>W{2Ba({7L)~{673f{M!7{{}n3T1ucL{Kxd#IFc6ps3;>z{9f6iW zBVZKJ8fXL51{9(y(MC~992EP-0dZ1{h|}VTxQ3({RDul91oA)L%+Z=~Q}# zo~-BUIr^#k$$Gk;sb}ep2D71>@uT4%<7dMs!w!&k!>!+qleBhw@|iA@}n&}1>m zObQdrBr-`&0@Hg_)V$H0GN;X9bI@!zC(K1=huLazSX`C?$UaL)YkO-~YfEbvYiDbf zb&=I%J80wCAe+Rt$-c$D&0Yjs-~{Y~V=xnj9H2wy&^lH-RymeAC{CKw=R}+um)d1^ ziCmCN=aRcDE~`uIs^y;Tb|WTaA~F;)AYw$0%taIk6PbXFMEHmh0TCrK3*q=!KCbV( zuZ6#^zmC6}|Bvsdue!g6zqY@=pB{J+xEi<>xEr_`xEFX7I32haxEv@CJ_*W0+K?_J z4uK(c$RDzYgrP+tO~@Nkh6EufqzG9;w$P-IG$aUz!ol$A@QLur@X_$*@R9K0@Uift z$b-ns$cM<6$dAbD$kWL4$mVE`SiRVvX#H4KY;$aWd|o_1J}pj)Pl%J_`1tHNE}j=( z7$?Lh#iz!bC)y+w30VS6oJx#FspuGVB02?~gfh|jD1Z{s5$IfWAvzNsi%v!vXu2ew zEKZgr&n3?!PbE($vE_hdFnN$FF@RMT{`bc=NTbn|q>^sn^S^zZba^p?z~%+}1K z(pTl~%EnbKs=8Laz`w^o!(Ye0!{5eV!(YH(!hgb_$G^f02ww;uqMJB0e_j3`ay3c^ zN*l^=a!X2WN0R0-A?bL<`X@G%pRN{igMzcc=HH z%jh8e5#u@I72^iuI^!ne3B$m=&wRmr#C*nl&V0#y%zVmxz-+`4un@MN&EyC z;#}ce=hWxU;;Om3xU>0_`SbZEzJM>}bNLKDjc?%h6ZiodKmwKlW`GM=0RkWaMgU5{ z253c#MK?s(MN7o1#1-Ola1~er9s<{cSHLr18Mp)71O5-(3SI=yf$PAt;0o{vxD=c# zUmzc@7_Mrm`UAC4eTDv2O;UAL4Nx^vRabRa{e?b2wN*n^V^qUbJyfk!{Z)fi0aZWM zTj(FvXXq@1LB*Pk2G)c$hz8Y6(xTd=c7_hG1N1_@Ot01}^)(F%Lmy)!V*_J7V+-RW z;}audf=vz+-*m`aWnO9CVqR@tYK~fBmWXALb*OcXb+z@K^@DY>t;AMnGuTqL3R|%) zX4`4=+Ys9>`#$@A`yO~BTn_Jp_rr_e)9_Y!GrS4j4KINYz}w)R@H+T1d;(qzs~ry= zj~ovi94Eu+cj8@6SIiY~gfE-7TA{nF-*^HDUXONx9 zLF5V&NA@C@kkiOye@Fj#e|LW`{|J9uKiNOp|F8c`pnC9Y;Cmn!_#Jo|XdnC#SP=?` zDnm;{k3Kl=;D%9 zC96x8mMkw>R+34UC(Dv&lb4g#QudTLl})utw@q(IZ~CuZu9az+sh2sF*-*N%^m*yj zvT0>s%d_QQ%J)`|ubNj?lTeND6aNkW9bcVLmr##Ti*T3VCkBW?VuTnXek5+rA4C~X z8A};PnM@f$`InMU$)ivyddeuuV9JpH9;zx@C2b3>oVK2}nzn+bq}OBqWHexYV>D#e zWxi*=Wxis*VFD}>tAbt37I3&6KIbv#Hs=B79_IU(8?6A0z+)6<`4>fz3bwhyxpeD;Rt4J!JN~vP1%qmC~RasSP6`)F~XsTg(Gzk(~_TkvQ2J8W>692*?39KD@ou5wp}Ymuwem3Fo9 zPV~0-zDEXl2YOq0n|XV9yLnrB-~I<){6%Ve-G05_=;!&xezRZdr~9e?1^)d1>PU8= zX|PVPd9X#WRj__=Z|HL9MCfR!By=W}3vCXa3LOp|2yF~q51k8b5A6!w2`vccg%#n4 z;rrp|;iuuZ;dkN3;V0p{;n(3uVP&K$vNX~^+BDiJ+CADN`fs#Lv|F@uba%8_kB{fsEQ*~1HQoK|oRhWvUx~2Q4JEpg!>t|YInrGT(?qx1!9%Sxh zE@iG|E@y6Kc9gy^{ZQJcY-ZVvGEhsAwEeUbv|}`g-ibMaX=Z+8 zHfGJ^ZssTWtN9`RIsSJ3e*S6xN&XPQG2jqz2G|4a1#SaJffK-C;2dxOxC~qc_5*s+ zaq%hfF7Z+E3Gq(xMA;bGI2m0gm(gTnWiw;~8DBPEHd{7Q#+A*H(d8z2EyZEgCe>oq z5!Eu)A=OIN7S%!3F4cC`3e_UjR@HvZDa}RAWz9*=HO(%~dCe`&UCj~AQH@kru3xH8 z>#OvY`p5c)hDL@F#xcfm#uvtC#zm$|Q81I$`K|edd4*-6HP1TBy1+W$y4!lo z*35p&_SAOA_Q>|i_S|;Oe%)TbpjkoPf(`{e3OW~bDyUb`w7}xn?D**T)hg6 z?ONsf>8k6dx#{kCUb=UVSLy}5)4g-OO0Uez@p}AK{!0H6f5guZ^a~CP_6qh7b_=cv zt_VI4{Rq7YeF{}8yc>EEdLQ}|`lqmZAr^WU`Vz{9eud;=WwQ>aMXi!nRqCF)mldF_u%th`zosVcAP zN9aQ6Mi@r;MvPLNlsLsp@l#@yYqTr0OSJQ}AWu;|}g=#%utz&Ow|6{{!4ebwY5AApD_wA4E5A3(>_w0iTCKb#o7+o-| zV0uCSf{6t~3uYEfEf`TSwqQ=d$b!iQg9~OjzBqn4G)}Ek?Nm8+&f~5luHCM~u7j=v zu6?dkuKli;u6k~bdyNX7E9_8Mzp!gzr^1?rO$(=nCx><6AK~BOU*TN%XLwa) zZghThPIO*$Mr=}ST5M))a?BBj<4D{UcgLOav5BRL%0zi$VUfG2Z;_#BUXiG1eo@<^ zf+9r`vq)XUC?XY|E;&uue@7%ukudiq^kKnXQrH)&&-Z0-~OaKTsLGw=tfE&2ic z1TbKS=&rc8WQ%OA?1*fSY^Ut7Y`tuQj4Ls)NYO8;!nyH(pe`oMxt?_>40gEX|JiVWxa)O6jwqNhbSie47oE!moUlI)l2lj5iDrhcY4XAOmF0fCxFSLKKf3&ZU z!3FjLcfkTjHRo-Y*!|P{-P_Ff!&}?ez*omt-`6tGDgXp`2XjGnp`uV+s4CdzY(s2!Vo>q$ z;*rJUipLZWEAC(XxMWOfY-(8QZ%UFDrKy>jrPE8NlujzWP)aHzlnpHJRlcEOYsKM; zofQ?8A1d2bv8u#XlBx-W@r09<)09&b2lFcXGCPm^m)}!VU(S~k)HJnI_f#J;Kt_de zi-l+B+6$bp^MOknR0V(ihibKsw2365MNxiiPGUwep_o`aF*PZ5By}hyPyZLvmM$#4 zT-v^DZu!viN#*0quT3)l~cQpZ#3G`F;S8Lf<4 z{=MQyg}oB4tW#yG(pG)pw3Z9i3Oi&UA2=9X96glK7ORUjX-?*PX^*nAm4N!TskG2k zd@3a<6_u73lozgv9!tQ*1;zGaQ@Obut0aXT#qBHmYGtKE%Q{qcuGHE$WjANHWVdFw zWw&Q{WOrtFWp`)yWcOzGW%p+fWDjN!We;bMWRGT#Wshf1WKU*KWlv|%WY1>LWzT0X zWG`kfWiMy1WUpqgWv^#%WN&6~Wp8KiWbbD0W$$MnWFKZ9WglmsWS?fAWuIqXWM5`q zWnX9CWZ!1rW#4B%WItvc8!{>uK&{>lE${->YEs$(^< znpiEYHdY6#i`B#GV-2u|SR<@4)&y&cHN%=?EwGkYE37rv25XD8!`fpVu#Q+KtTWaH z>xy;5x??@Co>(ueH`WL1i~WoB!}?2*dA;zwh!Bn9l#D^hp@xg5$q^-3_FgUz)oVPu+!KX>@0Q;JC9w! zE@GFk%h(m{Ds~OKj@`g+Vz;o{*d6RHb`QIcJ-{AfkFdws6YMGW4112fz+Pgnu-Did z>@D^VdyjpdonI%fVczV#NZt)f!ygb! z$8D15Cp69*lvk8@IPX;6$-Fe-7g3SFE59qX27Lg%DeEu$k!Xwjth}XSvUX_RguIt| zck^E5J<7Y6cRQ~kv19&%{O;5q)Hd|NbQcq0HfN1z=~+5fO^%b}=A7cz6W|4{6r&W= z6_XX?73;Md{|g{@T0+jw$;P<0xB<9tc`b3D@~Yvmyt=qfxazoCxbC9h)szrh~4wM2|u8Zlf2_O>_sH!feIr#j>-k zEE}tU^?+^QAe`#l_FO&p8uu#q0+%J=2mk?JAQlJ&bOBGm5QqdHMDInDBx5CGB;zIH zB$Fi*B*P_b6|)pX1xtZb%u|pQ^A!se8Z}3|Rl7|a)%7ztj0P*gVRqZyPB-j!xEJ~g zf|+(tmn6J%`=Ew4fkVcdGkw~POq;{l^q+X=9q=_UPX)38NsV8YR={@BI zY zeG|=;%$Cq4WXS@_90^;pP{NSRmt2&$Q?yr@6%vJ9fhYHlqkv- zVuem2QrHwxg2$F+yFyS2x(CAyTZNLQ>wb>j?U4aJ5MgUdM4GQwHn z%sAst)LHI~yJK#zJL*oji`*f%$Bnqn;Zv~#v8wpu`0{vVd}Vx5d`Plya&U5Ba(G@E zXUBPQFwTkdLCfovC3Ma#r;w(59&WwxW%5lZGN*s!F<4SOH9E7VR>?Q0c zj3f>t4kykc4khj-*3WN{KOrB@FV6Rq93&ShL2{DZp3EfGVZJ)Q0q#^lkLr^b7R!^v(3M z^h5OR^u6>W^y~CZ^nLV$^po_h^b>ReQ^YJ{mM~|qX0z6_ma!JGwy`#_RsU)zYgj8;6|Ci~?W~Qg6|6R#mYjB+zTEEI9^9T>64%Ww;KJPd+-KZ@yxzQaykWcs zyb-+myf(byy!O1#yaBxKyhgmHyg|Gcyk@+Hyn4Kjyq1EAf^~wef=hz^f;EEeg42Ta zf-Qm#f<1!Of{lWmf{CJ4qCKK|;$Nbg;^yMI;-8`#;s)YI;#%V0qGsZz;;gv7#4Axq zq7qbMl-ML`iBEz^^pc1qEU`+eBne4I;*r1-m&7cwNQx!BMC^i^e^?34O0x03}Hjsu)+An_{sRu_|2Fz{W5(w{WSeBVWw%8$(Cal zv(;w(X*Jk?+ebQM&h^fv&YjL}&UMbN?nUl{?*F+<-D!83dz*Wud%b(FyVAYez16+S zz1Y3leb~LseZ;-py~M5dseDQw;ojnA5a$vP5)Tt6 z=G*gA`N{lDemZ|QX)$RXX*uZv=?JNjX9sCL={jjU=@{uaX%R_H+DlqO+E3Dw?vpl> zwoxmoRn%qFFf~Q3pq5dKscCAAnxQVImQqWoUuli#`SeHh`}FtpYK%|xd-Nal-}GPf zEd43{GaaMfp}(Skp?{-4r2nCRrN5)EVlH4^WZh()W!+$%VclWfXWeFUxo1v2l1u}rVB0z8VMT+zX=)(YY5*6z6+WN z8wzuRte~2(g|MaYhoF`4r{JSts%W}sjp%@Al(?ICn0TbPqqw)YyLh;`zj&OulX!%9 ztay;PiKMCIkmR%Eq-3|`u4IoSC%Gv(DA^%7CV3-yDtRE;COIeBBEckC$$QBY$zjPZ z$$7~O$w$d%$uG%q$veqe$$H6i$sNfL$tlTc$q~tG$r(vsxm%9Nx67}~Z^|FayDGXV z`YJ~#2P(TLCnzT?n=9)pZ!3l?Ybx6*$0^$@n<=X)J1M6r|53J8j#k!CHc?Jd)=_p< z4p7!rc30L@HdXFWSE=`_H>o$O7pu3bx2adFr)uYF=V=vMwN|Hvw5PRCwJ)`Av=6ke zwa>Lrv|im=-C^BH-7(!R-FDqJ-B#Tj-2vSR-G1E>-ErMc-5K3m{d@f&!)(JG!%D*% zgT;8%Sl3j;RMS+;RNsUde;R)nUzlE+YMYyxo11Hyo0^-L8=LEyYnWS@=UEn5=38c3 zW>~IS&RH&4u3OGqoYn&CCF_3*bDPy}wp;8DyVLHn*MRH7|G+dy!Vz)ochqq`dVadI?vL)*?x*gD?jP{0A}>|yLvd|&)P{9622e1H5z{7n30{A%J#f|SH13CaBA zykuUoGrktS4!#AxJAMeh1O6NCD{eS`G=2a+i^Fhj@E!48@qO?k@q_V0@s05eLNTF; zaGG$GaEx%0aGt;?GKfSXhsY(8i2~v|V&nYE{NCipq&DQ{Z^vlO7|0mJXvJv4Xv3(_=*$?-P%u|A*D=>JYp^IR66-DNFY7()6ANQi zV}ED;%jwHm#aYi;!&%E2&K<&)aM?TtPr{qZTfz(QoII50;#KfGyb@j+FU9lo%6U;< zJHaf$XF*dTML0k>LpW17N;qBkR5(^RUpP-VLHMt5s&IsmCL{^z!hyos!r?-OkRTi* zqzb19=LqMCW{HlAj);zm4vXfAx#HPkg1EV)g`|tLy>za0m~^;wymY=4Cv7bqD(xs8 zDeW&EC><=#lg^Nikam(bm$sDlmiCnnk}i~vllGE!l@5>(mJgHkJQt&X01tU)K=5|(07MDX>-Oqi=$`0a>F(+- z>+a~T>h9@o>u%_7>R#&Z>mTU9>c8o`8JGsHVWZ)YVUOXc;h^DwVY^|sA!Iyd>}2X- zYHDg>YHsRbYG!I>YG-P1>Tc>|>R}#W?rt7w9&GMw9%Sxs?q>eiJlx#RJk(6GFfBL> z%aU&)S_qammbaFNmiLx-me-cMmiv}_7N0d}^;!$9VQa|hx8Afiwbit>u+_3PvDLNJ zw>7ravo*IN_JloT58DIwh}~=N40nQ?!HwazaBH{)+y!n9H-Q_%EC=7gaqt{$2h)*s zppGMs!;XWF*3L=JvCbdP&(818Z_a;QKb`-ntlfj%z1+h+13fc5?K}ieFAv2t*)!GC z+tbn0-80RT=jq_-=c((N;92Nt?dj?1>KW}B?D^L-+cVR%z?1Lk>>1#h@9E>26uqm-a<{6~4Hy*f%{eBcKcz0>*$g z;0$O2j({rQ2^0kM0ehf%Xm*$ywuP64mxhfIb7Wg&M`U~CQuIpnPwZQ)di-zfXRK!Y zS1cR59)B3W6~7&S5`PeX7QY$46TcC^8-E(dC-M@w#I?lZ#O(wt$xZG}K1n|)9bD$f zQ{!cLKAwZ;;q&qH@oc;nKL@`MKNZi!&%+Dwt?)DPTs(-EjT8H|R+LHE|nx)>Qex+8Uy`%o7)}`gB4QOAe7pQe;@2O9ypQ+EN zZ>f){jcLEAO=&Nv|IixJK2cv$KT;dfYSLJA9)rdpGb9WSV+>;?L&?B1xC{|P!N_L- z3@T$fgUui^W-yqHIgBV{5@R7_EMoyf%>Ws*83YD}F^$1uXqgc65c43D&g#r=!0yCu z&+f`@$nMK-#O}@R#cskL!fwv)!S2Ey#Gb?%!P&&w%Gt%)%-O;j#T~;f<0iRP+z>C$ z^YQlcHu84!uJEq%F7Tf6Zt?E%PVzSK?(lZ-PV)}%j_}U$4)TTxMZ%EKErf;pgq6Z| z!U|zZ_&;G(s1o{xaUmq!AT$Weg-YRipkvgRs zX@Rs%nv@nw7fFNCWm2=$CQV4g(vTFEj*<_TkCu;-C*(1CL>`rg<^2=~mH$(2Rc=x0 zp|#3a%E!tb%B=FLvKn+!`B3>ld0n|*`Am6Nc~5yq`BiyZxlj2{`BAxBc};m(c|mzf zc~SXUc}4kKc|&gcQKf9QVc z{^}a)8|c64>goZ5&~V;x*>J&d#&Fhf$#BsSGX{-UjAKoMO#@9sO~XthOv6nRO}$Lx zO(RWn%tZ5C^Fs4H^8#~k^Gq||3|J%<&?2)4EpiLrvd8knlCxwjm?dT{w#Ka^ZL@77 zY`ttlY~5`=ZNqJCZT)PWY(s7RZ3AtCZNqG1Z0&75Y{mApJ!xNR9|=!{$H1fDaqvud z0Q@gJ6`l=Gf+xfC;PG%@Sm-EmlshUMWscL1GmdkPi;hc<6OIdxQ;sgq&dv_b+0NRIK9c&r|s zXPHOuiFsU}5>Lis@DzJidti^p6ZTYi$~a?b`&z?1T9^f){#Jbur5kI_@= zq5CMl1HK);!@fhlW4_(KjlPqhAfvP|{uriPdlm$|OWr4MUaG)p<4Y-5XgSUd$flkn42PG8 z;fO6_iR_IWj_isYh#ZRCjNXsli{6dih(3%yiuQ~*h&PLOj5myTi+_l}j(?1Qjem}R ziC>MsiNB4%ic=D_1S653ASd1?z9v2;z9e#qr-|>0*NHa?Eb%h&K4C5Kl>|!cNo7)= z)Ff5O14&t`X8Kt=l_|rQ;EVB<_(J?ryayk~NAVSSDZU(!;@x;Zo=dn&XrA9Je_8&@ z|HiK(FDI`fo5(XMOUOm!069k9Ms|^xl2P(9GE5GWSCAd#67phll-!W|FKslf9j!C1 z53L8SFYOz34y_lhBdr5%IBha*6m1Y~ENu*JAZ-9`JdID^z$j)^F|3Rwj7o-?v4UY| zEN84`lrYvaMl%pbh>>D=7=?`03>yPxgc;?G7^8?$!FbI)$2`Nl%Dlup%{vnR7hvI*=wHkmz~J&sLePh<~e)7jJ5W7%`rW7ree!`P$PQ`j@vGdNQ@ zH0}!Sa_;}Qr+B+~XL*l#=XpnYE%~2$_4%#&wfNt7E%-U!FWw*CAzlrBTYe{gQ~qCG zO@0IZJVCK=lW?Q(yzrUurSOCBh_C|qB0Md8D9j442|o+J3HiVS;eO#g;a%ZT;Z5Nc z;bGwk;aTAs;Yr~~;SJ#};V_XzBohH5mPjfRiNc}^QKe|T=%VPd$SzihZDOZbBesZT zVy*ZeNkj08v?h30+7EmyeJ%YYZ314GV$wI#r_!vn1=tk)B7G#S1D=)E1=ZkIX*2MH z^tiMon3Gw|5;^U{;jd(!*T=hCmzOVZllRp~2fE3g-MLONDHUOrhq zL0&9R$usg2`9Aqa`DghT`4Gh~f5X&2R=Fp5cMvso{p9#E2Si8)unjn`W36nr52jnet5YO$$u-O>a#+Ghh~(S!ShK zW0sjAv)T-rrDl#FX4vM~7TEG^Q*1Qb zOxqHBrG1rsv7H91U?H3jQ(y@!gK@ADX2Eip2$NtCCcs=c51!<~G`jwOyoj>V1} z4uTWs#5?~uuR5o@=DCP2oNKmgqHCdRoa?#ky$f^YT;E+a-4oms-ILu0_ju0*&v#D` zzVzIjf0>LE># z`<`Yhv$UnlIOLj1#-mm*7M$T)brDG!}HkF0lDM(M3>wD{a<-6f~>AU2c6QBghf!%={fn9-}frEklf$f34fgOQ;fz5$`f~Nu{ z!E`VcycfJ3yc5g|Eewqf(L+;0)DSH+BQ!Ha49y7yTkj#8^gQ8 z+rmi183{&iMy^E8MNUMnNA5;0M6N|{MNUR;M24*`ZoGC`YJjwJ|aFiUOO=$Q8V#3{wrQL@jd=C{!gM>qE4b#qDF$B0217UAi+!g zgVslTp*7IZxF0RGtox06OWMZkk67YlFyJ&lkbralCP4Fl3$Sz zkS~)X#IT4#q*oX~tH@cE&lzE=HVjoq3aai`j)W zoTXt4+4I;UwwA46bJ$Y0ge_oyWaBt_oOzsuocWw%oU@$coHLvgoGIK5+;#tzRCD?B z`2G1a`J?#5_=EVf_=EX4{=fVw{H_9NqKBZDpr_!N@RRV3uqn_Ss0VZfdIH0N=|C5t z70?zK3ycQ313iF-KyP3O&=;5rj06S)^?~-l6rdN-2WSAi5Ox3t0o{PcfJ%glu84f% zu((7V7Z-{{;*7XhY!-Kwh(Rtm2FwEmpaz@_&ID!PSa2Fh1?iv_oCD4UM}i7)I5-g$ zfgh!2a0Cc~Q$Q6s12lp(a4M(=7l7lz`QT`f1>!&gI1D6$gFzcO0h}eDDW5K%CZ8jp zDld~a`tei#Oa5Js$#e2D=sI)~ia`gVDyRr5h897apk2^$=rXhqIs{chr=T6sM(7;0 z0=fWghW0~8pu5mbC6ZHf=RX;_K)8qAd`f2)E`h|Lu{*nH#{*V5*zLUXXFd01H2SXEM4I^gwWB6tG zZpay$8h;wHhIfW^1w$i_IRh#hfua%}KNEzX-`~fh`tGGizIGJ8N@m8*3|TcWVo42WwO7QtJ|HrS*+f zYy)gco8AW6v^J4VXVci!HonblGuni<&GxPK4fX)+gPm{$cEDcP3P)iZ?1AlY7%qkp z7=}?;>5w}l4yi-oSm9XiSn0Uqxa;WV1YA6q$;EPkE~ZQ1(z?1yI4+}0;!?S0xcIJ4 z?z!$6?kVnR?wRgS$Yg|q7!eB+Ln4R>As|x_A0k19APW%~VIXuwkLVCKQpd|dMkC{p z5r`F;j+l{Q$V}v4wz5Jo);E{ zfv`C23nO7~_-t4j0V9b>I1-J-B9TZ@q&O0fpplP}hmp6DPm%YLi;-86Cy~dI7m?4A zH<7QA+OfaUe`3{QwPJN*bz{|I4PwOjqN^$gGA#5lu#w+ zphR>CIt~@1!%-2+K|SaobRIejRiX+Mhw@MfszOJhd{m7NMMq`Gu$}D?b{;vE*xwGI@{8RiD{9F7-{0ICK{6qXrf|KYX zz9POM4#{7e--ptQ(vZ@e@{8Pr(vk8Hr3Ixr`X{C@>~1pNj5frS7QU;}!<2xtKv00Ra<46Fe105`w^SipQBAK(FazyVAK6o4F{ z10ui#=tPS|i^Yq?RpMHbnv(94P2hI$6u1aH4<^Bl;977mm;f_i6kG{Lz}4V>a07S% zJPPgumw{KoUEpc36uba#0gJ#j;9{^6yalGfICvP`1}+DWgY)DI<@4p0@+$cv`4Rb1 z`5*at=o|D2s-fzo%0Z)5KcPXYda68CJ5_sCA5~k`cvW-NJE*>DluD=i4!ws4s-~!h zs3xdJs@_0#RE<^BRkc*Vp)533)lu~e8mH=_YNYC{s;laz@@wLnpvI~3YTTNb#-{OU zT$+?-hBjZD(w1n8w9|D9bp+i4oj|YCYxD-aRxi;*`u`;Oh8hOg5I3|o)-^UXwlX#| z);G2^?lihgc9YlSHbEw*No6W9c}$zlYs_2C>&&an1?K;mE6vNzi_B}yOU%p6X-mjb zXh~X1EX9^0OUe?kpq99$zjdBg>7ZF zsLg9j+Yn;Lw#??X?Xe%Q@3rr?uY`BNhvB908u$==5IzQ1z~|wk@NxJId=}mS?}C%? zUbqTg0k4Nw!;9flu+H(=@x<}Wao^F?$#$}wL6^_vars>lSJ+kPYUNHL%aFxL6|x&S zj~qtUBI}X=A-j;R$RXq$vIZ$dHX#?03S=d+2U&s?BPWovNExyk*?_DyabSN|}7KmS1g z1b=h?IR8-pNdGi{Z+{>E7=KTHd;buBv;Sa}7lBWK&w(F-KY{mwUx94kXW(PtZQxCy zBDgqM6|4-t3cd-x4E`^a2^EIWP%M-TO$6#X5kAFUCs z6RjPs75x+W?~9UX(^#`u<5;6uk3`2r*F^V3mqe#T`$W$~w?v18HK9#d61v24bQx+y z%TO!22rWj}pb>NhT8jP;wV)}~fi6Ygqfyk2mY_>e7!9C{(GcoG!)OLwi58%KbTwLm z7NP^u%H-nY-y|&sr>v=hlqcm(xl^_jl5(XSsq?9Gsn+Rr>GkRAnQECjnTkw#=168& zW>02!=5S_T=0s*w>66kIrIX4gm+{K@W!$n)<)6#Hm9MP)i?2Z#LdfB36Y3DM_&@jt zgocFQ`1*uGVwm`e_<=ZwGL5o;GLkZtGLJHsGK)f^FepK7SsL{BQm}+elsvemQjP5V^n8;XZ*vg!>q+@!j!Nw>=e6- zjk1@pi`XUXMeK6+Vsm; z@i*|-@vHbKe+_>zKf)LDx9|rFAV3Wyfkl89NCD+Q3@8LbKp0pGQ~^?86OaasBCE(E zvWYf}wurWgH;Pw_H;Z?O*N8WWtI2B1+Q^=PIk1)N6ZjPDD*Fq*1s{VQWSwMxz&^6i z;Cry83Ht|hLFE9GkK#<}y|L^s}@=O(y&ddGX4c&mB;^)~j_^EUE!@z(eD@pkn7MEZMw zAa%VBy;RcEQ@g*1=}M#=&~QCBbFE zrNMW>kHNRW3!&qoouMnCOQEZwYoR@%8=?K7gP~)go1r72-JyM%85$zT2866aD73~mh9c>nE7wsMG6Kxr79&Hsd(0k}v^aFYreTkk%Pon41=jb`~8hQ$Sh~7tE zpqJ1q=r;5bdK}$~+Dq1!{I6tv$;Ogp$tB4v$y%wpsp=_4DwK+*0;!9s3#rcOPU+t1 zf75-_UDF-XebSrLbu&NG%`z=Btut*htul8r=Q0;ES29;K=QF1=*E2UWXEHZ3XER$$ z-zq-8*vqU=}skMiH;f6KA*Iu+F_zL)8qGpAs@=9fss-{&P2`vb12<-{Y2=@si@*m}^DLe{9(fyyjHvwz&Iu?fCwrScl zX`3c#(zI!sCUKgi+0!Ilk`^x*Y_QqIzS*n-8?kS)9J>`uuyKfR00}`sI|5k(Az2`V z%xWzNge6-72@oJawlMqVh5Vxz#YuCUKE3yT&;9=UJ(=e@b7tnunKS2{Idk4uG8QHd za};w7lZJ`FWMiHR{6*m9ppGC#P-jqEP*;#Ns4wV=&?iHG5&G-U$3h-&=*60 z9{Nn^)1eEYjp2fDPB<&PHJl&L3vUQ#hc|~eglA7 zjK#;+$6k(;#mVE8ajLk%xQ@8?xVAWT+;j22!^U9`VB@iGVH2=_#)e~$VY9HISRd?* z*bwZWuz$hs#$vHCSZ}Ns)*qXKO~giF-^WH^G1vg?A?#u7er!OJe-b8%mDG^LO}d=a zpLAdHcarZke+ zX^H7^>GA2w>9Ofa>Dcs>8RU$=XOw4rl5swxF5|(>4>MoSdNu3KtPir@&U!!VovgRA z-pFdtn#m$(Q?u)`tFtND_1U!S^VwC|71`z-TaGp7dd^tRRL*FQC1)~cK4&~>OPw`JRo)VsFJ|#ZII<Z&$nw$LN1uJP@X_s$%FcXp=HoMKXKtQZIOI=D` zOW!Shzx0FB-KB4o{-v~|^xbo>oqOlpTj&08?!9xrJD2rw?#KBb7kqr{4zlMC%+`! z`eYaBQPS2Y8=w4+^lj4fq|ZKiiS!53JEWIMkC7fCJxJRAwy8X%HBQq!d!{6apoma+*S-d_wt{ zl1DjDIYB9+?4mwFeTMop^)c#8)L&A6Mtzq0F!f35uc$>e1vP~=yqcyOea+RHTQ!f= zeo*^@&n};5eV+Gu#^)uURbLY34CXAR0P{D@UoiyCY0OE?Da_R%UC?0AaL}uvyF%Xz zeJ=Es(BFi<5c+!PYoYm}OQFl5;_&1MY=kVbJ+eExHCh@y8$A(ijh>F4iyn(!h_S^? z#oUOQj+u)&75ibVD0U=vIPNU=Q|u`$16z!(#Zs_!*cxmhmV_Pl(`g3>Qd@l>T>FI z>SF3-YI^$d^py09jOGk(#>W{A8BH023`WLp+%U7Cpo!; zeAs@f=al-C@>K7s{!`LZwo{>}Lr#aC{wwiA;yEIVc%JxoVhNE(%qP-`WMU05n}{bC z6YGe1#2jKEv6T2Jv4D7%SVg1~PZ8^hr-?;GA~BbkMXV%#Ospj)6vzr23Y!Xh3;BhO zg_6S7LTMqdP*K=j*j1=56c=77>?u?h3JXProrM<*I||1Nn+xA5e!KYn;y)MfF7_>c zuXs;!Q}KmjUh#7AO7YVrKP!2>NHEqSoy*^(cZJW}%0lJAxLu;lwC_m@0X@@UD= zOT5nD&ZM15J(F_g{F(AITW3R0Mr>RIYmy7!#RIpW8JkAGiAE~_u2lvS10 zmerL}%l=+gNBS%20x5=sA-R$8q##llDT{P~4=@?hnGO4rK0mAk5bTlGrS%T;ezy;b#k)vHx+R=rVGSw*X= ztNJ$iR@G|NM%7l;X4QJt?W(&~+f{eqKUtTNx5;C_p)e_R6b6M( zDWKF-{!Y0-d7HYM8c%(f`Wp3h>YLQxQ{SMvQuk2zQvXbSkLp7GfVy__Rq97I#WiPZ z_%)YnMrv-?d{*;(?Q^xy*811}z4lF?SAAadsl-%cDllXW6;p-51-~Df7={g#haZbL z9$|0g*^K#C>~~`C#FWR5#*V~|#u?&zu@Y+N-A&C(znCGJeK)rW>{8CR&bVgmS0w2R!9~zt0T*v z)s@|r{aMaKxsT>Pmis{N!?};-{v@|4w=p*|?Q9=;m2qBW-Lx>^-68s3QCtFT#oZLK_`JwjI@Ts9wk*6b03yFP1IkB7A zMQkCq5<7_f#2#WNQAN}cFB5x-0-}gGOnkoJB2i3~5fck$3ug)^3r7oY6kad17LFIL z6iyfF3QdJq3g-(Ag;Ry}!fS=b!fzF=7S0u#3;l{cioJ?Gi}x3M7yA?+D1N!*Hzm)N zyj}7}$vY)(C9jvfU-IXYH%oSvyjSu<$-5=5l{{bar;-m!{#df-Oy-%YGnHp5&TOB# z@9ekFB4@)&kCaB029{ztF^NK=l8Q+zQYoo{R6}Bt&XbBrRis+dS(1QMMrtO}Nouq(I~^ooXx`U*zHwF+a! z)e1w!tqSi-pGx1#iPZcx z`cnO=k<=h+2(`54OwD-Bw`!5v$7^@h{Y$aLFS;*phto~2>o;DUqZXXaS@%7x1+xo`*7?JV;_ipDE3FOe~TT9HOG#{ z&0;68YOEG(#Hz64SQB;#djmU&9l(xZqmuYZ4<$c|`wi|H+~c_4;(m>L7WW+PCEOFZ z=W$QrUdBC?_Jg$VrF}c?yJ?IxW*R+>mR6Uh%IM7yXLM&go*9*;$W~_eWG`j^GWQp` zzs`Ls_lex6bNRXPc?o%MZwc$_?V z@~T4lIr? z4l52S4lfQaE-Drmi;CBay-VCn4wkr-_?2Kv{7XDa0!n;J_LTUR1eWYQlYJ)Z4EfCc zXTNv$fwPTg8_qVJ<(@rOnp2uyiY-kk%`fdL^*!fv&g-1_Ilptlb1r3nDdU$lm5q`5 zNrR*=(gLF=Ja?&tqmUQC$$obLpmQP=*_-(~2 z6)#r2P|;E$t`Jq2E5<6uE5a&+E5j=TD?2MYD%&e%mF`t;ReP(LRjjI?lYdIyMgArE zdGasF&yt@Z|Azb=`DyY~G;Pq?>nyK#@EJ(k8!JCTl0Z_D6jHDt-M=Cjnsf$Zh%UAfQY z{wDXu+~;#&%5Ba)o(KO}G;bsC0Nx#c5buU}#oxr|69|M;gbxXACqFxx`{C#*F6s!~PD|n#by9Eyw+$BC)^l;Hnik>KXwCM4oqs4K>lH!fx zs1j^Rcu7LZ(URDb_>yBKyt4(RMWuf$4L*lC7kDn*j%O5U(vHZ#MAC|9?kn#=E_sV}%{&@K#<+n%=ly8!LQ2rU| z4(Xxtb<$7D?=K%aKXHEi{A(4jS4b+_EACcoS434FsXSU4S$V0ltJ1sba8+=XXO%~l zU)5XW-;v)Wze0YQ{4V(=@@wSZlV2tGla=H?^23xzC_kY*SpEI#4a#?`AF1A?xKw|y z`bX9GS3gnxSoH(dwbUvqol2#CLan5JOr=o&PA#WaQyZui)H*7eT2EzDYp678CzV6} zl***Cs8uzT8gh-bX1Zp!W~Szi+Sh7BYolr-YQt-TYs+f?=<^3ij1|7!m=25#;~wf3 zstO+rUy8UJ{fpRdC*8q*CutLlB<;oR!yUxA;|}0lar<$w;$rUMhIHU{}FQMZYZiMbR@w&lf#a^xL9?MaPO0i;ov472hh(Ey*cyEy*j%FM0Uv zV`nd%EiFA$8gVZ4T==>DW&6rp%OqugDgRUXyX7yHe^CB@`5WbbD1W*9z4BMeUCQ4q zx1OIqKXv|{ia%C#R#+-xDixJ|mGa7mDEA1jM_`>rnXaCsT!(; z+D2`pUZx7DO;k0tg*rfOrsmaD*W9SNSu55mYgj4>Dlw8<)!4(Pf9;7{j{{AH0s=u zb8cmx<=*87%RS1y%H7Ic%iYTllc3R)tNugv+ts_P->-hJ`ghfDRewI`+6x=5X*+NrD573v&yp4wG2RI^;OQgeUpQ?!abKZnqke*Xa7D| zoGZ%3;wuQnCy$-pTk!j$_ln*r@+c}VIbTv!T3h<}QfjHJtfQ=}EU7%9Jh9yR>Hdnn z6>b&%71oLfvYs4FIa(cG9anv%I-)wN`r9?z)bG`Nr{?~e@7BOiU)MZP^BMIn^}d?F z*F0Ujzc!;bvo@<%hj}gbV(ib7o=kco>E}sDa4)1aq#3e}*?-7Q#3$j`@nk|JfkLPv zOq{Zu+F#&S;9ihhoL7u5&M*F~xU!_Ggi%T_rIj8pKUSVno?4z>exM?)GO{Y6`grxR z>IZ9nSo3hrk82*O`AJP(&05U^wQjXJwfVJqwYjxV2gc!2@b4EjpJkSImt~aalxLM^ zmPe5@s?)1et23(~t9i6$z2*nC^x6bmEN%mjE%l&x zqpP@8G2}RMJo$ObPivm2aj*T}k*AY>ljd2#E57buHp30GYGFa3e`L4fzRP!4%&q|EuV)4Air*Ew%WqfgF3hgTT}iu+>B0oodfjou$ z5_uZ=74i)7YvftvIpld{7xDt~8{|dgCFEt~x5z8VtH^7}>&P3(o5)+p+sN;bcaV3H z_mJNse?a~Szh?P9@&WQ^_zs$FYxY1+z@x<0CEuVKs=E{2>dxQ;*G#h zM39|Hfp9f3bfLqZYwvlb)*fj?+Pq7nGBFC+$jy*CbtM-q@k1TGUK8G(Ob zjlc^Rl8V3|Y9R1MEs}*~BRNPe0)MK6;E@vu0Xg}_GW;K*1a<#trmHTf{>qnR-e02s zQS;y9wExZi!~f0x|DKoMXnnH+->krYWd&q3_|9H&;n^ev|w5YE%Yn<6GjWCMbIK? zQM70p{Fmso7+NeXjuuZ#pe53Vlln!l+}S z6swN?mH6?j^Qd$EifqSrBP!*7sg3_7`rjGx_hxyp9ziZS_rwF}|2-h7 zZ>w*wm)3XG%j!Gp<@J~9yZ(>*zh1Xmw^6r-uFYoMR^9EoTmR3;?myrC-S^g2=Ujo& zy1BYpl)el2j#D~aXRWiN^t@Bzu(wcm^Gn=6AK~kyrhn0Mq|SV=)lg@=M}M8I|GIqH zX?x{s#+dmU`M(;`_Fw4puk3x(_RR`>vjX3&z`wr&*^t$9?q&8b`sF!g`OX^etWP-W zOlSRhkBqPI>0jZ~zQU(|h5y{nSL>~<&8?ZOg)Q^e+}6_8_?CTZZEI@l=GMlRb<4K3 zyfv|PV{3J5a%*;LacgXAertVedh7bu%9ds8*4FK*>KUSYypHz=^dbz!oRiFD$J?^NJey!!t=OU_W{SP{wb+Z2; zYp-i_%39D`TqpbwI-lG8a?P&i)N|__{;7Xo*8A7Ar0(LsHQK+n@}F&8gfW-?FO2)2 z_46D3|CtqVsoPVxx32kKM5NZG)g7xlUYA*yRhL_rSC?3at#gG)hd&6qr?cZ3r>+5& zbl3OP_ty8-_t#&pSJW%(RsYR%@jo-~Z$|m*3S`hSX<4*vS`ICjmPgB{;b|vm1X>-f zo<^h5X$%^Z#-g!l99jd7OKYSx(Rj2AG(Js0Yo@i(gtS(gh$g08q)BLP|Eu1_zq$(F z@ZYS!e|`nzU&)RCc?;k4`2XJu1k_``_Ac|T_o??qTm8RQ=RY%}z<*-J50%}hyN*Ve z*FVwt&y4Vm?*9ub;6mR+N07Zx9N?*1Htjptj=p1~v zNMLF%jX1j6`B#O?1mKnwzV-{L& zFdY^ZY$ba?*9}^CprgrAx4;+(a&_I^Y01Iy=@;m}3ISaVvSxY<-CyCSXr+sQ6Mjhx zK@KuJ7@mwni~|gB1{T&XPLZhaVMN1-3BVm@cro13dB-Z^zqGOlvc}*mmKp1eHU&?y z!f1B3t%B|b6dOaJ*krVVRH6`}Z7quH3_D{B+HNwqiY3MZW0BFWxTv_Gm`Ck5DsG@P z_;+s{@jc2hqaA2c#3>PE4{H@&k9g%0)caTnvIX@fGgNtpxxtK5CV);1lv}9QUFJ=u z8!H@m1nE%OnR{9D%r)jZ^N2D+d7HVy3{fsHW0kHfch)k~g|(lx$ULgt%}P{;DYu!C zXs>9%26m@Pr5b`AQma&KJ-SmGwnTN6eNiPg&M${u8kR9z~CO2=+j z2~}6vV%0Tv8^r1`^csL-V)v-b?8_kOQz=y=Y?-PVXt_$u?p3MT{XqXKz;F+89qkhX za{~x+fa}8z2ma=OeP9-N2Y7Jj2c`ysx!&9$?ik3fL$M6_b0?uT4}@|La|5}DpwIZg zG)Qg?1aN)1GXo)9+kkbziyOxE<9c%4(J^-HeSsH1|60?fCIrz!x!N=|G&rOi(hv0j zHvq)}BT#FcG{o#sf0J?u<_wZ6O|quWCi74yA6BtR)ub94Yzo!&HC-LjH|d&`O`4%= zpm}*n(PS7JZc-1)p-*>HSCesQsHwNf*fiR7Wyk=s(V>AM6KHCoj6fNNvICc$;~v!o z!WnGgBS@I;h_0C*pcCHxt)`_7VvWOu(r%sZZ1|YBTkUx=kuk59EMOlUfAl$D|Oo0w*&`0bev-7Kuz6QM;+jBr#n=GlfXf zA^|-pTN6tY&5{d}VvaeJZ_ z`mcgyv)w)oCw_XX9r{99oSvVanO+C#R{QMqTKnDh>(e);Z@1rRUz)x-y#TrnXpn8r zv1Ds=92r-JAnS8%z#DU55ekB2$vf=X@^(AqWqX@l0yWIXo+)?K7Z)T82r@S3EyyniSqE4ikS%s# z0#4#M+X6TOVm-KiY$&9@iyu}WS|0`L9$tS@5&_RL2fNjpxR3W4T9wbHE&|!)()yA**wRXNTsRW}0kGwxR3LGBacc`~_%RdijaE zBpp_ltn1@DfE@_j5OgS`Nq`Reir2C}H z(<{?^r49*#T!7u=qfs)y)VIwjNew5oW$Tkjz~fNOI0J5o)ZHp1(J%e*STY0ww>L&MHvwFTAGA}8D?wwVK zrR(TErGU@ZM6MPo#2)0BIS0PG0?$t9m4y)S61pu{p_Ksyax>2*}cF%E(RLhpD+9K(}&h?%Yo z2LD2!Y_K=kTcDM~U4wXoNJKr|2fAvo^*Qu7N6t`YqIQk28Y56P2G$3*1~vz9-~~=M z-?T7fcSa=4z;G43ioJIa?6-8F^LE(W50SJ0*>4Aezln0UDboSRKsnAzVPz|mSy-Tx zSgEW!Wdu-ZESfTobrh&PhGPP+blB{Gp|}uO{->A zH&xyoM~g*eh5drtPIW-z!8xS4%brnfvpqSkoZZkqsoKXm!13iwsZ6T99J6X1boYbY zoinPMK>PV{4sqsGejq!@8B@8THurE`pteK%VU%~+hd!Fy10EU&b$1|#%jRZqS=R^hdoY5ZVlaOa?!eJ>)`adYWMLL zo9+y)fYv5zYZR+9NH+AH=CgE@{Bb^BH_ETq&G55y`MNyaa+8J6 zfL69H9q=5S7>;h1k03_=RX#y?1t=!SNB9kZGjw#FnV+f4(VYMeZdksFKL;8+Fa^{# z{;&X^_xZUxD}RDd)9Ib9x_ermYdh*xU78N-JfGKEMp`lrH(PQHhL%*rSj%)vN2^0; zvgNp8p=GpXswK;C&6ICQ0sS~by5X3?(vpkzHMcCaTnE3$TTFmwq2w8o4QYl9LxLgO zU~Gv8t%;V!7JEygVFp?eWWL4LVg(B49NQtgfwn;AHfiBLnlLF%S4>vXjA%?`GR=tw zO&XKhG-fi145k6oxag{BL^NzNnnpnvMm9}}R3@`%2si^|{AtmMX+mTX&5A}vk@ZHA z4%KpK!hFyh!R(X_NG?N83b6RV?cibQlE@_fmQKlGi#PCoPM7lt z_62&s^?=mf>JHRitE<&Ry4!kddSlwrKgnh4CgyIESJ8;-Zc}usan`JIw z+X1dNICXRIR3_VF6Uo|SyMdR;T4fhyEwT>TUfcGZRCZ^sUAE8WV)FqDowEHlu}paH ziLcLo*`6;~*!%6h_8$8QdAFS)M-2nIWbd-)$?N2JR3e8bTkkG-%3Ww%=v?T4=i2rK z8Q?ENRQK}I$`Ymro{g6lm)4e+mVBUx1GZOouLk$HtOoT2LhBBM^z^RvtwF5!7<)#0 zdVn&(?-Rnk*PGINyw|vXxtF=Qqq)=zpQ3EuM7aYBhwKCc&wzIoW(2ce5zg#GWw|U4 zWJoreC9_$1Xa;2gm*dQ(JGK^8aNbq^oE;9H?jhH>YY%8$dHd0m+o-egZ}7Rg>wLUn z*%_mdMMc*|78Be^u-h6a2dwTkH(2YWt$2DcjDB2^g8JaFdW0FrQ~(#lJj%SRh-F5j zcSjUcc~8Tk#YDZL0Y1TMaAtNc)O8?fQs%RG%0?xDRnKCu=qxXoM^FKl`XB%b} z%7GgmiiEaY2A1Sc@8}`OEw!UAL|k)oao9 z=~f_Ls&(`H1%A6ur1Rk2r}cf(C9(65QOKfVUHk>H5fRCTP^iK-EP@}IH4QX zTiC$S3=G2w!zxIc4FUttu+p;8vf1LHynR{2c^f`MqZ zq7BiqXvTEiWCb0&Xk9dES`^uUzA2g)*-Zyr1W_$^{@s?G15a;U&uy>q4-$Cq;OJYp@0usy+INp^#be(B?x3+ zz#*G)%gc7qc1h-GgIp>*3>ZE?k$Ky?WCv^>DCdwcXdLd8g$r?9Z~vAW5|N zfo~27Q8+OFOXqBlI!Y6)^+e-x3q~{bB+>~C9O%U}6W~mTa~wUu3y7T&SiMn+5ik}; z)zYufhv}gT9lef`3i|bo9Zd&LWMZAqk}7CngLeYwn9-cQa2_K$QJe@)h%?ef+*Yob zD}+-NtvSMJf%*{dFnHtzWxyGa+bu%F=DquV6ZYIJF-fqnOX1QU$n^4sk#*fh5`5td zE6LC*l9?&s!JuM5ahy4%7*?nisZ1R67&D2f0grZ|1zj~hOQe)2FM@v!tY%blfz_&P zQSzK?%3(DEB~-R6#mXj@fF)!#E8CP@XRE_fJSPQK$xH37#&P`A`_vw2#);#&s$)2w zYH#&XX!TJa1nD6tX`DokzuFh5PSu2OkBLH&6jkBDG=KXsr(~6lDH9UyvNt`tbr$y&%9L zCTc-9bt6Cz>Fhd_ZV;$F0*mgZZcI0*Nbq3uXz7{x}?k>cGQKttQ zG60GllmlFZ?T~RU8We^OgA%Ac!X0^^q5DgjsK?N6Pys)s8!)(;!7ri4ATr27(u->C z7VZN;nq-VFw~JyBCJQH5zrPTJ%VPeC~Kh2;RD7N0CkYf2e7X##O4QeuPh93sLda+ z*3Om>+I99T_F&*xa`>dzuCZUW>+MXShwSi~i}R_=-}y{*Y2nt=?WH?QVQAh82fTL` z)^4pIo`hgG;TM|q8>~(EoPmA}a>{YKp3Y!gQKT``;q;1G7g-`!E1a}+jzc>@oyp1I zVBmB(pa)_(oEHlbw+MUhDsU4n==Q_DSYdTeSo*;aj{F*U6ai!6dg0tD;CY0RuE+w* z8O%&(Hq>n_30RjZ+tJh9p$r7uK~S!4s+x1>7&@#`*d6L<*r0|hsfVc2j$s5M-L z81fM64DP~%!Ye?#Lqr@fAG{YAGm@JUf@Mx(m(*G2B{s=*$*kmtBu+YHh?mB~{>4bc zZI@*RyAfs!Tz4eQI0aTS2WI#MC}F)4wehG|hXscOo&rzdA>lQ{f zaDElJ&VKlNbN4`fNd=qN=z3I32KllRiqx404Ti(8_MT3k8{}zpHr+taRInJ3$5@@L z4wekn3|133b(|3O3DmZRo1+=vs<>({mY0BfmZVMOVPQ`rcq_20kd*{J=vsLJUX;{Z z5~PVR<7g{a-nGyTPv+(x_NIrz2%e=w$yQ{c-Z^^aF|R2MimSjI@5vl;_+$$F?o#$B z`;^_v9+n)qOUg^EE>^Gdva*|{0RGF60P%1{9j>NvV%100Vd_M6vN~QJrDkyA)J#sa zIz}C;j#MY9Sui6uln6CeUC*Hd^>x72&@~Mjnueh{p~=_4(~*Xw$%T4|%hIr+W@_-7 zJk21tUPAy5p2RdwX#Hh-DLgnWP?EJtyyLK5I9>{1SOt)!@^D(7CJp#w4h<;Bw5i%O zsCU3m;0vqifHmEg?zYZfunlV+B-pKo><%p$K?LAX!GUG_!Zm)h5Gy(;C^kIU# zx;wgX!7W{|(+0c)LO&P%tl_3%%HSg$H!K*82D{<9VH#q2-Y^4r%&=%M8El3TpqHTd zLaf{{c$v)xFQ6ANiC;?`F^IpiNqXu8JZ6DBw z%sx&%IQftf`4$#no`qp)vIs163)?~iehIPz)3PjSv~VpAz{68LiXBv}HQt&eO@RD( z6v`26GGMF~D?Mh7u_juRtZ~5aK(sB+7G;aI!EW0UY%#V(+fiGjEgpER?Firz`vp0? z;XrAW^8iD(f>=#ky1V3{_pQ3FLhkK>XL!hhV^Av{^?F(_>|L*UT>M{6&7rZQk>1I=0VYm_)La1` zGN?9P3waVo&b${_ux5h&5DU?Qqk^b=(GehY1sO)T0{a;#TsHW_j_*K-In3-T4mAgx zgPc1jv}{P$V29Qv&6XC}mla8>H3e4vm=tF{E=`uMLK|?lBwMoWxYcCm%SY|K3w;a6 zZQHQ2dGsa*fjO!;0rR`S+3$!CI**~}2EmBAFz-AlCMaX7$K{`+lSU0ReBu5J)g;Bx{ zgNHcA>?uBq&Mq4w6>eSWB}+E=au;SfX3w-W%guI|W%tzsut(#tw$13tg*kwyaJpDJ z@N-gOP+n7Bg_X7_CKPn$6_%DoL-zz$gOdY(%Q$9e9aoMibJ1Ch0B2xbg}z4RsL}$Q z9%z%&s+7aNOe(JdH=&#Yc_;9fIMYD=BV16|s|jkJnxmfOc5xciP3kFbqq>`OnbXIi z!5DZoLp{LZtEah4;H+E)hYj_BW`>)uR&wUJDo#H~&0(qY)LeBBi~&zwYPz~k-3xRl zM1&m57ogPCX;qq=T#cqjGtcdVwtlo-p|PPmK;uEy-0Ia_($Il|H#ZG|cS3s^bnx14 zjT+UpbL)7^+K{W%8D|i`)e+gQwN7c-O&77pnEem|sv?0=kw7F~iofc|4w< zzEMll<_LTsMw@tC9uHc4fo4G6$m3`)@VG$1`yj7D+oWXy&Ee$=;0;%s4R{Cg?om5@ zfIdPW1CfXq&;+r3m5`|z+ZnvAFDrLgnLDQ*H9;53mOIC`b|T$K3{Ol z5Tn0i2!_#*K<_|(ke-EFW(q>}TtTFsE(n7*jv!8WRCpWWE(Ev}Um4rsL6R^<=wkE{ z9~15~rV3-t`;C6$L}9Yf4Muf09yX>6{oyJOutEkx|nmTK-n=^$~U`IvcI;w6qV$D4Pz1&V{k7;y^P|FT74(O6DM^`Pn226?S* z2q?U?*WwDC&a$^{AJke)gEdcj96Y&Vp-EMskq@V>UfO3-TKX*m7WcMX=^oI_vkpRA z9kkJ*sDUO(bI}vJGY5iIBg?VUY#b{a+L=A?-EUNDj$J-lJZd=*j3+_8K?fgl&uhhWDPW2|8ZU z!hm@*Sxg3G8a8u;WrUm|P!Do69EZ*YZIgiKjI>N)nmI}wEzU4!nKNOpuEAp}HhB+(TVa*lvgz~j~-UUIH(8o9lngse3 z;1dclL&Oj=TEQm=aG5s64MhWUN&%lAK)J4%QOqegOsm4Km<9d|u&}PP=2(l$dF7gN zhP4i3jm}&w$8#lSPxGs$|n!8+qR>0facug~|+2)REMm19!t7e0Ho4cp6g*Tzu;<`2(of+~D zx0$yNmal5e8okD#F=?8$`x;^AG?SWX&Dy^lbH|fQJejtWC+7*ZJz97o;5npm`aZ23 zI58B3woNPLozQn^WxQ5sRcSl57kL-8ty+;*!t2$lwe38qwq4uJ>*5J{ZM+WNW#|Pt zTr1|aXqDPa+HP$>Dsf1^4DpZw#R8Q;DS&$hO0GUrpQdN(+XT(P!Bd%@EffjrKuax9 z2=etm^}wg=y981}0#G?ZhCWr_FUZi-^?lIa7qVT8AVq&s&<&hS zkfT4YPu3Ikd_j*uD99G#^{pTm2;_oxfkc4Q_X>{b^YmGIf1@At{AZA)kAapv$X8fn zurc14Z9XAPG9EYLg<-~H#$+Qw7+}m5(xAOgmikJa>v-zSK3%W64n)!se&CE7)%mlO0%r&=~o1i^b zY_ueZLSxlB$i&xtX%Mo-|@QJo%%HrGBX1xGeXVJ1?@o#Ig@})e; z&Eu8{i`g=18MCZd4z~%U-faP3%>s7jp}@Z&La_ie54H)V4K|Ur)hY%KKHaspg0*(( zMZgm21#7caYP}@w1g^yzVr-U5tbEYxl3uhPY7~eWGaC3H<{E|GltH~CGJ}pOd>EKQX>k99>ws2)3 zq)WSy)U5}})rDcep49 zmpJ<&x6DHBnS$aI1s;NkW)4hSwdBUvD9 z7G@fAjC^6bF&m;G14=3y%ThG1Fm0=rDOr!S!`dtDlXhBVR=HJxdc?Oa*l*f<k!Ux)o%XH*G=Ey514Vpy2!8QYkF_CCm32EjE!o-yB;CSJ1ywl#yTS^7l=#2}|j z4flq|z0n9>;*G7sbnxSnwF`}=MSEn|;^rLK=vJ?A4#3>6!@T=>!`dOOR(qK@sCA6& zfKh=-z}A}uBZ3p)2f-*q=Mmf%gr0&WyAgKl;PQcGuT}V@L2(c)!Kiczc)(*eq3;J5 zn0)3<#k^uuxy-t)yrtYy-hsPp2Ua->b+1|jp29m92fhR4DAj%H0re)wrQx!=N4?Ea zsW&)k^)1dF&X9Ug-LGEfta0vw<`=M_Sp(m_8xJ+wHA_JGHF`8IY7RI0puVht#Itcz z;{}{=4Gt(#) z(u{Q=>i`)YY6s-PK6RS2#M$CZagVv%EH~$)5!7XFN29FIe94?6&JgE`d!4x|4EAEv zvSC@bggA4P!%k>hul2I^GJ4+or3!10RVnR*-B(Dv0ry*NvKd*stqmeZViN*xh2nr& zIN#H9BLw$SW# zgWkd%R_|$mZ&jddX>MuYsZMLq4)ds_uZN zZmK;hSJfJ8odsV40Ph0-?rpc~7Hc=uE~@=1@Qk%jb(^)y+J@GzLLhjqQ||?QsNrzK z{)V6i_Xd;Nui={dK*NlBRz0pZs4)%GYM%x#(6Pcfm{O0buc$}V2Z8s7vaexGZC2}{ z#kawtzN!vrm{Yrg+_S-`o>cn-<<{T3q<0@JQpq!O%w6!PrLM z!EMd%!Owf`8@#RY8H^r`YTQ2<1k$^j$ib+=qk|!X9)o^^agD)^(T&F%F^xfB#{qi> zv5iL?!v|dklN;k351@9E8odYI2V)w;2K|ALXgo6LHW<Pf9hYt~-ZP6G|6nK!~)){bdsc#~*9E6>gw<<0VJS{u&*l54zC z&>PoI@Rqc5+6nD6&jL~-&*U8C>wNr2c@IRXP~WPTKz&)?3s|P_(9a7l>4)@u;I#T~ zyMsbk1X6vUUaW7|uL?x^Il+?Prl39)ea5DRhSBx4V*Qhu42wRN(!aiud2Bpb3XdE&sguTLc&>9ko0BenE zp~868$TzkcF95F+b{WUa0^^{t%{XjS3dKgDvDY{t>=qh@myP|P@dY#*FAH@>sZr+W zXH*&+j8}wuVY5+Uykyh~FB*G{*PuoH4}HGq?Vt?z+IaVn^(;ys0YoH=2`ONHZP!#K!I<8E&h{7+mhR`ZM!EilZoiva-_`{ZF97T-J=|w1N3mSXsrWQ zi*?L8fZjY-tIleWj)ELw!#ZNsOK$>w!)mr_P}!t)+NzZrtXHf`t44Yi`pjCdNmbT) z>x6a2szYr|f#!86M&PbUP1Zr{f>mvuvkn1&739~fgHpA0*g6cn3X08Yw;HWV^d@kO z`vr7?OlDh$8xDMsEz0aNwe6bix~#`GU>mn;&>l=9O~ydH6rjfZl)t-?PrI*tdbw%JxIpf7uJ_H1w9=(e_?W?H-W(E#ta_mVK8GEl)W6q=1g+ zGG-M%!&?nlPJpL?;MI^-|J5Ln_(9nL?ONdKY>%~PaBYVlhFY^Wv^E3!4zRAztY`I3 zqfhdXyEg`VCpIh_jqoG^-t?_(E^RJvuA&^g7j41&2K^%3>%njr+SCr6m_Y}IZxFQ` zTF9wTHnn#J*YsOJUDX@(M*WC!R5)rh8%@Fyp$Rg@E%T;%1J2{RdClA`-ZJCbj!wo- zrnbdQjzUz8NEgwF9k-3yCeZ!cg1z;azaodXh6QX_@N#zVO?oFo!ra3SX$S>B;Jd0u z2fhU(?m&z4Tx(};$&$Jj;0dJ-eHOW)4r{m$UdIlmG{%A7IOumrdy_X0cg>jIq&MqF zA*+u-0p4gajtR$&X5j?*d>hRlag*_r32+)$tjkuDbjiAEwV)nO+NPlPoY%>dyFy_1 z=6WI(@J7-YKe&M2V%q}Pec>e7X%!1m-x4RWlV<6d)M}fy*%qcY7U@w6IRkEcwmUrQ zq&14fOW<|FV0vRB_^FpK0|(g@e8&R6XL$GUHq7>}cJHvuu%pGLd3Up;o)AvKDAPtO zUN#P7S za$4Iecw7go&<)n$sT(Lbp$wX$m(j!6$F4{DO%%f(D7F^UDJD818xw8+j_YQceyxF1baFw^}FzEQP|3CKLyE(C? z$rIj>*7DxBT+4g!z5Ooo2!TK#yzn5k3=ItuNI(M(2oT;Ixp;r)NPX{pW_I?S{bMI$ zHzp%8D=W*Ks&rN7pxZZm(@tr=t_R;iDW-hAuAsDB7ivD9`#+Wm$sul zq#e*!v|F?p?KW+PHmlv&uFy6==l^?E|1npoe>*NAUnrj5K`k3!_?}M2lJS5WJ!4p3s((FxIWA=s=?C@S^h5d{eS^Li?d|#jeV@LJ z@l~HY&K~D6N*LYxVn&_505LS8uhm!R-;XO88O++E@A#bWKVBiM&H8=!h^$f1s>KXA zFIcWS=Up3k-(4f<^IeItkd?WM-VL!F==TcjXSJ~USk|_aLmfbk~F)Us;u`3YPbw0Q2KKCbQcsqO=Na{~5^Rd}D=A(+{tR zaQ{Q#)O%WH4xPqMgQuy}Ds!Qkm?QS^e40FcdvKqYn+wdo)67HWw9(vzw#U;_bMExz zA@mS_csq?h51u#9Yr04dx27=d{io#}lK#W^?2; z&zyXCe<0E+tFxW)+H99R8L!$V zL)VHtuY(4cg9mH8vsdiWfaA#OMwn0qvjVNA2HIs*^6M=;g&x$;cXRnV(!aUTzdGbA9Jbv_TLGAsq&Qt5@@RWGMko*ma zC)^XI?~*V6z*C+y^HeG=kfxq$LN8DG{^zHsr|eUqzu5mKDe@Oe%cby2;QLdtG>37a zr#R@_Q;{@Z`YQP%jS;oS;8Wx&&!2qqKUIec{NblpNI#%1>9D0zM zWxr+LLiHglVU9}zQL?B`t(WhYMjE}Y-Jz%KCJlpb&&(4zUKY1GtfzJ8vJ zyErWg*e1&+%?`CeQ>)pcHlw{xvqx?H?1wdI@k;;@vG94iB5qJ;&{(un8kfeVv9u?s zpU_UV9F)ge4*D@a`!dOq#ApJR^vn7ceJun2%9zyS3%7nvUx(VbepWxGUw{Ob(^oNS z7^~n%^%MFzl=J#^{WQvI^!)cQ!Kx;+e66t(Ws9-g*lZkOl^Wa3^~P})ZZ^gy$iD$= zfM0=_nKj00HC7qRjBTjbk+MdT;x>b_lvBnTFxMbUwwim*E#^v2x4F{{t(war>jU=( z+Rfk06`T%p&!?;k?F97yqYv_iZOOJ`+d@7w^Tt5+$d0Qv6K~u01Kb8A6Shs;I7%z( z%Qh`<2mCE>#`eHlw@uj=ZL_vX+fUv-&&V_IEIb`=0qu9_TaD+ffu95Zfq9abBOja! z37OcbbV^a<3MEd3QwZ+N$st>aR+&=-2@iD^DN~`w77ls(J=301&$uUfHt3l|hQJy< zV<=}lnX_Tf6u1{0@APk25Gau#s8I@#VZTT+C#mF?e36Y_9XMj zI>8eVlm%oy8BVcKN2m+35O@NX6fY5YjbcIZ7Fkq0gU?0ApVCL^Mnn@p#WRnnZHP~y7Pi$2X(E&Y+L=~_b!_Xm^qcwy2J(`z z(>TRyH+C88In#&(_&I0HJZi=}mU#qp+`MnwvmN5;6x)GKAiTu$zdMD(3+EiHIPb|} zC9VE%q?Kml8_JpZbbK;C6%VM!li_p*+IYnZ_bxB?_OU|(3a$#TJ~({+Ay?ZA+H*~# z4qOjW`mP5lL)ZPJyh|g|c4+#s2Re4cqz-6$!1n^%H4JK}=9td@LDlVf}N?g zQtVR&lxfdsO068+KY^m(gN_gMEsSPHBV$*8sQ=1nV(jaOj5~TNTK+(7Evg%p#EPGZw>z*yLz02S3@9;NE+x$KLZht3i(;pfL#bkJ6lJ$jf+fckm zmKB@u>MiAjYBD*I{FRENSJl3ZH}jPFzIU!|Wh}BrjhA}|mv68h-VHx3Hhw*NJ$5~O zJxm$-^fRJ$0v2FX$23ElQE-DA4s`@2i+Td9ol?g&!>E0Lf~KbZ&}y_dS}E;Ldkx#j zX$)vxuhnT)u-OTOUZ|((`Fali=?9*^ zivdpt;(S3X9mv#+^elZRLyK9yG1|$tk2NeCCyZmT*EnzvIB%RbuCW%3v&JdZR#=n9 zCDtly#<*f^V=S|ljElx~*2l=d=_YAW=+E2@8y}FhL-V%z8)x6VXKv&4K-$Zpm|Hj- z<~8$TgY!lk}Hi3;} zJ4H=mdxU>*!TEV^UVs-w&CBzUKJ&vV5sHPxNCV>Z^-N0ga^bDh#ghqjPQ6nL`A;&3 zz}rY~p?VHHU&OusJn=s2@9;E=XV0_kIrQv!c0F&Xf51oxwuLVZ_=i9TL*I~h`@prJ zY?ro4`~AbHwW2l=O379gX<0%x8XCr^G2mn7Xi+j;7;jotl-s+MCpz>BagDmekfE-Bqrs z+1YD+Tba^yZxdro@PK>ZACTy!`c2l>r%jJwJB3YdliBW|6{FMSRFFEOduXI~M*R5S z|6)(Gp{dYxXeLw^Esd@#mg2V54W4mM@5f?>zS8 zi$`HS0_I?&edQi`=B=x5_vXlTQCJU7C8?RI>uGY;^BO)?KqW@-NJ?;8nvSNS{lHqS z3WJ&URzFwO!j%ya+Fb7`pt_3BI~JFNAjIxzOrV zW8dFxTAK|X@?Gd~{&Jeh2s-g_JUkEE!}2gaMdAW+sklsh>M0g8JSAe4kn1TFe>{I2 znjQ1c`6v9d{waUAbcWP)54@@uIPIS#>qOtIY@UpejBF{i5LzVpoa|$kDn!bbq8b!; zK}Ah;Q&AbMMXj8a94MFL6y+46q#`=~87pCxJ%#UL>STIDjck!gsnaO&YZBfLkOgQq zEv&$q;@s_B?U!8P&UQV4Hvu6P8lxF#x3qoZwSJ1U!!c_Qn#b=><{9XlXPySd&C*sb z7J2v{fk#Nj3L(S26sxWy*Mu39)3`0A(#E|7%``a^B8g)pb^IGTtPsy*@Ac8yq=}3R z5!FPqYwu}Bc+DN{Mn6N2nPtp`LfahMRqKE_uHz5ewpR1-4UJE=j z(u~JOx{+n%uvjcEi(=%lPK>84hLO$sn314oW{Fv77LoodHOtKkv)C*%&yyOrKywb; zz0LZeLEA6eGp~S;_hsIL&20N2EatyM4~6_!p50c&x7qUeFT8xd)8=vdNRR#dDFpWg zBk`@kc_VysYJ^^=)A{K1JFkUq^sN?4JrY>8PFy2C^Hhn&;A=nqc>^}v0&e;j{j2^J z|B`=DIwT#CF8kN~>yQsa_g~~Y@Pk*`TIgMtCnuisCfg3JhhAh`q1Di4XoK|a#wb3k zE4CH*@8yBGIl*t%;skey{Ie2Y1wWr$N-iW9lMeVYe)UoXGN-szX4KhiE<1Ssu=g7l zQbJoU=)}A?1rL@`@qJPIq+KTUuQD%iO8EKm-Oze`IcfRKzgwDB&AMh&v!PkjNYVcT zoU}M>AJY0k@$HVJZrUR)s*PyF+JH8wO=w+zdBo?S|FMqe>@s#3zx5XV1MI)W5Exe( zHoa5t);siO{Wim{|D|7HJnHutF8v0>iawi+HH`ZAAYdT^$yj3>IYu5hzL9GbLMj4( zO1Av#sPE=Qjt=`*1AhX~%@?5XSMv|^wVBUa;#`_<%*z~&`HGbPJvt1H#ckE_f~d2O zAGH~g7eY3l&2J0X+-R#J{i71Jl4gaq~$%RMddswUF2v_j-p&!wk+s67f#t5`*5nR8F`ryt_|OiF>jZTt8AG(X*c=%@M*P~QcPOGl(T{ylJG z(j(Af(g&%by-*R!6@b!0g>p*hFti_{hnnDdCGrD!<#FhU^iA9w$t>0kx)1Mci*`iY zqb<=^Qo0kzI~II&Grk?)i0`5XyMwMKH>W)TERZzDzI0Lj9t%vqR^U=Jtq&BThkzVN2A25RYfZnh7==T{^ z2A%YtV}@7%q^B{C7>5iBLjmuQ8PAL&c#GJ0#*!GNMmc0+)RC=V{adratpCdk(zbfo zBwLyM@J8%>hP6z>JE2infO@{`-TCHxb-p;ixUy)u_UJr6K6Agu zbK}v1KZdp^q@{8uv{)u*gu0@g(F5pjFMg!N|AI`N!R~okZkBTCrv+$AtgngxYj2h^ zLz({k4z&v{;2n;tq~b5Z5pB=fH|-0w5Tu33*vn~OQR9#r!20zmeNxY2MD)ZcCW8Sv zn{fhq%82Vj`mjExkCJUf`v;sGFN|tDS!I-vx*?<+9NhoR_hz$s9ULqPYBH~J9?UCb zJQ-5X9RVfg;n56f@5?8V70sj35 zI^n~5Xsb)yChh?LP2B$J)ePuwT6*GVqAYUFN@t{#(kW!rKfr-r*`adzDN1gL6*@tQ zx8NvMK~Wq+&mXWKKZw(n@Nwl%ayPk+Q#hN>LGw84_DZkjpy@r$IaN*FCw2Wr7oojt zqoj7ZjI2Jbf7SCC8U2esr++4O_uY5}eMzCMOQVdn&Dr8?ax8y&QlY(r---Pf*z@h5 z3-}-9E{o7CtZ-FA13lty?2h9%cM=|&-Jshzq!wS@j?}Hen>#>-O_XnX{-*~JH6dF-{wqDZoL}Z0j`gpV6=6MAVU_FGKXi{TimE+m zxGO`L*AzZZ&=22mer_) zM(&IkpmLzj_{;dy_`|3MuK?Z}O-2>#-uRvMVAL9oMzc|G)EKX!N!%|U2lhwwxya3A>i*GOVE=$K!Ny*AiO?3MOndmpS( z{%MO+doOA=_G){Dy~#M8T^(d@& z)j@*a(1mtkgUcywb+w`1{b`l>YLVJfq;ufAvI$^NZj)IPd)PQn7zos`Lx}JpZ}BPQD^l z`1$@N>6w2`D)3AEt5UgNMfN57Ux#i&XCY-sPI_65{Ch}>HYsYCp=!A#Bo1AKRH1X! zg`ulZCC&$R=toEqs+CvCWg$^W6IzfG^ZX5cBNq zg^YzLNgq@06w&V)vHY5TPrs#Kz~TO+-c}Q(L9JKcszaGz201Fr&%S0`&hb`$K0)63 zH_vbO@qQ1VM{dy->k3JaPr(06bfvm7vQ}oOA$`2cAYxR2t29)9`h2U4Fx{K9~+ z>mOcYC#~%O9TPh}zftyV<7V%__Fuqa-~H>-4e2GgX7VI&khjRc%A4f%s5O!jVs5rV z3rikD!*t+La#gja%FB45yD!kpTXr|6fhKUfL?%4ce5c}6rd8^av~pdJmZCk=va||a zh9+f57~c#Rj0QuiLCL5$v>2KU3Wkc&Xb>~L8oo2sj7!Ejqs~xkXg0_gXAJp2GE&s| z1YK}AK2R;o$TF}VSof@3XwYeVgv@Q!u{_3z@h8h=3>rg5JKr^eH3=-w)flH?JbZr0}1H0f3tVm$Iv#yAG8ng z`yikFhqc1OQP;9~-W3xryE4K7vSq>5i*m^|2>LF35iYu>T_Isgm=t0)!W?Ly>sdJC zN(+O+Iafp&6=sFQt|3=H`j5LtTobN0^jUGmg_Eu+$i{#Kyh8c`UeC06MZ6$(!#ifh zi{hwfT3_MfU$QD|{02 z57?F-NH?YTey!i)H~1g?6zLZJ6E?ly>c8`w{XgJ;$YTB->8*cXx+m57fBH3klYdug z^Zz2-khMa_P!~K>7iyJ{$gQCsd57E(>X#46ZJ~DgU1&h=2>lBE40X%D$%p0lp+31j z)G4=zdgX2MhtQzh1P?|ekrZ$0(fO!Au@pU3a1>L~#pp~_sNf;nOdzjt6?4&rC|@xf zohGvkF^(VSDf!A%C43Ng8fPI6xN)J97iY#9ad!M9&Q)^awB)90Lq$iPVI+@}TV#%b zZ>4;xC&Y?37f0S+C|d^T&9*e^maPw73Yi6~+beZB+>RFUVxoWmiO>OX>o7Pp%@fb+@6-&}HZ_ zTr)Zi?a0$HWQ=$77t4r!)IQ0d;t$)$>_hemMDG{;`{vX9RYcOdIOf@a-yceyeuw|J z-yL#=oS$AMf|m%CXYs;JPA$x8_phl})EeC@c{8lm_2LOPjJUDq^F*++QpSWaX|y1# zi&ij?BGSb3&oCc~+OO1EFD zd!r2)elYqCeVADTt-N3#Z^pDSWBkR+8f~msW6t<&wBtDvjubhp5Kkgt%07*JwCO4k z<%#k|Yp!+dZ^M;*2Nl$$C;Ay43AIlG3D}(3t!&M2X;bA6<){LBnFjxLgvK z#!r$vs-Lime*c|zL)9|sNbTab!7=RT(d%^$x-ay6`Yn2V)%|1)8Vn2_LyvXlnH*Tt z7t=e|J40s7Ev#T0+C7$f{Ex^4-cQX&U`52w{@gWHQ$TOT{KKDGyk!g-?nqC7olQh9 zCoA7n2<|uL{(xdjiKWOQ$Ic0uhh`UmMX>3PYui*#q)WuOoA z1FHG#Nz@5w)0NOm=^fBbv+kR&PuBykj6S5Rr1$IEb*-dL$}GLQLi&KNN!O(-rdQCr zbv5)VI(~=Hm4kNbs_8}aL9*w^oXEq_t&4HbFfv9BHim^UPU`&^W6UsOm^3&U4n`@w zY05BRFp*YxU|3PwfxpT6pLzb2)h0LWQe-NDg-U_7rb<&e$|_Tx>5=usDh6Kz^rDxC zRbeUv?_&A>vgMz7zH{pET=cbEecBawcFPvL=#o=Swp3WuoNG?4<$_aXDG{A>DlIo0 z6-W73Z&<{>fc|U1Is3MK8Re{fjlaX+0JjL-Bx7)$ziD6LFY{OI8+;8$uiNMCtNbng zHrYz7p;A-|i&u&E;l1z(*MX~CwCk!6QC){F3S?zy{R4Sk#GjWUF7O_Rcf`BmJ@FUs zyJsIhpYMGm{qD)1@SjMTQhZPHNBp=M0>gfvKjvphqy8XjabUndFZYGQp=J51d`Z3t z&s>nt$)7^O(5yTZf``cip#G2yaVl4AMK_|GQDO~>IO=hU@-(@tV#9}{siMrjx*%7W zyH}gxttM){rCPKmkAy6!Ju=*k22z{&YkI$RzZPDCD7G|Onk+RUmh>0;+*5~j9>%o6 z4;wXGcA=G85nH-0S1341+x`QU7~y5qn|?rdb)q9z5j5}t_I)j9$6haT?4M{xbamw1 zv!s9d;X6LY6C*(S&riY z5oLexZy@qE3*)va>({H- zE7u#>o0QG#(a+f8YOGX_hNr;|g?gs3Q&}3B=3L{UDm5x(+&Sg;+@w zy&GH~eSp5LTSC2&zNKrWH`D9sQ>bm~=5&j?J#d5c4P7UFS+}cO(5>j!A;HZ_x1(Dl zxpB~GT^Icuy@B3B|4JXCPwMszZI~G+g)Z+0QT`JshG$rH5jNd1Y=E+WRNyA?(6DS+ zH*gGZ47y?05Mr2%fw`j``<`{nnW+6+NTJWTrQ2fSY*-E~RLdP_ z*s^08u`F4foH>gfF*k4NfY0s%5mTHk%YubwnYMgKd@w8?&ZK44^2E92%v$J{F-yN? z3jO*lJr*5j&oXMEpmu1v=ltS4aDH<(EoRQ5We_qwr_-`+IkF5`92}-)29gQjPtGHe zA1z+cWs8+##5&c^La%GP(r&e%+qrxbYIMji?LX~YyAHMA_7l4vr5$)= zw_tq&JKxSgpEJ9}uCd$fEbwd~(|*K1wVUmy;A!|LB{+PC-C+NLarhO%F0@nmH2VQx zWvAN}q>N{`kR`q=VFUr}&-zD=VZXB<+q*>u@@!C$l;*l}wTMJ6wX01eakYvVE{*Hh zB}W^bY?r#eyUtxg7stg${nT~g(!0)F-$eNKi~2RNL&SA4T{2e>WQbc)r-<)jLEbF7 zwKs{B;J%9bMC~G#OW-`?thdQK>aF#5dRx78 z@v(T^yWw5+&V0`P@r(~z1sPRb7C_7e3P45DqCn1{7bpqvrDsyEl<4*1uS5%SIq0ju zF;El8`isNwejZxOA^RGTf~yO>`3nQ3f&4&IpdnBj5J-hmiS*gu91u&Z$ng~<#cz9o zhVYkgQMf)_7=8)mg^}TL_9jDB;hJzFv?Z?#mxU?v+HiiDD$j-L1Lfh8a4OUo-bF8* zE%HpL6l1=IE5dJ~1Nn};GW;HD3THzF;p*^n=rsiUD$=1txk|A~jvz+u%fBnwQAA>N zH%g73M)^@*^h$AwlO5h16-1At`)H*^52ExaE4mk@MNgs^Xk|dERxqPV#kt}x&Or^Q zgc3K$_|N!d{3ee3WL&0vi0i>!#m#X;T&YwkO{iVRrAoQ-JpLp89ku(oF@6!(f+IkZ zR4aAy1J$8wA19?UDM|{G;-rwg4@;BsBvnO&T$ZG(j#P@zTQXJ$*&j%%VyR3jtvXAl zQ+QKJB~ve{=M+Dg!au?No=T*$kiMqkpyipADu)sp&QxT|G9{VPOl1cDHK975iDpun z1o(8utd5~XEN2N?lq=4akYDUBa^hUgl^^HhFis=BfoJ%_%xABYxpWQG&*39xd3*ur zt!vZU68IKqg`JP&&0%45FXzUIf2q0BeAirP0+{7ccc3Glun#&yAES@bDP*0H{Q;Fh zZjh2EOdeBVC}y4+u2It%#GnPtABIbV$RIOZ8O{w#NJ^PE1_{~w!XPk|FbkP#)V>>p zh9YJ@^Us`>>^)Nj8#*){nM&Ek>`l|5>AhKXs~Fcq=4O&Yb|`xA4GihjA`E}Lrr`OAVVK8q@e!D_0J8F1aASuD&rYnB3v%DhjiI?uBdKF@d zcTBY9m5C3$QZdbY=oNTRy~kd*S0q02O1#_N9k0-PCYE|7Vwsoey?1fF3@_iy`OH20 zUV&Kb6^eJgVsU?f=RNyJPU;Ep#WLwwUA?*!x z1o}`;2HFA>fzg0MDn}ngl5{X|9VNIAXbqppJHp?>J>j8nJ95T!_*gy~?h22E2g4KL z&M;ffl6QwE!!6Vy!cl^7Oc)mJ$j!f`9d8}fnE|VAFRlxjoQ93V; zuMMh#bWW93WmJXfx=amXxjOSDU7IORSAoxEOqoo^qRwWXQIlq$)sn0@`+_g_-_9p< z2f6(mCHJ^b)!|FAK}W_C)(#&oNz1aH{c-vcS_n8XRU;-87P%z>pH}nbUM0>P6_5b6 z^i}Oeyc0mvg{a3mx^4nl<0odkH*-CJ1Qv+LS5}Cv%o=HNs)Ubsp1tt!tjFg<2PEm4A zb!<6VC&s5a8tjRHOUt$8+@iK9QNOa>SiYmYup~LDe~DDBMZ=HVv-X5NX}{0q5QADo z-v$2%KW0~1uK3^i8GG7($-m~O?B{5?`71W@EZ4k&8E-!5 zDJ&q*My`A=ER@faKE4oMM#+cV7$w&J0BVTdk^F7c6uplwhV^7kqYTC)@mSm+55&Xq zX#9urMtQ9a#h>C=NhVIIYx2x0OTVZp(yyx0ba|QrU#rg?sNXWL8R!Fu%$+OCRpiQX z&eUG{;5UC>{cADXL1T>-4S+X3x<)?+Hzu0yB0(Y^y2wE<5 z|M2R(T0&oBHo!ViisUQdweTvr!=Gdn;v|eGF#ApNggjB-R9`aP^?cz=>PPVe0atcN$k zdaNN8*CbhZc4fLTa|q46XDV}h*y#*?md?}>YdFzOBXYhnp*3I~vxQm9Y-Rp3G@;hO zY-TnxYrx_6d+4K;ePik*_0!G%hO!NKMXs;~+_kBLY`ZkIlVu?nH#s0;(o)3Dao(VD zH^0nbw!D+x|I1>t6rkOKT{(d+i^*cNxGnkI-xfRSU$`%v60XH!wLGAfN6z$0SdCNa zu=CAi4BUY}@{OQ+{%^jG?*M1wTloh5Ex*=L8T+{>ah5po4|xhJY}Z-Cc|Yf#%2Rk-(2BVYxkg})BED%uoni zMCIuD0Y*fW{xefOpfq~TVyD;Qy%xK?zr1&18?1CI{_XuCwtMfq_%pqL0ljpH0%zza=?xe?opHidL1YRlM4b#KaFby6nlkb5Zh0o*%VU>I* zObIi>`+>voc33Rm3QOe7uvC5=R>(KeOOCkR4_l-D=ws9ywL}f@Gjr6axI_6A{T;PM z-BG*`0_{;>)PwR?5sC()&S)^|LM<29D)SP=nrqTVr6Zb&>y_E~8ySVS$~$E`{w0y0 zc#glu-{UXwg2YdyNol~zq*Lk;?L5^FGUoN5h9pOIoBRn*o8+rbRd?XHDmMI`fOoR| zqOML?rEAl5Y50)3DbtprA`V)R7n(EQGOZ{JvN#*m`PnZh^MK@7^_yCrRb;;)R;zN= zxgnGjz{A{k^0xZX>%Zy$zXtY^Z8XRcKTP$GTKA*(9Nwdrhogn?fWqtn#b)@%>|uX( zG&rnckN21OBy9T3or~ub%C*LBAfC~SjG{H^Fwdg}xsK~W)HXR99nB8pEO)(|BKjq@ ziEZ#|P8k2Ga+n>yz;hze;zUtm_qv_g#&lqwpBRrjwZ&s8LpEu3d~>v5JnqSSFXp3) z4iU*-FFSA&UXqQ4cvNeBR632S!%cy+$!#qJH zmCMk@bQ|tqr(2+bw13#rLY^fdOEX!*Pb^K~x*WZZZby$}z|rX#bo4p;9ZXRZw2yal z*dp$YLeKb?FOGO);DXS&2>Lw>Xy9p;iRwf}q6$9|ekHXxm7`IX=#K`k!2`d$H;uzL zjClGO`vKH!GLb8Jv2=42mK^*A*5`I|F1_GW=P`hy(LGlKdgZsAI;F;?JS}2h!+!B5HH@xLe)5 z*i(zU!`wWeX`SN|Q-eOcS{eq58m^}UvMlr79DGj7p!pEG4EJ$tU6x#@BDQK{#z9HAUvSoJ>X`GI3kwl zR8-}w_LcdN)qGj;n>ZtW7w5zksKeuZrM@qc7jj?E;#ZUkq z2s}wO*teII8{|g09QM7H%ffp3oxC_!5-W{4ppmi|JVN1Awj^2;&55SOx5RJducReu zP1=&?q&?XJ%e1DO)5Yrk3`0GTDb1F^F8_7Fp!7q3xRnY%p2-yvWe~dxkUJx4F6Fwa zM9rl1GxN}^?O$w6v=gv@P0$nMs8b4?!a|ArCS)27PB={jU#<{?)EmtYO_cgmqtoai z|5xDZPIc>awr+>MNneA<>;gCF+n`%?jt)0da0HAp1BRGkh&c&A8exVFQNuXXZwMKN znFGwAVT>6uOfUyYA0v9ZOdiuT8>88aY&Yp&o9rd_I(rtfDfSF|gZ*e)U@x=h*(+?X zX^lO{c7A#xG5Q0ltOMK{_}&nA1iGrW4su6P4wHI=e+YIQHG)kCB2rKU{cM4QXMx*x z6bSNBRtYKv6@oHBwP3?hC@2<`LWYw}B!aG`B7sOEIs?Z8ibXMTkC!*8<8BX-_^mg6MIl zF=>)igT|=2)x@bO*fT-elxXAY&U6A;=l~X?07c-%Iw|NLT>=X4__Q6thfP9V-0)(^ z8SsxK7@iHUh8ZR@tRZ2TX3jFxhBrgjK=j*U$4pPAh$(8?hOK-izlo;{nnI?4Y5Y_3 zP1f5$v-PWWhds${u(n!TtYh4EYrVD2T5J7gZM06HAJu_XIF20qj$OxrqYj!sgoNU# z7sy32(WHCEJ>s5lD@5b&QTMca%suR$Lau1_l}gHEO}=Jdqp!|dBKhX~>MNF%Nm_h& zfrQi;Fd_0);a~EKSS8{c7LIi!+7nLb`FFA{-JbrI9?US+A_|p$NMB&iGr!#C-M(X2 zbIcUHD{YFKcG(GV$-jK9%i3e@uy$LgxSiH%a({Eb8UUFT*$CtMGZ)hEu-=d#a69gVx6$6&^)b!mF%{btXK@$D}7IRk^WG7qBB;id$4! z_IvgMIji8j+*=zHuLu2+$POsQ>-ygBxO<(RaCMvt&o@mdZ<=K=q?ZY4P?q5uApW2&1Y>rz; zt-aP6>wtC2x@euWu0V$i+&;97SeL*LTbH@3+%eQ=xpUkl>jJoW>mX4FE|MB2o-xmz zv-VqutkaPG0im1cz^_LRrQ^oIcJvUtax@EC1p|T;$ngzO&@LDhv_bv>{Q`jlH#bMG zfbZxOTsis#-yLU;b4Ry;;kb0D(01);A$t!AI>?d(nb;u*RXe%_rw*1w0{#O;4k37{ zLjigLBw!hKzYy)ZSKT)vorvz{xcA-P;T2Rj*MYBdq7ygQeT+U#x4_MEZ@LdjKlzCs z8qvD@$bBu^b6<(r?rryq`-g~6wywDuZkqeRz2shWZ@Ew1S`p8^;ofoA!-M|7H%X&p z*SF;x^3_6W%E4D8O`q)pzORxQU!SkvS1sA`wMgcDE512jI56c~@-6s=eZ9U7U$bNr zS!@|N;T!V}q9kC_x8@u5t@^gfdIRQL^sW15edE5m&$%h?X`6M<-; zF!+LVDleD~6a=3FX?XV=>c3Ii1NlLmYr*$GC=d)d17BpwB7u0|El?mULW@scBzu>7 z&@&RS1ss8tG+*{C^#(G5SRhaKE8vpn0nlZWB3ugJ?sj2!Uk|p7!g3}l>hkbgTDlhwZ@)s27Hb6 z#oA(4$OmGLh-sgqE9O_k6;VY`ET(9Nq$So7>qV&v2Na{Rq1afgGxjYu92-rvLmI{$ zA%!*^QS`?KV?o78tO3#{;J?CL0=K+GKskdFx6MQlC(k(e;Y3V1o9ImpB%YM>s81xO z6A@)n8CQ-Z`cV%l!^-Z2AH99bsB$Wi05_IcNTg5_FoZsnz`r4p%ul6~ugSs0bMh(q zC8bn_lJChRG7`S6s|Z?{N~89Yd`o(hd8v3ZlMEyy$%0fa=}QKa;ba!Aa#f5RLG&lU z|1UM1waK3JV7f*7jI$dLUh??n?Kid(opaJpxL=iFzV4 zof*$eW~MSDnbFKphLDbBhBGWR8>2BE*|O>%x4g=1HEIsDm1phh-((-;i0nnrA7DnMtx6X;|9%LwXRrqxa-_C>n3-byTx7Oe&}RaK$JSi z4+n1O4h^Ut=fj=IBr>AJR|U~6$^+lNuT4Th<~{Vae`e#VU_~&2d{P!H4;IUcgVn*( zU}Z2uW}X;mJe-h+!*O{u9Fa%mF?k8HExyetCS&8ViC99BRwR*A2v|xiC(?-XqEtz$ zIHgk6swdLp>9Nm9`snk2nm$8sRQ%gEEmu$bO;@c~%~u~!JibPbpdh1AnAcJY%ys4lbBC0F^r5rM?m6sIShM2(gk64r#AUEq>|-{YeadFSx&)Nm zA8{G8t~GuxJvP3MX;OOvN&vc{wG|JHpMLS%Q`0z4@NYrgL|# z`&I_`n9JmzaQCc}f+@iSe!w3W+&PFoxP^*nzS>~9EG?go&BtJBeK4^0 z4hh}YDe00N`?}$;b@07vS%s`t))1_e)dy>2#N1V&x$q0=u^IVuI4jSFGpH@a7Gtl9 z<=AH8S-Fu|P2`koiFHI*X{s!x#>vt^=H^M#KkL->>M4>tRdducWR@>F*Jex3@l`mh z%NCzEBNx+we?tK@M!-B)ErHINzB*aG4CfW(J(3sY$>)1g17uD$i(UoGAHuFjKq~N; z!|YhV*hPWGVRhgh>Q=jLBB@*M{_a+~FWf4(!hP#K4%v6tA#d^4D17JAf^_Wzidpr@o(nuCQ{C5Pl4*kMaBPk9h~gTGX!s#0Ioby+T5 z#6DwJ-*dQJF3rm0;;kRLS{K+I4u{RLBv=-#305G%+3Nl+a*|p)^9@OOJ}%ZK@(qwW zYLnrO)+hD}eF8`aA!~)?Td)zdjnrK$Xp5{#_6?F|;2$W$`pP54k+R4OBIPzz8YzLK zP?@hRQWhvFvBMZOR{R+~)WjDR1$)j@9V8AD@5;JVH8fe1s!h$No1n)=;CyB-!zVos z?_27!^X~JO+;NVP`}4g2vn7vChsWVA?YMDk+%9O#Et2?#Ngcgne@C!hiISekSJ4v3 ziKE0qx<1u_J)9#>=E=C216{~4|Cj6Ke|o%tEDxBa$R;)LdOoZt;tIIOSc4e65Qwj* zpqsFu(?Qf+4jC-8A=naZL#9PM{ct~GogSdhE%o_CBUr7Mv@`w!Mke=-Nk%0KpW3JN zseI#T>ydTIh?zQN9k6LP$+rh9V71O*hpa1D9jS~|Md~9J%DTwcNJFGHQiHZP?EV9e zp#yrXTv@6tgI#H;oxr9A&;T>RNED)MNi{+lMxWwv_cXJe`lq=!79UjN7 z;L))o*b{giL<>CJZFJv3>-Rtco7!a_z5n!GhlbBGj*lvNcE+9V5w_Wd+Hm?wv&Hl*pL5vGda$C#TFQa;xW>|1zH-cJfa+B<~?l4!oBE{i1-#44dkG=1@F~0x250c>>EKjwNH!c9j10gh z@TLe_qdbd=W3`Az5$07U6bW^rM5V&IhEgM`VRAh?>HYL>dM~|~5tG_SY-Ss?O*nNb z&il@}xg)G>Su!G%V1|A2Tvz4FvA(r)8gmxUl|p__?v(i7`q0t)m)nN*hD2e}gKt%` zBDu#ZN3a@MOc9gE8kF_QI;^NuO@Ssl)Q1@gX01HG%Zk~42eEQwS-0KoAouLV*k3-g z?>D(qWI3{2mpFV@lC${iKAUfijF*kza&R%Y6kR zeZ*Rn7bw-S8&FkD8EaNHD!+c7b|3u+dKJ?q?h@rH9rR~Nm=YB#J-932Wx|-ypuA4p zCTHlCUyZAsLc{>@V+Qgf-9)L3c}Jw}0A)$C{A$ZMZ?XSph&$W^K3g~ifDYuGp?tK3ID)-~BK7VHVf1#AH8P<>k@1BAHD1MD1DNcR2 z%N-L%L~eIf1M&+YSo_xk)~bZki?zOZjY^5hHoHpv(vW*~qDub+}(*5DZE zZjc(JLoyBiFt{H)4(_3L6dXr=CpZB*DWgC_z+q%HvKHBltRn^%$v9Yv>_s+6t_bmQ z5ZR3sEA}Hxk?qJ1q+4VQF;XA9jhVj3jJ{heQyZCGnJS zB%%pxqEcl}{7yI_BVYp_zXsd}9;fzF>#60`L25I#lUhwtQ%k9>)P9PRI!djeosnXu z4pa2hE_iubg*fOz3@Fpz)92}4wK&aAv(o))XP7M9fHbGTWaW%7)crh=SRy z46=djRCX>qn(fO@KsKJ8$xh>sbceIO*}-h}dChqbq@L`r>|@rMb!Dwtd)Ax%opoew zkh_5$h>%WTcdjefo9oG~=hkvO)cHVlZuxv2Cy_R{0s4OrNZB82)u}F_e@^oM$Q)k%t-Vx_Lq1F%U%?aTH- zC-B*v9P>ZA;VGZ-!w#|#3G`2|{;K+^y2xCUeerdK9moB82R)ORcRnlQeyj~X_SwJx zT+ZEG#*zp(cHk z9#nsaH!NnCvQc$^ZX>sVJu|J`ATyFmL>$;l#2Ncd?vi-^a<(4r1G&x5RUQiBz63PG z3sME}38f1?wdo9%G%#bV86asQ9U$>Fdl@ zMy0;YtY_D<= zS`Dg<%Bq~ot06V43aY3|s;nw%AGNRAPwlS`PzS1m)WPZyb*MT_9j->ysJdKTp{`U{ zsjJmB>RNT3x?bI&Zd5m^o7F99rn*(#rfyevs5{kN>TY$9x>wz&?pF_}2h~IBVfBc5 zRLxS4smIlrs;ZiLLOrRTQctUA)U)b2^}KpPy{KMNFRNG7tLioNx_U#ssoqj=t9R79 z>OJ+o`apfCW~-0X$LbUHsrpQPuD(!Ts;|`7>KpZ~`c8eXeo#NEarKk>S^c7ZRllj< z)gS6l^_QBXw$s{c9kh;GC#|#AMeC|{)4FRtw4Pcot+!^<%o?OwG+480HqEXfnnOc1 zr-o@R&8^{@NAqevjnMpBKqECuqqU&MXspI*ycW{JnxKiAq{*71_0jrj{j~nt0BxW) zNE@sT(S~ZnwBcGri)zcY71~N|m9|=2qpj7}Y3sEO+D2`YwprVvWolcsZQ6EihqhDO zrR~=CXnVDN+J5bTc2GN{9oBRjpq8Z_(~fH~P1Q8*gmzLprJdH!XlJ!^+Ij7Qc2T>e zUDmE>SG8-}b?t_BQ@f?z*6wI`wR_rq?Sb}C%hn$03(G#yo@&pu=h_SHrS?jDt-aCS zYVWl7+6V2U7S}#$pS3UASM8hjUHhT^)P89>+JEku>v7`eo&VgK|8r;ch&Up;PZx1T zyb)g{5FsPM2ovEWp@BSRuX^|St7Vi7fRQm5o=krNSjq<6#=G3&=H z5jbLv*z~Pok>Qa@BpO*BSrIuMITJY>xf{6`xgU8Dd8i-l5bYK19W_P&QQQCd{EsZq zUANlCNXKZm=q7y&k9Z=RBj+ORBj+QXA~})G(Jj%;=+@}A==SK2=+5Y_=CO~DFqCL3z$ZOaFWCD2%h+(>62e1>^1y~GaQf-EP z0BXo>up1nPVus>|5{8n7QijroGKR8-a)$DT3Wkb?N`}gYDu$|t6ho>Z%}~vdZZI0E z8)_J88fqDSGt@TJG1N8GGt@VLh73akLqkI&Lt{e|LsLUDLvuq5LrX&|Lu*4DLt8^T zLwiF9Lq|g=LuW%5LsvsLLw7?DLr+65LvMr0U^Z;fHL8#@Bk3Rd$8v!wzNF?UaMG{D zF#Y#e;-Bk(J6BpNk<=o^svjGkG%#sHO3uG=eNN)mR<_`Cgf1ABnIz&>CtlimX#fR8{N_yl|gz5ri=Z@_op2k;ZfNb)8n zfR7*JA3uHk{P8b8{oBXCd*Hu5=6sCk*;W6_vAR;v*SK2G*w`yAE4ntmF1|j#A-*xr zq-9^ecl-IHui23s`!YAhHy-_&rOz!KjqhK(MccADesRm?E!kV%Y+0STJaa?l+RTHQ z_cE_%YMIycHQnQx4>Ff;-4fro^@*M_=F`@nTQlQ3wq4(LYun>(Z?^r|wl%&jet5gO z{rvX3+qcKp?bs3DtY-&$wqs}fsJ=49vt3Vj?TYW#neAtF4%nyNUv_`p{d4!`J-hZC z+4jztgJ9yyWnS&<|K03HY=QSQX{OEA}@Twz6;-8NEJaRPt^~n085j~rCR($u- zy+@D5j~%^u^xDx|NADhet;Y%-k4Lh0WSz*`lNF0!&&tVCwaXmKG?0-eXA_puR5puPp9Ii<4<(&=%?-{y;C#w@&Bu~>csjJ z8&8~xpFDBt#Pbu`Cw}UysDC}_`O`N}pO5c5b0NO(?8W%rvsq^^#Xp?Av+atW0si^9*XJ(Buf(s$ zuf-pqzaD>n{@H~adc5_k3;QnKia)sY?9%GXx8rx>moI;~yy?o__}y#w;?e87t{=I6 z;d)$ml(icdZrqPQh(C;H#~;Nn>F&$rJ1_2hzq8`*mb;JRJM{Gip2YXudm7KW_e_sK zx^e%79$)nE!K?UdJ+?@FxF&m*o^@%no*iRd_If>Q#*yqpI&b`X_Enu7o~^UQFY7$? zRgd25?DJFl%x%`AgOA?E59_nHhx9kVclFtrck$bgET=<=iQkKR7o_W01_6OYe7 ze)#ys~P{pGLt)mJ(3e~c?h|DP(k{&j0|{Vy#^s*ViLbwqijBgbPbr1^gzd*k2=D<2QKJ1 zxK~HGP5M}JK*zg?j*9z$>BbqxnZ{hkbmL#RcUVWufYD-f7;$4%N6=!%QpQHcI>t&y zz}U)|t>YqQv>90=ZS)x-W5~Dycn6&S8$N0}e*GOG%NYw9#~c4JuF^4cr127PPshrO zI@(>)5jO|8`!}?_0sI2)0Go9b-l*eo*_4C&ShiY6!`(VQuhB=fJvu^f1(q3?0spJV zv;SLv!ss_5M!WGJ`n!!T<3HEmWAqyTx&A>TV1Du+eJdjhyix`cE=WGmbR= zN8@FZ!D28NY=*r0*!|bYzXd3twhO3`Rwi}D-}L|2H{Acbd;X)l`+v4I|55$9Oa@bK zQyx=MQwdX9Q&m%nDb-ZXRNYj|RL@l3lwoRUYHVt1YGrC?YH#Xb>SXF->S3~&>?Vf^ zGr3HDQ@});C{xhHm^c$}3Yo$t!6cd#Q(sd*Q-9L{(?HW8(_qsO(@@he(+JZ@(S6y_ole%tLdBRyXmJX#{`&jnUl>1 zb8d4Ub6#^kb3t<fXgU!RtBh91CznjOH$C}5PCzvOhrb(9xuHBzUML@wA1VL=KtZSoR17K(m4r$|WuUT9MW`}V1xkU^plVP$R0FCF z)rUYR18M*@gc?DOp(apMs2S88Y6-Q5+CuH1_D~0?6Vw^%0(FOaKs}+}5CmBu7_ve( z2!R|B3OOMcghL+43;7@d@C$gCbBAS^=$s)KV&`ano^bUFteSqSSo;n2j3VnmVLqDNkP!5!U085f3mnGR^u;jMn zvj9MTO94wEOJPe9OHoTPOL0p{ODRifOBqX9OF2t)V9>I)V0*J)VF|^3`+w`LrWt|V@nfDQ%f^Tb4v?LOG_(DYfBqT z2TNB=4@)nL$zrxZ7T997I4r2eX>nO_i^t-%_$-7aU?DBEC1_zSoJF)Kmcf?cmJycG zmOm_GE#oW`EE6qLEK@DhEYmGBEwe21EDJ1)ElVs*EfLFd%PPxi%NomC%R0+O%O=Zq z%Wlga%U;Vt%OT4V%TY^~<+w$&oV1*=oVA>{T(n%WT((@XT(w-&^}lYpVYz9!ZMkc? zXL)GJw&+XKTAo^-S)N;7SYBD)Sl(McSmKs1mK=)#&JE{>3&MrqqHr;|BwPwE4OfDz zz*XT?I1R1_8{z734fr>>4qPA3fE&P#;Kpz(xDDJ1?hJQ9ju+KU93H=y{x^h zkkw{Itxl`Uid!iwW96(NYuKt-`&$QDhggSNhgpYPM_NZ&M_b2P$6F^@r&y=z@~2s+ zTW45jT4!13Sm#>jTNhdvS(jLsStHgJ*45T^*7ep6){WN9)-Bdd>sISF>vro7>n`hV z>mKV~>wfD2>p|;bYnJtx^|&==Rjp^O=d96E$+pF|)waX7)3(dD z$F|qD-*(WJWjk&=X**@RYP)W`WxH>CV0&oGwmq`Fw7s&uwY{^wx5aIrY@cmkY+r5P zY(H!{Ho%_Co@_VRbKCRT3)l%h}7@E7&X9E8DBstJ+iT zMtgNT0MxYCve&lPwKuRgvNyIju{X0fx3{pjw70gmvv;s}ws*C6v-h<3viG)|>}I>g z4%@AEo84hY?M^#pciC~f$L_WJ?0$Q|&e&NyZx`*7UA8OsKK8!$LH5D+VfGRBG4`?c zN%qP1DfVgh8TOg>+4ed1x%LJ2h4v-(W%h_YYF}<&VP9!qWnW`oYhPzyZ{J|wXy0Vt zY~NzvYTs_(Y2R(%Yu|4_WIt>_Vn1rnvd8SIU9+FGpR%8|pR=F0U$I}aU$@_|-?ZPd z-?iVjKeRu!Key}Y?(FaE@9lB>XZu(CH~V+{5BpDh!k!CBMhr-91OW0Nd65E0L8LHJ z3@MJ3KuRK|kkUvQq%2Y%sen{MDkCXKDw2j6k?KfIq!#iUQX8p<)JH(1A<`IWiZnx7 zAgz$rNE@Ub(jMu6bVNEKoslj`SEL)#9qEDeM9c_;SP&SoB6b8pFvNx6hzIc^K7`Qa z2M`LOksuOA1Vlt6L_zu>eUX010AwIC2pNnFLxv+GkdeqJ{xA}f%U$SPztvIbd;tV7l# z8<362CS(heiEKr-A={B1$WCN8vIp6V>_ZM92a!X_VdMyM6v;x4A;*yzq9Ph{0y%}8 zM$RB-k#op-3*2j-rlYj^YjgDB&pSDCH>aDB~#WDCa2esNksRsO+fX zNO7b((j4gyqocZ`hNHG4!_mOe$kEu*#L?8z%+box+R@h0-qF#~$-I|2^M5p;wcfQ4?xLArwZfs2xR62kJyI)P=fH9QC3;ltBGx03}fx4WbOnq8u7V1yn>OR7MrF z584;)hxSJYpaaoC=wNgRIusp-jzE7$|3Js0n7w(M{-PbPJk^Zbi4D+tD59PIMQ# z8{LEMMfafx(1Yk9^e}o9%|ef%F;qo0^aOemJ%ye|&!A_~bLe^WB6K!2jY z&>S>@0?s67vNN|ck29Y$zq5d|ptF#(h_jfpxU+<_q_eEEoU@{{va^aa#hL0%b5?U! zch+>)ae~eU&W6s$&L+;5P5@}_Y~yU}Z0GFg?Ck8~?BVR??Cpe{u+!>vI$ch;6L)%? zUMJxUI7uh%3_2Mn>*SogGvo|A1*hngoU&7K_Hzz!4t5T44s{N9j&P22j&c6!oamh7 zoZ_77oaUVFoaLPDoabENTj{MF74&W+A3&P?Yv=XU1~=T7G? z=Wgd-=YHn_=OO1|=Mm>oXO{Dr^SD!WYR(hR)6O%_v(9tQE6%IV8_rwKyUu&g`_2c> zht5aNC(ftN=gt?-m(JJDH_o@tch2|D56+Lyxbu_qv-6AdtMj|_r}LLH#|dD$umV^? ztT0vtD~c7vN?@h1(pVX+ELI+?fK|jQV^y$JEDcM?s$(^xK2kOqdyiFbf7_R?LPWm;*yG zC+5Q37>;=`FXqGah$bw6kr;*17=y7GkA<)>CSW2aVKSy*eXxPpAZ!RW6dQ&O$3|kK zu-~!K*dN#!Y%Deo8;|{oO~58%ld#Fy6l^Ls4V#Y5#Aac$u{qdWY#ufrTZApfmS9V< zWmp7@V#~1=*h*{_wi;W5t;N=38+7>_u}#=!Yzvl&ZO3+EyRbdjUThz>A3J~@!VY6u z*fH!l7Q<9b!%kwSurt_M>>PF;yMSH7u3*=&8`w?k7Ip`_i`~N>Vvn%L*i-Bo_5yo_ zy~f^PZ?SjS2kavj$39`7u`ie&Oo)BQeqcYbUsw*7zyMd0E0-(TWpL$o<#FY8<#QEq z6?7GH6?PSI6?GMJ6?c_zm2{PIm3EbLm3LKeRdiKyRd!WzRduDfQeA1TYOZvb(N*15 z!&TE&%k`V9wyTb-uB)D_z6*3^xEi_|yPCL~xthCLxLUeexmvs0xZ1kfyE?c!x;nW! zySli#x^zyBtGla*tEa1%tGCPKGP__G;_|qBF2WUbF)rQ}b_p)grMUXK`nv|W2D%2h zhPZ~hhPy_%es_&^O>j+iO>s?gO?S<3&2r6gEp@GSt#Pe&ZE$ULZE|gPWxBSycDeSt z_PO@E4!e%HvRs<$gzKd1lx%2D>zeDj>xS#5>z3=b>%QxuE8F$N z_0;v;^}_Yi^~&|y_15*?^}+Sg6?c7deRh3u{c`2F0Cz5TvOBjsuREW+pu3Q}u)B!6 zn7f3#q`R!Uyt|^iio2>i#hvP|=C1Cp>8|De&0X7F*ImzD-wnDOxEs0~yPLS1x;wf% zxx2W#x_h~MyJ5H0ZF3`ThZ}WcZkOBb#@$}G-%YxMZpO{JIXCYPxx;SBt+@NR`?~wN z`@09Y2fBy2hq{Nkhr36*N4x)Uk8zK6k8}U&p5UJ7p5mVBp5dP9p6y=jUgBQrUgnOt zSGZTYSGiZa*SPfgw%`@H*t`;z;z`-=Oj`y+*`@Z|3JKO!#{oMW1{mT8u z{nq{7{lWdw9e00n>j{_KU)|r_-`zjmzuYe!Ku)5HExm#*5;` z@Zxw0yd+*4FN>GM%i|UBN_b_wDxQL;;%Rs_+=$o2f5U6zb@2K)h-csp@P>F}yb0bE zZ-zI=Ti`A6R(M;y9o`=AfOo_@;hpg=csIN|-WxaJW*ovTIE-6y8*axD+<`lB40q!m z+>85g0{7zqoWv=d#)CM6b9fjRa0!=j1@D9R!~5d{@PYUsd@w!)ABqpdhvOsgk@zTl zH2w!Z1|N%$!^h));uG+R_#}KXJ_VnOPs69{44$q|BnB_f8q%o@EAOKJ^4KaJOw?4Jw-evJS9D4 zJykqaJt>}4PnxHiC*5Q8)b!Ny{N}0cspF~d0X+>o4LyxKjXg~~%{?tVZ9Hu~?L6&0 z9X(wd733B^8Q>Y@8SWY7`Q0FCXNG5)_K-@Hh4C9HhZ>sGCf;8+dX?d`#k$S2Rw&7hdoC;M?G1dW1iz4J!0LX zdNj`|&uPyY&sono&w0;f&lS%#&vnlY&rQ#5&mGTQ&ppq5&jZgxPqycg=dtIB=c(tp z=cVVB=e6gJ=dI_R=e_5H=cDJ7=d0(N=ZEK~=a(n9H;*^3H@~-#x3IT}x0tttx0JVx zx4gH4x01KAw~9B_o93v-#VL2mO!wchpK4c^V(E#6G;R_`|NcJEH_ZtouNUhh8dLGK~&Veb*|QLpON zyeGY^7-=n3i=B9iusEBO8UzB%K0kzs`#q<(tOo?>ApI?y1sfo(3jzB;A`k> zTBj}?rY&|?Q7#}=j-I_?Cav|>g(p~?(5;};0oQIDukfJ6q-fM`fGA{rA-h^9m{qB+rmXi2mpS`%%Ec0_xk z1JRM_M06&)5IT2{=uY$`dJ|>>B4ENw*a(Dh5Gdg!Fv3N+2@l~Vd;~!R2$G-(nqUcz z;E50sCImtxWI`eO5PgaM#6V&YF_;)a3?+sU!-)~ZNMaQ6J29I0gBU}MCB_lsi9d-6 z#3W)eF_oA`Oeba#Gl|){{5iy2VjeM{SU@Z!77#0p|1v5HtntS2@S zn~2TC79x|_N^B#x6FZ2V#BO2_v6t9K>?aNohls<(5h9B?MjR(%gi4$sP7`N{v&1># zJaLJ*LR=-T5!ZX|#0%mj@rrm&ydmBa z?}+!r2jU~4Cx0Nm5MPOJ#CPHc@ss#P^Jyx`}6wq`%C&u`OEt&`78UY z_*4AV{MG$6{5Acx{I&gc{q_BzKf~X^-`L;8-^}0K-@@P0-^$;?-^t(E-^JghDpXQ(CpYLDfU+iDvU+!P!U+rJ(U+3TG-{jxy-{Rlu-{#-$ z-|64w-|gS)Kj=T~KcdUe@}Kgb^Iz~^@!#>^_22hD@IUgu@W1rG^MCMv@_+Sz^MCjM z@B@M5fFY1OkS9pe0tpaTVZ3FEB?E{?xT?5?$Jpz^h9Iys#0VLoEpaEw93%COA z03PrK$N&|f15AJm@PSZ33`hYb&?nG0&@V7BFeorIFf1@UFd{H2Fgox@U`$|aU}9i$ zV0vI?U{+vuU~XW3U_oGEU{PRkU`b$UAQD&+SQS_w*c`|VYz^!P> zt;jZHJF)}Wk?cFTuIO!#QBtiPg07;S*Ns|o8 zkvth91yUp>QYIC$580RONA@QNkVD9!roqauvCnTtluS*OQycOmZu^joeP|B=?Z} z$OGg-@(_81%p#AGF;XQp@&tL3JVl-+&yg3%OXOwp3VD^hLEhB$zeV0A?~wP%`{V;M zn|w?@C7+Sc$rt2H@)h}-d_%q^-;wXh59CKOPJSXklV8ZMQoJ?CRL02jjBV{r9di!YCtulno=#OR#a=M9o3%dKy{=#QC+C6R1c~r z)tfR=5Cv0K%0@XTl)@-C<)wTSL6HgQ&sO5Naqj zj2cdjphi-osNbp4)F0FsYAiLL`jeVKO{S($Q>hu$ENV72hnhz%pcYe0sAW`?T28H^ z)==xH4b&zoliEscqqb8!sGZaQ>2!6v7X2Gto32CGqd~d>-H>id zH=~==E$EhXYq~Anj_yErqC3-F=&p1(x;x#2?oFF$h_=uut3VoHnMqj6I(s${5^nLmP{gBS4AJLELr}Q)W1^tqKMZc!s&~NGY^e6f={gwVs z|Db=-Nx@vfnYk!PH<{uv#!Z zXbjc})(X}Og24vChQTJmrom>x=E0W1R>3yGw!!wnPQlK>uE8F`p26NhIA{yngN`5? zbOy1YD~JdE!9b7<(!pSm4~Bw5P!9GD_SfYP3=Rqo4h{(p3yuu_9vmGU6C4{HADj@J z6r3EK5}X>G9-I-J8JrcI6PzDh7+e}$7K{W}1Xl&u1~&vZ1v7(NgWH39f_sDeg8PF9 zf(L_#f`@}ggU5rhpc>SICxRz~r-G-0XM$&gSAtiA*Mhf#_ks_C*}+G_C&8z|XTcZ2 zm%-P;H^C3VPr=W@FTt}L)z2bn|65hjZ{#vEs2jLK-tN#-$vo+Y7Y%TUTwl-Ubt;g19GuQ@fL$)#7gl)<;V_UE-*;Z^D zwjJA^?Z|dwJF{Kbu5359JKKZp$@XG_Su1O25f){gtc!KCURHnq#`;;3 zrPv_Luq?~5AvVm4ti&p8AGR;skL}M6W{0rD*x~F5b`(3B9m7swC$f{+DeP2s8athx z!Ompouyfh@>;iT%yM$fJE@LBXlwHoQU{|uM*tP6Bb_2VK-OO%bx3b&V9qdkaH@k=3 z%kF0n=<*M;huFjHQ8tS`#vW&5tjcQa3HB6whCRn#U@x+l*emQ+_8NPgy}{mOZ?kvU zyX*t@A)C!UVjr_l*r)6>_Bs24eaXIJ->`4lckFxiBO7Nwv7gy5>{s?1`&f-vdUGbu%vm^?vvM}h&LNzG!#Mr^=Wx!$c{v~F=K>tb(Oi&YIF{o$ zo(pkdPT)jN;uNkA*O%+Z_2&j~1G&N65N;SZoEyQ7;(q5wb7Q!%+&FGL_a`@jo5)S# zCUaA{8Qe^67B`!l!_DL7a|^hI+#+rxozBbZU?uM+r{nX_HcW-ecXQT0C$i(#2x02a7Vc;?ihERi*YKaaVNNw+$ruf zcZNI5o#W1P7r2YuCGIkJg}cgK%IhTm%dh7*@EiF}{APX&pUH3Kck;XWJ^WsNAHSbJz#rrf^I7~cKE|uO z#-HF%@~8Q;{CWNYf1SU{-{$Y|clmq#ef}Yz%|GHF^H2Dv{4@SJ|B8Rjzv18U@A(gW zod3*!;lJ|V`5*jGK8H{6Kqx7cE0i2Egz|;*hYExWh6;s>gi3_UhAM?BhpL29Le)aX zQ0-8iP~A{Qs9~r{sA;Hqs70t{s8y&k zr28KsEaVRbLR5$j1w(u&6bgrgkQkCfeM0?01408sgF{0?Lqj7%BSU|L#)T$?CWa=5 zri7-4W`t&k=7i>k=7ko77KIjvmV}mtqM(GZ#JoGJ;2m#?- z;pA}caGr3!aQ<+CaN%&#aItXlaLI6~aOrTFaJg`$aOH5-a7s8eoEEMYP7hZP*9_MR z*9q4R*AIi?M&Tymrr~Dc7U8zxcHs`;PT}t1USTL~4#y13~vZ;3~vc%hPQ>chj)f|h4+N_hWCZ{hYy4ghL41ghO@$2 z_(b?*SZDQy&xX&1&xbFDFNH6MuY|9KZ-#G$Z-?)NABMBTkHb&H&%)2cFT$_GZ^Q4x zAHwnQr|{?S*YNl7uW(K{5e9@LA(xOW7=%1RULl{5UnnRP6-o#th0;Pfp}bI0s3cSo zstRdBb)kk(Q}|7&Bh(W>Awy^=G!_7$iO^JNF0>R{39W@TLR+Do&|c^ubQZb@U4?E! zccF*SQ|Kj_1xT<6uwWM)f>Xc*w}1;C!6y)cUkC`KKnb)E6c~XOI3Xm21yPU$Sx|&N zLSLbu&|erJ3={?lgM}f&P+^!bQWz!tF8m>k6UGY@go(l=VX`nqm@do^W(u=}*}@!Q zt}tI%AS@IX3rmD$LPS_DtPoZSYlOAJdSQdGQP?DG5w;0Cgx$g(VZU%tI3yevvV>#8 zaUmvX!U^G|a9TJcoE6Rs7lo_Bb>W6^OSmoE5weA+!VBT0@Je_syb<2&`o9z23m=4! z!YARg@J0A4d>4KQKZRdHj*t)lF-c4o4PtIFub59PAQlu0iG{@?VllC}SVAl#mKDp1 z<;4nOMX{1tS*#*f6;s7Dv6^TUtBW>>6NO`=(ZM2iTER?#NfMMQLnP7xDbA})GGpGb%SkrXL0 zC^8}|aw0E=L{XGPS?nYB6Z?w;#6jW^ahNz<93hSrM~T0Sqs1}eSaF;!<+vA9HBDlQYF;&O3?xKdmtt`XOY>%{fq263afN!%=M z5i`ZD;&yR|xJ%qE?iKfm`^5v|LGh4yM9dP8iO0p5sEV3+QamM|7SD)h#dG3$@sfC1 zydqu|uZh>i8{$pzmUvsdBi<7qirL~L@v*M|6Y;6|OnffB5MPR~#Mk0G@xAy#{3yo7 zPvU3si}+RiCVm%xh(E<&Vvd*)0Vzq!B_&G+DYukI$}8oQ@=FDzf>I%=uvA1UDixDT zNF}9GQfaA-R8}e{m6s|>m8B|DRVhVEmC~ei$tYEqYDhJuTGDS40MwT1NOh%pQhf=O zGNcAlL#dI}L~1HElUhhErB+gFsg2ZDYA3aqI!GO*PEu#7i_}%>CUuv3NIj+Al1YLj ziv&wn$tKw)L~=-|-Tv{Qm zlvYWrr8Ux8X`Qr1+A3|Ac1Sy=z0yJHkaSEsF2y8OIw75sPD^K`v(h=~ymUdjC|!~+ zOIM_;(lzO(uK#W6j&xVLFFlYRO4-t5>4o%0dMCY?K1d&>xb#W-EPa)}OFyKaQjV06 z069s{B`3=UIk%ig&MW7W3(AG$!g3M0s9anwA(xWN$`$2Ga%H)STvbkyQ{^nnetY7yS!80CGVE^ z%KPN~@&Wmvd`LblACZsB$K>O3Ojc!0J|Ul!Psyj{Gx9n4ynI2vC|}a`zbapougf>& zoANFBwtPpvE8mkJ$PeXg`H}oYekMPcU&t@zSMqE5t^7`YFMp6f%5nLV{8|1Yf0e(> zKjfeCFF8j}$bgchTC6tm%DW$YhMk%Y5 zQ_3q96ac8GR8p!aRh1MaRY_B-Dd~z)sjk#eYALmqx=KBzzS2Nxs5DYqD6Nz>N;{>! z(n0B{bW%DiU6k%h52dGKQp^gZSQM*bQ|yXEK^07KD;~wC1Qb%C6h`3`UI{5-MN(v? zkJ4A^uMAKIDnpc^$}r`3WwbIz8LNy_#w&j+lawjSG-bLnQ<ZK8Bz0$g+wN9&?=1UXO#56LEN~@CAIIU4yhwAOB zZvh&lG)zfOH6&I5_Y)5iV9IKsOlqF$xvQTto->{`s>YZxVq9k2X54CQnKC1FTI%%F znW-hg{{q$rq*OUoN$r!`H??1C|I`7g15*d3{!_iir~jEgA$?-{r1Z(@Q_`oVPfMSk zJ|lf*`mFTX>2uQOrq4^CpS~b{VS3;6e(C+w2c!>7ACx{geMtJy^kM14(?_I_Odpm0 zd-~|~Khnpfk4+z!?n@`q{po>pGM!4N(}U?uI-9;B1prbSq&7%vP_03F17m~g4Qe!~ z*`QW~zuMtTB~tyVfmAY;N~KeSsZ1)H%BAxEtd0M)z5lyyCna(vk`s>;xf6L3c@y~( z`4a^a1rvo5g%d>*MH9sm#SyKtC7&Nst0*FbFar3vwV2hQKf=fFdY?GN^!kz`kHV zus=8e90(2q2ZKYvq2MrZI5+|v3627P2S9^3$K1UG@3!7X4WxE0(6ZU=XO zJHcJxZg3B{7u*N#2M>S;!9(C-@CbMm%mR;r$H5q=f*N=NJPDoxPlIQ`v*0=KJa_@T z2wnm&gIB<-;5G0%cmuo%-U4rfcfh;gJ@7vG0DK5$gO9++;1lpE_zZjwz5ri>ufW&f z8}Kdo4tx)O06&6p@Dup?zho~=Po9xHGkI3>?BqGgbCc&K&re>EyfArD^5Wzr$xD-$ zB}bB%C$C6enY=1_b@H0zwaNdo7c-N$CT~mLp1dP@XY#J(-N}2B_a^U4-k*FR`C#&) zfF?Msq<4yr&Ud>mIkNMX~DEZX^_$KHwLgxXAmPge;U;}!I;h< zcI!;)zj(tw<6r#Zz~9)ywDB+AFspNgd7VQYHVQ`3C>dp=V(eoaW&GVZT4zs>F^)Bk zGXlVPvJh#;H12dzNvwali3^@u4x>_{jL!n7{h$v=U%tu*$#j^d{*X z@Uuzxfs#qjfr?4bfZ9o~f%8ePfZjg&3DyFaH<;3JYQseh7dKqeFw*c?!?O)9G`!gGN<%Q`Vd9ZKVyC8N=zdkPl)u;h z6I=)`0)K%yU>kw4a$Gs?96ZO9 z@VAy2lXRASve977ZOmiLYs_cNZ!BOesB`5D8;cl=>P++E#uCPoI^Vvuv5c{- z&LS^wtYECDGw&-Ks~D>qQ;ey`G-EZLr*AY?H`XxLG}bcyW~{Aq^XnSx8S5KCV}`MT zv7ye^Z)|L0Y-(&~Y;J5}Y^k&MTN~RL+Zx*$+Z#I=I~qF~I~%(gyBfP0yBm8Ld+K-C zzh7=Eca(d|LnT{zq&!xhC{L9a%1cF0|E_#feknQ1|3%$dcQ>^*ZM?X$fi@MOxZ42^c5ruhcXxMq`{(-=p7{WiwSIeNuetA;xvoE1K|pz+ zB2Wpa3{(NC0@Z*TKuw?)PzR_B)C1}R4S}XWGoU%p251Yk2RZylG-~tkWL?8)p1Ia)NFcU}x(tr#gvnWj@0C)&I2A%@Xffv9_;5G0DcniD(J^&wq zPrzs3%l|n4ufR9pJMaVe3H$kZBf{nn& zU=y$@*bHn5wgOv&ZNRo*JFq?20qhKR1-pYi!QNnBupc-G91IQthl0bv5#UI06gV0j z3yuTFgA>4s;3RM|I0c*vP6MZdGr%%e5YP+;gBH*V+CV!P3WkHxU>q0^Izbnh049P- zpc_mEQ^1*ED(C^zz;rMZ%mM)r1R)RwF%U1y@xL4dNP-l|fIKLI5-5WzsDV1@1N~qQ zm- z{6B!7z^~vp@H_Ye{0aU7e}h3#IjB5T0jdO5hN?hSp=wZds0LIMstwhJ>O&2oMo?p@ z3Dg2=1+|9SLhYcxp!QG)s1wu~>IU_K`a=VuA<%GW1T+d71C52oLF1u`&?IOIG!>cw z1w$6d3fZ6#C=?2V!l5!fJSYZ=h2o%i$O*Zi1jr2~Ln%-yA@nhg~|MbI2*E>sFFf|fzcp%u_d zXce>;+5&Bb{)2Wvd!W70KIkxX0y+tuhR#4|p>xm$=n8ZVx(?lhZb5gTyU;!85%dgt z3B7_|LvNt>&T(65v~kZfy?IK;c9RVxE5R+t^?PD>%$G; zhHzuJIouL%1-FLV!R_JBa2L1-+zajv_l5hx1K~mN5O^p&3?2cGfyct*%X0iL#{_sH zJPDo*Pl2bx(_j;9hJ#@XY=v!b2pk57!x3;K?0}=;SU3)jhn;W&oCqhuZa5iEfoH-V z*bAq@8E__?1p_b$Lof^@Fb3l=2{SMYbFctQumOK9Sn%y*2aZVXP0I3B+#eJwxTWp%!?b+%U~QY}lMkI@&MC;V`s z?rg?JhYc=tGJ~@y_>7x|CnjW=JNj=ro8WnguYev2fU^hB6*2C~S!vFb&i>{H;8a_w z^*FsOw^xjuJU4~q&e7+S51~HUQs58n;JeM=W-Hn1Yl+sNpo8!c_!xWwJ_%odFTvN~ z>+ntZ7JM7N3*Uq9!w=wx@MHK1{1ko$KZjqyFX314TlfR~3H}U!fxp8);9u|`I0z|^ zR6r^rm67U5O{6wb2dRtHL+T?9kcLPjq%qP2X^ON!S|Y8G)<`>~J<EOn zpdLssqz}>;>4*G{^hbsu!;lfkNMsZ;78#FBKqexSktxVjWEwIZnSq!PGh#(-h#d(* zLXj{e9Em`p5K;OTxMgk^o>@H4vBA02`EL^D^UtlEmF~_%H^y0PO>An;Nw$@LVScUP zqghoVUc@!aT&>z8-tax#U5KvHU+A9DCr?uL*PP+G!{%R1ZI;)NAY+%Km&Fm%rPOPw zms88dC^6rlR|V0D)ngCE&d=EwzMo@q9f7rl+jAN-J^W*wd(2mDF}4*sD|1%o%*d^h zJTtb4OI9z>HR8KlyTP7VU*h@nGV2@1ku)S7$v`rZECfJ61VUg0K~Mxo2!up9ghvEKMifLvG(<-XBnQbwW+VAX0TMt8 zks_oRDM98SbCG#SDY6h*j4VNxAuEv8$Xa9_vL4xhY()M=wjf)PZOC@yzcT(ik=@8% zWFN90Ie;8Q4k3q;Bgj$Y7;+prft*B6BWIAa$T{RZasj!BTtY4*SCMPTb>tRu8@Yqr zMeZRFkwXw1vjey*tW9|8+?;>k6Io_-QYT@5em>FL+#+Tm--t6*y!OVdqCT?h8uz&oxCciktY_GVk-3o9YIZ6xB>>Tvj_jMxG+ikvGU&~ebYK&WPRTfAI6MjSDH zr6r`E=@r+?`rVQ_bA?UGu2^s;urDnk5Lq^VDWVc8qbjPS2AYHBqO;I^v;YmD#ppb= z6kUKWLYJV+&=u%PbQQW9U4yPg*P-jt&FB_%E4mH+58Z+8M0cTk(7ot>^Zm6|B32ozf>p(;Vb!r3SWRp+ zx+3@rQa9nTRx#p%>sB;_k4R~29>N!e^fRr43UOzQ9`mN4g>{Hs&wyPW3iz;&NuyGf zyec6dyzA+|)W4l?>CI3VVIO)jP?|G2{tI}@NJt%O4feN7oylg3??NlvPMcbo&RGgc zBd-d1z|3UdBj)1ngoe>;f-7_7;O*o~?_I{?4tIQYoIuwlG)P$G>h5Y*&@*9oj-BWV z+nk*vCfc#o#liiZonqwF2c|)OLzQBC|Bq z1=bR4g|)%jV(qZMu=ZF-tP|E5>wirKLcEF6o#;xQK%6qJA^VJX;5EEV%$ zX;=o9iDh8`24WBfV;DwYBt~I0#$Y@qU^1p)DyCru=EMA0HkOO!VY9HdaU=GSreytj=Zu_t6(Y&%z^C0=kP2U%UN$=UUT=R_gcPe&i?Fnnj6 zE%yq%HMTHTggx2m83a6qScQDB%+Bo)ZZdyNd!92ru?2B3Yl-&`b1!nUvmmBV7%%o9 zTE(=9t)JVFSy05gj-(Z#+cQv$qi}WD0BD?fFjN@xI4&+?uXj(XhW@l&3Y@T%vudvD z_SyLrd?)=wvgV_(@+zm6@2)K{ zox#px7qE-iW$X%e4ZDurz;0r>hR>dxSm3o|o}|iM__&VehdI*hlOW_8I$v zeZ#(EKe6A~AFLc+5wC<-!K>oc@alL?ybfL$uZP#i8{m!b#&}b_8QubKiI+3IfnVFS ze7LCg{GJ6Rjzz{_rk18P7MHj`eucG0a-lgjZil6{H_8%l7AD3ACiUWI<;x{&j! zde+OVAI5-i44Lkaa*r-3VVA|UOPdw(27iSNE7+X6HnBESIox7t6Zqy>8Q#U7m7SEx z6g>=`m;W0cldHH6+nYxWjhGX*F?)dfyMF*b#`-p{QTT89Y1D+$gXVcf+l`KqaGYo( zo#x!~c}#IiTupYAT>nqbAY=yVM+u?uV9q^8LC%iM>1@DS?!@J`>@Sb=t zyf@wl?~C`t`{M)ff%ss2C_WM&jgP^{;^Xk~_yl|sJ{g~aPsOL<)A1R&2{+@xxD~hI zc02?R#l!IkJQ8={QFt^SgU8}=cs%aJU3dbXh$rE0JQ*)@yTNDTskjIC;%Rs~o{4AS z01n{w6Wbwv71_sBE^4*Ayz(}xM#1T#_0X@3zjD`GS~0tfDG?7X4s$1a_Xs3$2@5%3 z=YD5y&V-mYo=!v^^Hp=Lvi+0A_!4|Mz7k)Bug2Hm>+yf^4fsacHq!?)xA z;XCl1_%3`mz8Bwz@5c||2k}GrVf+Yw6hDR^$4}y?@YDDi{49PBKaXF)FXET*EBICX zI(`GciQmHS;rH=}_!Imo{tSPPzrbJOukp9|JN!NVp^X1W{1g5e|AK$Tf8amy-*^yF zjwnx5BB~J8h?+z#qBc>Ns82K?8WT;3rbKh1CDDp#L$o9QBH9z3iLOLXBF($Xn}cmo zo5Xg9N}N*88}rS)<%zvH3pY0=m;?RkR#}_ouN5H$Up2K149vo~HvW^2#m4x6649K= zwZoycLmwGK68V(k{L8SGmKD{~{)5kBVSk(W!rf z1VeBHPY8ra$b>?ughuFuLHLMlB8LbH$|GhGvxxvvL=+Px#2liOm`^Mq786T|rNla7 zJ@F5*k=R6RCbke;iS5LH#13L7v5VME>>>6N`-ua@L1KT{D7G;9QS`9H`BraS$^1Fy zHQ64^YDa_EXVEd9cg}YHOv}pr-`4q_JN%WbMPZ`5r@u|a+?*pqf!$B^G4JvuIL<{h znE%jrTwYN!$hVN4kVqGO4?Pm-WxWXoTkko_yUJ^!rnAm&ao>{xOOa!NWxuwNkc)$v zH*wQ5di$qXn3xv18Q?*!XV?VP8asdf_k!e{;dAa8C_Fa#ru(^nfPaKl&$*sJSy#53Xr@sfB&ydmBa?}-n@N8%IlnfOY4Bfb+qh+o7XB8V(UmM1Ha70F6u zWwI(+jjT@AB5RX%$$DgcvH{tUY(zF8o084QprGbt3$i8Iifm1`CEJmIk?qM2WJj_K z*_G^0_8@zby~y5VAF?mmkNlhLPYxgll7q-0@t4B0LudM4 zq~6M~4{!yXlN-sfb z?A@&7xS#eFrfxIiRcl;E&O!Ut3``zX+RdBeXd1hS)B6mlv#jhs%JNHZBsT1YEtBkg1e8A^tc z;ba6ENjk_VGMbDbW63x&o^+BfGJ#AalSnt2Os0@C$yCxqddW00oy;IJ$t)5gVGPVmH}F0_W0( zLG`VTZMTfGDSB*B+-t8n?61`IfGzoIP6Nj2S{&CQQ@HOgG!Q*U1~?E%G*bkGxMlARm&C z$j9Up@)`M@d_le>Uy-lLx8ytWJ^6wBNPZ$elV8Yhvq7$mMhg*Ii3>?p^d9k#({bm!r1Xi;cBzi!*r-I`%sj z8vhvg6HmrY2+WRnLa(B$g>H2Zi2%%791E8M#O_%J8Bva49 zkztLah7unOOqrx*C7Z#c5fz!v!rn65+zlv#K5)jnSmKp=ruB>^Sh$e_&idr<>))sK zDp*T=E~|eAQG=-=)KF>|HJlnjjig3Vqp2~}SZW+Ko|-^Sq$W|5sVUS{Y8o}2nn9T; zGZjo(C@W>7>{JL9N`+D3R0I`CIjATqnu?)fsW>X0a#AiTfl8#3C^wZ%rBE}eRLVnn zsdOrX%A~R=fC4Fqg3I`$6h`3`L6H#hPARH%&@g?)@I~DfnhY<*13?SdR=DVsdh5#73j7 zEi-RMV2V^fr5x5N^E11|bUb&GS1hR#xihpO zN}4~OZn+go8S|s zrO*pwYFV3m8nGntT;6e0M{lgwnd($<$kfGmBL^s)mc(J_a$aVjW&1D1R0%bQnoG^2 zN~!tO0%{?(h+0f7p_Wq1sTI^pY8ADbT0^a+)>Hpb8>o%cChA{mGqr`zE8~BixKpZ)8WFY8I#F<1Y6}hoPTDqijp=yYZgLZOhAuEA8R=|*&8x(VHsZbmn! zThJ}(R&;B+4c(S*NB>2)r#sLc=}vTKx(nTv?nZZ~d(b`UUUYA|58apUNB>Rtrw7mj z=|S{hdI%j9G?X4rkDy1=qv+A}Sb7{io}NHYq$kr;=&AHHdOAIWHqmA}n6}VX+D6;y z5IU3&qr>S4I+AwKQFJtY-24EK^xn(ODPcnb_ITTRdr<5%7n1VEk{n;%+AaL5)f83> zt$}QfLE`U{4rifrk*Oe~0{g}JFe9!I3A@3+aeqp_gccT^!#;#>Dl<6mpEk`h%(}?& z+gQ(z3t1Kh#96|6+HpKM&hA+5THt(Ob2*PV*1KQX=i`rgByV=iLv?V(y0F@=r~Wr= zSQtXAG{1=5>ZBL1)rgG(dwiM8h;fqcle2G(nRzMbk7xvouEw zv`9;|Oe?fXYqU-qw2$`F*>nz_OXtzE=-G5WT|fuuLb`}9rc3C#^gOz>jQ=|NUwQ|< zlfFzpq+inC=;};erZqE&8Nv)>hBG6Wk<2J&G&6=7$4q14r- zWo(RE+&NxIO9-o+G|}}o^rbV!c_F4@KnOeLR6^P*Q@O=CNg*4AM0cqFmN+xAPV!^t zYocBt!!kF$kMEc3sCGWSGP6J9QCcN1KjmlE@tD)OP24lRF|JKkXI44ZV}2AdGw)i) zJnwmHu<1*{TR=<4(cV-$%dD{d2?k4$&pq$T1hckUifk*AxvbNr?})EiJFo`nl|hsH zWZsgw!!b>;3w7*Gl1G>{+Xm}MRJL`ss=jK1I$6@Fmr@C${b@(FsGO^%vt6fbDp`tTxPB?*O=?f4dy0ui@D9*XC5&3p%eHl za;axaV2)J)pV^<8?d(S3c1}jYv6z-|^Sw=D9EpRu-}%$xc4i!)*OA98T=E7oo$p|h zbI#<^N$X6Nd@B>Cve$zPq0^a<9J_Lo(q$8$;3~KrQ=Hhux?eq-vDjK0_!}&Ae?c1; z_BZXwy*>AY_l9MRzm@&8b0hFh_#6=DAIKkQE@4hu%37v@wNY}>W7|X1+_Y-ozbUC` zPH_a()Y<_ai9KcK&xgzt<|*@>dBMD7UNLW&_smD;6Z4t*!hB`E zG2fYA%x~roQ=YBDR%NTP)!Eu?9kw3ZfNjpUU|X@R**0uDwmsW{?auaKd$PUQ-fSPX zAKRZD!VYDJvm@Ej>=<@DJAs|VPG+aDCf3XbvliCIhOnV*7+bdg$~xF6HkyrLW7#-1 zzN{>9u?cJ%jsl3XIkdjLjPy9 z68}@em|?l?3sw>fOTMZj#1>w;?oZBltX#hQ^J?D2yJ3N5td*=!D*%jU7O*nGBtEo6(?Qg$)Bj9t#I zVArt!u$$P;>=t$#yPe&^9%7HMN7-ZSarOjzhCR!kW6!e}*o*8X_9}aaz02NbAFz+v z*X$?u3;T`z!Tx6dut8iot^!w)tHf2|s&X~BprD#uBd!V8jBCNQcd6UAV4XH?BL^lk3Ix;r{0Oa|5_R+z@UkH;fz3jo?OcU466o?!tSxf#+K6 zE}=V6NoZbhBlQMyI6vK1UYKPW5##d>_D?pg21?vgGMrbfFd=iHry4RVa!kRQ)NH16 z(pks$h?2;s1z!qYnre#0;+mOv;64Q{fMvMjwQE6KG6l18J1(#u91}(XW}uw6+$rufcZNI5o#W1P7dR}Tp4@KcT<$5Fl3<^+-Pzr} zT38W&wRE+oZTfA;^gsnAV*CmC-+_8qlcX7XllMr{-MEsBQ zxjopvAb)Xg%g9Z1W6wAf98s5@91&(41nmwS4{htJ$B}X03NCw{cCJ{mJd6Cru8U|; z*e&>xXL!^dXPkMIjo>Qh{+HHWI_d;tcB7jU2-m0Brjbluo6=EHX4hDja-@Y!EtpXt zc~`{Ub>GgqW#Jq_K^M78+-2?xca^)wUFU9aH@REfZSD?tm%GQ^=N@v8xX0X6?iu%j zd(FM!-g57__uMD$Gxvr2%6;R$bHBJhTm`-gUzM-MSLbW+wfQ=HJ-z|oh;Pg{;hXZ! z_~v{ozAfK@@5p!JJM&%nUVJ}(C_kJZ!H?q0o zxAHdL&WG@!d>9|WJNPI*nvdb*_;}vQyZ8h?kx$~?ddE4X2@;cY$@1h%UHt$?Z z#aJ+6m9>5x5D`cUmghs=T#w`5kl&5R_RgstOaD#1B!$@F;3b}!A^-Y&WHpLu6gLn& z<(%c3o>de(E^VYYC^0`?nCE!5h8%|bpevl;GP2XXu`k8z$t3!PSi#kBn@ioUf6(->`sk2C z%(>dBS_gnv%Jdgz@~OOs_wt!M#KSzoqddWrJj-*uz)QT$E4;@0_*{NApU)TY0ltKv z!c&t%TM> z8=^wVGyzedBA1K+G%4XYin5j*1Wa=~0R%M)pU? z&v}tkK!#c^&hPn$O|lR#J`*;I7sL9yD}<#bC3*Y$ZY9;rXyYE5+Bmtnb4Nr4(?Lt+ z^z-f<4{SM+JSoDRngrF3uFD0_zmhl^8-wMQAbvh7##GMS+ir=di6)0O^c>8o5KDO; zcvc&^W%_R;g;By7VXQD-m>^6RrV7)9>B0=bB-n%yAyfzx!i5MST5t*(LZ*-<00JmL z0xVzxF33BB+8c7=lmm3pqlrkSF8|1wue56pDosVV*EwSSTzK77I&+ zrNS~{xv)l9E36aByw8Qr!VY1#ut(T091so)hlQiUG2w)8N;oZ?70wCgg$u$Z;fiog zxGvlfZVUH?2f{<)vG7EAD!dS03a^BWxDj3`E6JIie<**PZC?&e+%a|X(WZ-~8}c{h z&#*?NyK*OZ`}^vJPmgY!Iwf_L+hMnJKBhQ)kTf)Qk#o|_Aq829Vq9YKa>Q<0VSW-_ zRJbPLD)TDpjMhwxMQE&LIJ#PVV#v5Ht#tR_|$>x%Wo24X|8k=R&lA~qA7 zi!H>~VjHoo*iQUQY%g{dyNTV!9%4_im)KkEBlZ*j7W<0>#DU@K+0ShR{Z(JqFFp<=igEyjqkVw~s{6U0O@ zNpy?J;!H73Ocyi6ED;nD5fcfK6ffHbMjG=M`*+x?hAl4|=bn>y%#&<64t;R0$r@~( zXC2DqXAFix+tkvnDQW25z%_LVGcfZ&re?X|eh5AcZ<@F@bfp0oXE-m>-{M|nybRxG z`p0#l_Jux`QIf@R)EeBanv3H7~Q#5C@}+?a5OznW=ZS^tp| zX^|0GkrM?`6eUp>b8h`C~(I7^%@=8FYlKr9kV#5v+Tu~eKdE)W-qi^V14QgNBM zTwEcp6jzC>#Wmtuah>>&xIx?`ZWgzQTg4sXPI0%mSKKci5D$rm#UtWT@q~C%JT0CP z&x;quOX8I>{#V6o;&t(ccvHMB-V^VO55*_qQ}LPjTznzE5?_mN#CPI*@q_qL{3L!B zzldMOZ{m0HhxkkUEe1*Dr1Da0vn$b(d?BQ>sbNA%Nvd;yWGtA)uk^l7eiEE5lt)Lq zhggd}8|WRui6JqW4#Jvr9C*P`ac4%gwNja>>hpq-z@dbA|0Yfh3GqyF_F`s*cQ8*3 zG5e<{RW~({`k*dKHo0oyPcr=cckAcEdQng9n{!Xm&WNf0BXUi?7N6uFpHMN%60dnj zV!Mq&=-&`wA8cNo{m$Dq@(>+^sh))nII=mkn>EEZNqZaK2I>f9WlgeuC_8^vkSa=* zq{>nisj5^>sxH-#YDu-FI#OM!zSK}^BsG?rO3kDeQcJ0o)LLpQ{Ux=RI!GO*PEu#7 zi_}%>CiRqhNxh{$QeUZ`^taSs8XygnMoOck(b5=ctTbMlAWf7eNzY?Zc|Z^o@9(wJVWHyJ8HE%9O|0J|MrHpA+|*?i8_d zspGKm-gX~h%%&)~1K#0w0!O*liz$iFQd4Q zr+mz~xFwFm+9hLP;xuQVSatkysIFciS8SbN%F;tx*LI(tK%wv`|_kEtZx_%cSMfN@=yUMp`Rv zkTy!2q<^K&(iUl(^q;gt+9~alc1wGtz0!W^fOJqgBpsHHNJpjP(h2FLbV@ocos-U& z@xLftmaa%wrEAi4>4tPmx-H$2?n?Kh`_cpHk@Q%4B0ZI!OE09C(ktn;^hSCsy_4Qc zAEb}cC+V~FMfxg*#0|36V(keTYFDUIOoQZ)&X$EIZ6mVE`TBd}k=l4K`x*o#9MV6W1nJ4(ZC&1^=ST6^wRH55H^@99V?C%>Uz?^j-QX{gQr5L2@~{ zyj(%9C|8!N$W`TPa&@_eTvM(k*Ou$Zb>;eU1G%BxNNyrGm7B@UFxs}{nZX>sq z+sS{)?d1+~N4b;SMeZhdmwU)PCA1LZ;T5P7IPOdcVRlt;;< z<)EN3@>qGCJYJq4Pn0LgljSM$RC$^_UAD?LIYbVX!{l%|LUzbea1a@(y{Yyi49K?~(V(`{e`jA^E6$Qa&Z0moLbdBV_{6c;yzmY%5pXD#|cln3>Q~o9Yk;^F+l}buwrG`>dsjbve z>MHe=hDu{)wC77qRPb8U+L)oPNqqC%;N-NtO-N1q&HRMeM>w23!DS`x&^I6?xWL&z zqE7Bt%K?nTe}~SBZJ5h@5knpNN~|m=amV6vEB)7{Ef4=C&|w?DxbL?yIq4M7c8mk7h~>rIpe~X{&TlIw_r% zE=o70yV67Hsq|L*DE*Ybl>y2?Ww0_t8LA9dMku3|G0IqFoHAaSpiESzD$|r1idhL( zEQ(dJDfyh^%~sbndD0x3a3h=MAZ zf-8)|Dx4xJvZ5%OqANZnTgg#!l{{sZlCKmf0i{SOR!WpP%3NihQmQOa7AlLB#mW-p zRP?&oOxxqaTR9VwKZf=Wxf3_kG$Z{ZeT1(qUW{mC?q(htwTABIZY}|KGjxFEL(Fq# zn0ux*@KuY-h)=b(fxD*ZvXc0tU^_j`{x@EodR=fYWFPYyY~^aAEcDL9>p2%Dx^4Gd zg6Bnalzm11bW^O#fu5vP@a7tW;Jh>y&?#4a!F4UuBE3 zRoSL&S9T~nmEFo7WuLNNIiMU=4k<^JqslSmq;g6*t(;NLDi@VY%4Ow>a#gveTvu)? zx0Kt;9p#>KUwNQBR30l&l&8uw<%RN6d8NEj-YV~u_sR$5qw-1ltb9?vmhu0t{7`-> zzmz{pkXlYHuU1qmsg>0#YE`wGT0^a=)>3P$b=10QJ+;2tP;H_%Rhy~J)s|{2wYAzt zZL79dgYfjYnlW13Jg!m1%{VdhO~$IUU=N!m&RnbZjEOUCikutrAis(C2U#4b<2+1f zBedM!*19l|qa@vnT3~*aRl~H*Rwtr?opp67m~6Rbnmcz1z0KaiZ&wHL?+dcMonlW$ zj!a4k`~&m?_SkSvDqhH}av*`=z#jT5yvPO@6c=wG#%tke@urJRBKFw$5O>PH+JqH- ziH@InCb*tG-q%@-Mk^LhwZ6754hsNvd0&se09PHB$vtP=!=jMO942)u13kB~?}xR9RJ2 zP1RMOnyu!jxoVy|Tg_Js)IzmLEmlj^IqE#MRGqIbP#3C;)urk(b-B7iU8$~8>qJF6 z+9d~AG^8FeInkan$22L`q!@)}TN~HVgjKn76Zf%oeZ`i4l2O|?|ZQ+FZ(va32b(TCf)js1NA*;WeE>g^_a8P@*U|cAIff49mM_dzF|I z69py2rBO`ebNUsXlCwNyv13i#iA1q%{&|hMPF=75qi$3;ssE~*)h+5ab-VhXxI?Oy`bvGRzER(+pVZIl7xlaPL;a=xQG>K{S_Q45R!OU@Rne+yW&WpH4XvhDORKHb z(duapwMJTFt%=rDYpJ!;T5D~zw%T7>d#!`kN$ae2(Yk6qw4Pcot+&=!>!y7HUhjI+tPG_gm zo~5Jh-A%jrh^)DC&CTEf5pdb=+F)&nHdGs?4cA6!BehZ5Xl<-EPMe@j z)Fx?@wJF+EZJIV+o1vLBvlgsbG^=LQ>{^Hxs)cFcT7(v9_KIcdz==;_DL~?4rB*qozB~0i8Vn*0atU=XWNIQXv5z(=gQaHJJ@cZZp(*xv@3Fq^i4U+P5v8X*JEcP%r zI9Fs>L(5DT)jIKqQV+*YF&&2&r9Cj#8P$E~jPkKRnUlr>)oi(KcuswN2W; z+GcHwwpH7vZP)(Oc4#}bUD|GKkG5Akpq^qP7ty|!LQudCP7>+22lhI%8tvED>)syEY{>n-$_dMiD{_Kxp66O7C# z&5!BAY%dc^>L|K}Ny_OQr~fFN85=0_ply@x*dIAv<^$YOXj{ywK=tfza*q9j$LAgF zVd9QhyFgS-Q}cqjC$Sx(`a5_s%$KBV+dGJoILp z_QP^YjNClFG9O{SZ629R&aD>TDy?Cf6i`ilBcBFpo0zEWnBsV4>|!+FPME>(%PnW0 zl)EG3dDOz#s`33&-(_uNH9aV(wcbW=tGCnt(%b7D^p1Kby|dm$@2YpxyX!slo_a66 zx86tZtM}9Y*8A%N^nv;yeXu@6AF2=2hwCHsQTk|oj6PN$r;pbs=o9rx`V@VtK24vl z&(KY}Sr67Nx>dL7c0EK7)x-2~JwlJv9eR`=t;dx8eykp+$Lmhrr6=f#dXnzell2sR zrk<*Mbg!PKr|TJdrk}I;GP(qq92bz2LZ{ibbhDZ^_@K)zg+( z##t7Jaq4{AM^{14tI%+J<*-peZdz03X3jZ&RD72>XW(tpGFtZ^@Gs5Z6t#q`>RuLC zDbSS7Gd;--vLy$`SkC5vQgmKO(x<`@M=RT4bgX+s@-aJ|@sESb@msotZLrrbyZ(;x zkMq~zJfb)E4*AFOLt5;9mbfr|iOgls3~igs!*Ir<%=Z3g&SutMp5gx5ai!te@xPPe z{3hq7koIXk-R_(+{~Mjx1zpr7UDg#{)eYUJ`}J%+N6*#s^jUhoUZ4l`LcK^Y)=Ts` z`dodUUaHU67w8N1MfzfWiM~`{rZ3l5=qvSA`f7cRzE)qSuh;+4H|QJnP5Qt3W_^pk zRo|v>*ZsR!v`ZfK!enY>h-_mdEcl5jZJ^jA^K);v&wV(@9DS1VTVV_~zmT}Yw zPcRZChlmdie(KnP+)KsuB67Fq47@V2FsEm9NYr4tYI2;dsq-4{Nc%;%nRyq_i2Xag zZLH6=!W-(YYN{L4$$!PPm+cSF4cu_{Oro7TJ&@m>nZiu8DC|pHT5gf^z5T6RoKuNy zQqV-YmJ{JU1rYxxl?0I&M@c?CqLVFd(o^Z0{O_aItT*G*iPk zF!7Dkl{zZ1tpBS&(jV(j^r!kW{ki@^f2qIHU+Zu5xB5H%z5YS}sDIKw>tFP*`ZxW% z{zLz%|I&Z!fAk=uoKfDWU{o|J8I_HyMm3|lQNyTd)G}%tb&R@3J)^$Sz-VYRG8!9A zjHX62qq)(-Xlb-ES{rSQwnjVSFQdItR(}~Cjm}0FqpQ))=x+2ddK$fq-bNpzuhGx= z+vsl$Fa{cfjKRhbW2iCA7;cO(MjE4x(Z(2KtTE0QZ%i;c#~gvqIchTPZP4ftx@FzV)h!*7&{@g8)pMEZsfGlhxo z+$*hnBbDhWSEU$!(vzsn_)LXj8G%Y2sa{(NW)=7 z8PP_J5o^R5@rKiI8D+1T;Wmp&FW@8;0RC{6@BsW8@ln#w=sDk#7_j0i)0;GK!57V~#P` zm}it4^Nlse24jbD#5ij_H>&ws`^@I2o@k6HneFVB^~>47)EM>T{F4yrKTM<~i!p~( zIifV-b@-O7+9@3ie&vMwkhWbZ?&CC z48;x^!vY8C9r--nKUB*La?fO{M?tw=k{(9~n{T@#gQLvBVasFw|Gx5I-w@wW-!R{B z-w5AG-zeW`-&o%`-+12y-(=rZ-!$J0pUG$T1^X;MtIy`M`$BzTzHncJ&*6*mMf?7b zy|(~wW62V>6=r6*VP*{Z$lZWUsMTji}mhbeu(`T`#JXRV4%I9eM7tEc5UrO+fB5aYd6ns zm7S-ZkDa^Swyd>wYCDx3Vu#zQZ5=Z9Ssk%DWp&upbjttSAeU) zHQ+jM1Gov)1Gj+Nz#ZT&a1Xc-JOCa7kATO(6X2=E{?CBtzzg6d@CtYhyaC<VWf~~;TU>nfO+R1u?^=#_| z>o{xFI^SAj4O^#Mr&@2cPP5)@O<3QzerWyJ`k3_<>pRxhtS?yKwEk#4+-8-{8|zUv z?QF)_jJEl1-P@+M&0w2hHt9ACZIm|4Y^-d;ZBlLYHU=A$&0d=to2ItUY@XWOw|Q>U z%(j*7b*tIo&ej3e=d9PuOTy#QB5l8UoRSz;W!u^1lU*D8X6xG9Ke6rMqO@IaR{!XN@-AP$ls1=1h`vLFZYpa6=X1g-}QLCg1FPzUP4BG3RDK@+$U+yrh0 zw}4y0ZQyorC%6kN1NVUYz;f^qSOFdekAWw^li(?^5TTB- z6crc>HWri=lopf~94@C(ov=m+!%1_MKZ5x_`b z3@{d$089iX15dDvrvdK#HceQ#8UO zBElk@kwT;dDMof7doBKtm%%#F3|<54!CT;M@E&*{d;mTIpMlT8m*6Y#HTV{M4}Jx| zgFiq8)BtJ-HG&#LO`&E`bEp;625JknhdMwVp-xa2s4LVB>JIgQdP2RR-cUcNKQss$ z3=M&XLc^eu&}e8JGy$3jO@gLCQ=w_lOlTG~2T~~JLJOhA&=P1Bv>LL4tRWl79&&(` zkR#*-IYX|H8{`goK%S5n%IRQ>Poz6QMoJyQ*=ooYyIsu)8PC=E>Y3K}e7CH}AK^LHE z=pu9px(wAowNM>ohOR(Yp=;1}=mvBXs)uetx1l@GU8t3F8|QCM&zuy_eVltZFLLhZ z9N--8ta8qG=A1K~jcgD3hflJ4tvW*utJkTG>MS*+M%A>MRc})7Rv%DrSD#c@s_&>7 zb(wmr`n39tx68`2seTo!%g6(a5K0$+yZV1w}M;4ZQ!t2ng~s#X1gXy zQ>-b`tk-PR;2J@btx41D(wH=BHM=#b8b%{&jGDcg{hA6*gRFa+I!!a@?pdv}u4}$& zYBasGre$@=YMOOPb5qkUt5McR%_q%c%`wd(&5*2@np+z8EZZ#CESId;k*OZm>J-0eiw;us7@j`@(*(KO6vu!kI7tW3ULXhYMjXtb_G%5o~}r!kghO@K$&m zyb~^lOW;zt4Bidzh4;bx;e+rY_y~O5V*gWcC43q_1D}P@!_{yNTnk@;>)~7Q9rywK z6n+7}f?vaL;dk(R_%r+k{tADGf56R<=16O#Ez$|;f^&4#m+v$tjo+1c59vdgl!XJ5>&$i9~SBYS90lbqo>U2|sT zeD`ebHOpnb%hXJzi>r&XOFR1k?t|S&xleLm-*eyfZu!H>3%Ey z7W!@Rd+!(Rm*NNcmH0*YZT4H|7vi_oZ@=GbzmI5U9T1|fryp~x^~I5GkmiHt(VA>)w=$V6lk zG8LJQ%s^%%bCG$-LS!+r1X+eGM^+#!kyVHl;(#a-N5lnjMcfervCyb&M79|=T) zkPsvk2}8n>C}a&1jl>|aNCJ|GBq7O23X+PXA?b+9^8Cp{vXLAl7s*G~Apim*5CS6z zf*}M#Aq>JH0wN(YvL4YPdc=Sj5ficr*@Emu%8>m?IdTv=grxYF`S12;{rCDG@~`r* z^}p+X+rLG?;D9j!t-Pwedc=3|^0I$r|IPl9{X_dN_8lF%Iy7}y>0swz@8ICz=&;bC zzk`#5i^D*N2@Yxp!XeQi+QHv}bKo7a91=%@VV&{_G$VSsX=vYoPna;S2I zGDrz4OO?x&5z6^WrE;#)MmbBVP#i{%AjgrD$SLGBat1kzR3n#=%Sa7UhnSHo$PMHs zQjgq0?jrY)N62I3De@e7iM&EyBX5v*$a~}i@(KBjd_le>pt zf-+G#Q8`ZOt}IYiD>cd;%00?FrAjF))0H(!RGF&0sVr9>P!dX3`B?cuc}m&W@q+S+ z@~QHY^1kxA@~HBK@}Baw@{RJ0@~rZq@}2Uol7Ra-Hg|08*uZg+<3PvnN`>Q4$I*_? zj?*2T97j2>cJy_0addZF<>=s;X_!3?T9;WbG+nO>v-Mqmg76eCyt*S ze>gUFYU$L%skc)*&mNwgJv(@g_nhfD%koQXF}f68hT5X`r~|4*9Z_f01$9H+Q7_aR z4Mc;`U^EPkKx5GqG!;!lGf@?)Mm1;_nuF${>re=VQ5+>u5~WZYWl$CsP!W|-8C{PS zqB>NM7NG{zh?>w%=w@^~x&z&b7Nfh+GITe(2i<3}|9-R_J%AoW51|$4Ve|-k6g`F> zM^B=s(JHhWy@*~yFQYYREn0_~(JSax^g4P2y@}SNx6s?@9rP}G51s0{$kV~o&C}D< z#}jZ*aR=QIcgj7_opEQ~QFqQ=a4&V&x|h3ecHiW_!+nE$g?pL%QTJ;1yY8pm@3}Yh zXyh@}V~EEXk3k-NJeqp+@^JQ;<1xu&wnw;!n@5y~hew#lN{!^oRw@ zJdSz9dL??Py>h+sy#O!Li}ez`j9y#3O1<`b`R4g}ZHd_)Qxa1avpeQUOhwGOn6oj} zF%M&2#5{_59rHHkLrjC%H!+Q3KU@BPypKLWAEJ-Y$LJIEDf$e3j=n%&qOZ``=o|Dc z`VM`Men3B>pU}_f7xXLo4gHS(KowX6tRdD2Ym7C)nqtkc=2#1?CDsaSjkUqrV(qZ@ zSO=^l)(Pv3b-}t~-LURh53DEF3+s*jg7v}rVio`aHUJxl4Z;+P!PpRNC^ifmj*Y-Z zVxzFp*cfaqHVzw)O~58%ld#Fy6l^Ls4V#Y5z-D5zu-VugY%Vqrn~yEP7GjIA#n_ja zZn2$W`^UD7?GyV;Y?s&pvD0G*$Bv4f7CS!HCU$kK#eFC?JT@veJ+_y6u*(BxkV``s zKQ@RBW<%IeHjE8t)3TaK;3R${BL)tD7#joDzf zm>p)1Ibcf65p%+vF&E4gbHm&*56lzu!n`pb%radV^Tz_PKr9Fg#zL@AEDQ_BBCtp- z3R{CkV=-7P7LO%Z91fDOWGn?s#nP~~SUQ%0WnwB!jcKqfEZbuL94r^h!}76pSOErL zAO>RyhGH0oV+2NG6h>nV#$p`CV*(~(5+-Bou|iCXZNPMx9xK8OSg7|}Z_1nV-r_BK zYrHXUz?=7e>b=iEbic=dHKGr>)OOpA|mwKAU|AAA?Vs z&n2ICKG(g9sYm1!@)h}pd`G?~zmnfA;k+ADO{wNoOR5#snrcI}qdHPusIF8ust47R z8f7&%ri<_7aEEaB@D<@3!n4DXa3UNC4-O9rj|)!-&j~k$SA|~+-xB^I{A2j5@Y?X5 z;q~D);h)2wgg+185q>fJMfi6M|ICP)u#MOzY%{h6+lFn&c3?ZPVypx!#dcw3*luhO zwinxn?Z?Wo1K2_A5LSU5#*Sb|v18bA>;!fStHe%YXRx!_IqW=Eg@rq^ z)nav+8M}gA#jau3u^ZS;tRB0C-Nx=ieee41D&|?2b*kkMo_7r=DJ;z>PFR@qH zYwQj77JG-i$39>mu}|1%>$gL40BO@cNBEuqgMtVi&MA}C>L{5kt z9Jwg+X5@}YCbB+qbkyxgeWW3>JaS)TS!8WwN#yxRIP!3$9O)aiBx-5Ypr|fUpCZRb zO^I3=6&E!kszucBsQf4}3W!RIiit{#N{PATF-pMlTBXW_H)x%fPMKE427h%dqy<4f?R_%eJsZkd0Juf$j3 zt8pvb8n?l1aXZ`|cfggnBkqJd<1V->?uNVL9=Ip&g?r;ZxG(O9`{Mz4ARdGV;~{t$ zek#fkwI^y<)ZwUGQO~1pMAb*Vi0Zj!;F?}*rmva2#(ItCnoPGWH_{Dv)4T0<8yhci zllck) z!jth7JQYvF*W&4T2A+wla5b*Mv+!&@2hYXx@O*q7UVsBQh(kDnqd11+IDwNmh0{2L zvp9$IxPXhegv_6aFUJqy2k}FA1%4Pmf*-|?;m7e4_(}W}ei}c6pT%jHN|#M8l8erz z+GVH9HkVqL11?Qmo4Q_iY3_Q*rOxG(OKaB_t`l4*xpr_J=-SD3o@-TJL(t^_6Rl>wVWc*K4jV+`74Sb(`Qe)oq?z z7x&)ou5JNtv2M0*_HMpz@mwO8#HDZ<+*&S^Q*qf`9=DD|IE=$NieosQ6F8BRx%Hfu z+ra5L11F~!rf*2sryJ8vmif2m@bh>TegUt>FXET*%Xlqbhnw*$_*MKGejUGo-^A?=$p|$V?f5hj6oTLGlpag%@~m}GGkQ6=!~%$ z<1)r)Ovsp+F*zf}Gb8@0$DDW)fnw3vt+CozIre<);n)kYWwFJvhhk5~o{YU0YmQB0 zTE;z!eGq#ic5m$K*miLv;@skf#0`!c7B?<#Ox!5T{D-l`IAT08ftW~4A|?}4h^fRh zVmdK{m`ThcW)pLXdBl8T0kM!+L@Xwj5KD<=#ByQbco3e17vW9#5Wa*T;ZFn*fkY4yOoR}jL^u&aL=sUJ`>!FQi5Mc5 zh$G^O1R{}0B9e&|B9%xZ))MJN29Zgq2sNQ0vIvx*2!=R8oF^_4mxwFGec}tzo9svS zit8CSKh8bQDNY&Z5|sP(4g2LCdd#JA7l)Yg0=(|1SJNg1-%Sv5nLD4GWb!@_Mq0m=AhD` zD?!CU*Mk(nM}l?--41FSToLpwXhQJBVDDg`V5?x?;6=gy!J6P-f|bF6!SjQIg69R# z30@JrJa~9;X)qid7n~T32Zse8wqPp12KNo=7xKx%pB_q1BxjQg$z|k9Qc1d!-ee>h zN5+$hWD=Q7rjV&*8o8ECCo@SEsU|gK7MV@vkhx?YnNO}G3rK(jNr;3=ghWY<#7TlA zNs6RNhGa>O~zv5DMFZXvgl+sN(Y4ss`1 zOqP(Pr^rh3G&v~bWpJyI z1|d!%cY@o8M2Acd@eWxK;t`S+5*Csf!h|G+ObR&@k{gm2axNr4BrwD;Bsqi+F@)?3 z*%Y!RO^&?dQp9-e$+r}5H*+@LJg&cQNyW` z)F^5+HI^DjO{Jz$)2SKM9BMwbkXk`mQPz|#Wk=alj+B#S{);o^Lb+1zln3QWc~gE= z02N4uQ4v%m6-BL~qN!LaiAttYs8lMAT1%x<8B`{vqSTaz%A#_qd}R@Am35G4^%JW-p2iiYZu=kzEk|9fad`(0$v8R4D1mY6VxcM zOQ0e!d(DTyUjioujt`s?I61IsrdOat;QT=AK*vCzK&QaOz^p(Z&=4pF9tgY|crEaL z;G@6^;6!i=I1`)=&I1>NOTcB|a&RfQ8dQQV;EDXo{L}eo^3Ua;&#%hAUnkP)7)=@-*$`t7eGN2N?{aEkrYL76i#6 zr-~>eWui7xo2bpy7HTWCjoLx&q)Mn#s*KuA?WOin2dTr<5$YsWNu8#us0-9Z>Jn8$ z)lzkonYuzK1jIxJ{~xdP}{dK2o2l zFVt7+8})-~NH?OJ&@Jg!bZfdj-GS~%cc#10-RSOg54tDai~fb~OZTJa`q%k4&U_s9 zChS|-yRc7TO~RXnHw|wS-X*+yc#rU&;r+vhhYt!L5k4V&a)2@*EMRqvU5sPQxESA@ zu6A;!kcnsR&uke~p1C7)Q|6Y;lFYKq2bm8uA7wtyyqbA9^Ju0y^K52qX8WM)nNKob zWxmaPmf1$tR`ojbYi5_Ajw)ARimH!ll&ZUGf@+y+mC9Zfr*cubs-jiist{G0YON|l z6{K42TgPuvxqG!`{>3Q^gdI7zVUPLdZm(WY;W%P1-1-+79MX#o9uq^ok3^PDq2lz=qx&i&ZYC{e0m)X&=3vN2#wPuP0=*X(j3jx0xi-Nsv^~(u&H6w z!xn}u33Ca%z*I9Anahlsxxy5O&GR}O_9h<*u$A$E{Q<`Vjs_eFI1_L#pgN!?Aajkd zhFT-8*|+AYW?H(N*y*N51dPQ_nbV@W6T^wB+ zZH!(YT_1fZ`a$%k=wD)n#e}cv9vv9HCwh+WY~O{x%Y2vn&P<+{yd-&fvRkryvVF2^ zvTw3evUhS+a!_(ga(42%WG>l|T%3HttIA8EkZ74Mq_wn;*3(6_fi}`6dLzA=-b!z$ zchJRjDZPs>qj%GL=)LqldOuxGAD|D?hv*9WFnxqRN*|+-()W(G5pnZ?Xz<}h=adCYuf0ke=<#4Ki(FiV+b%yMQ0vyxfGtY$3y z3&xtUVQd*Y#-4Ftl#CzV`y@UyQ*+dSJOB4|62!H?ym_P`Epb3)T2%Zp#4TO%^ zL~JCs5Sxi@#CBpQQ9|q@%81>>9%3)CpC~5|5=V)X#3`bZI8B@(&JyQ{D&hiBOY-hF$+m-Fcc4vFAJ=tDt zZ}u0q58IdR$M$Cjumjma>|k~XJCq&94rfQOBiT{xXm%_+jvdcVU?;MZ*vae^b}BoK zozBi+XR@={+3Xy4E<2B%&n{pWvWwWo>=JeZlAc|Y zl9vD_;0bJkF5yO8ecY({e$oJGm^54(A&rzqNfV^;(iCZ$G*y}|&5-6u^Q8sSB58@V zR9Yr2msU!vBrC~QQc6yetK=rROP-RS6etBr!BU76DuqemQnVBy#Y$K_5l_Xhj~C-N z$8U%)jxUMd9e*@_NBs8qBk_mhYvRww--&-1e?R_i{FC?x@r@E*#ea?e5#K&Rk04&6EEYAw8$V#ltu4fBbExUo$u|=$bHL)AnP3&fN3%ixw z#%^bKushjewuCKZcd=#cZgvm5m)*ziXUo|G>_PSrTfrV?kFZDCW9)JE1bdP_#a6PX z*)!}}_8fbjtzs{*)$B#~5__4gVQbksi~Y^)74|B7jlIs^U~jVZ>@D^-dxyQt-ed2x z57>w7Bla=-gni0BW1q7x*q7`p_BH#4eapUM-?JaskL)M5SHi4>0SWyQ<|T|y7?&_N zVRFL4ggFTl6ILg9CO9OxCpadAB}64uX53FnN=Z)1Ovy>fOCeK=Qr4$zPBErzNhwb8 z&kM(B zlQS1)F3DV-X_pz28J(%gPhv6|jph3P%zk0NvftS6>(33~26BVA z!Q2pTC^w87&W+$ka-+D>+!$^wH;x<6P2eVSleo#;6mBXvjZ-M5b2GS^+$?T3H;0?c z&Ew{C3%G^cB5pCagj>ojJoX8;Cd zV1{5ghG!&3W(pZCqi2ek)j1A1;W?2x896CAX*sDm#vCxGAZK%qm}AJDam=1^D5_c&a<31IaN8Ga&P3k&AFLVmvbSfQEs!` zk2%eATjsXOZIL@LcV=#%+`+kHa(m{^$z7H^DR+GC@Z71nb92?X19I2qrst;Sdgrdm zU6mV|Taas?>zA9B>!0hA8<30VZp$_1R$Kh9Tsb$+o%7&4IWNwe^Wl6sKhB>E-~zcI zE|?49Lb)(5hSPBQ9LPZ&!I2!x6>%nRBe#j$%x&Sea@)9_TrpR|m2!KyeOx(rfIG+? z;f`|0xf9$;?i5$ao#oDP=ea7bn!ChZ=4!ZF&dgomu5#Bb_P@^E;Oe>C+#T*NcaM9( zJ>(v7kGZGZbM7VgihIqy;ofrZxcA%#?j!e^`^tUezH>h~1>b;g$T#Mj@J;#Sxp}$S zxm$ASTutt#+E9hurLb!qCf)DfvYQpco@PwkgFICW6! z#MC*deNvrMT~imQ#;2}I^+@$jjZ95V^-YaQjZQ^Ui&71#yHhu(imArb?9`2^LaH`( zQ))@-h181FGpW~8ucY2fy`TCxwRPI})UT=S(z>R#vcx}a#<$>G@~!yRd>g(k-=6Ql zcjP)zz6a{d@vuvhw@>3I3K}B@=^R6KAMl=WBE8fo=@Nt`6ND> zPvKMfzG)-UhNMkPo1Zo>?YpXhx}mzU`l)JBUVrrf^+5G#^;q>V^+@$J^-T3d^(6Hi z^&<6h^-8t1+EwkP4pyhHg}j#E!0UKD zU&I@DBX8n2@|*b0{1$#Izm4C{@8Eax#e4~0%J1UK_}%;-ey_#;`}qBQIe&mZ$RFY> z_{01W{wRNpKhB@vPx7buO8zu|hCj=nK5nLrc*TbT6s|(xu(t6R-*70);@O z;6ZRdxEDMM)_}F(74Qal4m=ND1&@PI!4Kd^@DBJ1`~uzuTR`8y&d@JVUuYCG1{w&B zg=RqWpy|+LXf`w+S`N*J7C^R;9kc>k10_IdP!tpgWkWDTKnNs25|jj}fptJOzyJim z2h`->$iI?*&Eo%ajla&{;BWHv{4M@Ae}})z-{bG|5BP`tBmOb}gn!CES3itA#IZw`)*U5nVU1}w_k@ryhsdDNZRZSgC ztfwGsD|Ql_gNNdkIE>FB!iWq(Eo2KhLavY}3`{8yAOR6j0TT#;6gYtwBtaI|3x$GK z*dXYIBEcXS1(UEz*dlBdwhKFiokFotB9scdgfd~Tuus@8lnY0NW5RLagitA*wv2z4 zFk6@-%oXMd^MwV%LSd1xSXd$~6_yFhg%!d|VU@62uoA2V8^Knv6YK>CK`A&2PJ*-G zBDe}}g1g`$cnV&Ex8NiA3VwpW5Fi8!K|-()B7_QILbwniL<&*D8X;PU5n_cnAznxj z5``ooSxB+8pDL^s(uGVxBV-Br!a4yEU;!5>ffg8n6+~g9uvyq9>=6zK2ZcjIg>YCn zDV!262-U(B;i^zC+!D?RXN7aZd7(U>2?k*M*zHZ6S@$rcoNB33?m7 ziQYi(q)X@>+;*;vbCz~-d%68w1$T%$#vSHPb7!~<++uzqzm#9jFXLD9w){h;4LgQa zvJUJ`?iP2Sd%->7zHraDPh4}p9p8!X%Mawsr32E;bhVT#4h{v9wm>Jr^{32+43BDk*rYM5$+22g!{q+;i2$Icq}{-o(j)| z=fVr&rSM94ExZxl3h#vX!Uy4_@JaYAd=b71--PeN4?!U|5F3h(#KvM1v8mWhY%aDC zTZ*m3)?yp6t=LX%FLn?+ik-yHVi&Qi*iGy%_7HoDy~N()FJd3Duh>uQFDeuR#DU@< zaj-Z<94ZbIhl?Y`k>V(Ev^Yi_D~=P#ixb3&;v{jhI7OT)P7|k#GsKzVEOE9tN1Q9p z6X%NyEIR&`mxbaYak02WTq-UTmy0XJmEtOKwP+<;i#DRIXeZi>4x& z-9&fML-Z8AL~qeY^cDR?e=$G|6obTIF+>a%!^ChgLW~rn#5H2H7$e4tabmofASQ}Q zVzQVbriy9eS}|SB5Hm%U#dc~@BW8)&Vvd+A=85^@Iir2*J;tlbpSTEkP*zUG?N4zWE6Yq-;#E0S|@v-~;wSO5_(l9GeiOfoKSYJpKx!!cE1&(A_)Ah_ zsfpB7Y9=+8T1YLWR#I!Jjnr0ZC$*P4NFAk4QfH}))K%&xb(eZbJ*8e!Z|N7Qk2FXc zDvgoGNt2|R(kyA7v|6%}>?C{1L2{H_BoE0;@|JugUnxL}l%k{caL_TMCJmbOS+rESu7X@|5^Dway6T~e8}N7^gxmkvsYqzdVC#6d1v~)(QlB%VP(q*Yes+G*r73qd_OS&W7mF`Oqr66!FgdMUkCJW?JlkCDg8<1IS=m6r+fM0t`tS)L+K zlV`}Y$?*s- z?y`sMDSOG@vXAU5`^o-tfE*|X$-#1n94d#&;c|o=DM!g`-6^irIZ%&V$QDsS4-sjJZoK-)|@Uzy&F^==R z=5HM{bz$+CU1Q2Dc{>(vUbt_}^@TNye3qgAf{ z*~@d5%gg!YWy^Oh|5awgDtXoVRfVe(S7}#uTHSedm(^WYcU#?kb&u6sSNHS$RpR$c z14TncBSm9H6Gc-+GevVn3q?ysD@AKX8%0}1J4Jg%2SrCkCq-vP7e!Y^H$`_v4@FN! zFGX*~FN!{jzKVW|{)z#Lfr>$j!HOY@p^9OO;ffK8k&01@(TXvOv5Iku@rntGiHb>z z$%-k8sfuZe>53VOnTlD8*@`)exr%v;`HBUKg^ERr#fl}0rHW;W<%$)Gm5No0)e0+x zwZcYWtFTkpD;yM->C_5~(~iPL;i_;`xGOvqo(c;nMd73HRro3V6#uE_YkA^xfK!@^&yKP@!; z-2O?`ox(%E%hCNV{U@3K`&7lhtFJR^jlZvNG!_~6T5>iUH~yBt-MIA+>BE-#CB~hW zy*;FQ=@E7}kF0D|Q{z3U)$}1G*f2eWbx0+jiOZ|K4f0VQ1pQ!tf zbpO|tZ?KGFlV#mzS&J=esb$?|S<5WzZp-=~TMqt*YyQXD`)6zI`v?6!^bgAa+4lb{ z>lazBPkrG$F@sQ-Ii{~2k6;qPfJG-wSQ3_63}P-HL~Oooky zO@_^eErzXzZHDcJ9fqBTVnd0c)UeA?X4q}mW7uohXV`BjHykh=G#oNi7%mv94HpfU z43`ZxhB|}UaK&)daLsVtaKmuZP;a09m3{@FGDd%gTqnY-!N^g`pt!bQf-maA!N;kKX8%i?R=Yu~)9STFT7%Z8HEB2gR`y4k zzqkET__gqJ;kTb7Uv6AsTxneOH|_KH^!%%oRsPvAK4IBA{)e2^zm5CM&z!o#8--TJ z^FPzpma=n})X~CYg{KNn7FPevz4-I<-$q_vc(d?G;pyMy)c!90C+pPwA@}m{N^O2? z`A>3xOqmNW{gk{`c)ifpX!mE5R|>EGPRk!_{71LgA9P>%8#>Sajr_mYp8cQo_wPym zca~NC2S)ba+28+d`+trF%-Sp3tJ-VY>)IRIo7#HqE$!{UdVfErJ+3{WJ*hpVt<;{@ zp3$Dwp3|P!R%tJ2tF;%km$a9)HQHKjopy(Ir?yyIqAk_#(w1p=YxijPYWHdPYs<9< zvTHwG93jX_3B z_(Nl;G0Yflj4(zTql{~e(Z(2KtTE0QZ%i;I{+;`5k}=tsVoWur8P^)qjhRN3QEk*1 zvy9os9AoYu>g5^pjqCoZj`xM{{^8y6W8sH?CsSYq{++(Jg>U{K_wwiVb>XXjSMRT# zW1tZ-!barZ>HBN4e>?9*;q#xZq5q_wzum%LE4giH^Va{>DF0gR|IPcSEzr-RVdy`t z<$o3Yi&$WtslWu7KoewwO^69KVJ6%}n8@Gmw}pk;!VQH+%N1!V3@}lqlETu$U4>@2*_JNdCNY%rnh5Eif%KEix@OEio-ME&EOP zKQdANPsu`^R<}W?)9H0ZI)l!rGwC+!Ht9C&w&=F%w&}L(cIbBMighKrQr#|HnQpgk zk8ZDSpKiadTz5csP^H z?fM=1o%&*ZiM~|7OJAnnt>2^HtKX;JuP@gh&>z$v(pTsY>yPM<>W}G<>rd!U>QCt_ z^{4e`^k?-T^m+295&duKzrzCewD+|Sv=6n9w2!q7fXQ}nyl=*)dkIi4vV*4}C&Sd{{ z>+n}3{$E=78?s|9`IG)e+271&zO&!C@BDY+yZBxD{x`+`x8Tn#ApZ+kYF~BXu6e4P z$LIf~RKGrZ>hiaf=T99zudUm+^U1|UDqY>1;>9XsZS@I5-J!}Qs+T9e>?p0iRI+K; z!PBO?r52y~<*JRlR;bD=&R^mm07E{me{Dw6}GDV zb#|(UXLY3;&wZ$|SG_-EKCrFML8Y{?uumU#QXM(qtlCjma^zmMi)w4lm2-y6@Aejz z)f{qF?Kxh3?8FH-)ulb|s?){Q)gBgN_QASi2VNiFS-t)IgY#Y%Uwj`6Kl@RopM{`( zs4l=l(GIe3v_mW;?bnB^4~MB9oea15=|@_a+G{MH`@eFv<1A$D%_kCmvb8O^G*zm_ zm;ZFdTGhjgpDw4X4p)BPRakfB;)jEos^gdR`zq@0o!fdqW%2Mg)@f8HE|{vaezLgB z>t2}OpWS;fSGBKPzqh{n^UnIcyN>3mo}D)x(4DQQ$XBhiu)1qcyfOo-w`R~n?1nAO z?$ak9)uBJh-B+r2R#u*TTKBl_c-{N*v&UZ+6RIb5ugV{lld4N6FP2ais(0OCMpd)3 zs`hl{m(yo1@7jIpJZs^6^QtT6mvtLY2&(6GqUv+W^NLH=l7;>KtZu#PMD>fh6GsYF zTGa;C`wKdix#o49UiGf-`~Iu@i&O@cQFZR5Np-z!qv~+kCe@qcn^nK3gMX~6s4iBO zs2-g=xc_UJzU+EcscM(%-)P}iYK~oevG3NtS9N<;`&5Oewx8QnvS0P4u3UBc)cd;H z!yoDns1B-jocmOFNL8UatlGNs(4Hfz4d$b&N8697?pGXFJw0_ob?o#>)$!9h^C?xO zg*JZ1!W(~Bdd@-|-&9)l2j=)C3$=USxwEB(wQp-LUaV2wJ5#GVx3^BEHD5E=U;I}0 zvg||c_qxw@h2}d)f8~1by7;#4y7{W=OWifqy<^ucgzu_DzcRjGUbwpbmWA_uVSkbN zj!JL7`;+(mK(*Pt)%;Mk$-JlXk?OI9{cSSus(GqhgK^Sui#{!qWNzn7|OPAs!{My;^;My>kE0JpYK!0+s^{mB70mpt25Vs`ig z4ZQH6vxNxms=i@9cjEh@-R3{C!M)VAr@xhXt4qy3>N4|&9k(v-G5e~IRr#rRnf)!i z@Eztr^-i;?qSzc{@w|Go|3;N*cZmAVflzh1IqWBeJ5s&Z9HlPazQ)4ij!_>r$ExFg z<8mjfQ+~3!*Q(PkeD0&>T{~3jgJ!jb)4iuOOa10R_D@>($uqC_R#oSzkC^i<(Vicc z7pONC18UF`^ZA(h$pKh>+`P|x^C+S|V6HG9GNWqjH?lWvi2%+1zWDpW^Xe+~1xv)~(%l!;m(*VmUABbrX0PcHYupJeVOmiX1nG|PX-=eE|^ zSYlnjI&Wtobvyil)m?4=mDc@#XuAupMB6st_g`(gySux)XV%Op*kWRiTz6@&DSApJrz2pX{ zU3*5jhFc}KOYVSPw0p!g;vKmMbf^cQ8|@!{R5B=i{9F0%*S;t^->*SU`Yo`&--C+u z#}em=Z{$CBK0@W zpk{zRb$3b6Umo}XXjC&xSeq_5uLLeZO3;!eey`8y!b+Gfk1d9I-FS)K8X<|2VL87f zq7sw{OUM!jUsNJ4QJJSkawC!wX^E@^BjhCnUjZ7|Lq${kyG#RI@kzZ7*y1d`p~P4+ z47123Wn^TyM4~`RQ;Clpwk;wtZBP~?^j>qxqCFuA7%e5%5~(CHGT|#oeANw&SIwSpv^v3u2?6Cpu9YbMc8h;qlq@ zCxHp>5!iHI-|14G{0yjoi~T;|xzh8cCL33Lp{Rw+CT+?&GRSTr7ufgl`dFcmyY{j-J8<4r8crx`mXeSX~6WM)TsSf z`l)Dne=QC9N=gI1QXqNyVRosdI$Uqc19YWM+k^=!Hvx7%m59xU#5*EBsocx@d

    A&%o@&Z2kCZMx&DumfKz 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 z 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

    ;6MtL`SH+iGIo4rsk%nSD-yhty~i}qr? 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

    =o=T><#Q4>_6CJ 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

    qF#xeh?7H< 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

    b2nrc7c43yxRs}!m!j^M$ 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%0ANFnAXf-cRtwZLw7TQo0;bcf8vqsqHiid$j~ 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

  1. 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 diff --git a/include/php/TSRM/TSRM.h b/include/php/TSRM/TSRM.h deleted file mode 100644 index d710eb6..0000000 --- a/include/php/TSRM/TSRM.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Thread Safe Resource Manager | - +----------------------------------------------------------------------+ - | Copyright (c) 1999-2011, Andi Gutmans, Sascha Schumann, Zeev Suraski | - | This source file is subject to the TSRM license, that is bundled | - | with this package in the file LICENSE | - +----------------------------------------------------------------------+ - | Authors: Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef TSRM_H -#define TSRM_H - -#if !defined(__CYGWIN__) && defined(WIN32) -# define TSRM_WIN32 -# include "Zend/zend_config.w32.h" -#else -# include "main/php_config.h" -#endif - -#include "main/php_stdint.h" - -#ifdef TSRM_WIN32 -# ifdef TSRM_EXPORTS -# define TSRM_API __declspec(dllexport) -# else -# define TSRM_API __declspec(dllimport) -# endif -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define TSRM_API __attribute__ ((visibility("default"))) -#else -# define TSRM_API -#endif - -typedef intptr_t tsrm_intptr_t; -typedef uintptr_t tsrm_uintptr_t; - -/* Only compile multi-threading functions if we're in ZTS mode */ -#ifdef ZTS - -#ifdef TSRM_WIN32 -# ifndef TSRM_INCLUDE_FULL_WINDOWS_HEADERS -# define WIN32_LEAN_AND_MEAN -# endif -# include -# include -#elif defined(GNUPTH) -# include -#elif defined(PTHREADS) -# include -#elif defined(TSRM_ST) -# include -#endif - -#if SIZEOF_SIZE_T == 4 -# define TSRM_ALIGNED_SIZE(size) \ - (((size) + INT32_C(15)) & ~INT32_C(15)) -#else -# define TSRM_ALIGNED_SIZE(size) \ - (((size) + INT64_C(15)) & ~INT64_C(15)) -#endif - -typedef int ts_rsrc_id; - -/* Define THREAD_T and MUTEX_T */ -#ifdef TSRM_WIN32 -# define THREAD_T DWORD -# define MUTEX_T CRITICAL_SECTION * -#elif defined(GNUPTH) -# define THREAD_T pth_t -# define MUTEX_T pth_mutex_t * -#elif defined(PTHREADS) -# define THREAD_T pthread_t -# define MUTEX_T pthread_mutex_t * -#elif defined(TSRM_ST) -# define THREAD_T st_thread_t -# define MUTEX_T st_mutex_t -#endif - -#include - -typedef void (*ts_allocate_ctor)(void *); -typedef void (*ts_allocate_dtor)(void *); - -#define THREAD_HASH_OF(thr,ts) (unsigned long)thr%(unsigned long)ts - -#ifdef __cplusplus -extern "C" { -#endif - -/* startup/shutdown */ -TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename); -TSRM_API void tsrm_shutdown(void); - -/* environ lock API */ -TSRM_API void tsrm_env_lock(); -TSRM_API void tsrm_env_unlock(); - -/* allocates a new thread-safe-resource id */ -TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor); - -/* Fast resource in reserved (pre-allocated) space */ -TSRM_API void tsrm_reserve(size_t size); -TSRM_API ts_rsrc_id ts_allocate_fast_id(ts_rsrc_id *rsrc_id, size_t *offset, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor); - -/* fetches the requested resource for the current thread */ -TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id); -#define ts_resource(id) ts_resource_ex(id, NULL) - -/* frees all resources allocated for the current thread */ -TSRM_API void ts_free_thread(void); - -/* deallocates all occurrences of a given id */ -TSRM_API void ts_free_id(ts_rsrc_id id); - - -/* Debug support */ -#define TSRM_ERROR_LEVEL_ERROR 1 -#define TSRM_ERROR_LEVEL_CORE 2 -#define TSRM_ERROR_LEVEL_INFO 3 - -typedef void (*tsrm_thread_begin_func_t)(THREAD_T thread_id); -typedef void (*tsrm_thread_end_func_t)(THREAD_T thread_id); -typedef void (*tsrm_shutdown_func_t)(void); - - -TSRM_API int tsrm_error(int level, const char *format, ...); -TSRM_API void tsrm_error_set(int level, char *debug_filename); - -/* utility functions */ -TSRM_API THREAD_T tsrm_thread_id(void); -TSRM_API MUTEX_T tsrm_mutex_alloc(void); -TSRM_API void tsrm_mutex_free(MUTEX_T mutexp); -TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp); -TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp); -#ifdef HAVE_SIGPROCMASK -TSRM_API int tsrm_sigmask(int how, const sigset_t *set, sigset_t *oldset); -#endif - -TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler); -TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler); -TSRM_API void *tsrm_set_shutdown_handler(tsrm_shutdown_func_t shutdown_handler); - -/* these 3 APIs should only be used by people that fully understand the threading model - * used by PHP/Zend and the selected SAPI. */ -TSRM_API void *tsrm_new_interpreter_context(void); -TSRM_API void *tsrm_set_interpreter_context(void *new_ctx); -TSRM_API void tsrm_free_interpreter_context(void *context); - -TSRM_API void *tsrm_get_ls_cache(void); -TSRM_API uint8_t tsrm_is_main_thread(void); -TSRM_API uint8_t tsrm_is_shutdown(void); -TSRM_API const char *tsrm_api_name(void); - -#ifdef TSRM_WIN32 -# define TSRM_TLS __declspec(thread) -#else -# define TSRM_TLS __thread -#endif - -#define TSRM_SHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)+1) -#define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1) - -#define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx -#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_get_ls_cache() -#define TSRMG(id, type, element) (TSRMG_BULK(id, type)->element) -#define TSRMG_BULK(id, type) ((type) (*((void ***) tsrm_get_ls_cache()))[TSRM_UNSHUFFLE_RSRC_ID(id)]) -#define TSRMG_FAST(offset, type, element) (TSRMG_FAST_BULK(offset, type)->element) -#define TSRMG_FAST_BULK(offset, type) ((type) (((char*) tsrm_get_ls_cache())+(offset))) - -#define TSRMG_STATIC(id, type, element) (TSRMG_BULK_STATIC(id, type)->element) -#define TSRMG_BULK_STATIC(id, type) ((type) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(id)]) -#define TSRMG_FAST_STATIC(offset, type, element) (TSRMG_FAST_BULK_STATIC(offset, type)->element) -#define TSRMG_FAST_BULK_STATIC(offset, type) ((type) (((char*) TSRMLS_CACHE)+(offset))) -#define TSRMLS_CACHE_EXTERN() extern TSRM_TLS void *TSRMLS_CACHE; -#define TSRMLS_CACHE_DEFINE() TSRM_TLS void *TSRMLS_CACHE = NULL; -#define TSRMLS_CACHE_UPDATE() TSRMLS_CACHE = tsrm_get_ls_cache() -#define TSRMLS_CACHE _tsrm_ls_cache - -/* BC only */ -#define TSRMLS_D void -#define TSRMLS_DC -#define TSRMLS_C -#define TSRMLS_CC -#define TSRMLS_FETCH() - -#ifdef __cplusplus -} -#endif - -#else /* non ZTS */ - -#define tsrm_env_lock() -#define tsrm_env_unlock() - -#define TSRMLS_FETCH() -#define TSRMLS_FETCH_FROM_CTX(ctx) -#define TSRMLS_SET_CTX(ctx) - -#define TSRMG_STATIC(id, type, element) -#define TSRMLS_CACHE_EXTERN() -#define TSRMLS_CACHE_DEFINE() -#define TSRMLS_CACHE_UPDATE() -#define TSRMLS_CACHE - -#define TSRM_TLS - -/* BC only */ -#define TSRMLS_D void -#define TSRMLS_DC -#define TSRMLS_C -#define TSRMLS_CC - -#endif /* ZTS */ - -#endif /* TSRM_H */ diff --git a/include/php/TSRM/tsrm_win32.h b/include/php/TSRM/tsrm_win32.h deleted file mode 100644 index 1ae9bea..0000000 --- a/include/php/TSRM/tsrm_win32.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Daniel Beulshausen | - +----------------------------------------------------------------------+ -*/ - -#ifndef TSRM_WIN32_H -#define TSRM_WIN32_H - -#include "TSRM.h" -#include -#if HAVE_UTIME -# include -#endif -#include "win32/ipc.h" - -struct ipc_perm { - key_t key; - unsigned short uid; - unsigned short gid; - unsigned short cuid; - unsigned short cgid; - unsigned short mode; - unsigned short seq; -}; - -struct shmid_ds { - struct ipc_perm shm_perm; - size_t shm_segsz; - time_t shm_atime; - time_t shm_dtime; - time_t shm_ctime; - unsigned short shm_cpid; - unsigned short shm_lpid; - short shm_nattch; -}; - -typedef struct { - FILE *stream; - HANDLE prochnd; -} process_pair; - -typedef struct { - void *addr; - HANDLE info; - HANDLE segment; - struct shmid_ds *descriptor; -} shm_pair; - -typedef struct { - process_pair *process; - shm_pair *shm; - int process_size; - int shm_size; - char *comspec; - HANDLE impersonation_token; - PSID impersonation_token_sid; -} tsrm_win32_globals; - -#ifdef ZTS -# define TWG(v) TSRMG_STATIC(win32_globals_id, tsrm_win32_globals *, v) -TSRMLS_CACHE_EXTERN() -#else -# define TWG(v) (win32_globals.v) -#endif - -#define IPC_PRIVATE 0 -#define IPC_CREAT 00001000 -#define IPC_EXCL 00002000 -#define IPC_NOWAIT 00004000 - -#define IPC_RMID 0 -#define IPC_SET 1 -#define IPC_STAT 2 -#define IPC_INFO 3 - -#define SHM_R PAGE_READONLY -#define SHM_W PAGE_READWRITE - -#define SHM_RDONLY FILE_MAP_READ -#define SHM_RND FILE_MAP_WRITE -#define SHM_REMAP FILE_MAP_COPY - -char * tsrm_win32_get_path_sid_key(const char *pathname, size_t pathname_len, size_t *key_len); - -TSRM_API void tsrm_win32_startup(void); -TSRM_API void tsrm_win32_shutdown(void); - -TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env); -TSRM_API FILE *popen(const char *command, const char *type); -TSRM_API int pclose(FILE *stream); -TSRM_API int tsrm_win32_access(const char *pathname, int mode); -TSRM_API int win32_utime(const char *filename, struct utimbuf *buf); - -TSRM_API int shmget(key_t key, size_t size, int flags); -TSRM_API void *shmat(int key, const void *shmaddr, int flags); -TSRM_API int shmdt(const void *shmaddr); -TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf); -#endif diff --git a/include/php/Zend/zend.h b/include/php/Zend/zend.h deleted file mode 100644 index 94fd9a3..0000000 --- a/include/php/Zend/zend.h +++ /dev/null @@ -1,358 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_H -#define ZEND_H - -#define ZEND_VERSION "3.4.0" - -#define ZEND_ENGINE_3 - -#include "zend_types.h" -#include "zend_map_ptr.h" -#include "zend_errors.h" -#include "zend_alloc.h" -#include "zend_llist.h" -#include "zend_string.h" -#include "zend_hash.h" -#include "zend_ast.h" -#include "zend_gc.h" -#include "zend_variables.h" -#include "zend_iterators.h" -#include "zend_stream.h" -#include "zend_smart_str_public.h" -#include "zend_smart_string_public.h" -#include "zend_signal.h" - -#define zend_sprintf sprintf - -#define HANDLE_BLOCK_INTERRUPTIONS() ZEND_SIGNAL_BLOCK_INTERRUPTIONS() -#define HANDLE_UNBLOCK_INTERRUPTIONS() ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() - -#define INTERNAL_FUNCTION_PARAMETERS zend_execute_data *execute_data, zval *return_value -#define INTERNAL_FUNCTION_PARAM_PASSTHRU execute_data, return_value - -#define USED_RET() \ - (!EX(prev_execute_data) || \ - !ZEND_USER_CODE(EX(prev_execute_data)->func->common.type) || \ - (EX(prev_execute_data)->opline->result_type != IS_UNUSED)) - -#ifdef ZEND_ENABLE_STATIC_TSRMLS_CACHE -#define ZEND_TSRMG TSRMG_STATIC -#define ZEND_TSRMG_FAST TSRMG_FAST_STATIC -#define ZEND_TSRMLS_CACHE_EXTERN() TSRMLS_CACHE_EXTERN() -#define ZEND_TSRMLS_CACHE_DEFINE() TSRMLS_CACHE_DEFINE() -#define ZEND_TSRMLS_CACHE_UPDATE() TSRMLS_CACHE_UPDATE() -#define ZEND_TSRMLS_CACHE TSRMLS_CACHE -#else -#define ZEND_TSRMG TSRMG -#define ZEND_TSRMG_FAST TSRMG_FAST -#define ZEND_TSRMLS_CACHE_EXTERN() -#define ZEND_TSRMLS_CACHE_DEFINE() -#define ZEND_TSRMLS_CACHE_UPDATE() -#define ZEND_TSRMLS_CACHE -#endif - -ZEND_TSRMLS_CACHE_EXTERN() - -struct _zend_serialize_data; -struct _zend_unserialize_data; - -typedef struct _zend_serialize_data zend_serialize_data; -typedef struct _zend_unserialize_data zend_unserialize_data; - -typedef struct _zend_class_name { - zend_string *name; - zend_string *lc_name; -} zend_class_name; - -typedef struct _zend_trait_method_reference { - zend_string *method_name; - zend_string *class_name; -} zend_trait_method_reference; - -typedef struct _zend_trait_precedence { - zend_trait_method_reference trait_method; - uint32_t num_excludes; - zend_string *exclude_class_names[1]; -} zend_trait_precedence; - -typedef struct _zend_trait_alias { - zend_trait_method_reference trait_method; - - /** - * name for method to be added - */ - zend_string *alias; - - /** - * modifiers to be set on trait method - */ - uint32_t modifiers; -} zend_trait_alias; - -struct _zend_class_entry { - char type; - zend_string *name; - /* class_entry or string depending on ZEND_ACC_LINKED */ - union { - zend_class_entry *parent; - zend_string *parent_name; - }; - int refcount; - uint32_t ce_flags; - - int default_properties_count; - int default_static_members_count; - zval *default_properties_table; - zval *default_static_members_table; - ZEND_MAP_PTR_DEF(zval *, static_members_table); - HashTable function_table; - HashTable properties_info; - HashTable constants_table; - - struct _zend_property_info **properties_info_table; - - zend_function *constructor; - zend_function *destructor; - zend_function *clone; - zend_function *__get; - zend_function *__set; - zend_function *__unset; - zend_function *__isset; - zend_function *__call; - zend_function *__callstatic; - zend_function *__tostring; - zend_function *__debugInfo; - zend_function *serialize_func; - zend_function *unserialize_func; - - /* allocated only if class implements Iterator or IteratorAggregate interface */ - zend_class_iterator_funcs *iterator_funcs_ptr; - - /* handlers */ - union { - zend_object* (*create_object)(zend_class_entry *class_type); - int (*interface_gets_implemented)(zend_class_entry *iface, zend_class_entry *class_type); /* a class implements this interface */ - }; - zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref); - zend_function *(*get_static_method)(zend_class_entry *ce, zend_string* method); - - /* serializer callbacks */ - int (*serialize)(zval *object, unsigned char **buffer, size_t *buf_len, zend_serialize_data *data); - int (*unserialize)(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len, zend_unserialize_data *data); - - uint32_t num_interfaces; - uint32_t num_traits; - - /* class_entry or string(s) depending on ZEND_ACC_LINKED */ - union { - zend_class_entry **interfaces; - zend_class_name *interface_names; - }; - - zend_class_name *trait_names; - zend_trait_alias **trait_aliases; - zend_trait_precedence **trait_precedences; - - union { - struct { - zend_string *filename; - uint32_t line_start; - uint32_t line_end; - zend_string *doc_comment; - } user; - struct { - const struct _zend_function_entry *builtin_functions; - struct _zend_module_entry *module; - } internal; - } info; -}; - -typedef struct _zend_utility_functions { - void (*error_function)(int type, const char *error_filename, const uint32_t error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0); - size_t (*printf_function)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2); - size_t (*write_function)(const char *str, size_t str_length); - FILE *(*fopen_function)(const char *filename, zend_string **opened_path); - void (*message_handler)(zend_long message, const void *data); - zval *(*get_configuration_directive)(zend_string *name); - void (*ticks_function)(int ticks); - void (*on_timeout)(int seconds); - int (*stream_open_function)(const char *filename, zend_file_handle *handle); - void (*printf_to_smart_string_function)(smart_string *buf, const char *format, va_list ap); - void (*printf_to_smart_str_function)(smart_str *buf, const char *format, va_list ap); - char *(*getenv_function)(char *name, size_t name_len); - zend_string *(*resolve_path_function)(const char *filename, size_t filename_len); -} zend_utility_functions; - -typedef struct _zend_utility_values { - zend_bool html_errors; -} zend_utility_values; - -typedef int (*zend_write_func_t)(const char *str, size_t str_length); - -#define zend_bailout() _zend_bailout(__FILE__, __LINE__) - -#define zend_try \ - { \ - JMP_BUF *__orig_bailout = EG(bailout); \ - JMP_BUF __bailout; \ - \ - EG(bailout) = &__bailout; \ - if (SETJMP(__bailout)==0) { -#define zend_catch \ - } else { \ - EG(bailout) = __orig_bailout; -#define zend_end_try() \ - } \ - EG(bailout) = __orig_bailout; \ - } -#define zend_first_try EG(bailout)=NULL; zend_try - -BEGIN_EXTERN_C() -int zend_startup(zend_utility_functions *utility_functions); -void zend_shutdown(void); -void zend_register_standard_ini_entries(void); -int zend_post_startup(void); -void zend_set_utility_values(zend_utility_values *utility_values); - -ZEND_API ZEND_COLD ZEND_NORETURN void _zend_bailout(const char *filename, uint32_t lineno); - -ZEND_API size_t zend_vspprintf(char **pbuf, size_t max_len, const char *format, va_list ap); -ZEND_API size_t zend_spprintf(char **message, size_t max_len, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4); -ZEND_API zend_string *zend_vstrpprintf(size_t max_len, const char *format, va_list ap); -ZEND_API zend_string *zend_strpprintf(size_t max_len, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); - -/* Same as zend_spprintf and zend_strpprintf, without checking of format validity. - * For use with custom printf specifiers such as %H. */ -ZEND_API size_t zend_spprintf_unchecked(char **message, size_t max_len, const char *format, ...); -ZEND_API zend_string *zend_strpprintf_unchecked(size_t max_len, const char *format, ...); - -ZEND_API char *get_zend_version(void); -ZEND_API int zend_make_printable_zval(zval *expr, zval *expr_copy); -ZEND_API size_t zend_print_zval(zval *expr, int indent); -ZEND_API void zend_print_zval_r(zval *expr, int indent); -ZEND_API zend_string *zend_print_zval_r_to_str(zval *expr, int indent); -ZEND_API void zend_print_flat_zval_r(zval *expr); - -#define zend_print_variable(var) \ - zend_print_zval((var), 0) - -ZEND_API ZEND_COLD void zend_output_debug_string(zend_bool trigger_break, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); - -ZEND_API void zend_activate(void); -ZEND_API void zend_deactivate(void); -ZEND_API void zend_call_destructors(void); -ZEND_API void zend_activate_modules(void); -ZEND_API void zend_deactivate_modules(void); -ZEND_API void zend_post_deactivate_modules(void); - -ZEND_API void free_estring(char **str_p); - -END_EXTERN_C() - -/* output support */ -#define ZEND_WRITE(str, str_len) zend_write((str), (str_len)) -#define ZEND_WRITE_EX(str, str_len) write_func((str), (str_len)) -#define ZEND_PUTS(str) zend_write((str), strlen((str))) -#define ZEND_PUTS_EX(str) write_func((str), strlen((str))) -#define ZEND_PUTC(c) zend_write(&(c), 1) - -BEGIN_EXTERN_C() -extern ZEND_API size_t (*zend_printf)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2); -extern ZEND_API zend_write_func_t zend_write; -extern ZEND_API FILE *(*zend_fopen)(const char *filename, zend_string **opened_path); -extern ZEND_API void (*zend_ticks_function)(int ticks); -extern ZEND_API void (*zend_interrupt_function)(zend_execute_data *execute_data); -extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint32_t error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0); -extern ZEND_API void (*zend_on_timeout)(int seconds); -extern ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle); -extern void (*zend_printf_to_smart_string)(smart_string *buf, const char *format, va_list ap); -extern void (*zend_printf_to_smart_str)(smart_str *buf, const char *format, va_list ap); -extern ZEND_API char *(*zend_getenv)(char *name, size_t name_len); -extern ZEND_API zend_string *(*zend_resolve_path)(const char *filename, size_t filename_len); - -/* These two callbacks are especially for opcache */ -extern ZEND_API int (*zend_post_startup_cb)(void); -extern ZEND_API void (*zend_post_shutdown_cb)(void); - -/* Callback for loading of not preloaded part of the script */ -extern ZEND_API int (*zend_preload_autoload)(zend_string *filename); - -ZEND_API ZEND_COLD void zend_error(int type, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); -ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); -/* If filename is NULL the default filename is used. */ -ZEND_API ZEND_COLD void zend_error_at(int type, const char *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5); -ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(int type, const char *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5); - -ZEND_API ZEND_COLD void zend_throw_error(zend_class_entry *exception_ce, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); -ZEND_API ZEND_COLD void zend_type_error(const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 1, 2); -ZEND_API ZEND_COLD void zend_internal_type_error(zend_bool throw_exception, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); -ZEND_API ZEND_COLD void zend_internal_argument_count_error(zend_bool throw_exception, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); - -ZEND_COLD void zenderror(const char *error); - -/* The following #define is used for code duality in PHP for Engine 1 & 2 */ -#define ZEND_STANDARD_CLASS_DEF_PTR zend_standard_class_def -extern ZEND_API zend_class_entry *zend_standard_class_def; -extern ZEND_API zend_utility_values zend_uv; - -/* If DTrace is available and enabled */ -extern ZEND_API zend_bool zend_dtrace_enabled; -END_EXTERN_C() - -#define ZEND_UV(name) (zend_uv.name) - -BEGIN_EXTERN_C() -ZEND_API void zend_message_dispatcher(zend_long message, const void *data); - -ZEND_API zval *zend_get_configuration_directive(zend_string *name); -END_EXTERN_C() - -/* Messages for applications of Zend */ -#define ZMSG_FAILED_INCLUDE_FOPEN 1L -#define ZMSG_FAILED_REQUIRE_FOPEN 2L -#define ZMSG_FAILED_HIGHLIGHT_FOPEN 3L -#define ZMSG_MEMORY_LEAK_DETECTED 4L -#define ZMSG_MEMORY_LEAK_REPEATED 5L -#define ZMSG_LOG_SCRIPT_NAME 6L -#define ZMSG_MEMORY_LEAKS_GRAND_TOTAL 7L - -typedef enum { - EH_NORMAL = 0, - EH_THROW -} zend_error_handling_t; - -typedef struct { - zend_error_handling_t handling; - zend_class_entry *exception; - zval user_handler; -} zend_error_handling; - -ZEND_API void zend_save_error_handling(zend_error_handling *current); -ZEND_API void zend_replace_error_handling(zend_error_handling_t error_handling, zend_class_entry *exception_class, zend_error_handling *current); -ZEND_API void zend_restore_error_handling(zend_error_handling *saved); - -#define DEBUG_BACKTRACE_PROVIDE_OBJECT (1<<0) -#define DEBUG_BACKTRACE_IGNORE_ARGS (1<<1) - -#include "zend_object_handlers.h" -#include "zend_operators.h" - -#endif /* ZEND_H */ diff --git a/include/php/Zend/zend_API.h b/include/php/Zend/zend_API.h deleted file mode 100644 index 2a3b582..0000000 --- a/include/php/Zend/zend_API.h +++ /dev/null @@ -1,1751 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Andrei Zmievski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_API_H -#define ZEND_API_H - -#include "zend_modules.h" -#include "zend_list.h" -#include "zend_operators.h" -#include "zend_variables.h" -#include "zend_execute.h" - - -BEGIN_EXTERN_C() - -typedef struct _zend_function_entry { - const char *fname; - zif_handler handler; - const struct _zend_internal_arg_info *arg_info; - uint32_t num_args; - uint32_t flags; -} zend_function_entry; - -typedef struct _zend_fcall_info { - size_t size; - zval function_name; - zval *retval; - zval *params; - zend_object *object; - zend_bool no_separation; - uint32_t param_count; -} zend_fcall_info; - -typedef struct _zend_fcall_info_cache { - zend_function *function_handler; - zend_class_entry *calling_scope; - zend_class_entry *called_scope; - zend_object *object; -} zend_fcall_info_cache; - -#define ZEND_NS_NAME(ns, name) ns "\\" name - -#define ZEND_FN(name) zif_##name -#define ZEND_MN(name) zim_##name -#define ZEND_NAMED_FUNCTION(name) void ZEND_FASTCALL name(INTERNAL_FUNCTION_PARAMETERS) -#define ZEND_FUNCTION(name) ZEND_NAMED_FUNCTION(ZEND_FN(name)) -#define ZEND_METHOD(classname, name) ZEND_NAMED_FUNCTION(ZEND_MN(classname##_##name)) - -#define ZEND_FENTRY(zend_name, name, arg_info, flags) { #zend_name, name, arg_info, (uint32_t) (sizeof(arg_info)/sizeof(struct _zend_internal_arg_info)-1), flags }, - -#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags) { zend_name, name, arg_info, (uint32_t) (sizeof(arg_info)/sizeof(struct _zend_internal_arg_info)-1), flags }, -#define ZEND_RAW_NAMED_FE(zend_name, name, arg_info) ZEND_RAW_FENTRY(#zend_name, name, arg_info, 0) - -#define ZEND_NAMED_FE(zend_name, name, arg_info) ZEND_FENTRY(zend_name, name, arg_info, 0) -#define ZEND_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0) -#define ZEND_DEP_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED) -#define ZEND_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, 0) -#define ZEND_DEP_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED) -#define ZEND_NAMED_ME(zend_name, name, arg_info, flags) ZEND_FENTRY(zend_name, name, arg_info, flags) -#define ZEND_ME(classname, name, arg_info, flags) ZEND_FENTRY(name, ZEND_MN(classname##_##name), arg_info, flags) -#define ZEND_DEP_ME(classname, name, arg_info, flags) ZEND_ME(classname, name, arg_info, flags | ZEND_ACC_DEPRECATED) -#define ZEND_ABSTRACT_ME(classname, name, arg_info) ZEND_FENTRY(name, NULL, arg_info, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT) -#define ZEND_MALIAS(classname, name, alias, arg_info, flags) \ - ZEND_FENTRY(name, ZEND_MN(classname##_##alias), arg_info, flags) -#define ZEND_ME_MAPPING(name, func_name, arg_types, flags) ZEND_NAMED_ME(name, ZEND_FN(func_name), arg_types, flags) - -#define ZEND_NS_FENTRY(ns, zend_name, name, arg_info, flags) ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, #zend_name), name, arg_info, flags) - -#define ZEND_NS_RAW_FENTRY(ns, zend_name, name, arg_info, flags) ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, zend_name), name, arg_info, flags) -#define ZEND_NS_RAW_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_RAW_FENTRY(ns, #zend_name, name, arg_info, 0) - -#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_FENTRY(ns, zend_name, name, arg_info, 0) -#define ZEND_NS_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, 0) -#define ZEND_NS_DEP_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED) -#define ZEND_NS_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, 0) -#define ZEND_NS_DEP_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED) - -#define ZEND_FE_END { NULL, NULL, NULL, 0, 0 } - -#define ZEND_ARG_INFO(pass_by_ref, name) { #name, 0, pass_by_ref, 0}, -#define ZEND_ARG_PASS_INFO(pass_by_ref) { NULL, 0, pass_by_ref, 0}, -#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, ZEND_TYPE_ENCODE_CLASS_CONST(#classname, allow_null), pass_by_ref, 0 }, -#define ZEND_ARG_ARRAY_INFO(pass_by_ref, name, allow_null) { #name, ZEND_TYPE_ENCODE(IS_ARRAY, allow_null), pass_by_ref, 0 }, -#define ZEND_ARG_CALLABLE_INFO(pass_by_ref, name, allow_null) { #name, ZEND_TYPE_ENCODE(IS_CALLABLE, allow_null), pass_by_ref, 0 }, -#define ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, ZEND_TYPE_ENCODE(type_hint, allow_null), pass_by_ref, 0 }, -#define ZEND_ARG_VARIADIC_INFO(pass_by_ref, name) { #name, 0, pass_by_ref, 1 }, -#define ZEND_ARG_VARIADIC_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, ZEND_TYPE_ENCODE(type_hint, allow_null), pass_by_ref, 1 }, -#define ZEND_ARG_VARIADIC_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, ZEND_TYPE_ENCODE_CLASS_CONST(#classname, allow_null), pass_by_ref, 1 }, - -#define ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(name, return_reference, required_num_args, class_name, allow_null) \ - static const zend_internal_arg_info name[] = { \ - { (const char*)(zend_uintptr_t)(required_num_args), ZEND_TYPE_ENCODE_CLASS_CONST(#class_name, allow_null), return_reference, 0 }, - -#define ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO(name, class_name, allow_null) \ - ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(name, 0, -1, class_name, allow_null) - -#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null) \ - static const zend_internal_arg_info name[] = { \ - { (const char*)(zend_uintptr_t)(required_num_args), ZEND_TYPE_ENCODE(type, allow_null), return_reference, 0 }, -#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(name, type, allow_null) \ - ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, 0, -1, type, allow_null) - -#define ZEND_BEGIN_ARG_INFO_EX(name, _unused, return_reference, required_num_args) \ - static const zend_internal_arg_info name[] = { \ - { (const char*)(zend_uintptr_t)(required_num_args), 0, return_reference, 0 }, -#define ZEND_BEGIN_ARG_INFO(name, _unused) \ - ZEND_BEGIN_ARG_INFO_EX(name, 0, ZEND_RETURN_VALUE, -1) -#define ZEND_END_ARG_INFO() }; - -/* Name macros */ -#define ZEND_MODULE_STARTUP_N(module) zm_startup_##module -#define ZEND_MODULE_SHUTDOWN_N(module) zm_shutdown_##module -#define ZEND_MODULE_ACTIVATE_N(module) zm_activate_##module -#define ZEND_MODULE_DEACTIVATE_N(module) zm_deactivate_##module -#define ZEND_MODULE_POST_ZEND_DEACTIVATE_N(module) zm_post_zend_deactivate_##module -#define ZEND_MODULE_INFO_N(module) zm_info_##module -#define ZEND_MODULE_GLOBALS_CTOR_N(module) zm_globals_ctor_##module -#define ZEND_MODULE_GLOBALS_DTOR_N(module) zm_globals_dtor_##module - -/* Declaration macros */ -#define ZEND_MODULE_STARTUP_D(module) int ZEND_MODULE_STARTUP_N(module)(INIT_FUNC_ARGS) -#define ZEND_MODULE_SHUTDOWN_D(module) int ZEND_MODULE_SHUTDOWN_N(module)(SHUTDOWN_FUNC_ARGS) -#define ZEND_MODULE_ACTIVATE_D(module) int ZEND_MODULE_ACTIVATE_N(module)(INIT_FUNC_ARGS) -#define ZEND_MODULE_DEACTIVATE_D(module) int ZEND_MODULE_DEACTIVATE_N(module)(SHUTDOWN_FUNC_ARGS) -#define ZEND_MODULE_POST_ZEND_DEACTIVATE_D(module) int ZEND_MODULE_POST_ZEND_DEACTIVATE_N(module)(void) -#define ZEND_MODULE_INFO_D(module) ZEND_COLD void ZEND_MODULE_INFO_N(module)(ZEND_MODULE_INFO_FUNC_ARGS) -#define ZEND_MODULE_GLOBALS_CTOR_D(module) void ZEND_MODULE_GLOBALS_CTOR_N(module)(zend_##module##_globals *module##_globals) -#define ZEND_MODULE_GLOBALS_DTOR_D(module) void ZEND_MODULE_GLOBALS_DTOR_N(module)(zend_##module##_globals *module##_globals) - -#define ZEND_GET_MODULE(name) \ - BEGIN_EXTERN_C()\ - ZEND_DLEXPORT zend_module_entry *get_module(void) { return &name##_module_entry; }\ - END_EXTERN_C() - -#define ZEND_BEGIN_MODULE_GLOBALS(module_name) \ - typedef struct _zend_##module_name##_globals { -#define ZEND_END_MODULE_GLOBALS(module_name) \ - } zend_##module_name##_globals; - -#ifdef ZTS - -#define ZEND_DECLARE_MODULE_GLOBALS(module_name) \ - ts_rsrc_id module_name##_globals_id; -#define ZEND_EXTERN_MODULE_GLOBALS(module_name) \ - extern ts_rsrc_id module_name##_globals_id; -#define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \ - ts_allocate_id(&module_name##_globals_id, sizeof(zend_##module_name##_globals), (ts_allocate_ctor) globals_ctor, (ts_allocate_dtor) globals_dtor); -#define ZEND_MODULE_GLOBALS_ACCESSOR(module_name, v) ZEND_TSRMG(module_name##_globals_id, zend_##module_name##_globals *, v) -#if ZEND_ENABLE_STATIC_TSRMLS_CACHE -#define ZEND_MODULE_GLOBALS_BULK(module_name) TSRMG_BULK_STATIC(module_name##_globals_id, zend_##module_name##_globals *) -#else -#define ZEND_MODULE_GLOBALS_BULK(module_name) TSRMG_BULK(module_name##_globals_id, zend_##module_name##_globals *) -#endif - -#else - -#define ZEND_DECLARE_MODULE_GLOBALS(module_name) \ - zend_##module_name##_globals module_name##_globals; -#define ZEND_EXTERN_MODULE_GLOBALS(module_name) \ - extern zend_##module_name##_globals module_name##_globals; -#define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \ - globals_ctor(&module_name##_globals); -#define ZEND_MODULE_GLOBALS_ACCESSOR(module_name, v) (module_name##_globals.v) -#define ZEND_MODULE_GLOBALS_BULK(module_name) (&module_name##_globals) - -#endif - -#define INIT_CLASS_ENTRY(class_container, class_name, functions) \ - INIT_CLASS_ENTRY_EX(class_container, class_name, sizeof(class_name)-1, functions) - -#define INIT_CLASS_ENTRY_EX(class_container, class_name, class_name_len, functions) \ - { \ - memset(&class_container, 0, sizeof(zend_class_entry)); \ - class_container.name = zend_string_init_interned(class_name, class_name_len, 1); \ - class_container.info.internal.builtin_functions = functions; \ - } - -#define INIT_CLASS_ENTRY_INIT_METHODS(class_container, functions) \ - { \ - class_container.constructor = NULL; \ - class_container.destructor = NULL; \ - class_container.clone = NULL; \ - class_container.serialize = NULL; \ - class_container.unserialize = NULL; \ - class_container.create_object = NULL; \ - class_container.get_static_method = NULL; \ - class_container.__call = NULL; \ - class_container.__callstatic = NULL; \ - class_container.__tostring = NULL; \ - class_container.__get = NULL; \ - class_container.__set = NULL; \ - class_container.__unset = NULL; \ - class_container.__isset = NULL; \ - class_container.__debugInfo = NULL; \ - class_container.serialize_func = NULL; \ - class_container.unserialize_func = NULL; \ - class_container.parent = NULL; \ - class_container.num_interfaces = 0; \ - class_container.trait_names = NULL; \ - class_container.num_traits = 0; \ - class_container.trait_aliases = NULL; \ - class_container.trait_precedences = NULL; \ - class_container.interfaces = NULL; \ - class_container.get_iterator = NULL; \ - class_container.iterator_funcs_ptr = NULL; \ - class_container.info.internal.module = NULL; \ - class_container.info.internal.builtin_functions = functions; \ - } - - -#define INIT_NS_CLASS_ENTRY(class_container, ns, class_name, functions) \ - INIT_CLASS_ENTRY(class_container, ZEND_NS_NAME(ns, class_name), functions) - -#define CE_STATIC_MEMBERS(ce) \ - ((zval*)ZEND_MAP_PTR_GET((ce)->static_members_table)) - -#define ZEND_FCI_INITIALIZED(fci) ((fci).size != 0) - -ZEND_API int zend_next_free_module(void); - -BEGIN_EXTERN_C() -ZEND_API int _zend_get_parameters_array_ex(int param_count, zval *argument_array); - -/* internal function to efficiently copy parameters when executing __call() */ -ZEND_API int zend_copy_parameters_array(int param_count, zval *argument_array); - -#define zend_get_parameters_array(ht, param_count, argument_array) \ - _zend_get_parameters_array_ex(param_count, argument_array) -#define zend_get_parameters_array_ex(param_count, argument_array) \ - _zend_get_parameters_array_ex(param_count, argument_array) -#define zend_parse_parameters_none() \ - (EXPECTED(ZEND_NUM_ARGS() == 0) ? SUCCESS : (zend_wrong_parameters_none_error(), FAILURE)) -#define zend_parse_parameters_none_throw() \ - (EXPECTED(ZEND_NUM_ARGS() == 0) ? SUCCESS : (zend_wrong_parameters_none_exception(), FAILURE)) - -/* Parameter parsing API -- andrei */ - -#define ZEND_PARSE_PARAMS_QUIET (1<<1) -#define ZEND_PARSE_PARAMS_THROW (1<<2) -ZEND_API int zend_parse_parameters(int num_args, const char *type_spec, ...); -ZEND_API int zend_parse_parameters_ex(int flags, int num_args, const char *type_spec, ...); -ZEND_API int zend_parse_parameters_throw(int num_args, const char *type_spec, ...); -ZEND_API char *zend_zval_type_name(const zval *arg); -ZEND_API zend_string *zend_zval_get_type(const zval *arg); - -ZEND_API int zend_parse_method_parameters(int num_args, zval *this_ptr, const char *type_spec, ...); -ZEND_API int zend_parse_method_parameters_ex(int flags, int num_args, zval *this_ptr, const char *type_spec, ...); - -ZEND_API int zend_parse_parameter(int flags, int arg_num, zval *arg, const char *spec, ...); - -/* End of parameter parsing API -- andrei */ - -ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_function_entry *functions, HashTable *function_table, int type); -ZEND_API void zend_unregister_functions(const zend_function_entry *functions, int count, HashTable *function_table); -ZEND_API int zend_startup_module(zend_module_entry *module_entry); -ZEND_API zend_module_entry* zend_register_internal_module(zend_module_entry *module_entry); -ZEND_API zend_module_entry* zend_register_module_ex(zend_module_entry *module); -ZEND_API int zend_startup_module_ex(zend_module_entry *module); -ZEND_API int zend_startup_modules(void); -ZEND_API void zend_collect_module_handlers(void); -ZEND_API void zend_destroy_modules(void); -ZEND_API void zend_check_magic_method_implementation(const zend_class_entry *ce, const zend_function *fptr, int error_type); - -ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_entry); -ZEND_API zend_class_entry *zend_register_internal_class_ex(zend_class_entry *class_entry, zend_class_entry *parent_ce); -ZEND_API zend_class_entry *zend_register_internal_interface(zend_class_entry *orig_class_entry); -ZEND_API void zend_class_implements(zend_class_entry *class_entry, int num_interfaces, ...); - -ZEND_API int zend_register_class_alias_ex(const char *name, size_t name_len, zend_class_entry *ce, int persistent); - -#define zend_register_class_alias(name, ce) \ - zend_register_class_alias_ex(name, sizeof(name)-1, ce, 1) -#define zend_register_ns_class_alias(ns, name, ce) \ - zend_register_class_alias_ex(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, ce, 1) - -ZEND_API int zend_disable_function(char *function_name, size_t function_name_length); -ZEND_API int zend_disable_class(char *class_name, size_t class_name_length); - -ZEND_API ZEND_COLD void zend_wrong_param_count(void); - -#define IS_CALLABLE_CHECK_SYNTAX_ONLY (1<<0) -#define IS_CALLABLE_CHECK_NO_ACCESS (1<<1) -#define IS_CALLABLE_CHECK_IS_STATIC (1<<2) -#define IS_CALLABLE_CHECK_SILENT (1<<3) - -#define IS_CALLABLE_STRICT (IS_CALLABLE_CHECK_IS_STATIC) - -ZEND_API void zend_release_fcall_info_cache(zend_fcall_info_cache *fcc); -ZEND_API zend_string *zend_get_callable_name_ex(zval *callable, zend_object *object); -ZEND_API zend_string *zend_get_callable_name(zval *callable); -ZEND_API zend_bool zend_is_callable_ex(zval *callable, zend_object *object, uint32_t check_flags, zend_string **callable_name, zend_fcall_info_cache *fcc, char **error); -ZEND_API zend_bool zend_is_callable(zval *callable, uint32_t check_flags, zend_string **callable_name); -ZEND_API zend_bool zend_make_callable(zval *callable, zend_string **callable_name); -ZEND_API const char *zend_get_module_version(const char *module_name); -ZEND_API int zend_get_module_started(const char *module_name); - -ZEND_API int zend_declare_typed_property(zend_class_entry *ce, zend_string *name, zval *property, int access_type, zend_string *doc_comment, zend_type type); - -ZEND_API int zend_declare_property_ex(zend_class_entry *ce, zend_string *name, zval *property, int access_type, zend_string *doc_comment); -ZEND_API int zend_declare_property(zend_class_entry *ce, const char *name, size_t name_length, zval *property, int access_type); -ZEND_API int zend_declare_property_null(zend_class_entry *ce, const char *name, size_t name_length, int access_type); -ZEND_API int zend_declare_property_bool(zend_class_entry *ce, const char *name, size_t name_length, zend_long value, int access_type); -ZEND_API int zend_declare_property_long(zend_class_entry *ce, const char *name, size_t name_length, zend_long value, int access_type); -ZEND_API int zend_declare_property_double(zend_class_entry *ce, const char *name, size_t name_length, double value, int access_type); -ZEND_API int zend_declare_property_string(zend_class_entry *ce, const char *name, size_t name_length, const char *value, int access_type); -ZEND_API int zend_declare_property_stringl(zend_class_entry *ce, const char *name, size_t name_length, const char *value, size_t value_len, int access_type); - -ZEND_API int zend_declare_class_constant_ex(zend_class_entry *ce, zend_string *name, zval *value, int access_type, zend_string *doc_comment); -ZEND_API int zend_declare_class_constant(zend_class_entry *ce, const char *name, size_t name_length, zval *value); -ZEND_API int zend_declare_class_constant_null(zend_class_entry *ce, const char *name, size_t name_length); -ZEND_API int zend_declare_class_constant_long(zend_class_entry *ce, const char *name, size_t name_length, zend_long value); -ZEND_API int zend_declare_class_constant_bool(zend_class_entry *ce, const char *name, size_t name_length, zend_bool value); -ZEND_API int zend_declare_class_constant_double(zend_class_entry *ce, const char *name, size_t name_length, double value); -ZEND_API int zend_declare_class_constant_stringl(zend_class_entry *ce, const char *name, size_t name_length, const char *value, size_t value_length); -ZEND_API int zend_declare_class_constant_string(zend_class_entry *ce, const char *name, size_t name_length, const char *value); - -ZEND_API int zend_update_class_constants(zend_class_entry *class_type); - -ZEND_API void zend_update_property_ex(zend_class_entry *scope, zval *object, zend_string *name, zval *value); -ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zval *value); -ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, const char *name, size_t name_length); -ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value); -ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value); -ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object, const char *name, size_t name_length, double value); -ZEND_API void zend_update_property_str(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_string *value); -ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value); -ZEND_API void zend_update_property_stringl(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value, size_t value_length); -ZEND_API void zend_unset_property(zend_class_entry *scope, zval *object, const char *name, size_t name_length); - -ZEND_API int zend_update_static_property_ex(zend_class_entry *scope, zend_string *name, zval *value); -ZEND_API int zend_update_static_property(zend_class_entry *scope, const char *name, size_t name_length, zval *value); -ZEND_API int zend_update_static_property_null(zend_class_entry *scope, const char *name, size_t name_length); -ZEND_API int zend_update_static_property_bool(zend_class_entry *scope, const char *name, size_t name_length, zend_long value); -ZEND_API int zend_update_static_property_long(zend_class_entry *scope, const char *name, size_t name_length, zend_long value); -ZEND_API int zend_update_static_property_double(zend_class_entry *scope, const char *name, size_t name_length, double value); -ZEND_API int zend_update_static_property_string(zend_class_entry *scope, const char *name, size_t name_length, const char *value); -ZEND_API int zend_update_static_property_stringl(zend_class_entry *scope, const char *name, size_t name_length, const char *value, size_t value_length); - -ZEND_API zval *zend_read_property_ex(zend_class_entry *scope, zval *object, zend_string *name, zend_bool silent, zval *rv); -ZEND_API zval *zend_read_property(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_bool silent, zval *rv); - -ZEND_API zval *zend_read_static_property_ex(zend_class_entry *scope, zend_string *name, zend_bool silent); -ZEND_API zval *zend_read_static_property(zend_class_entry *scope, const char *name, size_t name_length, zend_bool silent); - -ZEND_API char *zend_get_type_by_const(int type); - -#define ZEND_THIS (&EX(This)) - -#define getThis() ((Z_TYPE_P(ZEND_THIS) == IS_OBJECT) ? ZEND_THIS : NULL) -#define ZEND_IS_METHOD_CALL() (EX(func)->common.scope != NULL) - -#define WRONG_PARAM_COUNT ZEND_WRONG_PARAM_COUNT() -#define WRONG_PARAM_COUNT_WITH_RETVAL(ret) ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret) -#define ARG_COUNT(dummy) EX_NUM_ARGS() -#define ZEND_NUM_ARGS() EX_NUM_ARGS() -#define ZEND_WRONG_PARAM_COUNT() { zend_wrong_param_count(); return; } -#define ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret) { zend_wrong_param_count(); return ret; } - -#ifndef ZEND_WIN32 -#define DLEXPORT -#endif - -#define array_init(arg) ZVAL_ARR((arg), zend_new_array(0)) -#define array_init_size(arg, size) ZVAL_ARR((arg), zend_new_array(size)) -ZEND_API int object_init(zval *arg); -ZEND_API int object_init_ex(zval *arg, zend_class_entry *ce); -ZEND_API int object_and_properties_init(zval *arg, zend_class_entry *ce, HashTable *properties); -ZEND_API void object_properties_init(zend_object *object, zend_class_entry *class_type); -ZEND_API void object_properties_init_ex(zend_object *object, HashTable *properties); -ZEND_API void object_properties_load(zend_object *object, HashTable *properties); - -ZEND_API void zend_merge_properties(zval *obj, HashTable *properties); - -ZEND_API int add_assoc_long_ex(zval *arg, const char *key, size_t key_len, zend_long n); -ZEND_API int add_assoc_null_ex(zval *arg, const char *key, size_t key_len); -ZEND_API int add_assoc_bool_ex(zval *arg, const char *key, size_t key_len, int b); -ZEND_API int add_assoc_resource_ex(zval *arg, const char *key, size_t key_len, zend_resource *r); -ZEND_API int add_assoc_double_ex(zval *arg, const char *key, size_t key_len, double d); -ZEND_API int add_assoc_str_ex(zval *arg, const char *key, size_t key_len, zend_string *str); -ZEND_API int add_assoc_string_ex(zval *arg, const char *key, size_t key_len, const char *str); -ZEND_API int add_assoc_stringl_ex(zval *arg, const char *key, size_t key_len, const char *str, size_t length); -ZEND_API int add_assoc_zval_ex(zval *arg, const char *key, size_t key_len, zval *value); - -#define add_assoc_long(__arg, __key, __n) add_assoc_long_ex(__arg, __key, strlen(__key), __n) -#define add_assoc_null(__arg, __key) add_assoc_null_ex(__arg, __key, strlen(__key)) -#define add_assoc_bool(__arg, __key, __b) add_assoc_bool_ex(__arg, __key, strlen(__key), __b) -#define add_assoc_resource(__arg, __key, __r) add_assoc_resource_ex(__arg, __key, strlen(__key), __r) -#define add_assoc_double(__arg, __key, __d) add_assoc_double_ex(__arg, __key, strlen(__key), __d) -#define add_assoc_str(__arg, __key, __str) add_assoc_str_ex(__arg, __key, strlen(__key), __str) -#define add_assoc_string(__arg, __key, __str) add_assoc_string_ex(__arg, __key, strlen(__key), __str) -#define add_assoc_stringl(__arg, __key, __str, __length) add_assoc_stringl_ex(__arg, __key, strlen(__key), __str, __length) -#define add_assoc_zval(__arg, __key, __value) add_assoc_zval_ex(__arg, __key, strlen(__key), __value) - -ZEND_API int add_index_long(zval *arg, zend_ulong index, zend_long n); -ZEND_API int add_index_null(zval *arg, zend_ulong index); -ZEND_API int add_index_bool(zval *arg, zend_ulong index, int b); -ZEND_API int add_index_resource(zval *arg, zend_ulong index, zend_resource *r); -ZEND_API int add_index_double(zval *arg, zend_ulong index, double d); -ZEND_API int add_index_str(zval *arg, zend_ulong index, zend_string *str); -ZEND_API int add_index_string(zval *arg, zend_ulong index, const char *str); -ZEND_API int add_index_stringl(zval *arg, zend_ulong index, const char *str, size_t length); - -static zend_always_inline int add_index_zval(zval *arg, zend_ulong index, zval *value) -{ - return zend_hash_index_update(Z_ARRVAL_P(arg), index, value) ? SUCCESS : FAILURE; -} - -ZEND_API int add_next_index_long(zval *arg, zend_long n); -ZEND_API int add_next_index_null(zval *arg); -ZEND_API int add_next_index_bool(zval *arg, int b); -ZEND_API int add_next_index_resource(zval *arg, zend_resource *r); -ZEND_API int add_next_index_double(zval *arg, double d); -ZEND_API int add_next_index_str(zval *arg, zend_string *str); -ZEND_API int add_next_index_string(zval *arg, const char *str); -ZEND_API int add_next_index_stringl(zval *arg, const char *str, size_t length); - -static zend_always_inline int add_next_index_zval(zval *arg, zval *value) -{ - return zend_hash_next_index_insert(Z_ARRVAL_P(arg), value) ? SUCCESS : FAILURE; -} - -ZEND_API int array_set_zval_key(HashTable *ht, zval *key, zval *value); - -ZEND_API int add_property_long_ex(zval *arg, const char *key, size_t key_len, zend_long l); -ZEND_API int add_property_null_ex(zval *arg, const char *key, size_t key_len); -ZEND_API int add_property_bool_ex(zval *arg, const char *key, size_t key_len, zend_long b); -ZEND_API int add_property_resource_ex(zval *arg, const char *key, size_t key_len, zend_resource *r); -ZEND_API int add_property_double_ex(zval *arg, const char *key, size_t key_len, double d); -ZEND_API int add_property_str_ex(zval *arg, const char *key, size_t key_len, zend_string *str); -ZEND_API int add_property_string_ex(zval *arg, const char *key, size_t key_len, const char *str); -ZEND_API int add_property_stringl_ex(zval *arg, const char *key, size_t key_len, const char *str, size_t length); -ZEND_API int add_property_zval_ex(zval *arg, const char *key, size_t key_len, zval *value); - -#define add_property_long(__arg, __key, __n) add_property_long_ex(__arg, __key, strlen(__key), __n) -#define add_property_null(__arg, __key) add_property_null_ex(__arg, __key, strlen(__key)) -#define add_property_bool(__arg, __key, __b) add_property_bool_ex(__arg, __key, strlen(__key), __b) -#define add_property_resource(__arg, __key, __r) add_property_resource_ex(__arg, __key, strlen(__key), __r) -#define add_property_double(__arg, __key, __d) add_property_double_ex(__arg, __key, strlen(__key), __d) -#define add_property_str(__arg, __key, __str) add_property_str_ex(__arg, __key, strlen(__key), __str) -#define add_property_string(__arg, __key, __str) add_property_string_ex(__arg, __key, strlen(__key), __str) -#define add_property_stringl(__arg, __key, __str, __length) add_property_stringl_ex(__arg, __key, strlen(__key), __str, __length) -#define add_property_zval(__arg, __key, __value) add_property_zval_ex(__arg, __key, strlen(__key), __value) - - -ZEND_API int _call_user_function_ex(zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[], int no_separation); - -#define call_user_function(function_table, object, function_name, retval_ptr, param_count, params) \ - _call_user_function_ex(object, function_name, retval_ptr, param_count, params, 1) -#define call_user_function_ex(function_table, object, function_name, retval_ptr, param_count, params, no_separation, symbol_table) \ - _call_user_function_ex(object, function_name, retval_ptr, param_count, params, no_separation) - -ZEND_API extern const zend_fcall_info empty_fcall_info; -ZEND_API extern const zend_fcall_info_cache empty_fcall_info_cache; - -/** Build zend_call_info/cache from a zval* - * - * Caller is responsible to provide a return value (fci->retval), otherwise the we will crash. - * In order to pass parameters the following members need to be set: - * fci->param_count = 0; - * fci->params = NULL; - * The callable_name argument may be NULL. - * Set check_flags to IS_CALLABLE_STRICT for every new usage! - */ -ZEND_API int zend_fcall_info_init(zval *callable, uint32_t check_flags, zend_fcall_info *fci, zend_fcall_info_cache *fcc, zend_string **callable_name, char **error); - -/** Clear arguments connected with zend_fcall_info *fci - * If free_mem is not zero then the params array gets free'd as well - */ -ZEND_API void zend_fcall_info_args_clear(zend_fcall_info *fci, int free_mem); - -/** Save current arguments from zend_fcall_info *fci - * params array will be set to NULL - */ -ZEND_API void zend_fcall_info_args_save(zend_fcall_info *fci, int *param_count, zval **params); - -/** Free arguments connected with zend_fcall_info *fci andset back saved ones. - */ -ZEND_API void zend_fcall_info_args_restore(zend_fcall_info *fci, int param_count, zval *params); - -/** Set or clear the arguments in the zend_call_info struct taking care of - * refcount. If args is NULL and arguments are set then those are cleared. - */ -ZEND_API int zend_fcall_info_args(zend_fcall_info *fci, zval *args); -ZEND_API int zend_fcall_info_args_ex(zend_fcall_info *fci, zend_function *func, zval *args); - -/** Set arguments in the zend_fcall_info struct taking care of refcount. - * If argc is 0 the arguments which are set will be cleared, else pass - * a variable amount of zval** arguments. - */ -ZEND_API int zend_fcall_info_argp(zend_fcall_info *fci, int argc, zval *argv); - -/** Set arguments in the zend_fcall_info struct taking care of refcount. - * If argc is 0 the arguments which are set will be cleared, else pass - * a variable amount of zval** arguments. - */ -ZEND_API int zend_fcall_info_argv(zend_fcall_info *fci, int argc, va_list *argv); - -/** Set arguments in the zend_fcall_info struct taking care of refcount. - * If argc is 0 the arguments which are set will be cleared, else pass - * a variable amount of zval** arguments. - */ -ZEND_API int zend_fcall_info_argn(zend_fcall_info *fci, int argc, ...); - -/** Call a function using information created by zend_fcall_info_init()/args(). - * If args is given then those replace the argument info in fci is temporarily. - */ -ZEND_API int zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *fcc, zval *retval, zval *args); - -ZEND_API int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache); - -ZEND_API int zend_set_hash_symbol(zval *symbol, const char *name, int name_length, zend_bool is_ref, int num_symbol_tables, ...); - -ZEND_API int zend_delete_global_variable(zend_string *name); - -ZEND_API zend_array *zend_rebuild_symbol_table(void); -ZEND_API void zend_attach_symbol_table(zend_execute_data *execute_data); -ZEND_API void zend_detach_symbol_table(zend_execute_data *execute_data); -ZEND_API int zend_set_local_var(zend_string *name, zval *value, int force); -ZEND_API int zend_set_local_var_str(const char *name, size_t len, zval *value, int force); - -static zend_always_inline int zend_forbid_dynamic_call(const char *func_name) -{ - zend_execute_data *ex = EG(current_execute_data); - ZEND_ASSERT(ex != NULL && ex->func != NULL); - - if (ZEND_CALL_INFO(ex) & ZEND_CALL_DYNAMIC) { - zend_error(E_WARNING, "Cannot call %s dynamically", func_name); - return FAILURE; - } - - return SUCCESS; -} - -ZEND_API zend_string *zend_find_alias_name(zend_class_entry *ce, zend_string *name); -ZEND_API zend_string *zend_resolve_method_name(zend_class_entry *ce, zend_function *f); - -ZEND_API ZEND_COLD const char *zend_get_object_type(const zend_class_entry *ce); - -ZEND_API zend_bool zend_is_iterable(zval *iterable); - -ZEND_API zend_bool zend_is_countable(zval *countable); - -ZEND_API ZEND_FUNCTION(display_disabled_function); -END_EXTERN_C() - -#if ZEND_DEBUG -#define CHECK_ZVAL_STRING(str) \ - if (ZSTR_VAL(str)[ZSTR_LEN(str)] != '\0') { zend_error(E_WARNING, "String is not zero-terminated (%s)", ZSTR_VAL(str)); } -#define CHECK_ZVAL_STRING_REL(str) \ - if (ZSTR_VAL(str)[ZSTR_LEN(str)] != '\0') { zend_error(E_WARNING, "String is not zero-terminated (%s) (source: %s:%d)", ZSTR_VAL(str) ZEND_FILE_LINE_RELAY_CC); } -#else -#define CHECK_ZVAL_STRING(z) -#define CHECK_ZVAL_STRING_REL(z) -#endif - -#define CHECK_ZVAL_NULL_PATH(p) (Z_STRLEN_P(p) != strlen(Z_STRVAL_P(p))) -#define CHECK_NULL_PATH(p, l) (strlen(p) != (size_t)(l)) - -#define ZVAL_STRINGL(z, s, l) do { \ - ZVAL_NEW_STR(z, zend_string_init(s, l, 0)); \ - } while (0) - -#define ZVAL_STRING(z, s) do { \ - const char *_s = (s); \ - ZVAL_STRINGL(z, _s, strlen(_s)); \ - } while (0) - -#define ZVAL_EMPTY_STRING(z) do { \ - ZVAL_INTERNED_STR(z, ZSTR_EMPTY_ALLOC()); \ - } while (0) - -#define ZVAL_PSTRINGL(z, s, l) do { \ - ZVAL_NEW_STR(z, zend_string_init(s, l, 1)); \ - } while (0) - -#define ZVAL_PSTRING(z, s) do { \ - const char *_s = (s); \ - ZVAL_PSTRINGL(z, _s, strlen(_s)); \ - } while (0) - -#define ZVAL_EMPTY_PSTRING(z) do { \ - ZVAL_PSTRINGL(z, "", 0); \ - } while (0) - -#define ZVAL_ZVAL(z, zv, copy, dtor) do { \ - zval *__z = (z); \ - zval *__zv = (zv); \ - if (EXPECTED(!Z_ISREF_P(__zv))) { \ - if (copy && !dtor) { \ - ZVAL_COPY(__z, __zv); \ - } else { \ - ZVAL_COPY_VALUE(__z, __zv); \ - } \ - } else { \ - ZVAL_COPY(__z, Z_REFVAL_P(__zv)); \ - if (dtor || !copy) { \ - zval_ptr_dtor(__zv); \ - } \ - } \ - } while (0) - -#define RETVAL_BOOL(b) ZVAL_BOOL(return_value, b) -#define RETVAL_NULL() ZVAL_NULL(return_value) -#define RETVAL_LONG(l) ZVAL_LONG(return_value, l) -#define RETVAL_DOUBLE(d) ZVAL_DOUBLE(return_value, d) -#define RETVAL_STR(s) ZVAL_STR(return_value, s) -#define RETVAL_INTERNED_STR(s) ZVAL_INTERNED_STR(return_value, s) -#define RETVAL_NEW_STR(s) ZVAL_NEW_STR(return_value, s) -#define RETVAL_STR_COPY(s) ZVAL_STR_COPY(return_value, s) -#define RETVAL_STRING(s) ZVAL_STRING(return_value, s) -#define RETVAL_STRINGL(s, l) ZVAL_STRINGL(return_value, s, l) -#define RETVAL_EMPTY_STRING() ZVAL_EMPTY_STRING(return_value) -#define RETVAL_RES(r) ZVAL_RES(return_value, r) -#define RETVAL_ARR(r) ZVAL_ARR(return_value, r) -#define RETVAL_EMPTY_ARRAY() ZVAL_EMPTY_ARRAY(return_value) -#define RETVAL_OBJ(r) ZVAL_OBJ(return_value, r) -#define RETVAL_ZVAL(zv, copy, dtor) ZVAL_ZVAL(return_value, zv, copy, dtor) -#define RETVAL_FALSE ZVAL_FALSE(return_value) -#define RETVAL_TRUE ZVAL_TRUE(return_value) - -#define RETURN_BOOL(b) { RETVAL_BOOL(b); return; } -#define RETURN_NULL() { RETVAL_NULL(); return;} -#define RETURN_LONG(l) { RETVAL_LONG(l); return; } -#define RETURN_DOUBLE(d) { RETVAL_DOUBLE(d); return; } -#define RETURN_STR(s) { RETVAL_STR(s); return; } -#define RETURN_INTERNED_STR(s) { RETVAL_INTERNED_STR(s); return; } -#define RETURN_NEW_STR(s) { RETVAL_NEW_STR(s); return; } -#define RETURN_STR_COPY(s) { RETVAL_STR_COPY(s); return; } -#define RETURN_STRING(s) { RETVAL_STRING(s); return; } -#define RETURN_STRINGL(s, l) { RETVAL_STRINGL(s, l); return; } -#define RETURN_EMPTY_STRING() { RETVAL_EMPTY_STRING(); return; } -#define RETURN_RES(r) { RETVAL_RES(r); return; } -#define RETURN_ARR(r) { RETVAL_ARR(r); return; } -#define RETURN_EMPTY_ARRAY() { RETVAL_EMPTY_ARRAY(); return; } -#define RETURN_OBJ(r) { RETVAL_OBJ(r); return; } -#define RETURN_ZVAL(zv, copy, dtor) { RETVAL_ZVAL(zv, copy, dtor); return; } -#define RETURN_FALSE { RETVAL_FALSE; return; } -#define RETURN_TRUE { RETVAL_TRUE; return; } - -#define HASH_OF(p) (Z_TYPE_P(p)==IS_ARRAY ? Z_ARRVAL_P(p) : ((Z_TYPE_P(p)==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties((p)) : NULL))) -#define ZVAL_IS_NULL(z) (Z_TYPE_P(z) == IS_NULL) - -/* For compatibility */ -#define ZEND_MINIT ZEND_MODULE_STARTUP_N -#define ZEND_MSHUTDOWN ZEND_MODULE_SHUTDOWN_N -#define ZEND_RINIT ZEND_MODULE_ACTIVATE_N -#define ZEND_RSHUTDOWN ZEND_MODULE_DEACTIVATE_N -#define ZEND_MINFO ZEND_MODULE_INFO_N -#define ZEND_GINIT(module) ((void (*)(void*))(ZEND_MODULE_GLOBALS_CTOR_N(module))) -#define ZEND_GSHUTDOWN(module) ((void (*)(void*))(ZEND_MODULE_GLOBALS_DTOR_N(module))) - -#define ZEND_MINIT_FUNCTION ZEND_MODULE_STARTUP_D -#define ZEND_MSHUTDOWN_FUNCTION ZEND_MODULE_SHUTDOWN_D -#define ZEND_RINIT_FUNCTION ZEND_MODULE_ACTIVATE_D -#define ZEND_RSHUTDOWN_FUNCTION ZEND_MODULE_DEACTIVATE_D -#define ZEND_MINFO_FUNCTION ZEND_MODULE_INFO_D -#define ZEND_GINIT_FUNCTION ZEND_MODULE_GLOBALS_CTOR_D -#define ZEND_GSHUTDOWN_FUNCTION ZEND_MODULE_GLOBALS_DTOR_D - -/* May modify arg in-place. Will free arg in failure case (and take ownership in success case). - * Prefer using the ZEND_TRY_ASSIGN_* macros over these APIs. */ -ZEND_API int zend_try_assign_typed_ref_ex(zend_reference *ref, zval *zv, zend_bool strict); -ZEND_API int zend_try_assign_typed_ref(zend_reference *ref, zval *zv); - -ZEND_API int zend_try_assign_typed_ref_null(zend_reference *ref); -ZEND_API int zend_try_assign_typed_ref_bool(zend_reference *ref, zend_bool val); -ZEND_API int zend_try_assign_typed_ref_long(zend_reference *ref, zend_long lval); -ZEND_API int zend_try_assign_typed_ref_double(zend_reference *ref, double dval); -ZEND_API int zend_try_assign_typed_ref_empty_string(zend_reference *ref); -ZEND_API int zend_try_assign_typed_ref_str(zend_reference *ref, zend_string *str); -ZEND_API int zend_try_assign_typed_ref_string(zend_reference *ref, const char *string); -ZEND_API int zend_try_assign_typed_ref_stringl(zend_reference *ref, const char *string, size_t len); -ZEND_API int zend_try_assign_typed_ref_arr(zend_reference *ref, zend_array *arr); -ZEND_API int zend_try_assign_typed_ref_res(zend_reference *ref, zend_resource *res); -ZEND_API int zend_try_assign_typed_ref_zval(zend_reference *ref, zval *zv); -ZEND_API int zend_try_assign_typed_ref_zval_ex(zend_reference *ref, zval *zv, zend_bool strict); - -#define _ZEND_TRY_ASSIGN_NULL(zv, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_null(ref); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_NULL(_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_NULL(zv) \ - _ZEND_TRY_ASSIGN_NULL(zv, 0) - -#define ZEND_TRY_ASSIGN_REF_NULL(zv) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_NULL(zv, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_FALSE(zv, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_bool(ref, 0); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_FALSE(_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_FALSE(zv) \ - _ZEND_TRY_ASSIGN_FALSE(zv, 0) - -#define ZEND_TRY_ASSIGN_REF_FALSE(zv) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_FALSE(zv, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_TRUE(zv, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_bool(ref, 1); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_TRUE(_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_TRUE(zv) \ - _ZEND_TRY_ASSIGN_TRUE(zv, 0) - -#define ZEND_TRY_ASSIGN_REF_TRUE(zv) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_TRUE(zv, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_BOOL(zv, bval, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_bool(ref, 1); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_BOOL(_zv, bval); \ -} while (0) - -#define ZEND_TRY_ASSIGN_BOOL(zv, bval) \ - _ZEND_TRY_ASSIGN_BOOL(zv, bval, 0) - -#define ZEND_TRY_ASSIGN_REF_BOOL(zv, bval) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_BOOL(zv, bval, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_LONG(zv, lval, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_long(ref, lval); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_LONG(_zv, lval); \ -} while (0) - -#define ZEND_TRY_ASSIGN_LONG(zv, lval) \ - _ZEND_TRY_ASSIGN_LONG(zv, lval, 0) - -#define ZEND_TRY_ASSIGN_REF_LONG(zv, lval) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_LONG(zv, lval, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_DOUBLE(zv, dval, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_double(ref, dval); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_DOUBLE(_zv, dval); \ -} while (0) - -#define ZEND_TRY_ASSIGN_DOUBLE(zv, dval) \ - _ZEND_TRY_ASSIGN_DOUBLE(zv, dval, 0) - -#define ZEND_TRY_ASSIGN_REF_DOUBLE(zv, dval) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_DOUBLE(zv, dval, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_EMPTY_STRING(zv, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_empty_string(ref); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_EMPTY_STRING(_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_EMPTY_STRING(zv) \ - _ZEND_TRY_ASSIGN_EMPTY_STRING(zv, 0) - -#define ZEND_TRY_ASSIGN_REF_EMPTY_STRING(zv) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_EMPTY_STRING(zv, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_STR(zv, str, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_str(ref, str); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_STR(_zv, str); \ -} while (0) - -#define ZEND_TRY_ASSIGN_STR(zv, str) \ - _ZEND_TRY_ASSIGN_STR(zv, str, 0) - -#define ZEND_TRY_ASSIGN_REF_STR(zv, str) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_STR(zv, str, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_NEW_STR(zv, str, is_str) do { \ - zval *_zv = zv; \ - if (is_str || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_str(ref, str); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_NEW_STR(_zv, str); \ -} while (0) - -#define ZEND_TRY_ASSIGN_NEW_STR(zv, str) \ - _ZEND_TRY_ASSIGN_NEW_STR(zv, str, 0) - -#define ZEND_TRY_ASSIGN_REF_NEW_STR(zv, str) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_NEW_STR(zv, str, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_STRING(zv, string, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_string(ref, string); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_STRING(_zv, string); \ -} while (0) - -#define ZEND_TRY_ASSIGN_STRING(zv, string) \ - _ZEND_TRY_ASSIGN_STRING(zv, string, 0) - -#define ZEND_TRY_ASSIGN_REF_STRING(zv, string) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_STRING(zv, string, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_STRINGL(zv, string, len, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_stringl(ref, string, len); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_STRINGL(_zv, string, len); \ -} while (0) - -#define ZEND_TRY_ASSIGN_STRINGL(zv, string, len) \ - _ZEND_TRY_ASSIGN_STRINGL(zv, string, len, 0) - -#define ZEND_TRY_ASSIGN_REF_STRINGL(zv, string, len) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_STRINGL(zv, string, len, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_ARR(zv, arr, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_arr(ref, arr); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_ARR(_zv, arr); \ -} while (0) - -#define ZEND_TRY_ASSIGN_ARR(zv, arr) \ - _ZEND_TRY_ASSIGN_ARR(zv, arr, 0) - -#define ZEND_TRY_ASSIGN_REF_ARR(zv, arr) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_ARR(zv, arr, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_RES(zv, res, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_res(ref, res); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_RES(_zv, res); \ -} while (0) - -#define ZEND_TRY_ASSIGN_RES(zv, res) \ - _ZEND_TRY_ASSIGN_RES(zv, res, 0) - -#define ZEND_TRY_ASSIGN_REF_RES(zv, res) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_RES(zv, res, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_TMP(zv, other_zv, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref(ref, other_zv); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_COPY_VALUE(_zv, other_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_TMP(zv, other_zv) \ - _ZEND_TRY_ASSIGN_TMP(zv, other_zv, 0) - -#define ZEND_TRY_ASSIGN_REF_TMP(zv, other_zv) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_TMP(zv, other_zv, 1); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_VALUE(zv, other_zv, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_zval(ref, other_zv); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_COPY_VALUE(_zv, other_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_VALUE(zv, other_zv) \ - _ZEND_TRY_ASSIGN_VALUE(zv, other_zv, 0) - -#define ZEND_TRY_ASSIGN_REF_VALUE(zv, other_zv) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_VALUE(zv, other_zv, 1); \ -} while (0) - -#define ZEND_TRY_ASSIGN_COPY(zv, other_zv) do { \ - Z_TRY_ADDREF_P(other_zv); \ - ZEND_TRY_ASSIGN_VALUE(zv, other_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_REF_COPY(zv, other_zv) do { \ - Z_TRY_ADDREF_P(other_zv); \ - ZEND_TRY_ASSIGN_REF_VALUE(zv, other_zv); \ -} while (0) - -#define _ZEND_TRY_ASSIGN_VALUE_EX(zv, other_zv, strict, is_ref) do { \ - zval *_zv = zv; \ - if (is_ref || UNEXPECTED(Z_ISREF_P(_zv))) { \ - zend_reference *ref = Z_REF_P(_zv); \ - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { \ - zend_try_assign_typed_ref_zval_ex(ref, other_zv, strict); \ - break; \ - } \ - _zv = &ref->val; \ - } \ - zval_ptr_dtor(_zv); \ - ZVAL_COPY_VALUE(_zv, other_zv); \ -} while (0) - -#define ZEND_TRY_ASSIGN_VALUE_EX(zv, other_zv, strict) \ - _ZEND_TRY_ASSIGN_VALUE_EX(zv, other_zv, strict, 0) - -#define ZEND_TRY_ASSIGN_REF_VALUE_EX(zv, other_zv, strict) do { \ - ZEND_ASSERT(Z_ISREF_P(zv)); \ - _ZEND_TRY_ASSIGN_VALUE_EX(zv, other_zv, strict, 1); \ -} while (0) - -#define ZEND_TRY_ASSIGN_COPY_EX(zv, other_zv, strict) do { \ - Z_TRY_ADDREF_P(other_zv); \ - ZEND_TRY_ASSIGN_VALUE_EX(zv, other_zv, strict); \ -} while (0) - -#define ZEND_TRY_ASSIGN_REF_COPY_EX(zv, other_zv, strict) do { \ - Z_TRY_ADDREF_P(other_zv); \ - ZEND_TRY_ASSIGN_REF_VALUE_EX(zv, other_zv, strict); \ -} while (0) - -/* Initializes a reference to an empty array and returns dereferenced zval, - * or NULL if the initialization failed. */ -static zend_always_inline zval *zend_try_array_init_size(zval *zv, uint32_t size) -{ - zend_array *arr = zend_new_array(size); - - if (EXPECTED(Z_ISREF_P(zv))) { - zend_reference *ref = Z_REF_P(zv); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - if (zend_try_assign_typed_ref_arr(ref, arr) != SUCCESS) { - return NULL; - } - return &ref->val; - } - zv = &ref->val; - } - zval_ptr_dtor(zv); - ZVAL_ARR(zv, arr); - return zv; -} - -static zend_always_inline zval *zend_try_array_init(zval *zv) -{ - return zend_try_array_init_size(zv, 0); -} - -/* Fast parameter parsing API */ - -/* Fast ZPP is always enabled now; this define is left in for compatibility - * with any existing conditional compilation blocks. - */ -#define FAST_ZPP 1 - -#define Z_EXPECTED_TYPES(_) \ - _(Z_EXPECTED_LONG, "int") \ - _(Z_EXPECTED_BOOL, "bool") \ - _(Z_EXPECTED_STRING, "string") \ - _(Z_EXPECTED_ARRAY, "array") \ - _(Z_EXPECTED_FUNC, "valid callback") \ - _(Z_EXPECTED_RESOURCE, "resource") \ - _(Z_EXPECTED_PATH, "a valid path") \ - _(Z_EXPECTED_OBJECT, "object") \ - _(Z_EXPECTED_DOUBLE, "float") - -#define Z_EXPECTED_TYPE_ENUM(id, str) id, -#define Z_EXPECTED_TYPE_STR(id, str) str, - -typedef enum _zend_expected_type { - Z_EXPECTED_TYPES(Z_EXPECTED_TYPE_ENUM) - Z_EXPECTED_LAST -} zend_expected_type; - -ZEND_API ZEND_COLD int ZEND_FASTCALL zend_wrong_parameters_none_error(void); -ZEND_API ZEND_COLD int ZEND_FASTCALL zend_wrong_parameters_none_exception(void); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameters_count_error(int min_num_args, int max_num_args); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameters_count_exception(int min_num_args, int max_num_args); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_type_error(int num, zend_expected_type expected_type, zval *arg); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_type_exception(int num, zend_expected_type expected_type, zval *arg); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_class_error(int num, char *name, zval *arg); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_parameter_class_exception(int num, char *name, zval *arg); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_error(int num, char *error); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_deprecated(int num, char *error); -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_exception(int num, char *error); - -#define ZPP_ERROR_OK 0 -#define ZPP_ERROR_FAILURE 1 -#define ZPP_ERROR_WRONG_CALLBACK 2 -#define ZPP_ERROR_WRONG_CLASS 3 -#define ZPP_ERROR_WRONG_ARG 4 -#define ZPP_ERROR_WRONG_COUNT 5 - -#define ZEND_PARSE_PARAMETERS_START_EX(flags, min_num_args, max_num_args) do { \ - const int _flags = (flags); \ - int _min_num_args = (min_num_args); \ - int _max_num_args = (max_num_args); \ - int _num_args = EX_NUM_ARGS(); \ - int _i = 0; \ - zval *_real_arg, *_arg = NULL; \ - zend_expected_type _expected_type = Z_EXPECTED_LONG; \ - char *_error = NULL; \ - zend_bool _dummy; \ - zend_bool _optional = 0; \ - int _error_code = ZPP_ERROR_OK; \ - ((void)_i); \ - ((void)_real_arg); \ - ((void)_arg); \ - ((void)_expected_type); \ - ((void)_error); \ - ((void)_dummy); \ - ((void)_optional); \ - \ - do { \ - if (UNEXPECTED(_num_args < _min_num_args) || \ - (UNEXPECTED(_num_args > _max_num_args) && \ - EXPECTED(_max_num_args >= 0))) { \ - if (!(_flags & ZEND_PARSE_PARAMS_QUIET)) { \ - if (_flags & ZEND_PARSE_PARAMS_THROW) { \ - zend_wrong_parameters_count_exception(_min_num_args, _max_num_args); \ - } else { \ - zend_wrong_parameters_count_error(_min_num_args, _max_num_args); \ - } \ - } \ - _error_code = ZPP_ERROR_FAILURE; \ - break; \ - } \ - _real_arg = ZEND_CALL_ARG(execute_data, 0); - -#define ZEND_PARSE_PARAMETERS_START(min_num_args, max_num_args) \ - ZEND_PARSE_PARAMETERS_START_EX(0, min_num_args, max_num_args) - -#define ZEND_PARSE_PARAMETERS_NONE() do { \ - if (UNEXPECTED(ZEND_NUM_ARGS() != 0)) { \ - zend_wrong_parameters_none_error(); \ - return; \ - } \ - } while (0) - -#define ZEND_PARSE_PARAMETERS_END_EX(failure) \ - } while (0); \ - if (UNEXPECTED(_error_code != ZPP_ERROR_OK)) { \ - if (!(_flags & ZEND_PARSE_PARAMS_QUIET)) { \ - if (_error_code == ZPP_ERROR_WRONG_CALLBACK) { \ - if (_flags & ZEND_PARSE_PARAMS_THROW) { \ - zend_wrong_callback_exception(_i, _error); \ - } else { \ - zend_wrong_callback_error(_i, _error); \ - } \ - } else if (_error_code == ZPP_ERROR_WRONG_CLASS) { \ - if (_flags & ZEND_PARSE_PARAMS_THROW) { \ - zend_wrong_parameter_class_exception(_i, _error, _arg); \ - } else { \ - zend_wrong_parameter_class_error(_i, _error, _arg); \ - } \ - } else if (_error_code == ZPP_ERROR_WRONG_ARG) { \ - if (_flags & ZEND_PARSE_PARAMS_THROW) { \ - zend_wrong_parameter_type_exception(_i, _expected_type, _arg); \ - } else { \ - zend_wrong_parameter_type_error(_i, _expected_type, _arg); \ - } \ - } \ - } \ - failure; \ - } \ - } while (0) - -#define ZEND_PARSE_PARAMETERS_END() \ - ZEND_PARSE_PARAMETERS_END_EX(return) - -#define Z_PARAM_PROLOGUE(deref, separate) \ - ++_i; \ - ZEND_ASSERT(_i <= _min_num_args || _optional==1); \ - ZEND_ASSERT(_i > _min_num_args || _optional==0); \ - if (_optional) { \ - if (UNEXPECTED(_i >_num_args)) break; \ - } \ - _real_arg++; \ - _arg = _real_arg; \ - if (deref) { \ - if (EXPECTED(Z_ISREF_P(_arg))) { \ - _arg = Z_REFVAL_P(_arg); \ - } \ - } \ - if (separate) { \ - SEPARATE_ZVAL_NOREF(_arg); \ - } - -/* old "|" */ -#define Z_PARAM_OPTIONAL \ - _optional = 1; - -/* old "a" */ -#define Z_PARAM_ARRAY_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_array(_arg, &dest, check_null, 0))) { \ - _expected_type = Z_EXPECTED_ARRAY; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_ARRAY_EX(dest, check_null, separate) \ - Z_PARAM_ARRAY_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_ARRAY(dest) \ - Z_PARAM_ARRAY_EX(dest, 0, 0) - -/* old "A" */ -#define Z_PARAM_ARRAY_OR_OBJECT_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_array(_arg, &dest, check_null, 1))) { \ - _expected_type = Z_EXPECTED_ARRAY; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_ARRAY_OR_OBJECT_EX(dest, check_null, separate) \ - Z_PARAM_ARRAY_OR_OBJECT_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_ARRAY_OR_OBJECT(dest) \ - Z_PARAM_ARRAY_OR_OBJECT_EX(dest, 0, 0) - -/* old "b" */ -#define Z_PARAM_BOOL_EX2(dest, is_null, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_bool(_arg, &dest, &is_null, check_null))) { \ - _expected_type = Z_EXPECTED_BOOL; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_BOOL_EX(dest, is_null, check_null, separate) \ - Z_PARAM_BOOL_EX2(dest, is_null, check_null, separate, separate) - -#define Z_PARAM_BOOL(dest) \ - Z_PARAM_BOOL_EX(dest, _dummy, 0, 0) - -/* old "C" */ -#define Z_PARAM_CLASS_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_class(_arg, &dest, _i, check_null))) { \ - _error_code = ZPP_ERROR_FAILURE; \ - break; \ - } - -#define Z_PARAM_CLASS_EX(dest, check_null, separate) \ - Z_PARAM_CLASS_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_CLASS(dest) \ - Z_PARAM_CLASS_EX(dest, 0, 0) - -/* old "d" */ -#define Z_PARAM_DOUBLE_EX2(dest, is_null, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_double(_arg, &dest, &is_null, check_null))) { \ - _expected_type = Z_EXPECTED_DOUBLE; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_DOUBLE_EX(dest, is_null, check_null, separate) \ - Z_PARAM_DOUBLE_EX2(dest, is_null, check_null, separate, separate) - -#define Z_PARAM_DOUBLE(dest) \ - Z_PARAM_DOUBLE_EX(dest, _dummy, 0, 0) - -/* old "f" */ -#define Z_PARAM_FUNC_EX2(dest_fci, dest_fcc, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_func(_arg, &dest_fci, &dest_fcc, check_null, &_error))) { \ - if (!_error) { \ - _expected_type = Z_EXPECTED_FUNC; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } else { \ - _error_code = ZPP_ERROR_WRONG_CALLBACK; \ - break; \ - } \ - } else if (UNEXPECTED(_error != NULL)) { \ - zend_wrong_callback_deprecated(_i, _error); \ - } - -#define Z_PARAM_FUNC_EX(dest_fci, dest_fcc, check_null, separate) \ - Z_PARAM_FUNC_EX2(dest_fci, dest_fcc, check_null, separate, separate) - -#define Z_PARAM_FUNC(dest_fci, dest_fcc) \ - Z_PARAM_FUNC_EX(dest_fci, dest_fcc, 0, 0) - -/* old "h" */ -#define Z_PARAM_ARRAY_HT_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_array_ht(_arg, &dest, check_null, 0, separate))) { \ - _expected_type = Z_EXPECTED_ARRAY; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_ARRAY_HT_EX(dest, check_null, separate) \ - Z_PARAM_ARRAY_HT_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_ARRAY_HT(dest) \ - Z_PARAM_ARRAY_HT_EX(dest, 0, 0) - -/* old "H" */ -#define Z_PARAM_ARRAY_OR_OBJECT_HT_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_array_ht(_arg, &dest, check_null, 1, separate))) { \ - _expected_type = Z_EXPECTED_ARRAY; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_ARRAY_OR_OBJECT_HT_EX(dest, check_null, separate) \ - Z_PARAM_ARRAY_OR_OBJECT_HT_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_ARRAY_OR_OBJECT_HT(dest) \ - Z_PARAM_ARRAY_OR_OBJECT_HT_EX(dest, 0, 0) - -/* old "l" */ -#define Z_PARAM_LONG_EX2(dest, is_null, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_long(_arg, &dest, &is_null, check_null, 0))) { \ - _expected_type = Z_EXPECTED_LONG; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_LONG_EX(dest, is_null, check_null, separate) \ - Z_PARAM_LONG_EX2(dest, is_null, check_null, separate, separate) - -#define Z_PARAM_LONG(dest) \ - Z_PARAM_LONG_EX(dest, _dummy, 0, 0) - -/* old "L" */ -#define Z_PARAM_STRICT_LONG_EX2(dest, is_null, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_long(_arg, &dest, &is_null, check_null, 1))) { \ - _expected_type = Z_EXPECTED_LONG; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_STRICT_LONG_EX(dest, is_null, check_null, separate) \ - Z_PARAM_STRICT_LONG_EX2(dest, is_null, check_null, separate, separate) - -#define Z_PARAM_STRICT_LONG(dest) \ - Z_PARAM_STRICT_LONG_EX(dest, _dummy, 0, 0) - -/* old "o" */ -#define Z_PARAM_OBJECT_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_object(_arg, &dest, NULL, check_null))) { \ - _expected_type = Z_EXPECTED_OBJECT; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_OBJECT_EX(dest, check_null, separate) \ - Z_PARAM_OBJECT_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_OBJECT(dest) \ - Z_PARAM_OBJECT_EX(dest, 0, 0) - -/* old "O" */ -#define Z_PARAM_OBJECT_OF_CLASS_EX2(dest, _ce, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_object(_arg, &dest, _ce, check_null))) { \ - if (_ce) { \ - _error = ZSTR_VAL((_ce)->name); \ - _error_code = ZPP_ERROR_WRONG_CLASS; \ - break; \ - } else { \ - _expected_type = Z_EXPECTED_OBJECT; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } \ - } - -#define Z_PARAM_OBJECT_OF_CLASS_EX(dest, _ce, check_null, separate) \ - Z_PARAM_OBJECT_OF_CLASS_EX2(dest, _ce, check_null, separate, separate) - -#define Z_PARAM_OBJECT_OF_CLASS(dest, _ce) \ - Z_PARAM_OBJECT_OF_CLASS_EX(dest, _ce, 0, 0) - -/* old "p" */ -#define Z_PARAM_PATH_EX2(dest, dest_len, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_path(_arg, &dest, &dest_len, check_null))) { \ - _expected_type = Z_EXPECTED_PATH; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_PATH_EX(dest, dest_len, check_null, separate) \ - Z_PARAM_PATH_EX2(dest, dest_len, check_null, separate, separate) - -#define Z_PARAM_PATH(dest, dest_len) \ - Z_PARAM_PATH_EX(dest, dest_len, 0, 0) - -/* old "P" */ -#define Z_PARAM_PATH_STR_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_path_str(_arg, &dest, check_null))) { \ - _expected_type = Z_EXPECTED_PATH; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_PATH_STR_EX(dest, check_null, separate) \ - Z_PARAM_PATH_STR_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_PATH_STR(dest) \ - Z_PARAM_PATH_STR_EX(dest, 0, 0) - -/* old "r" */ -#define Z_PARAM_RESOURCE_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_resource(_arg, &dest, check_null))) { \ - _expected_type = Z_EXPECTED_RESOURCE; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_RESOURCE_EX(dest, check_null, separate) \ - Z_PARAM_RESOURCE_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_RESOURCE(dest) \ - Z_PARAM_RESOURCE_EX(dest, 0, 0) - -/* old "s" */ -#define Z_PARAM_STRING_EX2(dest, dest_len, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_string(_arg, &dest, &dest_len, check_null))) { \ - _expected_type = Z_EXPECTED_STRING; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_STRING_EX(dest, dest_len, check_null, separate) \ - Z_PARAM_STRING_EX2(dest, dest_len, check_null, separate, separate) - -#define Z_PARAM_STRING(dest, dest_len) \ - Z_PARAM_STRING_EX(dest, dest_len, 0, 0) - -/* old "S" */ -#define Z_PARAM_STR_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - if (UNEXPECTED(!zend_parse_arg_str(_arg, &dest, check_null))) { \ - _expected_type = Z_EXPECTED_STRING; \ - _error_code = ZPP_ERROR_WRONG_ARG; \ - break; \ - } - -#define Z_PARAM_STR_EX(dest, check_null, separate) \ - Z_PARAM_STR_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_STR(dest) \ - Z_PARAM_STR_EX(dest, 0, 0) - -/* old "z" */ -#define Z_PARAM_ZVAL_EX2(dest, check_null, deref, separate) \ - Z_PARAM_PROLOGUE(deref, separate); \ - zend_parse_arg_zval_deref(_arg, &dest, check_null); - -#define Z_PARAM_ZVAL_EX(dest, check_null, separate) \ - Z_PARAM_ZVAL_EX2(dest, check_null, separate, separate) - -#define Z_PARAM_ZVAL(dest) \ - Z_PARAM_ZVAL_EX(dest, 0, 0) - -/* old "z" (with dereference) */ -#define Z_PARAM_ZVAL_DEREF_EX(dest, check_null, separate) \ - Z_PARAM_PROLOGUE(1, separate); \ - zend_parse_arg_zval_deref(_arg, &dest, check_null); - -#define Z_PARAM_ZVAL_DEREF(dest) \ - Z_PARAM_ZVAL_DEREF_EX(dest, 0, 0) - -/* old "+" and "*" */ -#define Z_PARAM_VARIADIC_EX(spec, dest, dest_num, post_varargs) do { \ - int _num_varargs = _num_args - _i - (post_varargs); \ - if (EXPECTED(_num_varargs > 0)) { \ - dest = _real_arg + 1; \ - dest_num = _num_varargs; \ - _i += _num_varargs; \ - _real_arg += _num_varargs; \ - } else { \ - dest = NULL; \ - dest_num = 0; \ - } \ - } while (0); - -#define Z_PARAM_VARIADIC(spec, dest, dest_num) \ - Z_PARAM_VARIADIC_EX(spec, dest, dest_num, 0) - -/* End of new parameter parsing API */ - -/* Inlined implementations shared by new and old parameter parsing APIs */ - -ZEND_API int ZEND_FASTCALL zend_parse_arg_class(zval *arg, zend_class_entry **pce, int num, int check_null); -ZEND_API int ZEND_FASTCALL zend_parse_arg_bool_slow(zval *arg, zend_bool *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_bool_weak(zval *arg, zend_bool *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_long_slow(zval *arg, zend_long *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_long_weak(zval *arg, zend_long *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_long_cap_slow(zval *arg, zend_long *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_long_cap_weak(zval *arg, zend_long *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_double_slow(zval *arg, double *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_double_weak(zval *arg, double *dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_str_slow(zval *arg, zend_string **dest); -ZEND_API int ZEND_FASTCALL zend_parse_arg_str_weak(zval *arg, zend_string **dest); - -static zend_always_inline int zend_parse_arg_bool(zval *arg, zend_bool *dest, zend_bool *is_null, int check_null) -{ - if (check_null) { - *is_null = 0; - } - if (EXPECTED(Z_TYPE_P(arg) == IS_TRUE)) { - *dest = 1; - } else if (EXPECTED(Z_TYPE_P(arg) == IS_FALSE)) { - *dest = 0; - } else if (check_null && Z_TYPE_P(arg) == IS_NULL) { - *is_null = 1; - *dest = 0; - } else { - return zend_parse_arg_bool_slow(arg, dest); - } - return 1; -} - -static zend_always_inline int zend_parse_arg_long(zval *arg, zend_long *dest, zend_bool *is_null, int check_null, int cap) -{ - if (check_null) { - *is_null = 0; - } - if (EXPECTED(Z_TYPE_P(arg) == IS_LONG)) { - *dest = Z_LVAL_P(arg); - } else if (check_null && Z_TYPE_P(arg) == IS_NULL) { - *is_null = 1; - *dest = 0; - } else if (cap) { - return zend_parse_arg_long_cap_slow(arg, dest); - } else { - return zend_parse_arg_long_slow(arg, dest); - } - return 1; -} - -static zend_always_inline int zend_parse_arg_double(zval *arg, double *dest, zend_bool *is_null, int check_null) -{ - if (check_null) { - *is_null = 0; - } - if (EXPECTED(Z_TYPE_P(arg) == IS_DOUBLE)) { - *dest = Z_DVAL_P(arg); - } else if (check_null && Z_TYPE_P(arg) == IS_NULL) { - *is_null = 1; - *dest = 0.0; - } else { - return zend_parse_arg_double_slow(arg, dest); - } - return 1; -} - -static zend_always_inline int zend_parse_arg_str(zval *arg, zend_string **dest, int check_null) -{ - if (EXPECTED(Z_TYPE_P(arg) == IS_STRING)) { - *dest = Z_STR_P(arg); - } else if (check_null && Z_TYPE_P(arg) == IS_NULL) { - *dest = NULL; - } else { - return zend_parse_arg_str_slow(arg, dest); - } - return 1; -} - -static zend_always_inline int zend_parse_arg_string(zval *arg, char **dest, size_t *dest_len, int check_null) -{ - zend_string *str; - - if (!zend_parse_arg_str(arg, &str, check_null)) { - return 0; - } - if (check_null && UNEXPECTED(!str)) { - *dest = NULL; - *dest_len = 0; - } else { - *dest = ZSTR_VAL(str); - *dest_len = ZSTR_LEN(str); - } - return 1; -} - -static zend_always_inline int zend_parse_arg_path_str(zval *arg, zend_string **dest, int check_null) -{ - if (!zend_parse_arg_str(arg, dest, check_null) || - (*dest && UNEXPECTED(CHECK_NULL_PATH(ZSTR_VAL(*dest), ZSTR_LEN(*dest))))) { - return 0; - } - return 1; -} - -static zend_always_inline int zend_parse_arg_path(zval *arg, char **dest, size_t *dest_len, int check_null) -{ - zend_string *str; - - if (!zend_parse_arg_path_str(arg, &str, check_null)) { - return 0; - } - if (check_null && UNEXPECTED(!str)) { - *dest = NULL; - *dest_len = 0; - } else { - *dest = ZSTR_VAL(str); - *dest_len = ZSTR_LEN(str); - } - return 1; -} - -static zend_always_inline int zend_parse_arg_array(zval *arg, zval **dest, int check_null, int or_object) -{ - if (EXPECTED(Z_TYPE_P(arg) == IS_ARRAY) || - (or_object && EXPECTED(Z_TYPE_P(arg) == IS_OBJECT))) { - *dest = arg; - } else if (check_null && EXPECTED(Z_TYPE_P(arg) == IS_NULL)) { - *dest = NULL; - } else { - return 0; - } - return 1; -} - -static zend_always_inline int zend_parse_arg_array_ht(zval *arg, HashTable **dest, int check_null, int or_object, int separate) -{ - if (EXPECTED(Z_TYPE_P(arg) == IS_ARRAY)) { - *dest = Z_ARRVAL_P(arg); - } else if (or_object && EXPECTED(Z_TYPE_P(arg) == IS_OBJECT)) { - if (separate - && Z_OBJ_P(arg)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(arg)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(arg)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(arg)->properties); - } - Z_OBJ_P(arg)->properties = zend_array_dup(Z_OBJ_P(arg)->properties); - } - *dest = Z_OBJ_HT_P(arg)->get_properties(arg); - } else if (check_null && EXPECTED(Z_TYPE_P(arg) == IS_NULL)) { - *dest = NULL; - } else { - return 0; - } - return 1; -} - -static zend_always_inline int zend_parse_arg_object(zval *arg, zval **dest, zend_class_entry *ce, int check_null) -{ - if (EXPECTED(Z_TYPE_P(arg) == IS_OBJECT) && - (!ce || EXPECTED(instanceof_function(Z_OBJCE_P(arg), ce) != 0))) { - *dest = arg; - } else if (check_null && EXPECTED(Z_TYPE_P(arg) == IS_NULL)) { - *dest = NULL; - } else { - return 0; - } - return 1; -} - -static zend_always_inline int zend_parse_arg_resource(zval *arg, zval **dest, int check_null) -{ - if (EXPECTED(Z_TYPE_P(arg) == IS_RESOURCE)) { - *dest = arg; - } else if (check_null && EXPECTED(Z_TYPE_P(arg) == IS_NULL)) { - *dest = NULL; - } else { - return 0; - } - return 1; -} - -static zend_always_inline int zend_parse_arg_func(zval *arg, zend_fcall_info *dest_fci, zend_fcall_info_cache *dest_fcc, int check_null, char **error) -{ - if (check_null && UNEXPECTED(Z_TYPE_P(arg) == IS_NULL)) { - dest_fci->size = 0; - dest_fcc->function_handler = NULL; - *error = NULL; - } else if (UNEXPECTED(zend_fcall_info_init(arg, 0, dest_fci, dest_fcc, NULL, error) != SUCCESS)) { - return 0; - } - return 1; -} - -static zend_always_inline void zend_parse_arg_zval(zval *arg, zval **dest, int check_null) -{ - *dest = (check_null && - (UNEXPECTED(Z_TYPE_P(arg) == IS_NULL) || - (UNEXPECTED(Z_ISREF_P(arg)) && - UNEXPECTED(Z_TYPE_P(Z_REFVAL_P(arg)) == IS_NULL)))) ? NULL : arg; -} - -static zend_always_inline void zend_parse_arg_zval_deref(zval *arg, zval **dest, int check_null) -{ - *dest = (check_null && UNEXPECTED(Z_TYPE_P(arg) == IS_NULL)) ? NULL : arg; -} - -END_EXTERN_C() - -#endif /* ZEND_API_H */ diff --git a/include/php/Zend/zend_alloc.h b/include/php/Zend/zend_alloc.h deleted file mode 100644 index 8bb8543..0000000 --- a/include/php/Zend/zend_alloc.h +++ /dev/null @@ -1,407 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_ALLOC_H -#define ZEND_ALLOC_H - -#include - -#include "../TSRM/TSRM.h" -#include "zend.h" - -#ifndef ZEND_MM_ALIGNMENT -# define ZEND_MM_ALIGNMENT Z_UL(8) -# define ZEND_MM_ALIGNMENT_LOG2 Z_L(3) -#elif ZEND_MM_ALIGNMENT < 4 -# undef ZEND_MM_ALIGNMENT -# undef ZEND_MM_ALIGNMENT_LOG2 -# define ZEND_MM_ALIGNMENT Z_UL(4) -# define ZEND_MM_ALIGNMENT_LOG2 Z_L(2) -#endif - -#define ZEND_MM_ALIGNMENT_MASK ~(ZEND_MM_ALIGNMENT - 1) - -#define ZEND_MM_ALIGNED_SIZE(size) (((size) + ZEND_MM_ALIGNMENT - 1) & ZEND_MM_ALIGNMENT_MASK) - -#define ZEND_MM_ALIGNED_SIZE_EX(size, alignment) \ - (((size) + ((alignment) - 1)) & ~((alignment) - 1)) - -typedef struct _zend_leak_info { - void *addr; - size_t size; - const char *filename; - const char *orig_filename; - uint32_t lineno; - uint32_t orig_lineno; -} zend_leak_info; - -#if ZEND_DEBUG -typedef struct _zend_mm_debug_info { - size_t size; - const char *filename; - const char *orig_filename; - uint32_t lineno; - uint32_t orig_lineno; -} zend_mm_debug_info; - -# define ZEND_MM_OVERHEAD ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info)) -#else -# define ZEND_MM_OVERHEAD 0 -#endif - -BEGIN_EXTERN_C() - -ZEND_API char* ZEND_FASTCALL zend_strndup(const char *s, size_t length) ZEND_ATTRIBUTE_MALLOC; - -ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE(1); -ZEND_API void* ZEND_FASTCALL _safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC; -ZEND_API void* ZEND_FASTCALL _safe_malloc(size_t nmemb, size_t size, size_t offset) ZEND_ATTRIBUTE_MALLOC; -ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); -ZEND_API void* ZEND_FASTCALL _ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE2(1,2); -ZEND_API void* ZEND_FASTCALL _erealloc(void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE(2); -ZEND_API void* ZEND_FASTCALL _erealloc2(void *ptr, size_t size, size_t copy_size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE(2); -ZEND_API void* ZEND_FASTCALL _safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); -ZEND_API void* ZEND_FASTCALL _safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset); -ZEND_API char* ZEND_FASTCALL _estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC; -ZEND_API char* ZEND_FASTCALL _estrndup(const char *s, size_t length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC; -ZEND_API size_t ZEND_FASTCALL _zend_mem_block_size(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); - -#include "zend_alloc_sizes.h" - -/* _emalloc() & _efree() specialization */ -#if !ZEND_DEBUG && defined(HAVE_BUILTIN_CONSTANT_P) - -# define _ZEND_BIN_ALLOCATOR_DEF(_num, _size, _elements, _pages, x, y) \ - ZEND_API void* ZEND_FASTCALL _emalloc_ ## _size(void) ZEND_ATTRIBUTE_MALLOC; - -ZEND_MM_BINS_INFO(_ZEND_BIN_ALLOCATOR_DEF, x, y) - -ZEND_API void* ZEND_FASTCALL _emalloc_large(size_t size) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE(1); -ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE(1); - -# define _ZEND_BIN_ALLOCATOR_SELECTOR_START(_num, _size, _elements, _pages, size, y) \ - ((size <= _size) ? _emalloc_ ## _size() : -# define _ZEND_BIN_ALLOCATOR_SELECTOR_END(_num, _size, _elements, _pages, size, y) \ - ) - -# define ZEND_ALLOCATOR(size) \ - ZEND_MM_BINS_INFO(_ZEND_BIN_ALLOCATOR_SELECTOR_START, size, y) \ - ((size <= ZEND_MM_MAX_LARGE_SIZE) ? _emalloc_large(size) : _emalloc_huge(size)) \ - ZEND_MM_BINS_INFO(_ZEND_BIN_ALLOCATOR_SELECTOR_END, size, y) - -# define _emalloc(size) \ - (__builtin_constant_p(size) ? \ - ZEND_ALLOCATOR(size) \ - : \ - _emalloc(size) \ - ) - -# define _ZEND_BIN_DEALLOCATOR_DEF(_num, _size, _elements, _pages, x, y) \ - ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *); - -ZEND_MM_BINS_INFO(_ZEND_BIN_DEALLOCATOR_DEF, x, y) - -ZEND_API void ZEND_FASTCALL _efree_large(void *, size_t size); -ZEND_API void ZEND_FASTCALL _efree_huge(void *, size_t size); - -# define _ZEND_BIN_DEALLOCATOR_SELECTOR_START(_num, _size, _elements, _pages, ptr, size) \ - if (size <= _size) { _efree_ ## _size(ptr); } else - -# define ZEND_DEALLOCATOR(ptr, size) \ - ZEND_MM_BINS_INFO(_ZEND_BIN_DEALLOCATOR_SELECTOR_START, ptr, size) \ - if (size <= ZEND_MM_MAX_LARGE_SIZE) { _efree_large(ptr, size); } \ - else { _efree_huge(ptr, size); } - -# define efree_size(ptr, size) do { \ - if (__builtin_constant_p(size)) { \ - ZEND_DEALLOCATOR(ptr, size) \ - } else { \ - _efree(ptr); \ - } \ - } while (0) -# define efree_size_rel(ptr, size) \ - efree_size(ptr, size) - -#else - -# define efree_size(ptr, size) \ - efree(ptr) -# define efree_size_rel(ptr, size) \ - efree_rel(ptr) - -#define _emalloc_large _emalloc -#define _emalloc_huge _emalloc -#define _efree_large _efree -#define _efree_huge _efree - -#endif - -/* Standard wrapper macros */ -#define emalloc(size) _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define emalloc_large(size) _emalloc_large((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define emalloc_huge(size) _emalloc_huge((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define safe_emalloc(nmemb, size, offset) _safe_emalloc((nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define efree(ptr) _efree((ptr) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define efree_large(ptr) _efree_large((ptr) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define efree_huge(ptr) _efree_huge((ptr) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define ecalloc(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define erealloc(ptr, size) _erealloc((ptr), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define erealloc2(ptr, size, copy_size) _erealloc2((ptr), (size), (copy_size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define safe_erealloc(ptr, nmemb, size, offset) _safe_erealloc((ptr), (nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define erealloc_recoverable(ptr, size) _erealloc((ptr), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define erealloc2_recoverable(ptr, size, copy_size) _erealloc2((ptr), (size), (copy_size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define estrdup(s) _estrdup((s) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define estrndup(s, length) _estrndup((s), (length) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define zend_mem_block_size(ptr) _zend_mem_block_size((ptr) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) - -/* Relay wrapper macros */ -#define emalloc_rel(size) _emalloc((size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define safe_emalloc_rel(nmemb, size, offset) _safe_emalloc((nmemb), (size), (offset) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define efree_rel(ptr) _efree((ptr) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define ecalloc_rel(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define erealloc_rel(ptr, size) _erealloc((ptr), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define erealloc2_rel(ptr, size, copy_size) _erealloc2((ptr), (size), (copy_size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define erealloc_recoverable_rel(ptr, size) _erealloc((ptr), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define erealloc2_recoverable_rel(ptr, size, copy_size) _erealloc2((ptr), (size), (copy_size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define safe_erealloc_rel(ptr, nmemb, size, offset) _safe_erealloc((ptr), (nmemb), (size), (offset) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define estrdup_rel(s) _estrdup((s) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define estrndup_rel(s, length) _estrndup((s), (length) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define zend_mem_block_size_rel(ptr) _zend_mem_block_size((ptr) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) - -ZEND_API void * __zend_malloc(size_t len) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE(1); -ZEND_API void * __zend_calloc(size_t nmemb, size_t len) ZEND_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_ALLOC_SIZE2(1,2); -ZEND_API void * __zend_realloc(void *p, size_t len) ZEND_ATTRIBUTE_ALLOC_SIZE(2); - -/* Selective persistent/non persistent allocation macros */ -#define pemalloc(size, persistent) ((persistent)?__zend_malloc(size):emalloc(size)) -#define safe_pemalloc(nmemb, size, offset, persistent) ((persistent)?_safe_malloc(nmemb, size, offset):safe_emalloc(nmemb, size, offset)) -#define pefree(ptr, persistent) ((persistent)?free(ptr):efree(ptr)) -#define pefree_size(ptr, size, persistent) do { \ - if (persistent) { \ - free(ptr); \ - } else { \ - efree_size(ptr, size);\ - } \ - } while (0) - -#define pecalloc(nmemb, size, persistent) ((persistent)?__zend_calloc((nmemb), (size)):ecalloc((nmemb), (size))) -#define perealloc(ptr, size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc((ptr), (size))) -#define perealloc2(ptr, size, copy_size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc2((ptr), (size), (copy_size))) -#define safe_perealloc(ptr, nmemb, size, offset, persistent) ((persistent)?_safe_realloc((ptr), (nmemb), (size), (offset)):safe_erealloc((ptr), (nmemb), (size), (offset))) -#define perealloc_recoverable(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_recoverable((ptr), (size))) -#define perealloc2_recoverable(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc2_recoverable((ptr), (size), (copy_size))) -#define pestrdup(s, persistent) ((persistent)?strdup(s):estrdup(s)) -#define pestrndup(s, length, persistent) ((persistent)?zend_strndup((s),(length)):estrndup((s),(length))) - -#define pemalloc_rel(size, persistent) ((persistent)?__zend_malloc(size):emalloc_rel(size)) -#define pefree_rel(ptr, persistent) ((persistent)?free(ptr):efree_rel(ptr)) -#define pecalloc_rel(nmemb, size, persistent) ((persistent)?__zend_calloc((nmemb), (size)):ecalloc_rel((nmemb), (size))) -#define perealloc_rel(ptr, size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc_rel((ptr), (size))) -#define perealloc2_rel(ptr, size, copy_size, persistent) ((persistent)?__zend_realloc((ptr), (size)):erealloc2_rel((ptr), (size), (copy_size))) -#define perealloc_recoverable_rel(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_recoverable_rel((ptr), (size))) -#define perealloc2_recoverable_rel(ptr, size, copy_size, persistent) ((persistent)?realloc((ptr), (size)):erealloc2_recoverable_rel((ptr), (size), (copy_size))) -#define pestrdup_rel(s, persistent) ((persistent)?strdup(s):estrdup_rel(s)) - -ZEND_API int zend_set_memory_limit(size_t memory_limit); - -ZEND_API void start_memory_manager(void); -ZEND_API void shutdown_memory_manager(int silent, int full_shutdown); -ZEND_API int is_zend_mm(void); -ZEND_API int is_zend_ptr(const void *ptr); - -ZEND_API size_t zend_memory_usage(int real_usage); -ZEND_API size_t zend_memory_peak_usage(int real_usage); - -/* fast cache for HashTables */ -#define ALLOC_HASHTABLE(ht) \ - (ht) = (HashTable *) emalloc(sizeof(HashTable)) - -#define FREE_HASHTABLE(ht) \ - efree_size(ht, sizeof(HashTable)) - -#define ALLOC_HASHTABLE_REL(ht) \ - (ht) = (HashTable *) emalloc_rel(sizeof(HashTable)) - -#define FREE_HASHTABLE_REL(ht) \ - efree_size_rel(ht, sizeof(HashTable)) - -/* Heap functions */ -typedef struct _zend_mm_heap zend_mm_heap; - -ZEND_API zend_mm_heap *zend_mm_startup(void); -ZEND_API void zend_mm_shutdown(zend_mm_heap *heap, int full_shutdown, int silent); -ZEND_API void* ZEND_FASTCALL _zend_mm_alloc(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC; -ZEND_API void ZEND_FASTCALL _zend_mm_free(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); -ZEND_API void* ZEND_FASTCALL _zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); -ZEND_API void* ZEND_FASTCALL _zend_mm_realloc2(zend_mm_heap *heap, void *p, size_t size, size_t copy_size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); -ZEND_API size_t ZEND_FASTCALL _zend_mm_block_size(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); - -#define zend_mm_alloc(heap, size) _zend_mm_alloc((heap), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define zend_mm_free(heap, p) _zend_mm_free((heap), (p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define zend_mm_realloc(heap, p, size) _zend_mm_realloc((heap), (p), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define zend_mm_realloc2(heap, p, size, copy_size) _zend_mm_realloc2((heap), (p), (size), (copy_size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -#define zend_mm_block_size(heap, p) _zend_mm_block_size((heap), (p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) - -#define zend_mm_alloc_rel(heap, size) _zend_mm_alloc((heap), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define zend_mm_free_rel(heap, p) _zend_mm_free((heap), (p) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define zend_mm_realloc_rel(heap, p, size) _zend_mm_realloc((heap), (p), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define zend_mm_realloc2_rel(heap, p, size, copy_size) _zend_mm_realloc2((heap), (p), (size), (copy_size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC) -#define zend_mm_block_size_rel(heap, p) _zend_mm_block_size((heap), (p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) - -ZEND_API zend_mm_heap *zend_mm_set_heap(zend_mm_heap *new_heap); -ZEND_API zend_mm_heap *zend_mm_get_heap(void); - -ZEND_API size_t zend_mm_gc(zend_mm_heap *heap); - -#define ZEND_MM_CUSTOM_HEAP_NONE 0 -#define ZEND_MM_CUSTOM_HEAP_STD 1 -#define ZEND_MM_CUSTOM_HEAP_DEBUG 2 - -ZEND_API int zend_mm_is_custom_heap(zend_mm_heap *new_heap); -ZEND_API void zend_mm_set_custom_handlers(zend_mm_heap *heap, - void* (*_malloc)(size_t), - void (*_free)(void*), - void* (*_realloc)(void*, size_t)); -ZEND_API void zend_mm_get_custom_handlers(zend_mm_heap *heap, - void* (**_malloc)(size_t), - void (**_free)(void*), - void* (**_realloc)(void*, size_t)); - -#if ZEND_DEBUG -ZEND_API void zend_mm_set_custom_debug_handlers(zend_mm_heap *heap, - void* (*_malloc)(size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC), - void (*_free)(void* ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC), - void* (*_realloc)(void*, size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)); -#endif - -typedef struct _zend_mm_storage zend_mm_storage; - -typedef void* (*zend_mm_chunk_alloc_t)(zend_mm_storage *storage, size_t size, size_t alignment); -typedef void (*zend_mm_chunk_free_t)(zend_mm_storage *storage, void *chunk, size_t size); -typedef int (*zend_mm_chunk_truncate_t)(zend_mm_storage *storage, void *chunk, size_t old_size, size_t new_size); -typedef int (*zend_mm_chunk_extend_t)(zend_mm_storage *storage, void *chunk, size_t old_size, size_t new_size); - -typedef struct _zend_mm_handlers { - zend_mm_chunk_alloc_t chunk_alloc; - zend_mm_chunk_free_t chunk_free; - zend_mm_chunk_truncate_t chunk_truncate; - zend_mm_chunk_extend_t chunk_extend; -} zend_mm_handlers; - -struct _zend_mm_storage { - const zend_mm_handlers handlers; - void *data; -}; - -ZEND_API zend_mm_storage *zend_mm_get_storage(zend_mm_heap *heap); -ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_handlers *handlers, void *data, size_t data_size); - -/* - -// The following example shows how to use zend_mm_heap API with custom storage - -static zend_mm_heap *apc_heap = NULL; -static HashTable *apc_ht = NULL; - -typedef struct _apc_data { - void *mem; - uint32_t free_pages; -} apc_data; - -static void *apc_chunk_alloc(zend_mm_storage *storage, size_t size, size_t alignment) -{ - apc_data *data = (apc_data*)(storage->data); - size_t real_size = ((size + (ZEND_MM_CHUNK_SIZE-1)) & ~(ZEND_MM_CHUNK_SIZE-1)); - uint32_t count = real_size / ZEND_MM_CHUNK_SIZE; - uint32_t first, last, i; - - ZEND_ASSERT(alignment == ZEND_MM_CHUNK_SIZE); - - for (first = 0; first < 32; first++) { - if (!(data->free_pages & (1 << first))) { - last = first; - do { - if (last - first == count - 1) { - for (i = first; i <= last; i++) { - data->free_pages |= (1 << i); - } - return (void *)(((char*)(data->mem)) + ZEND_MM_CHUNK_SIZE * (1 << first)); - } - last++; - } while (last < 32 && !(data->free_pages & (1 << last))); - first = last; - } - } - return NULL; -} - -static void apc_chunk_free(zend_mm_storage *storage, void *chunk, size_t size) -{ - apc_data *data = (apc_data*)(storage->data); - uint32_t i; - - ZEND_ASSERT(((uintptr_t)chunk & (ZEND_MM_CHUNK_SIZE - 1)) == 0); - - i = ((uintptr_t)chunk - (uintptr_t)(data->mem)) / ZEND_MM_CHUNK_SIZE; - while (1) { - data->free_pages &= ~(1 << i); - if (size <= ZEND_MM_CHUNK_SIZE) { - break; - } - size -= ZEND_MM_CHUNK_SIZE; - } -} - -static void apc_init_heap(void) -{ - zend_mm_handlers apc_handlers = { - apc_chunk_alloc, - apc_chunk_free, - NULL, - NULL, - }; - apc_data tmp_data; - zend_mm_heap *old_heap; - - // Preallocate properly aligned SHM chunks (64MB) - tmp_data.mem = shm_memalign(ZEND_MM_CHUNK_SIZE, ZEND_MM_CHUNK_SIZE * 32); - - // Initialize temporary storage data - tmp_data.free_pages = 0; - - // Create heap - apc_heap = zend_mm_startup_ex(&apc_handlers, &tmp_data, sizeof(tmp_data)); - - // Allocate some data in the heap - old_heap = zend_mm_set_heap(apc_heap); - ALLOC_HASHTABLE(apc_ht); - zend_hash_init(apc_ht, 64, NULL, ZVAL_PTR_DTOR, 0); - zend_mm_set_heap(old_heap); -} - -*/ - -#ifdef ZTS -size_t zend_mm_globals_size(void); -#endif - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_alloc_sizes.h b/include/php/Zend/zend_alloc_sizes.h deleted file mode 100644 index 9f1c00e..0000000 --- a/include/php/Zend/zend_alloc_sizes.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_ALLOC_SIZES_H -#define ZEND_ALLOC_SIZES_H - -#define ZEND_MM_CHUNK_SIZE (2 * 1024 * 1024) /* 2 MB */ -#define ZEND_MM_PAGE_SIZE (4 * 1024) /* 4 KB */ -#define ZEND_MM_PAGES (ZEND_MM_CHUNK_SIZE / ZEND_MM_PAGE_SIZE) /* 512 */ -#define ZEND_MM_FIRST_PAGE (1) - -#define ZEND_MM_MIN_SMALL_SIZE 8 -#define ZEND_MM_MAX_SMALL_SIZE 3072 -#define ZEND_MM_MAX_LARGE_SIZE (ZEND_MM_CHUNK_SIZE - (ZEND_MM_PAGE_SIZE * ZEND_MM_FIRST_PAGE)) - -/* num, size, count, pages */ -#define ZEND_MM_BINS_INFO(_, x, y) \ - _( 0, 8, 512, 1, x, y) \ - _( 1, 16, 256, 1, x, y) \ - _( 2, 24, 170, 1, x, y) \ - _( 3, 32, 128, 1, x, y) \ - _( 4, 40, 102, 1, x, y) \ - _( 5, 48, 85, 1, x, y) \ - _( 6, 56, 73, 1, x, y) \ - _( 7, 64, 64, 1, x, y) \ - _( 8, 80, 51, 1, x, y) \ - _( 9, 96, 42, 1, x, y) \ - _(10, 112, 36, 1, x, y) \ - _(11, 128, 32, 1, x, y) \ - _(12, 160, 25, 1, x, y) \ - _(13, 192, 21, 1, x, y) \ - _(14, 224, 18, 1, x, y) \ - _(15, 256, 16, 1, x, y) \ - _(16, 320, 64, 5, x, y) \ - _(17, 384, 32, 3, x, y) \ - _(18, 448, 9, 1, x, y) \ - _(19, 512, 8, 1, x, y) \ - _(20, 640, 32, 5, x, y) \ - _(21, 768, 16, 3, x, y) \ - _(22, 896, 9, 2, x, y) \ - _(23, 1024, 8, 2, x, y) \ - _(24, 1280, 16, 5, x, y) \ - _(25, 1536, 8, 3, x, y) \ - _(26, 1792, 16, 7, x, y) \ - _(27, 2048, 8, 4, x, y) \ - _(28, 2560, 8, 5, x, y) \ - _(29, 3072, 4, 3, x, y) - -#endif /* ZEND_ALLOC_SIZES_H */ diff --git a/include/php/Zend/zend_arena.h b/include/php/Zend/zend_arena.h deleted file mode 100644 index 6ecc1fc..0000000 --- a/include/php/Zend/zend_arena.h +++ /dev/null @@ -1,224 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef _ZEND_ARENA_H_ -#define _ZEND_ARENA_H_ - -#include "zend.h" - -#ifndef ZEND_TRACK_ARENA_ALLOC - -typedef struct _zend_arena zend_arena; - -struct _zend_arena { - char *ptr; - char *end; - zend_arena *prev; -}; - -static zend_always_inline zend_arena* zend_arena_create(size_t size) -{ - zend_arena *arena = (zend_arena*)emalloc(size); - - arena->ptr = (char*) arena + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena)); - arena->end = (char*) arena + size; - arena->prev = NULL; - return arena; -} - -static zend_always_inline void zend_arena_destroy(zend_arena *arena) -{ - do { - zend_arena *prev = arena->prev; - efree(arena); - arena = prev; - } while (arena); -} - -static zend_always_inline void* zend_arena_alloc(zend_arena **arena_ptr, size_t size) -{ - zend_arena *arena = *arena_ptr; - char *ptr = arena->ptr; - - size = ZEND_MM_ALIGNED_SIZE(size); - - if (EXPECTED(size <= (size_t)(arena->end - ptr))) { - arena->ptr = ptr + size; - } else { - size_t arena_size = - UNEXPECTED((size + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))) > (size_t)(arena->end - (char*) arena)) ? - (size + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))) : - (size_t)(arena->end - (char*) arena); - zend_arena *new_arena = (zend_arena*)emalloc(arena_size); - - ptr = (char*) new_arena + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena)); - new_arena->ptr = (char*) new_arena + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena)) + size; - new_arena->end = (char*) new_arena + arena_size; - new_arena->prev = arena; - *arena_ptr = new_arena; - } - - return (void*) ptr; -} - -static zend_always_inline void* zend_arena_calloc(zend_arena **arena_ptr, size_t count, size_t unit_size) -{ - int overflow; - size_t size; - void *ret; - - size = zend_safe_address(unit_size, count, 0, &overflow); - if (UNEXPECTED(overflow)) { - zend_error(E_ERROR, "Possible integer overflow in zend_arena_calloc() (%zu * %zu)", unit_size, count); - } - ret = zend_arena_alloc(arena_ptr, size); - memset(ret, 0, size); - return ret; -} - -static zend_always_inline void* zend_arena_checkpoint(zend_arena *arena) -{ - return arena->ptr; -} - -static zend_always_inline void zend_arena_release(zend_arena **arena_ptr, void *checkpoint) -{ - zend_arena *arena = *arena_ptr; - - while (UNEXPECTED((char*)checkpoint > arena->end) || - UNEXPECTED((char*)checkpoint <= (char*)arena)) { - zend_arena *prev = arena->prev; - efree(arena); - *arena_ptr = arena = prev; - } - ZEND_ASSERT((char*)checkpoint > (char*)arena && (char*)checkpoint <= arena->end); - arena->ptr = (char*)checkpoint; -} - -static zend_always_inline zend_bool zend_arena_contains(zend_arena *arena, void *ptr) -{ - while (arena) { - if ((char*)ptr > (char*)arena && (char*)ptr <= arena->ptr) { - return 1; - } - arena = arena->prev; - } - return 0; -} - -#else - -/* Use normal allocations and keep track of them for mass-freeing. - * This is intended for use with asan/valgrind. */ - -typedef struct _zend_arena zend_arena; - -struct _zend_arena { - void **ptr; - void **end; - struct _zend_arena *prev; - void *ptrs[0]; -}; - -#define ZEND_TRACKED_ARENA_SIZE 1000 - -static zend_always_inline zend_arena *zend_arena_create(size_t _size) -{ - zend_arena *arena = (zend_arena*) emalloc( - sizeof(zend_arena) + sizeof(void *) * ZEND_TRACKED_ARENA_SIZE); - arena->ptr = &arena->ptrs[0]; - arena->end = &arena->ptrs[ZEND_TRACKED_ARENA_SIZE]; - arena->prev = NULL; - return arena; -} - -static zend_always_inline void zend_arena_destroy(zend_arena *arena) -{ - do { - zend_arena *prev = arena->prev; - void **ptr; - for (ptr = arena->ptrs; ptr < arena->ptr; ptr++) { - efree(*ptr); - } - efree(arena); - arena = prev; - } while (arena); -} - -static zend_always_inline void *zend_arena_alloc(zend_arena **arena_ptr, size_t size) -{ - zend_arena *arena = *arena_ptr; - if (arena->ptr == arena->end) { - *arena_ptr = zend_arena_create(0); - (*arena_ptr)->prev = arena; - arena = *arena_ptr; - } - - return *arena->ptr++ = emalloc(size); -} - -static zend_always_inline void* zend_arena_calloc(zend_arena **arena_ptr, size_t count, size_t unit_size) -{ - int overflow; - size_t size; - void *ret; - - size = zend_safe_address(unit_size, count, 0, &overflow); - if (UNEXPECTED(overflow)) { - zend_error(E_ERROR, "Possible integer overflow in zend_arena_calloc() (%zu * %zu)", unit_size, count); - } - ret = zend_arena_alloc(arena_ptr, size); - memset(ret, 0, size); - return ret; -} - -static zend_always_inline void* zend_arena_checkpoint(zend_arena *arena) -{ - return arena->ptr; -} - -static zend_always_inline void zend_arena_release(zend_arena **arena_ptr, void *checkpoint) -{ - while (1) { - zend_arena *arena = *arena_ptr; - zend_arena *prev = arena->prev; - while (1) { - if (arena->ptr == (void **) checkpoint) { - return; - } - if (arena->ptr == arena->ptrs) { - break; - } - arena->ptr--; - efree(*arena->ptr); - } - efree(arena); - *arena_ptr = prev; - ZEND_ASSERT(*arena_ptr); - } -} - -static zend_always_inline zend_bool zend_arena_contains(zend_arena *arena, void *ptr) -{ - /* TODO: Dummy */ - return 1; -} - -#endif - -#endif /* _ZEND_ARENA_H_ */ diff --git a/include/php/Zend/zend_ast.h b/include/php/Zend/zend_ast.h deleted file mode 100644 index fd6dd16..0000000 --- a/include/php/Zend/zend_ast.h +++ /dev/null @@ -1,342 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Bob Weinand | - | Dmitry Stogov | - | Nikita Popov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_AST_H -#define ZEND_AST_H - -#include "zend.h" - -#ifndef ZEND_AST_SPEC -# define ZEND_AST_SPEC 1 -#endif - -#define ZEND_AST_SPECIAL_SHIFT 6 -#define ZEND_AST_IS_LIST_SHIFT 7 -#define ZEND_AST_NUM_CHILDREN_SHIFT 8 - -enum _zend_ast_kind { - /* special nodes */ - ZEND_AST_ZVAL = 1 << ZEND_AST_SPECIAL_SHIFT, - ZEND_AST_CONSTANT, - ZEND_AST_ZNODE, - - /* declaration nodes */ - ZEND_AST_FUNC_DECL, - ZEND_AST_CLOSURE, - ZEND_AST_METHOD, - ZEND_AST_CLASS, - ZEND_AST_ARROW_FUNC, - - /* list nodes */ - ZEND_AST_ARG_LIST = 1 << ZEND_AST_IS_LIST_SHIFT, - ZEND_AST_ARRAY, - ZEND_AST_ENCAPS_LIST, - ZEND_AST_EXPR_LIST, - ZEND_AST_STMT_LIST, - ZEND_AST_IF, - ZEND_AST_SWITCH_LIST, - ZEND_AST_CATCH_LIST, - ZEND_AST_PARAM_LIST, - ZEND_AST_CLOSURE_USES, - ZEND_AST_PROP_DECL, - ZEND_AST_CONST_DECL, - ZEND_AST_CLASS_CONST_DECL, - ZEND_AST_NAME_LIST, - ZEND_AST_TRAIT_ADAPTATIONS, - ZEND_AST_USE, - - /* 0 child nodes */ - ZEND_AST_MAGIC_CONST = 0 << ZEND_AST_NUM_CHILDREN_SHIFT, - ZEND_AST_TYPE, - ZEND_AST_CONSTANT_CLASS, - - /* 1 child node */ - ZEND_AST_VAR = 1 << ZEND_AST_NUM_CHILDREN_SHIFT, - ZEND_AST_CONST, - ZEND_AST_UNPACK, - ZEND_AST_UNARY_PLUS, - ZEND_AST_UNARY_MINUS, - ZEND_AST_CAST, - ZEND_AST_EMPTY, - ZEND_AST_ISSET, - ZEND_AST_SILENCE, - ZEND_AST_SHELL_EXEC, - ZEND_AST_CLONE, - ZEND_AST_EXIT, - ZEND_AST_PRINT, - ZEND_AST_INCLUDE_OR_EVAL, - ZEND_AST_UNARY_OP, - ZEND_AST_PRE_INC, - ZEND_AST_PRE_DEC, - ZEND_AST_POST_INC, - ZEND_AST_POST_DEC, - ZEND_AST_YIELD_FROM, - ZEND_AST_CLASS_NAME, - - ZEND_AST_GLOBAL, - ZEND_AST_UNSET, - ZEND_AST_RETURN, - ZEND_AST_LABEL, - ZEND_AST_REF, - ZEND_AST_HALT_COMPILER, - ZEND_AST_ECHO, - ZEND_AST_THROW, - ZEND_AST_GOTO, - ZEND_AST_BREAK, - ZEND_AST_CONTINUE, - - /* 2 child nodes */ - ZEND_AST_DIM = 2 << ZEND_AST_NUM_CHILDREN_SHIFT, - ZEND_AST_PROP, - ZEND_AST_STATIC_PROP, - ZEND_AST_CALL, - ZEND_AST_CLASS_CONST, - ZEND_AST_ASSIGN, - ZEND_AST_ASSIGN_REF, - ZEND_AST_ASSIGN_OP, - ZEND_AST_BINARY_OP, - ZEND_AST_GREATER, - ZEND_AST_GREATER_EQUAL, - ZEND_AST_AND, - ZEND_AST_OR, - ZEND_AST_ARRAY_ELEM, - ZEND_AST_NEW, - ZEND_AST_INSTANCEOF, - ZEND_AST_YIELD, - ZEND_AST_COALESCE, - ZEND_AST_ASSIGN_COALESCE, - - ZEND_AST_STATIC, - ZEND_AST_WHILE, - ZEND_AST_DO_WHILE, - ZEND_AST_IF_ELEM, - ZEND_AST_SWITCH, - ZEND_AST_SWITCH_CASE, - ZEND_AST_DECLARE, - ZEND_AST_USE_TRAIT, - ZEND_AST_TRAIT_PRECEDENCE, - ZEND_AST_METHOD_REFERENCE, - ZEND_AST_NAMESPACE, - ZEND_AST_USE_ELEM, - ZEND_AST_TRAIT_ALIAS, - ZEND_AST_GROUP_USE, - ZEND_AST_PROP_GROUP, - - /* 3 child nodes */ - ZEND_AST_METHOD_CALL = 3 << ZEND_AST_NUM_CHILDREN_SHIFT, - ZEND_AST_STATIC_CALL, - ZEND_AST_CONDITIONAL, - - ZEND_AST_TRY, - ZEND_AST_CATCH, - ZEND_AST_PARAM, - ZEND_AST_PROP_ELEM, - ZEND_AST_CONST_ELEM, - - /* 4 child nodes */ - ZEND_AST_FOR = 4 << ZEND_AST_NUM_CHILDREN_SHIFT, - ZEND_AST_FOREACH, -}; - -typedef uint16_t zend_ast_kind; -typedef uint16_t zend_ast_attr; - -struct _zend_ast { - zend_ast_kind kind; /* Type of the node (ZEND_AST_* enum constant) */ - zend_ast_attr attr; /* Additional attribute, use depending on node type */ - uint32_t lineno; /* Line number */ - zend_ast *child[1]; /* Array of children (using struct hack) */ -}; - -/* Same as zend_ast, but with children count, which is updated dynamically */ -typedef struct _zend_ast_list { - zend_ast_kind kind; - zend_ast_attr attr; - uint32_t lineno; - uint32_t children; - zend_ast *child[1]; -} zend_ast_list; - -/* Lineno is stored in val.u2.lineno */ -typedef struct _zend_ast_zval { - zend_ast_kind kind; - zend_ast_attr attr; - zval val; -} zend_ast_zval; - -/* Separate structure for function and class declaration, as they need extra information. */ -typedef struct _zend_ast_decl { - zend_ast_kind kind; - zend_ast_attr attr; /* Unused - for structure compatibility */ - uint32_t start_lineno; - uint32_t end_lineno; - uint32_t flags; - unsigned char *lex_pos; - zend_string *doc_comment; - zend_string *name; - zend_ast *child[4]; -} zend_ast_decl; - -typedef void (*zend_ast_process_t)(zend_ast *ast); -extern ZEND_API zend_ast_process_t zend_ast_process; - -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_zval_with_lineno(zval *zv, uint32_t lineno); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_zval_ex(zval *zv, zend_ast_attr attr); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_zval(zval *zv); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_zval_from_str(zend_string *str); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_zval_from_long(zend_long lval); - -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_constant(zend_string *name, zend_ast_attr attr); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_class_const_or_name(zend_ast *class_name, zend_ast *name); - -#if ZEND_AST_SPEC -# define ZEND_AST_SPEC_CALL(name, ...) \ - ZEND_EXPAND_VA(ZEND_AST_SPEC_CALL_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__)) -# define ZEND_AST_SPEC_CALL_(name, _, _4, _3, _2, _1, suffix, ...) \ - name ## suffix -# define ZEND_AST_SPEC_CALL_EX(name, ...) \ - ZEND_EXPAND_VA(ZEND_AST_SPEC_CALL_EX_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__)) -# define ZEND_AST_SPEC_CALL_EX_(name, _, _5, _4, _3, _2, _1, suffix, ...) \ - name ## suffix - -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_0(zend_ast_kind kind); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_1(zend_ast_kind kind, zend_ast *child); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_2(zend_ast_kind kind, zend_ast *child1, zend_ast *child2); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_3(zend_ast_kind kind, zend_ast *child1, zend_ast *child2, zend_ast *child3); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_4(zend_ast_kind kind, zend_ast *child1, zend_ast *child2, zend_ast *child3, zend_ast *child4); - -static zend_always_inline zend_ast * zend_ast_create_ex_0(zend_ast_kind kind, zend_ast_attr attr) { - zend_ast *ast = zend_ast_create_0(kind); - ast->attr = attr; - return ast; -} -static zend_always_inline zend_ast * zend_ast_create_ex_1(zend_ast_kind kind, zend_ast_attr attr, zend_ast *child) { - zend_ast *ast = zend_ast_create_1(kind, child); - ast->attr = attr; - return ast; -} -static zend_always_inline zend_ast * zend_ast_create_ex_2(zend_ast_kind kind, zend_ast_attr attr, zend_ast *child1, zend_ast *child2) { - zend_ast *ast = zend_ast_create_2(kind, child1, child2); - ast->attr = attr; - return ast; -} -static zend_always_inline zend_ast * zend_ast_create_ex_3(zend_ast_kind kind, zend_ast_attr attr, zend_ast *child1, zend_ast *child2, zend_ast *child3) { - zend_ast *ast = zend_ast_create_3(kind, child1, child2, child3); - ast->attr = attr; - return ast; -} -static zend_always_inline zend_ast * zend_ast_create_ex_4(zend_ast_kind kind, zend_ast_attr attr, zend_ast *child1, zend_ast *child2, zend_ast *child3, zend_ast *child4) { - zend_ast *ast = zend_ast_create_4(kind, child1, child2, child3, child4); - ast->attr = attr; - return ast; -} - -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_list_0(zend_ast_kind kind); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_list_1(zend_ast_kind kind, zend_ast *child); -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_list_2(zend_ast_kind kind, zend_ast *child1, zend_ast *child2); - -# define zend_ast_create(...) \ - ZEND_AST_SPEC_CALL(zend_ast_create, __VA_ARGS__) -# define zend_ast_create_ex(...) \ - ZEND_AST_SPEC_CALL_EX(zend_ast_create_ex, __VA_ARGS__) -# define zend_ast_create_list(init_children, ...) \ - ZEND_AST_SPEC_CALL(zend_ast_create_list, __VA_ARGS__) - -#else -ZEND_API zend_ast *zend_ast_create(zend_ast_kind kind, ...); -ZEND_API zend_ast *zend_ast_create_ex(zend_ast_kind kind, zend_ast_attr attr, ...); -ZEND_API zend_ast *zend_ast_create_list(uint32_t init_children, zend_ast_kind kind, ...); -#endif - -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_list_add(zend_ast *list, zend_ast *op); - -ZEND_API zend_ast *zend_ast_create_decl( - zend_ast_kind kind, uint32_t flags, uint32_t start_lineno, zend_string *doc_comment, - zend_string *name, zend_ast *child0, zend_ast *child1, zend_ast *child2, zend_ast *child3 -); - -ZEND_API int ZEND_FASTCALL zend_ast_evaluate(zval *result, zend_ast *ast, zend_class_entry *scope); -ZEND_API zend_string *zend_ast_export(const char *prefix, zend_ast *ast, const char *suffix); - -ZEND_API zend_ast_ref * ZEND_FASTCALL zend_ast_copy(zend_ast *ast); -ZEND_API void ZEND_FASTCALL zend_ast_destroy(zend_ast *ast); -ZEND_API void ZEND_FASTCALL zend_ast_ref_destroy(zend_ast_ref *ast); - -typedef void (*zend_ast_apply_func)(zend_ast **ast_ptr); -ZEND_API void zend_ast_apply(zend_ast *ast, zend_ast_apply_func fn); - -static zend_always_inline zend_bool zend_ast_is_special(zend_ast *ast) { - return (ast->kind >> ZEND_AST_SPECIAL_SHIFT) & 1; -} - -static zend_always_inline zend_bool zend_ast_is_list(zend_ast *ast) { - return (ast->kind >> ZEND_AST_IS_LIST_SHIFT) & 1; -} -static zend_always_inline zend_ast_list *zend_ast_get_list(zend_ast *ast) { - ZEND_ASSERT(zend_ast_is_list(ast)); - return (zend_ast_list *) ast; -} - -static zend_always_inline zval *zend_ast_get_zval(zend_ast *ast) { - ZEND_ASSERT(ast->kind == ZEND_AST_ZVAL); - return &((zend_ast_zval *) ast)->val; -} -static zend_always_inline zend_string *zend_ast_get_str(zend_ast *ast) { - zval *zv = zend_ast_get_zval(ast); - ZEND_ASSERT(Z_TYPE_P(zv) == IS_STRING); - return Z_STR_P(zv); -} - -static zend_always_inline zend_string *zend_ast_get_constant_name(zend_ast *ast) { - ZEND_ASSERT(ast->kind == ZEND_AST_CONSTANT); - ZEND_ASSERT(Z_TYPE(((zend_ast_zval *) ast)->val) == IS_STRING); - return Z_STR(((zend_ast_zval *) ast)->val); -} - -static zend_always_inline uint32_t zend_ast_get_num_children(zend_ast *ast) { - ZEND_ASSERT(!zend_ast_is_list(ast)); - return ast->kind >> ZEND_AST_NUM_CHILDREN_SHIFT; -} -static zend_always_inline uint32_t zend_ast_get_lineno(zend_ast *ast) { - if (ast->kind == ZEND_AST_ZVAL) { - zval *zv = zend_ast_get_zval(ast); - return Z_LINENO_P(zv); - } else { - return ast->lineno; - } -} - -static zend_always_inline zend_ast *zend_ast_create_binary_op(uint32_t opcode, zend_ast *op0, zend_ast *op1) { - return zend_ast_create_ex(ZEND_AST_BINARY_OP, opcode, op0, op1); -} -static zend_always_inline zend_ast *zend_ast_create_assign_op(uint32_t opcode, zend_ast *op0, zend_ast *op1) { - return zend_ast_create_ex(ZEND_AST_ASSIGN_OP, opcode, op0, op1); -} -static zend_always_inline zend_ast *zend_ast_create_cast(uint32_t type, zend_ast *op0) { - return zend_ast_create_ex(ZEND_AST_CAST, type, op0); -} -static zend_always_inline zend_ast *zend_ast_list_rtrim(zend_ast *ast) { - zend_ast_list *list = zend_ast_get_list(ast); - if (list->children && list->child[list->children - 1] == NULL) { - list->children--; - } - return ast; -} -#endif diff --git a/include/php/Zend/zend_bitset.h b/include/php/Zend/zend_bitset.h deleted file mode 100644 index 2a227e4..0000000 --- a/include/php/Zend/zend_bitset.h +++ /dev/null @@ -1,254 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend OPcache JIT | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef _ZEND_BITSET_H_ -#define _ZEND_BITSET_H_ - -typedef zend_ulong *zend_bitset; - -#define ZEND_BITSET_ELM_SIZE sizeof(zend_ulong) - -#if SIZEOF_ZEND_LONG == 4 -# define ZEND_BITSET_ELM_NUM(n) ((n) >> 5) -# define ZEND_BITSET_BIT_NUM(n) ((zend_ulong)(n) & Z_UL(0x1f)) -#elif SIZEOF_ZEND_LONG == 8 -# define ZEND_BITSET_ELM_NUM(n) ((n) >> 6) -# define ZEND_BITSET_BIT_NUM(n) ((zend_ulong)(n) & Z_UL(0x3f)) -#else -# define ZEND_BITSET_ELM_NUM(n) ((n) / (sizeof(zend_long) * 8)) -# define ZEND_BITSET_BIT_NUM(n) ((n) % (sizeof(zend_long) * 8)) -#endif - -#define ZEND_BITSET_ALLOCA(n, use_heap) \ - (zend_bitset)do_alloca((n) * ZEND_BITSET_ELM_SIZE, use_heap) - -/* Number of trailing zero bits (0x01 -> 0; 0x40 -> 6; 0x00 -> LEN) */ -static zend_always_inline int zend_ulong_ntz(zend_ulong num) -{ -#if (defined(__GNUC__) || __has_builtin(__builtin_ctzl)) \ - && SIZEOF_ZEND_LONG == SIZEOF_LONG && defined(PHP_HAVE_BUILTIN_CTZL) - return __builtin_ctzl(num); -#elif (defined(__GNUC__) || __has_builtin(__builtin_ctzll)) && defined(PHP_HAVE_BUILTIN_CTZLL) - return __builtin_ctzll(num); -#elif defined(_WIN32) - unsigned long index; - -#if defined(_WIN64) - if (!BitScanForward64(&index, num)) { -#else - if (!BitScanForward(&index, num)) { -#endif - /* undefined behavior */ - return SIZEOF_ZEND_LONG * 8; - } - - return (int) index; -#else - int n; - - if (num == Z_UL(0)) return SIZEOF_ZEND_LONG * 8; - - n = 1; -#if SIZEOF_ZEND_LONG == 8 - if ((num & 0xffffffff) == 0) {n += 32; num = num >> Z_UL(32);} -#endif - if ((num & 0x0000ffff) == 0) {n += 16; num = num >> 16;} - if ((num & 0x000000ff) == 0) {n += 8; num = num >> 8;} - if ((num & 0x0000000f) == 0) {n += 4; num = num >> 4;} - if ((num & 0x00000003) == 0) {n += 2; num = num >> 2;} - return n - (num & 1); -#endif -} - -/* Returns the number of zend_ulong words needed to store a bitset that is N - bits long. */ -static inline uint32_t zend_bitset_len(uint32_t n) -{ - return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8); -} - -static inline zend_bool zend_bitset_in(zend_bitset set, uint32_t n) -{ - return ZEND_BIT_TEST(set, n); -} - -static inline void zend_bitset_incl(zend_bitset set, uint32_t n) -{ - set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n); -} - -static inline void zend_bitset_excl(zend_bitset set, uint32_t n) -{ - set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n)); -} - -static inline void zend_bitset_clear(zend_bitset set, uint32_t len) -{ - memset(set, 0, len * ZEND_BITSET_ELM_SIZE); -} - -static inline int zend_bitset_empty(zend_bitset set, uint32_t len) -{ - uint32_t i; - for (i = 0; i < len; i++) { - if (set[i]) { - return 0; - } - } - return 1; -} - -static inline void zend_bitset_fill(zend_bitset set, uint32_t len) -{ - memset(set, 0xff, len * ZEND_BITSET_ELM_SIZE); -} - -static inline zend_bool zend_bitset_equal(zend_bitset set1, zend_bitset set2, uint32_t len) -{ - return memcmp(set1, set2, len * ZEND_BITSET_ELM_SIZE) == 0; -} - -static inline void zend_bitset_copy(zend_bitset set1, zend_bitset set2, uint32_t len) -{ - memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE); -} - -static inline void zend_bitset_intersection(zend_bitset set1, zend_bitset set2, uint32_t len) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - set1[i] &= set2[i]; - } -} - -static inline void zend_bitset_union(zend_bitset set1, zend_bitset set2, uint32_t len) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - set1[i] |= set2[i]; - } -} - -static inline void zend_bitset_difference(zend_bitset set1, zend_bitset set2, uint32_t len) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - set1[i] = set1[i] & ~set2[i]; - } -} - -static inline void zend_bitset_union_with_intersection(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - set1[i] = set2[i] | (set3[i] & set4[i]); - } -} - -static inline void zend_bitset_union_with_difference(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - set1[i] = set2[i] | (set3[i] & ~set4[i]); - } -} - -static inline zend_bool zend_bitset_subset(zend_bitset set1, zend_bitset set2, uint32_t len) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - if (set1[i] & ~set2[i]) { - return 0; - } - } - return 1; -} - -static inline int zend_bitset_first(zend_bitset set, uint32_t len) -{ - uint32_t i; - - for (i = 0; i < len; i++) { - if (set[i]) { - return ZEND_BITSET_ELM_SIZE * 8 * i + zend_ulong_ntz(set[i]); - } - } - return -1; /* empty set */ -} - -static inline int zend_bitset_last(zend_bitset set, uint32_t len) -{ - uint32_t i = len; - - while (i > 0) { - i--; - if (set[i]) { - int j = ZEND_BITSET_ELM_SIZE * 8 * i - 1; - zend_ulong x = set[i]; - while (x != Z_UL(0)) { - x = x >> Z_UL(1); - j++; - } - return j; - } - } - return -1; /* empty set */ -} - -#define ZEND_BITSET_FOREACH(set, len, bit) do { \ - zend_bitset _set = (set); \ - uint32_t _i, _len = (len); \ - for (_i = 0; _i < _len; _i++) { \ - zend_ulong _x = _set[_i]; \ - if (_x) { \ - (bit) = ZEND_BITSET_ELM_SIZE * 8 * _i; \ - for (; _x != 0; _x >>= Z_UL(1), (bit)++) { \ - if (!(_x & Z_UL(1))) continue; - -#define ZEND_BITSET_REVERSE_FOREACH(set, len, bit) do { \ - zend_bitset _set = (set); \ - uint32_t _i = (len); \ - zend_ulong _test = Z_UL(1) << (ZEND_BITSET_ELM_SIZE * 8 - 1); \ - while (_i-- > 0) { \ - zend_ulong _x = _set[_i]; \ - if (_x) { \ - (bit) = ZEND_BITSET_ELM_SIZE * 8 * (_i + 1) - 1; \ - for (; _x != 0; _x <<= Z_UL(1), (bit)--) { \ - if (!(_x & _test)) continue; \ - -#define ZEND_BITSET_FOREACH_END() \ - } \ - } \ - } \ -} while (0) - -static inline int zend_bitset_pop_first(zend_bitset set, uint32_t len) { - int i = zend_bitset_first(set, len); - if (i >= 0) { - zend_bitset_excl(set, i); - } - return i; -} - -#endif /* _ZEND_BITSET_H_ */ diff --git a/include/php/Zend/zend_build.h b/include/php/Zend/zend_build.h deleted file mode 100644 index c604fb3..0000000 --- a/include/php/Zend/zend_build.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Stanislav Malyshev | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_BUILD_H -#define ZEND_BUILD_H - -#define ZEND_TOSTR_(x) #x -#define ZEND_TOSTR(x) ZEND_TOSTR_(x) - -#ifdef ZTS -#define ZEND_BUILD_TS ",TS" -#else -#define ZEND_BUILD_TS ",NTS" -#endif - -#if ZEND_DEBUG -#define ZEND_BUILD_DEBUG ",debug" -#else -#define ZEND_BUILD_DEBUG -#endif - -#if defined(ZEND_WIN32) && defined(PHP_COMPILER_ID) -#define ZEND_BUILD_SYSTEM "," PHP_COMPILER_ID -#else -#define ZEND_BUILD_SYSTEM -#endif - -/* for private applications */ -#define ZEND_BUILD_EXTRA - -#endif diff --git a/include/php/Zend/zend_builtin_functions.h b/include/php/Zend/zend_builtin_functions.h deleted file mode 100644 index cfc347e..0000000 --- a/include/php/Zend/zend_builtin_functions.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_BUILTIN_FUNCTIONS_H -#define ZEND_BUILTIN_FUNCTIONS_H - -int zend_startup_builtin_functions(void); - -BEGIN_EXTERN_C() -ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int options, int limit); -END_EXTERN_C() - -#endif /* ZEND_BUILTIN_FUNCTIONS_H */ diff --git a/include/php/Zend/zend_closures.h b/include/php/Zend/zend_closures.h deleted file mode 100644 index 6e27ddc..0000000 --- a/include/php/Zend/zend_closures.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Christian Seiler | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_CLOSURES_H -#define ZEND_CLOSURES_H - -BEGIN_EXTERN_C() - -/* This macro depends on zend_closure structure layout */ -#define ZEND_CLOSURE_OBJECT(op_array) \ - ((zend_object*)((char*)(op_array) - sizeof(zend_object))) - -void zend_register_closure_ce(void); -void zend_closure_bind_var(zval *closure_zv, zend_string *var_name, zval *var); -void zend_closure_bind_var_ex(zval *closure_zv, uint32_t offset, zval *val); - -extern ZEND_API zend_class_entry *zend_ce_closure; - -ZEND_API void zend_create_closure(zval *res, zend_function *op_array, zend_class_entry *scope, zend_class_entry *called_scope, zval *this_ptr); -ZEND_API void zend_create_fake_closure(zval *res, zend_function *op_array, zend_class_entry *scope, zend_class_entry *called_scope, zval *this_ptr); -ZEND_API zend_function *zend_get_closure_invoke_method(zend_object *obj); -ZEND_API const zend_function *zend_get_closure_method_def(zval *obj); -ZEND_API zval* zend_get_closure_this_ptr(zval *obj); - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_compile.h b/include/php/Zend/zend_compile.h deleted file mode 100644 index c21554e..0000000 --- a/include/php/Zend/zend_compile.h +++ /dev/null @@ -1,1108 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_COMPILE_H -#define ZEND_COMPILE_H - -#include "zend.h" -#include "zend_ast.h" - -#include - -#include "zend_llist.h" - -#define SET_UNUSED(op) op ## _type = IS_UNUSED - -#define MAKE_NOP(opline) do { \ - (opline)->op1.num = 0; \ - (opline)->op2.num = 0; \ - (opline)->result.num = 0; \ - (opline)->opcode = ZEND_NOP; \ - (opline)->op1_type = IS_UNUSED; \ - (opline)->op2_type = IS_UNUSED; \ - (opline)->result_type = IS_UNUSED; \ -} while (0) - -#define RESET_DOC_COMMENT() do { \ - if (CG(doc_comment)) { \ - zend_string_release_ex(CG(doc_comment), 0); \ - CG(doc_comment) = NULL; \ - } \ -} while (0) - -typedef struct _zend_op_array zend_op_array; -typedef struct _zend_op zend_op; - -/* On 64-bit systems less optimal, but more compact VM code leads to better - * performance. So on 32-bit systems we use absolute addresses for jump - * targets and constants, but on 64-bit systems realtive 32-bit offsets */ -#if SIZEOF_SIZE_T == 4 -# define ZEND_USE_ABS_JMP_ADDR 1 -# define ZEND_USE_ABS_CONST_ADDR 1 -#else -# define ZEND_USE_ABS_JMP_ADDR 0 -# define ZEND_USE_ABS_CONST_ADDR 0 -#endif - -typedef union _znode_op { - uint32_t constant; - uint32_t var; - uint32_t num; - uint32_t opline_num; /* Needs to be signed */ -#if ZEND_USE_ABS_JMP_ADDR - zend_op *jmp_addr; -#else - uint32_t jmp_offset; -#endif -#if ZEND_USE_ABS_CONST_ADDR - zval *zv; -#endif -} znode_op; - -typedef struct _znode { /* used only during compilation */ - zend_uchar op_type; - zend_uchar flag; - union { - znode_op op; - zval constant; /* replaced by literal/zv */ - } u; -} znode; - -/* Temporarily defined here, to avoid header ordering issues */ -typedef struct _zend_ast_znode { - zend_ast_kind kind; - zend_ast_attr attr; - uint32_t lineno; - znode node; -} zend_ast_znode; - -ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_znode(znode *node); - -static zend_always_inline znode *zend_ast_get_znode(zend_ast *ast) { - return &((zend_ast_znode *) ast)->node; -} - -typedef struct _zend_declarables { - zend_long ticks; -} zend_declarables; - -/* Compilation context that is different for each file, but shared between op arrays. */ -typedef struct _zend_file_context { - zend_declarables declarables; - - zend_string *current_namespace; - zend_bool in_namespace; - zend_bool has_bracketed_namespaces; - - HashTable *imports; - HashTable *imports_function; - HashTable *imports_const; - - HashTable seen_symbols; -} zend_file_context; - -typedef union _zend_parser_stack_elem { - zend_ast *ast; - zend_string *str; - zend_ulong num; - unsigned char *ptr; -} zend_parser_stack_elem; - -void zend_compile_top_stmt(zend_ast *ast); -void zend_compile_stmt(zend_ast *ast); -void zend_compile_expr(znode *node, zend_ast *ast); -zend_op *zend_compile_var(znode *node, zend_ast *ast, uint32_t type, int by_ref); -void zend_eval_const_expr(zend_ast **ast_ptr); -void zend_const_expr_to_zval(zval *result, zend_ast *ast); - -typedef int (*user_opcode_handler_t) (zend_execute_data *execute_data); - -struct _zend_op { - const void *handler; - znode_op op1; - znode_op op2; - znode_op result; - uint32_t extended_value; - uint32_t lineno; - zend_uchar opcode; - zend_uchar op1_type; - zend_uchar op2_type; - zend_uchar result_type; -}; - - -typedef struct _zend_brk_cont_element { - int start; - int cont; - int brk; - int parent; - zend_bool is_switch; -} zend_brk_cont_element; - -typedef struct _zend_label { - int brk_cont; - uint32_t opline_num; -} zend_label; - -typedef struct _zend_try_catch_element { - uint32_t try_op; - uint32_t catch_op; /* ketchup! */ - uint32_t finally_op; - uint32_t finally_end; -} zend_try_catch_element; - -#define ZEND_LIVE_TMPVAR 0 -#define ZEND_LIVE_LOOP 1 -#define ZEND_LIVE_SILENCE 2 -#define ZEND_LIVE_ROPE 3 -#define ZEND_LIVE_NEW 4 -#define ZEND_LIVE_MASK 7 - -typedef struct _zend_live_range { - uint32_t var; /* low bits are used for variable type (ZEND_LIVE_* macros) */ - uint32_t start; - uint32_t end; -} zend_live_range; - -/* Compilation context that is different for each op array. */ -typedef struct _zend_oparray_context { - uint32_t opcodes_size; - int vars_size; - int literals_size; - uint32_t fast_call_var; - uint32_t try_catch_offset; - int current_brk_cont; - int last_brk_cont; - zend_brk_cont_element *brk_cont_array; - HashTable *labels; -} zend_oparray_context; - -/* Class, property and method flags class|meth.|prop.|const*/ -/* | | | */ -/* Common flags | | | */ -/* ============ | | | */ -/* | | | */ -/* Visibility flags (public < protected < private) | | | */ -#define ZEND_ACC_PUBLIC (1 << 0) /* | X | X | X */ -#define ZEND_ACC_PROTECTED (1 << 1) /* | X | X | X */ -#define ZEND_ACC_PRIVATE (1 << 2) /* | X | X | X */ -/* | | | */ -/* Property or method overrides private one | | | */ -#define ZEND_ACC_CHANGED (1 << 3) /* | X | X | */ -/* | | | */ -/* Staic method or property | | | */ -#define ZEND_ACC_STATIC (1 << 4) /* | X | X | */ -/* | | | */ -/* Final class or method | | | */ -#define ZEND_ACC_FINAL (1 << 5) /* X | X | | */ -/* | | | */ -/* Abstract method | | | */ -#define ZEND_ACC_ABSTRACT (1 << 6) /* X | X | | */ -#define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS (1 << 6) /* X | | | */ -/* | | | */ -/* Immutable op_array and class_entries | | | */ -/* (implemented only for lazy loading of op_arrays) | | | */ -#define ZEND_ACC_IMMUTABLE (1 << 7) /* X | X | | */ -/* | | | */ -/* Function has typed arguments / class has typed props | | | */ -#define ZEND_ACC_HAS_TYPE_HINTS (1 << 8) /* X | X | | */ -/* | | | */ -/* Top-level class or function declaration | | | */ -#define ZEND_ACC_TOP_LEVEL (1 << 9) /* X | X | | */ -/* | | | */ -/* op_array or class is preloaded | | | */ -#define ZEND_ACC_PRELOADED (1 << 10) /* X | X | | */ -/* | | | */ -/* Class Flags (unused: 24...) | | | */ -/* =========== | | | */ -/* | | | */ -/* Special class types | | | */ -#define ZEND_ACC_INTERFACE (1 << 0) /* X | | | */ -#define ZEND_ACC_TRAIT (1 << 1) /* X | | | */ -#define ZEND_ACC_ANON_CLASS (1 << 2) /* X | | | */ -/* | | | */ -/* Class linked with parent, interfacs and traits | | | */ -#define ZEND_ACC_LINKED (1 << 3) /* X | | | */ -/* | | | */ -/* class is abstarct, since it is set by any | | | */ -/* abstract method | | | */ -#define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS (1 << 4) /* X | | | */ -/* | | | */ -/* Class has magic methods __get/__set/__unset/ | | | */ -/* __isset that use guards | | | */ -#define ZEND_ACC_USE_GUARDS (1 << 11) /* X | | | */ -/* | | | */ -/* Class constants updated | | | */ -#define ZEND_ACC_CONSTANTS_UPDATED (1 << 12) /* X | | | */ -/* | | | */ -/* Class extends another class | | | */ -#define ZEND_ACC_INHERITED (1 << 13) /* X | | | */ -/* | | | */ -/* Class implements interface(s) | | | */ -#define ZEND_ACC_IMPLEMENT_INTERFACES (1 << 14) /* X | | | */ -/* | | | */ -/* Class uses trait(s) | | | */ -#define ZEND_ACC_IMPLEMENT_TRAITS (1 << 15) /* X | | | */ -/* | | | */ -/* User class has methods with static variables | | | */ -#define ZEND_HAS_STATIC_IN_METHODS (1 << 16) /* X | | | */ -/* | | | */ -/* Whether all property types are resolved to CEs | | | */ -#define ZEND_ACC_PROPERTY_TYPES_RESOLVED (1 << 17) /* X | | | */ -/* | | | */ -/* Children must reuse parent get_iterator() | | | */ -#define ZEND_ACC_REUSE_GET_ITERATOR (1 << 18) /* X | | | */ -/* | | | */ -/* Parent class is resolved (CE). | | | */ -#define ZEND_ACC_RESOLVED_PARENT (1 << 19) /* X | | | */ -/* | | | */ -/* Interfaces are resolved (CEs). | | | */ -#define ZEND_ACC_RESOLVED_INTERFACES (1 << 20) /* X | | | */ -/* | | | */ -/* Class has unresolved variance obligations. | | | */ -#define ZEND_ACC_UNRESOLVED_VARIANCE (1 << 21) /* X | | | */ -/* | | | */ -/* Class is linked apart from variance obligations. | | | */ -#define ZEND_ACC_NEARLY_LINKED (1 << 22) /* X | | | */ -/* | | | */ -/* Whether this class was used in its unlinked state. | | | */ -#define ZEND_ACC_HAS_UNLINKED_USES (1 << 23) /* X | | | */ -/* | | | */ -/* Function Flags (unused: 23, 26) | | | */ -/* ============== | | | */ -/* | | | */ -/* deprecation flag | | | */ -#define ZEND_ACC_DEPRECATED (1 << 11) /* | X | | */ -/* | | | */ -/* Function returning by reference | | | */ -#define ZEND_ACC_RETURN_REFERENCE (1 << 12) /* | X | | */ -/* | | | */ -/* Function has a return type | | | */ -#define ZEND_ACC_HAS_RETURN_TYPE (1 << 13) /* | X | | */ -/* | | | */ -/* Function with variable number of arguments | | | */ -#define ZEND_ACC_VARIADIC (1 << 14) /* | X | | */ -/* | | | */ -/* op_array has finally blocks (user only) | | | */ -#define ZEND_ACC_HAS_FINALLY_BLOCK (1 << 15) /* | X | | */ -/* | | | */ -/* "main" op_array with | | | */ -/* ZEND_DECLARE_CLASS_DELAYED opcodes | | | */ -#define ZEND_ACC_EARLY_BINDING (1 << 16) /* | X | | */ -/* | | | */ -/* method flag (bc only), any method that has this | | | */ -/* flag can be used statically and non statically. | | | */ -#define ZEND_ACC_ALLOW_STATIC (1 << 17) /* | X | | */ -/* | | | */ -/* call through user function trampoline. e.g. | | | */ -/* __call, __callstatic | | | */ -#define ZEND_ACC_CALL_VIA_TRAMPOLINE (1 << 18) /* | X | | */ -/* | | | */ -/* disable inline caching | | | */ -#define ZEND_ACC_NEVER_CACHE (1 << 19) /* | X | | */ -/* | | | */ -/* Closure related | | | */ -#define ZEND_ACC_CLOSURE (1 << 20) /* | X | | */ -#define ZEND_ACC_FAKE_CLOSURE (1 << 21) /* | X | | */ -/* | | | */ -/* run_time_cache allocated on heap (user only) | | | */ -#define ZEND_ACC_HEAP_RT_CACHE (1 << 22) /* | X | | */ -/* | | | */ -/* method flag used by Closure::__invoke() (int only) | | | */ -#define ZEND_ACC_USER_ARG_INFO (1 << 22) /* | X | | */ -/* | | | */ -#define ZEND_ACC_GENERATOR (1 << 24) /* | X | | */ -/* | | | */ -/* function was processed by pass two (user only) | | | */ -#define ZEND_ACC_DONE_PASS_TWO (1 << 25) /* | X | | */ -/* | | | */ -/* internal function is allocated at arena (int only) | | | */ -#define ZEND_ACC_ARENA_ALLOCATED (1 << 25) /* | X | | */ -/* | | | */ -/* op_array is a clone of trait method | | | */ -#define ZEND_ACC_TRAIT_CLONE (1 << 27) /* | X | | */ -/* | | | */ -/* functions is a constructor | | | */ -#define ZEND_ACC_CTOR (1 << 28) /* | X | | */ -/* | | | */ -/* function is a destructor | | | */ -#define ZEND_ACC_DTOR (1 << 29) /* | X | | */ -/* | | | */ -/* closure uses $this | | | */ -#define ZEND_ACC_USES_THIS (1 << 30) /* | X | | */ -/* | | | */ -/* op_array uses strict mode types | | | */ -#define ZEND_ACC_STRICT_TYPES (1U << 31) /* | X | | */ - - -#define ZEND_ACC_PPP_MASK (ZEND_ACC_PUBLIC | ZEND_ACC_PROTECTED | ZEND_ACC_PRIVATE) - -/* call through internal function handler. e.g. Closure::invoke() */ -#define ZEND_ACC_CALL_VIA_HANDLER ZEND_ACC_CALL_VIA_TRAMPOLINE - -char *zend_visibility_string(uint32_t fn_flags); - -typedef struct _zend_property_info { - uint32_t offset; /* property offset for object properties or - property index for static properties */ - uint32_t flags; - zend_string *name; - zend_string *doc_comment; - zend_class_entry *ce; - zend_type type; -} zend_property_info; - -#define OBJ_PROP(obj, offset) \ - ((zval*)((char*)(obj) + offset)) -#define OBJ_PROP_NUM(obj, num) \ - (&(obj)->properties_table[(num)]) -#define OBJ_PROP_TO_OFFSET(num) \ - ((uint32_t)(XtOffsetOf(zend_object, properties_table) + sizeof(zval) * (num))) -#define OBJ_PROP_TO_NUM(offset) \ - ((offset - OBJ_PROP_TO_OFFSET(0)) / sizeof(zval)) - -typedef struct _zend_class_constant { - zval value; /* access flags are stored in reserved: zval.u2.access_flags */ - zend_string *doc_comment; - zend_class_entry *ce; -} zend_class_constant; - -/* arg_info for internal functions */ -typedef struct _zend_internal_arg_info { - const char *name; - zend_type type; - zend_uchar pass_by_reference; - zend_bool is_variadic; -} zend_internal_arg_info; - -/* arg_info for user functions */ -typedef struct _zend_arg_info { - zend_string *name; - zend_type type; - zend_uchar pass_by_reference; - zend_bool is_variadic; -} zend_arg_info; - -/* the following structure repeats the layout of zend_internal_arg_info, - * but its fields have different meaning. It's used as the first element of - * arg_info array to define properties of internal functions. - * It's also used for the return type. - */ -typedef struct _zend_internal_function_info { - zend_uintptr_t required_num_args; - zend_type type; - zend_bool return_reference; - zend_bool _is_variadic; -} zend_internal_function_info; - -struct _zend_op_array { - /* Common elements */ - zend_uchar type; - zend_uchar arg_flags[3]; /* bitset of arg_info.pass_by_reference */ - uint32_t fn_flags; - zend_string *function_name; - zend_class_entry *scope; - zend_function *prototype; - uint32_t num_args; - uint32_t required_num_args; - zend_arg_info *arg_info; - /* END of common elements */ - - int cache_size; /* number of run_time_cache_slots * sizeof(void*) */ - int last_var; /* number of CV variables */ - uint32_t T; /* number of temporary variables */ - uint32_t last; /* number of opcodes */ - - zend_op *opcodes; - ZEND_MAP_PTR_DEF(void **, run_time_cache); - ZEND_MAP_PTR_DEF(HashTable *, static_variables_ptr); - HashTable *static_variables; - zend_string **vars; /* names of CV variables */ - - uint32_t *refcount; - - int last_live_range; - int last_try_catch; - zend_live_range *live_range; - zend_try_catch_element *try_catch_array; - - zend_string *filename; - uint32_t line_start; - uint32_t line_end; - zend_string *doc_comment; - - int last_literal; - zval *literals; - - void *reserved[ZEND_MAX_RESERVED_RESOURCES]; -}; - - -#define ZEND_RETURN_VALUE 0 -#define ZEND_RETURN_REFERENCE 1 - -/* zend_internal_function_handler */ -typedef void (ZEND_FASTCALL *zif_handler)(INTERNAL_FUNCTION_PARAMETERS); - -typedef struct _zend_internal_function { - /* Common elements */ - zend_uchar type; - zend_uchar arg_flags[3]; /* bitset of arg_info.pass_by_reference */ - uint32_t fn_flags; - zend_string* function_name; - zend_class_entry *scope; - zend_function *prototype; - uint32_t num_args; - uint32_t required_num_args; - zend_internal_arg_info *arg_info; - /* END of common elements */ - - zif_handler handler; - struct _zend_module_entry *module; - void *reserved[ZEND_MAX_RESERVED_RESOURCES]; -} zend_internal_function; - -#define ZEND_FN_SCOPE_NAME(function) ((function) && (function)->common.scope ? ZSTR_VAL((function)->common.scope->name) : "") - -union _zend_function { - zend_uchar type; /* MUST be the first element of this struct! */ - uint32_t quick_arg_flags; - - struct { - zend_uchar type; /* never used */ - zend_uchar arg_flags[3]; /* bitset of arg_info.pass_by_reference */ - uint32_t fn_flags; - zend_string *function_name; - zend_class_entry *scope; - zend_function *prototype; - uint32_t num_args; - uint32_t required_num_args; - zend_arg_info *arg_info; - } common; - - zend_op_array op_array; - zend_internal_function internal_function; -}; - -struct _zend_execute_data { - const zend_op *opline; /* executed opline */ - zend_execute_data *call; /* current call */ - zval *return_value; - zend_function *func; /* executed function */ - zval This; /* this + call_info + num_args */ - zend_execute_data *prev_execute_data; - zend_array *symbol_table; - void **run_time_cache; /* cache op_array->run_time_cache */ -}; - -#define ZEND_CALL_HAS_THIS IS_OBJECT_EX - -/* Top 16 bits of Z_TYPE_INFO(EX(This)) are used as call_info flags */ -#define ZEND_CALL_FUNCTION (0 << 16) -#define ZEND_CALL_CODE (1 << 16) -#define ZEND_CALL_NESTED (0 << 17) -#define ZEND_CALL_TOP (1 << 17) -#define ZEND_CALL_ALLOCATED (1 << 18) -#define ZEND_CALL_FREE_EXTRA_ARGS (1 << 19) -#define ZEND_CALL_HAS_SYMBOL_TABLE (1 << 20) -#define ZEND_CALL_RELEASE_THIS (1 << 21) -#define ZEND_CALL_CLOSURE (1 << 22) -#define ZEND_CALL_FAKE_CLOSURE (1 << 23) -#define ZEND_CALL_GENERATOR (1 << 24) -#define ZEND_CALL_DYNAMIC (1 << 25) -#define ZEND_CALL_SEND_ARG_BY_REF (1u << 31) - -#define ZEND_CALL_NESTED_FUNCTION (ZEND_CALL_FUNCTION | ZEND_CALL_NESTED) -#define ZEND_CALL_NESTED_CODE (ZEND_CALL_CODE | ZEND_CALL_NESTED) -#define ZEND_CALL_TOP_FUNCTION (ZEND_CALL_TOP | ZEND_CALL_FUNCTION) -#define ZEND_CALL_TOP_CODE (ZEND_CALL_CODE | ZEND_CALL_TOP) - -#define ZEND_CALL_INFO(call) \ - Z_TYPE_INFO((call)->This) - -#define ZEND_CALL_KIND_EX(call_info) \ - (call_info & (ZEND_CALL_CODE | ZEND_CALL_TOP)) - -#define ZEND_CALL_KIND(call) \ - ZEND_CALL_KIND_EX(ZEND_CALL_INFO(call)) - -#define ZEND_ADD_CALL_FLAG_EX(call_info, flag) do { \ - call_info |= (flag); \ - } while (0) - -#define ZEND_DEL_CALL_FLAG_EX(call_info, flag) do { \ - call_info &= ~(flag); \ - } while (0) - -#define ZEND_ADD_CALL_FLAG(call, flag) do { \ - ZEND_ADD_CALL_FLAG_EX(Z_TYPE_INFO((call)->This), flag); \ - } while (0) - -#define ZEND_DEL_CALL_FLAG(call, flag) do { \ - ZEND_DEL_CALL_FLAG_EX(Z_TYPE_INFO((call)->This), flag); \ - } while (0) - -#define ZEND_CALL_NUM_ARGS(call) \ - (call)->This.u2.num_args - -#define ZEND_CALL_FRAME_SLOT \ - ((int)((ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)) + ZEND_MM_ALIGNED_SIZE(sizeof(zval)) - 1) / ZEND_MM_ALIGNED_SIZE(sizeof(zval)))) - -#define ZEND_CALL_VAR(call, n) \ - ((zval*)(((char*)(call)) + ((int)(n)))) - -#define ZEND_CALL_VAR_NUM(call, n) \ - (((zval*)(call)) + (ZEND_CALL_FRAME_SLOT + ((int)(n)))) - -#define ZEND_CALL_ARG(call, n) \ - ZEND_CALL_VAR_NUM(call, ((int)(n)) - 1) - -#define EX(element) ((execute_data)->element) - -#define EX_CALL_INFO() ZEND_CALL_INFO(execute_data) -#define EX_CALL_KIND() ZEND_CALL_KIND(execute_data) -#define EX_NUM_ARGS() ZEND_CALL_NUM_ARGS(execute_data) - -#define ZEND_CALL_USES_STRICT_TYPES(call) \ - (((call)->func->common.fn_flags & ZEND_ACC_STRICT_TYPES) != 0) - -#define EX_USES_STRICT_TYPES() \ - ZEND_CALL_USES_STRICT_TYPES(execute_data) - -#define ZEND_ARG_USES_STRICT_TYPES() \ - (EG(current_execute_data)->prev_execute_data && \ - EG(current_execute_data)->prev_execute_data->func && \ - ZEND_CALL_USES_STRICT_TYPES(EG(current_execute_data)->prev_execute_data)) - -#define ZEND_RET_USES_STRICT_TYPES() \ - ZEND_CALL_USES_STRICT_TYPES(EG(current_execute_data)) - -#define EX_VAR(n) ZEND_CALL_VAR(execute_data, n) -#define EX_VAR_NUM(n) ZEND_CALL_VAR_NUM(execute_data, n) - -#define EX_VAR_TO_NUM(n) ((uint32_t)(ZEND_CALL_VAR(NULL, n) - ZEND_CALL_VAR_NUM(NULL, 0))) - -#define ZEND_OPLINE_TO_OFFSET(opline, target) \ - ((char*)(target) - (char*)(opline)) - -#define ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline_num) \ - ((char*)&(op_array)->opcodes[opline_num] - (char*)(opline)) - -#define ZEND_OFFSET_TO_OPLINE(base, offset) \ - ((zend_op*)(((char*)(base)) + (int)offset)) - -#define ZEND_OFFSET_TO_OPLINE_NUM(op_array, base, offset) \ - (ZEND_OFFSET_TO_OPLINE(base, offset) - op_array->opcodes) - -#if ZEND_USE_ABS_JMP_ADDR - -/* run-time jump target */ -# define OP_JMP_ADDR(opline, node) \ - (node).jmp_addr - -# define ZEND_SET_OP_JMP_ADDR(opline, node, val) do { \ - (node).jmp_addr = (val); \ - } while (0) - -/* convert jump target from compile-time to run-time */ -# define ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, node) do { \ - (node).jmp_addr = (op_array)->opcodes + (node).opline_num; \ - } while (0) - -/* convert jump target back from run-time to compile-time */ -# define ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, node) do { \ - (node).opline_num = (node).jmp_addr - (op_array)->opcodes; \ - } while (0) - -#else - -/* run-time jump target */ -# define OP_JMP_ADDR(opline, node) \ - ZEND_OFFSET_TO_OPLINE(opline, (node).jmp_offset) - -# define ZEND_SET_OP_JMP_ADDR(opline, node, val) do { \ - (node).jmp_offset = ZEND_OPLINE_TO_OFFSET(opline, val); \ - } while (0) - -/* convert jump target from compile-time to run-time */ -# define ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, node) do { \ - (node).jmp_offset = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, (node).opline_num); \ - } while (0) - -/* convert jump target back from run-time to compile-time */ -# define ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, node) do { \ - (node).opline_num = ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, (node).jmp_offset); \ - } while (0) - -#endif - -/* constant-time constant */ -# define CT_CONSTANT_EX(op_array, num) \ - ((op_array)->literals + (num)) - -# define CT_CONSTANT(node) \ - CT_CONSTANT_EX(CG(active_op_array), (node).constant) - -#if ZEND_USE_ABS_CONST_ADDR - -/* run-time constant */ -# define RT_CONSTANT(opline, node) \ - (node).zv - -/* convert constant from compile-time to run-time */ -# define ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, node) do { \ - (node).zv = CT_CONSTANT_EX(op_array, (node).constant); \ - } while (0) - -#else - -/* At run-time, constants are allocated together with op_array->opcodes - * and addressed relatively to current opline. - */ - -/* run-time constant */ -# define RT_CONSTANT(opline, node) \ - ((zval*)(((char*)(opline)) + (int32_t)(node).constant)) - -/* convert constant from compile-time to run-time */ -# define ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline, node) do { \ - (node).constant = \ - (((char*)CT_CONSTANT_EX(op_array, (node).constant)) - \ - ((char*)opline)); \ - } while (0) - -#endif - -/* convert constant back from run-time to compile-time */ -#define ZEND_PASS_TWO_UNDO_CONSTANT(op_array, opline, node) do { \ - (node).constant = RT_CONSTANT(opline, node) - (op_array)->literals; \ - } while (0) - -#define RUN_TIME_CACHE(op_array) \ - ZEND_MAP_PTR_GET((op_array)->run_time_cache) - -#define ZEND_OP_ARRAY_EXTENSION(op_array, handle) \ - ((void**)RUN_TIME_CACHE(op_array))[handle] - -#define IS_UNUSED 0 /* Unused operand */ -#define IS_CONST (1<<0) -#define IS_TMP_VAR (1<<1) -#define IS_VAR (1<<2) -#define IS_CV (1<<3) /* Compiled variable */ - -#define ZEND_EXTRA_VALUE 1 - -#include "zend_globals.h" - -BEGIN_EXTERN_C() - -void init_compiler(void); -void shutdown_compiler(void); -void zend_init_compiler_data_structures(void); - -void zend_oparray_context_begin(zend_oparray_context *prev_context); -void zend_oparray_context_end(zend_oparray_context *prev_context); -void zend_file_context_begin(zend_file_context *prev_context); -void zend_file_context_end(zend_file_context *prev_context); - -extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type); -extern ZEND_API zend_op_array *(*zend_compile_string)(zval *source_string, char *filename); - -ZEND_API int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem); -void startup_scanner(void); -void shutdown_scanner(void); - -ZEND_API zend_string *zend_set_compiled_filename(zend_string *new_compiled_filename); -ZEND_API void zend_restore_compiled_filename(zend_string *original_compiled_filename); -ZEND_API zend_string *zend_get_compiled_filename(void); -ZEND_API int zend_get_compiled_lineno(void); -ZEND_API size_t zend_get_scanned_file_offset(void); - -ZEND_API zend_string *zend_get_compiled_variable_name(const zend_op_array *op_array, uint32_t var); - -#ifdef ZTS -const char *zend_get_zendtext(void); -int zend_get_zendleng(void); -#endif - -typedef int (ZEND_FASTCALL *unary_op_type)(zval *, zval *); -typedef int (ZEND_FASTCALL *binary_op_type)(zval *, zval *, zval *); - -ZEND_API unary_op_type get_unary_op(int opcode); -ZEND_API binary_op_type get_binary_op(int opcode); - -void zend_stop_lexing(void); -void zend_emit_final_return(int return_one); - -/* Used during AST construction */ -zend_ast *zend_ast_append_str(zend_ast *left, zend_ast *right); -zend_ast *zend_negate_num_string(zend_ast *ast); -uint32_t zend_add_class_modifier(uint32_t flags, uint32_t new_flag); -uint32_t zend_add_member_modifier(uint32_t flags, uint32_t new_flag); -zend_bool zend_handle_encoding_declaration(zend_ast *ast); - -/* parser-driven code generators */ -void zend_do_free(znode *op1); - -ZEND_API int do_bind_function(zval *lcname); -ZEND_API int do_bind_class(zval *lcname, zend_string *lc_parent_name); -ZEND_API uint32_t zend_build_delayed_early_binding_list(const zend_op_array *op_array); -ZEND_API void zend_do_delayed_early_binding(zend_op_array *op_array, uint32_t first_early_binding_opline); - -void zend_do_extended_info(void); -void zend_do_extended_fcall_begin(void); -void zend_do_extended_fcall_end(void); - -void zend_verify_namespace(void); - -void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline); - -ZEND_API void function_add_ref(zend_function *function); - -#define INITIAL_OP_ARRAY_SIZE 64 - - -/* helper functions in zend_language_scanner.l */ -ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type); -ZEND_API zend_op_array *compile_string(zval *source_string, char *filename); -ZEND_API zend_op_array *compile_filename(int type, zval *filename); -ZEND_API int zend_execute_scripts(int type, zval *retval, int file_count, ...); -ZEND_API int open_file_for_scanning(zend_file_handle *file_handle); -ZEND_API void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_size); -ZEND_API void destroy_op_array(zend_op_array *op_array); -ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle); -ZEND_API void zend_cleanup_internal_class_data(zend_class_entry *ce); -ZEND_API void zend_cleanup_internal_classes(void); - -ZEND_API ZEND_COLD void zend_user_exception_handler(void); - -#define zend_try_exception_handler() do { \ - if (UNEXPECTED(EG(exception))) { \ - if (Z_TYPE(EG(user_exception_handler)) != IS_UNDEF) { \ - zend_user_exception_handler(); \ - } \ - } \ - } while (0) - -void zend_free_internal_arg_info(zend_internal_function *function); -ZEND_API void destroy_zend_function(zend_function *function); -ZEND_API void zend_function_dtor(zval *zv); -ZEND_API void destroy_zend_class(zval *zv); -void zend_class_add_ref(zval *zv); - -ZEND_API zend_string *zend_mangle_property_name(const char *src1, size_t src1_length, const char *src2, size_t src2_length, int internal); -#define zend_unmangle_property_name(mangled_property, class_name, prop_name) \ - zend_unmangle_property_name_ex(mangled_property, class_name, prop_name, NULL) -ZEND_API int zend_unmangle_property_name_ex(const zend_string *name, const char **class_name, const char **prop_name, size_t *prop_len); - -static zend_always_inline const char *zend_get_unmangled_property_name(const zend_string *mangled_prop) { - const char *class_name, *prop_name; - zend_unmangle_property_name(mangled_prop, &class_name, &prop_name); - return prop_name; -} - -#define ZEND_FUNCTION_DTOR zend_function_dtor -#define ZEND_CLASS_DTOR destroy_zend_class - -typedef zend_bool (*zend_needs_live_range_cb)(zend_op_array *op_array, zend_op *opline); -ZEND_API void zend_recalc_live_ranges( - zend_op_array *op_array, zend_needs_live_range_cb needs_live_range); - -ZEND_API int pass_two(zend_op_array *op_array); -ZEND_API zend_bool zend_is_compiling(void); -ZEND_API char *zend_make_compiled_string_description(const char *name); -ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers); -uint32_t zend_get_class_fetch_type(zend_string *name); -ZEND_API zend_uchar zend_get_call_op(const zend_op *init_op, zend_function *fbc); -ZEND_API int zend_is_smart_branch(zend_op *opline); - -typedef zend_bool (*zend_auto_global_callback)(zend_string *name); -typedef struct _zend_auto_global { - zend_string *name; - zend_auto_global_callback auto_global_callback; - zend_bool jit; - zend_bool armed; -} zend_auto_global; - -ZEND_API int zend_register_auto_global(zend_string *name, zend_bool jit, zend_auto_global_callback auto_global_callback); -ZEND_API void zend_activate_auto_globals(void); -ZEND_API zend_bool zend_is_auto_global(zend_string *name); -ZEND_API zend_bool zend_is_auto_global_str(char *name, size_t len); -ZEND_API size_t zend_dirname(char *path, size_t len); -ZEND_API void zend_set_function_arg_flags(zend_function *func); - -int ZEND_FASTCALL zendlex(zend_parser_stack_elem *elem); - -void zend_assert_valid_class_name(const zend_string *const_name); - -/* BEGIN: OPCODES */ - -#include "zend_vm_opcodes.h" - -/* END: OPCODES */ - -/* class fetches */ -#define ZEND_FETCH_CLASS_DEFAULT 0 -#define ZEND_FETCH_CLASS_SELF 1 -#define ZEND_FETCH_CLASS_PARENT 2 -#define ZEND_FETCH_CLASS_STATIC 3 -#define ZEND_FETCH_CLASS_AUTO 4 -#define ZEND_FETCH_CLASS_INTERFACE 5 -#define ZEND_FETCH_CLASS_TRAIT 6 -#define ZEND_FETCH_CLASS_MASK 0x0f -#define ZEND_FETCH_CLASS_NO_AUTOLOAD 0x80 -#define ZEND_FETCH_CLASS_SILENT 0x0100 -#define ZEND_FETCH_CLASS_EXCEPTION 0x0200 -#define ZEND_FETCH_CLASS_ALLOW_UNLINKED 0x0400 -#define ZEND_FETCH_CLASS_ALLOW_NEARLY_LINKED 0x0800 - -#define ZEND_PARAM_REF (1<<0) -#define ZEND_PARAM_VARIADIC (1<<1) - -#define ZEND_NAME_FQ 0 -#define ZEND_NAME_NOT_FQ 1 -#define ZEND_NAME_RELATIVE 2 - -#define ZEND_TYPE_NULLABLE (1<<8) - -#define ZEND_ARRAY_SYNTAX_LIST 1 /* list() */ -#define ZEND_ARRAY_SYNTAX_LONG 2 /* array() */ -#define ZEND_ARRAY_SYNTAX_SHORT 3 /* [] */ - -/* var status for backpatching */ -#define BP_VAR_R 0 -#define BP_VAR_W 1 -#define BP_VAR_RW 2 -#define BP_VAR_IS 3 -#define BP_VAR_FUNC_ARG 4 -#define BP_VAR_UNSET 5 - -#define ZEND_INTERNAL_FUNCTION 1 -#define ZEND_USER_FUNCTION 2 -#define ZEND_OVERLOADED_FUNCTION 3 -#define ZEND_EVAL_CODE 4 -#define ZEND_OVERLOADED_FUNCTION_TEMPORARY 5 - -/* A quick check (type == ZEND_USER_FUNCTION || type == ZEND_EVAL_CODE) */ -#define ZEND_USER_CODE(type) ((type & 1) == 0) - -#define ZEND_INTERNAL_CLASS 1 -#define ZEND_USER_CLASS 2 - -#define ZEND_EVAL (1<<0) -#define ZEND_INCLUDE (1<<1) -#define ZEND_INCLUDE_ONCE (1<<2) -#define ZEND_REQUIRE (1<<3) -#define ZEND_REQUIRE_ONCE (1<<4) - -/* global/local fetches */ -#define ZEND_FETCH_GLOBAL (1<<1) -#define ZEND_FETCH_LOCAL (1<<2) -#define ZEND_FETCH_GLOBAL_LOCK (1<<3) - -#define ZEND_FETCH_TYPE_MASK 0xe - -/* Only one of these can ever be in use */ -#define ZEND_FETCH_REF 1 -#define ZEND_FETCH_DIM_WRITE 2 -#define ZEND_FETCH_OBJ_WRITE 3 -#define ZEND_FETCH_OBJ_FLAGS 3 - -#define ZEND_ISEMPTY (1<<0) - -#define ZEND_LAST_CATCH (1<<0) - -#define ZEND_FREE_ON_RETURN (1<<0) -#define ZEND_FREE_SWITCH (1<<1) - -#define ZEND_SEND_BY_VAL 0u -#define ZEND_SEND_BY_REF 1u -#define ZEND_SEND_PREFER_REF 2u - -#define ZEND_DIM_IS (1 << 0) /* isset fetch needed for null coalesce */ -#define ZEND_DIM_ALTERNATIVE_SYNTAX (1 << 1) /* deprecated curly brace usage */ - -#define IS_CONSTANT_UNQUALIFIED 0x010 -#define IS_CONSTANT_CLASS 0x080 /* __CLASS__ in trait */ -#define IS_CONSTANT_IN_NAMESPACE 0x100 - -static zend_always_inline int zend_check_arg_send_type(const zend_function *zf, uint32_t arg_num, uint32_t mask) -{ - arg_num--; - if (UNEXPECTED(arg_num >= zf->common.num_args)) { - if (EXPECTED((zf->common.fn_flags & ZEND_ACC_VARIADIC) == 0)) { - return 0; - } - arg_num = zf->common.num_args; - } - return UNEXPECTED((zf->common.arg_info[arg_num].pass_by_reference & mask) != 0); -} - -#define ARG_MUST_BE_SENT_BY_REF(zf, arg_num) \ - zend_check_arg_send_type(zf, arg_num, ZEND_SEND_BY_REF) - -#define ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num) \ - zend_check_arg_send_type(zf, arg_num, ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF) - -#define ARG_MAY_BE_SENT_BY_REF(zf, arg_num) \ - zend_check_arg_send_type(zf, arg_num, ZEND_SEND_PREFER_REF) - -/* Quick API to check first 12 arguments */ -#define MAX_ARG_FLAG_NUM 12 - -#ifdef WORDS_BIGENDIAN -# define ZEND_SET_ARG_FLAG(zf, arg_num, mask) do { \ - (zf)->quick_arg_flags |= ((mask) << ((arg_num) - 1) * 2); \ - } while (0) -# define ZEND_CHECK_ARG_FLAG(zf, arg_num, mask) \ - (((zf)->quick_arg_flags >> (((arg_num) - 1) * 2)) & (mask)) -#else -# define ZEND_SET_ARG_FLAG(zf, arg_num, mask) do { \ - (zf)->quick_arg_flags |= (((mask) << 6) << (arg_num) * 2); \ - } while (0) -# define ZEND_CHECK_ARG_FLAG(zf, arg_num, mask) \ - (((zf)->quick_arg_flags >> (((arg_num) + 3) * 2)) & (mask)) -#endif - -#define QUICK_ARG_MUST_BE_SENT_BY_REF(zf, arg_num) \ - ZEND_CHECK_ARG_FLAG(zf, arg_num, ZEND_SEND_BY_REF) - -#define QUICK_ARG_SHOULD_BE_SENT_BY_REF(zf, arg_num) \ - ZEND_CHECK_ARG_FLAG(zf, arg_num, ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF) - -#define QUICK_ARG_MAY_BE_SENT_BY_REF(zf, arg_num) \ - ZEND_CHECK_ARG_FLAG(zf, arg_num, ZEND_SEND_PREFER_REF) - -#define ZEND_RETURN_VAL 0 -#define ZEND_RETURN_REF 1 - -#define ZEND_BIND_VAL 0 -#define ZEND_BIND_REF 1 -#define ZEND_BIND_IMPLICIT 2 - -#define ZEND_RETURNS_FUNCTION (1<<0) -#define ZEND_RETURNS_VALUE (1<<1) - -#define ZEND_ARRAY_ELEMENT_REF (1<<0) -#define ZEND_ARRAY_NOT_PACKED (1<<1) -#define ZEND_ARRAY_SIZE_SHIFT 2 - -/* Attribute for ternary inside parentheses */ -#define ZEND_PARENTHESIZED_CONDITIONAL 1 - -/* For "use" AST nodes and the seen symbol table */ -#define ZEND_SYMBOL_CLASS (1<<0) -#define ZEND_SYMBOL_FUNCTION (1<<1) -#define ZEND_SYMBOL_CONST (1<<2) - -/* All increment opcodes are even (decrement are odd) */ -#define ZEND_IS_INCREMENT(opcode) (((opcode) & 1) == 0) - -#define ZEND_IS_BINARY_ASSIGN_OP_OPCODE(opcode) \ - (((opcode) >= ZEND_ADD) && ((opcode) <= ZEND_POW)) - -/* Pseudo-opcodes that are used only temporarily during compilation */ -#define ZEND_PARENTHESIZED_CONCAT 252 /* removed with PHP 8 */ -#define ZEND_GOTO 253 -#define ZEND_BRK 254 -#define ZEND_CONT 255 - -END_EXTERN_C() - -#define ZEND_CLONE_FUNC_NAME "__clone" -#define ZEND_CONSTRUCTOR_FUNC_NAME "__construct" -#define ZEND_DESTRUCTOR_FUNC_NAME "__destruct" -#define ZEND_GET_FUNC_NAME "__get" -#define ZEND_SET_FUNC_NAME "__set" -#define ZEND_UNSET_FUNC_NAME "__unset" -#define ZEND_ISSET_FUNC_NAME "__isset" -#define ZEND_CALL_FUNC_NAME "__call" -#define ZEND_CALLSTATIC_FUNC_NAME "__callstatic" -#define ZEND_TOSTRING_FUNC_NAME "__tostring" -#define ZEND_AUTOLOAD_FUNC_NAME "__autoload" -#define ZEND_INVOKE_FUNC_NAME "__invoke" -#define ZEND_DEBUGINFO_FUNC_NAME "__debuginfo" - -/* The following constants may be combined in CG(compiler_options) - * to change the default compiler behavior */ - -/* generate extended debug information */ -#define ZEND_COMPILE_EXTENDED_STMT (1<<0) -#define ZEND_COMPILE_EXTENDED_FCALL (1<<1) -#define ZEND_COMPILE_EXTENDED_INFO (ZEND_COMPILE_EXTENDED_STMT|ZEND_COMPILE_EXTENDED_FCALL) - -/* call op_array handler of extendions */ -#define ZEND_COMPILE_HANDLE_OP_ARRAY (1<<2) - -/* generate ZEND_INIT_FCALL_BY_NAME for internal functions instead of ZEND_INIT_FCALL */ -#define ZEND_COMPILE_IGNORE_INTERNAL_FUNCTIONS (1<<3) - -/* don't perform early binding for classes inherited form internal ones; - * in namespaces assume that internal class that doesn't exist at compile-time - * may apper in run-time */ -#define ZEND_COMPILE_IGNORE_INTERNAL_CLASSES (1<<4) - -/* generate ZEND_DECLARE_CLASS_DELAYED opcode to delay early binding */ -#define ZEND_COMPILE_DELAYED_BINDING (1<<5) - -/* disable constant substitution at compile-time */ -#define ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION (1<<6) - -/* disable usage of builtin instruction for strlen() */ -#define ZEND_COMPILE_NO_BUILTIN_STRLEN (1<<7) - -/* disable substitution of persistent constants at compile-time */ -#define ZEND_COMPILE_NO_PERSISTENT_CONSTANT_SUBSTITUTION (1<<8) - -/* generate ZEND_INIT_FCALL_BY_NAME for userland functions instead of ZEND_INIT_FCALL */ -#define ZEND_COMPILE_IGNORE_USER_FUNCTIONS (1<<9) - -/* force ZEND_ACC_USE_GUARDS for all classes */ -#define ZEND_COMPILE_GUARDS (1<<10) - -/* disable builtin special case function calls */ -#define ZEND_COMPILE_NO_BUILTINS (1<<11) - -/* result of compilation may be stored in file cache */ -#define ZEND_COMPILE_WITH_FILE_CACHE (1<<12) - -/* ignore functions and classes declared in other files */ -#define ZEND_COMPILE_IGNORE_OTHER_FILES (1<<13) - -/* this flag is set when compiler invoked by opcache_compile_file() */ -#define ZEND_COMPILE_WITHOUT_EXECUTION (1<<14) - -/* this flag is set when compiler invoked during preloading */ -#define ZEND_COMPILE_PRELOAD (1<<15) - -/* disable jumptable optimization for switch statements */ -#define ZEND_COMPILE_NO_JUMPTABLES (1<<16) - -/* this flag is set when compiler invoked during preloading in separate process */ -#define ZEND_COMPILE_PRELOAD_IN_CHILD (1<<17) - -/* The default value for CG(compiler_options) */ -#define ZEND_COMPILE_DEFAULT ZEND_COMPILE_HANDLE_OP_ARRAY - -/* The default value for CG(compiler_options) during eval() */ -#define ZEND_COMPILE_DEFAULT_FOR_EVAL 0 - -ZEND_API zend_bool zend_binary_op_produces_numeric_string_error(uint32_t opcode, zval *op1, zval *op2); - -#endif /* ZEND_COMPILE_H */ diff --git a/include/php/Zend/zend_config.h b/include/php/Zend/zend_config.h deleted file mode 100644 index 325c7b5..0000000 --- a/include/php/Zend/zend_config.h +++ /dev/null @@ -1 +0,0 @@ -#include <../main/php_config.h> diff --git a/include/php/Zend/zend_config.w32.h b/include/php/Zend/zend_config.w32.h deleted file mode 100644 index 19a5165..0000000 --- a/include/php/Zend/zend_config.w32.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_CONFIG_W32_H -#define ZEND_CONFIG_W32_H - -#include <../main/config.w32.h> - -#define _CRTDBG_MAP_ALLOC - -#include -#include -#include - -#include - -#ifndef ZEND_INCLUDE_FULL_WINDOWS_HEADERS -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include - -#include - -#define HAVE_STDIOSTR_H 1 -#define HAVE_CLASS_ISTDIOSTREAM -#define istdiostream stdiostream - -#if _MSC_VER < 1900 -#define snprintf _snprintf -#endif -#define strcasecmp(s1, s2) _stricmp(s1, s2) -#define strncasecmp(s1, s2, n) _strnicmp(s1, s2, n) -#if defined(__cplusplus) && __cplusplus >= 201103L -extern "C++" { -#include -#define zend_isnan std::isnan -#define zend_isinf std::isinf -#define zend_finite std::isfinite -} -#else -#define zend_isinf(a) ((_fpclass(a) == _FPCLASS_PINF) || (_fpclass(a) == _FPCLASS_NINF)) -#define zend_finite(x) _finite(x) -#define zend_isnan(x) _isnan(x) -#endif - -#ifndef __cplusplus -/* This will cause the compilation process to be MUCH longer, but will generate - * a much quicker PHP binary - */ -#ifdef ZEND_WIN32_FORCE_INLINE -# undef inline -# define inline __forceinline -#endif -#endif - -#ifdef LIBZEND_EXPORTS -# define ZEND_API __declspec(dllexport) -#else -# define ZEND_API __declspec(dllimport) -#endif - -#define ZEND_DLEXPORT __declspec(dllexport) -#define ZEND_DLIMPORT __declspec(dllimport) - -#endif /* ZEND_CONFIG_W32_H */ diff --git a/include/php/Zend/zend_constants.h b/include/php/Zend/zend_constants.h deleted file mode 100644 index ba0c798..0000000 --- a/include/php/Zend/zend_constants.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_CONSTANTS_H -#define ZEND_CONSTANTS_H - -#include "zend_globals.h" - -#define CONST_CS (1<<0) /* Case Sensitive */ -#define CONST_PERSISTENT (1<<1) /* Persistent */ -#define CONST_CT_SUBST (1<<2) /* Allow compile-time substitution */ -#define CONST_NO_FILE_CACHE (1<<3) /* Can't be saved in file cache */ - -#define PHP_USER_CONSTANT 0x7fffff /* a constant defined in user space */ - -/* Flag for zend_get_constant_ex(). Must not class with ZEND_FETCH_CLASS_* flags. */ -#define ZEND_GET_CONSTANT_NO_DEPRECATION_CHECK 0x1000 - -typedef struct _zend_constant { - zval value; - zend_string *name; -} zend_constant; - -#define ZEND_CONSTANT_FLAGS(c) \ - (Z_CONSTANT_FLAGS((c)->value) & 0xff) - -#define ZEND_CONSTANT_MODULE_NUMBER(c) \ - (Z_CONSTANT_FLAGS((c)->value) >> 8) - -#define ZEND_CONSTANT_SET_FLAGS(c, _flags, _module_number) do { \ - Z_CONSTANT_FLAGS((c)->value) = \ - ((_flags) & 0xff) | ((_module_number) << 8); \ - } while (0) - -#define REGISTER_NULL_CONSTANT(name, flags) zend_register_null_constant((name), sizeof(name)-1, (flags), module_number) -#define REGISTER_BOOL_CONSTANT(name, bval, flags) zend_register_bool_constant((name), sizeof(name)-1, (bval), (flags), module_number) -#define REGISTER_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number) -#define REGISTER_DOUBLE_CONSTANT(name, dval, flags) zend_register_double_constant((name), sizeof(name)-1, (dval), (flags), module_number) -#define REGISTER_STRING_CONSTANT(name, str, flags) zend_register_string_constant((name), sizeof(name)-1, (str), (flags), module_number) -#define REGISTER_STRINGL_CONSTANT(name, str, len, flags) zend_register_stringl_constant((name), sizeof(name)-1, (str), (len), (flags), module_number) - -#define REGISTER_NS_NULL_CONSTANT(ns, name, flags) zend_register_null_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (flags), module_number) -#define REGISTER_NS_BOOL_CONSTANT(ns, name, bval, flags) zend_register_bool_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (bval), (flags), module_number) -#define REGISTER_NS_LONG_CONSTANT(ns, name, lval, flags) zend_register_long_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (lval), (flags), module_number) -#define REGISTER_NS_DOUBLE_CONSTANT(ns, name, dval, flags) zend_register_double_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (dval), (flags), module_number) -#define REGISTER_NS_STRING_CONSTANT(ns, name, str, flags) zend_register_string_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (str), (flags), module_number) -#define REGISTER_NS_STRINGL_CONSTANT(ns, name, str, len, flags) zend_register_stringl_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (str), (len), (flags), module_number) - -#define REGISTER_MAIN_NULL_CONSTANT(name, flags) zend_register_null_constant((name), sizeof(name)-1, (flags), 0) -#define REGISTER_MAIN_BOOL_CONSTANT(name, bval, flags) zend_register_bool_constant((name), sizeof(name)-1, (bval), (flags), 0) -#define REGISTER_MAIN_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), 0) -#define REGISTER_MAIN_DOUBLE_CONSTANT(name, dval, flags) zend_register_double_constant((name), sizeof(name)-1, (dval), (flags), 0) -#define REGISTER_MAIN_STRING_CONSTANT(name, str, flags) zend_register_string_constant((name), sizeof(name)-1, (str), (flags), 0) -#define REGISTER_MAIN_STRINGL_CONSTANT(name, str, len, flags) zend_register_stringl_constant((name), sizeof(name)-1, (str), (len), (flags), 0) - -BEGIN_EXTERN_C() -void clean_module_constants(int module_number); -void free_zend_constant(zval *zv); -int zend_startup_constants(void); -int zend_shutdown_constants(void); -void zend_register_standard_constants(void); -ZEND_API int zend_verify_const_access(zend_class_constant *c, zend_class_entry *ce); -ZEND_API zval *zend_get_constant(zend_string *name); -ZEND_API zval *zend_get_constant_str(const char *name, size_t name_len); -ZEND_API zval *zend_get_constant_ex(zend_string *name, zend_class_entry *scope, uint32_t flags); -ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, zend_bool bval, int flags, int module_number); -ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int flags, int module_number); -ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zend_long lval, int flags, int module_number); -ZEND_API void zend_register_double_constant(const char *name, size_t name_len, double dval, int flags, int module_number); -ZEND_API void zend_register_string_constant(const char *name, size_t name_len, char *strval, int flags, int module_number); -ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len, char *strval, size_t strlen, int flags, int module_number); -ZEND_API int zend_register_constant(zend_constant *c); -#ifdef ZTS -void zend_copy_constants(HashTable *target, HashTable *sourc); -#endif -END_EXTERN_C() - -#define ZEND_CONSTANT_DTOR free_zend_constant - -#endif diff --git a/include/php/Zend/zend_cpuinfo.h b/include/php/Zend/zend_cpuinfo.h deleted file mode 100644 index c0949e3..0000000 --- a/include/php/Zend/zend_cpuinfo.h +++ /dev/null @@ -1,209 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Xinchen Hui | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_CPU_INFO_H -#define ZEND_CPU_INFO_H - -#include "zend.h" - -#define ZEND_CPU_EBX_MASK (1<<30) -#define ZEND_CPU_EDX_MASK (1U<<31) - -typedef enum _zend_cpu_feature { - /* ECX */ - ZEND_CPU_FEATURE_SSE3 = (1<<0), - ZEND_CPU_FEATURE_PCLMULQDQ = (1<<1), - ZEND_CPU_FEATURE_DTES64 = (1<<2), - ZEND_CPU_FEATURE_MONITOR = (1<<3), - ZEND_CPU_FEATURE_DSCPL = (1<<4), - ZEND_CPU_FEATURE_VMX = (1<<5), - ZEND_CPU_FEATURE_SMX = (1<<6), - ZEND_CPU_FEATURE_EST = (1<<7), - ZEND_CPU_FEATURE_TM2 = (1<<8), - ZEND_CPU_FEATURE_SSSE3 = (1<<9), - ZEND_CPU_FEATURE_CID = (1<<10), - ZEND_CPU_FEATURE_SDBG = (1<<11), - ZEND_CPU_FEATURE_FMA = (1<<12), - ZEND_CPU_FEATURE_CX16 = (1<<13), - ZEND_CPU_FEATURE_XTPR = (1<<14), - ZEND_CPU_FEATURE_PDCM = (1<<15), - /* reserved = (1<<16),*/ - ZEND_CPU_FEATURE_PCID = (1<<17), - ZEND_CPU_FEATURE_DCA = (1<<18), - ZEND_CPU_FEATURE_SSE41 = (1<<19), - ZEND_CPU_FEATURE_SSE42 = (1<<20), - ZEND_CPU_FEATURE_X2APIC = (1<<21), - ZEND_CPU_FEATURE_MOVBE = (1<<22), - ZEND_CPU_FEATURE_POPCNT = (1<<23), - ZEND_CPU_FEATURE_TSC_DEADLINE = (1<<24), - ZEND_CPU_FEATURE_AES = (1<<25), - ZEND_CPU_FEATURE_XSAVE = (1<<26), - ZEND_CPU_FEATURE_OSXSAVE = (1<<27) , - ZEND_CPU_FEATURE_AVX = (1<<28), - ZEND_CPU_FEATURE_F16C = (1<<29), - /* intentionally don't support = (1<<30) */ - /* intentionally don't support = (1<<31) */ - - /* EBX */ - ZEND_CPU_FEATURE_AVX2 = (1<<5 | ZEND_CPU_EBX_MASK), - - /* EDX */ - ZEND_CPU_FEATURE_FPU = (1<<0 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_VME = (1<<1 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_DE = (1<<2 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_PSE = (1<<3 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_TSC = (1<<4 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_MSR = (1<<5 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_PAE = (1<<6 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_MCE = (1<<7 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_CX8 = (1<<8 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_APIC = (1<<9 | ZEND_CPU_EDX_MASK), - /* reserved = (1<<10 | ZEND_CPU_EDX_MASK),*/ - ZEND_CPU_FEATURE_SEP = (1<<11 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_MTRR = (1<<12 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_PGE = (1<<13 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_MCA = (1<<14 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_CMOV = (1<<15 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_PAT = (1<<16 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_PSE36 = (1<<17 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_PN = (1<<18 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_CLFLUSH = (1<<19 | ZEND_CPU_EDX_MASK), - /* reserved = (1<<20 | ZEND_CPU_EDX_MASK),*/ - ZEND_CPU_FEATURE_DS = (1<<21 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_ACPI = (1<<22 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_MMX = (1<<23 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_FXSR = (1<<24 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_SSE = (1<<25 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_SSE2 = (1<<26 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_SS = (1<<27 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_HT = (1<<28 | ZEND_CPU_EDX_MASK), - ZEND_CPU_FEATURE_TM = (1<<29 | ZEND_CPU_EDX_MASK) - /*intentionally don't support = (1<<30 | ZEND_CPU_EDX_MASK)*/ - /*intentionally don't support = (1<<31 | ZEND_CPU_EDX_MASK)*/ -} zend_cpu_feature; - -void zend_cpu_startup(); -ZEND_API int zend_cpu_supports(zend_cpu_feature feature); - -#ifndef __has_attribute -# define __has_attribute(x) 0 -#endif - -/* Address sanitizer is incompatible with ifunc resolvers, so exclude the - * CPU support helpers from asan. - * See also https://github.com/google/sanitizers/issues/342. */ -#if __has_attribute(no_sanitize_address) -# define ZEND_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address)) -#else -# define ZEND_NO_SANITIZE_ADDRESS -#endif - -#if PHP_HAVE_BUILTIN_CPU_SUPPORTS -/* NOTE: you should use following inline function in - * resolver functions (ifunc), as it could be called - * before all PLT symbols are resolved. in other words, - * resolver functions should not depend on any external - * functions */ -ZEND_NO_SANITIZE_ADDRESS -static zend_always_inline int zend_cpu_supports_sse2() { -#if PHP_HAVE_BUILTIN_CPU_INIT - __builtin_cpu_init(); -#endif - return __builtin_cpu_supports("sse2"); -} - -ZEND_NO_SANITIZE_ADDRESS -static zend_always_inline int zend_cpu_supports_sse3() { -#if PHP_HAVE_BUILTIN_CPU_INIT - __builtin_cpu_init(); -#endif - return __builtin_cpu_supports("sse3"); -} - -ZEND_NO_SANITIZE_ADDRESS -static zend_always_inline int zend_cpu_supports_ssse3() { -#if PHP_HAVE_BUILTIN_CPU_INIT - __builtin_cpu_init(); -#endif - return __builtin_cpu_supports("ssse3"); -} - -ZEND_NO_SANITIZE_ADDRESS -static zend_always_inline int zend_cpu_supports_sse41() { -#if PHP_HAVE_BUILTIN_CPU_INIT - __builtin_cpu_init(); -#endif - return __builtin_cpu_supports("sse4.1"); -} - -ZEND_NO_SANITIZE_ADDRESS -static zend_always_inline int zend_cpu_supports_sse42() { -#if PHP_HAVE_BUILTIN_CPU_INIT - __builtin_cpu_init(); -#endif - return __builtin_cpu_supports("sse4.2"); -} - -ZEND_NO_SANITIZE_ADDRESS -static zend_always_inline int zend_cpu_supports_avx() { -#if PHP_HAVE_BUILTIN_CPU_INIT - __builtin_cpu_init(); -#endif - return __builtin_cpu_supports("avx"); -} - -ZEND_NO_SANITIZE_ADDRESS -static zend_always_inline int zend_cpu_supports_avx2() { -#if PHP_HAVE_BUILTIN_CPU_INIT - __builtin_cpu_init(); -#endif - return __builtin_cpu_supports("avx2"); -} -#else - -static zend_always_inline int zend_cpu_supports_sse2() { - return zend_cpu_supports(ZEND_CPU_FEATURE_SSE2); -} - -static zend_always_inline int zend_cpu_supports_sse3() { - return zend_cpu_supports(ZEND_CPU_FEATURE_SSE3); -} - -static zend_always_inline int zend_cpu_supports_ssse3() { - return zend_cpu_supports(ZEND_CPU_FEATURE_SSSE3); -} - -static zend_always_inline int zend_cpu_supports_sse41() { - return zend_cpu_supports(ZEND_CPU_FEATURE_SSE41); -} - -static zend_always_inline int zend_cpu_supports_sse42() { - return zend_cpu_supports(ZEND_CPU_FEATURE_SSE42); -} - -static zend_always_inline int zend_cpu_supports_avx() { - return zend_cpu_supports(ZEND_CPU_FEATURE_AVX); -} - -static zend_always_inline int zend_cpu_supports_avx2() { - return zend_cpu_supports(ZEND_CPU_FEATURE_AVX2); -} - -#endif - -#endif diff --git a/include/php/Zend/zend_dtrace.h b/include/php/Zend/zend_dtrace.h deleted file mode 100644 index c4fedad..0000000 --- a/include/php/Zend/zend_dtrace.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: David Soria Parra | - +----------------------------------------------------------------------+ -*/ - -#ifndef _ZEND_DTRACE_H -#define _ZEND_DTRACE_H - -#ifndef ZEND_WIN32 -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef HAVE_DTRACE -ZEND_API extern zend_op_array *(*zend_dtrace_compile_file)(zend_file_handle *file_handle, int type); -ZEND_API extern void (*zend_dtrace_execute)(zend_op_array *op_array); -ZEND_API extern void (*zend_dtrace_execute_internal)(zend_execute_data *execute_data, zval *return_value); - -ZEND_API zend_op_array *dtrace_compile_file(zend_file_handle *file_handle, int type); -ZEND_API void dtrace_execute_ex(zend_execute_data *execute_data); -ZEND_API void dtrace_execute_internal(zend_execute_data *execute_data, zval *return_value); -#include - -#endif /* HAVE_DTRACE */ - -#ifdef __cplusplus -} -#endif - -#endif /* _ZEND_DTRACE_H */ diff --git a/include/php/Zend/zend_errors.h b/include/php/Zend/zend_errors.h deleted file mode 100644 index 441458c..0000000 --- a/include/php/Zend/zend_errors.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_ERRORS_H -#define ZEND_ERRORS_H - -#define E_ERROR (1<<0L) -#define E_WARNING (1<<1L) -#define E_PARSE (1<<2L) -#define E_NOTICE (1<<3L) -#define E_CORE_ERROR (1<<4L) -#define E_CORE_WARNING (1<<5L) -#define E_COMPILE_ERROR (1<<6L) -#define E_COMPILE_WARNING (1<<7L) -#define E_USER_ERROR (1<<8L) -#define E_USER_WARNING (1<<9L) -#define E_USER_NOTICE (1<<10L) -#define E_STRICT (1<<11L) -#define E_RECOVERABLE_ERROR (1<<12L) -#define E_DEPRECATED (1<<13L) -#define E_USER_DEPRECATED (1<<14L) - -#define E_ALL (E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_RECOVERABLE_ERROR | E_DEPRECATED | E_USER_DEPRECATED | E_STRICT) -#define E_CORE (E_CORE_ERROR | E_CORE_WARNING) - -#endif /* ZEND_ERRORS_H */ diff --git a/include/php/Zend/zend_exceptions.h b/include/php/Zend/zend_exceptions.h deleted file mode 100644 index 5f31c4b..0000000 --- a/include/php/Zend/zend_exceptions.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Marcus Boerger | - | Sterling Hughes | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_EXCEPTIONS_H -#define ZEND_EXCEPTIONS_H - -BEGIN_EXTERN_C() - -extern ZEND_API zend_class_entry *zend_ce_throwable; -extern ZEND_API zend_class_entry *zend_ce_exception; -extern ZEND_API zend_class_entry *zend_ce_error_exception; -extern ZEND_API zend_class_entry *zend_ce_error; -extern ZEND_API zend_class_entry *zend_ce_compile_error; -extern ZEND_API zend_class_entry *zend_ce_parse_error; -extern ZEND_API zend_class_entry *zend_ce_type_error; -extern ZEND_API zend_class_entry *zend_ce_argument_count_error; -extern ZEND_API zend_class_entry *zend_ce_arithmetic_error; -extern ZEND_API zend_class_entry *zend_ce_division_by_zero_error; - -ZEND_API void zend_exception_set_previous(zend_object *exception, zend_object *add_previous); -ZEND_API void zend_exception_save(void); -ZEND_API void zend_exception_restore(void); - -ZEND_API ZEND_COLD void zend_throw_exception_internal(zval *exception); - -void zend_register_default_exception(void); - -ZEND_API zend_class_entry *zend_get_exception_base(zval *object); - -/* Deprecated - Use zend_ce_exception directly instead */ -ZEND_API zend_class_entry *zend_exception_get_default(void); - -/* Deprecated - Use zend_ce_error_exception directly instead */ -ZEND_API zend_class_entry *zend_get_error_exception(void); - -ZEND_API void zend_register_default_classes(void); - -/* exception_ce NULL, zend_ce_exception, zend_ce_error, or a derived class - * message NULL or the message of the exception */ -ZEND_API ZEND_COLD zend_object *zend_throw_exception(zend_class_entry *exception_ce, const char *message, zend_long code); -ZEND_API ZEND_COLD zend_object *zend_throw_exception_ex(zend_class_entry *exception_ce, zend_long code, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4); -ZEND_API ZEND_COLD void zend_throw_exception_object(zval *exception); -ZEND_API void zend_clear_exception(void); - -ZEND_API zend_object *zend_throw_error_exception(zend_class_entry *exception_ce, const char *message, zend_long code, int severity); - -extern ZEND_API void (*zend_throw_exception_hook)(zval *ex); - -/* show an exception using zend_error(severity,...), severity should be E_ERROR */ -ZEND_API ZEND_COLD void zend_exception_error(zend_object *exception, int severity); - -#include "zend_globals.h" - -static zend_always_inline void zend_rethrow_exception(zend_execute_data *execute_data) -{ - if (EX(opline)->opcode != ZEND_HANDLE_EXCEPTION) { - EG(opline_before_exception) = EX(opline); - EX(opline) = EG(exception_op); - } -} - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_execute.h b/include/php/Zend/zend_execute.h deleted file mode 100644 index cb100f5..0000000 --- a/include/php/Zend/zend_execute.h +++ /dev/null @@ -1,435 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_EXECUTE_H -#define ZEND_EXECUTE_H - -#include "zend_compile.h" -#include "zend_hash.h" -#include "zend_operators.h" -#include "zend_variables.h" - -BEGIN_EXTERN_C() -struct _zend_fcall_info; -ZEND_API extern void (*zend_execute_ex)(zend_execute_data *execute_data); -ZEND_API extern void (*zend_execute_internal)(zend_execute_data *execute_data, zval *return_value); - -void init_executor(void); -void shutdown_executor(void); -void shutdown_destructors(void); -ZEND_API void zend_init_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value); -ZEND_API void zend_init_func_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value); -ZEND_API void zend_init_code_execute_data(zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value); -ZEND_API void zend_execute(zend_op_array *op_array, zval *return_value); -ZEND_API void execute_ex(zend_execute_data *execute_data); -ZEND_API void execute_internal(zend_execute_data *execute_data, zval *return_value); -ZEND_API zend_class_entry *zend_lookup_class(zend_string *name); -ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, zend_string *lcname, uint32_t flags); -ZEND_API zend_class_entry *zend_get_called_scope(zend_execute_data *ex); -ZEND_API zend_object *zend_get_this_object(zend_execute_data *ex); -ZEND_API int zend_eval_string(char *str, zval *retval_ptr, char *string_name); -ZEND_API int zend_eval_stringl(char *str, size_t str_len, zval *retval_ptr, char *string_name); -ZEND_API int zend_eval_string_ex(char *str, zval *retval_ptr, char *string_name, int handle_exceptions); -ZEND_API int zend_eval_stringl_ex(char *str, size_t str_len, zval *retval_ptr, char *string_name, int handle_exceptions); - -/* export zend_pass_function to allow comparisons against it */ -extern ZEND_API const zend_internal_function zend_pass_function; - -ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error(zend_execute_data *execute_data); - -ZEND_API zend_bool ZEND_FASTCALL zend_verify_ref_assignable_zval(zend_reference *ref, zval *zv, zend_bool strict); -ZEND_API zend_bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref(zend_property_info *prop_info, zval *orig_val, zend_bool strict); - -ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval(zend_property_info *prop, zval *zv); -ZEND_API ZEND_COLD void zend_throw_ref_type_error_type(zend_property_info *prop1, zend_property_info *prop2, zval *zv); - -#define ZEND_REF_TYPE_SOURCES(ref) \ - (ref)->sources - -#define ZEND_REF_HAS_TYPE_SOURCES(ref) \ - (ZEND_REF_TYPE_SOURCES(ref).ptr != NULL) - -#define ZEND_REF_FIRST_SOURCE(ref) \ - (ZEND_PROPERTY_INFO_SOURCE_IS_LIST((ref)->sources.list) \ - ? ZEND_PROPERTY_INFO_SOURCE_TO_LIST((ref)->sources.list)->ptr[0] \ - : (ref)->sources.ptr) - - -ZEND_API void ZEND_FASTCALL zend_ref_add_type_source(zend_property_info_source_list *source_list, zend_property_info *prop); -ZEND_API void ZEND_FASTCALL zend_ref_del_type_source(zend_property_info_source_list *source_list, zend_property_info *prop); - -ZEND_API zval* zend_assign_to_typed_ref(zval *variable_ptr, zval *value, zend_uchar value_type, zend_bool strict, zend_refcounted *ref); - -static zend_always_inline void zend_copy_to_variable(zval *variable_ptr, zval *value, zend_uchar value_type, zend_refcounted *ref) -{ - ZVAL_COPY_VALUE(variable_ptr, value); - if (ZEND_CONST_COND(value_type == IS_CONST, 0)) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(variable_ptr))) { - Z_ADDREF_P(variable_ptr); - } - } else if (value_type & (IS_CONST|IS_CV)) { - if (Z_OPT_REFCOUNTED_P(variable_ptr)) { - Z_ADDREF_P(variable_ptr); - } - } else if (ZEND_CONST_COND(value_type == IS_VAR, 1) && UNEXPECTED(ref)) { - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(variable_ptr)) { - Z_ADDREF_P(variable_ptr); - } - } -} - -static zend_always_inline zval* zend_assign_to_variable(zval *variable_ptr, zval *value, zend_uchar value_type, zend_bool strict) -{ - zend_refcounted *ref = NULL; - - if (ZEND_CONST_COND(value_type & (IS_VAR|IS_CV), 1) && Z_ISREF_P(value)) { - ref = Z_COUNTED_P(value); - value = Z_REFVAL_P(value); - } - - do { - if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr))) { - zend_refcounted *garbage; - - if (Z_ISREF_P(variable_ptr)) { - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(variable_ptr)))) { - return zend_assign_to_typed_ref(variable_ptr, value, value_type, strict, ref); - } - - variable_ptr = Z_REFVAL_P(variable_ptr); - if (EXPECTED(!Z_REFCOUNTED_P(variable_ptr))) { - break; - } - } - if (Z_TYPE_P(variable_ptr) == IS_OBJECT && - UNEXPECTED(Z_OBJ_HANDLER_P(variable_ptr, set) != NULL)) { - Z_OBJ_HANDLER_P(variable_ptr, set)(variable_ptr, value); - return variable_ptr; - } - garbage = Z_COUNTED_P(variable_ptr); - zend_copy_to_variable(variable_ptr, value, value_type, ref); - if (GC_DELREF(garbage) == 0) { - rc_dtor_func(garbage); - } else { /* we need to split */ - /* optimized version of GC_ZVAL_CHECK_POSSIBLE_ROOT(variable_ptr) */ - if (UNEXPECTED(GC_MAY_LEAK(garbage))) { - gc_possible_root(garbage); - } - } - return variable_ptr; - } - } while (0); - - zend_copy_to_variable(variable_ptr, value, value_type, ref); - return variable_ptr; -} - -ZEND_API int zval_update_constant(zval *pp); -ZEND_API int zval_update_constant_ex(zval *pp, zend_class_entry *scope); -ZEND_API ZEND_COLD int zend_use_undefined_constant(zend_string *name, zend_ast_attr attr, zval *result); - -/* dedicated Zend executor functions - do not use! */ -struct _zend_vm_stack { - zval *top; - zval *end; - zend_vm_stack prev; -}; - -#define ZEND_VM_STACK_HEADER_SLOTS \ - ((ZEND_MM_ALIGNED_SIZE(sizeof(struct _zend_vm_stack)) + ZEND_MM_ALIGNED_SIZE(sizeof(zval)) - 1) / ZEND_MM_ALIGNED_SIZE(sizeof(zval))) - -#define ZEND_VM_STACK_ELEMENTS(stack) \ - (((zval*)(stack)) + ZEND_VM_STACK_HEADER_SLOTS) - -/* - * In general in RELEASE build ZEND_ASSERT() must be zero-cost, but for some - * reason, GCC generated worse code, performing CSE on assertion code and the - * following "slow path" and moving memory read operatins from slow path into - * common header. This made a degradation for the fast path. - * The following "#if ZEND_DEBUG" eliminates it. - */ -#if ZEND_DEBUG -# define ZEND_ASSERT_VM_STACK(stack) ZEND_ASSERT(stack->top > (zval *) stack && stack->end > (zval *) stack && stack->top <= stack->end) -# define ZEND_ASSERT_VM_STACK_GLOBAL ZEND_ASSERT(EG(vm_stack_top) > (zval *) EG(vm_stack) && EG(vm_stack_end) > (zval *) EG(vm_stack) && EG(vm_stack_top) <= EG(vm_stack_end)) -#else -# define ZEND_ASSERT_VM_STACK(stack) -# define ZEND_ASSERT_VM_STACK_GLOBAL -#endif - -ZEND_API void zend_vm_stack_init(void); -ZEND_API void zend_vm_stack_init_ex(size_t page_size); -ZEND_API void zend_vm_stack_destroy(void); -ZEND_API void* zend_vm_stack_extend(size_t size); - -static zend_always_inline void zend_vm_init_call_frame(zend_execute_data *call, uint32_t call_info, zend_function *func, uint32_t num_args, void *object_or_called_scope) -{ - call->func = func; - Z_PTR(call->This) = object_or_called_scope; - ZEND_CALL_INFO(call) = call_info; - ZEND_CALL_NUM_ARGS(call) = num_args; -} - -static zend_always_inline zend_execute_data *zend_vm_stack_push_call_frame_ex(uint32_t used_stack, uint32_t call_info, zend_function *func, uint32_t num_args, void *object_or_called_scope) -{ - zend_execute_data *call = (zend_execute_data*)EG(vm_stack_top); - - ZEND_ASSERT_VM_STACK_GLOBAL; - - if (UNEXPECTED(used_stack > (size_t)(((char*)EG(vm_stack_end)) - (char*)call))) { - call = (zend_execute_data*)zend_vm_stack_extend(used_stack); - ZEND_ASSERT_VM_STACK_GLOBAL; - zend_vm_init_call_frame(call, call_info | ZEND_CALL_ALLOCATED, func, num_args, object_or_called_scope); - return call; - } else { - EG(vm_stack_top) = (zval*)((char*)call + used_stack); - zend_vm_init_call_frame(call, call_info, func, num_args, object_or_called_scope); - return call; - } -} - -static zend_always_inline uint32_t zend_vm_calc_used_stack(uint32_t num_args, zend_function *func) -{ - uint32_t used_stack = ZEND_CALL_FRAME_SLOT + num_args; - - if (EXPECTED(ZEND_USER_CODE(func->type))) { - used_stack += func->op_array.last_var + func->op_array.T - MIN(func->op_array.num_args, num_args); - } - return used_stack * sizeof(zval); -} - -static zend_always_inline zend_execute_data *zend_vm_stack_push_call_frame(uint32_t call_info, zend_function *func, uint32_t num_args, void *object_or_called_scope) -{ - uint32_t used_stack = zend_vm_calc_used_stack(num_args, func); - - return zend_vm_stack_push_call_frame_ex(used_stack, call_info, - func, num_args, object_or_called_scope); -} - -static zend_always_inline void zend_vm_stack_free_extra_args_ex(uint32_t call_info, zend_execute_data *call) -{ - if (UNEXPECTED(call_info & ZEND_CALL_FREE_EXTRA_ARGS)) { - uint32_t count = ZEND_CALL_NUM_ARGS(call) - call->func->op_array.num_args; - zval *p = ZEND_CALL_VAR_NUM(call, call->func->op_array.last_var + call->func->op_array.T); - do { - if (Z_REFCOUNTED_P(p)) { - zend_refcounted *r = Z_COUNTED_P(p); - if (!GC_DELREF(r)) { - ZVAL_NULL(p); - rc_dtor_func(r); - } else { - gc_check_possible_root(r); - } - } - p++; - } while (--count); - } -} - -static zend_always_inline void zend_vm_stack_free_extra_args(zend_execute_data *call) -{ - zend_vm_stack_free_extra_args_ex(ZEND_CALL_INFO(call), call); -} - -static zend_always_inline void zend_vm_stack_free_args(zend_execute_data *call) -{ - uint32_t num_args = ZEND_CALL_NUM_ARGS(call); - - if (EXPECTED(num_args > 0)) { - zval *p = ZEND_CALL_ARG(call, 1); - - do { - if (Z_REFCOUNTED_P(p)) { - zend_refcounted *r = Z_COUNTED_P(p); - if (!GC_DELREF(r)) { - ZVAL_NULL(p); - rc_dtor_func(r); - } - } - p++; - } while (--num_args); - } -} - -static zend_always_inline void zend_vm_stack_free_call_frame_ex(uint32_t call_info, zend_execute_data *call) -{ - ZEND_ASSERT_VM_STACK_GLOBAL; - - if (UNEXPECTED(call_info & ZEND_CALL_ALLOCATED)) { - zend_vm_stack p = EG(vm_stack); - zend_vm_stack prev = p->prev; - - ZEND_ASSERT(call == (zend_execute_data*)ZEND_VM_STACK_ELEMENTS(EG(vm_stack))); - EG(vm_stack_top) = prev->top; - EG(vm_stack_end) = prev->end; - EG(vm_stack) = prev; - efree(p); - } else { - EG(vm_stack_top) = (zval*)call; - } - - ZEND_ASSERT_VM_STACK_GLOBAL; -} - -static zend_always_inline void zend_vm_stack_free_call_frame(zend_execute_data *call) -{ - zend_vm_stack_free_call_frame_ex(ZEND_CALL_INFO(call), call); -} - -/* services */ -ZEND_API const char *get_active_class_name(const char **space); -ZEND_API const char *get_active_function_name(void); -ZEND_API const char *zend_get_executed_filename(void); -ZEND_API zend_string *zend_get_executed_filename_ex(void); -ZEND_API uint32_t zend_get_executed_lineno(void); -ZEND_API zend_class_entry *zend_get_executed_scope(void); -ZEND_API zend_bool zend_is_executing(void); - -ZEND_API void zend_set_timeout(zend_long seconds, int reset_signals); -ZEND_API void zend_unset_timeout(void); -ZEND_API ZEND_NORETURN void ZEND_FASTCALL zend_timeout(int dummy); -ZEND_API zend_class_entry *zend_fetch_class(zend_string *class_name, int fetch_type); -ZEND_API zend_class_entry *zend_fetch_class_by_name(zend_string *class_name, zend_string *lcname, int fetch_type); - -ZEND_API zend_function * ZEND_FASTCALL zend_fetch_function(zend_string *name); -ZEND_API zend_function * ZEND_FASTCALL zend_fetch_function_str(const char *name, size_t len); -ZEND_API void ZEND_FASTCALL zend_init_func_run_time_cache(zend_op_array *op_array); - -ZEND_API void zend_fetch_dimension_const(zval *result, zval *container, zval *dim, int type); - -ZEND_API zval* zend_get_compiled_variable_value(const zend_execute_data *execute_data_ptr, uint32_t var); - -#define ZEND_USER_OPCODE_CONTINUE 0 /* execute next opcode */ -#define ZEND_USER_OPCODE_RETURN 1 /* exit from executor (return from function) */ -#define ZEND_USER_OPCODE_DISPATCH 2 /* call original opcode handler */ -#define ZEND_USER_OPCODE_ENTER 3 /* enter into new op_array without recursion */ -#define ZEND_USER_OPCODE_LEAVE 4 /* return to calling op_array within the same executor */ - -#define ZEND_USER_OPCODE_DISPATCH_TO 0x100 /* call original handler of returned opcode */ - -ZEND_API int zend_set_user_opcode_handler(zend_uchar opcode, user_opcode_handler_t handler); -ZEND_API user_opcode_handler_t zend_get_user_opcode_handler(zend_uchar opcode); - -/* former zend_execute_locks.h */ -typedef zval* zend_free_op; - -ZEND_API zval *zend_get_zval_ptr(const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data, zend_free_op *should_free, int type); - -ZEND_API void zend_clean_and_cache_symbol_table(zend_array *symbol_table); -ZEND_API void zend_free_compiled_variables(zend_execute_data *execute_data); -ZEND_API void zend_cleanup_unfinished_execution(zend_execute_data *execute_data, uint32_t op_num, uint32_t catch_op_num); - -#define CACHE_ADDR(num) \ - ((void**)((char*)EX(run_time_cache) + (num))) - -#define CACHED_PTR(num) \ - ((void**)((char*)EX(run_time_cache) + (num)))[0] - -#define CACHE_PTR(num, ptr) do { \ - ((void**)((char*)EX(run_time_cache) + (num)))[0] = (ptr); \ - } while (0) - -#define CACHED_POLYMORPHIC_PTR(num, ce) \ - (EXPECTED(((void**)((char*)EX(run_time_cache) + (num)))[0] == (void*)(ce)) ? \ - ((void**)((char*)EX(run_time_cache) + (num)))[1] : \ - NULL) - -#define CACHE_POLYMORPHIC_PTR(num, ce, ptr) do { \ - void **slot = (void**)((char*)EX(run_time_cache) + (num)); \ - slot[0] = (ce); \ - slot[1] = (ptr); \ - } while (0) - -#define CACHED_PTR_EX(slot) \ - (slot)[0] - -#define CACHE_PTR_EX(slot, ptr) do { \ - (slot)[0] = (ptr); \ - } while (0) - -#define CACHED_POLYMORPHIC_PTR_EX(slot, ce) \ - (EXPECTED((slot)[0] == (ce)) ? (slot)[1] : NULL) - -#define CACHE_POLYMORPHIC_PTR_EX(slot, ce, ptr) do { \ - (slot)[0] = (ce); \ - (slot)[1] = (ptr); \ - } while (0) - -#define CACHE_SPECIAL (1<<0) - -#define IS_SPECIAL_CACHE_VAL(ptr) \ - (((uintptr_t)(ptr)) & CACHE_SPECIAL) - -#define ENCODE_SPECIAL_CACHE_NUM(num) \ - ((void*)((((uintptr_t)(num)) << 1) | CACHE_SPECIAL)) - -#define DECODE_SPECIAL_CACHE_NUM(ptr) \ - (((uintptr_t)(ptr)) >> 1) - -#define ENCODE_SPECIAL_CACHE_PTR(ptr) \ - ((void*)(((uintptr_t)(ptr)) | CACHE_SPECIAL)) - -#define DECODE_SPECIAL_CACHE_PTR(ptr) \ - ((void*)(((uintptr_t)(ptr)) & ~CACHE_SPECIAL)) - -#define SKIP_EXT_OPLINE(opline) do { \ - while (UNEXPECTED((opline)->opcode >= ZEND_EXT_STMT \ - && (opline)->opcode <= ZEND_TICKS)) { \ - (opline)--; \ - } \ - } while (0) - -#define ZEND_CLASS_HAS_TYPE_HINTS(ce) ((ce->ce_flags & ZEND_ACC_HAS_TYPE_HINTS) == ZEND_ACC_HAS_TYPE_HINTS) - -zend_bool zend_verify_property_type(zend_property_info *info, zval *property, zend_bool strict); -ZEND_COLD void zend_verify_property_type_error(zend_property_info *info, zval *property); - -#define ZEND_REF_ADD_TYPE_SOURCE(ref, source) \ - zend_ref_add_type_source(&ZEND_REF_TYPE_SOURCES(ref), source) - -#define ZEND_REF_DEL_TYPE_SOURCE(ref, source) \ - zend_ref_del_type_source(&ZEND_REF_TYPE_SOURCES(ref), source) - -#define ZEND_REF_FOREACH_TYPE_SOURCES(ref, prop) do { \ - zend_property_info_source_list *_source_list = &ZEND_REF_TYPE_SOURCES(ref); \ - zend_property_info **_prop, **_end; \ - zend_property_info_list *_list; \ - if (_source_list->ptr) { \ - if (ZEND_PROPERTY_INFO_SOURCE_IS_LIST(_source_list->list)) { \ - _list = ZEND_PROPERTY_INFO_SOURCE_TO_LIST(_source_list->list); \ - _prop = _list->ptr; \ - _end = _list->ptr + _list->num; \ - } else { \ - _prop = &_source_list->ptr; \ - _end = _prop + 1; \ - } \ - for (; _prop < _end; _prop++) { \ - prop = *_prop; \ - -#define ZEND_REF_FOREACH_TYPE_SOURCES_END() \ - } \ - } \ - } while (0) - - -END_EXTERN_C() - -#endif /* ZEND_EXECUTE_H */ diff --git a/include/php/Zend/zend_extensions.h b/include/php/Zend/zend_extensions.h deleted file mode 100644 index 19cbf55..0000000 --- a/include/php/Zend/zend_extensions.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_EXTENSIONS_H -#define ZEND_EXTENSIONS_H - -#include "zend_compile.h" -#include "zend_build.h" - -/* -The constants below are derived from ext/opcache/ZendAccelerator.h - -You can use the following macro to check the extension API version for compatibilities: - -#define ZEND_EXTENSION_API_NO_5_0_X 220040412 -#define ZEND_EXTENSION_API_NO_5_1_X 220051025 -#define ZEND_EXTENSION_API_NO_5_2_X 220060519 -#define ZEND_EXTENSION_API_NO_5_3_X 220090626 -#define ZEND_EXTENSION_API_NO_5_4_X 220100525 -#define ZEND_EXTENSION_API_NO_5_5_X 220121212 -#define ZEND_EXTENSION_API_NO_5_6_X 220131226 -#define ZEND_EXTENSION_API_NO_7_0_X 320151012 - -#if ZEND_EXTENSION_API_NO < ZEND_EXTENSION_API_NO_5_5_X - // do something for php versions lower than 5.5.x -#endif -*/ - -/* The first number is the engine version and the rest is the date (YYYYMMDD). - * This way engine 2/3 API no. is always greater than engine 1 API no.. */ -#define ZEND_EXTENSION_API_NO 320190902 - -typedef struct _zend_extension_version_info { - int zend_extension_api_no; - char *build_id; -} zend_extension_version_info; - -#define ZEND_EXTENSION_BUILD_ID "API" ZEND_TOSTR(ZEND_EXTENSION_API_NO) ZEND_BUILD_TS ZEND_BUILD_DEBUG ZEND_BUILD_SYSTEM ZEND_BUILD_EXTRA - -typedef struct _zend_extension zend_extension; - -/* Typedef's for zend_extension function pointers */ -typedef int (*startup_func_t)(zend_extension *extension); -typedef void (*shutdown_func_t)(zend_extension *extension); -typedef void (*activate_func_t)(void); -typedef void (*deactivate_func_t)(void); - -typedef void (*message_handler_func_t)(int message, void *arg); - -typedef void (*op_array_handler_func_t)(zend_op_array *op_array); - -typedef void (*statement_handler_func_t)(zend_execute_data *frame); -typedef void (*fcall_begin_handler_func_t)(zend_execute_data *frame); -typedef void (*fcall_end_handler_func_t)(zend_execute_data *frame); - -typedef void (*op_array_ctor_func_t)(zend_op_array *op_array); -typedef void (*op_array_dtor_func_t)(zend_op_array *op_array); -typedef size_t (*op_array_persist_calc_func_t)(zend_op_array *op_array); -typedef size_t (*op_array_persist_func_t)(zend_op_array *op_array, void *mem); - -struct _zend_extension { - char *name; - char *version; - char *author; - char *URL; - char *copyright; - - startup_func_t startup; - shutdown_func_t shutdown; - activate_func_t activate; - deactivate_func_t deactivate; - - message_handler_func_t message_handler; - - op_array_handler_func_t op_array_handler; - - statement_handler_func_t statement_handler; - fcall_begin_handler_func_t fcall_begin_handler; - fcall_end_handler_func_t fcall_end_handler; - - op_array_ctor_func_t op_array_ctor; - op_array_dtor_func_t op_array_dtor; - - int (*api_no_check)(int api_no); - int (*build_id_check)(const char* build_id); - op_array_persist_calc_func_t op_array_persist_calc; - op_array_persist_func_t op_array_persist; - void *reserved5; - void *reserved6; - void *reserved7; - void *reserved8; - - DL_HANDLE handle; - int resource_number; -}; - -BEGIN_EXTERN_C() -extern ZEND_API int zend_op_array_extension_handles; - -ZEND_API int zend_get_resource_handle(zend_extension *extension); -ZEND_API int zend_get_op_array_extension_handle(void); -ZEND_API void zend_extension_dispatch_message(int message, void *arg); -END_EXTERN_C() - -#define ZEND_EXTMSG_NEW_EXTENSION 1 - - -#define ZEND_EXTENSION() \ - ZEND_EXT_API zend_extension_version_info extension_version_info = { ZEND_EXTENSION_API_NO, ZEND_EXTENSION_BUILD_ID } - -#define STANDARD_ZEND_EXTENSION_PROPERTIES NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1 -#define COMPAT_ZEND_EXTENSION_PROPERTIES NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1 -#define BUILD_COMPAT_ZEND_EXTENSION_PROPERTIES NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1 - - -ZEND_API extern zend_llist zend_extensions; -ZEND_API extern uint32_t zend_extension_flags; - -#define ZEND_EXTENSIONS_HAVE_OP_ARRAY_CTOR (1<<0) -#define ZEND_EXTENSIONS_HAVE_OP_ARRAY_DTOR (1<<1) -#define ZEND_EXTENSIONS_HAVE_OP_ARRAY_HANDLER (1<<2) -#define ZEND_EXTENSIONS_HAVE_OP_ARRAY_PERSIST_CALC (1<<3) -#define ZEND_EXTENSIONS_HAVE_OP_ARRAY_PERSIST (1<<4) - -void zend_extension_dtor(zend_extension *extension); -ZEND_API void zend_append_version_info(const zend_extension *extension); -int zend_startup_extensions_mechanism(void); -int zend_startup_extensions(void); -void zend_shutdown_extensions(void); - -BEGIN_EXTERN_C() -ZEND_API int zend_load_extension(const char *path); -ZEND_API int zend_load_extension_handle(DL_HANDLE handle, const char *path); -ZEND_API int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle); -ZEND_API zend_extension *zend_get_extension(const char *extension_name); -ZEND_API size_t zend_extensions_op_array_persist_calc(zend_op_array *op_array); -ZEND_API size_t zend_extensions_op_array_persist(zend_op_array *op_array, void *mem); -END_EXTERN_C() - -#endif /* ZEND_EXTENSIONS_H */ diff --git a/include/php/Zend/zend_float.h b/include/php/Zend/zend_float.h deleted file mode 100644 index c8e9112..0000000 --- a/include/php/Zend/zend_float.h +++ /dev/null @@ -1,415 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Christian Seiler | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_FLOAT_H -#define ZEND_FLOAT_H - -BEGIN_EXTERN_C() - -/* - Define functions for FP initialization and de-initialization. -*/ -extern ZEND_API void zend_init_fpu(void); -extern ZEND_API void zend_shutdown_fpu(void); -extern ZEND_API void zend_ensure_fpu_mode(void); - -END_EXTERN_C() - -/* Copy of the contents of xpfpa.h (which is under public domain) - See http://wiki.php.net/rfc/rounding for details. - - Cross Platform Floating Point Arithmetics - - This header file defines several platform-dependent macros that ensure - equal and deterministic floating point behaviour across several platforms, - compilers and architectures. - - The current macros are currently only used on x86 and x86_64 architectures, - on every other architecture, these macros expand to NOPs. This assumes that - other architectures do not have an internal precision and the operhand types - define the computational precision of floating point operations. This - assumption may be false, in that case, the author is interested in further - details on the other platform. - - For further details, please visit: - http://www.christian-seiler.de/projekte/fpmath/ - - Version: 20090317 */ - -/* - Implementation notes: - - x86_64: - - Since all x86_64 compilers use SSE by default, we do not define these - macros there. We ignore the compiler option -mfpmath=i387, because there is - no reason to use it on x86_64. - - General: - - It would be nice if one could detect whether SSE if used for math via some - funky compiler defines and if so, make the macros go to NOPs. Any ideas - on how to do that? - - MS Visual C: - - Since MSVC users typically don't use autoconf or CMake, we will detect - MSVC via compile time define. -*/ - -/* MSVC detection (MSVC people usually don't use autoconf) */ -#if defined(_MSC_VER) && !defined(_WIN64) -# define HAVE__CONTROLFP_S -#endif /* _MSC_VER */ - -#if defined(HAVE__CONTROLFP_S) && !defined(__x86_64__) - -/* float.h defines _controlfp_s */ -# include - -# define XPFPA_HAVE_CW 1 -# define XPFPA_CW_DATATYPE \ - unsigned int - -# define XPFPA_STORE_CW(vptr) do { \ - _controlfp_s((unsigned int *)(vptr), 0, 0); \ - } while (0) - -# define XPFPA_RESTORE_CW(vptr) do { \ - unsigned int _xpfpa_fpu_cw; \ - _controlfp_s(&_xpfpa_fpu_cw, *((unsigned int *)(vptr)), _MCW_PC); \ - } while (0) - -# define XPFPA_DECLARE \ - unsigned int _xpfpa_fpu_oldcw, _xpfpa_fpu_cw; - -# define XPFPA_SWITCH_DOUBLE() do { \ - _controlfp_s(&_xpfpa_fpu_cw, 0, 0); \ - _xpfpa_fpu_oldcw = _xpfpa_fpu_cw; \ - _controlfp_s(&_xpfpa_fpu_cw, _PC_53, _MCW_PC); \ - } while (0) -# define XPFPA_SWITCH_SINGLE() do { \ - _controlfp_s(&_xpfpa_fpu_cw, 0, 0); \ - _xpfpa_fpu_oldcw = _xpfpa_fpu_cw; \ - _controlfp_s(&_xpfpa_fpu_cw, _PC_24, _MCW_PC); \ - } while (0) -/* NOTE: This only sets internal precision. MSVC does NOT support double- - extended precision! */ -# define XPFPA_SWITCH_DOUBLE_EXTENDED() do { \ - _controlfp_s(&_xpfpa_fpu_cw, 0, 0); \ - _xpfpa_fpu_oldcw = _xpfpa_fpu_cw; \ - _controlfp_s(&_xpfpa_fpu_cw, _PC_64, _MCW_PC); \ - } while (0) -# define XPFPA_RESTORE() \ - _controlfp_s(&_xpfpa_fpu_cw, _xpfpa_fpu_oldcw, _MCW_PC) -/* We do NOT use the volatile return trick since _controlfp_s is a function - call and thus FP registers are saved in memory anyway. However, we do use - a variable to ensure that the expression passed into val will be evaluated - *before* switching back contexts. */ -# define XPFPA_RETURN_DOUBLE(val) \ - do { \ - double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_SINGLE(val) \ - do { \ - float _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -/* This won't work, but we add a macro for it anyway. */ -# define XPFPA_RETURN_DOUBLE_EXTENDED(val) \ - do { \ - long double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) - -#elif defined(HAVE__CONTROLFP) && !defined(__x86_64__) - -/* float.h defines _controlfp */ -# include - -# define XPFPA_DECLARE \ - unsigned int _xpfpa_fpu_oldcw; - -# define XPFPA_HAVE_CW 1 -# define XPFPA_CW_DATATYPE \ - unsigned int - -# define XPFPA_STORE_CW(vptr) do { \ - *((unsigned int *)(vptr)) = _controlfp(0, 0); \ - } while (0) - -# define XPFPA_RESTORE_CW(vptr) do { \ - _controlfp(*((unsigned int *)(vptr)), _MCW_PC); \ - } while (0) - -# define XPFPA_SWITCH_DOUBLE() do { \ - _xpfpa_fpu_oldcw = _controlfp(0, 0); \ - _controlfp(_PC_53, _MCW_PC); \ - } while (0) -# define XPFPA_SWITCH_SINGLE() do { \ - _xpfpa_fpu_oldcw = _controlfp(0, 0); \ - _controlfp(_PC_24, _MCW_PC); \ - } while (0) -/* NOTE: This will only work as expected on MinGW. */ -# define XPFPA_SWITCH_DOUBLE_EXTENDED() do { \ - _xpfpa_fpu_oldcw = _controlfp(0, 0); \ - _controlfp(_PC_64, _MCW_PC); \ - } while (0) -# define XPFPA_RESTORE() \ - _controlfp(_xpfpa_fpu_oldcw, _MCW_PC) -/* We do NOT use the volatile return trick since _controlfp is a function - call and thus FP registers are saved in memory anyway. However, we do use - a variable to ensure that the expression passed into val will be evaluated - *before* switching back contexts. */ -# define XPFPA_RETURN_DOUBLE(val) \ - do { \ - double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_SINGLE(val) \ - do { \ - float _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -/* This will only work on MinGW */ -# define XPFPA_RETURN_DOUBLE_EXTENDED(val) \ - do { \ - long double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) - -#elif defined(HAVE__FPU_SETCW) && !defined(__x86_64__) /* glibc systems */ - -/* fpu_control.h defines _FPU_[GS]ETCW */ -# include - -# define XPFPA_DECLARE \ - fpu_control_t _xpfpa_fpu_oldcw, _xpfpa_fpu_cw; - -# define XPFPA_HAVE_CW 1 -# define XPFPA_CW_DATATYPE \ - fpu_control_t - -# define XPFPA_STORE_CW(vptr) do { \ - _FPU_GETCW((*((fpu_control_t *)(vptr)))); \ - } while (0) - -# define XPFPA_RESTORE_CW(vptr) do { \ - _FPU_SETCW((*((fpu_control_t *)(vptr)))); \ - } while (0) - -# define XPFPA_SWITCH_DOUBLE() do { \ - _FPU_GETCW(_xpfpa_fpu_oldcw); \ - _xpfpa_fpu_cw = (_xpfpa_fpu_oldcw & ~_FPU_EXTENDED & ~_FPU_SINGLE) | _FPU_DOUBLE; \ - _FPU_SETCW(_xpfpa_fpu_cw); \ - } while (0) -# define XPFPA_SWITCH_SINGLE() do { \ - _FPU_GETCW(_xpfpa_fpu_oldcw); \ - _xpfpa_fpu_cw = (_xpfpa_fpu_oldcw & ~_FPU_EXTENDED & ~_FPU_DOUBLE) | _FPU_SINGLE; \ - _FPU_SETCW(_xpfpa_fpu_cw); \ - } while (0) -# define XPFPA_SWITCH_DOUBLE_EXTENDED() do { \ - _FPU_GETCW(_xpfpa_fpu_oldcw); \ - _xpfpa_fpu_cw = (_xpfpa_fpu_oldcw & ~_FPU_SINGLE & ~_FPU_DOUBLE) | _FPU_EXTENDED; \ - _FPU_SETCW(_xpfpa_fpu_cw); \ - } while (0) -# define XPFPA_RESTORE() \ - _FPU_SETCW(_xpfpa_fpu_oldcw) -/* We use a temporary volatile variable (in a new block) in order to ensure - that the optimizer does not mis-optimize the instructions. Also, a volatile - variable ensures truncation to correct precision. */ -# define XPFPA_RETURN_DOUBLE(val) \ - do { \ - volatile double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_SINGLE(val) \ - do { \ - volatile float _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_DOUBLE_EXTENDED(val) \ - do { \ - volatile long double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) - -#elif defined(HAVE_FPSETPREC) && !defined(__x86_64__) /* FreeBSD */ - -/* fpu_control.h defines _FPU_[GS]ETCW */ -# include - -# define XPFPA_DECLARE \ - fp_prec_t _xpfpa_fpu_oldprec; - -# define XPFPA_HAVE_CW 1 -# define XPFPA_CW_DATATYPE \ - fp_prec_t - -# define XPFPA_STORE_CW(vptr) do { \ - *((fp_prec_t *)(vptr)) = fpgetprec(); \ - } while (0) - -# define XPFPA_RESTORE_CW(vptr) do { \ - fpsetprec(*((fp_prec_t *)(vptr))); \ - } while (0) - -# define XPFPA_SWITCH_DOUBLE() do { \ - _xpfpa_fpu_oldprec = fpgetprec(); \ - fpsetprec(FP_PD); \ - } while (0) -# define XPFPA_SWITCH_SINGLE() do { \ - _xpfpa_fpu_oldprec = fpgetprec(); \ - fpsetprec(FP_PS); \ - } while (0) -# define XPFPA_SWITCH_DOUBLE_EXTENDED() do { \ - _xpfpa_fpu_oldprec = fpgetprec(); \ - fpsetprec(FP_PE); \ - } while (0) -# define XPFPA_RESTORE() \ - fpsetprec(_xpfpa_fpu_oldprec) -/* We use a temporary volatile variable (in a new block) in order to ensure - that the optimizer does not mis-optimize the instructions. Also, a volatile - variable ensures truncation to correct precision. */ -# define XPFPA_RETURN_DOUBLE(val) \ - do { \ - volatile double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_SINGLE(val) \ - do { \ - volatile float _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_DOUBLE_EXTENDED(val) \ - do { \ - volatile long double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) - -#elif defined(HAVE_FPU_INLINE_ASM_X86) && !defined(__x86_64__) - -/* - Custom x86 inline assembler implementation. - - This implementation does not use predefined wrappers of the OS / compiler - but rather uses x86/x87 inline assembler directly. Basic instructions: - - fnstcw - Store the FPU control word in a variable - fldcw - Load the FPU control word from a variable - - Bits (only bits 8 and 9 are relevant, bits 0 to 7 are for other things): - 0x0yy: Single precision - 0x1yy: Reserved - 0x2yy: Double precision - 0x3yy: Double-extended precision - - We use an unsigned int for the datatype. glibc sources add __mode__ (__HI__) - attribute to it (HI stands for half-integer according to docs). It is unclear - what the does exactly and how portable it is. - - The assembly syntax works with GNU CC, Intel CC and Sun CC. -*/ - -# define XPFPA_DECLARE \ - unsigned int _xpfpa_fpu_oldcw, _xpfpa_fpu_cw; - -# define XPFPA_HAVE_CW 1 -# define XPFPA_CW_DATATYPE \ - unsigned int - -# define XPFPA_STORE_CW(vptr) do { \ - __asm__ __volatile__ ("fnstcw %0" : "=m" (*((unsigned int *)(vptr)))); \ - } while (0) - -# define XPFPA_RESTORE_CW(vptr) do { \ - __asm__ __volatile__ ("fldcw %0" : : "m" (*((unsigned int *)(vptr)))); \ - } while (0) - -# define XPFPA_SWITCH_DOUBLE() do { \ - __asm__ __volatile__ ("fnstcw %0" : "=m" (*&_xpfpa_fpu_oldcw)); \ - _xpfpa_fpu_cw = (_xpfpa_fpu_oldcw & ~0x100) | 0x200; \ - __asm__ __volatile__ ("fldcw %0" : : "m" (*&_xpfpa_fpu_cw)); \ - } while (0) -# define XPFPA_SWITCH_SINGLE() do { \ - __asm__ __volatile__ ("fnstcw %0" : "=m" (*&_xpfpa_fpu_oldcw)); \ - _xpfpa_fpu_cw = (_xpfpa_fpu_oldcw & ~0x300); \ - __asm__ __volatile__ ("fldcw %0" : : "m" (*&_xpfpa_fpu_cw)); \ - } while (0) -# define XPFPA_SWITCH_DOUBLE_EXTENDED() do { \ - __asm__ __volatile__ ("fnstcw %0" : "=m" (*&_xpfpa_fpu_oldcw)); \ - _xpfpa_fpu_cw = _xpfpa_fpu_oldcw | 0x300; \ - __asm__ __volatile__ ("fldcw %0" : : "m" (*&_xpfpa_fpu_cw)); \ - } while (0) -# define XPFPA_RESTORE() \ - __asm__ __volatile__ ("fldcw %0" : : "m" (*&_xpfpa_fpu_oldcw)) -/* We use a temporary volatile variable (in a new block) in order to ensure - that the optimizer does not mis-optimize the instructions. Also, a volatile - variable ensures truncation to correct precision. */ -# define XPFPA_RETURN_DOUBLE(val) \ - do { \ - volatile double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_SINGLE(val) \ - do { \ - volatile float _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) -# define XPFPA_RETURN_DOUBLE_EXTENDED(val) \ - do { \ - volatile long double _xpfpa_result = (val); \ - XPFPA_RESTORE(); \ - return _xpfpa_result; \ - } while (0) - -#else /* FPU CONTROL */ - -/* - This is either not an x87 FPU or the inline assembly syntax was not - recognized. In any case, default to NOPs for the macros and hope the - generated code will behave as planned. -*/ -# define XPFPA_DECLARE /* NOP */ -# define XPFPA_HAVE_CW 0 -# define XPFPA_CW_DATATYPE unsigned int -# define XPFPA_STORE_CW(variable) /* NOP */ -# define XPFPA_RESTORE_CW(variable) /* NOP */ -# define XPFPA_SWITCH_DOUBLE() /* NOP */ -# define XPFPA_SWITCH_SINGLE() /* NOP */ -# define XPFPA_SWITCH_DOUBLE_EXTENDED() /* NOP */ -# define XPFPA_RESTORE() /* NOP */ -# define XPFPA_RETURN_DOUBLE(val) return (val) -# define XPFPA_RETURN_SINGLE(val) return (val) -# define XPFPA_RETURN_DOUBLE_EXTENDED(val) return (val) - -#endif /* FPU CONTROL */ - -#endif diff --git a/include/php/Zend/zend_gc.h b/include/php/Zend/zend_gc.h deleted file mode 100644 index d7b4e1a..0000000 --- a/include/php/Zend/zend_gc.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: David Wang | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_GC_H -#define ZEND_GC_H - -BEGIN_EXTERN_C() - -typedef struct _zend_gc_status { - uint32_t runs; - uint32_t collected; - uint32_t threshold; - uint32_t num_roots; -} zend_gc_status; - -ZEND_API extern int (*gc_collect_cycles)(void); - -ZEND_API void ZEND_FASTCALL gc_possible_root(zend_refcounted *ref); -ZEND_API void ZEND_FASTCALL gc_remove_from_buffer(zend_refcounted *ref); - -/* enable/disable automatic start of GC collection */ -ZEND_API zend_bool gc_enable(zend_bool enable); -ZEND_API zend_bool gc_enabled(void); - -/* enable/disable possible root additions */ -ZEND_API zend_bool gc_protect(zend_bool protect); -ZEND_API zend_bool gc_protected(void); - -/* The default implementation of the gc_collect_cycles callback. */ -ZEND_API int zend_gc_collect_cycles(void); - -ZEND_API void zend_gc_get_status(zend_gc_status *status); - -void gc_globals_ctor(void); -void gc_globals_dtor(void); -void gc_reset(void); - -#ifdef ZTS -size_t zend_gc_globals_size(void); -#endif - -END_EXTERN_C() - -#define GC_REMOVE_FROM_BUFFER(p) do { \ - zend_refcounted *_p = (zend_refcounted*)(p); \ - if (GC_TYPE_INFO(_p) & GC_INFO_MASK) { \ - gc_remove_from_buffer(_p); \ - } \ - } while (0) - -#define GC_MAY_LEAK(ref) \ - ((GC_TYPE_INFO(ref) & \ - (GC_INFO_MASK | (GC_COLLECTABLE << GC_FLAGS_SHIFT))) == \ - (GC_COLLECTABLE << GC_FLAGS_SHIFT)) - -static zend_always_inline void gc_check_possible_root(zend_refcounted *ref) -{ - if (EXPECTED(GC_TYPE_INFO(ref) == IS_REFERENCE)) { - zval *zv = &((zend_reference*)ref)->val; - - if (!Z_COLLECTABLE_P(zv)) { - return; - } - ref = Z_COUNTED_P(zv); - } - if (UNEXPECTED(GC_MAY_LEAK(ref))) { - gc_possible_root(ref); - } -} - -#endif /* ZEND_GC_H */ diff --git a/include/php/Zend/zend_generators.h b/include/php/Zend/zend_generators.h deleted file mode 100644 index abccf3a..0000000 --- a/include/php/Zend/zend_generators.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Nikita Popov | - | Bob Weinand | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_GENERATORS_H -#define ZEND_GENERATORS_H - -BEGIN_EXTERN_C() - -extern ZEND_API zend_class_entry *zend_ce_generator; -extern ZEND_API zend_class_entry *zend_ce_ClosedGeneratorException; - -typedef struct _zend_generator_node zend_generator_node; -typedef struct _zend_generator zend_generator; - -/* The concept of `yield from` exposes problems when accessed at different levels of the chain of delegated generators. We need to be able to reference the currently executed Generator in all cases and still being able to access the return values of finished Generators. - * The solution to this problem is a doubly-linked tree, which all Generators referenced in maintain a reference to. It should be impossible to avoid walking the tree in all cases. This way, we only need tree walks from leaf to root in case where some part of the `yield from` chain is passed to another `yield from`. (Update of leaf node pointer and list of multi-children nodes needed when leaf gets a child in direct path from leaf to root node.) But only in that case, which should be a fairly rare case (which is then possible, but not totally cheap). - * The root of the tree is then the currently executed Generator. The subnodes of the tree (all except the root node) are all Generators which do `yield from`. Each node of the tree knows a pointer to one leaf descendant node. Each node with multiple children needs a list of all leaf descendant nodes paired with pointers to their respective child node. (The stack is determined by leaf node pointers) Nodes with only one child just don't need a list, there it is enough to just have a pointer to the child node. Further, leaf nodes store a pointer to the root node. - * That way, when we advance any generator, we just need to look up a leaf node (which all have a reference to a root node). Then we can see at the root node whether current Generator is finished. If it isn't, all is fine and we can just continue. If the Generator finished, there will be two cases. Either it is a simple node with just one child, then go down to child node. Or it has multiple children and we now will remove the current leaf node from the list of nodes (unnecessary, is microoptimization) and go down to the child node whose reference was paired with current leaf node. Child node is then removed its parent reference and becomes new top node. Or the current node references the Generator we're currently executing, then we can continue from the YIELD_FROM opcode. When a node referenced as root node in a leaf node has a parent, then we go the way up until we find a root node without parent. - * In case we go into a new `yield from` level, a node is created on top of current root and becomes the new root. Leaf node needs to be updated with new root node then. - * When a Generator referenced by a node of the tree is added to `yield from`, that node now gets a list of children (we need to walk the descendants of that node and nodes of the tree of the other Generator down to the first multi-children node and copy all the leaf node pointers from there). In case there was no multi-children node (linear tree), we just add a pair (pointer to leaf node, pointer to child node), with the child node being in a direct path from leaf to this node. - */ - -struct _zend_generator_node { - zend_generator *parent; /* NULL for root */ - uint32_t children; - union { - HashTable *ht; /* if multiple children */ - struct { /* if one child */ - zend_generator *leaf; - zend_generator *child; - } single; - } child; - union { - zend_generator *leaf; /* if > 0 children */ - zend_generator *root; /* if 0 children */ - } ptr; -}; - -struct _zend_generator { - zend_object std; - - zend_object_iterator *iterator; - - /* The suspended execution context. */ - zend_execute_data *execute_data; - - /* Frozen call stack for "yield" used in context of other calls */ - zend_execute_data *frozen_call_stack; - - /* Current value */ - zval value; - /* Current key */ - zval key; - /* Return value */ - zval retval; - /* Variable to put sent value into */ - zval *send_target; - /* Largest used integer key for auto-incrementing keys */ - zend_long largest_used_integer_key; - - /* Values specified by "yield from" to yield from this generator. - * This is only used for arrays or non-generator Traversables. - * This zval also uses the u2 structure in the same way as - * by-value foreach. */ - zval values; - - /* Node of waiting generators when multiple "yield from" expressions - * are nested. */ - zend_generator_node node; - - /* Fake execute_data for stacktraces */ - zend_execute_data execute_fake; - - /* ZEND_GENERATOR_* flags */ - zend_uchar flags; - - zval *gc_buffer; - uint32_t gc_buffer_size; -}; - -static const zend_uchar ZEND_GENERATOR_CURRENTLY_RUNNING = 0x1; -static const zend_uchar ZEND_GENERATOR_FORCED_CLOSE = 0x2; -static const zend_uchar ZEND_GENERATOR_AT_FIRST_YIELD = 0x4; -static const zend_uchar ZEND_GENERATOR_DO_INIT = 0x8; - -void zend_register_generator_ce(void); -ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished_execution); -ZEND_API void zend_generator_resume(zend_generator *generator); - -ZEND_API void zend_generator_restore_call_stack(zend_generator *generator); -ZEND_API zend_execute_data* zend_generator_freeze_call_stack(zend_execute_data *execute_data); - -void zend_generator_yield_from(zend_generator *generator, zend_generator *from); -ZEND_API zend_execute_data *zend_generator_check_placeholder_frame(zend_execute_data *ptr); - -ZEND_API zend_generator *zend_generator_update_current(zend_generator *generator, zend_generator *leaf); -static zend_always_inline zend_generator *zend_generator_get_current(zend_generator *generator) -{ - zend_generator *leaf; - zend_generator *root; - - if (EXPECTED(generator->node.parent == NULL)) { - /* we're not in yield from mode */ - return generator; - } - - leaf = generator->node.children ? generator->node.ptr.leaf : generator; - root = leaf->node.ptr.root; - - if (EXPECTED(root->execute_data && root->node.parent == NULL)) { - /* generator still running */ - return root; - } - - return zend_generator_update_current(generator, leaf); -} - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_globals.h b/include/php/Zend/zend_globals.h deleted file mode 100644 index 2e9fff4..0000000 --- a/include/php/Zend/zend_globals.h +++ /dev/null @@ -1,315 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_GLOBALS_H -#define ZEND_GLOBALS_H - - -#include - -#include "zend_globals_macros.h" - -#include "zend_stack.h" -#include "zend_ptr_stack.h" -#include "zend_hash.h" -#include "zend_llist.h" -#include "zend_objects.h" -#include "zend_objects_API.h" -#include "zend_modules.h" -#include "zend_float.h" -#include "zend_multibyte.h" -#include "zend_multiply.h" -#include "zend_arena.h" - -/* Define ZTS if you want a thread-safe Zend */ -/*#undef ZTS*/ - -#ifdef ZTS - -BEGIN_EXTERN_C() -ZEND_API extern int compiler_globals_id; -ZEND_API extern int executor_globals_id; -ZEND_API extern size_t compiler_globals_offset; -ZEND_API extern size_t executor_globals_offset; -END_EXTERN_C() - -#endif - -#define SYMTABLE_CACHE_SIZE 32 - - -#include "zend_compile.h" - -/* excpt.h on Digital Unix 4.0 defines function_table */ -#undef function_table - -typedef struct _zend_vm_stack *zend_vm_stack; -typedef struct _zend_ini_entry zend_ini_entry; - - -struct _zend_compiler_globals { - zend_stack loop_var_stack; - - zend_class_entry *active_class_entry; - - zend_string *compiled_filename; - - int zend_lineno; - - zend_op_array *active_op_array; - - HashTable *function_table; /* function symbol table */ - HashTable *class_table; /* class table */ - - HashTable filenames_table; - - HashTable *auto_globals; - - zend_bool parse_error; - zend_bool in_compilation; - zend_bool short_tags; - - zend_bool unclean_shutdown; - - zend_bool ini_parser_unbuffered_errors; - - zend_llist open_files; - - struct _zend_ini_parser_param *ini_parser_param; - - zend_bool skip_shebang; - zend_bool increment_lineno; - - zend_string *doc_comment; - uint32_t extra_fn_flags; - - uint32_t compiler_options; /* set of ZEND_COMPILE_* constants */ - - zend_oparray_context context; - zend_file_context file_context; - - zend_arena *arena; - - HashTable interned_strings; - - const zend_encoding **script_encoding_list; - size_t script_encoding_list_size; - zend_bool multibyte; - zend_bool detect_unicode; - zend_bool encoding_declared; - - zend_ast *ast; - zend_arena *ast_arena; - - zend_stack delayed_oplines_stack; - HashTable *memoized_exprs; - int memoize_mode; - - void *map_ptr_base; - size_t map_ptr_size; - size_t map_ptr_last; - - HashTable *delayed_variance_obligations; - HashTable *delayed_autoloads; - - uint32_t rtd_key_counter; -}; - - -struct _zend_executor_globals { - zval uninitialized_zval; - zval error_zval; - - /* symbol table cache */ - zend_array *symtable_cache[SYMTABLE_CACHE_SIZE]; - /* Pointer to one past the end of the symtable_cache */ - zend_array **symtable_cache_limit; - /* Pointer to first unused symtable_cache slot */ - zend_array **symtable_cache_ptr; - - zend_array symbol_table; /* main symbol table */ - - HashTable included_files; /* files already included */ - - JMP_BUF *bailout; - - int error_reporting; - int exit_status; - - HashTable *function_table; /* function symbol table */ - HashTable *class_table; /* class table */ - HashTable *zend_constants; /* constants table */ - - zval *vm_stack_top; - zval *vm_stack_end; - zend_vm_stack vm_stack; - size_t vm_stack_page_size; - - struct _zend_execute_data *current_execute_data; - zend_class_entry *fake_scope; /* used to avoid checks accessing properties */ - - zend_long precision; - - int ticks_count; - - uint32_t persistent_constants_count; - uint32_t persistent_functions_count; - uint32_t persistent_classes_count; - - HashTable *in_autoload; - zend_function *autoload_func; - zend_bool full_tables_cleanup; - - /* for extended information support */ - zend_bool no_extensions; - - zend_bool vm_interrupt; - zend_bool timed_out; - zend_long hard_timeout; - -#ifdef ZEND_WIN32 - OSVERSIONINFOEX windows_version_info; -#endif - - HashTable regular_list; - HashTable persistent_list; - - int user_error_handler_error_reporting; - zval user_error_handler; - zval user_exception_handler; - zend_stack user_error_handlers_error_reporting; - zend_stack user_error_handlers; - zend_stack user_exception_handlers; - - zend_error_handling_t error_handling; - zend_class_entry *exception_class; - - /* timeout support */ - zend_long timeout_seconds; - - int lambda_count; - - HashTable *ini_directives; - HashTable *modified_ini_directives; - zend_ini_entry *error_reporting_ini_entry; - - zend_objects_store objects_store; - zend_object *exception, *prev_exception; - const zend_op *opline_before_exception; - zend_op exception_op[3]; - - struct _zend_module_entry *current_module; - - zend_bool active; - zend_uchar flags; - - zend_long assertions; - - uint32_t ht_iterators_count; /* number of allocatd slots */ - uint32_t ht_iterators_used; /* number of used slots */ - HashTableIterator *ht_iterators; - HashTableIterator ht_iterators_slots[16]; - - void *saved_fpu_cw_ptr; -#if XPFPA_HAVE_CW - XPFPA_CW_DATATYPE saved_fpu_cw; -#endif - - zend_function trampoline; - zend_op call_trampoline_op; - - zend_bool each_deprecation_thrown; - - HashTable weakrefs; - - zend_bool exception_ignore_args; - - void *reserved[ZEND_MAX_RESERVED_RESOURCES]; -}; - -#define EG_FLAGS_INITIAL (0) -#define EG_FLAGS_IN_SHUTDOWN (1<<0) -#define EG_FLAGS_OBJECT_STORE_NO_REUSE (1<<1) -#define EG_FLAGS_IN_RESOURCE_SHUTDOWN (1<<2) - -struct _zend_ini_scanner_globals { - zend_file_handle *yy_in; - zend_file_handle *yy_out; - - unsigned int yy_leng; - unsigned char *yy_start; - unsigned char *yy_text; - unsigned char *yy_cursor; - unsigned char *yy_marker; - unsigned char *yy_limit; - int yy_state; - zend_stack state_stack; - - char *filename; - int lineno; - - /* Modes are: ZEND_INI_SCANNER_NORMAL, ZEND_INI_SCANNER_RAW, ZEND_INI_SCANNER_TYPED */ - int scanner_mode; -}; - -typedef enum { - ON_TOKEN, - ON_FEEDBACK, - ON_STOP -} zend_php_scanner_event; - -struct _zend_php_scanner_globals { - zend_file_handle *yy_in; - zend_file_handle *yy_out; - - unsigned int yy_leng; - unsigned char *yy_start; - unsigned char *yy_text; - unsigned char *yy_cursor; - unsigned char *yy_marker; - unsigned char *yy_limit; - int yy_state; - zend_stack state_stack; - zend_ptr_stack heredoc_label_stack; - zend_bool heredoc_scan_ahead; - int heredoc_indentation; - zend_bool heredoc_indentation_uses_spaces; - - /* original (unfiltered) script */ - unsigned char *script_org; - size_t script_org_size; - - /* filtered script */ - unsigned char *script_filtered; - size_t script_filtered_size; - - /* input/output filters */ - zend_encoding_filter input_filter; - zend_encoding_filter output_filter; - const zend_encoding *script_encoding; - - /* initial string length after scanning to first variable */ - int scanned_string_len; - - /* hooks */ - void (*on_event)(zend_php_scanner_event event, int token, int line, void *context); - void *on_event_context; -}; - -#endif /* ZEND_GLOBALS_H */ diff --git a/include/php/Zend/zend_globals_macros.h b/include/php/Zend/zend_globals_macros.h deleted file mode 100644 index 59b3dac..0000000 --- a/include/php/Zend/zend_globals_macros.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_GLOBALS_MACROS_H -#define ZEND_GLOBALS_MACROS_H - -typedef struct _zend_compiler_globals zend_compiler_globals; -typedef struct _zend_executor_globals zend_executor_globals; -typedef struct _zend_php_scanner_globals zend_php_scanner_globals; -typedef struct _zend_ini_scanner_globals zend_ini_scanner_globals; - -BEGIN_EXTERN_C() - -/* Compiler */ -#ifdef ZTS -# define CG(v) ZEND_TSRMG_FAST(compiler_globals_offset, zend_compiler_globals *, v) -#else -# define CG(v) (compiler_globals.v) -extern ZEND_API struct _zend_compiler_globals compiler_globals; -#endif -ZEND_API int zendparse(void); - - -/* Executor */ -#ifdef ZTS -# define EG(v) ZEND_TSRMG_FAST(executor_globals_offset, zend_executor_globals *, v) -#else -# define EG(v) (executor_globals.v) -extern ZEND_API zend_executor_globals executor_globals; -#endif - -/* Language Scanner */ -#ifdef ZTS -# define LANG_SCNG(v) ZEND_TSRMG_FAST(language_scanner_globals_offset, zend_php_scanner_globals *, v) -extern ZEND_API ts_rsrc_id language_scanner_globals_id; -extern ZEND_API size_t language_scanner_globals_offset; -#else -# define LANG_SCNG(v) (language_scanner_globals.v) -extern ZEND_API zend_php_scanner_globals language_scanner_globals; -#endif - - -/* INI Scanner */ -#ifdef ZTS -# define INI_SCNG(v) ZEND_TSRMG_FAST(ini_scanner_globals_offset, zend_ini_scanner_globals *, v) -extern ZEND_API ts_rsrc_id ini_scanner_globals_id; -extern ZEND_API size_t ini_scanner_globals_offset; -#else -# define INI_SCNG(v) (ini_scanner_globals.v) -extern ZEND_API zend_ini_scanner_globals ini_scanner_globals; -#endif - -END_EXTERN_C() - -#endif /* ZEND_GLOBALS_MACROS_H */ diff --git a/include/php/Zend/zend_hash.h b/include/php/Zend/zend_hash.h deleted file mode 100644 index f1e2d34..0000000 --- a/include/php/Zend/zend_hash.h +++ /dev/null @@ -1,1192 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_HASH_H -#define ZEND_HASH_H - -#include "zend.h" - -#define HASH_KEY_IS_STRING 1 -#define HASH_KEY_IS_LONG 2 -#define HASH_KEY_NON_EXISTENT 3 - -#define HASH_UPDATE (1<<0) -#define HASH_ADD (1<<1) -#define HASH_UPDATE_INDIRECT (1<<2) -#define HASH_ADD_NEW (1<<3) -#define HASH_ADD_NEXT (1<<4) - -#define HASH_FLAG_CONSISTENCY ((1<<0) | (1<<1)) -#define HASH_FLAG_PACKED (1<<2) -#define HASH_FLAG_UNINITIALIZED (1<<3) -#define HASH_FLAG_STATIC_KEYS (1<<4) /* long and interned strings */ -#define HASH_FLAG_HAS_EMPTY_IND (1<<5) -#define HASH_FLAG_ALLOW_COW_VIOLATION (1<<6) - -/* Only the low byte are real flags */ -#define HASH_FLAG_MASK 0xff - -#define HT_FLAGS(ht) (ht)->u.flags - -#define HT_INVALIDATE(ht) do { \ - HT_FLAGS(ht) = HASH_FLAG_UNINITIALIZED; \ - } while (0) - -#define HT_IS_INITIALIZED(ht) \ - ((HT_FLAGS(ht) & HASH_FLAG_UNINITIALIZED) == 0) - -#define HT_IS_PACKED(ht) \ - ((HT_FLAGS(ht) & HASH_FLAG_PACKED) != 0) - -#define HT_IS_WITHOUT_HOLES(ht) \ - ((ht)->nNumUsed == (ht)->nNumOfElements) - -#define HT_HAS_STATIC_KEYS_ONLY(ht) \ - ((HT_FLAGS(ht) & (HASH_FLAG_PACKED|HASH_FLAG_STATIC_KEYS)) != 0) - -#if ZEND_DEBUG -# define HT_ALLOW_COW_VIOLATION(ht) HT_FLAGS(ht) |= HASH_FLAG_ALLOW_COW_VIOLATION -#else -# define HT_ALLOW_COW_VIOLATION(ht) -#endif - -#define HT_ITERATORS_COUNT(ht) (ht)->u.v.nIteratorsCount -#define HT_ITERATORS_OVERFLOW(ht) (HT_ITERATORS_COUNT(ht) == 0xff) -#define HT_HAS_ITERATORS(ht) (HT_ITERATORS_COUNT(ht) != 0) - -#define HT_SET_ITERATORS_COUNT(ht, iters) \ - do { HT_ITERATORS_COUNT(ht) = (iters); } while (0) -#define HT_INC_ITERATORS_COUNT(ht) \ - HT_SET_ITERATORS_COUNT(ht, HT_ITERATORS_COUNT(ht) + 1) -#define HT_DEC_ITERATORS_COUNT(ht) \ - HT_SET_ITERATORS_COUNT(ht, HT_ITERATORS_COUNT(ht) - 1) - -extern ZEND_API const HashTable zend_empty_array; - -#define ZVAL_EMPTY_ARRAY(z) do { \ - zval *__z = (z); \ - Z_ARR_P(__z) = (zend_array*)&zend_empty_array; \ - Z_TYPE_INFO_P(__z) = IS_ARRAY; \ - } while (0) - - -typedef struct _zend_hash_key { - zend_ulong h; - zend_string *key; -} zend_hash_key; - -typedef zend_bool (*merge_checker_func_t)(HashTable *target_ht, zval *source_data, zend_hash_key *hash_key, void *pParam); - -BEGIN_EXTERN_C() - -/* startup/shutdown */ -ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor, zend_bool persistent); -ZEND_API void ZEND_FASTCALL zend_hash_destroy(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_hash_clean(HashTable *ht); - -#define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) \ - _zend_hash_init((ht), (nSize), (pDestructor), (persistent)) -#define zend_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection) \ - _zend_hash_init((ht), (nSize), (pDestructor), (persistent)) - -ZEND_API void ZEND_FASTCALL zend_hash_real_init(HashTable *ht, zend_bool packed); -ZEND_API void ZEND_FASTCALL zend_hash_real_init_packed(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_hash_real_init_mixed(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_hash_packed_to_hash(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_hash_to_packed(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_hash_extend(HashTable *ht, uint32_t nSize, zend_bool packed); -ZEND_API void ZEND_FASTCALL zend_hash_discard(HashTable *ht, uint32_t nNumUsed); - -/* additions/updates/changes */ -ZEND_API zval* ZEND_FASTCALL zend_hash_add_or_update(HashTable *ht, zend_string *key, zval *pData, uint32_t flag); -ZEND_API zval* ZEND_FASTCALL zend_hash_update(HashTable *ht, zend_string *key,zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_update_ind(HashTable *ht, zend_string *key,zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_add(HashTable *ht, zend_string *key,zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_add_new(HashTable *ht, zend_string *key,zval *pData); - -ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_or_update(HashTable *ht, const char *key, size_t len, zval *pData, uint32_t flag); -ZEND_API zval* ZEND_FASTCALL zend_hash_str_update(HashTable *ht, const char *key, size_t len, zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_str_update_ind(HashTable *ht, const char *key, size_t len, zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_str_add(HashTable *ht, const char *key, size_t len, zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_new(HashTable *ht, const char *key, size_t len, zval *pData); - -ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_or_update(HashTable *ht, zend_ulong h, zval *pData, uint32_t flag); -ZEND_API zval* ZEND_FASTCALL zend_hash_index_add(HashTable *ht, zend_ulong h, zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_new(HashTable *ht, zend_ulong h, zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_index_update(HashTable *ht, zend_ulong h, zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert(HashTable *ht, zval *pData); -ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert_new(HashTable *ht, zval *pData); - -ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_empty_element(HashTable *ht, zend_ulong h); -ZEND_API zval* ZEND_FASTCALL zend_hash_add_empty_element(HashTable *ht, zend_string *key); -ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_empty_element(HashTable *ht, const char *key, size_t len); - -ZEND_API zval* ZEND_FASTCALL zend_hash_set_bucket_key(HashTable *ht, Bucket *p, zend_string *key); - -#define ZEND_HASH_APPLY_KEEP 0 -#define ZEND_HASH_APPLY_REMOVE 1<<0 -#define ZEND_HASH_APPLY_STOP 1<<1 - -typedef int (*apply_func_t)(zval *pDest); -typedef int (*apply_func_arg_t)(zval *pDest, void *argument); -typedef int (*apply_func_args_t)(zval *pDest, int num_args, va_list args, zend_hash_key *hash_key); - -ZEND_API void ZEND_FASTCALL zend_hash_graceful_destroy(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_hash_graceful_reverse_destroy(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_hash_apply(HashTable *ht, apply_func_t apply_func); -ZEND_API void ZEND_FASTCALL zend_hash_apply_with_argument(HashTable *ht, apply_func_arg_t apply_func, void *); -ZEND_API void zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t apply_func, int, ...); - -/* This function should be used with special care (in other words, - * it should usually not be used). When used with the ZEND_HASH_APPLY_STOP - * return value, it assumes things about the order of the elements in the hash. - * Also, it does not provide the same kind of reentrancy protection that - * the standard apply functions do. - */ -ZEND_API void ZEND_FASTCALL zend_hash_reverse_apply(HashTable *ht, apply_func_t apply_func); - - -/* Deletes */ -ZEND_API int ZEND_FASTCALL zend_hash_del(HashTable *ht, zend_string *key); -ZEND_API int ZEND_FASTCALL zend_hash_del_ind(HashTable *ht, zend_string *key); -ZEND_API int ZEND_FASTCALL zend_hash_str_del(HashTable *ht, const char *key, size_t len); -ZEND_API int ZEND_FASTCALL zend_hash_str_del_ind(HashTable *ht, const char *key, size_t len); -ZEND_API int ZEND_FASTCALL zend_hash_index_del(HashTable *ht, zend_ulong h); -ZEND_API void ZEND_FASTCALL zend_hash_del_bucket(HashTable *ht, Bucket *p); - -/* Data retrieval */ -ZEND_API zval* ZEND_FASTCALL zend_hash_find(const HashTable *ht, zend_string *key); -ZEND_API zval* ZEND_FASTCALL zend_hash_str_find(const HashTable *ht, const char *key, size_t len); -ZEND_API zval* ZEND_FASTCALL zend_hash_index_find(const HashTable *ht, zend_ulong h); -ZEND_API zval* ZEND_FASTCALL _zend_hash_index_find(const HashTable *ht, zend_ulong h); - -/* The same as zend_hash_find(), but hash value of the key must be already calculated */ -ZEND_API zval* ZEND_FASTCALL _zend_hash_find_known_hash(const HashTable *ht, zend_string *key); - -static zend_always_inline zval *zend_hash_find_ex(const HashTable *ht, zend_string *key, zend_bool known_hash) -{ - if (known_hash) { - return _zend_hash_find_known_hash(ht, key); - } else { - return zend_hash_find(ht, key); - } -} - -#define ZEND_HASH_INDEX_FIND(_ht, _h, _ret, _not_found) do { \ - if (EXPECTED(HT_FLAGS(_ht) & HASH_FLAG_PACKED)) { \ - if (EXPECTED((zend_ulong)(_h) < (zend_ulong)(_ht)->nNumUsed)) { \ - _ret = &_ht->arData[_h].val; \ - if (UNEXPECTED(Z_TYPE_P(_ret) == IS_UNDEF)) { \ - goto _not_found; \ - } \ - } else { \ - goto _not_found; \ - } \ - } else { \ - _ret = _zend_hash_index_find(_ht, _h); \ - if (UNEXPECTED(_ret == NULL)) { \ - goto _not_found; \ - } \ - } \ - } while (0) - - -/* Misc */ -static zend_always_inline zend_bool zend_hash_exists(const HashTable *ht, zend_string *key) -{ - return zend_hash_find(ht, key) != NULL; -} - -static zend_always_inline zend_bool zend_hash_str_exists(const HashTable *ht, const char *str, size_t len) -{ - return zend_hash_str_find(ht, str, len) != NULL; -} - -static zend_always_inline zend_bool zend_hash_index_exists(const HashTable *ht, zend_ulong h) -{ - return zend_hash_index_find(ht, h) != NULL; -} - -/* traversing */ -ZEND_API HashPosition ZEND_FASTCALL zend_hash_get_current_pos(const HashTable *ht); - -#define zend_hash_has_more_elements_ex(ht, pos) \ - (zend_hash_get_current_key_type_ex(ht, pos) == HASH_KEY_NON_EXISTENT ? FAILURE : SUCCESS) -ZEND_API int ZEND_FASTCALL zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos); -ZEND_API int ZEND_FASTCALL zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos); -ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str_index, zend_ulong *num_index, HashPosition *pos); -ZEND_API void ZEND_FASTCALL zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key, HashPosition *pos); -ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos); -ZEND_API zval* ZEND_FASTCALL zend_hash_get_current_data_ex(HashTable *ht, HashPosition *pos); -ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos); -ZEND_API void ZEND_FASTCALL zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos); - -#define zend_hash_has_more_elements(ht) \ - zend_hash_has_more_elements_ex(ht, &(ht)->nInternalPointer) -#define zend_hash_move_forward(ht) \ - zend_hash_move_forward_ex(ht, &(ht)->nInternalPointer) -#define zend_hash_move_backwards(ht) \ - zend_hash_move_backwards_ex(ht, &(ht)->nInternalPointer) -#define zend_hash_get_current_key(ht, str_index, num_index) \ - zend_hash_get_current_key_ex(ht, str_index, num_index, &(ht)->nInternalPointer) -#define zend_hash_get_current_key_zval(ht, key) \ - zend_hash_get_current_key_zval_ex(ht, key, &(ht)->nInternalPointer) -#define zend_hash_get_current_key_type(ht) \ - zend_hash_get_current_key_type_ex(ht, &(ht)->nInternalPointer) -#define zend_hash_get_current_data(ht) \ - zend_hash_get_current_data_ex(ht, &(ht)->nInternalPointer) -#define zend_hash_internal_pointer_reset(ht) \ - zend_hash_internal_pointer_reset_ex(ht, &(ht)->nInternalPointer) -#define zend_hash_internal_pointer_end(ht) \ - zend_hash_internal_pointer_end_ex(ht, &(ht)->nInternalPointer) - -/* Copying, merging and sorting */ -ZEND_API void ZEND_FASTCALL zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor); -ZEND_API void ZEND_FASTCALL zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, zend_bool overwrite); -ZEND_API void ZEND_FASTCALL zend_hash_merge_ex(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, merge_checker_func_t pMergeSource, void *pParam); -ZEND_API void zend_hash_bucket_swap(Bucket *p, Bucket *q); -ZEND_API void zend_hash_bucket_renum_swap(Bucket *p, Bucket *q); -ZEND_API void zend_hash_bucket_packed_swap(Bucket *p, Bucket *q); -ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t compar, zend_bool ordered); -ZEND_API int ZEND_FASTCALL zend_hash_sort_ex(HashTable *ht, sort_func_t sort_func, compare_func_t compare_func, zend_bool renumber); -ZEND_API zval* ZEND_FASTCALL zend_hash_minmax(const HashTable *ht, compare_func_t compar, uint32_t flag); - -#define zend_hash_sort(ht, compare_func, renumber) \ - zend_hash_sort_ex(ht, zend_sort, compare_func, renumber) - -#define zend_hash_num_elements(ht) \ - (ht)->nNumOfElements - -#define zend_hash_next_free_element(ht) \ - (ht)->nNextFreeElement - -ZEND_API int ZEND_FASTCALL zend_hash_rehash(HashTable *ht); - -#if !ZEND_DEBUG && defined(HAVE_BUILTIN_CONSTANT_P) -# define zend_new_array(size) \ - (__builtin_constant_p(size) ? \ - ((((uint32_t)(size)) <= HT_MIN_SIZE) ? \ - _zend_new_array_0() \ - : \ - _zend_new_array((size)) \ - ) \ - : \ - _zend_new_array((size)) \ - ) -#else -# define zend_new_array(size) \ - _zend_new_array(size) -#endif - -ZEND_API HashTable* ZEND_FASTCALL _zend_new_array_0(void); -ZEND_API HashTable* ZEND_FASTCALL _zend_new_array(uint32_t size); -ZEND_API HashTable* ZEND_FASTCALL zend_new_pair(zval *val1, zval *val2); -ZEND_API uint32_t zend_array_count(HashTable *ht); -ZEND_API HashTable* ZEND_FASTCALL zend_array_dup(HashTable *source); -ZEND_API void ZEND_FASTCALL zend_array_destroy(HashTable *ht); -ZEND_API void ZEND_FASTCALL zend_symtable_clean(HashTable *ht); -ZEND_API HashTable* ZEND_FASTCALL zend_symtable_to_proptable(HashTable *ht); -ZEND_API HashTable* ZEND_FASTCALL zend_proptable_to_symtable(HashTable *ht, zend_bool always_duplicate); - -ZEND_API int ZEND_FASTCALL _zend_handle_numeric_str_ex(const char *key, size_t length, zend_ulong *idx); - -ZEND_API uint32_t ZEND_FASTCALL zend_hash_iterator_add(HashTable *ht, HashPosition pos); -ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterator_pos(uint32_t idx, HashTable *ht); -ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterator_pos_ex(uint32_t idx, zval *array); -ZEND_API void ZEND_FASTCALL zend_hash_iterator_del(uint32_t idx); -ZEND_API HashPosition ZEND_FASTCALL zend_hash_iterators_lower_pos(HashTable *ht, HashPosition start); -ZEND_API void ZEND_FASTCALL _zend_hash_iterators_update(HashTable *ht, HashPosition from, HashPosition to); -ZEND_API void ZEND_FASTCALL zend_hash_iterators_advance(HashTable *ht, HashPosition step); - -static zend_always_inline void zend_hash_iterators_update(HashTable *ht, HashPosition from, HashPosition to) -{ - if (UNEXPECTED(HT_HAS_ITERATORS(ht))) { - _zend_hash_iterators_update(ht, from, to); - } -} - - -END_EXTERN_C() - -#define ZEND_INIT_SYMTABLE(ht) \ - ZEND_INIT_SYMTABLE_EX(ht, 8, 0) - -#define ZEND_INIT_SYMTABLE_EX(ht, n, persistent) \ - zend_hash_init(ht, n, NULL, ZVAL_PTR_DTOR, persistent) - -static zend_always_inline int _zend_handle_numeric_str(const char *key, size_t length, zend_ulong *idx) -{ - const char *tmp = key; - - if (EXPECTED(*tmp > '9')) { - return 0; - } else if (*tmp < '0') { - if (*tmp != '-') { - return 0; - } - tmp++; - if (*tmp > '9' || *tmp < '0') { - return 0; - } - } - return _zend_handle_numeric_str_ex(key, length, idx); -} - -#define ZEND_HANDLE_NUMERIC_STR(key, length, idx) \ - _zend_handle_numeric_str(key, length, &idx) - -#define ZEND_HANDLE_NUMERIC(key, idx) \ - ZEND_HANDLE_NUMERIC_STR(ZSTR_VAL(key), ZSTR_LEN(key), idx) - - -static zend_always_inline zval *zend_hash_find_ind(const HashTable *ht, zend_string *key) -{ - zval *zv; - - zv = zend_hash_find(ht, key); - return (zv && Z_TYPE_P(zv) == IS_INDIRECT) ? - ((Z_TYPE_P(Z_INDIRECT_P(zv)) != IS_UNDEF) ? Z_INDIRECT_P(zv) : NULL) : zv; -} - - -static zend_always_inline zval *zend_hash_find_ex_ind(const HashTable *ht, zend_string *key, zend_bool known_hash) -{ - zval *zv; - - zv = zend_hash_find_ex(ht, key, known_hash); - return (zv && Z_TYPE_P(zv) == IS_INDIRECT) ? - ((Z_TYPE_P(Z_INDIRECT_P(zv)) != IS_UNDEF) ? Z_INDIRECT_P(zv) : NULL) : zv; -} - - -static zend_always_inline int zend_hash_exists_ind(const HashTable *ht, zend_string *key) -{ - zval *zv; - - zv = zend_hash_find(ht, key); - return zv && (Z_TYPE_P(zv) != IS_INDIRECT || - Z_TYPE_P(Z_INDIRECT_P(zv)) != IS_UNDEF); -} - - -static zend_always_inline zval *zend_hash_str_find_ind(const HashTable *ht, const char *str, size_t len) -{ - zval *zv; - - zv = zend_hash_str_find(ht, str, len); - return (zv && Z_TYPE_P(zv) == IS_INDIRECT) ? - ((Z_TYPE_P(Z_INDIRECT_P(zv)) != IS_UNDEF) ? Z_INDIRECT_P(zv) : NULL) : zv; -} - - -static zend_always_inline int zend_hash_str_exists_ind(const HashTable *ht, const char *str, size_t len) -{ - zval *zv; - - zv = zend_hash_str_find(ht, str, len); - return zv && (Z_TYPE_P(zv) != IS_INDIRECT || - Z_TYPE_P(Z_INDIRECT_P(zv)) != IS_UNDEF); -} - -static zend_always_inline zval *zend_symtable_add_new(HashTable *ht, zend_string *key, zval *pData) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_add_new(ht, idx, pData); - } else { - return zend_hash_add_new(ht, key, pData); - } -} - -static zend_always_inline zval *zend_symtable_update(HashTable *ht, zend_string *key, zval *pData) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_update(ht, idx, pData); - } else { - return zend_hash_update(ht, key, pData); - } -} - - -static zend_always_inline zval *zend_symtable_update_ind(HashTable *ht, zend_string *key, zval *pData) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_update(ht, idx, pData); - } else { - return zend_hash_update_ind(ht, key, pData); - } -} - - -static zend_always_inline int zend_symtable_del(HashTable *ht, zend_string *key) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_del(ht, idx); - } else { - return zend_hash_del(ht, key); - } -} - - -static zend_always_inline int zend_symtable_del_ind(HashTable *ht, zend_string *key) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_del(ht, idx); - } else { - return zend_hash_del_ind(ht, key); - } -} - - -static zend_always_inline zval *zend_symtable_find(const HashTable *ht, zend_string *key) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_find(ht, idx); - } else { - return zend_hash_find(ht, key); - } -} - - -static zend_always_inline zval *zend_symtable_find_ind(const HashTable *ht, zend_string *key) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_find(ht, idx); - } else { - return zend_hash_find_ind(ht, key); - } -} - - -static zend_always_inline int zend_symtable_exists(HashTable *ht, zend_string *key) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_exists(ht, idx); - } else { - return zend_hash_exists(ht, key); - } -} - - -static zend_always_inline int zend_symtable_exists_ind(HashTable *ht, zend_string *key) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC(key, idx)) { - return zend_hash_index_exists(ht, idx); - } else { - return zend_hash_exists_ind(ht, key); - } -} - - -static zend_always_inline zval *zend_symtable_str_update(HashTable *ht, const char *str, size_t len, zval *pData) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC_STR(str, len, idx)) { - return zend_hash_index_update(ht, idx, pData); - } else { - return zend_hash_str_update(ht, str, len, pData); - } -} - - -static zend_always_inline zval *zend_symtable_str_update_ind(HashTable *ht, const char *str, size_t len, zval *pData) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC_STR(str, len, idx)) { - return zend_hash_index_update(ht, idx, pData); - } else { - return zend_hash_str_update_ind(ht, str, len, pData); - } -} - - -static zend_always_inline int zend_symtable_str_del(HashTable *ht, const char *str, size_t len) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC_STR(str, len, idx)) { - return zend_hash_index_del(ht, idx); - } else { - return zend_hash_str_del(ht, str, len); - } -} - - -static zend_always_inline int zend_symtable_str_del_ind(HashTable *ht, const char *str, size_t len) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC_STR(str, len, idx)) { - return zend_hash_index_del(ht, idx); - } else { - return zend_hash_str_del_ind(ht, str, len); - } -} - - -static zend_always_inline zval *zend_symtable_str_find(HashTable *ht, const char *str, size_t len) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC_STR(str, len, idx)) { - return zend_hash_index_find(ht, idx); - } else { - return zend_hash_str_find(ht, str, len); - } -} - - -static zend_always_inline int zend_symtable_str_exists(HashTable *ht, const char *str, size_t len) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC_STR(str, len, idx)) { - return zend_hash_index_exists(ht, idx); - } else { - return zend_hash_str_exists(ht, str, len); - } -} - -static zend_always_inline void *zend_hash_add_ptr(HashTable *ht, zend_string *key, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_add(ht, key, &tmp); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_add_new_ptr(HashTable *ht, zend_string *key, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_add_new(ht, key, &tmp); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_str_add_ptr(HashTable *ht, const char *str, size_t len, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_str_add(ht, str, len, &tmp); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_str_add_new_ptr(HashTable *ht, const char *str, size_t len, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_str_add_new(ht, str, len, &tmp); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_update_ptr(HashTable *ht, zend_string *key, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_update(ht, key, &tmp); - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); -} - -static zend_always_inline void *zend_hash_str_update_ptr(HashTable *ht, const char *str, size_t len, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_str_update(ht, str, len, &tmp); - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); -} - -static zend_always_inline void *zend_hash_add_mem(HashTable *ht, zend_string *key, void *pData, size_t size) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, NULL); - if ((zv = zend_hash_add(ht, key, &tmp))) { - Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(Z_PTR_P(zv), pData, size); - return Z_PTR_P(zv); - } - return NULL; -} - -static zend_always_inline void *zend_hash_add_new_mem(HashTable *ht, zend_string *key, void *pData, size_t size) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, NULL); - if ((zv = zend_hash_add_new(ht, key, &tmp))) { - Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(Z_PTR_P(zv), pData, size); - return Z_PTR_P(zv); - } - return NULL; -} - -static zend_always_inline void *zend_hash_str_add_mem(HashTable *ht, const char *str, size_t len, void *pData, size_t size) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, NULL); - if ((zv = zend_hash_str_add(ht, str, len, &tmp))) { - Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(Z_PTR_P(zv), pData, size); - return Z_PTR_P(zv); - } - return NULL; -} - -static zend_always_inline void *zend_hash_str_add_new_mem(HashTable *ht, const char *str, size_t len, void *pData, size_t size) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, NULL); - if ((zv = zend_hash_str_add_new(ht, str, len, &tmp))) { - Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(Z_PTR_P(zv), pData, size); - return Z_PTR_P(zv); - } - return NULL; -} - -static zend_always_inline void *zend_hash_update_mem(HashTable *ht, zend_string *key, void *pData, size_t size) -{ - void *p; - - p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(p, pData, size); - return zend_hash_update_ptr(ht, key, p); -} - -static zend_always_inline void *zend_hash_str_update_mem(HashTable *ht, const char *str, size_t len, void *pData, size_t size) -{ - void *p; - - p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(p, pData, size); - return zend_hash_str_update_ptr(ht, str, len, p); -} - -static zend_always_inline void *zend_hash_index_add_ptr(HashTable *ht, zend_ulong h, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_index_add(ht, h, &tmp); - return zv ? Z_PTR_P(zv) : NULL; -} - -static zend_always_inline void *zend_hash_index_add_new_ptr(HashTable *ht, zend_ulong h, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_index_add_new(ht, h, &tmp); - return zv ? Z_PTR_P(zv) : NULL; -} - -static zend_always_inline void *zend_hash_index_update_ptr(HashTable *ht, zend_ulong h, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_index_update(ht, h, &tmp); - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); -} - -static zend_always_inline void *zend_hash_index_add_mem(HashTable *ht, zend_ulong h, void *pData, size_t size) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, NULL); - if ((zv = zend_hash_index_add(ht, h, &tmp))) { - Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(Z_PTR_P(zv), pData, size); - return Z_PTR_P(zv); - } - return NULL; -} - -static zend_always_inline void *zend_hash_next_index_insert_ptr(HashTable *ht, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_hash_next_index_insert(ht, &tmp); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_index_update_mem(HashTable *ht, zend_ulong h, void *pData, size_t size) -{ - void *p; - - p = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(p, pData, size); - return zend_hash_index_update_ptr(ht, h, p); -} - -static zend_always_inline void *zend_hash_next_index_insert_mem(HashTable *ht, void *pData, size_t size) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, NULL); - if ((zv = zend_hash_next_index_insert(ht, &tmp))) { - Z_PTR_P(zv) = pemalloc(size, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); - memcpy(Z_PTR_P(zv), pData, size); - return Z_PTR_P(zv); - } - return NULL; -} - -static zend_always_inline void *zend_hash_find_ptr(const HashTable *ht, zend_string *key) -{ - zval *zv; - - zv = zend_hash_find(ht, key); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_find_ex_ptr(const HashTable *ht, zend_string *key, zend_bool known_hash) -{ - zval *zv; - - zv = zend_hash_find_ex(ht, key, known_hash); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_str_find_ptr(const HashTable *ht, const char *str, size_t len) -{ - zval *zv; - - zv = zend_hash_str_find(ht, str, len); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline void *zend_hash_index_find_ptr(const HashTable *ht, zend_ulong h) -{ - zval *zv; - - zv = zend_hash_index_find(ht, h); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -static zend_always_inline zval *zend_hash_index_find_deref(HashTable *ht, zend_ulong h) -{ - zval *zv = zend_hash_index_find(ht, h); - if (zv) { - ZVAL_DEREF(zv); - } - return zv; -} - -static zend_always_inline zval *zend_hash_find_deref(HashTable *ht, zend_string *str) -{ - zval *zv = zend_hash_find(ht, str); - if (zv) { - ZVAL_DEREF(zv); - } - return zv; -} - -static zend_always_inline zval *zend_hash_str_find_deref(HashTable *ht, const char *str, size_t len) -{ - zval *zv = zend_hash_str_find(ht, str, len); - if (zv) { - ZVAL_DEREF(zv); - } - return zv; -} - -static zend_always_inline void *zend_symtable_str_find_ptr(HashTable *ht, const char *str, size_t len) -{ - zend_ulong idx; - - if (ZEND_HANDLE_NUMERIC_STR(str, len, idx)) { - return zend_hash_index_find_ptr(ht, idx); - } else { - return zend_hash_str_find_ptr(ht, str, len); - } -} - -static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht, HashPosition *pos) -{ - zval *zv; - - zv = zend_hash_get_current_data_ex(ht, pos); - if (zv) { - ZEND_ASSUME(Z_PTR_P(zv)); - return Z_PTR_P(zv); - } else { - return NULL; - } -} - -#define zend_hash_get_current_data_ptr(ht) \ - zend_hash_get_current_data_ptr_ex(ht, &(ht)->nInternalPointer) - -#define ZEND_HASH_FOREACH(_ht, indirect) do { \ - HashTable *__ht = (_ht); \ - Bucket *_p = __ht->arData; \ - Bucket *_end = _p + __ht->nNumUsed; \ - for (; _p != _end; _p++) { \ - zval *_z = &_p->val; \ - if (indirect && Z_TYPE_P(_z) == IS_INDIRECT) { \ - _z = Z_INDIRECT_P(_z); \ - } \ - if (UNEXPECTED(Z_TYPE_P(_z) == IS_UNDEF)) continue; - -#define ZEND_HASH_REVERSE_FOREACH(_ht, indirect) do { \ - HashTable *__ht = (_ht); \ - uint32_t _idx = __ht->nNumUsed; \ - Bucket *_p = __ht->arData + _idx; \ - zval *_z; \ - for (_idx = __ht->nNumUsed; _idx > 0; _idx--) { \ - _p--; \ - _z = &_p->val; \ - if (indirect && Z_TYPE_P(_z) == IS_INDIRECT) { \ - _z = Z_INDIRECT_P(_z); \ - } \ - if (UNEXPECTED(Z_TYPE_P(_z) == IS_UNDEF)) continue; - -#define ZEND_HASH_FOREACH_END() \ - } \ - } while (0) - -#define ZEND_HASH_FOREACH_END_DEL() \ - __ht->nNumOfElements--; \ - do { \ - uint32_t j = HT_IDX_TO_HASH(_idx - 1); \ - uint32_t nIndex = _p->h | __ht->nTableMask; \ - uint32_t i = HT_HASH(__ht, nIndex); \ - if (UNEXPECTED(j != i)) { \ - Bucket *prev = HT_HASH_TO_BUCKET(__ht, i); \ - while (Z_NEXT(prev->val) != j) { \ - i = Z_NEXT(prev->val); \ - prev = HT_HASH_TO_BUCKET(__ht, i); \ - } \ - Z_NEXT(prev->val) = Z_NEXT(_p->val); \ - } else { \ - HT_HASH(__ht, nIndex) = Z_NEXT(_p->val); \ - } \ - } while (0); \ - } \ - __ht->nNumUsed = _idx; \ - } while (0) - -#define ZEND_HASH_FOREACH_BUCKET(ht, _bucket) \ - ZEND_HASH_FOREACH(ht, 0); \ - _bucket = _p; - -#define ZEND_HASH_FOREACH_VAL(ht, _val) \ - ZEND_HASH_FOREACH(ht, 0); \ - _val = _z; - -#define ZEND_HASH_FOREACH_VAL_IND(ht, _val) \ - ZEND_HASH_FOREACH(ht, 1); \ - _val = _z; - -#define ZEND_HASH_FOREACH_PTR(ht, _ptr) \ - ZEND_HASH_FOREACH(ht, 0); \ - _ptr = Z_PTR_P(_z); - -#define ZEND_HASH_FOREACH_NUM_KEY(ht, _h) \ - ZEND_HASH_FOREACH(ht, 0); \ - _h = _p->h; - -#define ZEND_HASH_FOREACH_STR_KEY(ht, _key) \ - ZEND_HASH_FOREACH(ht, 0); \ - _key = _p->key; - -#define ZEND_HASH_FOREACH_KEY(ht, _h, _key) \ - ZEND_HASH_FOREACH(ht, 0); \ - _h = _p->h; \ - _key = _p->key; - -#define ZEND_HASH_FOREACH_NUM_KEY_VAL(ht, _h, _val) \ - ZEND_HASH_FOREACH(ht, 0); \ - _h = _p->h; \ - _val = _z; - -#define ZEND_HASH_FOREACH_STR_KEY_VAL(ht, _key, _val) \ - ZEND_HASH_FOREACH(ht, 0); \ - _key = _p->key; \ - _val = _z; - -#define ZEND_HASH_FOREACH_KEY_VAL(ht, _h, _key, _val) \ - ZEND_HASH_FOREACH(ht, 0); \ - _h = _p->h; \ - _key = _p->key; \ - _val = _z; - -#define ZEND_HASH_FOREACH_STR_KEY_VAL_IND(ht, _key, _val) \ - ZEND_HASH_FOREACH(ht, 1); \ - _key = _p->key; \ - _val = _z; - -#define ZEND_HASH_FOREACH_KEY_VAL_IND(ht, _h, _key, _val) \ - ZEND_HASH_FOREACH(ht, 1); \ - _h = _p->h; \ - _key = _p->key; \ - _val = _z; - -#define ZEND_HASH_FOREACH_NUM_KEY_PTR(ht, _h, _ptr) \ - ZEND_HASH_FOREACH(ht, 0); \ - _h = _p->h; \ - _ptr = Z_PTR_P(_z); - -#define ZEND_HASH_FOREACH_STR_KEY_PTR(ht, _key, _ptr) \ - ZEND_HASH_FOREACH(ht, 0); \ - _key = _p->key; \ - _ptr = Z_PTR_P(_z); - -#define ZEND_HASH_FOREACH_KEY_PTR(ht, _h, _key, _ptr) \ - ZEND_HASH_FOREACH(ht, 0); \ - _h = _p->h; \ - _key = _p->key; \ - _ptr = Z_PTR_P(_z); - -#define ZEND_HASH_REVERSE_FOREACH_BUCKET(ht, _bucket) \ - ZEND_HASH_REVERSE_FOREACH(ht, 0); \ - _bucket = _p; - -#define ZEND_HASH_REVERSE_FOREACH_VAL(ht, _val) \ - ZEND_HASH_REVERSE_FOREACH(ht, 0); \ - _val = _z; - -#define ZEND_HASH_REVERSE_FOREACH_PTR(ht, _ptr) \ - ZEND_HASH_REVERSE_FOREACH(ht, 0); \ - _ptr = Z_PTR_P(_z); - -#define ZEND_HASH_REVERSE_FOREACH_VAL_IND(ht, _val) \ - ZEND_HASH_REVERSE_FOREACH(ht, 1); \ - _val = _z; - -#define ZEND_HASH_REVERSE_FOREACH_STR_KEY_VAL(ht, _key, _val) \ - ZEND_HASH_REVERSE_FOREACH(ht, 0); \ - _key = _p->key; \ - _val = _z; - -#define ZEND_HASH_REVERSE_FOREACH_KEY_VAL(ht, _h, _key, _val) \ - ZEND_HASH_REVERSE_FOREACH(ht, 0); \ - _h = _p->h; \ - _key = _p->key; \ - _val = _z; - -#define ZEND_HASH_REVERSE_FOREACH_KEY_VAL_IND(ht, _h, _key, _val) \ - ZEND_HASH_REVERSE_FOREACH(ht, 1); \ - _h = _p->h; \ - _key = _p->key; \ - _val = _z; - -/* The following macros are useful to insert a sequence of new elements - * of packed array. They may be used instead of series of - * zend_hash_next_index_insert_new() - * (HashTable must have enough free buckets). - */ -#define ZEND_HASH_FILL_PACKED(ht) do { \ - HashTable *__fill_ht = (ht); \ - Bucket *__fill_bkt = __fill_ht->arData + __fill_ht->nNumUsed; \ - uint32_t __fill_idx = __fill_ht->nNumUsed; \ - ZEND_ASSERT(HT_FLAGS(__fill_ht) & HASH_FLAG_PACKED); - -#define ZEND_HASH_FILL_SET(_val) \ - ZVAL_COPY_VALUE(&__fill_bkt->val, _val) - -#define ZEND_HASH_FILL_SET_NULL() \ - ZVAL_NULL(&__fill_bkt->val) - -#define ZEND_HASH_FILL_SET_LONG(_val) \ - ZVAL_LONG(&__fill_bkt->val, _val) - -#define ZEND_HASH_FILL_SET_DOUBLE(_val) \ - ZVAL_DOUBLE(&__fill_bkt->val, _val) - -#define ZEND_HASH_FILL_SET_STR(_val) \ - ZVAL_STR(&__fill_bkt->val, _val) - -#define ZEND_HASH_FILL_SET_STR_COPY(_val) \ - ZVAL_STR_COPY(&__fill_bkt->val, _val) - -#define ZEND_HASH_FILL_SET_INTERNED_STR(_val) \ - ZVAL_INTERNED_STR(&__fill_bkt->val, _val) - -#define ZEND_HASH_FILL_NEXT() do {\ - __fill_bkt->h = (__fill_idx); \ - __fill_bkt->key = NULL; \ - __fill_bkt++; \ - __fill_idx++; \ - } while (0) - -#define ZEND_HASH_FILL_ADD(_val) do { \ - ZEND_HASH_FILL_SET(_val); \ - ZEND_HASH_FILL_NEXT(); \ - } while (0) - -#define ZEND_HASH_FILL_END() \ - __fill_ht->nNumUsed = __fill_idx; \ - __fill_ht->nNumOfElements = __fill_idx; \ - __fill_ht->nNextFreeElement = __fill_idx; \ - __fill_ht->nInternalPointer = 0; \ - } while (0) - -static zend_always_inline zval *_zend_hash_append_ex(HashTable *ht, zend_string *key, zval *zv, int interned) -{ - uint32_t idx = ht->nNumUsed++; - uint32_t nIndex; - Bucket *p = ht->arData + idx; - - ZVAL_COPY_VALUE(&p->val, zv); - if (!interned && !ZSTR_IS_INTERNED(key)) { - HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; - zend_string_addref(key); - zend_string_hash_val(key); - } - p->key = key; - p->h = ZSTR_H(key); - nIndex = (uint32_t)p->h | ht->nTableMask; - Z_NEXT(p->val) = HT_HASH(ht, nIndex); - HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); - ht->nNumOfElements++; - return &p->val; -} - -static zend_always_inline zval *_zend_hash_append(HashTable *ht, zend_string *key, zval *zv) -{ - return _zend_hash_append_ex(ht, key, zv, 0); -} - -static zend_always_inline zval *_zend_hash_append_ptr_ex(HashTable *ht, zend_string *key, void *ptr, int interned) -{ - uint32_t idx = ht->nNumUsed++; - uint32_t nIndex; - Bucket *p = ht->arData + idx; - - ZVAL_PTR(&p->val, ptr); - if (!interned && !ZSTR_IS_INTERNED(key)) { - HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; - zend_string_addref(key); - zend_string_hash_val(key); - } - p->key = key; - p->h = ZSTR_H(key); - nIndex = (uint32_t)p->h | ht->nTableMask; - Z_NEXT(p->val) = HT_HASH(ht, nIndex); - HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); - ht->nNumOfElements++; - return &p->val; -} - -static zend_always_inline zval *_zend_hash_append_ptr(HashTable *ht, zend_string *key, void *ptr) -{ - return _zend_hash_append_ptr_ex(ht, key, ptr, 0); -} - -static zend_always_inline void _zend_hash_append_ind(HashTable *ht, zend_string *key, zval *ptr) -{ - uint32_t idx = ht->nNumUsed++; - uint32_t nIndex; - Bucket *p = ht->arData + idx; - - ZVAL_INDIRECT(&p->val, ptr); - if (!ZSTR_IS_INTERNED(key)) { - HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; - zend_string_addref(key); - zend_string_hash_val(key); - } - p->key = key; - p->h = ZSTR_H(key); - nIndex = (uint32_t)p->h | ht->nTableMask; - Z_NEXT(p->val) = HT_HASH(ht, nIndex); - HT_HASH(ht, nIndex) = HT_IDX_TO_HASH(idx); - ht->nNumOfElements++; -} - -#endif /* ZEND_HASH_H */ diff --git a/include/php/Zend/zend_highlight.h b/include/php/Zend/zend_highlight.h deleted file mode 100644 index 92a4dbc..0000000 --- a/include/php/Zend/zend_highlight.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_HIGHLIGHT_H -#define ZEND_HIGHLIGHT_H - -#define HL_COMMENT_COLOR "#FF8000" /* orange */ -#define HL_DEFAULT_COLOR "#0000BB" /* blue */ -#define HL_HTML_COLOR "#000000" /* black */ -#define HL_STRING_COLOR "#DD0000" /* red */ -#define HL_KEYWORD_COLOR "#007700" /* green */ - - -typedef struct _zend_syntax_highlighter_ini { - char *highlight_html; - char *highlight_comment; - char *highlight_default; - char *highlight_string; - char *highlight_keyword; -} zend_syntax_highlighter_ini; - - -BEGIN_EXTERN_C() -ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini); -ZEND_API void zend_strip(void); -ZEND_API int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini); -ZEND_API int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name); -ZEND_API void zend_html_putc(char c); -ZEND_API void zend_html_puts(const char *s, size_t len); -END_EXTERN_C() - -extern zend_syntax_highlighter_ini syntax_highlighter_ini; - -#endif diff --git a/include/php/Zend/zend_inheritance.h b/include/php/Zend/zend_inheritance.h deleted file mode 100644 index c4e9e10..0000000 --- a/include/php/Zend/zend_inheritance.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_INHERITANCE_H -#define ZEND_INHERITANCE_H - -#include "zend.h" - -BEGIN_EXTERN_C() - -ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry *iface); -ZEND_API void zend_do_inheritance_ex(zend_class_entry *ce, zend_class_entry *parent_ce, zend_bool checked); - -#define zend_do_inheritance(ce, parent_ce) \ - zend_do_inheritance_ex(ce, parent_ce, 0) - -ZEND_API int zend_do_link_class(zend_class_entry *ce, zend_string *lc_parent_name); - -void zend_verify_abstract_class(zend_class_entry *ce); -void zend_check_deprecated_constructor(const zend_class_entry *ce); -void zend_build_properties_info_table(zend_class_entry *ce); -zend_bool zend_try_early_bind(zend_class_entry *ce, zend_class_entry *parent_ce, zend_string *lcname, zval *delayed_early_binding); - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_ini.h b/include/php/Zend/zend_ini.h deleted file mode 100644 index 5964448..0000000 --- a/include/php/Zend/zend_ini.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_INI_H -#define ZEND_INI_H - -#define ZEND_INI_USER (1<<0) -#define ZEND_INI_PERDIR (1<<1) -#define ZEND_INI_SYSTEM (1<<2) - -#define ZEND_INI_ALL (ZEND_INI_USER|ZEND_INI_PERDIR|ZEND_INI_SYSTEM) - -#define ZEND_INI_MH(name) int name(zend_ini_entry *entry, zend_string *new_value, void *mh_arg1, void *mh_arg2, void *mh_arg3, int stage) -#define ZEND_INI_DISP(name) ZEND_COLD void name(zend_ini_entry *ini_entry, int type) - -typedef struct _zend_ini_entry_def { - const char *name; - ZEND_INI_MH((*on_modify)); - void *mh_arg1; - void *mh_arg2; - void *mh_arg3; - const char *value; - void (*displayer)(zend_ini_entry *ini_entry, int type); - - uint32_t value_length; - uint16_t name_length; - uint8_t modifiable; -} zend_ini_entry_def; - -struct _zend_ini_entry { - zend_string *name; - ZEND_INI_MH((*on_modify)); - void *mh_arg1; - void *mh_arg2; - void *mh_arg3; - zend_string *value; - zend_string *orig_value; - void (*displayer)(zend_ini_entry *ini_entry, int type); - - int module_number; - - uint8_t modifiable; - uint8_t orig_modifiable; - uint8_t modified; - -}; - -BEGIN_EXTERN_C() -ZEND_API int zend_ini_startup(void); -ZEND_API int zend_ini_shutdown(void); -ZEND_API int zend_ini_global_shutdown(void); -ZEND_API int zend_ini_deactivate(void); -ZEND_API void zend_ini_dtor(HashTable *ini_directives); - -ZEND_API int zend_copy_ini_directives(void); - -ZEND_API void zend_ini_sort_entries(void); - -ZEND_API int zend_register_ini_entries(const zend_ini_entry_def *ini_entry, int module_number); -ZEND_API void zend_unregister_ini_entries(int module_number); -ZEND_API void zend_ini_refresh_caches(int stage); -ZEND_API int zend_alter_ini_entry(zend_string *name, zend_string *new_value, int modify_type, int stage); -ZEND_API int zend_alter_ini_entry_ex(zend_string *name, zend_string *new_value, int modify_type, int stage, int force_change); -ZEND_API int zend_alter_ini_entry_chars(zend_string *name, const char *value, size_t value_length, int modify_type, int stage); -ZEND_API int zend_alter_ini_entry_chars_ex(zend_string *name, const char *value, size_t value_length, int modify_type, int stage, int force_change); -ZEND_API int zend_restore_ini_entry(zend_string *name, int stage); -ZEND_API void display_ini_entries(zend_module_entry *module); - -ZEND_API zend_long zend_ini_long(char *name, size_t name_length, int orig); -ZEND_API double zend_ini_double(char *name, size_t name_length, int orig); -ZEND_API char *zend_ini_string(char *name, size_t name_length, int orig); -ZEND_API char *zend_ini_string_ex(char *name, size_t name_length, int orig, zend_bool *exists); -ZEND_API zend_string *zend_ini_get_value(zend_string *name); -ZEND_API zend_bool zend_ini_parse_bool(zend_string *str); - -ZEND_API int zend_ini_register_displayer(char *name, uint32_t name_length, void (*displayer)(zend_ini_entry *ini_entry, int type)); - -ZEND_API ZEND_INI_DISP(zend_ini_boolean_displayer_cb); -ZEND_API ZEND_INI_DISP(zend_ini_color_displayer_cb); -ZEND_API ZEND_INI_DISP(display_link_numbers); -END_EXTERN_C() - -#define ZEND_INI_BEGIN() static const zend_ini_entry_def ini_entries[] = { -#define ZEND_INI_END() { NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0} }; - -#define ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, arg1, arg2, arg3, displayer) \ - { name, on_modify, arg1, arg2, arg3, default_value, displayer, sizeof(default_value)-1, sizeof(name)-1, modifiable }, - -#define ZEND_INI_ENTRY3(name, default_value, modifiable, on_modify, arg1, arg2, arg3) \ - ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, arg1, arg2, arg3, NULL) - -#define ZEND_INI_ENTRY2_EX(name, default_value, modifiable, on_modify, arg1, arg2, displayer) \ - ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, arg1, arg2, NULL, displayer) - -#define ZEND_INI_ENTRY2(name, default_value, modifiable, on_modify, arg1, arg2) \ - ZEND_INI_ENTRY2_EX(name, default_value, modifiable, on_modify, arg1, arg2, NULL) - -#define ZEND_INI_ENTRY1_EX(name, default_value, modifiable, on_modify, arg1, displayer) \ - ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, arg1, NULL, NULL, displayer) - -#define ZEND_INI_ENTRY1(name, default_value, modifiable, on_modify, arg1) \ - ZEND_INI_ENTRY1_EX(name, default_value, modifiable, on_modify, arg1, NULL) - -#define ZEND_INI_ENTRY_EX(name, default_value, modifiable, on_modify, displayer) \ - ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, NULL, NULL, NULL, displayer) - -#define ZEND_INI_ENTRY(name, default_value, modifiable, on_modify) \ - ZEND_INI_ENTRY_EX(name, default_value, modifiable, on_modify, NULL) - -#ifdef ZTS -#define STD_ZEND_INI_ENTRY(name, default_value, modifiable, on_modify, property_name, struct_type, struct_ptr) \ - ZEND_INI_ENTRY2(name, default_value, modifiable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id) -#define STD_ZEND_INI_ENTRY_EX(name, default_value, modifiable, on_modify, property_name, struct_type, struct_ptr, displayer) \ - ZEND_INI_ENTRY2_EX(name, default_value, modifiable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, displayer) -#define STD_ZEND_INI_BOOLEAN(name, default_value, modifiable, on_modify, property_name, struct_type, struct_ptr) \ - ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, NULL, zend_ini_boolean_displayer_cb) -#else -#define STD_ZEND_INI_ENTRY(name, default_value, modifiable, on_modify, property_name, struct_type, struct_ptr) \ - ZEND_INI_ENTRY2(name, default_value, modifiable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr) -#define STD_ZEND_INI_ENTRY_EX(name, default_value, modifiable, on_modify, property_name, struct_type, struct_ptr, displayer) \ - ZEND_INI_ENTRY2_EX(name, default_value, modifiable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, displayer) -#define STD_ZEND_INI_BOOLEAN(name, default_value, modifiable, on_modify, property_name, struct_type, struct_ptr) \ - ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, NULL, zend_ini_boolean_displayer_cb) -#endif - -#define INI_INT(name) zend_ini_long((name), sizeof(name)-1, 0) -#define INI_FLT(name) zend_ini_double((name), sizeof(name)-1, 0) -#define INI_STR(name) zend_ini_string_ex((name), sizeof(name)-1, 0, NULL) -#define INI_BOOL(name) ((zend_bool) INI_INT(name)) - -#define INI_ORIG_INT(name) zend_ini_long((name), sizeof(name)-1, 1) -#define INI_ORIG_FLT(name) zend_ini_double((name), sizeof(name)-1, 1) -#define INI_ORIG_STR(name) zend_ini_string((name), sizeof(name)-1, 1) -#define INI_ORIG_BOOL(name) ((zend_bool) INI_ORIG_INT(name)) - -#define REGISTER_INI_ENTRIES() zend_register_ini_entries(ini_entries, module_number) -#define UNREGISTER_INI_ENTRIES() zend_unregister_ini_entries(module_number) -#define DISPLAY_INI_ENTRIES() display_ini_entries(zend_module) - -#define REGISTER_INI_DISPLAYER(name, displayer) zend_ini_register_displayer((name), sizeof(name)-1, displayer) -#define REGISTER_INI_BOOLEAN(name) REGISTER_INI_DISPLAYER(name, zend_ini_boolean_displayer_cb) - -/* Standard message handlers */ -BEGIN_EXTERN_C() -ZEND_API ZEND_INI_MH(OnUpdateBool); -ZEND_API ZEND_INI_MH(OnUpdateLong); -ZEND_API ZEND_INI_MH(OnUpdateLongGEZero); -ZEND_API ZEND_INI_MH(OnUpdateReal); -ZEND_API ZEND_INI_MH(OnUpdateString); -ZEND_API ZEND_INI_MH(OnUpdateStringUnempty); -END_EXTERN_C() - -#define ZEND_INI_DISPLAY_ORIG 1 -#define ZEND_INI_DISPLAY_ACTIVE 2 - -#define ZEND_INI_STAGE_STARTUP (1<<0) -#define ZEND_INI_STAGE_SHUTDOWN (1<<1) -#define ZEND_INI_STAGE_ACTIVATE (1<<2) -#define ZEND_INI_STAGE_DEACTIVATE (1<<3) -#define ZEND_INI_STAGE_RUNTIME (1<<4) -#define ZEND_INI_STAGE_HTACCESS (1<<5) - -#define ZEND_INI_STAGE_IN_REQUEST (ZEND_INI_STAGE_ACTIVATE|ZEND_INI_STAGE_DEACTIVATE|ZEND_INI_STAGE_RUNTIME|ZEND_INI_STAGE_HTACCESS) - -/* INI parsing engine */ -typedef void (*zend_ini_parser_cb_t)(zval *arg1, zval *arg2, zval *arg3, int callback_type, void *arg); -BEGIN_EXTERN_C() -ZEND_API int zend_parse_ini_file(zend_file_handle *fh, zend_bool unbuffered_errors, int scanner_mode, zend_ini_parser_cb_t ini_parser_cb, void *arg); -ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int scanner_mode, zend_ini_parser_cb_t ini_parser_cb, void *arg); -END_EXTERN_C() - -/* INI entries */ -#define ZEND_INI_PARSER_ENTRY 1 /* Normal entry: foo = bar */ -#define ZEND_INI_PARSER_SECTION 2 /* Section: [foobar] */ -#define ZEND_INI_PARSER_POP_ENTRY 3 /* Offset entry: foo[] = bar */ - -typedef struct _zend_ini_parser_param { - zend_ini_parser_cb_t ini_parser_cb; - void *arg; -} zend_ini_parser_param; - -#endif /* ZEND_INI_H */ diff --git a/include/php/Zend/zend_ini_parser.h b/include/php/Zend/zend_ini_parser.h deleted file mode 100644 index 30a4e20..0000000 --- a/include/php/Zend/zend_ini_parser.h +++ /dev/null @@ -1,78 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -#ifndef YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED -# define YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int ini_debug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - END = 0, - TC_SECTION = 258, - TC_RAW = 259, - TC_CONSTANT = 260, - TC_NUMBER = 261, - TC_STRING = 262, - TC_WHITESPACE = 263, - TC_LABEL = 264, - TC_OFFSET = 265, - TC_DOLLAR_CURLY = 266, - TC_VARNAME = 267, - TC_QUOTED_STRING = 268, - BOOL_TRUE = 269, - BOOL_FALSE = 270, - NULL_NULL = 271, - END_OF_LINE = 272 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef int YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - - -int ini_parse (void); - -#endif /* !YY_INI_ZEND_ZEND_INI_PARSER_H_INCLUDED */ diff --git a/include/php/Zend/zend_ini_scanner.h b/include/php/Zend/zend_ini_scanner.h deleted file mode 100644 index ddb9247..0000000 --- a/include/php/Zend/zend_ini_scanner.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef _ZEND_INI_SCANNER_H -#define _ZEND_INI_SCANNER_H - -/* Scanner modes */ -#define ZEND_INI_SCANNER_NORMAL 0 /* Normal mode. [DEFAULT] */ -#define ZEND_INI_SCANNER_RAW 1 /* Raw mode. Option values are not parsed */ -#define ZEND_INI_SCANNER_TYPED 2 /* Typed mode. */ - -BEGIN_EXTERN_C() -ZEND_COLD int zend_ini_scanner_get_lineno(void); -ZEND_COLD char *zend_ini_scanner_get_filename(void); -int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode); -int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode); -int ini_lex(zval *ini_lval); -void shutdown_ini_scanner(void); -END_EXTERN_C() - -#endif /* _ZEND_INI_SCANNER_H */ diff --git a/include/php/Zend/zend_ini_scanner_defs.h b/include/php/Zend/zend_ini_scanner_defs.h deleted file mode 100644 index 9fe627c..0000000 --- a/include/php/Zend/zend_ini_scanner_defs.h +++ /dev/null @@ -1,12 +0,0 @@ -/* Generated by re2c 0.13.5 */ - -enum YYCONDTYPE { - yycINITIAL, - yycST_OFFSET, - yycST_SECTION_VALUE, - yycST_VALUE, - yycST_SECTION_RAW, - yycST_DOUBLE_QUOTES, - yycST_VARNAME, - yycST_RAW, -}; diff --git a/include/php/Zend/zend_interfaces.h b/include/php/Zend/zend_interfaces.h deleted file mode 100644 index 44770a1..0000000 --- a/include/php/Zend/zend_interfaces.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_INTERFACES_H -#define ZEND_INTERFACES_H - -#include "zend.h" -#include "zend_API.h" - -BEGIN_EXTERN_C() - -extern ZEND_API zend_class_entry *zend_ce_traversable; -extern ZEND_API zend_class_entry *zend_ce_aggregate; -extern ZEND_API zend_class_entry *zend_ce_iterator; -extern ZEND_API zend_class_entry *zend_ce_arrayaccess; -extern ZEND_API zend_class_entry *zend_ce_serializable; -extern ZEND_API zend_class_entry *zend_ce_countable; - -typedef struct _zend_user_iterator { - zend_object_iterator it; - zend_class_entry *ce; - zval value; -} zend_user_iterator; - -ZEND_API zval* zend_call_method(zval *object_pp, zend_class_entry *obj_ce, zend_function **fn_proxy, const char *function_name, size_t function_name_len, zval *retval, int param_count, zval* arg1, zval* arg2); - -#define zend_call_method_with_0_params(obj, obj_ce, fn_proxy, function_name, retval) \ - zend_call_method(obj, obj_ce, fn_proxy, function_name, sizeof(function_name)-1, retval, 0, NULL, NULL) - -#define zend_call_method_with_1_params(obj, obj_ce, fn_proxy, function_name, retval, arg1) \ - zend_call_method(obj, obj_ce, fn_proxy, function_name, sizeof(function_name)-1, retval, 1, arg1, NULL) - -#define zend_call_method_with_2_params(obj, obj_ce, fn_proxy, function_name, retval, arg1, arg2) \ - zend_call_method(obj, obj_ce, fn_proxy, function_name, sizeof(function_name)-1, retval, 2, arg1, arg2) - -#define REGISTER_MAGIC_INTERFACE(class_name, class_name_str) \ - {\ - zend_class_entry ce;\ - INIT_CLASS_ENTRY(ce, # class_name_str, zend_funcs_ ## class_name) \ - zend_ce_ ## class_name = zend_register_internal_interface(&ce);\ - zend_ce_ ## class_name->interface_gets_implemented = zend_implement_ ## class_name;\ - } - -#define REGISTER_MAGIC_IMPLEMENT(class_name, interface_name) \ - zend_class_implements(zend_ce_ ## class_name, 1, zend_ce_ ## interface_name) - -ZEND_API void zend_user_it_rewind(zend_object_iterator *_iter); -ZEND_API int zend_user_it_valid(zend_object_iterator *_iter); -ZEND_API void zend_user_it_get_current_key(zend_object_iterator *_iter, zval *key); -ZEND_API zval *zend_user_it_get_current_data(zend_object_iterator *_iter); -ZEND_API void zend_user_it_move_forward(zend_object_iterator *_iter); -ZEND_API void zend_user_it_invalidate_current(zend_object_iterator *_iter); - -ZEND_API void zend_user_it_new_iterator(zend_class_entry *ce, zval *object, zval *iterator); -ZEND_API zend_object_iterator *zend_user_it_get_new_iterator(zend_class_entry *ce, zval *object, int by_ref); - -ZEND_API void zend_register_interfaces(void); - -ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, size_t *buf_len, zend_serialize_data *data); -ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len, zend_unserialize_data *data); - -ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, size_t *buf_len, zend_serialize_data *data); -ZEND_API int zend_class_unserialize_deny(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len, zend_unserialize_data *data); - -END_EXTERN_C() - -#endif /* ZEND_INTERFACES_H */ diff --git a/include/php/Zend/zend_istdiostream.h b/include/php/Zend/zend_istdiostream.h deleted file mode 100644 index 74470d2..0000000 --- a/include/php/Zend/zend_istdiostream.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef _ZEND_STDIOSTREAM -#define _ZEND_STDIOSTREAM - -#if defined(ZTS) && !defined(HAVE_CLASS_ISTDIOSTREAM) -class istdiostream : public istream -{ -private: - stdiobuf _file; -public: - istdiostream (FILE* __f) : istream(), _file(__f) { init(&_file); } - stdiobuf* rdbuf()/* const */ { return &_file; } -}; -#endif - -#endif diff --git a/include/php/Zend/zend_iterators.h b/include/php/Zend/zend_iterators.h deleted file mode 100644 index 941b260..0000000 --- a/include/php/Zend/zend_iterators.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - | Marcus Boerger | - +----------------------------------------------------------------------+ -*/ - -/* These iterators were designed to operate within the foreach() - * structures provided by the engine, but could be extended for use - * with other iterative engine opcodes. - * These methods have similar semantics to the zend_hash API functions - * with similar names. - * */ - -typedef struct _zend_object_iterator zend_object_iterator; - -typedef struct _zend_object_iterator_funcs { - /* release all resources associated with this iterator instance */ - void (*dtor)(zend_object_iterator *iter); - - /* check for end of iteration (FAILURE or SUCCESS if data is valid) */ - int (*valid)(zend_object_iterator *iter); - - /* fetch the item data for the current element */ - zval *(*get_current_data)(zend_object_iterator *iter); - - /* fetch the key for the current element (optional, may be NULL). The key - * should be written into the provided zval* using the ZVAL_* macros. If - * this handler is not provided auto-incrementing integer keys will be - * used. */ - void (*get_current_key)(zend_object_iterator *iter, zval *key); - - /* step forwards to next element */ - void (*move_forward)(zend_object_iterator *iter); - - /* rewind to start of data (optional, may be NULL) */ - void (*rewind)(zend_object_iterator *iter); - - /* invalidate current value/key (optional, may be NULL) */ - void (*invalidate_current)(zend_object_iterator *iter); -} zend_object_iterator_funcs; - -struct _zend_object_iterator { - zend_object std; - zval data; - const zend_object_iterator_funcs *funcs; - zend_ulong index; /* private to fe_reset/fe_fetch opcodes */ -}; - -typedef struct _zend_class_iterator_funcs { - zend_function *zf_new_iterator; - zend_function *zf_valid; - zend_function *zf_current; - zend_function *zf_key; - zend_function *zf_next; - zend_function *zf_rewind; -} zend_class_iterator_funcs; - -BEGIN_EXTERN_C() -/* given a zval, returns stuff that can be used to iterate it. */ -ZEND_API zend_object_iterator* zend_iterator_unwrap(zval *array_ptr); - -/* given an iterator, wrap it up as a zval for use by the engine opcodes */ -ZEND_API void zend_iterator_init(zend_object_iterator *iter); -ZEND_API void zend_iterator_dtor(zend_object_iterator *iter); - -ZEND_API void zend_register_iterator_wrapper(void); -END_EXTERN_C() diff --git a/include/php/Zend/zend_language_parser.h b/include/php/Zend/zend_language_parser.h deleted file mode 100644 index e3fd0d4..0000000 --- a/include/php/Zend/zend_language_parser.h +++ /dev/null @@ -1,203 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -#ifndef YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED -# define YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int zenddebug; -#endif -/* "%code requires" blocks. */ - - - - - -/* Token type. */ -#include "zend.h" -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - END = 0, - PREC_ARROW_FUNCTION = 258, - T_INCLUDE = 259, - T_INCLUDE_ONCE = 260, - T_REQUIRE = 261, - T_REQUIRE_ONCE = 262, - T_LOGICAL_OR = 263, - T_LOGICAL_XOR = 264, - T_LOGICAL_AND = 265, - T_PRINT = 266, - T_YIELD = 267, - T_DOUBLE_ARROW = 268, - T_YIELD_FROM = 269, - T_PLUS_EQUAL = 270, - T_MINUS_EQUAL = 271, - T_MUL_EQUAL = 272, - T_DIV_EQUAL = 273, - T_CONCAT_EQUAL = 274, - T_MOD_EQUAL = 275, - T_AND_EQUAL = 276, - T_OR_EQUAL = 277, - T_XOR_EQUAL = 278, - T_SL_EQUAL = 279, - T_SR_EQUAL = 280, - T_POW_EQUAL = 281, - T_COALESCE_EQUAL = 282, - T_COALESCE = 283, - T_BOOLEAN_OR = 284, - T_BOOLEAN_AND = 285, - T_IS_EQUAL = 286, - T_IS_NOT_EQUAL = 287, - T_IS_IDENTICAL = 288, - T_IS_NOT_IDENTICAL = 289, - T_SPACESHIP = 290, - T_IS_SMALLER_OR_EQUAL = 291, - T_IS_GREATER_OR_EQUAL = 292, - T_SL = 293, - T_SR = 294, - T_INSTANCEOF = 295, - T_INT_CAST = 296, - T_DOUBLE_CAST = 297, - T_STRING_CAST = 298, - T_ARRAY_CAST = 299, - T_OBJECT_CAST = 300, - T_BOOL_CAST = 301, - T_UNSET_CAST = 302, - T_POW = 303, - T_NEW = 304, - T_CLONE = 305, - T_NOELSE = 306, - T_ELSEIF = 307, - T_ELSE = 308, - T_LNUMBER = 309, - T_DNUMBER = 310, - T_STRING = 311, - T_VARIABLE = 312, - T_INLINE_HTML = 313, - T_ENCAPSED_AND_WHITESPACE = 314, - T_CONSTANT_ENCAPSED_STRING = 315, - T_STRING_VARNAME = 316, - T_NUM_STRING = 317, - T_EVAL = 318, - T_INC = 319, - T_DEC = 320, - T_EXIT = 321, - T_IF = 322, - T_ENDIF = 323, - T_ECHO = 324, - T_DO = 325, - T_WHILE = 326, - T_ENDWHILE = 327, - T_FOR = 328, - T_ENDFOR = 329, - T_FOREACH = 330, - T_ENDFOREACH = 331, - T_DECLARE = 332, - T_ENDDECLARE = 333, - T_AS = 334, - T_SWITCH = 335, - T_ENDSWITCH = 336, - T_CASE = 337, - T_DEFAULT = 338, - T_BREAK = 339, - T_CONTINUE = 340, - T_GOTO = 341, - T_FUNCTION = 342, - T_FN = 343, - T_CONST = 344, - T_RETURN = 345, - T_TRY = 346, - T_CATCH = 347, - T_FINALLY = 348, - T_THROW = 349, - T_USE = 350, - T_INSTEADOF = 351, - T_GLOBAL = 352, - T_STATIC = 353, - T_ABSTRACT = 354, - T_FINAL = 355, - T_PRIVATE = 356, - T_PROTECTED = 357, - T_PUBLIC = 358, - T_VAR = 359, - T_UNSET = 360, - T_ISSET = 361, - T_EMPTY = 362, - T_HALT_COMPILER = 363, - T_CLASS = 364, - T_TRAIT = 365, - T_INTERFACE = 366, - T_EXTENDS = 367, - T_IMPLEMENTS = 368, - T_OBJECT_OPERATOR = 369, - T_LIST = 370, - T_ARRAY = 371, - T_CALLABLE = 372, - T_LINE = 373, - T_FILE = 374, - T_DIR = 375, - T_CLASS_C = 376, - T_TRAIT_C = 377, - T_METHOD_C = 378, - T_FUNC_C = 379, - T_COMMENT = 380, - T_DOC_COMMENT = 381, - T_OPEN_TAG = 382, - T_OPEN_TAG_WITH_ECHO = 383, - T_CLOSE_TAG = 384, - T_WHITESPACE = 385, - T_START_HEREDOC = 386, - T_END_HEREDOC = 387, - T_DOLLAR_OPEN_CURLY_BRACES = 388, - T_CURLY_OPEN = 389, - T_PAAMAYIM_NEKUDOTAYIM = 390, - T_NAMESPACE = 391, - T_NS_C = 392, - T_NS_SEPARATOR = 393, - T_ELLIPSIS = 394, - T_BAD_CHARACTER = 395, - T_ERROR = 396 - }; -#endif - -/* Value type. */ - - - -ZEND_API int zendparse (void); - -#endif /* !YY_ZEND_ZEND_ZEND_LANGUAGE_PARSER_H_INCLUDED */ diff --git a/include/php/Zend/zend_language_scanner.h b/include/php/Zend/zend_language_scanner.h deleted file mode 100644 index 3640b9a..0000000 --- a/include/php/Zend/zend_language_scanner.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_SCANNER_H -#define ZEND_SCANNER_H - -typedef struct _zend_lex_state { - unsigned int yy_leng; - unsigned char *yy_start; - unsigned char *yy_text; - unsigned char *yy_cursor; - unsigned char *yy_marker; - unsigned char *yy_limit; - int yy_state; - zend_stack state_stack; - zend_ptr_stack heredoc_label_stack; - - zend_file_handle *in; - uint32_t lineno; - zend_string *filename; - - /* original (unfiltered) script */ - unsigned char *script_org; - size_t script_org_size; - - /* filtered script */ - unsigned char *script_filtered; - size_t script_filtered_size; - - /* input/output filters */ - zend_encoding_filter input_filter; - zend_encoding_filter output_filter; - const zend_encoding *script_encoding; - - /* hooks */ - void (*on_event)(zend_php_scanner_event event, int token, int line, void *context); - void *on_event_context; - - zend_ast *ast; - zend_arena *ast_arena; -} zend_lex_state; - -typedef struct _zend_heredoc_label { - char *label; - int length; - int indentation; - zend_bool indentation_uses_spaces; -} zend_heredoc_label; - -BEGIN_EXTERN_C() -ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state); -ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state); -ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename); -ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding); -ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding); -ZEND_API void zend_lex_tstring(zval *zv); - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_language_scanner_defs.h b/include/php/Zend/zend_language_scanner_defs.h deleted file mode 100644 index 807ef4d..0000000 --- a/include/php/Zend/zend_language_scanner_defs.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Generated by re2c 0.13.5 */ - -enum YYCONDTYPE { - yycST_IN_SCRIPTING, - yycST_LOOKING_FOR_PROPERTY, - yycST_BACKQUOTE, - yycST_DOUBLE_QUOTES, - yycST_HEREDOC, - yycST_LOOKING_FOR_VARNAME, - yycST_VAR_OFFSET, - yycSHEBANG, - yycINITIAL, - yycST_END_HEREDOC, - yycST_NOWDOC, -}; diff --git a/include/php/Zend/zend_list.h b/include/php/Zend/zend_list.h deleted file mode 100644 index b9a1d5e..0000000 --- a/include/php/Zend/zend_list.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_LIST_H -#define ZEND_LIST_H - -#include "zend_hash.h" -#include "zend_globals.h" - -BEGIN_EXTERN_C() - -typedef void (*rsrc_dtor_func_t)(zend_resource *res); -#define ZEND_RSRC_DTOR_FUNC(name) void name(zend_resource *res) - -typedef struct _zend_rsrc_list_dtors_entry { - rsrc_dtor_func_t list_dtor_ex; - rsrc_dtor_func_t plist_dtor_ex; - - const char *type_name; - - int module_number; - int resource_id; -} zend_rsrc_list_dtors_entry; - - -ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, const char *type_name, int module_number); - -void list_entry_destructor(zval *ptr); -void plist_entry_destructor(zval *ptr); - -void zend_clean_module_rsrc_dtors(int module_number); -ZEND_API int zend_init_rsrc_list(void); /* Exported for phar hack */ -int zend_init_rsrc_plist(void); -void zend_close_rsrc_list(HashTable *ht); -void zend_destroy_rsrc_list(HashTable *ht); -int zend_init_rsrc_list_dtors(void); -void zend_destroy_rsrc_list_dtors(void); - -ZEND_API zval* ZEND_FASTCALL zend_list_insert(void *ptr, int type); -ZEND_API int ZEND_FASTCALL zend_list_free(zend_resource *res); -ZEND_API int ZEND_FASTCALL zend_list_delete(zend_resource *res); -ZEND_API int ZEND_FASTCALL zend_list_close(zend_resource *res); - -ZEND_API zend_resource *zend_register_resource(void *rsrc_pointer, int rsrc_type); -ZEND_API void *zend_fetch_resource(zend_resource *res, const char *resource_type_name, int resource_type); -ZEND_API void *zend_fetch_resource2(zend_resource *res, const char *resource_type_name, int resource_type, int resource_type2); -ZEND_API void *zend_fetch_resource_ex(zval *res, const char *resource_type_name, int resource_type); -ZEND_API void *zend_fetch_resource2_ex(zval *res, const char *resource_type_name, int resource_type, int resource_type2); - -ZEND_API const char *zend_rsrc_list_get_rsrc_type(zend_resource *res); -ZEND_API int zend_fetch_list_dtor_id(const char *type_name); - -ZEND_API zend_resource* zend_register_persistent_resource(const char *key, size_t key_len, void *rsrc_pointer, int rsrc_type); -ZEND_API zend_resource* zend_register_persistent_resource_ex(zend_string *key, void *rsrc_pointer, int rsrc_type); - -extern ZEND_API int le_index_ptr; /* list entry type for index pointers */ - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_llist.h b/include/php/Zend/zend_llist.h deleted file mode 100644 index b9155ce..0000000 --- a/include/php/Zend/zend_llist.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_LLIST_H -#define ZEND_LLIST_H - -typedef struct _zend_llist_element { - struct _zend_llist_element *next; - struct _zend_llist_element *prev; - char data[1]; /* Needs to always be last in the struct */ -} zend_llist_element; - -typedef void (*llist_dtor_func_t)(void *); -typedef int (*llist_compare_func_t)(const zend_llist_element **, const zend_llist_element **); -typedef void (*llist_apply_with_args_func_t)(void *data, int num_args, va_list args); -typedef void (*llist_apply_with_arg_func_t)(void *data, void *arg); -typedef void (*llist_apply_func_t)(void *); - -typedef struct _zend_llist { - zend_llist_element *head; - zend_llist_element *tail; - size_t count; - size_t size; - llist_dtor_func_t dtor; - unsigned char persistent; - zend_llist_element *traverse_ptr; -} zend_llist; - -typedef zend_llist_element* zend_llist_position; - -BEGIN_EXTERN_C() -ZEND_API void zend_llist_init(zend_llist *l, size_t size, llist_dtor_func_t dtor, unsigned char persistent); -ZEND_API void zend_llist_add_element(zend_llist *l, void *element); -ZEND_API void zend_llist_prepend_element(zend_llist *l, void *element); -ZEND_API void zend_llist_del_element(zend_llist *l, void *element, int (*compare)(void *element1, void *element2)); -ZEND_API void zend_llist_destroy(zend_llist *l); -ZEND_API void zend_llist_clean(zend_llist *l); -ZEND_API void zend_llist_remove_tail(zend_llist *l); -ZEND_API void zend_llist_copy(zend_llist *dst, zend_llist *src); -ZEND_API void zend_llist_apply(zend_llist *l, llist_apply_func_t func); -ZEND_API void zend_llist_apply_with_del(zend_llist *l, int (*func)(void *data)); -ZEND_API void zend_llist_apply_with_argument(zend_llist *l, llist_apply_with_arg_func_t func, void *arg); -ZEND_API void zend_llist_apply_with_arguments(zend_llist *l, llist_apply_with_args_func_t func, int num_args, ...); -ZEND_API size_t zend_llist_count(zend_llist *l); -ZEND_API void zend_llist_sort(zend_llist *l, llist_compare_func_t comp_func); - -/* traversal */ -ZEND_API void *zend_llist_get_first_ex(zend_llist *l, zend_llist_position *pos); -ZEND_API void *zend_llist_get_last_ex(zend_llist *l, zend_llist_position *pos); -ZEND_API void *zend_llist_get_next_ex(zend_llist *l, zend_llist_position *pos); -ZEND_API void *zend_llist_get_prev_ex(zend_llist *l, zend_llist_position *pos); - -#define zend_llist_get_first(l) zend_llist_get_first_ex(l, NULL) -#define zend_llist_get_last(l) zend_llist_get_last_ex(l, NULL) -#define zend_llist_get_next(l) zend_llist_get_next_ex(l, NULL) -#define zend_llist_get_prev(l) zend_llist_get_prev_ex(l, NULL) - -END_EXTERN_C() - -#endif /* ZEND_LLIST_H */ diff --git a/include/php/Zend/zend_long.h b/include/php/Zend/zend_long.h deleted file mode 100644 index 3b651e6..0000000 --- a/include/php/Zend/zend_long.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Anatol Belski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_LONG_H -#define ZEND_LONG_H - -#include "main/php_stdint.h" - -/* This is the heart of the whole int64 enablement in zval. */ -#if defined(__x86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64) -# define ZEND_ENABLE_ZVAL_LONG64 1 -#endif - -/* Integer types. */ -#ifdef ZEND_ENABLE_ZVAL_LONG64 -typedef int64_t zend_long; -typedef uint64_t zend_ulong; -typedef int64_t zend_off_t; -# define ZEND_LONG_MAX INT64_MAX -# define ZEND_LONG_MIN INT64_MIN -# define ZEND_ULONG_MAX UINT64_MAX -# define Z_L(i) INT64_C(i) -# define Z_UL(i) UINT64_C(i) -# define SIZEOF_ZEND_LONG 8 -#else -typedef int32_t zend_long; -typedef uint32_t zend_ulong; -typedef int32_t zend_off_t; -# define ZEND_LONG_MAX INT32_MAX -# define ZEND_LONG_MIN INT32_MIN -# define ZEND_ULONG_MAX UINT32_MAX -# define Z_L(i) INT32_C(i) -# define Z_UL(i) UINT32_C(i) -# define SIZEOF_ZEND_LONG 4 -#endif - - -/* Conversion macros. */ -#define ZEND_LTOA_BUF_LEN 65 - -#ifdef ZEND_ENABLE_ZVAL_LONG64 -# define ZEND_LONG_FMT "%" PRId64 -# define ZEND_ULONG_FMT "%" PRIu64 -# define ZEND_XLONG_FMT "%" PRIx64 -# define ZEND_LONG_FMT_SPEC PRId64 -# define ZEND_ULONG_FMT_SPEC PRIu64 -# ifdef ZEND_WIN32 -# define ZEND_LTOA(i, s, len) _i64toa_s((i), (s), (len), 10) -# define ZEND_ATOL(i, s) i = _atoi64((s)) -# define ZEND_STRTOL(s0, s1, base) _strtoi64((s0), (s1), (base)) -# define ZEND_STRTOUL(s0, s1, base) _strtoui64((s0), (s1), (base)) -# define ZEND_STRTOL_PTR _strtoi64 -# define ZEND_STRTOUL_PTR _strtoui64 -# define ZEND_ABS _abs64 -# else -# define ZEND_LTOA(i, s, len) \ - do { \ - int st = snprintf((s), (len), ZEND_LONG_FMT, (i)); \ - (s)[st] = '\0'; \ - } while (0) -# define ZEND_ATOL(i, s) (i) = atoll((s)) -# define ZEND_STRTOL(s0, s1, base) strtoll((s0), (s1), (base)) -# define ZEND_STRTOUL(s0, s1, base) strtoull((s0), (s1), (base)) -# define ZEND_STRTOL_PTR strtoll -# define ZEND_STRTOUL_PTR strtoull -# define ZEND_ABS imaxabs -# endif -#else -# define ZEND_STRTOL(s0, s1, base) strtol((s0), (s1), (base)) -# define ZEND_STRTOUL(s0, s1, base) strtoul((s0), (s1), (base)) -# define ZEND_LONG_FMT "%" PRId32 -# define ZEND_ULONG_FMT "%" PRIu32 -# define ZEND_XLONG_FMT "%" PRIx32 -# define ZEND_LONG_FMT_SPEC PRId32 -# define ZEND_ULONG_FMT_SPEC PRIu32 -# ifdef ZEND_WIN32 -# define ZEND_LTOA(i, s, len) _ltoa_s((i), (s), (len), 10) -# define ZEND_ATOL(i, s) i = atol((s)) -# else -# define ZEND_LTOA(i, s, len) \ - do { \ - int st = snprintf((s), (len), ZEND_LONG_FMT, (i)); \ - (s)[st] = '\0'; \ - } while (0) -# define ZEND_ATOL(i, s) (i) = atol((s)) -# endif -# define ZEND_STRTOL_PTR strtol -# define ZEND_STRTOUL_PTR strtoul -# define ZEND_ABS abs -#endif - -#if SIZEOF_ZEND_LONG == 4 -# define MAX_LENGTH_OF_LONG 11 -# define LONG_MIN_DIGITS "2147483648" -#elif SIZEOF_ZEND_LONG == 8 -# define MAX_LENGTH_OF_LONG 20 -# define LONG_MIN_DIGITS "9223372036854775808" -#else -# error "Unknown SIZEOF_ZEND_LONG" -#endif - -static const char long_min_digits[] = LONG_MIN_DIGITS; - -#ifdef _WIN64 -# define ZEND_ADDR_FMT "0x%016I64x" -#elif SIZEOF_SIZE_T == 4 -# define ZEND_ADDR_FMT "0x%08zx" -#elif SIZEOF_SIZE_T == 8 -# define ZEND_ADDR_FMT "0x%016zx" -#else -# error "Unknown SIZEOF_SIZE_T" -#endif - -#endif /* ZEND_LONG_H */ diff --git a/include/php/Zend/zend_map_ptr.h b/include/php/Zend/zend_map_ptr.h deleted file mode 100644 index 5c88ce0..0000000 --- a/include/php/Zend/zend_map_ptr.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_MAP_PTR_H -#define ZEND_MAP_PTR_H - -#include "zend_portability.h" - -#define ZEND_MAP_PTR_KIND_PTR 0 -#define ZEND_MAP_PTR_KIND_PTR_OR_OFFSET 1 - -//#if defined(ZTS) || defined(TSRM_WIN32) -# define ZEND_MAP_PTR_KIND ZEND_MAP_PTR_KIND_PTR_OR_OFFSET -//#else -//# define ZEND_MAP_PTR_KIND ZEND_MAP_PTR_KIND_PTR -//#endif - -#if ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR -# define ZEND_MAP_PTR(ptr) \ - ptr ## __ptr -# define ZEND_MAP_PTR_DEF(type, name) \ - type * ZEND_MAP_PTR(name) -# define ZEND_MAP_PTR_GET(ptr) \ - (*(ZEND_MAP_PTR(ptr))) -# define ZEND_MAP_PTR_SET(ptr, val) do { \ - (*(ZEND_MAP_PTR(ptr))) = (val); \ - } while (0) -# define ZEND_MAP_PTR_INIT(ptr, val) do { \ - ZEND_MAP_PTR(ptr) = (val); \ - } while (0) -# define ZEND_MAP_PTR_NEW(ptr) do { \ - ZEND_MAP_PTR(ptr) = zend_map_ptr_new(); \ - } while (0) -#elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET -# define ZEND_MAP_PTR(ptr) \ - ptr ## __ptr -# define ZEND_MAP_PTR_DEF(type, name) \ - type * ZEND_MAP_PTR(name) -# define ZEND_MAP_PTR_IS_OFFSET(ptr) \ - (((uintptr_t)ZEND_MAP_PTR(ptr)) & 1L) -# define ZEND_MAP_PTR_OFFSET2PTR(ptr) \ - ((void**)((char*)CG(map_ptr_base) + (uintptr_t)ZEND_MAP_PTR(ptr) - 1)) -# define ZEND_MAP_PTR_PTR2OFFSET(ptr) \ - ((void*)((uintptr_t)(((char*)(ptr)) - ((char*)CG(map_ptr_base))) | 1L)) -# define ZEND_MAP_PTR_GET(ptr) \ - (ZEND_MAP_PTR_IS_OFFSET(ptr) ? \ - *(ZEND_MAP_PTR_OFFSET2PTR(ptr)) : \ - (void*)(*(ZEND_MAP_PTR(ptr)))) -# define ZEND_MAP_PTR_SET(ptr, val) do { \ - if (ZEND_MAP_PTR_IS_OFFSET(ptr)) { \ - *(ZEND_MAP_PTR_OFFSET2PTR(ptr)) = (val); \ - } else { \ - *(ZEND_MAP_PTR(ptr)) = (val); \ - } \ - } while (0) -# define ZEND_MAP_PTR_INIT(ptr, val) do { \ - ZEND_MAP_PTR(ptr) = (val); \ - } while (0) -# define ZEND_MAP_PTR_NEW(ptr) do { \ - ZEND_MAP_PTR(ptr) = zend_map_ptr_new(); \ - } while (0) -#else -# error "Unknown ZEND_MAP_PTR_KIND" -#endif - -ZEND_API void zend_map_ptr_reset(void); -ZEND_API void *zend_map_ptr_new(void); -ZEND_API void zend_map_ptr_extend(size_t last); - -#endif /* ZEND_MAP_PTR_H */ diff --git a/include/php/Zend/zend_modules.h b/include/php/Zend/zend_modules.h deleted file mode 100644 index 908acd7..0000000 --- a/include/php/Zend/zend_modules.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef MODULES_H -#define MODULES_H - -#include "zend.h" -#include "zend_compile.h" -#include "zend_build.h" - -#define INIT_FUNC_ARGS int type, int module_number -#define INIT_FUNC_ARGS_PASSTHRU type, module_number -#define SHUTDOWN_FUNC_ARGS int type, int module_number -#define SHUTDOWN_FUNC_ARGS_PASSTHRU type, module_number -#define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module -#define ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU zend_module - -#define ZEND_MODULE_API_NO 20190902 -#ifdef ZTS -#define USING_ZTS 1 -#else -#define USING_ZTS 0 -#endif - -#define STANDARD_MODULE_HEADER_EX sizeof(zend_module_entry), ZEND_MODULE_API_NO, ZEND_DEBUG, USING_ZTS -#define STANDARD_MODULE_HEADER \ - STANDARD_MODULE_HEADER_EX, NULL, NULL -#define ZE2_STANDARD_MODULE_HEADER \ - STANDARD_MODULE_HEADER_EX, ini_entries, NULL - -#define ZEND_MODULE_BUILD_ID "API" ZEND_TOSTR(ZEND_MODULE_API_NO) ZEND_BUILD_TS ZEND_BUILD_DEBUG ZEND_BUILD_SYSTEM ZEND_BUILD_EXTRA - -#define STANDARD_MODULE_PROPERTIES_EX 0, 0, NULL, 0, ZEND_MODULE_BUILD_ID - -#define NO_MODULE_GLOBALS 0, NULL, NULL, NULL - -#ifdef ZTS -# define ZEND_MODULE_GLOBALS(module_name) sizeof(zend_##module_name##_globals), &module_name##_globals_id -#else -# define ZEND_MODULE_GLOBALS(module_name) sizeof(zend_##module_name##_globals), &module_name##_globals -#endif - -#define STANDARD_MODULE_PROPERTIES \ - NO_MODULE_GLOBALS, NULL, STANDARD_MODULE_PROPERTIES_EX - -#define NO_VERSION_YET NULL - -#define MODULE_PERSISTENT 1 -#define MODULE_TEMPORARY 2 - -struct _zend_ini_entry; -typedef struct _zend_module_entry zend_module_entry; -typedef struct _zend_module_dep zend_module_dep; - -struct _zend_module_entry { - unsigned short size; - unsigned int zend_api; - unsigned char zend_debug; - unsigned char zts; - const struct _zend_ini_entry *ini_entry; - const struct _zend_module_dep *deps; - const char *name; - const struct _zend_function_entry *functions; - int (*module_startup_func)(INIT_FUNC_ARGS); - int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS); - int (*request_startup_func)(INIT_FUNC_ARGS); - int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS); - void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS); - const char *version; - size_t globals_size; -#ifdef ZTS - ts_rsrc_id* globals_id_ptr; -#else - void* globals_ptr; -#endif - void (*globals_ctor)(void *global); - void (*globals_dtor)(void *global); - int (*post_deactivate_func)(void); - int module_started; - unsigned char type; - void *handle; - int module_number; - const char *build_id; -}; - -#define MODULE_DEP_REQUIRED 1 -#define MODULE_DEP_CONFLICTS 2 -#define MODULE_DEP_OPTIONAL 3 - -#define ZEND_MOD_REQUIRED_EX(name, rel, ver) { name, rel, ver, MODULE_DEP_REQUIRED }, -#define ZEND_MOD_CONFLICTS_EX(name, rel, ver) { name, rel, ver, MODULE_DEP_CONFLICTS }, -#define ZEND_MOD_OPTIONAL_EX(name, rel, ver) { name, rel, ver, MODULE_DEP_OPTIONAL }, - -#define ZEND_MOD_REQUIRED(name) ZEND_MOD_REQUIRED_EX(name, NULL, NULL) -#define ZEND_MOD_CONFLICTS(name) ZEND_MOD_CONFLICTS_EX(name, NULL, NULL) -#define ZEND_MOD_OPTIONAL(name) ZEND_MOD_OPTIONAL_EX(name, NULL, NULL) - -#define ZEND_MOD_END { NULL, NULL, NULL, 0 } - -struct _zend_module_dep { - const char *name; /* module name */ - const char *rel; /* version relationship: NULL (exists), lt|le|eq|ge|gt (to given version) */ - const char *version; /* version */ - unsigned char type; /* dependency type */ -}; - -BEGIN_EXTERN_C() -extern ZEND_API HashTable module_registry; - -void module_destructor(zend_module_entry *module); -int module_registry_request_startup(zend_module_entry *module); -int module_registry_unload_temp(const zend_module_entry *module); -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_multibyte.h b/include/php/Zend/zend_multibyte.h deleted file mode 100644 index 19444ed..0000000 --- a/include/php/Zend/zend_multibyte.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Masaki Fujimoto | - | Rui Hirokawa | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_MULTIBYTE_H -#define ZEND_MULTIBYTE_H - -typedef struct _zend_encoding zend_encoding; - -typedef size_t (*zend_encoding_filter)(unsigned char **str, size_t *str_length, const unsigned char *buf, size_t length); - -typedef const zend_encoding* (*zend_encoding_fetcher)(const char *encoding_name); -typedef const char* (*zend_encoding_name_getter)(const zend_encoding *encoding); -typedef int (*zend_encoding_lexer_compatibility_checker)(const zend_encoding *encoding); -typedef const zend_encoding *(*zend_encoding_detector)(const unsigned char *string, size_t length, const zend_encoding **list, size_t list_size); -typedef size_t (*zend_encoding_converter)(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length, const zend_encoding *encoding_to, const zend_encoding *encoding_from); -typedef int (*zend_encoding_list_parser)(const char *encoding_list, size_t encoding_list_len, const zend_encoding ***return_list, size_t *return_size, int persistent); -typedef const zend_encoding *(*zend_encoding_internal_encoding_getter)(void); -typedef int (*zend_encoding_internal_encoding_setter)(const zend_encoding *encoding); - -typedef struct _zend_multibyte_functions { - const char *provider_name; - zend_encoding_fetcher encoding_fetcher; - zend_encoding_name_getter encoding_name_getter; - zend_encoding_lexer_compatibility_checker lexer_compatibility_checker; - zend_encoding_detector encoding_detector; - zend_encoding_converter encoding_converter; - zend_encoding_list_parser encoding_list_parser; - zend_encoding_internal_encoding_getter internal_encoding_getter; - zend_encoding_internal_encoding_setter internal_encoding_setter; -} zend_multibyte_functions; - -/* - * zend multibyte APIs - */ -BEGIN_EXTERN_C() - -ZEND_API extern const zend_encoding *zend_multibyte_encoding_utf32be; -ZEND_API extern const zend_encoding *zend_multibyte_encoding_utf32le; -ZEND_API extern const zend_encoding *zend_multibyte_encoding_utf16be; -ZEND_API extern const zend_encoding *zend_multibyte_encoding_utf16le; -ZEND_API extern const zend_encoding *zend_multibyte_encoding_utf8; - -/* multibyte utility functions */ -ZEND_API int zend_multibyte_set_functions(const zend_multibyte_functions *functions); -ZEND_API void zend_multibyte_restore_functions(void); -ZEND_API const zend_multibyte_functions *zend_multibyte_get_functions(void); - -ZEND_API const zend_encoding *zend_multibyte_fetch_encoding(const char *name); -ZEND_API const char *zend_multibyte_get_encoding_name(const zend_encoding *encoding); -ZEND_API int zend_multibyte_check_lexer_compatibility(const zend_encoding *encoding); -ZEND_API const zend_encoding *zend_multibyte_encoding_detector(const unsigned char *string, size_t length, const zend_encoding **list, size_t list_size); -ZEND_API size_t zend_multibyte_encoding_converter(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length, const zend_encoding *encoding_to, const zend_encoding *encoding_from); -ZEND_API int zend_multibyte_parse_encoding_list(const char *encoding_list, size_t encoding_list_len, const zend_encoding ***return_list, size_t *return_size, int persistent); - -ZEND_API const zend_encoding *zend_multibyte_get_internal_encoding(void); -ZEND_API const zend_encoding *zend_multibyte_get_script_encoding(void); -ZEND_API int zend_multibyte_set_script_encoding(const zend_encoding **encoding_list, size_t encoding_list_size); -ZEND_API int zend_multibyte_set_internal_encoding(const zend_encoding *encoding); -ZEND_API int zend_multibyte_set_script_encoding_by_string(const char *new_value, size_t new_value_length); - -END_EXTERN_C() - -#endif /* ZEND_MULTIBYTE_H */ diff --git a/include/php/Zend/zend_multiply.h b/include/php/Zend/zend_multiply.h deleted file mode 100644 index a3827d2..0000000 --- a/include/php/Zend/zend_multiply.h +++ /dev/null @@ -1,343 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Sascha Schumann | - | Ard Biesheuvel | - +----------------------------------------------------------------------+ -*/ - -#include "zend_portability.h" - -#ifndef ZEND_MULTIPLY_H -#define ZEND_MULTIPLY_H - -#if PHP_HAVE_BUILTIN_SMULL_OVERFLOW && SIZEOF_LONG == SIZEOF_ZEND_LONG - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - long __tmpvar; \ - if (((usedval) = __builtin_smull_overflow((a), (b), &__tmpvar))) { \ - (dval) = (double) (a) * (double) (b); \ - } \ - else (lval) = __tmpvar; \ -} while (0) - -#elif PHP_HAVE_BUILTIN_SMULLL_OVERFLOW && SIZEOF_LONG_LONG == SIZEOF_ZEND_LONG - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - long long __tmpvar; \ - if (((usedval) = __builtin_smulll_overflow((a), (b), &__tmpvar))) { \ - (dval) = (double) (a) * (double) (b); \ - } \ - else (lval) = __tmpvar; \ -} while (0) - -#elif (defined(__i386__) || defined(__x86_64__)) && defined(__GNUC__) - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - zend_long __tmpvar; \ - __asm__ ("imul %3,%0\n" \ - "adc $0,%1" \ - : "=r"(__tmpvar),"=r"(usedval) \ - : "0"(a), "r"(b), "1"(0)); \ - if (usedval) (dval) = (double) (a) * (double) (b); \ - else (lval) = __tmpvar; \ -} while (0) - -#elif defined(__arm__) && defined(__GNUC__) - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - zend_long __tmpvar; \ - __asm__("smull %0, %1, %2, %3\n" \ - "sub %1, %1, %0, asr #31" \ - : "=r"(__tmpvar), "=r"(usedval) \ - : "r"(a), "r"(b)); \ - if (usedval) (dval) = (double) (a) * (double) (b); \ - else (lval) = __tmpvar; \ -} while (0) - -#elif defined(__aarch64__) && defined(__GNUC__) - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - zend_long __tmpvar; \ - __asm__("mul %0, %2, %3\n" \ - "smulh %1, %2, %3\n" \ - "sub %1, %1, %0, asr #63\n" \ - : "=&r"(__tmpvar), "=&r"(usedval) \ - : "r"(a), "r"(b)); \ - if (usedval) (dval) = (double) (a) * (double) (b); \ - else (lval) = __tmpvar; \ -} while (0) - -#elif defined(ZEND_WIN32) - -# ifdef _M_X64 -# pragma intrinsic(_mul128) -# define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - __int64 __high; \ - __int64 __low = _mul128((a), (b), &__high); \ - if ((__low >> 63I64) == __high) { \ - (usedval) = 0; \ - (lval) = __low; \ - } else { \ - (usedval) = 1; \ - (dval) = (double)(a) * (double)(b); \ - } \ -} while (0) -# else -# define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - zend_long __lres = (a) * (b); \ - long double __dres = (long double)(a) * (long double)(b); \ - long double __delta = (long double) __lres - __dres; \ - if ( ((usedval) = (( __dres + __delta ) != __dres))) { \ - (dval) = __dres; \ - } else { \ - (lval) = __lres; \ - } \ -} while (0) -# endif - -#elif defined(__powerpc64__) && defined(__GNUC__) - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - long __low, __high; \ - __asm__("mulld %0,%2,%3\n\t" \ - "mulhd %1,%2,%3\n" \ - : "=&r"(__low), "=&r"(__high) \ - : "r"(a), "r"(b)); \ - if ((__low >> 63) != __high) { \ - (dval) = (double) (a) * (double) (b); \ - (usedval) = 1; \ - } else { \ - (lval) = __low; \ - (usedval) = 0; \ - } \ -} while (0) - -#elif SIZEOF_ZEND_LONG == 4 - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - int64_t __result = (int64_t) (a) * (int64_t) (b); \ - if (__result > ZEND_LONG_MAX || __result < ZEND_LONG_MIN) { \ - (dval) = (double) __result; \ - (usedval) = 1; \ - } else { \ - (lval) = (long) __result; \ - (usedval) = 0; \ - } \ -} while (0) - -#else - -#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ - long __lres = (a) * (b); \ - long double __dres = (long double)(a) * (long double)(b); \ - long double __delta = (long double) __lres - __dres; \ - if ( ((usedval) = (( __dres + __delta ) != __dres))) { \ - (dval) = __dres; \ - } else { \ - (lval) = __lres; \ - } \ -} while (0) - -#endif - -#if defined(__GNUC__) && (defined(__native_client__) || defined(i386)) - -static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) -{ - size_t res = nmemb; - size_t m_overflow = 0; - - if (ZEND_CONST_COND(offset == 0, 0)) { - __asm__ ("mull %3\n\tadcl $0,%1" - : "=&a"(res), "=&d" (m_overflow) - : "%0"(res), - "rm"(size)); - } else { - __asm__ ("mull %3\n\taddl %4,%0\n\tadcl $0,%1" - : "=&a"(res), "=&d" (m_overflow) - : "%0"(res), - "rm"(size), - "rm"(offset)); - } - - if (UNEXPECTED(m_overflow)) { - *overflow = 1; - return 0; - } - *overflow = 0; - return res; -} - -#elif defined(__GNUC__) && defined(__x86_64__) - -static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) -{ - size_t res = nmemb; - zend_ulong m_overflow = 0; - -#ifdef __ILP32__ /* x32 */ -# define LP_SUFF "l" -#else /* amd64 */ -# define LP_SUFF "q" -#endif - - if (ZEND_CONST_COND(offset == 0, 0)) { - __asm__ ("mul" LP_SUFF " %3\n\t" - "adc $0,%1" - : "=&a"(res), "=&d" (m_overflow) - : "%0"(res), - "rm"(size)); - } else { - __asm__ ("mul" LP_SUFF " %3\n\t" - "add %4,%0\n\t" - "adc $0,%1" - : "=&a"(res), "=&d" (m_overflow) - : "%0"(res), - "rm"(size), - "rm"(offset)); - } -#undef LP_SUFF - if (UNEXPECTED(m_overflow)) { - *overflow = 1; - return 0; - } - *overflow = 0; - return res; -} - -#elif defined(__GNUC__) && defined(__arm__) - -static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) -{ - size_t res; - zend_ulong m_overflow; - - __asm__ ("umlal %0,%1,%2,%3" - : "=r"(res), "=r"(m_overflow) - : "r"(nmemb), - "r"(size), - "0"(offset), - "1"(0)); - - if (UNEXPECTED(m_overflow)) { - *overflow = 1; - return 0; - } - *overflow = 0; - return res; -} - -#elif defined(__GNUC__) && defined(__aarch64__) - -static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) -{ - size_t res; - zend_ulong m_overflow; - - __asm__ ("mul %0,%2,%3\n\tumulh %1,%2,%3\n\tadds %0,%0,%4\n\tadc %1,%1,xzr" - : "=&r"(res), "=&r"(m_overflow) - : "r"(nmemb), - "r"(size), - "r"(offset)); - - if (UNEXPECTED(m_overflow)) { - *overflow = 1; - return 0; - } - *overflow = 0; - return res; -} - -#elif defined(__GNUC__) && defined(__powerpc64__) - -static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) -{ - size_t res; - unsigned long m_overflow; - - __asm__ ("mulld %0,%2,%3\n\t" - "mulhdu %1,%2,%3\n\t" - "addc %0,%0,%4\n\t" - "addze %1,%1\n" - : "=&r"(res), "=&r"(m_overflow) - : "r"(nmemb), - "r"(size), - "r"(offset)); - - if (UNEXPECTED(m_overflow)) { - *overflow = 1; - return 0; - } - *overflow = 0; - return res; -} - -#elif SIZEOF_SIZE_T == 4 - -static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) -{ - uint64_t res = (uint64_t) nmemb * (uint64_t) size + (uint64_t) offset; - - if (UNEXPECTED(res > UINT64_C(0xFFFFFFFF))) { - *overflow = 1; - return 0; - } - *overflow = 0; - return (size_t) res; -} - -#else - -static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, int *overflow) -{ - size_t res = nmemb * size + offset; - double _d = (double)nmemb * (double)size + (double)offset; - double _delta = (double)res - _d; - - if (UNEXPECTED((_d + _delta ) != _d)) { - *overflow = 1; - return 0; - } - *overflow = 0; - return res; -} -#endif - -static zend_always_inline size_t zend_safe_address_guarded(size_t nmemb, size_t size, size_t offset) -{ - int overflow; - size_t ret = zend_safe_address(nmemb, size, offset, &overflow); - - if (UNEXPECTED(overflow)) { - zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu * %zu + %zu)", nmemb, size, offset); - return 0; - } - return ret; -} - -/* A bit more generic version of the same */ -static zend_always_inline size_t zend_safe_addmult(size_t nmemb, size_t size, size_t offset, const char *message) -{ - int overflow; - size_t ret = zend_safe_address(nmemb, size, offset, &overflow); - - if (UNEXPECTED(overflow)) { - zend_error_noreturn(E_ERROR, "Possible integer overflow in %s (%zu * %zu + %zu)", message, nmemb, size, offset); - return 0; - } - return ret; -} - -#endif /* ZEND_MULTIPLY_H */ diff --git a/include/php/Zend/zend_object_handlers.h b/include/php/Zend/zend_object_handlers.h deleted file mode 100644 index 770a67c..0000000 --- a/include/php/Zend/zend_object_handlers.h +++ /dev/null @@ -1,259 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_OBJECT_HANDLERS_H -#define ZEND_OBJECT_HANDLERS_H - -struct _zend_property_info; - -#define ZEND_WRONG_PROPERTY_INFO \ - ((struct _zend_property_info*)((intptr_t)-1)) - -#define ZEND_DYNAMIC_PROPERTY_OFFSET ((uintptr_t)(intptr_t)(-1)) - -#define IS_VALID_PROPERTY_OFFSET(offset) ((intptr_t)(offset) > 0) -#define IS_WRONG_PROPERTY_OFFSET(offset) ((intptr_t)(offset) == 0) -#define IS_DYNAMIC_PROPERTY_OFFSET(offset) ((intptr_t)(offset) < 0) - -#define IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(offset) (offset == ZEND_DYNAMIC_PROPERTY_OFFSET) -#define ZEND_DECODE_DYN_PROP_OFFSET(offset) ((uintptr_t)(-(intptr_t)(offset) - 2)) -#define ZEND_ENCODE_DYN_PROP_OFFSET(offset) ((uintptr_t)(-((intptr_t)(offset) + 2))) - - -/* The following rule applies to read_property() and read_dimension() implementations: - If you return a zval which is not otherwise referenced by the extension or the engine's - symbol table, its reference count should be 0. -*/ -/* Used to fetch property from the object, read-only */ -typedef zval *(*zend_object_read_property_t)(zval *object, zval *member, int type, void **cache_slot, zval *rv); - -/* Used to fetch dimension from the object, read-only */ -typedef zval *(*zend_object_read_dimension_t)(zval *object, zval *offset, int type, zval *rv); - - -/* The following rule applies to write_property() and write_dimension() implementations: - If you receive a value zval in write_property/write_dimension, you may only modify it if - its reference count is 1. Otherwise, you must create a copy of that zval before making - any changes. You should NOT modify the reference count of the value passed to you. - You must return the final value of the assigned property. -*/ -/* Used to set property of the object */ -typedef zval *(*zend_object_write_property_t)(zval *object, zval *member, zval *value, void **cache_slot); - -/* Used to set dimension of the object */ -typedef void (*zend_object_write_dimension_t)(zval *object, zval *offset, zval *value); - - -/* Used to create pointer to the property of the object, for future direct r/w access */ -typedef zval *(*zend_object_get_property_ptr_ptr_t)(zval *object, zval *member, int type, void **cache_slot); - -/* Used to set object value. Can be used to override assignments and scalar - write ops (like ++, +=) on the object */ -typedef void (*zend_object_set_t)(zval *object, zval *value); - -/* Used to get object value. Can be used when converting object value to - * one of the basic types and when using scalar ops (like ++, +=) on the object - */ -typedef zval* (*zend_object_get_t)(zval *object, zval *rv); - -/* Used to check if a property of the object exists */ -/* param has_set_exists: - * 0 (has) whether property exists and is not NULL - * 1 (set) whether property exists and is true - * 2 (exists) whether property exists - */ -typedef int (*zend_object_has_property_t)(zval *object, zval *member, int has_set_exists, void **cache_slot); - -/* Used to check if a dimension of the object exists */ -typedef int (*zend_object_has_dimension_t)(zval *object, zval *member, int check_empty); - -/* Used to remove a property of the object */ -typedef void (*zend_object_unset_property_t)(zval *object, zval *member, void **cache_slot); - -/* Used to remove a dimension of the object */ -typedef void (*zend_object_unset_dimension_t)(zval *object, zval *offset); - -/* Used to get hash of the properties of the object, as hash of zval's */ -typedef HashTable *(*zend_object_get_properties_t)(zval *object); - -typedef HashTable *(*zend_object_get_debug_info_t)(zval *object, int *is_temp); - -typedef enum _zend_prop_purpose { - /* Used for debugging. Supersedes get_debug_info handler. */ - ZEND_PROP_PURPOSE_DEBUG, - /* Used for (array) casts. */ - ZEND_PROP_PURPOSE_ARRAY_CAST, - /* Used for serialization using the "O" scheme. - * Unserialization will use __wakeup(). */ - ZEND_PROP_PURPOSE_SERIALIZE, - /* Used for var_export(). - * The data will be passed to __set_state() when evaluated. */ - ZEND_PROP_PURPOSE_VAR_EXPORT, - /* Used for json_encode(). */ - ZEND_PROP_PURPOSE_JSON, - /* array_key_exists(). Not intended for general use! */ - _ZEND_PROP_PURPOSE_ARRAY_KEY_EXISTS, - /* Dummy member to ensure that "default" is specified. */ - _ZEND_PROP_PURPOSE_NON_EXHAUSTIVE_ENUM -} zend_prop_purpose; - -/* The return value must be released using zend_release_properties(). */ -typedef zend_array *(*zend_object_get_properties_for_t)(zval *object, zend_prop_purpose purpose); - -/* Used to call methods */ -/* args on stack! */ -/* Andi - EX(fbc) (function being called) needs to be initialized already in the INIT fcall opcode so that the parameters can be parsed the right way. We need to add another callback for this. - */ -typedef int (*zend_object_call_method_t)(zend_string *method, zend_object *object, INTERNAL_FUNCTION_PARAMETERS); -typedef zend_function *(*zend_object_get_method_t)(zend_object **object, zend_string *method, const zval *key); -typedef zend_function *(*zend_object_get_constructor_t)(zend_object *object); - -/* Object maintenance/destruction */ -typedef void (*zend_object_dtor_obj_t)(zend_object *object); -typedef void (*zend_object_free_obj_t)(zend_object *object); -typedef zend_object* (*zend_object_clone_obj_t)(zval *object); - -/* Get class name for display in var_dump and other debugging functions. - * Must be defined and must return a non-NULL value. */ -typedef zend_string *(*zend_object_get_class_name_t)(const zend_object *object); - -typedef int (*zend_object_compare_t)(zval *object1, zval *object2); -typedef int (*zend_object_compare_zvals_t)(zval *result, zval *op1, zval *op2); - -/* Cast an object to some other type. - * readobj and retval must point to distinct zvals. - */ -typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type); - -/* updates *count to hold the number of elements present and returns SUCCESS. - * Returns FAILURE if the object does not have any sense of overloaded dimensions */ -typedef int (*zend_object_count_elements_t)(zval *object, zend_long *count); - -typedef int (*zend_object_get_closure_t)(zval *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr); - -typedef HashTable *(*zend_object_get_gc_t)(zval *object, zval **table, int *n); - -typedef int (*zend_object_do_operation_t)(zend_uchar opcode, zval *result, zval *op1, zval *op2); - -struct _zend_object_handlers { - /* offset of real object header (usually zero) */ - int offset; - /* object handlers */ - zend_object_free_obj_t free_obj; /* required */ - zend_object_dtor_obj_t dtor_obj; /* required */ - zend_object_clone_obj_t clone_obj; /* optional */ - zend_object_read_property_t read_property; /* required */ - zend_object_write_property_t write_property; /* required */ - zend_object_read_dimension_t read_dimension; /* required */ - zend_object_write_dimension_t write_dimension; /* required */ - zend_object_get_property_ptr_ptr_t get_property_ptr_ptr; /* required */ - zend_object_get_t get; /* optional */ - zend_object_set_t set; /* optional */ - zend_object_has_property_t has_property; /* required */ - zend_object_unset_property_t unset_property; /* required */ - zend_object_has_dimension_t has_dimension; /* required */ - zend_object_unset_dimension_t unset_dimension; /* required */ - zend_object_get_properties_t get_properties; /* required */ - zend_object_get_method_t get_method; /* required */ - zend_object_call_method_t call_method; /* optional */ - zend_object_get_constructor_t get_constructor; /* required */ - zend_object_get_class_name_t get_class_name; /* required */ - zend_object_compare_t compare_objects; /* optional */ - zend_object_cast_t cast_object; /* optional */ - zend_object_count_elements_t count_elements; /* optional */ - zend_object_get_debug_info_t get_debug_info; /* optional */ - zend_object_get_closure_t get_closure; /* optional */ - zend_object_get_gc_t get_gc; /* required */ - zend_object_do_operation_t do_operation; /* optional */ - zend_object_compare_zvals_t compare; /* optional */ - zend_object_get_properties_for_t get_properties_for; /* optional */ -}; - -BEGIN_EXTERN_C() -extern const ZEND_API zend_object_handlers std_object_handlers; - -#define zend_get_std_object_handlers() \ - (&std_object_handlers) - -#define zend_get_function_root_class(fbc) \ - ((fbc)->common.prototype ? (fbc)->common.prototype->common.scope : (fbc)->common.scope) - -#define ZEND_PROPERTY_ISSET 0x0 /* Property exists and is not NULL */ -#define ZEND_PROPERTY_NOT_EMPTY ZEND_ISEMPTY /* Property is not empty */ -#define ZEND_PROPERTY_EXISTS 0x2 /* Property exists */ - -ZEND_API void zend_class_init_statics(zend_class_entry *ce); -ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, zend_string *function_name_strval, const zval *key); -ZEND_API zval *zend_std_get_static_property_with_info(zend_class_entry *ce, zend_string *property_name, int type, struct _zend_property_info **prop_info); -ZEND_API zval *zend_std_get_static_property(zend_class_entry *ce, zend_string *property_name, int type); -ZEND_API ZEND_COLD zend_bool zend_std_unset_static_property(zend_class_entry *ce, zend_string *property_name); -ZEND_API zend_function *zend_std_get_constructor(zend_object *object); -ZEND_API struct _zend_property_info *zend_get_property_info(zend_class_entry *ce, zend_string *member, int silent); -ZEND_API HashTable *zend_std_get_properties(zval *object); -ZEND_API HashTable *zend_std_get_gc(zval *object, zval **table, int *n); -ZEND_API HashTable *zend_std_get_debug_info(zval *object, int *is_temp); -ZEND_API int zend_std_cast_object_tostring(zval *readobj, zval *writeobj, int type); -ZEND_API zval *zend_std_get_property_ptr_ptr(zval *object, zval *member, int type, void **cache_slot); -ZEND_API zval *zend_std_read_property(zval *object, zval *member, int type, void **cache_slot, zval *rv); -ZEND_API zval *zend_std_write_property(zval *object, zval *member, zval *value, void **cache_slot); -ZEND_API int zend_std_has_property(zval *object, zval *member, int has_set_exists, void **cache_slot); -ZEND_API void zend_std_unset_property(zval *object, zval *member, void **cache_slot); -ZEND_API zval *zend_std_read_dimension(zval *object, zval *offset, int type, zval *rv); -ZEND_API void zend_std_write_dimension(zval *object, zval *offset, zval *value); -ZEND_API int zend_std_has_dimension(zval *object, zval *offset, int check_empty); -ZEND_API void zend_std_unset_dimension(zval *object, zval *offset); -ZEND_API zend_function *zend_std_get_method(zend_object **obj_ptr, zend_string *method_name, const zval *key); -ZEND_API zend_string *zend_std_get_class_name(const zend_object *zobj); -ZEND_API int zend_std_compare_objects(zval *o1, zval *o2); -ZEND_API int zend_std_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr); -ZEND_API void rebuild_object_properties(zend_object *zobj); - -ZEND_API int zend_check_protected(zend_class_entry *ce, zend_class_entry *scope); - -ZEND_API int zend_check_property_access(zend_object *zobj, zend_string *prop_info_name, zend_bool is_dynamic); - -ZEND_API zend_function *zend_get_call_trampoline_func(zend_class_entry *ce, zend_string *method_name, int is_static); - -ZEND_API uint32_t *zend_get_property_guard(zend_object *zobj, zend_string *member); - -/* Default behavior for get_properties_for. For use as a fallback in custom - * get_properties_for implementations. */ -ZEND_API HashTable *zend_std_get_properties_for(zval *obj, zend_prop_purpose purpose); - -/* Will call get_properties_for handler or use default behavior. For use by - * consumers of the get_properties_for API. */ -ZEND_API HashTable *zend_get_properties_for(zval *obj, zend_prop_purpose purpose); - -#define zend_release_properties(ht) do { \ - if ((ht) && !(GC_FLAGS(ht) & GC_IMMUTABLE) && !GC_DELREF(ht)) { \ - zend_array_destroy(ht); \ - } \ -} while (0) - -#define zend_free_trampoline(func) do { \ - if ((func) == &EG(trampoline)) { \ - EG(trampoline).common.function_name = NULL; \ - } else { \ - efree(func); \ - } \ - } while (0) - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_objects.h b/include/php/Zend/zend_objects.h deleted file mode 100644 index cb00155..0000000 --- a/include/php/Zend/zend_objects.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_OBJECTS_H -#define ZEND_OBJECTS_H - -#include "zend.h" - -BEGIN_EXTERN_C() -ZEND_API void ZEND_FASTCALL zend_object_std_init(zend_object *object, zend_class_entry *ce); -ZEND_API zend_object* ZEND_FASTCALL zend_objects_new(zend_class_entry *ce); -ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object, zend_object *old_object); - -ZEND_API void zend_object_std_dtor(zend_object *object); -ZEND_API void zend_objects_destroy_object(zend_object *object); -ZEND_API zend_object *zend_objects_clone_obj(zval *object); -END_EXTERN_C() - -#endif /* ZEND_OBJECTS_H */ diff --git a/include/php/Zend/zend_objects_API.h b/include/php/Zend/zend_objects_API.h deleted file mode 100644 index b9a838e..0000000 --- a/include/php/Zend/zend_objects_API.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_OBJECTS_API_H -#define ZEND_OBJECTS_API_H - -#include "zend.h" -#include "zend_compile.h" - -#define OBJ_BUCKET_INVALID (1<<0) - -#define IS_OBJ_VALID(o) (!(((zend_uintptr_t)(o)) & OBJ_BUCKET_INVALID)) - -#define SET_OBJ_INVALID(o) ((zend_object*)((((zend_uintptr_t)(o)) | OBJ_BUCKET_INVALID))) - -#define GET_OBJ_BUCKET_NUMBER(o) (((zend_intptr_t)(o)) >> 1) - -#define SET_OBJ_BUCKET_NUMBER(o, n) do { \ - (o) = (zend_object*)((((zend_uintptr_t)(n)) << 1) | OBJ_BUCKET_INVALID); \ - } while (0) - -#define ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(h) do { \ - SET_OBJ_BUCKET_NUMBER(EG(objects_store).object_buckets[(h)], EG(objects_store).free_list_head); \ - EG(objects_store).free_list_head = (h); \ - } while (0) - -#define OBJ_RELEASE(obj) zend_object_release(obj) - -typedef struct _zend_objects_store { - zend_object **object_buckets; - uint32_t top; - uint32_t size; - int free_list_head; -} zend_objects_store; - -/* Global store handling functions */ -BEGIN_EXTERN_C() -ZEND_API void ZEND_FASTCALL zend_objects_store_init(zend_objects_store *objects, uint32_t init_size); -ZEND_API void ZEND_FASTCALL zend_objects_store_call_destructors(zend_objects_store *objects); -ZEND_API void ZEND_FASTCALL zend_objects_store_mark_destructed(zend_objects_store *objects); -ZEND_API void ZEND_FASTCALL zend_objects_store_free_object_storage(zend_objects_store *objects, zend_bool fast_shutdown); -ZEND_API void ZEND_FASTCALL zend_objects_store_destroy(zend_objects_store *objects); - -/* Store API functions */ -ZEND_API void ZEND_FASTCALL zend_objects_store_put(zend_object *object); -ZEND_API void ZEND_FASTCALL zend_objects_store_del(zend_object *object); - -/* Called when the ctor was terminated by an exception */ -static zend_always_inline void zend_object_store_ctor_failed(zend_object *obj) -{ - GC_ADD_FLAGS(obj, IS_OBJ_DESTRUCTOR_CALLED); -} - -END_EXTERN_C() - -static zend_always_inline void zend_object_release(zend_object *obj) -{ - if (GC_DELREF(obj) == 0) { - zend_objects_store_del(obj); - } else if (UNEXPECTED(GC_MAY_LEAK((zend_refcounted*)obj))) { - gc_possible_root((zend_refcounted*)obj); - } -} - -static zend_always_inline size_t zend_object_properties_size(zend_class_entry *ce) -{ - return sizeof(zval) * - (ce->default_properties_count - - ((ce->ce_flags & ZEND_ACC_USE_GUARDS) ? 0 : 1)); -} - -/* Allocates object type and zeros it, but not the properties. - * Properties MUST be initialized using object_properties_init(). */ -static zend_always_inline void *zend_object_alloc(size_t obj_size, zend_class_entry *ce) { - void *obj = emalloc(obj_size + zend_object_properties_size(ce)); - /* Subtraction of sizeof(zval) is necessary, because zend_object_properties_size() may be - * -sizeof(zval), if the object has no properties. */ - memset(obj, 0, obj_size - sizeof(zval)); - return obj; -} - -static inline zend_property_info *zend_get_property_info_for_slot(zend_object *obj, zval *slot) -{ - zend_property_info **table = obj->ce->properties_info_table; - intptr_t prop_num = slot - obj->properties_table; - ZEND_ASSERT(prop_num >= 0 && prop_num < obj->ce->default_properties_count); - return table[prop_num]; -} - -/* Helper for cases where we're only interested in property info of typed properties. */ -static inline zend_property_info *zend_get_typed_property_info_for_slot(zend_object *obj, zval *slot) -{ - zend_property_info *prop_info = zend_get_property_info_for_slot(obj, slot); - if (prop_info && prop_info->type) { - return prop_info; - } - return NULL; -} - - -#endif /* ZEND_OBJECTS_H */ diff --git a/include/php/Zend/zend_operators.h b/include/php/Zend/zend_operators.h deleted file mode 100644 index dad23bc..0000000 --- a/include/php/Zend/zend_operators.h +++ /dev/null @@ -1,983 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_OPERATORS_H -#define ZEND_OPERATORS_H - -#include -#include -#include -#include - -#ifdef HAVE_IEEEFP_H -#include -#endif - -#include "zend_portability.h" -#include "zend_strtod.h" -#include "zend_multiply.h" -#include "zend_object_handlers.h" - -#define LONG_SIGN_MASK ZEND_LONG_MIN - -BEGIN_EXTERN_C() -ZEND_API int ZEND_FASTCALL add_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL sub_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL mul_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL pow_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL div_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL mod_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL boolean_xor_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL boolean_not_function(zval *result, zval *op1); -ZEND_API int ZEND_FASTCALL bitwise_not_function(zval *result, zval *op1); -ZEND_API int ZEND_FASTCALL bitwise_or_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL bitwise_and_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL bitwise_xor_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL shift_left_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL shift_right_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL concat_function(zval *result, zval *op1, zval *op2); - -ZEND_API zend_bool ZEND_FASTCALL zend_is_identical(zval *op1, zval *op2); - -ZEND_API int ZEND_FASTCALL is_equal_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL is_identical_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL is_not_identical_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL is_not_equal_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL is_smaller_function(zval *result, zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL is_smaller_or_equal_function(zval *result, zval *op1, zval *op2); - -ZEND_API zend_bool ZEND_FASTCALL instanceof_function_ex(const zend_class_entry *instance_ce, const zend_class_entry *ce, zend_bool is_interface); -ZEND_API zend_bool ZEND_FASTCALL instanceof_function(const zend_class_entry *instance_ce, const zend_class_entry *ce); - -/** - * Checks whether the string "str" with length "length" is numeric. The value - * of allow_errors determines whether it's required to be entirely numeric, or - * just its prefix. Leading whitespace is allowed. - * - * The function returns 0 if the string did not contain a valid number; IS_LONG - * if it contained a number that fits within the range of a long; or IS_DOUBLE - * if the number was out of long range or contained a decimal point/exponent. - * The number's value is returned into the respective pointer, *lval or *dval, - * if that pointer is not NULL. - * - * This variant also gives information if a string that represents an integer - * could not be represented as such due to overflow. It writes 1 to oflow_info - * if the integer is larger than ZEND_LONG_MAX and -1 if it's smaller than ZEND_LONG_MIN. - */ -ZEND_API zend_uchar ZEND_FASTCALL _is_numeric_string_ex(const char *str, size_t length, zend_long *lval, double *dval, int allow_errors, int *oflow_info); - -ZEND_API const char* ZEND_FASTCALL zend_memnstr_ex(const char *haystack, const char *needle, size_t needle_len, const char *end); -ZEND_API const char* ZEND_FASTCALL zend_memnrstr_ex(const char *haystack, const char *needle, size_t needle_len, const char *end); - -#if SIZEOF_ZEND_LONG == 4 -# define ZEND_DOUBLE_FITS_LONG(d) (!((d) > (double)ZEND_LONG_MAX || (d) < (double)ZEND_LONG_MIN)) -#else - /* >= as (double)ZEND_LONG_MAX is outside signed range */ -# define ZEND_DOUBLE_FITS_LONG(d) (!((d) >= (double)ZEND_LONG_MAX || (d) < (double)ZEND_LONG_MIN)) -#endif - -#if ZEND_DVAL_TO_LVAL_CAST_OK -static zend_always_inline zend_long zend_dval_to_lval(double d) -{ - if (EXPECTED(zend_finite(d)) && EXPECTED(!zend_isnan(d))) { - return (zend_long)d; - } else { - return 0; - } -} -#else -ZEND_API zend_long ZEND_FASTCALL zend_dval_to_lval_slow(double d); - -static zend_always_inline zend_long zend_dval_to_lval(double d) -{ - if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) { - return 0; - } else if (!ZEND_DOUBLE_FITS_LONG(d)) { - return zend_dval_to_lval_slow(d); - } - return (zend_long)d; -} -#endif - -static zend_always_inline zend_long zend_dval_to_lval_cap(double d) -{ - if (UNEXPECTED(!zend_finite(d)) || UNEXPECTED(zend_isnan(d))) { - return 0; - } else if (!ZEND_DOUBLE_FITS_LONG(d)) { - return (d > 0 ? ZEND_LONG_MAX : ZEND_LONG_MIN); - } - return (zend_long)d; -} -/* }}} */ - -#define ZEND_IS_DIGIT(c) ((c) >= '0' && (c) <= '9') -#define ZEND_IS_XDIGIT(c) (((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f')) - -static zend_always_inline zend_uchar is_numeric_string_ex(const char *str, size_t length, zend_long *lval, double *dval, int allow_errors, int *oflow_info) -{ - if (*str > '9') { - return 0; - } - return _is_numeric_string_ex(str, length, lval, dval, allow_errors, oflow_info); -} - -static zend_always_inline zend_uchar is_numeric_string(const char *str, size_t length, zend_long *lval, double *dval, int allow_errors) { - return is_numeric_string_ex(str, length, lval, dval, allow_errors, NULL); -} - -ZEND_API zend_uchar ZEND_FASTCALL is_numeric_str_function(const zend_string *str, zend_long *lval, double *dval); - -static zend_always_inline const char * -zend_memnstr(const char *haystack, const char *needle, size_t needle_len, const char *end) -{ - const char *p = haystack; - const char ne = needle[needle_len-1]; - ptrdiff_t off_p; - size_t off_s; - - if (needle_len == 1) { - return (const char *)memchr(p, *needle, (end-p)); - } - - off_p = end - haystack; - off_s = (off_p > 0) ? (size_t)off_p : 0; - - if (needle_len > off_s) { - return NULL; - } - - if (EXPECTED(off_s < 1024 || needle_len < 9)) { /* glibc memchr is faster when needle is too short */ - end -= needle_len; - - while (p <= end) { - if ((p = (const char *)memchr(p, *needle, (end-p+1))) && ne == p[needle_len-1]) { - if (!memcmp(needle+1, p+1, needle_len-2)) { - return p; - } - } - - if (p == NULL) { - return NULL; - } - - p++; - } - - return NULL; - } else { - return zend_memnstr_ex(haystack, needle, needle_len, end); - } -} - -static zend_always_inline const void *zend_memrchr(const void *s, int c, size_t n) -{ - const unsigned char *e; - if (0 == n) { - return NULL; - } - - for (e = (const unsigned char *)s + n - 1; e >= (const unsigned char *)s; e--) { - if (*e == (const unsigned char)c) { - return (const void *)e; - } - } - return NULL; -} - - -static zend_always_inline const char * -zend_memnrstr(const char *haystack, const char *needle, size_t needle_len, const char *end) -{ - const char *p = end; - const char ne = needle[needle_len-1]; - ptrdiff_t off_p; - size_t off_s; - - if (needle_len == 1) { - return (const char *)zend_memrchr(haystack, *needle, (p - haystack)); - } - - off_p = end - haystack; - off_s = (off_p > 0) ? (size_t)off_p : 0; - - if (needle_len > off_s) { - return NULL; - } - - if (EXPECTED(off_s < 1024 || needle_len < 3)) { - p -= needle_len; - - do { - p = (const char *)zend_memrchr(haystack, *needle, (p - haystack) + 1); - if (!p) { - return NULL; - } - if (ne == p[needle_len-1] && !memcmp(needle + 1, p + 1, needle_len - 2)) { - return p; - } - } while (p-- >= haystack); - - return NULL; - } else { - return zend_memnrstr_ex(haystack, needle, needle_len, end); - } -} - -ZEND_API int ZEND_FASTCALL increment_function(zval *op1); -ZEND_API int ZEND_FASTCALL decrement_function(zval *op2); - -ZEND_API void ZEND_FASTCALL convert_scalar_to_number(zval *op); -ZEND_API void ZEND_FASTCALL _convert_to_cstring(zval *op); -ZEND_API void ZEND_FASTCALL _convert_to_string(zval *op); -ZEND_API void ZEND_FASTCALL convert_to_long(zval *op); -ZEND_API void ZEND_FASTCALL convert_to_double(zval *op); -ZEND_API void ZEND_FASTCALL convert_to_long_base(zval *op, int base); -ZEND_API void ZEND_FASTCALL convert_to_null(zval *op); -ZEND_API void ZEND_FASTCALL convert_to_boolean(zval *op); -ZEND_API void ZEND_FASTCALL convert_to_array(zval *op); -ZEND_API void ZEND_FASTCALL convert_to_object(zval *op); -ZEND_API void multi_convert_to_long_ex(int argc, ...); -ZEND_API void multi_convert_to_double_ex(int argc, ...); -ZEND_API void multi_convert_to_string_ex(int argc, ...); - -ZEND_API zend_long ZEND_FASTCALL zval_get_long_func(zval *op); -ZEND_API double ZEND_FASTCALL zval_get_double_func(zval *op); -ZEND_API zend_string* ZEND_FASTCALL zval_get_string_func(zval *op); -ZEND_API zend_string* ZEND_FASTCALL zval_try_get_string_func(zval *op); - -static zend_always_inline zend_long zval_get_long(zval *op) { - return EXPECTED(Z_TYPE_P(op) == IS_LONG) ? Z_LVAL_P(op) : zval_get_long_func(op); -} -static zend_always_inline double zval_get_double(zval *op) { - return EXPECTED(Z_TYPE_P(op) == IS_DOUBLE) ? Z_DVAL_P(op) : zval_get_double_func(op); -} -static zend_always_inline zend_string *zval_get_string(zval *op) { - return EXPECTED(Z_TYPE_P(op) == IS_STRING) ? zend_string_copy(Z_STR_P(op)) : zval_get_string_func(op); -} - -static zend_always_inline zend_string *zval_get_tmp_string(zval *op, zend_string **tmp) { - if (EXPECTED(Z_TYPE_P(op) == IS_STRING)) { - *tmp = NULL; - return Z_STR_P(op); - } else { - return *tmp = zval_get_string_func(op); - } -} -static zend_always_inline void zend_tmp_string_release(zend_string *tmp) { - if (UNEXPECTED(tmp)) { - zend_string_release_ex(tmp, 0); - } -} - -/* Like zval_get_string, but returns NULL if the conversion fails with an exception. */ -static zend_always_inline zend_string *zval_try_get_string(zval *op) { - if (EXPECTED(Z_TYPE_P(op) == IS_STRING)) { - zend_string *ret = zend_string_copy(Z_STR_P(op)); - ZEND_ASSUME(ret != NULL); - return ret; - } else { - return zval_try_get_string_func(op); - } -} - -/* Like zval_get_tmp_string, but returns NULL if the conversion fails with an exception. */ -static zend_always_inline zend_string *zval_try_get_tmp_string(zval *op, zend_string **tmp) { - if (EXPECTED(Z_TYPE_P(op) == IS_STRING)) { - zend_string *ret = Z_STR_P(op); - *tmp = NULL; - ZEND_ASSUME(ret != NULL); - return ret; - } else { - return *tmp = zval_try_get_string_func(op); - } -} - -/* Like convert_to_string(), but returns whether the conversion succeeded and does not modify the - * zval in-place if it fails. */ -ZEND_API zend_bool ZEND_FASTCALL _try_convert_to_string(zval *op); -static zend_always_inline zend_bool try_convert_to_string(zval *op) { - if (Z_TYPE_P(op) == IS_STRING) { - return 1; - } - return _try_convert_to_string(op); -} - -/* Compatibility macros for 7.2 and below */ -#define _zval_get_long(op) zval_get_long(op) -#define _zval_get_double(op) zval_get_double(op) -#define _zval_get_string(op) zval_get_string(op) -#define _zval_get_long_func(op) zval_get_long_func(op) -#define _zval_get_double_func(op) zval_get_double_func(op) -#define _zval_get_string_func(op) zval_get_string_func(op) - -#define convert_to_cstring(op) if (Z_TYPE_P(op) != IS_STRING) { _convert_to_cstring((op)); } -#define convert_to_string(op) if (Z_TYPE_P(op) != IS_STRING) { _convert_to_string((op)); } - - -ZEND_API int ZEND_FASTCALL zend_is_true(zval *op); -ZEND_API int ZEND_FASTCALL zend_object_is_true(zval *op); - -#define zval_is_true(op) \ - zend_is_true(op) - -static zend_always_inline int i_zend_is_true(zval *op) -{ - int result = 0; - -again: - switch (Z_TYPE_P(op)) { - case IS_TRUE: - result = 1; - break; - case IS_LONG: - if (Z_LVAL_P(op)) { - result = 1; - } - break; - case IS_DOUBLE: - if (Z_DVAL_P(op)) { - result = 1; - } - break; - case IS_STRING: - if (Z_STRLEN_P(op) > 1 || (Z_STRLEN_P(op) && Z_STRVAL_P(op)[0] != '0')) { - result = 1; - } - break; - case IS_ARRAY: - if (zend_hash_num_elements(Z_ARRVAL_P(op))) { - result = 1; - } - break; - case IS_OBJECT: - if (EXPECTED(Z_OBJ_HT_P(op)->cast_object == zend_std_cast_object_tostring)) { - result = 1; - } else { - result = zend_object_is_true(op); - } - break; - case IS_RESOURCE: - if (EXPECTED(Z_RES_HANDLE_P(op))) { - result = 1; - } - break; - case IS_REFERENCE: - op = Z_REFVAL_P(op); - goto again; - break; - default: - break; - } - return result; -} - -ZEND_API int ZEND_FASTCALL compare_function(zval *result, zval *op1, zval *op2); - -ZEND_API int ZEND_FASTCALL numeric_compare_function(zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL string_compare_function_ex(zval *op1, zval *op2, zend_bool case_insensitive); -ZEND_API int ZEND_FASTCALL string_compare_function(zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL string_case_compare_function(zval *op1, zval *op2); -ZEND_API int ZEND_FASTCALL string_locale_compare_function(zval *op1, zval *op2); - -ZEND_API void ZEND_FASTCALL zend_str_tolower(char *str, size_t length); -ZEND_API char* ZEND_FASTCALL zend_str_tolower_copy(char *dest, const char *source, size_t length); -ZEND_API char* ZEND_FASTCALL zend_str_tolower_dup(const char *source, size_t length); -ZEND_API char* ZEND_FASTCALL zend_str_tolower_dup_ex(const char *source, size_t length); -ZEND_API zend_string* ZEND_FASTCALL zend_string_tolower_ex(zend_string *str, int persistent); - -#define zend_string_tolower(str) zend_string_tolower_ex(str, 0) - -ZEND_API int ZEND_FASTCALL zend_binary_zval_strcmp(zval *s1, zval *s2); -ZEND_API int ZEND_FASTCALL zend_binary_zval_strncmp(zval *s1, zval *s2, zval *s3); -ZEND_API int ZEND_FASTCALL zend_binary_zval_strcasecmp(zval *s1, zval *s2); -ZEND_API int ZEND_FASTCALL zend_binary_zval_strncasecmp(zval *s1, zval *s2, zval *s3); -ZEND_API int ZEND_FASTCALL zend_binary_strcmp(const char *s1, size_t len1, const char *s2, size_t len2); -ZEND_API int ZEND_FASTCALL zend_binary_strncmp(const char *s1, size_t len1, const char *s2, size_t len2, size_t length); -ZEND_API int ZEND_FASTCALL zend_binary_strcasecmp(const char *s1, size_t len1, const char *s2, size_t len2); -ZEND_API int ZEND_FASTCALL zend_binary_strncasecmp(const char *s1, size_t len1, const char *s2, size_t len2, size_t length); -ZEND_API int ZEND_FASTCALL zend_binary_strcasecmp_l(const char *s1, size_t len1, const char *s2, size_t len2); -ZEND_API int ZEND_FASTCALL zend_binary_strncasecmp_l(const char *s1, size_t len1, const char *s2, size_t len2, size_t length); - -ZEND_API int ZEND_FASTCALL zendi_smart_streq(zend_string *s1, zend_string *s2); -ZEND_API int ZEND_FASTCALL zendi_smart_strcmp(zend_string *s1, zend_string *s2); -ZEND_API int ZEND_FASTCALL zend_compare_symbol_tables(HashTable *ht1, HashTable *ht2); -ZEND_API int ZEND_FASTCALL zend_compare_arrays(zval *a1, zval *a2); -ZEND_API int ZEND_FASTCALL zend_compare_objects(zval *o1, zval *o2); - -ZEND_API int ZEND_FASTCALL zend_atoi(const char *str, size_t str_len); -ZEND_API zend_long ZEND_FASTCALL zend_atol(const char *str, size_t str_len); - -ZEND_API void ZEND_FASTCALL zend_locale_sprintf_double(zval *op ZEND_FILE_LINE_DC); - -#define convert_to_ex_master(pzv, lower_type, upper_type) \ - if (Z_TYPE_P(pzv)!=upper_type) { \ - convert_to_##lower_type(pzv); \ - } - -#define convert_to_explicit_type(pzv, type) \ - do { \ - switch (type) { \ - case IS_NULL: \ - convert_to_null(pzv); \ - break; \ - case IS_LONG: \ - convert_to_long(pzv); \ - break; \ - case IS_DOUBLE: \ - convert_to_double(pzv); \ - break; \ - case _IS_BOOL: \ - convert_to_boolean(pzv); \ - break; \ - case IS_ARRAY: \ - convert_to_array(pzv); \ - break; \ - case IS_OBJECT: \ - convert_to_object(pzv); \ - break; \ - case IS_STRING: \ - convert_to_string(pzv); \ - break; \ - default: \ - assert(0); \ - break; \ - } \ - } while (0); - -#define convert_to_explicit_type_ex(pzv, str_type) \ - if (Z_TYPE_P(pzv) != str_type) { \ - convert_to_explicit_type(pzv, str_type); \ - } - -#define convert_to_boolean_ex(pzv) do { \ - if (Z_TYPE_INFO_P(pzv) > IS_TRUE) { \ - convert_to_boolean(pzv); \ - } else if (Z_TYPE_INFO_P(pzv) < IS_FALSE) { \ - ZVAL_FALSE(pzv); \ - } \ - } while (0) -#define convert_to_long_ex(pzv) convert_to_ex_master(pzv, long, IS_LONG) -#define convert_to_double_ex(pzv) convert_to_ex_master(pzv, double, IS_DOUBLE) -#define convert_to_string_ex(pzv) convert_to_ex_master(pzv, string, IS_STRING) -#define convert_to_array_ex(pzv) convert_to_ex_master(pzv, array, IS_ARRAY) -#define convert_to_object_ex(pzv) convert_to_ex_master(pzv, object, IS_OBJECT) -#define convert_to_null_ex(pzv) convert_to_ex_master(pzv, null, IS_NULL) - -#define convert_scalar_to_number_ex(pzv) \ - if (Z_TYPE_P(pzv)!=IS_LONG && Z_TYPE_P(pzv)!=IS_DOUBLE) { \ - convert_scalar_to_number(pzv); \ - } - -#if defined(ZEND_WIN32) && !defined(ZTS) && defined(_MSC_VER) -/* This performance improvement of tolower() on Windows gives 10-18% on bench.php */ -#define ZEND_USE_TOLOWER_L 1 -#endif - -#ifdef ZEND_USE_TOLOWER_L -ZEND_API void zend_update_current_locale(void); -#else -#define zend_update_current_locale() -#endif - -/* The offset in bytes between the value and type fields of a zval */ -#define ZVAL_OFFSETOF_TYPE \ - (offsetof(zval, u1.type_info) - offsetof(zval, value)) - -#if defined(HAVE_ASM_GOTO) && !__has_feature(memory_sanitizer) -# define ZEND_USE_ASM_ARITHMETIC 1 -#else -# define ZEND_USE_ASM_ARITHMETIC 0 -#endif - -static zend_always_inline void fast_long_increment_function(zval *op1) -{ -#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) - __asm__ goto( - "addl $1,(%0)\n\t" - "jo %l1\n" - : - : "r"(&op1->value) - : "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MAX + 1.0); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__x86_64__) - __asm__ goto( - "addq $1,(%0)\n\t" - "jo %l1\n" - : - : "r"(&op1->value) - : "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MAX + 1.0); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__aarch64__) - __asm__ goto ( - "ldr x5, [%0]\n\t" - "adds x5, x5, 1\n\t" - "bvs %l1\n" - "str x5, [%0]" - : - : "r"(&op1->value) - : "x5", "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MAX + 1.0); -#elif PHP_HAVE_BUILTIN_SADDL_OVERFLOW && SIZEOF_LONG == SIZEOF_ZEND_LONG - long lresult; - if (UNEXPECTED(__builtin_saddl_overflow(Z_LVAL_P(op1), 1, &lresult))) { - /* switch to double */ - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MAX + 1.0); - } else { - Z_LVAL_P(op1) = lresult; - } -#elif PHP_HAVE_BUILTIN_SADDLL_OVERFLOW && SIZEOF_LONG_LONG == SIZEOF_ZEND_LONG - long long llresult; - if (UNEXPECTED(__builtin_saddll_overflow(Z_LVAL_P(op1), 1, &llresult))) { - /* switch to double */ - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MAX + 1.0); - } else { - Z_LVAL_P(op1) = llresult; - } -#else - if (UNEXPECTED(Z_LVAL_P(op1) == ZEND_LONG_MAX)) { - /* switch to double */ - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MAX + 1.0); - } else { - Z_LVAL_P(op1)++; - } -#endif -} - -static zend_always_inline void fast_long_decrement_function(zval *op1) -{ -#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) - __asm__ goto( - "subl $1,(%0)\n\t" - "jo %l1\n" - : - : "r"(&op1->value) - : "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MIN - 1.0); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__x86_64__) - __asm__ goto( - "subq $1,(%0)\n\t" - "jo %l1\n" - : - : "r"(&op1->value) - : "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MIN - 1.0); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__aarch64__) - __asm__ goto ( - "ldr x5, [%0]\n\t" - "subs x5 ,x5, 1\n\t" - "bvs %l1\n" - "str x5, [%0]" - : - : "r"(&op1->value) - : "x5", "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MIN - 1.0); -#elif PHP_HAVE_BUILTIN_SSUBL_OVERFLOW && SIZEOF_LONG == SIZEOF_ZEND_LONG - long lresult; - if (UNEXPECTED(__builtin_ssubl_overflow(Z_LVAL_P(op1), 1, &lresult))) { - /* switch to double */ - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MIN - 1.0); - } else { - Z_LVAL_P(op1) = lresult; - } -#elif PHP_HAVE_BUILTIN_SSUBLL_OVERFLOW && SIZEOF_LONG_LONG == SIZEOF_ZEND_LONG - long long llresult; - if (UNEXPECTED(__builtin_ssubll_overflow(Z_LVAL_P(op1), 1, &llresult))) { - /* switch to double */ - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MIN - 1.0); - } else { - Z_LVAL_P(op1) = llresult; - } -#else - if (UNEXPECTED(Z_LVAL_P(op1) == ZEND_LONG_MIN)) { - /* switch to double */ - ZVAL_DOUBLE(op1, (double)ZEND_LONG_MIN - 1.0); - } else { - Z_LVAL_P(op1)--; - } -#endif -} - -static zend_always_inline void fast_long_add_function(zval *result, zval *op1, zval *op2) -{ -#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) - __asm__ goto( - "movl (%1), %%eax\n\t" - "addl (%2), %%eax\n\t" - "jo %l5\n\t" - "movl %%eax, (%0)\n\t" - "movl %3, %c4(%0)\n" - : - : "r"(&result->value), - "r"(&op1->value), - "r"(&op2->value), - "n"(IS_LONG), - "n"(ZVAL_OFFSETOF_TYPE) - : "eax","cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__x86_64__) - __asm__ goto( - "movq (%1), %%rax\n\t" - "addq (%2), %%rax\n\t" - "jo %l5\n\t" - "movq %%rax, (%0)\n\t" - "movl %3, %c4(%0)\n" - : - : "r"(&result->value), - "r"(&op1->value), - "r"(&op2->value), - "n"(IS_LONG), - "n"(ZVAL_OFFSETOF_TYPE) - : "rax","cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__aarch64__) - __asm__ goto( - "ldr x5, [%1]\n\t" - "ldr x6, [%2]\n\t" - "adds x5, x5, x6\n\t" - "bvs %l5\n\t" - "mov w6, %3\n\t" - "str x5, [%0]\n\t" - "str w6, [%0, %c4]\n" - : - : "r"(&result->value), - "r"(&op1->value), - "r"(&op2->value), - "n"(IS_LONG), - "n"(ZVAL_OFFSETOF_TYPE) - : "x5", "x6", "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); -#elif PHP_HAVE_BUILTIN_SADDL_OVERFLOW && SIZEOF_LONG == SIZEOF_ZEND_LONG - long lresult; - if (UNEXPECTED(__builtin_saddl_overflow(Z_LVAL_P(op1), Z_LVAL_P(op2), &lresult))) { - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); - } else { - ZVAL_LONG(result, lresult); - } -#elif PHP_HAVE_BUILTIN_SADDLL_OVERFLOW && SIZEOF_LONG_LONG == SIZEOF_ZEND_LONG - long long llresult; - if (UNEXPECTED(__builtin_saddll_overflow(Z_LVAL_P(op1), Z_LVAL_P(op2), &llresult))) { - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); - } else { - ZVAL_LONG(result, llresult); - } -#else - /* - * 'result' may alias with op1 or op2, so we need to - * ensure that 'result' is not updated until after we - * have read the values of op1 and op2. - */ - - if (UNEXPECTED((Z_LVAL_P(op1) & LONG_SIGN_MASK) == (Z_LVAL_P(op2) & LONG_SIGN_MASK) - && (Z_LVAL_P(op1) & LONG_SIGN_MASK) != ((Z_LVAL_P(op1) + Z_LVAL_P(op2)) & LONG_SIGN_MASK))) { - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) + (double) Z_LVAL_P(op2)); - } else { - ZVAL_LONG(result, Z_LVAL_P(op1) + Z_LVAL_P(op2)); - } -#endif -} - -static zend_always_inline int fast_add_function(zval *result, zval *op1, zval *op2) -{ - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - fast_long_add_function(result, op1, op2); - return SUCCESS; - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - ZVAL_DOUBLE(result, ((double)Z_LVAL_P(op1)) + Z_DVAL_P(op2)); - return SUCCESS; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - ZVAL_DOUBLE(result, Z_DVAL_P(op1) + Z_DVAL_P(op2)); - return SUCCESS; - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - ZVAL_DOUBLE(result, Z_DVAL_P(op1) + ((double)Z_LVAL_P(op2))); - return SUCCESS; - } - } - return add_function(result, op1, op2); -} - -static zend_always_inline void fast_long_sub_function(zval *result, zval *op1, zval *op2) -{ -#if ZEND_USE_ASM_ARITHMETIC && defined(__i386__) && !(4 == __GNUC__ && 8 == __GNUC_MINOR__) - __asm__ goto( - "movl (%1), %%eax\n\t" - "subl (%2), %%eax\n\t" - "jo %l5\n\t" - "movl %%eax, (%0)\n\t" - "movl %3, %c4(%0)\n" - : - : "r"(&result->value), - "r"(&op1->value), - "r"(&op2->value), - "n"(IS_LONG), - "n"(ZVAL_OFFSETOF_TYPE) - : "eax","cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__x86_64__) - __asm__ goto( - "movq (%1), %%rax\n\t" - "subq (%2), %%rax\n\t" - "jo %l5\n\t" - "movq %%rax, (%0)\n\t" - "movl %3, %c4(%0)\n" - : - : "r"(&result->value), - "r"(&op1->value), - "r"(&op2->value), - "n"(IS_LONG), - "n"(ZVAL_OFFSETOF_TYPE) - : "rax","cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); -#elif ZEND_USE_ASM_ARITHMETIC && defined(__aarch64__) - __asm__ goto( - "ldr x5, [%1]\n\t" - "ldr x6, [%2]\n\t" - "subs x5, x5, x6\n\t" - "bvs %l5\n\t" - "mov w6, %3\n\t" - "str x5, [%0]\n\t" - "str w6, [%0, %c4]\n" - : - : "r"(&result->value), - "r"(&op1->value), - "r"(&op2->value), - "n"(IS_LONG), - "n"(ZVAL_OFFSETOF_TYPE) - : "x5", "x6", "cc", "memory" - : overflow); - return; -overflow: ZEND_ATTRIBUTE_COLD_LABEL - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); -#elif PHP_HAVE_BUILTIN_SSUBL_OVERFLOW && SIZEOF_LONG == SIZEOF_ZEND_LONG - long lresult; - if (UNEXPECTED(__builtin_ssubl_overflow(Z_LVAL_P(op1), Z_LVAL_P(op2), &lresult))) { - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); - } else { - ZVAL_LONG(result, lresult); - } -#elif PHP_HAVE_BUILTIN_SSUBLL_OVERFLOW && SIZEOF_LONG_LONG == SIZEOF_ZEND_LONG - long long llresult; - if (UNEXPECTED(__builtin_ssubll_overflow(Z_LVAL_P(op1), Z_LVAL_P(op2), &llresult))) { - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); - } else { - ZVAL_LONG(result, llresult); - } -#else - ZVAL_LONG(result, Z_LVAL_P(op1) - Z_LVAL_P(op2)); - - if (UNEXPECTED((Z_LVAL_P(op1) & LONG_SIGN_MASK) != (Z_LVAL_P(op2) & LONG_SIGN_MASK) - && (Z_LVAL_P(op1) & LONG_SIGN_MASK) != (Z_LVAL_P(result) & LONG_SIGN_MASK))) { - ZVAL_DOUBLE(result, (double) Z_LVAL_P(op1) - (double) Z_LVAL_P(op2)); - } -#endif -} - -static zend_always_inline int fast_div_function(zval *result, zval *op1, zval *op2) -{ - return div_function(result, op1, op2); -} - -static zend_always_inline int zend_fast_equal_strings(zend_string *s1, zend_string *s2) -{ - if (s1 == s2) { - return 1; - } else if (ZSTR_VAL(s1)[0] > '9' || ZSTR_VAL(s2)[0] > '9') { - return zend_string_equal_content(s1, s2); - } else { - return zendi_smart_streq(s1, s2); - } -} - -static zend_always_inline int fast_equal_check_function(zval *op1, zval *op2) -{ - zval result; - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - return Z_LVAL_P(op1) == Z_LVAL_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - return ((double)Z_LVAL_P(op1)) == Z_DVAL_P(op2); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - return Z_DVAL_P(op1) == Z_DVAL_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - return Z_DVAL_P(op1) == ((double)Z_LVAL_P(op2)); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - return zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - } - } - compare_function(&result, op1, op2); - return Z_LVAL(result) == 0; -} - -static zend_always_inline int fast_equal_check_long(zval *op1, zval *op2) -{ - zval result; - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - return Z_LVAL_P(op1) == Z_LVAL_P(op2); - } - compare_function(&result, op1, op2); - return Z_LVAL(result) == 0; -} - -static zend_always_inline int fast_equal_check_string(zval *op1, zval *op2) -{ - zval result; - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - return zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - } - compare_function(&result, op1, op2); - return Z_LVAL(result) == 0; -} - -static zend_always_inline zend_bool fast_is_identical_function(zval *op1, zval *op2) -{ - if (Z_TYPE_P(op1) != Z_TYPE_P(op2)) { - return 0; - } else if (Z_TYPE_P(op1) <= IS_TRUE) { - return 1; - } - return zend_is_identical(op1, op2); -} - -static zend_always_inline zend_bool fast_is_not_identical_function(zval *op1, zval *op2) -{ - if (Z_TYPE_P(op1) != Z_TYPE_P(op2)) { - return 1; - } else if (Z_TYPE_P(op1) <= IS_TRUE) { - return 0; - } - return !zend_is_identical(op1, op2); -} - -#define ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(opcode, binary_op) \ - if (UNEXPECTED(Z_TYPE_P(op1) == IS_OBJECT) \ - && op1 == result \ - && UNEXPECTED(Z_OBJ_HANDLER_P(op1, get)) \ - && EXPECTED(Z_OBJ_HANDLER_P(op1, set))) { \ - int ret; \ - zval rv; \ - zval *objval = Z_OBJ_HANDLER_P(op1, get)(op1, &rv); \ - Z_TRY_ADDREF_P(objval); \ - ret = binary_op(objval, objval, op2); \ - Z_OBJ_HANDLER_P(op1, set)(op1, objval); \ - zval_ptr_dtor(objval); \ - return ret; \ - } else if (UNEXPECTED(Z_TYPE_P(op1) == IS_OBJECT) \ - && UNEXPECTED(Z_OBJ_HANDLER_P(op1, do_operation))) { \ - if (EXPECTED(SUCCESS == Z_OBJ_HANDLER_P(op1, do_operation)(opcode, result, op1, op2))) { \ - return SUCCESS; \ - } \ - } - -#define ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(opcode) \ - if (UNEXPECTED(Z_TYPE_P(op2) == IS_OBJECT) \ - && UNEXPECTED(Z_OBJ_HANDLER_P(op2, do_operation)) \ - && EXPECTED(SUCCESS == Z_OBJ_HANDLER_P(op2, do_operation)(opcode, result, op1, op2))) { \ - return SUCCESS; \ - } - -#define ZEND_TRY_BINARY_OBJECT_OPERATION(opcode, binary_op) \ - ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(opcode, binary_op) \ - else \ - ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(opcode) - -#define ZEND_TRY_UNARY_OBJECT_OPERATION(opcode) \ - if (UNEXPECTED(Z_TYPE_P(op1) == IS_OBJECT) \ - && UNEXPECTED(Z_OBJ_HANDLER_P(op1, do_operation)) \ - && EXPECTED(SUCCESS == Z_OBJ_HANDLER_P(op1, do_operation)(opcode, result, op1, NULL))) { \ - return SUCCESS; \ - } - -/* buf points to the END of the buffer */ -static zend_always_inline char *zend_print_ulong_to_buf(char *buf, zend_ulong num) { - *buf = '\0'; - do { - *--buf = (char) (num % 10) + '0'; - num /= 10; - } while (num > 0); - return buf; -} - -/* buf points to the END of the buffer */ -static zend_always_inline char *zend_print_long_to_buf(char *buf, zend_long num) { - if (num < 0) { - char *result = zend_print_ulong_to_buf(buf, ~((zend_ulong) num) + 1); - *--result = '-'; - return result; - } else { - return zend_print_ulong_to_buf(buf, num); - } -} - -ZEND_API zend_string* ZEND_FASTCALL zend_long_to_str(zend_long num); - -static zend_always_inline void zend_unwrap_reference(zval *op) /* {{{ */ -{ - if (Z_REFCOUNT_P(op) == 1) { - ZVAL_UNREF(op); - } else { - Z_DELREF_P(op); - ZVAL_COPY(op, Z_REFVAL_P(op)); - } -} -/* }}} */ - - -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_portability.h b/include/php/Zend/zend_portability.h deleted file mode 100644 index 58c42a2..0000000 --- a/include/php/Zend/zend_portability.h +++ /dev/null @@ -1,659 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_PORTABILITY_H -#define ZEND_PORTABILITY_H - -#ifdef __cplusplus -#define BEGIN_EXTERN_C() extern "C" { -#define END_EXTERN_C() } -#else -#define BEGIN_EXTERN_C() -#define END_EXTERN_C() -#endif - -/* - * general definitions - */ - -#ifdef ZEND_WIN32 -# include "zend_config.w32.h" -# define ZEND_PATHS_SEPARATOR ';' -#elif defined(__riscos__) -# include -# define ZEND_PATHS_SEPARATOR ';' -#else -# include -# define ZEND_PATHS_SEPARATOR ':' -#endif - -#include "../TSRM/TSRM.h" - -#include -#include -#include - -#ifdef HAVE_UNIX_H -# include -#endif - -#include -#include - -#ifdef HAVE_DLFCN_H -# include -#endif - -#include - -#if HAVE_ALLOCA_H && !defined(_ALLOCA_H) -# include -#endif - -#if defined(ZEND_WIN32) && !defined(__clang__) -#include -#endif - -#include "zend_range_check.h" - -/* GCC x.y.z supplies __GNUC__ = x and __GNUC_MINOR__ = y */ -#ifdef __GNUC__ -# define ZEND_GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) -#else -# define ZEND_GCC_VERSION 0 -#endif - -/* Compatibility with non-clang compilers */ -#ifndef __has_attribute -# define __has_attribute(x) 0 -#endif -#ifndef __has_builtin -# define __has_builtin(x) 0 -#endif -#ifndef __has_feature -# define __has_feature(x) 0 -#endif - -#if defined(ZEND_WIN32) && !defined(__clang__) -# define ZEND_ASSUME(c) __assume(c) -#elif ((defined(__GNUC__) && ZEND_GCC_VERSION >= 4005) || __has_builtin(__builtin_unreachable)) && PHP_HAVE_BUILTIN_EXPECT -# define ZEND_ASSUME(c) do { \ - if (__builtin_expect(!(c), 0)) __builtin_unreachable(); \ - } while (0) -#else -# define ZEND_ASSUME(c) -#endif - -#if ZEND_DEBUG -# define ZEND_ASSERT(c) assert(c) -#else -# define ZEND_ASSERT(c) ZEND_ASSUME(c) -#endif - -/* Only use this macro if you know for sure that all of the switches values - are covered by its case statements */ -#if ZEND_DEBUG -# define EMPTY_SWITCH_DEFAULT_CASE() default: ZEND_ASSERT(0); break; -#else -# define EMPTY_SWITCH_DEFAULT_CASE() default: ZEND_ASSUME(0); break; -#endif - -#if defined(__GNUC__) && __GNUC__ >= 4 -# define ZEND_IGNORE_VALUE(x) (({ __typeof__ (x) __x = (x); (void) __x; })) -#else -# define ZEND_IGNORE_VALUE(x) ((void) (x)) -#endif - -#define zend_quiet_write(...) ZEND_IGNORE_VALUE(write(__VA_ARGS__)) - -/* all HAVE_XXX test have to be after the include of zend_config above */ - -#if defined(HAVE_LIBDL) && !defined(ZEND_WIN32) - -# if __has_feature(address_sanitizer) -# define __SANITIZE_ADDRESS__ -# endif - -# ifndef RTLD_LAZY -# define RTLD_LAZY 1 /* Solaris 1, FreeBSD's (2.1.7.1 and older) */ -# endif - -# ifndef RTLD_GLOBAL -# define RTLD_GLOBAL 0 -# endif - -# ifdef PHP_USE_RTLD_NOW -# define PHP_RTLD_MODE RTLD_NOW -# else -# define PHP_RTLD_MODE RTLD_LAZY -# endif - -# if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT) -# define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) -# elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) && !__has_feature(memory_sanitizer) -# define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL | RTLD_DEEPBIND) -# else -# define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL) -# endif -# define DL_UNLOAD dlclose -# if defined(DLSYM_NEEDS_UNDERSCORE) -# define DL_FETCH_SYMBOL(h,s) dlsym((h), "_" s) -# else -# define DL_FETCH_SYMBOL dlsym -# endif -# define DL_ERROR dlerror -# define DL_HANDLE void * -# define ZEND_EXTENSIONS_SUPPORT 1 -#elif defined(ZEND_WIN32) -# define DL_LOAD(libname) LoadLibrary(libname) -# define DL_FETCH_SYMBOL GetProcAddress -# define DL_UNLOAD FreeLibrary -# define DL_HANDLE HMODULE -# define ZEND_EXTENSIONS_SUPPORT 1 -#else -# define DL_HANDLE void * -# define ZEND_EXTENSIONS_SUPPORT 0 -#endif - -/* AIX requires this to be the first thing in the file. */ -#ifndef __GNUC__ -# ifndef HAVE_ALLOCA_H -# ifdef _AIX -# pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca(); -# endif -# endif -# endif -#endif - -#if ZEND_GCC_VERSION >= 2096 || __has_attribute(__malloc__) -# define ZEND_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -#else -# define ZEND_ATTRIBUTE_MALLOC -#endif - -#if ZEND_GCC_VERSION >= 4003 || __has_attribute(alloc_size) -# define ZEND_ATTRIBUTE_ALLOC_SIZE(X) __attribute__ ((alloc_size(X))) -# define ZEND_ATTRIBUTE_ALLOC_SIZE2(X,Y) __attribute__ ((alloc_size(X,Y))) -#else -# define ZEND_ATTRIBUTE_ALLOC_SIZE(X) -# define ZEND_ATTRIBUTE_ALLOC_SIZE2(X,Y) -#endif - -#if ZEND_GCC_VERSION >= 2007 || __has_attribute(format) -# define ZEND_ATTRIBUTE_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first))) -#else -# define ZEND_ATTRIBUTE_FORMAT(type, idx, first) -#endif - -#if (ZEND_GCC_VERSION >= 3001 && !defined(__INTEL_COMPILER)) || __has_attribute(format) -# define ZEND_ATTRIBUTE_PTR_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first))) -#else -# define ZEND_ATTRIBUTE_PTR_FORMAT(type, idx, first) -#endif - -#if ZEND_GCC_VERSION >= 3001 || __has_attribute(deprecated) -# define ZEND_ATTRIBUTE_DEPRECATED __attribute__((deprecated)) -#elif defined(ZEND_WIN32) -# define ZEND_ATTRIBUTE_DEPRECATED __declspec(deprecated) -#else -# define ZEND_ATTRIBUTE_DEPRECATED -#endif - -#if ZEND_GCC_VERSION >= 4003 || __has_attribute(unused) -# define ZEND_ATTRIBUTE_UNUSED __attribute__((unused)) -#else -# define ZEND_ATTRIBUTE_UNUSED -#endif - -#if defined(__GNUC__) && ZEND_GCC_VERSION >= 4003 -# define ZEND_COLD __attribute__((cold)) -# define ZEND_HOT __attribute__((hot)) -# ifdef __OPTIMIZE__ -# define ZEND_OPT_SIZE __attribute__((optimize("Os"))) -# define ZEND_OPT_SPEED __attribute__((optimize("Ofast"))) -# else -# define ZEND_OPT_SIZE -# define ZEND_OPT_SPEED -# endif -#else -# define ZEND_COLD -# define ZEND_HOT -# define ZEND_OPT_SIZE -# define ZEND_OPT_SPEED -#endif - -#if defined(__GNUC__) && ZEND_GCC_VERSION >= 5000 -# define ZEND_ATTRIBUTE_UNUSED_LABEL __attribute__((cold, unused)); -# define ZEND_ATTRIBUTE_COLD_LABEL __attribute__((cold)); -# define ZEND_ATTRIBUTE_HOT_LABEL __attribute__((hot)); -#else -# define ZEND_ATTRIBUTE_UNUSED_LABEL -# define ZEND_ATTRIBUTE_COLD_LABEL -# define ZEND_ATTRIBUTE_HOT_LABEL -#endif - -#if defined(__GNUC__) && ZEND_GCC_VERSION >= 3004 && defined(__i386__) -# define ZEND_FASTCALL __attribute__((fastcall)) -#elif defined(_MSC_VER) && defined(_M_IX86) && _MSC_VER == 1700 -# define ZEND_FASTCALL __fastcall -#elif defined(_MSC_VER) && _MSC_VER >= 1800 && !defined(__clang__) -# define ZEND_FASTCALL __vectorcall -#else -# define ZEND_FASTCALL -#endif - -#if (defined(__GNUC__) && __GNUC__ >= 3 && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)) || __has_attribute(noreturn) -# define HAVE_NORETURN -# define ZEND_NORETURN __attribute__((noreturn)) -#elif defined(ZEND_WIN32) -# define HAVE_NORETURN -# define ZEND_NORETURN __declspec(noreturn) -#else -# define ZEND_NORETURN -#endif - -#if (defined(__GNUC__) && __GNUC__ >= 3 && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)) -# define HAVE_NORETURN_ALIAS -# define HAVE_ATTRIBUTE_WEAK -#endif - -#if ZEND_GCC_VERSION >= 3001 || __has_builtin(__builtin_constant_p) -# define HAVE_BUILTIN_CONSTANT_P -#endif - -#ifdef HAVE_BUILTIN_CONSTANT_P -# define ZEND_CONST_COND(_condition, _default) \ - (__builtin_constant_p(_condition) ? (_condition) : (_default)) -#else -# define ZEND_CONST_COND(_condition, _default) \ - (_default) -#endif - -#if ZEND_DEBUG || defined(ZEND_WIN32_NEVER_INLINE) -# define zend_always_inline inline -# define zend_never_inline -#else -# if defined(__GNUC__) -# if __GNUC__ >= 3 -# define zend_always_inline inline __attribute__((always_inline)) -# define zend_never_inline __attribute__((noinline)) -# else -# define zend_always_inline inline -# define zend_never_inline -# endif -# elif defined(_MSC_VER) -# define zend_always_inline __forceinline -# define zend_never_inline __declspec(noinline) -# else -# if __has_attribute(always_inline) -# define zend_always_inline inline __attribute__((always_inline)) -# else -# define zend_always_inline inline -# endif -# if __has_attribute(noinline) -# define zend_never_inline __attribute__((noinline)) -# else -# define zend_never_inline -# endif -# endif -#endif /* ZEND_DEBUG */ - -#if PHP_HAVE_BUILTIN_EXPECT -# define EXPECTED(condition) __builtin_expect(!!(condition), 1) -# define UNEXPECTED(condition) __builtin_expect(!!(condition), 0) -#else -# define EXPECTED(condition) (condition) -# define UNEXPECTED(condition) (condition) -#endif - -#ifndef XtOffsetOf -# if defined(CRAY) || (defined(__ARMCC_VERSION) && !defined(LINUX)) -# ifdef __STDC__ -# define XtOffset(p_type, field) _Offsetof(p_type, field) -# else -# ifdef CRAY2 -# define XtOffset(p_type, field) \ - (sizeof(int)*((unsigned int)&(((p_type)NULL)->field))) -# else /* !CRAY2 */ -# define XtOffset(p_type, field) ((unsigned int)&(((p_type)NULL)->field)) -# endif /* !CRAY2 */ -# endif /* __STDC__ */ -# else /* ! (CRAY || __arm) */ -# define XtOffset(p_type, field) \ - ((zend_long) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL))) -# endif /* !CRAY */ - -# ifdef offsetof -# define XtOffsetOf(s_type, field) offsetof(s_type, field) -# else -# define XtOffsetOf(s_type, field) XtOffset(s_type*, field) -# endif - -#endif - -#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(HPUX)) && !defined(DARWIN) -# define ZEND_ALLOCA_MAX_SIZE (32 * 1024) -# define ALLOCA_FLAG(name) \ - zend_bool name; -# define SET_ALLOCA_FLAG(name) \ - name = 1 -# define do_alloca_ex(size, limit, use_heap) \ - ((use_heap = (UNEXPECTED((size) > (limit)))) ? emalloc(size) : alloca(size)) -# define do_alloca(size, use_heap) \ - do_alloca_ex(size, ZEND_ALLOCA_MAX_SIZE, use_heap) -# define free_alloca(p, use_heap) \ - do { if (UNEXPECTED(use_heap)) efree(p); } while (0) -#else -# define ALLOCA_FLAG(name) -# define SET_ALLOCA_FLAG(name) -# define do_alloca(p, use_heap) emalloc(p) -# define free_alloca(p, use_heap) efree(p) -#endif - -#ifdef HAVE_SIGSETJMP -# define SETJMP(a) sigsetjmp(a, 0) -# define LONGJMP(a,b) siglongjmp(a, b) -# define JMP_BUF sigjmp_buf -#else -# define SETJMP(a) setjmp(a) -# define LONGJMP(a,b) longjmp(a, b) -# define JMP_BUF jmp_buf -#endif - -#if ZEND_DEBUG -# define ZEND_FILE_LINE_D const char *__zend_filename, const uint32_t __zend_lineno -# define ZEND_FILE_LINE_DC , ZEND_FILE_LINE_D -# define ZEND_FILE_LINE_ORIG_D const char *__zend_orig_filename, const uint32_t __zend_orig_lineno -# define ZEND_FILE_LINE_ORIG_DC , ZEND_FILE_LINE_ORIG_D -# define ZEND_FILE_LINE_RELAY_C __zend_filename, __zend_lineno -# define ZEND_FILE_LINE_RELAY_CC , ZEND_FILE_LINE_RELAY_C -# define ZEND_FILE_LINE_C __FILE__, __LINE__ -# define ZEND_FILE_LINE_CC , ZEND_FILE_LINE_C -# define ZEND_FILE_LINE_EMPTY_C NULL, 0 -# define ZEND_FILE_LINE_EMPTY_CC , ZEND_FILE_LINE_EMPTY_C -# define ZEND_FILE_LINE_ORIG_RELAY_C __zend_orig_filename, __zend_orig_lineno -# define ZEND_FILE_LINE_ORIG_RELAY_CC , ZEND_FILE_LINE_ORIG_RELAY_C -#else -# define ZEND_FILE_LINE_D void -# define ZEND_FILE_LINE_DC -# define ZEND_FILE_LINE_ORIG_D void -# define ZEND_FILE_LINE_ORIG_DC -# define ZEND_FILE_LINE_RELAY_C -# define ZEND_FILE_LINE_RELAY_CC -# define ZEND_FILE_LINE_C -# define ZEND_FILE_LINE_CC -# define ZEND_FILE_LINE_EMPTY_C -# define ZEND_FILE_LINE_EMPTY_CC -# define ZEND_FILE_LINE_ORIG_RELAY_C -# define ZEND_FILE_LINE_ORIG_RELAY_CC -#endif /* ZEND_DEBUG */ - -#if ZEND_DEBUG -# define Z_DBG(expr) (expr) -#else -# define Z_DBG(expr) -#endif - -#ifdef ZTS -# define ZTS_V 1 -#else -# define ZTS_V 0 -#endif - -#ifndef LONG_MAX -# define LONG_MAX 2147483647L -#endif - -#ifndef LONG_MIN -# define LONG_MIN (- LONG_MAX - 1) -#endif - -#define MAX_LENGTH_OF_DOUBLE 32 - -#undef MIN -#undef MAX -#define MAX(a, b) (((a)>(b))?(a):(b)) -#define MIN(a, b) (((a)<(b))?(a):(b)) - -#define ZEND_BIT_TEST(bits, bit) \ - (((bits)[(bit) / (sizeof((bits)[0])*8)] >> ((bit) & (sizeof((bits)[0])*8-1))) & 1) - -/* We always define a function, even if there's a macro or expression we could - * alias, so that using it in contexts where we can't make function calls - * won't fail to compile on some machines and not others. - */ -static zend_always_inline double _zend_get_inf(void) /* {{{ */ -{ -#ifdef INFINITY - return INFINITY; -#elif HAVE_HUGE_VAL_INF - return HUGE_VAL; -#elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha) -# define _zend_DOUBLE_INFINITY_HIGH 0x7ff00000 - double val = 0.0; - ((uint32_t*)&val)[1] = _zend_DOUBLE_INFINITY_HIGH; - ((uint32_t*)&val)[0] = 0; - return val; -#elif HAVE_ATOF_ACCEPTS_INF - return atof("INF"); -#else - return 1.0/0.0; -#endif -} /* }}} */ -#define ZEND_INFINITY (_zend_get_inf()) - -static zend_always_inline double _zend_get_nan(void) /* {{{ */ -{ -#ifdef NAN - return NAN; -#elif HAVE_HUGE_VAL_NAN - return HUGE_VAL + -HUGE_VAL; -#elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha) -# define _zend_DOUBLE_QUIET_NAN_HIGH 0xfff80000 - double val = 0.0; - ((uint32_t*)&val)[1] = _zend_DOUBLE_QUIET_NAN_HIGH; - ((uint32_t*)&val)[0] = 0; - return val; -#elif HAVE_ATOF_ACCEPTS_NAN - return atof("NAN"); -#else - return 0.0/0.0; -#endif -} /* }}} */ -#define ZEND_NAN (_zend_get_nan()) - -#define ZEND_STRL(str) (str), (sizeof(str)-1) -#define ZEND_STRS(str) (str), (sizeof(str)) -#define ZEND_NORMALIZE_BOOL(n) \ - ((n) ? (((n)<0) ? -1 : 1) : 0) -#define ZEND_TRUTH(x) ((x) ? 1 : 0) -#define ZEND_LOG_XOR(a, b) (ZEND_TRUTH(a) ^ ZEND_TRUTH(b)) - -#define ZEND_MAX_RESERVED_RESOURCES 6 - -/* excpt.h on Digital Unix 4.0 defines function_table */ -#undef function_table - -#ifdef ZEND_WIN32 -#define ZEND_SECURE_ZERO(var, size) RtlSecureZeroMemory((var), (size)) -#else -#define ZEND_SECURE_ZERO(var, size) explicit_bzero((var), (size)) -#endif - -/* This check should only be used on network socket, not file descriptors */ -#ifdef ZEND_WIN32 -#define ZEND_VALID_SOCKET(sock) (INVALID_SOCKET != (sock)) -#else -#define ZEND_VALID_SOCKET(sock) ((sock) >= 0) -#endif - -/* va_copy() is __va_copy() in old gcc versions. - * According to the autoconf manual, using - * memcpy(&dst, &src, sizeof(va_list)) - * gives maximum portability. */ -#ifndef va_copy -# ifdef __va_copy -# define va_copy(dest, src) __va_copy((dest), (src)) -# else -# define va_copy(dest, src) memcpy(&(dest), &(src), sizeof(va_list)) -# endif -#endif - -/* Intrinsics macros start. */ - -/* Memory sanitizer is incompatible with ifunc resolvers. Even if the resolver - * is marked as no_sanitize("memory") it will still be instrumented and crash. */ -#if __has_feature(memory_sanitizer) || __has_feature(thread_sanitizer) -# undef HAVE_FUNC_ATTRIBUTE_IFUNC -#endif - -#if defined(HAVE_FUNC_ATTRIBUTE_IFUNC) && defined(HAVE_FUNC_ATTRIBUTE_TARGET) -# define ZEND_INTRIN_HAVE_IFUNC_TARGET 1 -#endif - -#if (defined(__i386__) || defined(__x86_64__)) -# if PHP_HAVE_SSSE3_INSTRUCTIONS && defined(HAVE_TMMINTRIN_H) -# define PHP_HAVE_SSSE3 -# endif - -# if PHP_HAVE_SSE4_2_INSTRUCTIONS && defined(HAVE_NMMINTRIN_H) -# define PHP_HAVE_SSE4_2 -# endif - -/* - * AVX2 support was added in gcc 4.7, but AVX2 intrinsics don't work in - * __attribute__((target("avx2"))) functions until gcc 4.9. - */ -# if PHP_HAVE_AVX2_INSTRUCTIONS && defined(HAVE_IMMINTRIN_H) && \ - (defined(__llvm__) || defined(__clang__) || (defined(__GNUC__) && ZEND_GCC_VERSION >= 4009)) -# define PHP_HAVE_AVX2 -# endif -#endif - -#ifdef __SSSE3__ -/* Instructions compiled directly. */ -# define ZEND_INTRIN_SSSE3_NATIVE 1 -#elif (defined(HAVE_FUNC_ATTRIBUTE_TARGET) && defined(PHP_HAVE_SSSE3)) || defined(ZEND_WIN32) -/* Function resolved by ifunc or MINIT. */ -# define ZEND_INTRIN_SSSE3_RESOLVER 1 -#endif - -/* Do not use for conditional declaration of API functions! */ -#if ZEND_INTRIN_SSSE3_RESOLVER && ZEND_INTRIN_HAVE_IFUNC_TARGET -# define ZEND_INTRIN_SSSE3_FUNC_PROTO 1 -#elif ZEND_INTRIN_SSSE3_RESOLVER -# define ZEND_INTRIN_SSSE3_FUNC_PTR 1 -#endif - -#if ZEND_INTRIN_SSSE3_RESOLVER -# if defined(HAVE_FUNC_ATTRIBUTE_TARGET) -# define ZEND_INTRIN_SSSE3_FUNC_DECL(func) ZEND_API func __attribute__((target("ssse3"))) -# else -# define ZEND_INTRIN_SSSE3_FUNC_DECL(func) func -# endif -#else -# define ZEND_INTRIN_SSSE3_FUNC_DECL(func) -#endif - -#ifdef __SSE4_2__ -/* Instructions compiled directly. */ -# define ZEND_INTRIN_SSE4_2_NATIVE 1 -#elif (defined(HAVE_FUNC_ATTRIBUTE_TARGET) && defined(PHP_HAVE_SSE4_2)) || defined(ZEND_WIN32) -/* Function resolved by ifunc or MINIT. */ -# define ZEND_INTRIN_SSE4_2_RESOLVER 1 -#endif - -/* Do not use for conditional declaration of API functions! */ -#if ZEND_INTRIN_SSE4_2_RESOLVER && ZEND_INTRIN_HAVE_IFUNC_TARGET -# define ZEND_INTRIN_SSE4_2_FUNC_PROTO 1 -#elif ZEND_INTRIN_SSE4_2_RESOLVER -# define ZEND_INTRIN_SSE4_2_FUNC_PTR 1 -#endif - -#if ZEND_INTRIN_SSE4_2_RESOLVER -# if defined(HAVE_FUNC_ATTRIBUTE_TARGET) -# define ZEND_INTRIN_SSE4_2_FUNC_DECL(func) ZEND_API func __attribute__((target("sse4.2"))) -# else -# define ZEND_INTRIN_SSE4_2_FUNC_DECL(func) func -# endif -#else -# define ZEND_INTRIN_SSE4_2_FUNC_DECL(func) -#endif - -#ifdef __AVX2__ -# define ZEND_INTRIN_AVX2_NATIVE 1 -#elif (defined(HAVE_FUNC_ATTRIBUTE_TARGET) && defined(PHP_HAVE_AVX2)) || defined(ZEND_WIN32) -# define ZEND_INTRIN_AVX2_RESOLVER 1 -#endif - -/* Do not use for conditional declaration of API functions! */ -#if ZEND_INTRIN_AVX2_RESOLVER && ZEND_INTRIN_HAVE_IFUNC_TARGET -# define ZEND_INTRIN_AVX2_FUNC_PROTO 1 -#elif ZEND_INTRIN_AVX2_RESOLVER -# define ZEND_INTRIN_AVX2_FUNC_PTR 1 -#endif - -#if ZEND_INTRIN_AVX2_RESOLVER -# if defined(HAVE_FUNC_ATTRIBUTE_TARGET) -# define ZEND_INTRIN_AVX2_FUNC_DECL(func) ZEND_API func __attribute__((target("avx2"))) -# else -# define ZEND_INTRIN_AVX2_FUNC_DECL(func) func -# endif -#else -# define ZEND_INTRIN_AVX2_FUNC_DECL(func) -#endif - -/* Intrinsics macros end. */ - -#ifdef ZEND_WIN32 -# define ZEND_SET_ALIGNED(alignment, decl) __declspec(align(alignment)) decl -#elif HAVE_ATTRIBUTE_ALIGNED -# define ZEND_SET_ALIGNED(alignment, decl) decl __attribute__ ((__aligned__ (alignment))) -#else -# define ZEND_SET_ALIGNED(alignment, decl) decl -#endif - -#define ZEND_SLIDE_TO_ALIGNED(alignment, ptr) (((zend_uintptr_t)(ptr) + ((alignment)-1)) & ~((alignment)-1)) -#define ZEND_SLIDE_TO_ALIGNED16(ptr) ZEND_SLIDE_TO_ALIGNED(Z_UL(16), ptr) - -#ifdef ZEND_WIN32 -# define _ZEND_EXPAND_VA(a) a -# define ZEND_EXPAND_VA(code) _ZEND_EXPAND_VA(code) -#else -# define ZEND_EXPAND_VA(code) code -#endif - -/* On CPU with few registers, it's cheaper to reload value then use spill slot */ -#if defined(__i386__) || (defined(_WIN32) && !defined(_WIN64)) -# define ZEND_PREFER_RELOAD -#endif - -#if defined(ZEND_WIN32) && defined(_DEBUG) && defined(PHP_WIN32_DEBUG_HEAP) -# define ZEND_IGNORE_LEAKS_BEGIN() _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) & ~_CRTDBG_ALLOC_MEM_DF) -# define ZEND_IGNORE_LEAKS_END() _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_ALLOC_MEM_DF) -#else -# define ZEND_IGNORE_LEAKS_BEGIN() -# define ZEND_IGNORE_LEAKS_END() -#endif - -#endif /* ZEND_PORTABILITY_H */ diff --git a/include/php/Zend/zend_ptr_stack.h b/include/php/Zend/zend_ptr_stack.h deleted file mode 100644 index 2298e4f..0000000 --- a/include/php/Zend/zend_ptr_stack.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_PTR_STACK_H -#define ZEND_PTR_STACK_H - -typedef struct _zend_ptr_stack { - int top, max; - void **elements; - void **top_element; - zend_bool persistent; -} zend_ptr_stack; - - -#define PTR_STACK_BLOCK_SIZE 64 - -BEGIN_EXTERN_C() -ZEND_API void zend_ptr_stack_init(zend_ptr_stack *stack); -ZEND_API void zend_ptr_stack_init_ex(zend_ptr_stack *stack, zend_bool persistent); -ZEND_API void zend_ptr_stack_n_push(zend_ptr_stack *stack, int count, ...); -ZEND_API void zend_ptr_stack_n_pop(zend_ptr_stack *stack, int count, ...); -ZEND_API void zend_ptr_stack_destroy(zend_ptr_stack *stack); -ZEND_API void zend_ptr_stack_apply(zend_ptr_stack *stack, void (*func)(void *)); -ZEND_API void zend_ptr_stack_reverse_apply(zend_ptr_stack *stack, void (*func)(void *)); -ZEND_API void zend_ptr_stack_clean(zend_ptr_stack *stack, void (*func)(void *), zend_bool free_elements); -ZEND_API int zend_ptr_stack_num_elements(zend_ptr_stack *stack); -END_EXTERN_C() - -#define ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, count) \ - if (stack->top+count > stack->max) { \ - /* we need to allocate more memory */ \ - do { \ - stack->max += PTR_STACK_BLOCK_SIZE; \ - } while (stack->top+count > stack->max); \ - stack->elements = (void **) perealloc(stack->elements, (sizeof(void *) * (stack->max)), stack->persistent); \ - stack->top_element = stack->elements+stack->top; \ - } - -/* Not doing this with a macro because of the loop unrolling in the element assignment. - Just using a macro for 3 in the body for readability sake. */ -static zend_always_inline void zend_ptr_stack_3_push(zend_ptr_stack *stack, void *a, void *b, void *c) -{ -#define ZEND_PTR_STACK_NUM_ARGS 3 - - ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, ZEND_PTR_STACK_NUM_ARGS) - - stack->top += ZEND_PTR_STACK_NUM_ARGS; - *(stack->top_element++) = a; - *(stack->top_element++) = b; - *(stack->top_element++) = c; - -#undef ZEND_PTR_STACK_NUM_ARGS -} - -static zend_always_inline void zend_ptr_stack_2_push(zend_ptr_stack *stack, void *a, void *b) -{ -#define ZEND_PTR_STACK_NUM_ARGS 2 - - ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, ZEND_PTR_STACK_NUM_ARGS) - - stack->top += ZEND_PTR_STACK_NUM_ARGS; - *(stack->top_element++) = a; - *(stack->top_element++) = b; - -#undef ZEND_PTR_STACK_NUM_ARGS -} - -static zend_always_inline void zend_ptr_stack_3_pop(zend_ptr_stack *stack, void **a, void **b, void **c) -{ - *a = *(--stack->top_element); - *b = *(--stack->top_element); - *c = *(--stack->top_element); - stack->top -= 3; -} - -static zend_always_inline void zend_ptr_stack_2_pop(zend_ptr_stack *stack, void **a, void **b) -{ - *a = *(--stack->top_element); - *b = *(--stack->top_element); - stack->top -= 2; -} - -static zend_always_inline void zend_ptr_stack_push(zend_ptr_stack *stack, void *ptr) -{ - ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, 1) - - stack->top++; - *(stack->top_element++) = ptr; -} - -static zend_always_inline void *zend_ptr_stack_pop(zend_ptr_stack *stack) -{ - stack->top--; - return *(--stack->top_element); -} - -static zend_always_inline void *zend_ptr_stack_top(zend_ptr_stack *stack) -{ - return stack->elements[stack->top - 1]; -} - -#endif /* ZEND_PTR_STACK_H */ diff --git a/include/php/Zend/zend_range_check.h b/include/php/Zend/zend_range_check.h deleted file mode 100644 index 9c82249..0000000 --- a/include/php/Zend/zend_range_check.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Anatol Belski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_RANGE_CHECK_H -#define ZEND_RANGE_CHECK_H - -#include "zend_long.h" - -/* Flag macros for basic range recognition. Notable is that - always sizeof(signed) == sizeof(unsigned), so no need to - overcomplicate things. */ -#if SIZEOF_INT < SIZEOF_ZEND_LONG -# define ZEND_LONG_CAN_OVFL_INT 1 -# define ZEND_LONG_CAN_OVFL_UINT 1 -#endif - -#if SIZEOF_INT < SIZEOF_SIZE_T -/* size_t can always overflow signed int on the same platform. - Furthermore, by the current design, size_t can always - overflow zend_long. */ -# define ZEND_SIZE_T_CAN_OVFL_UINT 1 -#endif - - -/* zend_long vs. (unsigned) int checks. */ -#ifdef ZEND_LONG_CAN_OVFL_INT -# define ZEND_LONG_INT_OVFL(zlong) UNEXPECTED((zlong) > (zend_long)INT_MAX) -# define ZEND_LONG_INT_UDFL(zlong) UNEXPECTED((zlong) < (zend_long)INT_MIN) -# define ZEND_LONG_EXCEEDS_INT(zlong) UNEXPECTED(ZEND_LONG_INT_OVFL(zlong) || ZEND_LONG_INT_UDFL(zlong)) -# define ZEND_LONG_UINT_OVFL(zlong) UNEXPECTED((zlong) < 0 || (zlong) > (zend_long)UINT_MAX) -#else -# define ZEND_LONG_INT_OVFL(zl) (0) -# define ZEND_LONG_INT_UDFL(zl) (0) -# define ZEND_LONG_EXCEEDS_INT(zlong) (0) -# define ZEND_LONG_UINT_OVFL(zl) (0) -#endif - -/* size_t vs (unsigned) int checks. */ -#define ZEND_SIZE_T_INT_OVFL(size) UNEXPECTED((size) > (size_t)INT_MAX) -#ifdef ZEND_SIZE_T_CAN_OVFL_UINT -# define ZEND_SIZE_T_UINT_OVFL(size) UNEXPECTED((size) > (size_t)UINT_MAX) -#else -# define ZEND_SIZE_T_UINT_OVFL(size) (0) -#endif - -/* Comparison zend_long vs size_t */ -#define ZEND_SIZE_T_GT_ZEND_LONG(size, zlong) ((zlong) < 0 || (size) > (size_t)(zlong)) -#define ZEND_SIZE_T_GTE_ZEND_LONG(size, zlong) ((zlong) < 0 || (size) >= (size_t)(zlong)) -#define ZEND_SIZE_T_LT_ZEND_LONG(size, zlong) ((zlong) >= 0 && (size) < (size_t)(zlong)) -#define ZEND_SIZE_T_LTE_ZEND_LONG(size, zlong) ((zlong) >= 0 && (size) <= (size_t)(zlong)) - -#endif /* ZEND_RANGE_CHECK_H */ diff --git a/include/php/Zend/zend_signal.h b/include/php/Zend/zend_signal.h deleted file mode 100644 index 0bb191d..0000000 --- a/include/php/Zend/zend_signal.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Signal Handling | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Lucas Nealan | - | Arnaud Le Blanc | - +----------------------------------------------------------------------+ - - */ - -#ifndef ZEND_SIGNAL_H -#define ZEND_SIGNAL_H - -#ifdef ZEND_SIGNALS - -#include - -#ifndef NSIG -#define NSIG 65 -#endif - -#ifndef ZEND_SIGNAL_QUEUE_SIZE -#define ZEND_SIGNAL_QUEUE_SIZE 64 -#endif - -/* Signal structs */ -typedef struct _zend_signal_entry_t { - int flags; /* sigaction style flags */ - void* handler; /* signal handler or context */ -} zend_signal_entry_t; - -typedef struct _zend_signal_t { - int signo; - siginfo_t *siginfo; - void* context; -} zend_signal_t; - -typedef struct _zend_signal_queue_t { - zend_signal_t zend_signal; - struct _zend_signal_queue_t *next; -} zend_signal_queue_t; - -/* Signal Globals */ -typedef struct _zend_signal_globals_t { - int depth; - int blocked; /* 1==TRUE, 0==FALSE */ - int running; /* in signal handler execution */ - int active; /* internal signal handling is enabled */ - zend_bool check; /* check for replaced handlers on shutdown */ - zend_bool reset; /* reset signal handlers on each request */ - zend_signal_entry_t handlers[NSIG]; - zend_signal_queue_t pstorage[ZEND_SIGNAL_QUEUE_SIZE], *phead, *ptail, *pavail; /* pending queue */ -} zend_signal_globals_t; - -# ifdef ZTS -# define SIGG(v) ZEND_TSRMG_FAST(zend_signal_globals_offset, zend_signal_globals_t *, v) -BEGIN_EXTERN_C() -ZEND_API extern int zend_signal_globals_id; -ZEND_API extern size_t zend_signal_globals_offset; -END_EXTERN_C() -# else -# define SIGG(v) (zend_signal_globals.v) -BEGIN_EXTERN_C() -ZEND_API extern zend_signal_globals_t zend_signal_globals; -END_EXTERN_C() -# endif /* not ZTS */ - -# ifdef ZTS -# define ZEND_SIGNAL_BLOCK_INTERRUPTIONS() if (EXPECTED(zend_signal_globals_id)) { SIGG(depth)++; } -# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (EXPECTED(zend_signal_globals_id) && UNEXPECTED(((SIGG(depth)--) == SIGG(blocked)))) { zend_signal_handler_unblock(); } -# else /* ZTS */ -# define ZEND_SIGNAL_BLOCK_INTERRUPTIONS() SIGG(depth)++; -# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() if (((SIGG(depth)--) == SIGG(blocked))) { zend_signal_handler_unblock(); } -# endif /* not ZTS */ - -ZEND_API void zend_signal_handler_unblock(void); -void zend_signal_activate(void); -void zend_signal_deactivate(void); -BEGIN_EXTERN_C() -ZEND_API void zend_signal_startup(void); -END_EXTERN_C() -void zend_signal_init(void); - -ZEND_API int zend_signal(int signo, void (*handler)(int)); -ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigaction *oldact); - -#else /* ZEND_SIGNALS */ - -# define ZEND_SIGNAL_BLOCK_INTERRUPTIONS() -# define ZEND_SIGNAL_UNBLOCK_INTERRUPTIONS() - -# define zend_signal_activate() -# define zend_signal_deactivate() -# define zend_signal_startup() -# define zend_signal_init() - -# define zend_signal(signo, handler) signal(signo, handler) -# define zend_sigaction(signo, act, oldact) sigaction(signo, act, oldact) - -#endif /* ZEND_SIGNALS */ - -#endif /* ZEND_SIGNAL_H */ diff --git a/include/php/Zend/zend_smart_str.h b/include/php/Zend/zend_smart_str.h deleted file mode 100644 index 2dab1f8..0000000 --- a/include/php/Zend/zend_smart_str.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ - */ - -#ifndef ZEND_SMART_STR_H -#define ZEND_SMART_STR_H - -#include -#include "zend_globals.h" -#include "zend_smart_str_public.h" - -#define smart_str_appends_ex(dest, src, what) \ - smart_str_appendl_ex((dest), (src), strlen(src), (what)) -#define smart_str_appends(dest, src) \ - smart_str_appendl((dest), (src), strlen(src)) -#define smart_str_extend(dest, len) \ - smart_str_extend_ex((dest), (len), 0) -#define smart_str_appendc(dest, c) \ - smart_str_appendc_ex((dest), (c), 0) -#define smart_str_appendl(dest, src, len) \ - smart_str_appendl_ex((dest), (src), (len), 0) -#define smart_str_append(dest, src) \ - smart_str_append_ex((dest), (src), 0) -#define smart_str_append_smart_str(dest, src) \ - smart_str_append_smart_str_ex((dest), (src), 0) -#define smart_str_sets(dest, src) \ - smart_str_setl((dest), (src), strlen(src)); -#define smart_str_append_long(dest, val) \ - smart_str_append_long_ex((dest), (val), 0) -#define smart_str_append_unsigned(dest, val) \ - smart_str_append_unsigned_ex((dest), (val), 0) -#define smart_str_free(dest) \ - smart_str_free_ex((dest), 0) - -BEGIN_EXTERN_C() - -ZEND_API void ZEND_FASTCALL smart_str_erealloc(smart_str *str, size_t len); -ZEND_API void ZEND_FASTCALL smart_str_realloc(smart_str *str, size_t len); -ZEND_API void ZEND_FASTCALL smart_str_append_escaped(smart_str *str, const char *s, size_t l); -ZEND_API void smart_str_append_printf(smart_str *dest, const char *format, ...) - ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); - -END_EXTERN_C() - -static zend_always_inline size_t smart_str_alloc(smart_str *str, size_t len, zend_bool persistent) { - if (UNEXPECTED(!str->s)) { - goto do_smart_str_realloc; - } else { - len += ZSTR_LEN(str->s); - if (UNEXPECTED(len >= str->a)) { -do_smart_str_realloc: - if (persistent) { - smart_str_realloc(str, len); - } else { - smart_str_erealloc(str, len); - } - } - } - return len; -} - -static zend_always_inline char* smart_str_extend_ex(smart_str *dest, size_t len, zend_bool persistent) { - size_t new_len = smart_str_alloc(dest, len, persistent); - char *ret = ZSTR_VAL(dest->s) + ZSTR_LEN(dest->s); - ZSTR_LEN(dest->s) = new_len; - return ret; -} - -static zend_always_inline void smart_str_free_ex(smart_str *str, zend_bool persistent) { - if (str->s) { - zend_string_release_ex(str->s, persistent); - str->s = NULL; - } - str->a = 0; -} - -static zend_always_inline void smart_str_0(smart_str *str) { - if (str->s) { - ZSTR_VAL(str->s)[ZSTR_LEN(str->s)] = '\0'; - } -} - -static zend_always_inline size_t smart_str_get_len(smart_str *str) { - return str->s ? ZSTR_LEN(str->s) : 0; -} - -static zend_always_inline zend_string *smart_str_extract(smart_str *str) { - if (str->s) { - zend_string *res; - smart_str_0(str); - res = str->s; - str->s = NULL; - return res; - } else { - return ZSTR_EMPTY_ALLOC(); - } -} - -static zend_always_inline void smart_str_appendc_ex(smart_str *dest, char ch, zend_bool persistent) { - size_t new_len = smart_str_alloc(dest, 1, persistent); - ZSTR_VAL(dest->s)[new_len - 1] = ch; - ZSTR_LEN(dest->s) = new_len; -} - -static zend_always_inline void smart_str_appendl_ex(smart_str *dest, const char *str, size_t len, zend_bool persistent) { - size_t new_len = smart_str_alloc(dest, len, persistent); - memcpy(ZSTR_VAL(dest->s) + ZSTR_LEN(dest->s), str, len); - ZSTR_LEN(dest->s) = new_len; -} - -static zend_always_inline void smart_str_append_ex(smart_str *dest, const zend_string *src, zend_bool persistent) { - smart_str_appendl_ex(dest, ZSTR_VAL(src), ZSTR_LEN(src), persistent); -} - -static zend_always_inline void smart_str_append_smart_str_ex(smart_str *dest, const smart_str *src, zend_bool persistent) { - if (src->s && ZSTR_LEN(src->s)) { - smart_str_append_ex(dest, src->s, persistent); - } -} - -static zend_always_inline void smart_str_append_long_ex(smart_str *dest, zend_long num, zend_bool persistent) { - char buf[32]; - char *result = zend_print_long_to_buf(buf + sizeof(buf) - 1, num); - smart_str_appendl_ex(dest, result, buf + sizeof(buf) - 1 - result, persistent); -} - -static zend_always_inline void smart_str_append_unsigned_ex(smart_str *dest, zend_ulong num, zend_bool persistent) { - char buf[32]; - char *result = zend_print_ulong_to_buf(buf + sizeof(buf) - 1, num); - smart_str_appendl_ex(dest, result, buf + sizeof(buf) - 1 - result, persistent); -} - -static zend_always_inline void smart_str_setl(smart_str *dest, const char *src, size_t len) { - smart_str_free(dest); - smart_str_appendl(dest, src, len); -} - -#endif diff --git a/include/php/Zend/zend_smart_str_public.h b/include/php/Zend/zend_smart_str_public.h deleted file mode 100644 index ba0b399..0000000 --- a/include/php/Zend/zend_smart_str_public.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ - */ - -#ifndef ZEND_SMART_STR_PUBLIC_H -#define ZEND_SMART_STR_PUBLIC_H - -typedef struct { - zend_string *s; - size_t a; -} smart_str; - -#endif diff --git a/include/php/Zend/zend_smart_string.h b/include/php/Zend/zend_smart_string.h deleted file mode 100644 index 4580e43..0000000 --- a/include/php/Zend/zend_smart_string.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - | Xinchen Hui | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_SMART_STRING_H -#define PHP_SMART_STRING_H - -#include "zend_smart_string_public.h" - -#include -#include - -/* wrapper */ - -#define smart_string_appends_ex(str, src, what) \ - smart_string_appendl_ex((str), (src), strlen(src), (what)) -#define smart_string_appends(str, src) \ - smart_string_appendl((str), (src), strlen(src)) -#define smart_string_append_ex(str, src, what) \ - smart_string_appendl_ex((str), ((smart_string *)(src))->c, \ - ((smart_string *)(src))->len, (what)); -#define smart_string_sets(str, src) \ - smart_string_setl((str), (src), strlen(src)); - -#define smart_string_appendc(str, c) \ - smart_string_appendc_ex((str), (c), 0) -#define smart_string_free(s) \ - smart_string_free_ex((s), 0) -#define smart_string_appendl(str, src, len) \ - smart_string_appendl_ex((str), (src), (len), 0) -#define smart_string_append(str, src) \ - smart_string_append_ex((str), (src), 0) -#define smart_string_append_long(str, val) \ - smart_string_append_long_ex((str), (val), 0) -#define smart_string_append_unsigned(str, val) \ - smart_string_append_unsigned_ex((str), (val), 0) - -ZEND_API void ZEND_FASTCALL _smart_string_alloc_persistent(smart_string *str, size_t len); -ZEND_API void ZEND_FASTCALL _smart_string_alloc(smart_string *str, size_t len); - -static zend_always_inline size_t smart_string_alloc(smart_string *str, size_t len, zend_bool persistent) { - if (UNEXPECTED(!str->c) || UNEXPECTED(len >= str->a - str->len)) { - if (persistent) { - _smart_string_alloc_persistent(str, len); - } else { - _smart_string_alloc(str, len); - } - } - return str->len + len; -} - -static zend_always_inline void smart_string_free_ex(smart_string *str, zend_bool persistent) { - if (str->c) { - pefree(str->c, persistent); - str->c = NULL; - } - str->a = str->len = 0; -} - -static zend_always_inline void smart_string_0(smart_string *str) { - if (str->c) { - str->c[str->len] = '\0'; - } -} - -static zend_always_inline void smart_string_appendc_ex(smart_string *dest, char ch, zend_bool persistent) { - dest->len = smart_string_alloc(dest, 1, persistent); - dest->c[dest->len - 1] = ch; -} - -static zend_always_inline void smart_string_appendl_ex(smart_string *dest, const char *str, size_t len, zend_bool persistent) { - size_t new_len = smart_string_alloc(dest, len, persistent); - memcpy(dest->c + dest->len, str, len); - dest->len = new_len; - -} - -static zend_always_inline void smart_string_append_long_ex(smart_string *dest, zend_long num, zend_bool persistent) { - char buf[32]; - char *result = zend_print_long_to_buf(buf + sizeof(buf) - 1, num); - smart_string_appendl_ex(dest, result, buf + sizeof(buf) - 1 - result, persistent); -} - -static zend_always_inline void smart_string_append_unsigned_ex(smart_string *dest, zend_ulong num, zend_bool persistent) { - char buf[32]; - char *result = zend_print_ulong_to_buf(buf + sizeof(buf) - 1, num); - smart_string_appendl_ex(dest, result, buf + sizeof(buf) - 1 - result, persistent); -} - -static zend_always_inline void smart_string_setl(smart_string *dest, char *src, size_t len) { - dest->len = len; - dest->a = len + 1; - dest->c = src; -} - -static zend_always_inline void smart_string_reset(smart_string *str) { - str->len = 0; -} - -#endif diff --git a/include/php/Zend/zend_smart_string_public.h b/include/php/Zend/zend_smart_string_public.h deleted file mode 100644 index e39d67c..0000000 --- a/include/php/Zend/zend_smart_string_public.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - | Xinchen Hui | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_SMART_STRING_PUBLIC_H -#define PHP_SMART_STRING_PUBLIC_H - -#include - -typedef struct { - char *c; - size_t len; - size_t a; -} smart_string; - -#endif diff --git a/include/php/Zend/zend_sort.h b/include/php/Zend/zend_sort.h deleted file mode 100644 index e2ef938..0000000 --- a/include/php/Zend/zend_sort.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Xinchen Hui | - | Sterling Hughes | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_SORT_H -#define ZEND_SORT_H - -BEGIN_EXTERN_C() -ZEND_API void zend_qsort(void *base, size_t nmemb, size_t siz, compare_func_t cmp, swap_func_t swp); -ZEND_API void zend_sort(void *base, size_t nmemb, size_t siz, compare_func_t cmp, swap_func_t swp); -ZEND_API void zend_insert_sort(void *base, size_t nmemb, size_t siz, compare_func_t cmp, swap_func_t swp); -END_EXTERN_C() - -#endif /* ZEND_SORT_H */ diff --git a/include/php/Zend/zend_stack.h b/include/php/Zend/zend_stack.h deleted file mode 100644 index 912850a..0000000 --- a/include/php/Zend/zend_stack.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_STACK_H -#define ZEND_STACK_H - -typedef struct _zend_stack { - int size, top, max; - void *elements; -} zend_stack; - - -#define STACK_BLOCK_SIZE 16 - -BEGIN_EXTERN_C() -ZEND_API int zend_stack_init(zend_stack *stack, int size); -ZEND_API int zend_stack_push(zend_stack *stack, const void *element); -ZEND_API void *zend_stack_top(const zend_stack *stack); -ZEND_API int zend_stack_del_top(zend_stack *stack); -ZEND_API int zend_stack_int_top(const zend_stack *stack); -ZEND_API int zend_stack_is_empty(const zend_stack *stack); -ZEND_API int zend_stack_destroy(zend_stack *stack); -ZEND_API void *zend_stack_base(const zend_stack *stack); -ZEND_API int zend_stack_count(const zend_stack *stack); -ZEND_API void zend_stack_apply(zend_stack *stack, int type, int (*apply_function)(void *element)); -ZEND_API void zend_stack_apply_with_argument(zend_stack *stack, int type, int (*apply_function)(void *element, void *arg), void *arg); -ZEND_API void zend_stack_clean(zend_stack *stack, void (*func)(void *), zend_bool free_elements); -END_EXTERN_C() - -#define ZEND_STACK_APPLY_TOPDOWN 1 -#define ZEND_STACK_APPLY_BOTTOMUP 2 - -#endif /* ZEND_STACK_H */ diff --git a/include/php/Zend/zend_stream.h b/include/php/Zend/zend_stream.h deleted file mode 100644 index 51651ad..0000000 --- a/include/php/Zend/zend_stream.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Wez Furlong | - | Scott MacVicar | - | Nuno Lopes | - | Marcus Boerger | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_STREAM_H -#define ZEND_STREAM_H - -#include -#include - -/* Lightweight stream implementation for the ZE scanners. - * These functions are private to the engine. - * */ -typedef size_t (*zend_stream_fsizer_t)(void* handle); -typedef ssize_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len); -typedef void (*zend_stream_closer_t)(void* handle); - -#define ZEND_MMAP_AHEAD 32 - -typedef enum { - ZEND_HANDLE_FILENAME, - ZEND_HANDLE_FP, - ZEND_HANDLE_STREAM -} zend_stream_type; - -typedef struct _zend_stream { - void *handle; - int isatty; - zend_stream_reader_t reader; - zend_stream_fsizer_t fsizer; - zend_stream_closer_t closer; -} zend_stream; - -typedef struct _zend_file_handle { - union { - FILE *fp; - zend_stream stream; - } handle; - const char *filename; - zend_string *opened_path; - zend_stream_type type; - /* free_filename is used by wincache */ - /* TODO: Clean up filename vs opened_path mess */ - zend_bool free_filename; - char *buf; - size_t len; -} zend_file_handle; - -BEGIN_EXTERN_C() -ZEND_API void zend_stream_init_fp(zend_file_handle *handle, FILE *fp, const char *filename); -ZEND_API void zend_stream_init_filename(zend_file_handle *handle, const char *filename); -ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle); -ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t *len); -ZEND_API void zend_file_handle_dtor(zend_file_handle *fh); -ZEND_API int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2); -END_EXTERN_C() - -#ifdef ZEND_WIN32 -# include "win32/ioutil.h" -typedef php_win32_ioutil_stat_t zend_stat_t; -#ifdef _WIN64 -# define zend_fseek _fseeki64 -# define zend_ftell _ftelli64 -# define zend_lseek _lseeki64 -# else -# define zend_fseek fseek -# define zend_ftell ftell -# define zend_lseek lseek -# endif -# define zend_fstat php_win32_ioutil_fstat -# define zend_stat php_win32_ioutil_stat -#else -typedef struct stat zend_stat_t; -# define zend_fseek fseek -# define zend_ftell ftell -# define zend_lseek lseek -# define zend_fstat fstat -# define zend_stat stat -#endif - -#endif diff --git a/include/php/Zend/zend_string.h b/include/php/Zend/zend_string.h deleted file mode 100644 index ff6ada3..0000000 --- a/include/php/Zend/zend_string.h +++ /dev/null @@ -1,526 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_STRING_H -#define ZEND_STRING_H - -#include "zend.h" - -BEGIN_EXTERN_C() - -typedef void (*zend_string_copy_storage_func_t)(void); -typedef zend_string *(ZEND_FASTCALL *zend_new_interned_string_func_t)(zend_string *str); -typedef zend_string *(ZEND_FASTCALL *zend_string_init_interned_func_t)(const char *str, size_t size, int permanent); - -ZEND_API extern zend_new_interned_string_func_t zend_new_interned_string; -ZEND_API extern zend_string_init_interned_func_t zend_string_init_interned; - -ZEND_API zend_ulong ZEND_FASTCALL zend_string_hash_func(zend_string *str); -ZEND_API zend_ulong ZEND_FASTCALL zend_hash_func(const char *str, size_t len); -ZEND_API zend_string* ZEND_FASTCALL zend_interned_string_find_permanent(zend_string *str); - -ZEND_API void zend_interned_strings_init(void); -ZEND_API void zend_interned_strings_dtor(void); -ZEND_API void zend_interned_strings_activate(void); -ZEND_API void zend_interned_strings_deactivate(void); -ZEND_API void zend_interned_strings_set_request_storage_handlers(zend_new_interned_string_func_t handler, zend_string_init_interned_func_t init_handler); -ZEND_API void zend_interned_strings_switch_storage(zend_bool request); - -ZEND_API extern zend_string *zend_empty_string; -ZEND_API extern zend_string *zend_one_char_string[256]; -ZEND_API extern zend_string **zend_known_strings; - -END_EXTERN_C() - -/* Shortcuts */ - -#define ZSTR_VAL(zstr) (zstr)->val -#define ZSTR_LEN(zstr) (zstr)->len -#define ZSTR_H(zstr) (zstr)->h -#define ZSTR_HASH(zstr) zend_string_hash_val(zstr) - -/* Compatibility macros */ - -#define IS_INTERNED(s) ZSTR_IS_INTERNED(s) -#define STR_EMPTY_ALLOC() ZSTR_EMPTY_ALLOC() -#define _STR_HEADER_SIZE _ZSTR_HEADER_SIZE -#define STR_ALLOCA_ALLOC(str, _len, use_heap) ZSTR_ALLOCA_ALLOC(str, _len, use_heap) -#define STR_ALLOCA_INIT(str, s, len, use_heap) ZSTR_ALLOCA_INIT(str, s, len, use_heap) -#define STR_ALLOCA_FREE(str, use_heap) ZSTR_ALLOCA_FREE(str, use_heap) - -/*---*/ - -#define ZSTR_IS_INTERNED(s) (GC_FLAGS(s) & IS_STR_INTERNED) - -#define ZSTR_EMPTY_ALLOC() zend_empty_string -#define ZSTR_CHAR(c) zend_one_char_string[c] -#define ZSTR_KNOWN(idx) zend_known_strings[idx] - -#define _ZSTR_HEADER_SIZE XtOffsetOf(zend_string, val) - -#define _ZSTR_STRUCT_SIZE(len) (_ZSTR_HEADER_SIZE + len + 1) - -#define ZSTR_MAX_OVERHEAD (ZEND_MM_ALIGNED_SIZE(_ZSTR_HEADER_SIZE + 1)) -#define ZSTR_MAX_LEN (SIZE_MAX - ZSTR_MAX_OVERHEAD) - -#define ZSTR_ALLOCA_ALLOC(str, _len, use_heap) do { \ - (str) = (zend_string *)do_alloca(ZEND_MM_ALIGNED_SIZE_EX(_ZSTR_STRUCT_SIZE(_len), 8), (use_heap)); \ - GC_SET_REFCOUNT(str, 1); \ - GC_TYPE_INFO(str) = IS_STRING; \ - ZSTR_H(str) = 0; \ - ZSTR_LEN(str) = _len; \ -} while (0) - -#define ZSTR_ALLOCA_INIT(str, s, len, use_heap) do { \ - ZSTR_ALLOCA_ALLOC(str, len, use_heap); \ - memcpy(ZSTR_VAL(str), (s), (len)); \ - ZSTR_VAL(str)[(len)] = '\0'; \ -} while (0) - -#define ZSTR_ALLOCA_FREE(str, use_heap) free_alloca(str, use_heap) - -/*---*/ - -static zend_always_inline zend_ulong zend_string_hash_val(zend_string *s) -{ - return ZSTR_H(s) ? ZSTR_H(s) : zend_string_hash_func(s); -} - -static zend_always_inline void zend_string_forget_hash_val(zend_string *s) -{ - ZSTR_H(s) = 0; - GC_DEL_FLAGS(s, IS_STR_VALID_UTF8); -} - -static zend_always_inline uint32_t zend_string_refcount(const zend_string *s) -{ - if (!ZSTR_IS_INTERNED(s)) { - return GC_REFCOUNT(s); - } - return 1; -} - -static zend_always_inline uint32_t zend_string_addref(zend_string *s) -{ - if (!ZSTR_IS_INTERNED(s)) { - return GC_ADDREF(s); - } - return 1; -} - -static zend_always_inline uint32_t zend_string_delref(zend_string *s) -{ - if (!ZSTR_IS_INTERNED(s)) { - return GC_DELREF(s); - } - return 1; -} - -static zend_always_inline zend_string *zend_string_alloc(size_t len, int persistent) -{ - zend_string *ret = (zend_string *)pemalloc(ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); - - GC_SET_REFCOUNT(ret, 1); - GC_TYPE_INFO(ret) = IS_STRING | ((persistent ? IS_STR_PERSISTENT : 0) << GC_FLAGS_SHIFT); - ZSTR_H(ret) = 0; - ZSTR_LEN(ret) = len; - return ret; -} - -static zend_always_inline zend_string *zend_string_safe_alloc(size_t n, size_t m, size_t l, int persistent) -{ - zend_string *ret = (zend_string *)safe_pemalloc(n, m, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(l)), persistent); - - GC_SET_REFCOUNT(ret, 1); - GC_TYPE_INFO(ret) = IS_STRING | ((persistent ? IS_STR_PERSISTENT : 0) << GC_FLAGS_SHIFT); - ZSTR_H(ret) = 0; - ZSTR_LEN(ret) = (n * m) + l; - return ret; -} - -static zend_always_inline zend_string *zend_string_init(const char *str, size_t len, int persistent) -{ - zend_string *ret = zend_string_alloc(len, persistent); - - memcpy(ZSTR_VAL(ret), str, len); - ZSTR_VAL(ret)[len] = '\0'; - return ret; -} - -static zend_always_inline zend_string *zend_string_copy(zend_string *s) -{ - if (!ZSTR_IS_INTERNED(s)) { - GC_ADDREF(s); - } - return s; -} - -static zend_always_inline zend_string *zend_string_dup(zend_string *s, int persistent) -{ - if (ZSTR_IS_INTERNED(s)) { - return s; - } else { - return zend_string_init(ZSTR_VAL(s), ZSTR_LEN(s), persistent); - } -} - -static zend_always_inline zend_string *zend_string_realloc(zend_string *s, size_t len, int persistent) -{ - zend_string *ret; - - if (!ZSTR_IS_INTERNED(s)) { - if (EXPECTED(GC_REFCOUNT(s) == 1)) { - ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); - ZSTR_LEN(ret) = len; - zend_string_forget_hash_val(ret); - return ret; - } - } - ret = zend_string_alloc(len, persistent); - memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), MIN(len, ZSTR_LEN(s)) + 1); - if (!ZSTR_IS_INTERNED(s)) { - GC_DELREF(s); - } - return ret; -} - -static zend_always_inline zend_string *zend_string_extend(zend_string *s, size_t len, int persistent) -{ - zend_string *ret; - - ZEND_ASSERT(len >= ZSTR_LEN(s)); - if (!ZSTR_IS_INTERNED(s)) { - if (EXPECTED(GC_REFCOUNT(s) == 1)) { - ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); - ZSTR_LEN(ret) = len; - zend_string_forget_hash_val(ret); - return ret; - } - } - ret = zend_string_alloc(len, persistent); - memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), ZSTR_LEN(s) + 1); - if (!ZSTR_IS_INTERNED(s)) { - GC_DELREF(s); - } - return ret; -} - -static zend_always_inline zend_string *zend_string_truncate(zend_string *s, size_t len, int persistent) -{ - zend_string *ret; - - ZEND_ASSERT(len <= ZSTR_LEN(s)); - if (!ZSTR_IS_INTERNED(s)) { - if (EXPECTED(GC_REFCOUNT(s) == 1)) { - ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); - ZSTR_LEN(ret) = len; - zend_string_forget_hash_val(ret); - return ret; - } - } - ret = zend_string_alloc(len, persistent); - memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), len + 1); - if (!ZSTR_IS_INTERNED(s)) { - GC_DELREF(s); - } - return ret; -} - -static zend_always_inline zend_string *zend_string_safe_realloc(zend_string *s, size_t n, size_t m, size_t l, int persistent) -{ - zend_string *ret; - - if (!ZSTR_IS_INTERNED(s)) { - if (GC_REFCOUNT(s) == 1) { - ret = (zend_string *)safe_perealloc(s, n, m, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(l)), persistent); - ZSTR_LEN(ret) = (n * m) + l; - zend_string_forget_hash_val(ret); - return ret; - } - } - ret = zend_string_safe_alloc(n, m, l, persistent); - memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), MIN((n * m) + l, ZSTR_LEN(s)) + 1); - if (!ZSTR_IS_INTERNED(s)) { - GC_DELREF(s); - } - return ret; -} - -static zend_always_inline void zend_string_free(zend_string *s) -{ - if (!ZSTR_IS_INTERNED(s)) { - ZEND_ASSERT(GC_REFCOUNT(s) <= 1); - pefree(s, GC_FLAGS(s) & IS_STR_PERSISTENT); - } -} - -static zend_always_inline void zend_string_efree(zend_string *s) -{ - ZEND_ASSERT(!ZSTR_IS_INTERNED(s)); - ZEND_ASSERT(GC_REFCOUNT(s) <= 1); - ZEND_ASSERT(!(GC_FLAGS(s) & IS_STR_PERSISTENT)); - efree(s); -} - -static zend_always_inline void zend_string_release(zend_string *s) -{ - if (!ZSTR_IS_INTERNED(s)) { - if (GC_DELREF(s) == 0) { - pefree(s, GC_FLAGS(s) & IS_STR_PERSISTENT); - } - } -} - -static zend_always_inline void zend_string_release_ex(zend_string *s, int persistent) -{ - if (!ZSTR_IS_INTERNED(s)) { - if (GC_DELREF(s) == 0) { - if (persistent) { - ZEND_ASSERT(GC_FLAGS(s) & IS_STR_PERSISTENT); - free(s); - } else { - ZEND_ASSERT(!(GC_FLAGS(s) & IS_STR_PERSISTENT)); - efree(s); - } - } - } -} - -#if defined(__GNUC__) && (defined(__i386__) || (defined(__x86_64__) && !defined(__ILP32__))) -BEGIN_EXTERN_C() -ZEND_API zend_bool ZEND_FASTCALL zend_string_equal_val(zend_string *s1, zend_string *s2); -END_EXTERN_C() -#else -static zend_always_inline zend_bool zend_string_equal_val(zend_string *s1, zend_string *s2) -{ - return !memcmp(ZSTR_VAL(s1), ZSTR_VAL(s2), ZSTR_LEN(s1)); -} -#endif - -static zend_always_inline zend_bool zend_string_equal_content(zend_string *s1, zend_string *s2) -{ - return ZSTR_LEN(s1) == ZSTR_LEN(s2) && zend_string_equal_val(s1, s2); -} - -static zend_always_inline zend_bool zend_string_equals(zend_string *s1, zend_string *s2) -{ - return s1 == s2 || zend_string_equal_content(s1, s2); -} - -#define zend_string_equals_ci(s1, s2) \ - (ZSTR_LEN(s1) == ZSTR_LEN(s2) && !zend_binary_strcasecmp(ZSTR_VAL(s1), ZSTR_LEN(s1), ZSTR_VAL(s2), ZSTR_LEN(s2))) - -#define zend_string_equals_literal_ci(str, c) \ - (ZSTR_LEN(str) == sizeof(c) - 1 && !zend_binary_strcasecmp(ZSTR_VAL(str), ZSTR_LEN(str), (c), sizeof(c) - 1)) - -#define zend_string_equals_literal(str, literal) \ - (ZSTR_LEN(str) == sizeof(literal)-1 && !memcmp(ZSTR_VAL(str), literal, sizeof(literal) - 1)) - -/* - * DJBX33A (Daniel J. Bernstein, Times 33 with Addition) - * - * This is Daniel J. Bernstein's popular `times 33' hash function as - * posted by him years ago on comp.lang.c. It basically uses a function - * like ``hash(i) = hash(i-1) * 33 + str[i]''. This is one of the best - * known hash functions for strings. Because it is both computed very - * fast and distributes very well. - * - * The magic of number 33, i.e. why it works better than many other - * constants, prime or not, has never been adequately explained by - * anyone. So I try an explanation: if one experimentally tests all - * multipliers between 1 and 256 (as RSE did now) one detects that even - * numbers are not usable at all. The remaining 128 odd numbers - * (except for the number 1) work more or less all equally well. They - * all distribute in an acceptable way and this way fill a hash table - * with an average percent of approx. 86%. - * - * If one compares the Chi^2 values of the variants, the number 33 not - * even has the best value. But the number 33 and a few other equally - * good numbers like 17, 31, 63, 127 and 129 have nevertheless a great - * advantage to the remaining numbers in the large set of possible - * multipliers: their multiply operation can be replaced by a faster - * operation based on just one shift plus either a single addition - * or subtraction operation. And because a hash function has to both - * distribute good _and_ has to be very fast to compute, those few - * numbers should be preferred and seems to be the reason why Daniel J. - * Bernstein also preferred it. - * - * - * -- Ralf S. Engelschall - */ - -static zend_always_inline zend_ulong zend_inline_hash_func(const char *str, size_t len) -{ - zend_ulong hash = Z_UL(5381); - -#if defined(_WIN32) || defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) - /* Version with multiplication works better on modern CPU */ - for (; len >= 8; len -= 8, str += 8) { -# if defined(__aarch64__) && !defined(WORDS_BIGENDIAN) - /* On some architectures it is beneficial to load 8 bytes at a - time and extract each byte with a bit field extract instr. */ - uint64_t chunk; - - memcpy(&chunk, str, sizeof(chunk)); - hash = - hash * 33 * 33 * 33 * 33 + - ((chunk >> (8 * 0)) & 0xff) * 33 * 33 * 33 + - ((chunk >> (8 * 1)) & 0xff) * 33 * 33 + - ((chunk >> (8 * 2)) & 0xff) * 33 + - ((chunk >> (8 * 3)) & 0xff); - hash = - hash * 33 * 33 * 33 * 33 + - ((chunk >> (8 * 4)) & 0xff) * 33 * 33 * 33 + - ((chunk >> (8 * 5)) & 0xff) * 33 * 33 + - ((chunk >> (8 * 6)) & 0xff) * 33 + - ((chunk >> (8 * 7)) & 0xff); -# else - hash = - hash * 33 * 33 * 33 * 33 + - str[0] * 33 * 33 * 33 + - str[1] * 33 * 33 + - str[2] * 33 + - str[3]; - hash = - hash * 33 * 33 * 33 * 33 + - str[4] * 33 * 33 * 33 + - str[5] * 33 * 33 + - str[6] * 33 + - str[7]; -# endif - } - if (len >= 4) { - hash = - hash * 33 * 33 * 33 * 33 + - str[0] * 33 * 33 * 33 + - str[1] * 33 * 33 + - str[2] * 33 + - str[3]; - len -= 4; - str += 4; - } - if (len >= 2) { - if (len > 2) { - hash = - hash * 33 * 33 * 33 + - str[0] * 33 * 33 + - str[1] * 33 + - str[2]; - } else { - hash = - hash * 33 * 33 + - str[0] * 33 + - str[1]; - } - } else if (len != 0) { - hash = hash * 33 + *str; - } -#else - /* variant with the hash unrolled eight times */ - for (; len >= 8; len -= 8) { - hash = ((hash << 5) + hash) + *str++; - hash = ((hash << 5) + hash) + *str++; - hash = ((hash << 5) + hash) + *str++; - hash = ((hash << 5) + hash) + *str++; - hash = ((hash << 5) + hash) + *str++; - hash = ((hash << 5) + hash) + *str++; - hash = ((hash << 5) + hash) + *str++; - hash = ((hash << 5) + hash) + *str++; - } - switch (len) { - case 7: hash = ((hash << 5) + hash) + *str++; /* fallthrough... */ - case 6: hash = ((hash << 5) + hash) + *str++; /* fallthrough... */ - case 5: hash = ((hash << 5) + hash) + *str++; /* fallthrough... */ - case 4: hash = ((hash << 5) + hash) + *str++; /* fallthrough... */ - case 3: hash = ((hash << 5) + hash) + *str++; /* fallthrough... */ - case 2: hash = ((hash << 5) + hash) + *str++; /* fallthrough... */ - case 1: hash = ((hash << 5) + hash) + *str++; break; - case 0: break; -EMPTY_SWITCH_DEFAULT_CASE() - } -#endif - - /* Hash value can't be zero, so we always set the high bit */ -#if SIZEOF_ZEND_LONG == 8 - return hash | Z_UL(0x8000000000000000); -#elif SIZEOF_ZEND_LONG == 4 - return hash | Z_UL(0x80000000); -#else -# error "Unknown SIZEOF_ZEND_LONG" -#endif -} - -#define ZEND_KNOWN_STRINGS(_) \ - _(ZEND_STR_FILE, "file") \ - _(ZEND_STR_LINE, "line") \ - _(ZEND_STR_FUNCTION, "function") \ - _(ZEND_STR_CLASS, "class") \ - _(ZEND_STR_OBJECT, "object") \ - _(ZEND_STR_TYPE, "type") \ - _(ZEND_STR_OBJECT_OPERATOR, "->") \ - _(ZEND_STR_PAAMAYIM_NEKUDOTAYIM, "::") \ - _(ZEND_STR_ARGS, "args") \ - _(ZEND_STR_UNKNOWN, "unknown") \ - _(ZEND_STR_EVAL, "eval") \ - _(ZEND_STR_INCLUDE, "include") \ - _(ZEND_STR_REQUIRE, "require") \ - _(ZEND_STR_INCLUDE_ONCE, "include_once") \ - _(ZEND_STR_REQUIRE_ONCE, "require_once") \ - _(ZEND_STR_SCALAR, "scalar") \ - _(ZEND_STR_ERROR_REPORTING, "error_reporting") \ - _(ZEND_STR_STATIC, "static") \ - _(ZEND_STR_THIS, "this") \ - _(ZEND_STR_VALUE, "value") \ - _(ZEND_STR_KEY, "key") \ - _(ZEND_STR_MAGIC_AUTOLOAD, "__autoload") \ - _(ZEND_STR_MAGIC_INVOKE, "__invoke") \ - _(ZEND_STR_PREVIOUS, "previous") \ - _(ZEND_STR_CODE, "code") \ - _(ZEND_STR_MESSAGE, "message") \ - _(ZEND_STR_SEVERITY, "severity") \ - _(ZEND_STR_STRING, "string") \ - _(ZEND_STR_TRACE, "trace") \ - _(ZEND_STR_SCHEME, "scheme") \ - _(ZEND_STR_HOST, "host") \ - _(ZEND_STR_PORT, "port") \ - _(ZEND_STR_USER, "user") \ - _(ZEND_STR_PASS, "pass") \ - _(ZEND_STR_PATH, "path") \ - _(ZEND_STR_QUERY, "query") \ - _(ZEND_STR_FRAGMENT, "fragment") \ - _(ZEND_STR_NULL, "NULL") \ - _(ZEND_STR_BOOLEAN, "boolean") \ - _(ZEND_STR_INTEGER, "integer") \ - _(ZEND_STR_DOUBLE, "double") \ - _(ZEND_STR_ARRAY, "array") \ - _(ZEND_STR_RESOURCE, "resource") \ - _(ZEND_STR_CLOSED_RESOURCE, "resource (closed)") \ - _(ZEND_STR_NAME, "name") \ - _(ZEND_STR_ARGV, "argv") \ - _(ZEND_STR_ARGC, "argc") \ - _(ZEND_STR_ARRAY_CAPITALIZED, "Array") \ - - -typedef enum _zend_known_string_id { -#define _ZEND_STR_ID(id, str) id, -ZEND_KNOWN_STRINGS(_ZEND_STR_ID) -#undef _ZEND_STR_ID - ZEND_STR_LAST_KNOWN -} zend_known_string_id; - -#endif /* ZEND_STRING_H */ diff --git a/include/php/Zend/zend_strtod.h b/include/php/Zend/zend_strtod.h deleted file mode 100644 index ea81827..0000000 --- a/include/php/Zend/zend_strtod.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Derick Rethans | - +----------------------------------------------------------------------+ -*/ - -/* This is a header file for the strtod implementation by David M. Gay which - * can be found in zend_strtod.c */ -#ifndef ZEND_STRTOD_H -#define ZEND_STRTOD_H -#include - -BEGIN_EXTERN_C() -ZEND_API void zend_freedtoa(char *s); -ZEND_API char * zend_dtoa(double _d, int mode, int ndigits, int *decpt, int *sign, char **rve); -ZEND_API double zend_strtod(const char *s00, const char **se); -ZEND_API double zend_hex_strtod(const char *str, const char **endptr); -ZEND_API double zend_oct_strtod(const char *str, const char **endptr); -ZEND_API double zend_bin_strtod(const char *str, const char **endptr); -ZEND_API int zend_startup_strtod(void); -ZEND_API int zend_shutdown_strtod(void); -END_EXTERN_C() - -#endif diff --git a/include/php/Zend/zend_strtod_int.h b/include/php/Zend/zend_strtod_int.h deleted file mode 100644 index 5fe31f9..0000000 --- a/include/php/Zend/zend_strtod_int.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Anatol Belski | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_STRTOD_INT_H -#define ZEND_STRTOD_INT_H - -#ifdef ZTS -#include -#endif - -#include -#include -#include -#include -#include - -#ifdef HAVE_SYS_TYPES_H -#include -#endif - -/* TODO check to undef this option, this might - make more perf. destroy_freelist() - should be adapted then. */ -#define Omit_Private_Memory 1 - -/* HEX strings aren't supported as per - https://wiki.php.net/rfc/remove_hex_support_in_numeric_strings */ -#define NO_HEX_FP 1 - -#if defined(HAVE_INTTYPES_H) -#include -#elif defined(HAVE_STDINT_H) -#include -#endif - -#ifndef HAVE_INT32_T -# if SIZEOF_INT == 4 -typedef int int32_t; -# elif SIZEOF_LONG == 4 -typedef long int int32_t; -# endif -#endif - -#ifndef HAVE_UINT32_T -# if SIZEOF_INT == 4 -typedef unsigned int uint32_t; -# elif SIZEOF_LONG == 4 -typedef unsigned long int uint32_t; -# endif -#endif - -#ifdef USE_LOCALE -#undef USE_LOCALE -#endif - -#ifndef NO_INFNAN_CHECK -#define NO_INFNAN_CHECK -#endif - -#ifndef NO_ERRNO -#define NO_ERRNO -#endif - -#ifdef WORDS_BIGENDIAN -#define IEEE_BIG_ENDIAN 1 -#else -#define IEEE_LITTLE_ENDIAN 1 -#endif - -#if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__)) -# if defined(__LITTLE_ENDIAN__) -# undef WORDS_BIGENDIAN -# else -# if defined(__BIG_ENDIAN__) -# define WORDS_BIGENDIAN -# endif -# endif -#endif - -#if defined(__arm__) && !defined(__VFP_FP__) -/* - * * Although the CPU is little endian the FP has different - * * byte and word endianness. The byte order is still little endian - * * but the word order is big endian. - * */ -#define IEEE_BIG_ENDIAN -#undef IEEE_LITTLE_ENDIAN -#endif - -#ifdef __vax__ -#define VAX -#undef IEEE_LITTLE_ENDIAN -#endif - -#ifdef IEEE_LITTLE_ENDIAN -#define IEEE_8087 1 -#endif - -#ifdef IEEE_BIG_ENDIAN -#define IEEE_MC68k 1 -#endif - -#if defined(_MSC_VER) -#ifndef int32_t -#define int32_t __int32 -#endif -#ifndef uint32_t -#define uint32_t unsigned __int32 -#endif -#endif - -#ifdef ZTS -#define MULTIPLE_THREADS 1 - -#define ACQUIRE_DTOA_LOCK(x) \ - if (0 == x) { \ - tsrm_mutex_lock(dtoa_mutex); \ - } else if (1 == x) { \ - tsrm_mutex_lock(pow5mult_mutex); \ - } - -#define FREE_DTOA_LOCK(x) \ - if (0 == x) { \ - tsrm_mutex_unlock(dtoa_mutex); \ - } else if (1 == x) { \ - tsrm_mutex_unlock(pow5mult_mutex); \ - } - - -#endif - -#endif /* ZEND_STRTOD_INT_H */ diff --git a/include/php/Zend/zend_ts_hash.h b/include/php/Zend/zend_ts_hash.h deleted file mode 100644 index 35a4250..0000000 --- a/include/php/Zend/zend_ts_hash.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Harald Radi | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_TS_HASH_H -#define ZEND_TS_HASH_H - -#include "zend.h" - -typedef struct _zend_ts_hashtable { - HashTable hash; - uint32_t reader; -#ifdef ZTS - MUTEX_T mx_reader; - MUTEX_T mx_writer; -#endif -} TsHashTable; - -BEGIN_EXTERN_C() - -#define TS_HASH(table) (&(table->hash)) - -/* startup/shutdown */ -ZEND_API void _zend_ts_hash_init(TsHashTable *ht, uint32_t nSize, dtor_func_t pDestructor, zend_bool persistent); -ZEND_API void zend_ts_hash_destroy(TsHashTable *ht); -ZEND_API void zend_ts_hash_clean(TsHashTable *ht); - -#define zend_ts_hash_init(ht, nSize, pHashFunction, pDestructor, persistent) \ - _zend_ts_hash_init(ht, nSize, pDestructor, persistent) -#define zend_ts_hash_init_ex(ht, nSize, pHashFunction, pDestructor, persistent, bApplyProtection) \ - _zend_ts_hash_init(ht, nSize, pDestructor, persistent) - - -/* additions/updates/changes */ -ZEND_API zval *zend_ts_hash_update(TsHashTable *ht, zend_string *key, zval *pData); -ZEND_API zval *zend_ts_hash_add(TsHashTable *ht, zend_string *key, zval *pData); -ZEND_API zval *zend_ts_hash_index_update(TsHashTable *ht, zend_ulong h, zval *pData); -ZEND_API zval *zend_ts_hash_next_index_insert(TsHashTable *ht, zval *pData); -ZEND_API zval* zend_ts_hash_add_empty_element(TsHashTable *ht, zend_string *key); - -ZEND_API void zend_ts_hash_graceful_destroy(TsHashTable *ht); -ZEND_API void zend_ts_hash_apply(TsHashTable *ht, apply_func_t apply_func); -ZEND_API void zend_ts_hash_apply_with_argument(TsHashTable *ht, apply_func_arg_t apply_func, void *); -ZEND_API void zend_ts_hash_apply_with_arguments(TsHashTable *ht, apply_func_args_t apply_func, int, ...); - -ZEND_API void zend_ts_hash_reverse_apply(TsHashTable *ht, apply_func_t apply_func); - - -/* Deletes */ -ZEND_API int zend_ts_hash_del(TsHashTable *ht, zend_string *key); -ZEND_API int zend_ts_hash_index_del(TsHashTable *ht, zend_ulong h); - -/* Data retrieval */ -ZEND_API zval *zend_ts_hash_find(TsHashTable *ht, zend_string *key); -ZEND_API zval *zend_ts_hash_index_find(TsHashTable *ht, zend_ulong); - -/* Copying, merging and sorting */ -ZEND_API void zend_ts_hash_copy(TsHashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor); -ZEND_API void zend_ts_hash_copy_to_hash(HashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor); -ZEND_API void zend_ts_hash_merge(TsHashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor, int overwrite); -ZEND_API void zend_ts_hash_merge_ex(TsHashTable *target, TsHashTable *source, copy_ctor_func_t pCopyConstructor, merge_checker_func_t pMergeSource, void *pParam); -ZEND_API int zend_ts_hash_sort(TsHashTable *ht, sort_func_t sort_func, compare_func_t compare_func, int renumber); -ZEND_API int zend_ts_hash_compare(TsHashTable *ht1, TsHashTable *ht2, compare_func_t compar, zend_bool ordered); -ZEND_API zval *zend_ts_hash_minmax(TsHashTable *ht, compare_func_t compar, int flag); - -ZEND_API int zend_ts_hash_num_elements(TsHashTable *ht); - -ZEND_API int zend_ts_hash_rehash(TsHashTable *ht); - -#if ZEND_DEBUG -/* debug */ -void zend_ts_hash_display_pListTail(TsHashTable *ht); -void zend_ts_hash_display(TsHashTable *ht); -#endif - -ZEND_API zval *zend_ts_hash_str_find(TsHashTable *ht, const char *key, size_t len); -ZEND_API zval *zend_ts_hash_str_update(TsHashTable *ht, const char *key, size_t len, zval *pData); -ZEND_API zval *zend_ts_hash_str_add(TsHashTable *ht, const char *key, size_t len, zval *pData); - -static zend_always_inline void *zend_ts_hash_str_find_ptr(TsHashTable *ht, const char *str, size_t len) -{ - zval *zv; - - zv = zend_ts_hash_str_find(ht, str, len); - return zv ? Z_PTR_P(zv) : NULL; -} - -static zend_always_inline void *zend_ts_hash_str_update_ptr(TsHashTable *ht, const char *str, size_t len, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_ts_hash_str_update(ht, str, len, &tmp); - return zv ? Z_PTR_P(zv) : NULL; -} - -static zend_always_inline void *zend_ts_hash_str_add_ptr(TsHashTable *ht, const char *str, size_t len, void *pData) -{ - zval tmp, *zv; - - ZVAL_PTR(&tmp, pData); - zv = zend_ts_hash_str_add(ht, str, len, &tmp); - return zv ? Z_PTR_P(zv) : NULL; -} - -static zend_always_inline int zend_ts_hash_exists(TsHashTable *ht, zend_string *key) -{ - return zend_ts_hash_find(ht, key) != NULL; -} - -static zend_always_inline int zend_ts_hash_index_exists(TsHashTable *ht, zend_ulong h) -{ - return zend_ts_hash_index_find(ht, h) != NULL; -} - -END_EXTERN_C() - -#define ZEND_TS_INIT_SYMTABLE(ht) \ - ZEND_TS_INIT_SYMTABLE_EX(ht, 2, 0) - -#define ZEND_TS_INIT_SYMTABLE_EX(ht, n, persistent) \ - zend_ts_hash_init(ht, n, NULL, ZVAL_PTR_DTOR, persistent) - -#endif /* ZEND_HASH_H */ diff --git a/include/php/Zend/zend_type_info.h b/include/php/Zend/zend_type_info.h deleted file mode 100644 index 72550b6..0000000 --- a/include/php/Zend/zend_type_info.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_TYPE_INFO_H -#define ZEND_TYPE_INFO_H - -#include "zend_types.h" - -#define MAY_BE_UNDEF (1 << IS_UNDEF) -#define MAY_BE_NULL (1 << IS_NULL) -#define MAY_BE_FALSE (1 << IS_FALSE) -#define MAY_BE_TRUE (1 << IS_TRUE) -#define MAY_BE_LONG (1 << IS_LONG) -#define MAY_BE_DOUBLE (1 << IS_DOUBLE) -#define MAY_BE_STRING (1 << IS_STRING) -#define MAY_BE_ARRAY (1 << IS_ARRAY) -#define MAY_BE_OBJECT (1 << IS_OBJECT) -#define MAY_BE_RESOURCE (1 << IS_RESOURCE) -#define MAY_BE_ANY (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE) -#define MAY_BE_REF (1 << IS_REFERENCE) /* may be reference */ - -#define MAY_BE_ARRAY_SHIFT (IS_REFERENCE) - -#define MAY_BE_ARRAY_OF_NULL (MAY_BE_NULL << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_FALSE (MAY_BE_FALSE << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_TRUE (MAY_BE_TRUE << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_LONG (MAY_BE_LONG << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_DOUBLE (MAY_BE_DOUBLE << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_STRING (MAY_BE_STRING << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_ARRAY (MAY_BE_ARRAY << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_OBJECT (MAY_BE_OBJECT << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_RESOURCE (MAY_BE_RESOURCE << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_ANY (MAY_BE_ANY << MAY_BE_ARRAY_SHIFT) -#define MAY_BE_ARRAY_OF_REF (MAY_BE_REF << MAY_BE_ARRAY_SHIFT) - -#define MAY_BE_ARRAY_KEY_LONG (1<<21) -#define MAY_BE_ARRAY_KEY_STRING (1<<22) -#define MAY_BE_ARRAY_KEY_ANY (MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_KEY_STRING) - -#define MAY_BE_ERROR (1<<23) -#define MAY_BE_CLASS (1<<24) - -#endif /* ZEND_TYPE_INFO_H */ diff --git a/include/php/Zend/zend_types.h b/include/php/Zend/zend_types.h deleted file mode 100644 index 7b8c079..0000000 --- a/include/php/Zend/zend_types.h +++ /dev/null @@ -1,1283 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - | Xinchen Hui | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_TYPES_H -#define ZEND_TYPES_H - -#include "zend_portability.h" -#include "zend_long.h" - -#ifdef __SSE2__ -# include -# include -#endif - -#ifdef WORDS_BIGENDIAN -# define ZEND_ENDIAN_LOHI(lo, hi) hi; lo; -# define ZEND_ENDIAN_LOHI_3(lo, mi, hi) hi; mi; lo; -# define ZEND_ENDIAN_LOHI_4(a, b, c, d) d; c; b; a; -# define ZEND_ENDIAN_LOHI_C(lo, hi) hi, lo -# define ZEND_ENDIAN_LOHI_C_3(lo, mi, hi) hi, mi, lo, -# define ZEND_ENDIAN_LOHI_C_4(a, b, c, d) d, c, b, a -#else -# define ZEND_ENDIAN_LOHI(lo, hi) lo; hi; -# define ZEND_ENDIAN_LOHI_3(lo, mi, hi) lo; mi; hi; -# define ZEND_ENDIAN_LOHI_4(a, b, c, d) a; b; c; d; -# define ZEND_ENDIAN_LOHI_C(lo, hi) lo, hi -# define ZEND_ENDIAN_LOHI_C_3(lo, mi, hi) lo, mi, hi, -# define ZEND_ENDIAN_LOHI_C_4(a, b, c, d) a, b, c, d -#endif - -typedef unsigned char zend_bool; -typedef unsigned char zend_uchar; - -typedef enum { - SUCCESS = 0, - FAILURE = -1, /* this MUST stay a negative number, or it may affect functions! */ -} ZEND_RESULT_CODE; - -#ifdef ZEND_ENABLE_ZVAL_LONG64 -# ifdef ZEND_WIN32 -# define ZEND_SIZE_MAX _UI64_MAX -# else -# define ZEND_SIZE_MAX SIZE_MAX -# endif -#else -# if defined(ZEND_WIN32) -# define ZEND_SIZE_MAX _UI32_MAX -# else -# define ZEND_SIZE_MAX SIZE_MAX -# endif -#endif - -typedef intptr_t zend_intptr_t; -typedef uintptr_t zend_uintptr_t; - -#ifdef ZTS -#define ZEND_TLS static TSRM_TLS -#define ZEND_EXT_TLS TSRM_TLS -#else -#define ZEND_TLS static -#define ZEND_EXT_TLS -#endif - -typedef struct _zend_object_handlers zend_object_handlers; -typedef struct _zend_class_entry zend_class_entry; -typedef union _zend_function zend_function; -typedef struct _zend_execute_data zend_execute_data; - -typedef struct _zval_struct zval; - -typedef struct _zend_refcounted zend_refcounted; -typedef struct _zend_string zend_string; -typedef struct _zend_array zend_array; -typedef struct _zend_object zend_object; -typedef struct _zend_resource zend_resource; -typedef struct _zend_reference zend_reference; -typedef struct _zend_ast_ref zend_ast_ref; -typedef struct _zend_ast zend_ast; - -typedef int (*compare_func_t)(const void *, const void *); -typedef void (*swap_func_t)(void *, void *); -typedef void (*sort_func_t)(void *, size_t, size_t, compare_func_t, swap_func_t); -typedef void (*dtor_func_t)(zval *pDest); -typedef void (*copy_ctor_func_t)(zval *pElement); - -/* - * zend_type - is an abstraction layer to represent information about type hint. - * It shouldn't be used directly. Only through ZEND_TYPE_* macros. - * - * ZEND_TYPE_IS_SET() - checks if type-hint exists - * ZEND_TYPE_IS_CODE() - checks if type-hint refer to standard type - * ZEND_TYPE_IS_CLASS() - checks if type-hint refer to some class - * ZEND_TYPE_IS_CE() - checks if type-hint refer to some class by zend_class_entry * - * ZEND_TYPE_IS_NAME() - checks if type-hint refer to some class by zend_string * - * - * ZEND_TYPE_NAME() - returns referenced class name - * ZEND_TYPE_CE() - returns referenced class entry - * ZEND_TYPE_CODE() - returns standard type code (e.g. IS_LONG, _IS_BOOL) - * - * ZEND_TYPE_ALLOW_NULL() - checks if NULL is allowed - * - * ZEND_TYPE_ENCODE() and ZEND_TYPE_ENCODE_CLASS() should be used for - * construction. - */ - -typedef uintptr_t zend_type; - -#define ZEND_TYPE_IS_SET(t) \ - ((t) > Z_L(0x3)) - -#define ZEND_TYPE_IS_CODE(t) \ - (((t) > Z_L(0x3)) && ((t) <= Z_L(0x3ff))) - -#define ZEND_TYPE_IS_CLASS(t) \ - ((t) > Z_L(0x3ff)) - -#define ZEND_TYPE_IS_CE(t) \ - (((t) & Z_L(0x2)) != 0) - -#define ZEND_TYPE_IS_NAME(t) \ - (ZEND_TYPE_IS_CLASS(t) && !ZEND_TYPE_IS_CE(t)) - -#define ZEND_TYPE_NAME(t) \ - ((zend_string*)((t) & ~Z_L(0x3))) - -#define ZEND_TYPE_CE(t) \ - ((zend_class_entry*)((t) & ~Z_L(0x3))) - -#define ZEND_TYPE_CODE(t) \ - ((t) >> Z_L(2)) - -#define ZEND_TYPE_ALLOW_NULL(t) \ - (((t) & Z_L(0x1)) != 0) - -#define ZEND_TYPE_WITHOUT_NULL(t) \ - ((t) & ~Z_L(0x1)) - -#define ZEND_TYPE_ENCODE(code, allow_null) \ - (((code) << Z_L(2)) | ((allow_null) ? Z_L(0x1) : Z_L(0x0))) - -#define ZEND_TYPE_ENCODE_CE(ce, allow_null) \ - (((uintptr_t)(ce)) | ((allow_null) ? Z_L(0x3) : Z_L(0x2))) - -#define ZEND_TYPE_ENCODE_CLASS(class_name, allow_null) \ - (((uintptr_t)(class_name)) | ((allow_null) ? Z_L(0x1) : Z_L(0x0))) - -#define ZEND_TYPE_ENCODE_CLASS_CONST_0(class_name) \ - ((zend_type) class_name) -#define ZEND_TYPE_ENCODE_CLASS_CONST_1(class_name) \ - ((zend_type) "?" class_name) -#define ZEND_TYPE_ENCODE_CLASS_CONST_Q2(macro, class_name) \ - macro(class_name) -#define ZEND_TYPE_ENCODE_CLASS_CONST_Q1(allow_null, class_name) \ - ZEND_TYPE_ENCODE_CLASS_CONST_Q2(ZEND_TYPE_ENCODE_CLASS_CONST_ ##allow_null, class_name) -#define ZEND_TYPE_ENCODE_CLASS_CONST(class_name, allow_null) \ - ZEND_TYPE_ENCODE_CLASS_CONST_Q1(allow_null, class_name) - -typedef union _zend_value { - zend_long lval; /* long value */ - double dval; /* double value */ - zend_refcounted *counted; - zend_string *str; - zend_array *arr; - zend_object *obj; - zend_resource *res; - zend_reference *ref; - zend_ast_ref *ast; - zval *zv; - void *ptr; - zend_class_entry *ce; - zend_function *func; - struct { - uint32_t w1; - uint32_t w2; - } ww; -} zend_value; - -struct _zval_struct { - zend_value value; /* value */ - union { - struct { - ZEND_ENDIAN_LOHI_3( - zend_uchar type, /* active type */ - zend_uchar type_flags, - union { - uint16_t extra; /* not further specified */ - } u) - } v; - uint32_t type_info; - } u1; - union { - uint32_t next; /* hash collision chain */ - uint32_t cache_slot; /* cache slot (for RECV_INIT) */ - uint32_t opline_num; /* opline number (for FAST_CALL) */ - uint32_t lineno; /* line number (for ast nodes) */ - uint32_t num_args; /* arguments number for EX(This) */ - uint32_t fe_pos; /* foreach position */ - uint32_t fe_iter_idx; /* foreach iterator index */ - uint32_t access_flags; /* class constant access flags */ - uint32_t property_guard; /* single property guard */ - uint32_t constant_flags; /* constant flags */ - uint32_t extra; /* not further specified */ - } u2; -}; - -typedef struct _zend_refcounted_h { - uint32_t refcount; /* reference counter 32-bit */ - union { - uint32_t type_info; - } u; -} zend_refcounted_h; - -struct _zend_refcounted { - zend_refcounted_h gc; -}; - -struct _zend_string { - zend_refcounted_h gc; - zend_ulong h; /* hash value */ - size_t len; - char val[1]; -}; - -typedef struct _Bucket { - zval val; - zend_ulong h; /* hash value (or numeric index) */ - zend_string *key; /* string key or NULL for numerics */ -} Bucket; - -typedef struct _zend_array HashTable; - -struct _zend_array { - zend_refcounted_h gc; - union { - struct { - ZEND_ENDIAN_LOHI_4( - zend_uchar flags, - zend_uchar _unused, - zend_uchar nIteratorsCount, - zend_uchar _unused2) - } v; - uint32_t flags; - } u; - uint32_t nTableMask; - Bucket *arData; - uint32_t nNumUsed; - uint32_t nNumOfElements; - uint32_t nTableSize; - uint32_t nInternalPointer; - zend_long nNextFreeElement; - dtor_func_t pDestructor; -}; - -/* - * HashTable Data Layout - * ===================== - * - * +=============================+ - * | HT_HASH(ht, ht->nTableMask) | - * | ... | - * | HT_HASH(ht, -1) | - * +-----------------------------+ - * ht->arData ---> | Bucket[0] | - * | ... | - * | Bucket[ht->nTableSize-1] | - * +=============================+ - */ - -#define HT_INVALID_IDX ((uint32_t) -1) - -#define HT_MIN_MASK ((uint32_t) -2) -#define HT_MIN_SIZE 8 - -#if SIZEOF_SIZE_T == 4 -# define HT_MAX_SIZE 0x04000000 /* small enough to avoid overflow checks */ -# define HT_HASH_TO_BUCKET_EX(data, idx) \ - ((Bucket*)((char*)(data) + (idx))) -# define HT_IDX_TO_HASH(idx) \ - ((idx) * sizeof(Bucket)) -# define HT_HASH_TO_IDX(idx) \ - ((idx) / sizeof(Bucket)) -#elif SIZEOF_SIZE_T == 8 -# define HT_MAX_SIZE 0x80000000 -# define HT_HASH_TO_BUCKET_EX(data, idx) \ - ((data) + (idx)) -# define HT_IDX_TO_HASH(idx) \ - (idx) -# define HT_HASH_TO_IDX(idx) \ - (idx) -#else -# error "Unknown SIZEOF_SIZE_T" -#endif - -#define HT_HASH_EX(data, idx) \ - ((uint32_t*)(data))[(int32_t)(idx)] -#define HT_HASH(ht, idx) \ - HT_HASH_EX((ht)->arData, idx) - -#define HT_SIZE_TO_MASK(nTableSize) \ - ((uint32_t)(-((nTableSize) + (nTableSize)))) -#define HT_HASH_SIZE(nTableMask) \ - (((size_t)(uint32_t)-(int32_t)(nTableMask)) * sizeof(uint32_t)) -#define HT_DATA_SIZE(nTableSize) \ - ((size_t)(nTableSize) * sizeof(Bucket)) -#define HT_SIZE_EX(nTableSize, nTableMask) \ - (HT_DATA_SIZE((nTableSize)) + HT_HASH_SIZE((nTableMask))) -#define HT_SIZE(ht) \ - HT_SIZE_EX((ht)->nTableSize, (ht)->nTableMask) -#define HT_USED_SIZE(ht) \ - (HT_HASH_SIZE((ht)->nTableMask) + ((size_t)(ht)->nNumUsed * sizeof(Bucket))) -#ifdef __SSE2__ -# define HT_HASH_RESET(ht) do { \ - char *p = (char*)&HT_HASH(ht, (ht)->nTableMask); \ - size_t size = HT_HASH_SIZE((ht)->nTableMask); \ - __m128i xmm0 = _mm_setzero_si128(); \ - xmm0 = _mm_cmpeq_epi8(xmm0, xmm0); \ - ZEND_ASSERT(size >= 64 && ((size & 0x3f) == 0)); \ - do { \ - _mm_storeu_si128((__m128i*)p, xmm0); \ - _mm_storeu_si128((__m128i*)(p+16), xmm0); \ - _mm_storeu_si128((__m128i*)(p+32), xmm0); \ - _mm_storeu_si128((__m128i*)(p+48), xmm0); \ - p += 64; \ - size -= 64; \ - } while (size != 0); \ - } while (0) -#else -# define HT_HASH_RESET(ht) \ - memset(&HT_HASH(ht, (ht)->nTableMask), HT_INVALID_IDX, HT_HASH_SIZE((ht)->nTableMask)) -#endif -#define HT_HASH_RESET_PACKED(ht) do { \ - HT_HASH(ht, -2) = HT_INVALID_IDX; \ - HT_HASH(ht, -1) = HT_INVALID_IDX; \ - } while (0) -#define HT_HASH_TO_BUCKET(ht, idx) \ - HT_HASH_TO_BUCKET_EX((ht)->arData, idx) - -#define HT_SET_DATA_ADDR(ht, ptr) do { \ - (ht)->arData = (Bucket*)(((char*)(ptr)) + HT_HASH_SIZE((ht)->nTableMask)); \ - } while (0) -#define HT_GET_DATA_ADDR(ht) \ - ((char*)((ht)->arData) - HT_HASH_SIZE((ht)->nTableMask)) - -typedef uint32_t HashPosition; - -typedef struct _HashTableIterator { - HashTable *ht; - HashPosition pos; -} HashTableIterator; - -struct _zend_object { - zend_refcounted_h gc; - uint32_t handle; // TODO: may be removed ??? - zend_class_entry *ce; - const zend_object_handlers *handlers; - HashTable *properties; - zval properties_table[1]; -}; - -struct _zend_resource { - zend_refcounted_h gc; - int handle; // TODO: may be removed ??? - int type; - void *ptr; -}; - -typedef struct { - size_t num; - size_t num_allocated; - struct _zend_property_info *ptr[1]; -} zend_property_info_list; - -typedef union { - struct _zend_property_info *ptr; - uintptr_t list; -} zend_property_info_source_list; - -#define ZEND_PROPERTY_INFO_SOURCE_FROM_LIST(list) (0x1 | (uintptr_t) (list)) -#define ZEND_PROPERTY_INFO_SOURCE_TO_LIST(list) ((zend_property_info_list *) ((list) & ~0x1)) -#define ZEND_PROPERTY_INFO_SOURCE_IS_LIST(list) ((list) & 0x1) - -struct _zend_reference { - zend_refcounted_h gc; - zval val; - zend_property_info_source_list sources; -}; - -struct _zend_ast_ref { - zend_refcounted_h gc; - /*zend_ast ast; zend_ast follows the zend_ast_ref structure */ -}; - -/* regular data types */ -#define IS_UNDEF 0 -#define IS_NULL 1 -#define IS_FALSE 2 -#define IS_TRUE 3 -#define IS_LONG 4 -#define IS_DOUBLE 5 -#define IS_STRING 6 -#define IS_ARRAY 7 -#define IS_OBJECT 8 -#define IS_RESOURCE 9 -#define IS_REFERENCE 10 - -/* constant expressions */ -#define IS_CONSTANT_AST 11 - -/* internal types */ -#define IS_INDIRECT 13 -#define IS_PTR 14 -#define IS_ALIAS_PTR 15 -#define _IS_ERROR 15 - -/* fake types used only for type hinting (Z_TYPE(zv) can not use them) */ -#define _IS_BOOL 16 -#define IS_CALLABLE 17 -#define IS_ITERABLE 18 -#define IS_VOID 19 -#define _IS_NUMBER 20 - -static zend_always_inline zend_uchar zval_get_type(const zval* pz) { - return pz->u1.v.type; -} - -#define ZEND_SAME_FAKE_TYPE(faketype, realtype) ( \ - (faketype) == (realtype) \ - || ((faketype) == _IS_BOOL && ((realtype) == IS_TRUE || (realtype) == IS_FALSE)) \ -) - -/* we should never set just Z_TYPE, we should set Z_TYPE_INFO */ -#define Z_TYPE(zval) zval_get_type(&(zval)) -#define Z_TYPE_P(zval_p) Z_TYPE(*(zval_p)) - -#define Z_TYPE_FLAGS(zval) (zval).u1.v.type_flags -#define Z_TYPE_FLAGS_P(zval_p) Z_TYPE_FLAGS(*(zval_p)) - -#define Z_TYPE_INFO(zval) (zval).u1.type_info -#define Z_TYPE_INFO_P(zval_p) Z_TYPE_INFO(*(zval_p)) - -#define Z_NEXT(zval) (zval).u2.next -#define Z_NEXT_P(zval_p) Z_NEXT(*(zval_p)) - -#define Z_CACHE_SLOT(zval) (zval).u2.cache_slot -#define Z_CACHE_SLOT_P(zval_p) Z_CACHE_SLOT(*(zval_p)) - -#define Z_LINENO(zval) (zval).u2.lineno -#define Z_LINENO_P(zval_p) Z_LINENO(*(zval_p)) - -#define Z_OPLINE_NUM(zval) (zval).u2.opline_num -#define Z_OPLINE_NUM_P(zval_p) Z_OPLINE_NUM(*(zval_p)) - -#define Z_FE_POS(zval) (zval).u2.fe_pos -#define Z_FE_POS_P(zval_p) Z_FE_POS(*(zval_p)) - -#define Z_FE_ITER(zval) (zval).u2.fe_iter_idx -#define Z_FE_ITER_P(zval_p) Z_FE_ITER(*(zval_p)) - -#define Z_ACCESS_FLAGS(zval) (zval).u2.access_flags -#define Z_ACCESS_FLAGS_P(zval_p) Z_ACCESS_FLAGS(*(zval_p)) - -#define Z_PROPERTY_GUARD(zval) (zval).u2.property_guard -#define Z_PROPERTY_GUARD_P(zval_p) Z_PROPERTY_GUARD(*(zval_p)) - -#define Z_CONSTANT_FLAGS(zval) (zval).u2.constant_flags -#define Z_CONSTANT_FLAGS_P(zval_p) Z_CONSTANT_FLAGS(*(zval_p)) - -#define Z_EXTRA(zval) (zval).u2.extra -#define Z_EXTRA_P(zval_p) Z_EXTRA(*(zval_p)) - -#define Z_COUNTED(zval) (zval).value.counted -#define Z_COUNTED_P(zval_p) Z_COUNTED(*(zval_p)) - -#define Z_TYPE_MASK 0xff -#define Z_TYPE_FLAGS_MASK 0xff00 - -#define Z_TYPE_FLAGS_SHIFT 8 - -#define GC_REFCOUNT(p) zend_gc_refcount(&(p)->gc) -#define GC_SET_REFCOUNT(p, rc) zend_gc_set_refcount(&(p)->gc, rc) -#define GC_ADDREF(p) zend_gc_addref(&(p)->gc) -#define GC_DELREF(p) zend_gc_delref(&(p)->gc) -#define GC_ADDREF_EX(p, rc) zend_gc_addref_ex(&(p)->gc, rc) -#define GC_DELREF_EX(p, rc) zend_gc_delref_ex(&(p)->gc, rc) - -#define GC_TYPE_MASK 0x0000000f -#define GC_FLAGS_MASK 0x000003f0 -#define GC_INFO_MASK 0xfffffc00 -#define GC_FLAGS_SHIFT 0 -#define GC_INFO_SHIFT 10 - -static zend_always_inline zend_uchar zval_gc_type(uint32_t gc_type_info) { - return (gc_type_info & GC_TYPE_MASK); -} - -static zend_always_inline uint32_t zval_gc_flags(uint32_t gc_type_info) { - return (gc_type_info >> GC_FLAGS_SHIFT) & (GC_FLAGS_MASK >> GC_FLAGS_SHIFT); -} - -static zend_always_inline uint32_t zval_gc_info(uint32_t gc_type_info) { - return (gc_type_info >> GC_INFO_SHIFT); -} - -#define GC_TYPE_INFO(p) (p)->gc.u.type_info -#define GC_TYPE(p) zval_gc_type(GC_TYPE_INFO(p)) -#define GC_FLAGS(p) zval_gc_flags(GC_TYPE_INFO(p)) -#define GC_INFO(p) zval_gc_info(GC_TYPE_INFO(p)) - -#define GC_ADD_FLAGS(p, flags) do { \ - GC_TYPE_INFO(p) |= (flags) << GC_FLAGS_SHIFT; \ - } while (0) -#define GC_DEL_FLAGS(p, flags) do { \ - GC_TYPE_INFO(p) &= ~((flags) << GC_FLAGS_SHIFT); \ - } while (0) - -#define Z_GC_TYPE(zval) GC_TYPE(Z_COUNTED(zval)) -#define Z_GC_TYPE_P(zval_p) Z_GC_TYPE(*(zval_p)) - -#define Z_GC_FLAGS(zval) GC_FLAGS(Z_COUNTED(zval)) -#define Z_GC_FLAGS_P(zval_p) Z_GC_FLAGS(*(zval_p)) - -#define Z_GC_INFO(zval) GC_INFO(Z_COUNTED(zval)) -#define Z_GC_INFO_P(zval_p) Z_GC_INFO(*(zval_p)) -#define Z_GC_TYPE_INFO(zval) GC_TYPE_INFO(Z_COUNTED(zval)) -#define Z_GC_TYPE_INFO_P(zval_p) Z_GC_TYPE_INFO(*(zval_p)) - -/* zval_gc_flags(zval.value->gc.u.type_info) (common flags) */ -#define GC_COLLECTABLE (1<<4) -#define GC_PROTECTED (1<<5) /* used for recursion detection */ -#define GC_IMMUTABLE (1<<6) /* can't be canged in place */ -#define GC_PERSISTENT (1<<7) /* allocated using malloc */ -#define GC_PERSISTENT_LOCAL (1<<8) /* persistent, but thread-local */ - -#define GC_ARRAY (IS_ARRAY | (GC_COLLECTABLE << GC_FLAGS_SHIFT)) -#define GC_OBJECT (IS_OBJECT | (GC_COLLECTABLE << GC_FLAGS_SHIFT)) - -/* zval.u1.v.type_flags */ -#define IS_TYPE_REFCOUNTED (1<<0) -#define IS_TYPE_COLLECTABLE (1<<1) - -#if 1 -/* This optimized version assumes that we have a single "type_flag" */ -/* IS_TYPE_COLLECTABLE may be used only with IS_TYPE_REFCOUNTED */ -# define Z_TYPE_INFO_REFCOUNTED(t) (((t) & Z_TYPE_FLAGS_MASK) != 0) -#else -# define Z_TYPE_INFO_REFCOUNTED(t) (((t) & (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT)) != 0) -#endif - -/* extended types */ -#define IS_INTERNED_STRING_EX IS_STRING - -#define IS_STRING_EX (IS_STRING | (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT)) -#define IS_ARRAY_EX (IS_ARRAY | (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT) | (IS_TYPE_COLLECTABLE << Z_TYPE_FLAGS_SHIFT)) -#define IS_OBJECT_EX (IS_OBJECT | (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT) | (IS_TYPE_COLLECTABLE << Z_TYPE_FLAGS_SHIFT)) -#define IS_RESOURCE_EX (IS_RESOURCE | (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT)) -#define IS_REFERENCE_EX (IS_REFERENCE | (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT)) - -#define IS_CONSTANT_AST_EX (IS_CONSTANT_AST | (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT)) - -/* string flags (zval.value->gc.u.flags) */ -#define IS_STR_INTERNED GC_IMMUTABLE /* interned string */ -#define IS_STR_PERSISTENT GC_PERSISTENT /* allocated using malloc */ -#define IS_STR_PERMANENT (1<<8) /* relives request boundary */ -#define IS_STR_VALID_UTF8 (1<<9) /* valid UTF-8 according to PCRE */ - -/* array flags */ -#define IS_ARRAY_IMMUTABLE GC_IMMUTABLE -#define IS_ARRAY_PERSISTENT GC_PERSISTENT - -/* object flags (zval.value->gc.u.flags) */ -#define IS_OBJ_WEAKLY_REFERENCED GC_PERSISTENT -#define IS_OBJ_DESTRUCTOR_CALLED (1<<8) -#define IS_OBJ_FREE_CALLED (1<<9) - -#define OBJ_FLAGS(obj) GC_FLAGS(obj) - -/* Recursion protection macros must be used only for arrays and objects */ -#define GC_IS_RECURSIVE(p) \ - (GC_FLAGS(p) & GC_PROTECTED) - -#define GC_PROTECT_RECURSION(p) do { \ - GC_ADD_FLAGS(p, GC_PROTECTED); \ - } while (0) - -#define GC_UNPROTECT_RECURSION(p) do { \ - GC_DEL_FLAGS(p, GC_PROTECTED); \ - } while (0) - -#define GC_TRY_PROTECT_RECURSION(p) do { \ - if (!(GC_FLAGS(p) & GC_IMMUTABLE)) GC_PROTECT_RECURSION(p); \ - } while (0) - -#define GC_TRY_UNPROTECT_RECURSION(p) do { \ - if (!(GC_FLAGS(p) & GC_IMMUTABLE)) GC_UNPROTECT_RECURSION(p); \ - } while (0) - -#define Z_IS_RECURSIVE(zval) GC_IS_RECURSIVE(Z_COUNTED(zval)) -#define Z_PROTECT_RECURSION(zval) GC_PROTECT_RECURSION(Z_COUNTED(zval)) -#define Z_UNPROTECT_RECURSION(zval) GC_UNPROTECT_RECURSION(Z_COUNTED(zval)) -#define Z_IS_RECURSIVE_P(zv) Z_IS_RECURSIVE(*(zv)) -#define Z_PROTECT_RECURSION_P(zv) Z_PROTECT_RECURSION(*(zv)) -#define Z_UNPROTECT_RECURSION_P(zv) Z_UNPROTECT_RECURSION(*(zv)) - -/* All data types < IS_STRING have their constructor/destructors skipped */ -#define Z_CONSTANT(zval) (Z_TYPE(zval) == IS_CONSTANT_AST) -#define Z_CONSTANT_P(zval_p) Z_CONSTANT(*(zval_p)) - -#if 1 -/* This optimized version assumes that we have a single "type_flag" */ -/* IS_TYPE_COLLECTABLE may be used only with IS_TYPE_REFCOUNTED */ -#define Z_REFCOUNTED(zval) (Z_TYPE_FLAGS(zval) != 0) -#else -#define Z_REFCOUNTED(zval) ((Z_TYPE_FLAGS(zval) & IS_TYPE_REFCOUNTED) != 0) -#endif -#define Z_REFCOUNTED_P(zval_p) Z_REFCOUNTED(*(zval_p)) - -#define Z_COLLECTABLE(zval) ((Z_TYPE_FLAGS(zval) & IS_TYPE_COLLECTABLE) != 0) -#define Z_COLLECTABLE_P(zval_p) Z_COLLECTABLE(*(zval_p)) - -/* deprecated: (COPYABLE is the same as IS_ARRAY) */ -#define Z_COPYABLE(zval) (Z_TYPE(zval) == IS_ARRAY) -#define Z_COPYABLE_P(zval_p) Z_COPYABLE(*(zval_p)) - -/* deprecated: (IMMUTABLE is the same as IS_ARRAY && !REFCOUNTED) */ -#define Z_IMMUTABLE(zval) (Z_TYPE_INFO(zval) == IS_ARRAY) -#define Z_IMMUTABLE_P(zval_p) Z_IMMUTABLE(*(zval_p)) -#define Z_OPT_IMMUTABLE(zval) Z_IMMUTABLE(zval_p) -#define Z_OPT_IMMUTABLE_P(zval_p) Z_IMMUTABLE(*(zval_p)) - -/* the following Z_OPT_* macros make better code when Z_TYPE_INFO accessed before */ -#define Z_OPT_TYPE(zval) (Z_TYPE_INFO(zval) & Z_TYPE_MASK) -#define Z_OPT_TYPE_P(zval_p) Z_OPT_TYPE(*(zval_p)) - -#define Z_OPT_CONSTANT(zval) (Z_OPT_TYPE(zval) == IS_CONSTANT_AST) -#define Z_OPT_CONSTANT_P(zval_p) Z_OPT_CONSTANT(*(zval_p)) - -#define Z_OPT_REFCOUNTED(zval) Z_TYPE_INFO_REFCOUNTED(Z_TYPE_INFO(zval)) -#define Z_OPT_REFCOUNTED_P(zval_p) Z_OPT_REFCOUNTED(*(zval_p)) - -/* deprecated: (COPYABLE is the same as IS_ARRAY) */ -#define Z_OPT_COPYABLE(zval) (Z_OPT_TYPE(zval) == IS_ARRAY) -#define Z_OPT_COPYABLE_P(zval_p) Z_OPT_COPYABLE(*(zval_p)) - -#define Z_OPT_ISREF(zval) (Z_OPT_TYPE(zval) == IS_REFERENCE) -#define Z_OPT_ISREF_P(zval_p) Z_OPT_ISREF(*(zval_p)) - -#define Z_ISREF(zval) (Z_TYPE(zval) == IS_REFERENCE) -#define Z_ISREF_P(zval_p) Z_ISREF(*(zval_p)) - -#define Z_ISUNDEF(zval) (Z_TYPE(zval) == IS_UNDEF) -#define Z_ISUNDEF_P(zval_p) Z_ISUNDEF(*(zval_p)) - -#define Z_ISNULL(zval) (Z_TYPE(zval) == IS_NULL) -#define Z_ISNULL_P(zval_p) Z_ISNULL(*(zval_p)) - -#define Z_ISERROR(zval) (Z_TYPE(zval) == _IS_ERROR) -#define Z_ISERROR_P(zval_p) Z_ISERROR(*(zval_p)) - -#define Z_LVAL(zval) (zval).value.lval -#define Z_LVAL_P(zval_p) Z_LVAL(*(zval_p)) - -#define Z_DVAL(zval) (zval).value.dval -#define Z_DVAL_P(zval_p) Z_DVAL(*(zval_p)) - -#define Z_STR(zval) (zval).value.str -#define Z_STR_P(zval_p) Z_STR(*(zval_p)) - -#define Z_STRVAL(zval) ZSTR_VAL(Z_STR(zval)) -#define Z_STRVAL_P(zval_p) Z_STRVAL(*(zval_p)) - -#define Z_STRLEN(zval) ZSTR_LEN(Z_STR(zval)) -#define Z_STRLEN_P(zval_p) Z_STRLEN(*(zval_p)) - -#define Z_STRHASH(zval) ZSTR_HASH(Z_STR(zval)) -#define Z_STRHASH_P(zval_p) Z_STRHASH(*(zval_p)) - -#define Z_ARR(zval) (zval).value.arr -#define Z_ARR_P(zval_p) Z_ARR(*(zval_p)) - -#define Z_ARRVAL(zval) Z_ARR(zval) -#define Z_ARRVAL_P(zval_p) Z_ARRVAL(*(zval_p)) - -#define Z_OBJ(zval) (zval).value.obj -#define Z_OBJ_P(zval_p) Z_OBJ(*(zval_p)) - -#define Z_OBJ_HT(zval) Z_OBJ(zval)->handlers -#define Z_OBJ_HT_P(zval_p) Z_OBJ_HT(*(zval_p)) - -#define Z_OBJ_HANDLER(zval, hf) Z_OBJ_HT((zval))->hf -#define Z_OBJ_HANDLER_P(zv_p, hf) Z_OBJ_HANDLER(*(zv_p), hf) - -#define Z_OBJ_HANDLE(zval) (Z_OBJ((zval)))->handle -#define Z_OBJ_HANDLE_P(zval_p) Z_OBJ_HANDLE(*(zval_p)) - -#define Z_OBJCE(zval) (Z_OBJ(zval)->ce) -#define Z_OBJCE_P(zval_p) Z_OBJCE(*(zval_p)) - -#define Z_OBJPROP(zval) Z_OBJ_HT((zval))->get_properties(&(zval)) -#define Z_OBJPROP_P(zval_p) Z_OBJPROP(*(zval_p)) - -#define Z_RES(zval) (zval).value.res -#define Z_RES_P(zval_p) Z_RES(*zval_p) - -#define Z_RES_HANDLE(zval) Z_RES(zval)->handle -#define Z_RES_HANDLE_P(zval_p) Z_RES_HANDLE(*zval_p) - -#define Z_RES_TYPE(zval) Z_RES(zval)->type -#define Z_RES_TYPE_P(zval_p) Z_RES_TYPE(*zval_p) - -#define Z_RES_VAL(zval) Z_RES(zval)->ptr -#define Z_RES_VAL_P(zval_p) Z_RES_VAL(*zval_p) - -#define Z_REF(zval) (zval).value.ref -#define Z_REF_P(zval_p) Z_REF(*(zval_p)) - -#define Z_REFVAL(zval) &Z_REF(zval)->val -#define Z_REFVAL_P(zval_p) Z_REFVAL(*(zval_p)) - -#define Z_AST(zval) (zval).value.ast -#define Z_AST_P(zval_p) Z_AST(*(zval_p)) - -#define GC_AST(p) ((zend_ast*)(((char*)p) + sizeof(zend_ast_ref))) - -#define Z_ASTVAL(zval) GC_AST(Z_AST(zval)) -#define Z_ASTVAL_P(zval_p) Z_ASTVAL(*(zval_p)) - -#define Z_INDIRECT(zval) (zval).value.zv -#define Z_INDIRECT_P(zval_p) Z_INDIRECT(*(zval_p)) - -#define Z_CE(zval) (zval).value.ce -#define Z_CE_P(zval_p) Z_CE(*(zval_p)) - -#define Z_FUNC(zval) (zval).value.func -#define Z_FUNC_P(zval_p) Z_FUNC(*(zval_p)) - -#define Z_PTR(zval) (zval).value.ptr -#define Z_PTR_P(zval_p) Z_PTR(*(zval_p)) - -#define ZVAL_UNDEF(z) do { \ - Z_TYPE_INFO_P(z) = IS_UNDEF; \ - } while (0) - -#define ZVAL_NULL(z) do { \ - Z_TYPE_INFO_P(z) = IS_NULL; \ - } while (0) - -#define ZVAL_FALSE(z) do { \ - Z_TYPE_INFO_P(z) = IS_FALSE; \ - } while (0) - -#define ZVAL_TRUE(z) do { \ - Z_TYPE_INFO_P(z) = IS_TRUE; \ - } while (0) - -#define ZVAL_BOOL(z, b) do { \ - Z_TYPE_INFO_P(z) = \ - (b) ? IS_TRUE : IS_FALSE; \ - } while (0) - -#define ZVAL_LONG(z, l) { \ - zval *__z = (z); \ - Z_LVAL_P(__z) = l; \ - Z_TYPE_INFO_P(__z) = IS_LONG; \ - } - -#define ZVAL_DOUBLE(z, d) { \ - zval *__z = (z); \ - Z_DVAL_P(__z) = d; \ - Z_TYPE_INFO_P(__z) = IS_DOUBLE; \ - } - -#define ZVAL_STR(z, s) do { \ - zval *__z = (z); \ - zend_string *__s = (s); \ - Z_STR_P(__z) = __s; \ - /* interned strings support */ \ - Z_TYPE_INFO_P(__z) = ZSTR_IS_INTERNED(__s) ? \ - IS_INTERNED_STRING_EX : \ - IS_STRING_EX; \ - } while (0) - -#define ZVAL_INTERNED_STR(z, s) do { \ - zval *__z = (z); \ - zend_string *__s = (s); \ - Z_STR_P(__z) = __s; \ - Z_TYPE_INFO_P(__z) = IS_INTERNED_STRING_EX; \ - } while (0) - -#define ZVAL_NEW_STR(z, s) do { \ - zval *__z = (z); \ - zend_string *__s = (s); \ - Z_STR_P(__z) = __s; \ - Z_TYPE_INFO_P(__z) = IS_STRING_EX; \ - } while (0) - -#define ZVAL_STR_COPY(z, s) do { \ - zval *__z = (z); \ - zend_string *__s = (s); \ - Z_STR_P(__z) = __s; \ - /* interned strings support */ \ - if (ZSTR_IS_INTERNED(__s)) { \ - Z_TYPE_INFO_P(__z) = IS_INTERNED_STRING_EX; \ - } else { \ - GC_ADDREF(__s); \ - Z_TYPE_INFO_P(__z) = IS_STRING_EX; \ - } \ - } while (0) - -#define ZVAL_ARR(z, a) do { \ - zend_array *__arr = (a); \ - zval *__z = (z); \ - Z_ARR_P(__z) = __arr; \ - Z_TYPE_INFO_P(__z) = IS_ARRAY_EX; \ - } while (0) - -#define ZVAL_NEW_ARR(z) do { \ - zval *__z = (z); \ - zend_array *_arr = \ - (zend_array *) emalloc(sizeof(zend_array)); \ - Z_ARR_P(__z) = _arr; \ - Z_TYPE_INFO_P(__z) = IS_ARRAY_EX; \ - } while (0) - -#define ZVAL_NEW_PERSISTENT_ARR(z) do { \ - zval *__z = (z); \ - zend_array *_arr = \ - (zend_array *) malloc(sizeof(zend_array)); \ - Z_ARR_P(__z) = _arr; \ - Z_TYPE_INFO_P(__z) = IS_ARRAY_EX; \ - } while (0) - -#define ZVAL_OBJ(z, o) do { \ - zval *__z = (z); \ - Z_OBJ_P(__z) = (o); \ - Z_TYPE_INFO_P(__z) = IS_OBJECT_EX; \ - } while (0) - -#define ZVAL_RES(z, r) do { \ - zval *__z = (z); \ - Z_RES_P(__z) = (r); \ - Z_TYPE_INFO_P(__z) = IS_RESOURCE_EX; \ - } while (0) - -#define ZVAL_NEW_RES(z, h, p, t) do { \ - zend_resource *_res = \ - (zend_resource *) emalloc(sizeof(zend_resource)); \ - zval *__z; \ - GC_SET_REFCOUNT(_res, 1); \ - GC_TYPE_INFO(_res) = IS_RESOURCE; \ - _res->handle = (h); \ - _res->type = (t); \ - _res->ptr = (p); \ - __z = (z); \ - Z_RES_P(__z) = _res; \ - Z_TYPE_INFO_P(__z) = IS_RESOURCE_EX; \ - } while (0) - -#define ZVAL_NEW_PERSISTENT_RES(z, h, p, t) do { \ - zend_resource *_res = \ - (zend_resource *) malloc(sizeof(zend_resource)); \ - zval *__z; \ - GC_SET_REFCOUNT(_res, 1); \ - GC_TYPE_INFO(_res) = IS_RESOURCE | \ - (GC_PERSISTENT << GC_FLAGS_SHIFT); \ - _res->handle = (h); \ - _res->type = (t); \ - _res->ptr = (p); \ - __z = (z); \ - Z_RES_P(__z) = _res; \ - Z_TYPE_INFO_P(__z) = IS_RESOURCE_EX; \ - } while (0) - -#define ZVAL_REF(z, r) do { \ - zval *__z = (z); \ - Z_REF_P(__z) = (r); \ - Z_TYPE_INFO_P(__z) = IS_REFERENCE_EX; \ - } while (0) - -#define ZVAL_NEW_EMPTY_REF(z) do { \ - zend_reference *_ref = \ - (zend_reference *) emalloc(sizeof(zend_reference)); \ - GC_SET_REFCOUNT(_ref, 1); \ - GC_TYPE_INFO(_ref) = IS_REFERENCE; \ - _ref->sources.ptr = NULL; \ - Z_REF_P(z) = _ref; \ - Z_TYPE_INFO_P(z) = IS_REFERENCE_EX; \ - } while (0) - -#define ZVAL_NEW_REF(z, r) do { \ - zend_reference *_ref = \ - (zend_reference *) emalloc(sizeof(zend_reference)); \ - GC_SET_REFCOUNT(_ref, 1); \ - GC_TYPE_INFO(_ref) = IS_REFERENCE; \ - ZVAL_COPY_VALUE(&_ref->val, r); \ - _ref->sources.ptr = NULL; \ - Z_REF_P(z) = _ref; \ - Z_TYPE_INFO_P(z) = IS_REFERENCE_EX; \ - } while (0) - -#define ZVAL_MAKE_REF_EX(z, refcount) do { \ - zval *_z = (z); \ - zend_reference *_ref = \ - (zend_reference *) emalloc(sizeof(zend_reference)); \ - GC_SET_REFCOUNT(_ref, (refcount)); \ - GC_TYPE_INFO(_ref) = IS_REFERENCE; \ - ZVAL_COPY_VALUE(&_ref->val, _z); \ - _ref->sources.ptr = NULL; \ - Z_REF_P(_z) = _ref; \ - Z_TYPE_INFO_P(_z) = IS_REFERENCE_EX; \ - } while (0) - -#define ZVAL_NEW_PERSISTENT_REF(z, r) do { \ - zend_reference *_ref = \ - (zend_reference *) malloc(sizeof(zend_reference)); \ - GC_SET_REFCOUNT(_ref, 1); \ - GC_TYPE_INFO(_ref) = IS_REFERENCE | \ - (GC_PERSISTENT << GC_FLAGS_SHIFT); \ - ZVAL_COPY_VALUE(&_ref->val, r); \ - _ref->sources.ptr = NULL; \ - Z_REF_P(z) = _ref; \ - Z_TYPE_INFO_P(z) = IS_REFERENCE_EX; \ - } while (0) - -#define ZVAL_AST(z, ast) do { \ - zval *__z = (z); \ - Z_AST_P(__z) = ast; \ - Z_TYPE_INFO_P(__z) = IS_CONSTANT_AST_EX; \ - } while (0) - -#define ZVAL_INDIRECT(z, v) do { \ - Z_INDIRECT_P(z) = (v); \ - Z_TYPE_INFO_P(z) = IS_INDIRECT; \ - } while (0) - -#define ZVAL_PTR(z, p) do { \ - Z_PTR_P(z) = (p); \ - Z_TYPE_INFO_P(z) = IS_PTR; \ - } while (0) - -#define ZVAL_FUNC(z, f) do { \ - Z_FUNC_P(z) = (f); \ - Z_TYPE_INFO_P(z) = IS_PTR; \ - } while (0) - -#define ZVAL_CE(z, c) do { \ - Z_CE_P(z) = (c); \ - Z_TYPE_INFO_P(z) = IS_PTR; \ - } while (0) - -#define ZVAL_ALIAS_PTR(z, p) do { \ - Z_PTR_P(z) = (p); \ - Z_TYPE_INFO_P(z) = IS_ALIAS_PTR; \ - } while (0) - -#define ZVAL_ERROR(z) do { \ - Z_TYPE_INFO_P(z) = _IS_ERROR; \ - } while (0) - -#define Z_REFCOUNT_P(pz) zval_refcount_p(pz) -#define Z_SET_REFCOUNT_P(pz, rc) zval_set_refcount_p(pz, rc) -#define Z_ADDREF_P(pz) zval_addref_p(pz) -#define Z_DELREF_P(pz) zval_delref_p(pz) - -#define Z_REFCOUNT(z) Z_REFCOUNT_P(&(z)) -#define Z_SET_REFCOUNT(z, rc) Z_SET_REFCOUNT_P(&(z), rc) -#define Z_ADDREF(z) Z_ADDREF_P(&(z)) -#define Z_DELREF(z) Z_DELREF_P(&(z)) - -#define Z_TRY_ADDREF_P(pz) do { \ - if (Z_REFCOUNTED_P((pz))) { \ - Z_ADDREF_P((pz)); \ - } \ -} while (0) - -#define Z_TRY_DELREF_P(pz) do { \ - if (Z_REFCOUNTED_P((pz))) { \ - Z_DELREF_P((pz)); \ - } \ -} while (0) - -#define Z_TRY_ADDREF(z) Z_TRY_ADDREF_P(&(z)) -#define Z_TRY_DELREF(z) Z_TRY_DELREF_P(&(z)) - -#ifndef ZEND_RC_DEBUG -# define ZEND_RC_DEBUG 0 -#endif - -#if ZEND_RC_DEBUG -extern ZEND_API zend_bool zend_rc_debug; -# define ZEND_RC_MOD_CHECK(p) do { \ - if (zend_rc_debug && zval_gc_type((p)->u.type_info) != IS_OBJECT) { \ - ZEND_ASSERT(!(zval_gc_flags((p)->u.type_info) & GC_IMMUTABLE)); \ - ZEND_ASSERT((zval_gc_flags((p)->u.type_info) & (GC_PERSISTENT|GC_PERSISTENT_LOCAL)) != GC_PERSISTENT); \ - } \ - } while (0) -# define GC_MAKE_PERSISTENT_LOCAL(p) do { \ - GC_ADD_FLAGS(p, GC_PERSISTENT_LOCAL); \ - } while (0) -#else -# define ZEND_RC_MOD_CHECK(p) \ - do { } while (0) -# define GC_MAKE_PERSISTENT_LOCAL(p) \ - do { } while (0) -#endif - -static zend_always_inline uint32_t zend_gc_refcount(const zend_refcounted_h *p) { - return p->refcount; -} - -static zend_always_inline uint32_t zend_gc_set_refcount(zend_refcounted_h *p, uint32_t rc) { - p->refcount = rc; - return p->refcount; -} - -static zend_always_inline uint32_t zend_gc_addref(zend_refcounted_h *p) { - ZEND_RC_MOD_CHECK(p); - return ++(p->refcount); -} - -static zend_always_inline uint32_t zend_gc_delref(zend_refcounted_h *p) { - ZEND_ASSERT(p->refcount > 0); - ZEND_RC_MOD_CHECK(p); - return --(p->refcount); -} - -static zend_always_inline uint32_t zend_gc_addref_ex(zend_refcounted_h *p, uint32_t rc) { - ZEND_RC_MOD_CHECK(p); - p->refcount += rc; - return p->refcount; -} - -static zend_always_inline uint32_t zend_gc_delref_ex(zend_refcounted_h *p, uint32_t rc) { - ZEND_RC_MOD_CHECK(p); - p->refcount -= rc; - return p->refcount; -} - -static zend_always_inline uint32_t zval_refcount_p(const zval* pz) { -#if ZEND_DEBUG - ZEND_ASSERT(Z_REFCOUNTED_P(pz) || Z_TYPE_P(pz) == IS_ARRAY); -#endif - return GC_REFCOUNT(Z_COUNTED_P(pz)); -} - -static zend_always_inline uint32_t zval_set_refcount_p(zval* pz, uint32_t rc) { - ZEND_ASSERT(Z_REFCOUNTED_P(pz)); - return GC_SET_REFCOUNT(Z_COUNTED_P(pz), rc); -} - -static zend_always_inline uint32_t zval_addref_p(zval* pz) { - ZEND_ASSERT(Z_REFCOUNTED_P(pz)); - return GC_ADDREF(Z_COUNTED_P(pz)); -} - -static zend_always_inline uint32_t zval_delref_p(zval* pz) { - ZEND_ASSERT(Z_REFCOUNTED_P(pz)); - return GC_DELREF(Z_COUNTED_P(pz)); -} - -#if SIZEOF_SIZE_T == 4 -# define ZVAL_COPY_VALUE_EX(z, v, gc, t) \ - do { \ - uint32_t _w2 = v->value.ww.w2; \ - Z_COUNTED_P(z) = gc; \ - z->value.ww.w2 = _w2; \ - Z_TYPE_INFO_P(z) = t; \ - } while (0) -#elif SIZEOF_SIZE_T == 8 -# define ZVAL_COPY_VALUE_EX(z, v, gc, t) \ - do { \ - Z_COUNTED_P(z) = gc; \ - Z_TYPE_INFO_P(z) = t; \ - } while (0) -#else -# error "Unknown SIZEOF_SIZE_T" -#endif - -#define ZVAL_COPY_VALUE(z, v) \ - do { \ - zval *_z1 = (z); \ - const zval *_z2 = (v); \ - zend_refcounted *_gc = Z_COUNTED_P(_z2); \ - uint32_t _t = Z_TYPE_INFO_P(_z2); \ - ZVAL_COPY_VALUE_EX(_z1, _z2, _gc, _t); \ - } while (0) - -#define ZVAL_COPY(z, v) \ - do { \ - zval *_z1 = (z); \ - const zval *_z2 = (v); \ - zend_refcounted *_gc = Z_COUNTED_P(_z2); \ - uint32_t _t = Z_TYPE_INFO_P(_z2); \ - ZVAL_COPY_VALUE_EX(_z1, _z2, _gc, _t); \ - if (Z_TYPE_INFO_REFCOUNTED(_t)) { \ - GC_ADDREF(_gc); \ - } \ - } while (0) - -#define ZVAL_DUP(z, v) \ - do { \ - zval *_z1 = (z); \ - const zval *_z2 = (v); \ - zend_refcounted *_gc = Z_COUNTED_P(_z2); \ - uint32_t _t = Z_TYPE_INFO_P(_z2); \ - if ((_t & Z_TYPE_MASK) == IS_ARRAY) { \ - ZVAL_ARR(_z1, zend_array_dup((zend_array*)_gc));\ - } else { \ - if (Z_TYPE_INFO_REFCOUNTED(_t)) { \ - GC_ADDREF(_gc); \ - } \ - ZVAL_COPY_VALUE_EX(_z1, _z2, _gc, _t); \ - } \ - } while (0) - - -/* ZVAL_COPY_OR_DUP() should be used instead of ZVAL_COPY() and ZVAL_DUP() - * in all places where the source may be a persistent zval. - */ -#define ZVAL_COPY_OR_DUP(z, v) \ - do { \ - zval *_z1 = (z); \ - const zval *_z2 = (v); \ - zend_refcounted *_gc = Z_COUNTED_P(_z2); \ - uint32_t _t = Z_TYPE_INFO_P(_z2); \ - ZVAL_COPY_VALUE_EX(_z1, _z2, _gc, _t); \ - if (Z_TYPE_INFO_REFCOUNTED(_t)) { \ - if (EXPECTED(!(GC_FLAGS(_gc) & GC_PERSISTENT))) { \ - GC_ADDREF(_gc); \ - } else { \ - zval_copy_ctor_func(_z1); \ - } \ - } \ - } while (0) - -#define ZVAL_DEREF(z) do { \ - if (UNEXPECTED(Z_ISREF_P(z))) { \ - (z) = Z_REFVAL_P(z); \ - } \ - } while (0) - -#define ZVAL_DEINDIRECT(z) do { \ - if (Z_TYPE_P(z) == IS_INDIRECT) { \ - (z) = Z_INDIRECT_P(z); \ - } \ - } while (0) - -#define ZVAL_OPT_DEREF(z) do { \ - if (UNEXPECTED(Z_OPT_ISREF_P(z))) { \ - (z) = Z_REFVAL_P(z); \ - } \ - } while (0) - -#define ZVAL_MAKE_REF(zv) do { \ - zval *__zv = (zv); \ - if (!Z_ISREF_P(__zv)) { \ - ZVAL_NEW_REF(__zv, __zv); \ - } \ - } while (0) - -#define ZVAL_UNREF(z) do { \ - zval *_z = (z); \ - zend_reference *ref; \ - ZEND_ASSERT(Z_ISREF_P(_z)); \ - ref = Z_REF_P(_z); \ - ZVAL_COPY_VALUE(_z, &ref->val); \ - efree_size(ref, sizeof(zend_reference)); \ - } while (0) - -#define ZVAL_COPY_DEREF(z, v) do { \ - zval *_z3 = (v); \ - if (Z_OPT_REFCOUNTED_P(_z3)) { \ - if (UNEXPECTED(Z_OPT_ISREF_P(_z3))) { \ - _z3 = Z_REFVAL_P(_z3); \ - if (Z_OPT_REFCOUNTED_P(_z3)) { \ - Z_ADDREF_P(_z3); \ - } \ - } else { \ - Z_ADDREF_P(_z3); \ - } \ - } \ - ZVAL_COPY_VALUE(z, _z3); \ - } while (0) - - -#define SEPARATE_STRING(zv) do { \ - zval *_zv = (zv); \ - if (Z_REFCOUNT_P(_zv) > 1) { \ - zend_string *_str = Z_STR_P(_zv); \ - ZEND_ASSERT(Z_REFCOUNTED_P(_zv)); \ - ZEND_ASSERT(!ZSTR_IS_INTERNED(_str)); \ - Z_DELREF_P(_zv); \ - ZVAL_NEW_STR(_zv, zend_string_init( \ - ZSTR_VAL(_str), ZSTR_LEN(_str), 0)); \ - } \ - } while (0) - -#define SEPARATE_ARRAY(zv) do { \ - zval *_zv = (zv); \ - zend_array *_arr = Z_ARR_P(_zv); \ - if (UNEXPECTED(GC_REFCOUNT(_arr) > 1)) { \ - if (Z_REFCOUNTED_P(_zv)) { \ - GC_DELREF(_arr); \ - } \ - ZVAL_ARR(_zv, zend_array_dup(_arr)); \ - } \ - } while (0) - -#define SEPARATE_ZVAL_IF_NOT_REF(zv) do { \ - zval *__zv = (zv); \ - if (Z_TYPE_P(__zv) == IS_ARRAY) { \ - if (Z_REFCOUNT_P(__zv) > 1) { \ - if (Z_REFCOUNTED_P(__zv)) { \ - Z_DELREF_P(__zv); \ - } \ - ZVAL_ARR(__zv, zend_array_dup(Z_ARR_P(__zv)));\ - } \ - } \ - } while (0) - -#define SEPARATE_ZVAL_NOREF(zv) do { \ - zval *_zv = (zv); \ - ZEND_ASSERT(Z_TYPE_P(_zv) != IS_REFERENCE); \ - SEPARATE_ZVAL_IF_NOT_REF(_zv); \ - } while (0) - -#define SEPARATE_ZVAL(zv) do { \ - zval *_zv = (zv); \ - if (Z_ISREF_P(_zv)) { \ - zend_reference *_r = Z_REF_P(_zv); \ - ZVAL_COPY_VALUE(_zv, &_r->val); \ - if (GC_DELREF(_r) == 0) { \ - efree_size(_r, sizeof(zend_reference)); \ - } else if (Z_OPT_TYPE_P(_zv) == IS_ARRAY) { \ - ZVAL_ARR(_zv, zend_array_dup(Z_ARR_P(_zv)));\ - break; \ - } else if (Z_OPT_REFCOUNTED_P(_zv)) { \ - Z_ADDREF_P(_zv); \ - break; \ - } \ - } \ - SEPARATE_ZVAL_IF_NOT_REF(_zv); \ - } while (0) - -#define SEPARATE_ARG_IF_REF(varptr) do { \ - ZVAL_DEREF(varptr); \ - if (Z_REFCOUNTED_P(varptr)) { \ - Z_ADDREF_P(varptr); \ - } \ - } while (0) - -/* Properties store a flag distinguishing unset and unintialized properties - * (both use IS_UNDEF type) in the Z_EXTRA space. As such we also need to copy - * the Z_EXTRA space when copying property default values etc. We define separate - * macros for this purpose, so this workaround is easier to remove in the future. */ -#define IS_PROP_UNINIT 1 -#define Z_PROP_FLAG_P(z) Z_EXTRA_P(z) -#define ZVAL_COPY_VALUE_PROP(z, v) \ - do { *(z) = *(v); } while (0) -#define ZVAL_COPY_PROP(z, v) \ - do { ZVAL_COPY(z, v); Z_PROP_FLAG_P(z) = Z_PROP_FLAG_P(v); } while (0) -#define ZVAL_COPY_OR_DUP_PROP(z, v) \ - do { ZVAL_COPY_OR_DUP(z, v); Z_PROP_FLAG_P(z) = Z_PROP_FLAG_P(v); } while (0) - - -#endif /* ZEND_TYPES_H */ diff --git a/include/php/Zend/zend_variables.h b/include/php/Zend/zend_variables.h deleted file mode 100644 index bdee8b1..0000000 --- a/include/php/Zend/zend_variables.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_VARIABLES_H -#define ZEND_VARIABLES_H - -#include "zend_types.h" -#include "zend_gc.h" - -BEGIN_EXTERN_C() - -ZEND_API void ZEND_FASTCALL rc_dtor_func(zend_refcounted *p); -ZEND_API void ZEND_FASTCALL zval_copy_ctor_func(zval *zvalue); - -static zend_always_inline void zval_ptr_dtor_nogc(zval *zval_ptr) -{ - if (Z_REFCOUNTED_P(zval_ptr) && !Z_DELREF_P(zval_ptr)) { - rc_dtor_func(Z_COUNTED_P(zval_ptr)); - } -} - -static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr) -{ - if (Z_REFCOUNTED_P(zval_ptr)) { - zend_refcounted *ref = Z_COUNTED_P(zval_ptr); - if (!GC_DELREF(ref)) { - rc_dtor_func(ref); - } else { - gc_check_possible_root(ref); - } - } -} - -static zend_always_inline void zval_copy_ctor(zval *zvalue) -{ - if (Z_TYPE_P(zvalue) == IS_ARRAY) { - ZVAL_ARR(zvalue, zend_array_dup(Z_ARR_P(zvalue))); - } else if (Z_REFCOUNTED_P(zvalue)) { - Z_ADDREF_P(zvalue); - } -} - -static zend_always_inline void zval_opt_copy_ctor(zval *zvalue) -{ - if (Z_OPT_TYPE_P(zvalue) == IS_ARRAY) { - ZVAL_ARR(zvalue, zend_array_dup(Z_ARR_P(zvalue))); - } else if (Z_OPT_REFCOUNTED_P(zvalue)) { - Z_ADDREF_P(zvalue); - } -} - -static zend_always_inline void zval_ptr_dtor_str(zval *zval_ptr) -{ - if (Z_REFCOUNTED_P(zval_ptr) && !Z_DELREF_P(zval_ptr)) { - ZEND_ASSERT(Z_TYPE_P(zval_ptr) == IS_STRING); - ZEND_ASSERT(!ZSTR_IS_INTERNED(Z_STR_P(zval_ptr))); - ZEND_ASSERT(!(GC_FLAGS(Z_STR_P(zval_ptr)) & IS_STR_PERSISTENT)); - efree(Z_STR_P(zval_ptr)); - } -} - -ZEND_API void zval_ptr_dtor(zval *zval_ptr); -ZEND_API void zval_internal_ptr_dtor(zval *zvalue); - -/* Kept for compatibility */ -#define zval_dtor(zvalue) zval_ptr_dtor_nogc(zvalue) -#define zval_internal_dtor(zvalue) zval_internal_ptr_dtor(zvalue) -#define zval_dtor_func rc_dtor_func -#define zval_ptr_dtor_wrapper zval_ptr_dtor -#define zval_internal_ptr_dtor_wrapper zval_internal_ptr_dtor - -ZEND_API void zval_add_ref(zval *p); - -END_EXTERN_C() - -#define ZVAL_PTR_DTOR zval_ptr_dtor -#define ZVAL_INTERNAL_PTR_DTOR zval_internal_ptr_dtor - -#endif diff --git a/include/php/Zend/zend_virtual_cwd.h b/include/php/Zend/zend_virtual_cwd.h deleted file mode 100644 index 574bee9..0000000 --- a/include/php/Zend/zend_virtual_cwd.h +++ /dev/null @@ -1,385 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Sascha Schumann | - | Pierre Joye | - +----------------------------------------------------------------------+ -*/ - -#ifndef VIRTUAL_CWD_H -#define VIRTUAL_CWD_H - -#include "TSRM.h" - -#include -#include -#include - -#ifdef HAVE_UTIME_H -#include -#endif - -#include -#include - -#if HAVE_SYS_PARAM_H -# include -#endif - -#ifndef MAXPATHLEN -# if _WIN32 -# include "win32/ioutil.h" -# define MAXPATHLEN PHP_WIN32_IOUTIL_MAXPATHLEN -# elif PATH_MAX -# define MAXPATHLEN PATH_MAX -# elif defined(MAX_PATH) -# define MAXPATHLEN MAX_PATH -# else -# define MAXPATHLEN 256 -# endif -#endif - -#ifdef ZTS -#define VIRTUAL_DIR -#endif - -#ifndef ZEND_WIN32 -#include -#else -#include -#endif - -#if defined(__osf__) || defined(_AIX) -#include -#endif - -#ifdef ZEND_WIN32 -#include "win32/readdir.h" -#include -#include "win32/ioutil.h" -/* mode_t isn't defined on Windows */ -typedef unsigned short mode_t; - -#define DEFAULT_SLASH '\\' -#define DEFAULT_DIR_SEPARATOR ';' -#define IS_SLASH(c) ((c) == '/' || (c) == '\\') -#define IS_SLASH_P(c) (*(c) == '/' || \ - (*(c) == '\\' && !IsDBCSLeadByte(*(c-1)))) - -/* COPY_WHEN_ABSOLUTE is 2 under Win32 because by chance both regular absolute paths - in the file system and UNC paths need copying of two characters */ -#define COPY_WHEN_ABSOLUTE(path) 2 -#define IS_UNC_PATH(path, len) \ - (len >= 2 && IS_SLASH(path[0]) && IS_SLASH(path[1])) -#define IS_ABSOLUTE_PATH(path, len) \ - (len >= 2 && (/* is local */isalpha(path[0]) && path[1] == ':' || /* is UNC */IS_SLASH(path[0]) && IS_SLASH(path[1]))) - -#else -#ifdef HAVE_DIRENT_H -#include -#endif - -#define DEFAULT_SLASH '/' - -#ifdef __riscos__ -#define DEFAULT_DIR_SEPARATOR ';' -#else -#define DEFAULT_DIR_SEPARATOR ':' -#endif - -#define IS_SLASH(c) ((c) == '/') -#define IS_SLASH_P(c) (*(c) == '/') - -#endif - - -#ifndef COPY_WHEN_ABSOLUTE -#define COPY_WHEN_ABSOLUTE(path) 0 -#endif - -#ifndef IS_ABSOLUTE_PATH -#define IS_ABSOLUTE_PATH(path, len) \ - (IS_SLASH(path[0])) -#endif - -#ifdef TSRM_EXPORTS -#define CWD_EXPORTS -#endif - -#ifdef ZEND_WIN32 -# ifdef CWD_EXPORTS -# define CWD_API __declspec(dllexport) -# else -# define CWD_API __declspec(dllimport) -# endif -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define CWD_API __attribute__ ((visibility("default"))) -#else -# define CWD_API -#endif - -#ifdef ZEND_WIN32 -# define php_sys_stat_ex php_win32_ioutil_stat_ex -# define php_sys_stat php_win32_ioutil_stat -# define php_sys_lstat php_win32_ioutil_lstat -# define php_sys_fstat php_win32_ioutil_fstat -# define php_sys_readlink php_win32_ioutil_readlink -# define php_sys_symlink php_win32_ioutil_symlink -# define php_sys_link php_win32_ioutil_link -#else -# define php_sys_stat stat -# define php_sys_lstat lstat -# define php_sys_fstat fstat -# ifdef HAVE_SYMLINK -# define php_sys_readlink(link, target, target_len) readlink(link, target, target_len) -# define php_sys_symlink symlink -# define php_sys_link link -# endif -#endif - -typedef struct _cwd_state { - char *cwd; - size_t cwd_length; -} cwd_state; - -typedef int (*verify_path_func)(const cwd_state *); - -CWD_API void virtual_cwd_startup(void); -CWD_API void virtual_cwd_shutdown(void); -CWD_API int virtual_cwd_activate(void); -CWD_API int virtual_cwd_deactivate(void); -CWD_API char *virtual_getcwd_ex(size_t *length); -CWD_API char *virtual_getcwd(char *buf, size_t size); -CWD_API int virtual_chdir(const char *path); -CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path)); -CWD_API int virtual_filepath(const char *path, char **filepath); -CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path); -CWD_API char *virtual_realpath(const char *path, char *real_path); -CWD_API FILE *virtual_fopen(const char *path, const char *mode); -CWD_API int virtual_open(const char *path, int flags, ...); -CWD_API int virtual_creat(const char *path, mode_t mode); -CWD_API int virtual_rename(const char *oldname, const char *newname); -CWD_API int virtual_stat(const char *path, zend_stat_t *buf); -CWD_API int virtual_lstat(const char *path, zend_stat_t *buf); -CWD_API int virtual_unlink(const char *path); -CWD_API int virtual_mkdir(const char *pathname, mode_t mode); -CWD_API int virtual_rmdir(const char *pathname); -CWD_API DIR *virtual_opendir(const char *pathname); -CWD_API FILE *virtual_popen(const char *command, const char *type); -CWD_API int virtual_access(const char *pathname, int mode); - -#if HAVE_UTIME -CWD_API int virtual_utime(const char *filename, struct utimbuf *buf); -#endif -CWD_API int virtual_chmod(const char *filename, mode_t mode); -#if !defined(ZEND_WIN32) -CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link); -#endif - -/* One of the following constants must be used as the last argument - in virtual_file_ex() call. */ - -#define CWD_EXPAND 0 /* expand "." and ".." but don't resolve symlinks */ -#define CWD_FILEPATH 1 /* resolve symlinks if file is exist otherwise expand */ -#define CWD_REALPATH 2 /* call realpath(), resolve symlinks. File must exist */ - -CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath); - -CWD_API char *tsrm_realpath(const char *path, char *real_path); - -#define REALPATH_CACHE_TTL (2*60) /* 2 minutes */ -#define REALPATH_CACHE_SIZE 0 /* disabled while php.ini isn't loaded */ - -typedef struct _realpath_cache_bucket { - zend_ulong key; - char *path; - char *realpath; - struct _realpath_cache_bucket *next; - time_t expires; - uint16_t path_len; - uint16_t realpath_len; - uint8_t is_dir:1; -#ifdef ZEND_WIN32 - uint8_t is_rvalid:1; - uint8_t is_readable:1; - uint8_t is_wvalid:1; - uint8_t is_writable:1; -#endif -} realpath_cache_bucket; - -typedef struct _virtual_cwd_globals { - cwd_state cwd; - zend_long realpath_cache_size; - zend_long realpath_cache_size_limit; - zend_long realpath_cache_ttl; - realpath_cache_bucket *realpath_cache[1024]; -} virtual_cwd_globals; - -#ifdef ZTS -extern ts_rsrc_id cwd_globals_id; -extern size_t cwd_globals_offset; -# define CWDG(v) ZEND_TSRMG_FAST(cwd_globals_offset, virtual_cwd_globals *, v) -#else -extern virtual_cwd_globals cwd_globals; -# define CWDG(v) (cwd_globals.v) -#endif - -CWD_API void realpath_cache_clean(void); -CWD_API void realpath_cache_del(const char *path, size_t path_len); -CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, size_t path_len, time_t t); -CWD_API zend_long realpath_cache_size(void); -CWD_API zend_long realpath_cache_max_buckets(void); -CWD_API realpath_cache_bucket** realpath_cache_get_buckets(void); - -#ifdef CWD_EXPORTS -extern void virtual_cwd_main_cwd_init(uint8_t); -#endif - -/* The actual macros to be used in programs using TSRM - * If the program defines VIRTUAL_DIR it will use the - * virtual_* functions - */ - -#ifdef VIRTUAL_DIR - -#define VCWD_GETCWD(buff, size) virtual_getcwd(buff, size) -#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode) -/* Because open() has two modes, we have to macros to replace it */ -#define VCWD_OPEN(path, flags) virtual_open(path, flags) -#define VCWD_OPEN_MODE(path, flags, mode) virtual_open(path, flags, mode) -#define VCWD_CREAT(path, mode) virtual_creat(path, mode) -#define VCWD_CHDIR(path) virtual_chdir(path) -#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, virtual_chdir) -#define VCWD_GETWD(buf) -#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path) -#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname) -#define VCWD_STAT(path, buff) virtual_stat(path, buff) -# define VCWD_LSTAT(path, buff) virtual_lstat(path, buff) -#define VCWD_UNLINK(path) virtual_unlink(path) -#define VCWD_MKDIR(pathname, mode) virtual_mkdir(pathname, mode) -#define VCWD_RMDIR(pathname) virtual_rmdir(pathname) -#define VCWD_OPENDIR(pathname) virtual_opendir(pathname) -#define VCWD_POPEN(command, type) virtual_popen(command, type) -#define VCWD_ACCESS(pathname, mode) virtual_access(pathname, mode) -#if HAVE_UTIME -#define VCWD_UTIME(path, time) virtual_utime(path, time) -#endif -#define VCWD_CHMOD(path, mode) virtual_chmod(path, mode) -#if !defined(ZEND_WIN32) -#define VCWD_CHOWN(path, owner, group) virtual_chown(path, owner, group, 0) -#if HAVE_LCHOWN -#define VCWD_LCHOWN(path, owner, group) virtual_chown(path, owner, group, 1) -#endif -#endif - -#else - -#define VCWD_CREAT(path, mode) creat(path, mode) -/* rename on windows will fail if newname already exists. - MoveFileEx has to be used */ -#if defined(ZEND_WIN32) -#define VCWD_FOPEN(path, mode) php_win32_ioutil_fopen(path, mode) -#define VCWD_OPEN(path, flags) php_win32_ioutil_open(path, flags) -#define VCWD_OPEN_MODE(path, flags, mode) php_win32_ioutil_open(path, flags, mode) -# define VCWD_RENAME(oldname, newname) php_win32_ioutil_rename(oldname, newname) -#define VCWD_MKDIR(pathname, mode) php_win32_ioutil_mkdir(pathname, mode) -#define VCWD_RMDIR(pathname) php_win32_ioutil_rmdir(pathname) -#define VCWD_UNLINK(path) php_win32_ioutil_unlink(path) -#define VCWD_CHDIR(path) php_win32_ioutil_chdir(path) -#define VCWD_ACCESS(pathname, mode) tsrm_win32_access(pathname, mode) -#define VCWD_GETCWD(buff, size) php_win32_ioutil_getcwd(buff, size) -#define VCWD_CHMOD(path, mode) php_win32_ioutil_chmod(path, mode) -#else -#define VCWD_FOPEN(path, mode) fopen(path, mode) -#define VCWD_OPEN(path, flags) open(path, flags) -#define VCWD_OPEN_MODE(path, flags, mode) open(path, flags, mode) -# define VCWD_RENAME(oldname, newname) rename(oldname, newname) -#define VCWD_MKDIR(pathname, mode) mkdir(pathname, mode) -#define VCWD_RMDIR(pathname) rmdir(pathname) -#define VCWD_UNLINK(path) unlink(path) -#define VCWD_CHDIR(path) chdir(path) -#define VCWD_ACCESS(pathname, mode) access(pathname, mode) -#define VCWD_GETCWD(buff, size) getcwd(buff, size) -#define VCWD_CHMOD(path, mode) chmod(path, mode) -#endif - -#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, chdir) -#define VCWD_GETWD(buf) getwd(buf) -#define VCWD_STAT(path, buff) php_sys_stat(path, buff) -#define VCWD_LSTAT(path, buff) lstat(path, buff) -#define VCWD_OPENDIR(pathname) opendir(pathname) -#define VCWD_POPEN(command, type) popen(command, type) - -#define VCWD_REALPATH(path, real_path) tsrm_realpath(path, real_path) - -#if HAVE_UTIME -# ifdef ZEND_WIN32 -# define VCWD_UTIME(path, time) win32_utime(path, time) -# else -# define VCWD_UTIME(path, time) utime(path, time) -# endif -#endif - -#if !defined(ZEND_WIN32) -#define VCWD_CHOWN(path, owner, group) chown(path, owner, group) -#if HAVE_LCHOWN -#define VCWD_LCHOWN(path, owner, group) lchown(path, owner, group) -#endif -#endif - -#endif - -/* Global stat declarations */ -#ifndef _S_IFDIR -#define _S_IFDIR S_IFDIR -#endif - -#ifndef _S_IFREG -#define _S_IFREG S_IFREG -#endif - -#ifndef S_IFLNK -#define _IFLNK 0120000 /* symbolic link */ -#define S_IFLNK _IFLNK -#endif - -#ifndef S_ISDIR -#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR) -#endif - -#ifndef S_ISREG -#define S_ISREG(mode) (((mode)&S_IFMT) == S_IFREG) -#endif - -#ifndef S_ISLNK -#define S_ISLNK(mode) (((mode)&S_IFMT) == S_IFLNK) -#endif - -#ifndef S_IXROOT -#define S_IXROOT ( S_IXUSR | S_IXGRP | S_IXOTH ) -#endif - -/* XXX should be _S_IFIFO? */ -#ifndef S_IFIFO -#define _IFIFO 0010000 /* fifo */ -#define S_IFIFO _IFIFO -#endif - -#ifndef S_IFBLK -#define _IFBLK 0060000 /* block special */ -#define S_IFBLK _IFBLK -#endif - -#endif /* VIRTUAL_CWD_H */ diff --git a/include/php/Zend/zend_vm.h b/include/php/Zend/zend_vm.h deleted file mode 100644 index f246e7f..0000000 --- a/include/php/Zend/zend_vm.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_VM_H -#define ZEND_VM_H - -BEGIN_EXTERN_C() - -ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler(zend_op* opcode); -ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* opcode, uint32_t op1_info, uint32_t op2_info, uint32_t res_info); -ZEND_API void ZEND_FASTCALL zend_serialize_opcode_handler(zend_op *op); -ZEND_API void ZEND_FASTCALL zend_deserialize_opcode_handler(zend_op *op); -ZEND_API const void* ZEND_FASTCALL zend_get_opcode_handler_func(const zend_op *op); -ZEND_API const zend_op *zend_get_halt_op(void); -ZEND_API int ZEND_FASTCALL zend_vm_call_opcode_handler(zend_execute_data *ex); -ZEND_API int zend_vm_kind(void); - -void zend_vm_init(void); -void zend_vm_dtor(void); - -END_EXTERN_C() - -#define ZEND_VM_SET_OPCODE_HANDLER(opline) zend_vm_set_opcode_handler(opline) - -#endif diff --git a/include/php/Zend/zend_vm_def.h b/include/php/Zend/zend_vm_def.h deleted file mode 100644 index d362b01..0000000 --- a/include/php/Zend/zend_vm_def.h +++ /dev/null @@ -1,9423 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -/* If you change this file, please regenerate the zend_vm_execute.h and - * zend_vm_opcodes.h files by running: - * php zend_vm_gen.php - */ - -ZEND_VM_HELPER(zend_add_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - add_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_NOCONSTCONST_HANDLER(1, ZEND_ADD, CONST|TMPVARCV, CONST|TMPVARCV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2, *result; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(add_double); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(add_double): - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 + d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(add_double); - } - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_add_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_sub_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - sub_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_NOCONSTCONST_HANDLER(2, ZEND_SUB, CONST|TMPVARCV, CONST|TMPVARCV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2, *result; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(sub_double); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(sub_double): - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 - d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(sub_double); - } - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_sub_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_mul_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - mul_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(3, ZEND_MUL, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2, *result; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - zend_long overflow; - - result = EX_VAR(opline->result.var); - ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1), Z_LVAL_P(op2), Z_LVAL_P(result), Z_DVAL_P(result), overflow); - Z_TYPE_INFO_P(result) = overflow ? IS_DOUBLE : IS_LONG; - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(mul_double); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(mul_double): - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 * d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(mul_double); - } - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_mul_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(4, ZEND_DIV, CONST|TMPVAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR(BP_VAR_R); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_HELPER(zend_mod_by_zero_helper, ANY, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_exception_ex(zend_ce_division_by_zero_error, 0, "Modulo by zero"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); -} - -ZEND_VM_HELPER(zend_mod_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - mod_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(5, ZEND_MOD, CONST|TMPVARCV, CONST|TMPVARCV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - if (UNEXPECTED(Z_LVAL_P(op2) == 0)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_mod_by_zero_helper); - } else if (UNEXPECTED(Z_LVAL_P(op2) == -1)) { - /* Prevent overflow error/crash if op1==ZEND_LONG_MIN */ - ZVAL_LONG(result, 0); - } else { - ZVAL_LONG(result, Z_LVAL_P(op1) % Z_LVAL_P(op2)); - } - ZEND_VM_NEXT_OPCODE(); - } - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_mod_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_shift_left_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - shift_left_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(6, ZEND_SL, CONST|TMPVARCV, CONST|TMPVARCV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - /* Perform shift on unsigned numbers to get well-defined wrap behavior. */ - ZVAL_LONG(EX_VAR(opline->result.var), - (zend_long) ((zend_ulong) Z_LVAL_P(op1) << Z_LVAL_P(op2))); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_shift_left_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_shift_right_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - shift_right_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(7, ZEND_SR, CONST|TMPVARCV, CONST|TMPVARCV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) >> Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_shift_right_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(12, ZEND_POW, CONST|TMPVAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR(BP_VAR_R); - pow_function(EX_VAR(opline->result.var), op1, op2); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(8, ZEND_CONCAT, CONST|TMPVAR|CV, CONST|TMPVAR|CV, SPEC(NO_CONST_CONST)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - - if ((OP1_TYPE == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (OP2_TYPE == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (OP1_TYPE != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (OP2_TYPE == IS_CONST || OP2_TYPE == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (OP2_TYPE != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (OP1_TYPE != IS_CONST && OP1_TYPE != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(16, ZEND_IS_IDENTICAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV, SPEC(COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_DEREF(BP_VAR_R); - result = fast_is_identical_function(op1, op2); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(17, ZEND_IS_NOT_IDENTICAL, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV, SPEC(COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_DEREF(BP_VAR_R); - result = fast_is_not_identical_function(op1, op2); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HELPER(zend_is_equal_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(18, ZEND_IS_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV, SPEC(SMART_BRANCH,COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -ZEND_VM_C_LABEL(is_equal_true): - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -ZEND_VM_C_LABEL(is_equal_false): - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(is_equal_double); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(is_equal_double): - if (d1 == d2) { - ZEND_VM_C_GOTO(is_equal_true); - } else { - ZEND_VM_C_GOTO(is_equal_false); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(is_equal_double); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - ZEND_VM_C_GOTO(is_equal_true); - } else { - ZEND_VM_C_GOTO(is_equal_false); - } - } - } - ZEND_VM_DISPATCH_TO_HELPER(zend_is_equal_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_is_not_equal_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(19, ZEND_IS_NOT_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV, SPEC(SMART_BRANCH,COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -ZEND_VM_C_LABEL(is_not_equal_true): - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -ZEND_VM_C_LABEL(is_not_equal_false): - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(is_not_equal_double); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(is_not_equal_double): - if (d1 != d2) { - ZEND_VM_C_GOTO(is_not_equal_true); - } else { - ZEND_VM_C_GOTO(is_not_equal_false); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(is_not_equal_double); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - ZEND_VM_C_GOTO(is_not_equal_true); - } else { - ZEND_VM_C_GOTO(is_not_equal_false); - } - } - } - ZEND_VM_DISPATCH_TO_HELPER(zend_is_not_equal_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_is_smaller_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_HOT_NOCONSTCONST_HANDLER(20, ZEND_IS_SMALLER, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -ZEND_VM_C_LABEL(is_smaller_true): - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -ZEND_VM_C_LABEL(is_smaller_false): - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(is_smaller_double); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(is_smaller_double): - if (d1 < d2) { - ZEND_VM_C_GOTO(is_smaller_true); - } else { - ZEND_VM_C_GOTO(is_smaller_false); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(is_smaller_double); - } - } - ZEND_VM_DISPATCH_TO_HELPER(zend_is_smaller_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_is_smaller_or_equal_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_HOT_NOCONSTCONST_HANDLER(21, ZEND_IS_SMALLER_OR_EQUAL, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -ZEND_VM_C_LABEL(is_smaller_or_equal_true): - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -ZEND_VM_C_LABEL(is_smaller_or_equal_false): - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(is_smaller_or_equal_double); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(is_smaller_or_equal_double): - if (d1 <= d2) { - ZEND_VM_C_GOTO(is_smaller_or_equal_true); - } else { - ZEND_VM_C_GOTO(is_smaller_or_equal_false); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(is_smaller_or_equal_double); - } - } - ZEND_VM_DISPATCH_TO_HELPER(zend_is_smaller_or_equal_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(170, ZEND_SPACESHIP, CONST|TMPVAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR(BP_VAR_R); - compare_function(EX_VAR(opline->result.var), op1, op2); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HELPER(zend_bw_or_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - bitwise_or_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(9, ZEND_BW_OR, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) | Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_bw_or_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_bw_and_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - bitwise_and_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(10, ZEND_BW_AND, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) & Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_bw_and_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HELPER(zend_bw_xor_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - bitwise_xor_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(11, ZEND_BW_XOR, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (ZEND_VM_SPEC && OP1_TYPE == IS_CONST && OP2_TYPE == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) ^ Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_bw_xor_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(15, ZEND_BOOL_XOR, CONST|TMPVAR|CV, CONST|TMPVAR|CV, SPEC(COMMUTATIVE)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR(BP_VAR_R); - boolean_xor_function(EX_VAR(opline->result.var), op1, op2); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(13, ZEND_BW_NOT, CONST|TMPVAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), ~Z_LVAL_P(op1)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - bitwise_not_function(EX_VAR(opline->result.var), op1); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(14, ZEND_BOOL_NOT, CONST|TMPVAR|CV, ANY) -{ - USE_OPLINE - zval *val; - zend_free_op free_op1; - - val = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_TRUE(EX_VAR(opline->result.var)); - if (OP1_TYPE == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val)); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_HELPER(zend_this_not_in_object_context_helper, ANY, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Using $this when not in object context"); - if ((opline+1)->opcode == ZEND_OP_DATA) { - FREE_UNFETCHED_OP_DATA(); - } - FREE_UNFETCHED_OP2(); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); -} - -ZEND_VM_COLD_HELPER(zend_undefined_function_helper, ANY, ANY) -{ - USE_OPLINE - zval *function_name; - - SAVE_OPLINE(); - function_name = RT_CONSTANT(opline, opline->op2); - zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(function_name)); - HANDLE_EXCEPTION(); -} - -ZEND_VM_HANDLER(28, ZEND_ASSIGN_OBJ_OP, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, OP) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - - do { - value = GET_OP_DATA_ZVAL_PTR(BP_VAR_R); - - if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - ZEND_VM_C_GOTO(assign_op_object); - } - if (OP1_TYPE == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -ZEND_VM_C_LABEL(assign_op_object): - /* here we are sure we are dealing with an object */ - cache_slot = (OP2_TYPE == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (OP2_TYPE == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP_DATA(); - FREE_OP2(); - FREE_OP1_VAR_PTR(); - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -ZEND_VM_HANDLER(29, ZEND_ASSIGN_STATIC_PROP_OP, ANY, ANY, OP) -{ - /* This helper actually never will receive IS_VAR as second op, and has the same handling for VAR and TMP in the first op, but for interoperability with the other binary_assign_op helpers, it is necessary to "include" it */ - - USE_OPLINE - zend_free_op free_op_data; - zval *prop, *value; - zend_property_info *prop_info; - zend_reference *ref; - - SAVE_OPLINE(); - - if (UNEXPECTED(zend_fetch_static_property_address(&prop, &prop_info, (opline+1)->extended_value, BP_VAR_RW, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS)) { - ZEND_ASSERT(EG(exception)); - UNDEF_RESULT(); - FREE_UNFETCHED_OP_DATA(); - HANDLE_EXCEPTION(); - } - - value = GET_OP_DATA_ZVAL_PTR(BP_VAR_R); - - do { - if (UNEXPECTED(Z_ISREF_P(prop))) { - ref = Z_REF_P(prop); - prop = Z_REFVAL_P(prop); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (UNEXPECTED(prop_info->type)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, prop, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(prop, prop, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), prop); - } - - FREE_OP_DATA(); - /* assign_static_prop has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -ZEND_VM_HANDLER(27, ZEND_ASSIGN_DIM_OP, VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV, OP) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -ZEND_VM_C_LABEL(assign_dim_op_array): - SEPARATE_ARRAY(container); -ZEND_VM_C_LABEL(assign_dim_op_new_array): - dim = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP2_TYPE == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - ZEND_VM_C_GOTO(assign_dim_op_ret_null); - } - } else { - if (OP2_TYPE == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - ZEND_VM_C_GOTO(assign_dim_op_ret_null); - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if (OP2_TYPE != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - ZEND_VM_C_GOTO(assign_dim_op_array); - } - } - - dim = GET_OP2_ZVAL_PTR(BP_VAR_R); - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (OP2_TYPE == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - ZEND_VM_C_GOTO(assign_dim_op_new_array); - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -ZEND_VM_C_LABEL(assign_dim_op_ret_null): - FREE_UNFETCHED_OP_DATA(); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - FREE_OP2(); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -ZEND_VM_HANDLER(26, ZEND_ASSIGN_OP, VAR|CV, CONST|TMPVAR|CV, OP) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *var_ptr; - zval *value; - - SAVE_OPLINE(); - value = GET_OP2_ZVAL_PTR(BP_VAR_R); - var_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_RW); - - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - } - - FREE_OP2(); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(132, ZEND_PRE_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - - do { - if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - ZEND_VM_C_GOTO(pre_incdec_object); - } - if (OP1_TYPE == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -ZEND_VM_C_LABEL(pre_incdec_object): - /* here we are sure we are dealing with an object */ - cache_slot = (OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if (OP2_TYPE == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP2(); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(133, ZEND_PRE_DEC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_PRE_INC_OBJ); -} - -ZEND_VM_HANDLER(134, ZEND_POST_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - - do { - if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - ZEND_VM_C_GOTO(post_incdec_object); - } - if (OP1_TYPE == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -ZEND_VM_C_LABEL(post_incdec_object): - /* here we are sure we are dealing with an object */ - cache_slot = (OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if (OP2_TYPE == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP2(); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(135, ZEND_POST_DEC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_POST_INC_OBJ); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -ZEND_VM_HANDLER(38, ZEND_PRE_INC_STATIC_PROP, ANY, ANY, CACHE_SLOT) -{ - USE_OPLINE - zval *prop; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_RW, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - zend_pre_incdec_property_zval(prop, prop_info->type ? prop_info : NULL OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -ZEND_VM_HANDLER(39, ZEND_PRE_DEC_STATIC_PROP, ANY, ANY, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_PRE_INC_STATIC_PROP); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -ZEND_VM_HANDLER(40, ZEND_POST_INC_STATIC_PROP, ANY, ANY, CACHE_SLOT) -{ - USE_OPLINE - zval *prop; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_RW, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - zend_post_incdec_property_zval(prop, prop_info->type ? prop_info : NULL OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -ZEND_VM_HANDLER(41, ZEND_POST_DEC_STATIC_PROP, ANY, ANY, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_POST_INC_STATIC_PROP); -} - -ZEND_VM_HELPER(zend_pre_inc_helper, VAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, NULL OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - increment_function(var_ptr); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_increment_function(var_ptr); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_pre_inc_helper); -} - -ZEND_VM_HELPER(zend_pre_dec_helper, VAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, NULL OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - decrement_function(var_ptr); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_pre_dec_helper); -} - -ZEND_VM_HELPER(zend_post_inc_helper, VAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, EX_VAR(opline->result.var) OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - - increment_function(var_ptr); - } while (0); - - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(36, ZEND_POST_INC, VAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_increment_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_post_inc_helper); -} - -ZEND_VM_HELPER(zend_post_dec_helper, VAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, EX_VAR(opline->result.var) OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - - decrement_function(var_ptr); - } while (0); - - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(37, ZEND_POST_DEC, VAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_decrement_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_post_dec_helper); -} - -ZEND_VM_HANDLER(136, ZEND_ECHO, CONST|TMPVAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *z; - - SAVE_OPLINE(); - z = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (Z_TYPE_P(z) == IS_STRING) { - zend_string *str = Z_STR_P(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } - } else { - zend_string *str = zval_get_string_func(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } else if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(z) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_string_release_ex(str, 0); - } - - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HELPER(zend_fetch_var_address_helper, CONST|TMPVAR|CV, UNUSED, int type) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varname; - zval *retval; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (OP1_TYPE == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - FREE_OP1(); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - retval = zend_hash_find_ex(target_symbol_table, name, OP1_TYPE == IS_CONST); - if (retval == NULL) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { -ZEND_VM_C_LABEL(fetch_this): - zend_fetch_this_var(type OPLINE_CC EXECUTE_DATA_CC); - if (OP1_TYPE != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - if (type == BP_VAR_W) { - retval = zend_hash_add_new(target_symbol_table, name, &EG(uninitialized_zval)); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - retval = zend_hash_update(target_symbol_table, name, &EG(uninitialized_zval)); - } else { - retval = &EG(uninitialized_zval); - } - } - /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ - } else if (Z_TYPE_P(retval) == IS_INDIRECT) { - retval = Z_INDIRECT_P(retval); - if (Z_TYPE_P(retval) == IS_UNDEF) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { - ZEND_VM_C_GOTO(fetch_this); - } - if (type == BP_VAR_W) { - ZVAL_NULL(retval); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - ZVAL_NULL(retval); - } else { - retval = &EG(uninitialized_zval); - } - } - } - } - - if (!(opline->extended_value & ZEND_FETCH_GLOBAL_LOCK)) { - FREE_OP1(); - } - - if (OP1_TYPE != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - ZEND_ASSERT(retval != NULL); - if (type == BP_VAR_R || type == BP_VAR_IS) { - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else { - ZVAL_INDIRECT(EX_VAR(opline->result.var), retval); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(80, ZEND_FETCH_R, CONST|TMPVAR|CV, UNUSED, VAR_FETCH) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, BP_VAR_R); -} - -ZEND_VM_HANDLER(83, ZEND_FETCH_W, CONST|TMPVAR|CV, UNUSED, VAR_FETCH) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, BP_VAR_W); -} - -ZEND_VM_HANDLER(86, ZEND_FETCH_RW, CONST|TMPVAR|CV, UNUSED, VAR_FETCH) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, BP_VAR_RW); -} - -ZEND_VM_HANDLER(92, ZEND_FETCH_FUNC_ARG, CONST|TMPVAR|CV, UNUSED, VAR_FETCH) -{ - int fetch_type = - (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) ? - BP_VAR_W : BP_VAR_R; - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, fetch_type); -} - -ZEND_VM_HANDLER(95, ZEND_FETCH_UNSET, CONST|TMPVAR|CV, UNUSED, VAR_FETCH) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, BP_VAR_UNSET); -} - -ZEND_VM_HANDLER(89, ZEND_FETCH_IS, CONST|TMPVAR|CV, UNUSED, VAR_FETCH) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_var_address_helper, type, BP_VAR_IS); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -ZEND_VM_HELPER(zend_fetch_static_prop_helper, ANY, ANY, int type) -{ - USE_OPLINE - zval *prop; - - SAVE_OPLINE(); - - if (UNEXPECTED(zend_fetch_static_property_address(&prop, NULL, opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS, type, opline->extended_value & ZEND_FETCH_OBJ_FLAGS OPLINE_CC EXECUTE_DATA_CC) != SUCCESS)) { - ZEND_ASSERT(EG(exception) || (type == BP_VAR_IS)); - prop = &EG(uninitialized_zval); - } - - if (type == BP_VAR_R || type == BP_VAR_IS) { - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), prop); - } else { - ZVAL_INDIRECT(EX_VAR(opline->result.var), prop); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_HANDLER(173, ZEND_FETCH_STATIC_PROP_R, ANY, CLASS_FETCH, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, BP_VAR_R); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_HANDLER(174, ZEND_FETCH_STATIC_PROP_W, ANY, CLASS_FETCH, FETCH_REF|DIM_OBJ_WRITE|CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, BP_VAR_W); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_HANDLER(175, ZEND_FETCH_STATIC_PROP_RW, ANY, CLASS_FETCH, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, BP_VAR_RW); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_HANDLER(177, ZEND_FETCH_STATIC_PROP_FUNC_ARG, ANY, CLASS_FETCH, FETCH_REF|CACHE_SLOT) -{ - int fetch_type = - (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) ? - BP_VAR_W : BP_VAR_R; - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, fetch_type); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_HANDLER(178, ZEND_FETCH_STATIC_PROP_UNSET, ANY, CLASS_FETCH, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, BP_VAR_UNSET); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_HANDLER(176, ZEND_FETCH_STATIC_PROP_IS, ANY, CLASS_FETCH, CACHE_SLOT) -{ - ZEND_VM_DISPATCH_TO_HELPER(zend_fetch_static_prop_helper, type, BP_VAR_IS); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(81, ZEND_FETCH_DIM_R, CONST|TMPVAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - dim = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP1_TYPE != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -ZEND_VM_C_LABEL(fetch_dim_r_array): - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, OP2_TYPE, BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - ZEND_VM_C_GOTO(fetch_dim_r_array); - } else { - ZEND_VM_C_GOTO(fetch_dim_r_slow); - } - } else { -ZEND_VM_C_LABEL(fetch_dim_r_slow): - if (OP2_TYPE == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - } - FREE_OP2(); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(84, ZEND_FETCH_DIM_W, VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - zend_fetch_dimension_address_W(container, GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R), OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - if (OP1_TYPE == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(87, ZEND_FETCH_DIM_RW, VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - zend_fetch_dimension_address_RW(container, GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R), OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - if (OP1_TYPE == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(90, ZEND_FETCH_DIM_IS, CONST|TMPVAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_IS); - zend_fetch_dimension_address_read_IS(container, GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R), OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_HELPER(zend_use_tmp_in_write_context_helper, ANY, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot use temporary expression in write context"); - FREE_UNFETCHED_OP2(); - FREE_UNFETCHED_OP1(); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); -} - -ZEND_VM_COLD_HELPER(zend_use_undef_in_read_context_helper, ANY, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot use [] for reading"); - FREE_UNFETCHED_OP2(); - FREE_UNFETCHED_OP1(); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV) -{ -#if !ZEND_VM_SPEC - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((OP1_TYPE & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_DISPATCH_TO_HELPER(zend_use_tmp_in_write_context_helper); - } - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_FETCH_DIM_W); - } else { - if (OP2_TYPE == IS_UNUSED) { - ZEND_VM_DISPATCH_TO_HELPER(zend_use_undef_in_read_context_helper); - } - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_FETCH_DIM_R); - } -} - -ZEND_VM_HANDLER(96, ZEND_FETCH_DIM_UNSET, VAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_UNSET); - zend_fetch_dimension_address_UNSET(container, GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R), OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - if (OP1_TYPE == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_OBJ_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMPVAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - offset = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (OP1_TYPE == IS_CONST || - (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_C_GOTO(fetch_obj_r_finish); - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (OP2_TYPE == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) { - ZEND_VM_C_GOTO(fetch_obj_r_copy); - } else { -ZEND_VM_C_LABEL(fetch_obj_r_fast_copy): - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) { - ZEND_VM_C_GOTO(fetch_obj_r_copy); - } else { - ZEND_VM_C_GOTO(fetch_obj_r_fast_copy); - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) { - ZEND_VM_C_GOTO(fetch_obj_r_copy); - } else { - ZEND_VM_C_GOTO(fetch_obj_r_fast_copy); - } - } - } - } - } else if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -ZEND_VM_C_LABEL(fetch_obj_r_copy): - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -ZEND_VM_C_LABEL(fetch_obj_r_finish): - FREE_OP2(); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(85, ZEND_FETCH_OBJ_W, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, FETCH_REF|DIM_OBJ_WRITE|CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, OP1_TYPE, property, OP2_TYPE, - ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - if (OP1_TYPE == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(88, ZEND_FETCH_OBJ_RW, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, OP1_TYPE, property, OP2_TYPE, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - if (OP1_TYPE == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - offset = GET_OP2_ZVAL_PTR(BP_VAR_R); - - if (OP1_TYPE == IS_CONST || - (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_C_GOTO(fetch_obj_is_finish); - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (OP2_TYPE == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) { - ZEND_VM_C_GOTO(fetch_obj_is_copy); - } else { -ZEND_VM_C_LABEL(fetch_obj_is_fast_copy): - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) { - ZEND_VM_C_GOTO(fetch_obj_is_copy); - } else { - ZEND_VM_C_GOTO(fetch_obj_is_fast_copy); - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) { - ZEND_VM_C_GOTO(fetch_obj_is_copy); - } else { - ZEND_VM_C_GOTO(fetch_obj_is_fast_copy); - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -ZEND_VM_C_LABEL(fetch_obj_is_copy): - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -ZEND_VM_C_LABEL(fetch_obj_is_finish): - FREE_OP2(); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, CONST|TMP|VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, FETCH_REF|CACHE_SLOT) -{ -#if !ZEND_VM_SPEC - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((OP1_TYPE & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_DISPATCH_TO_HELPER(zend_use_tmp_in_write_context_helper); - } - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_FETCH_OBJ_W); - } else { - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_FETCH_OBJ_R); - } -} - -ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_UNSET); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, OP1_TYPE, property, OP2_TYPE, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - if (OP1_TYPE == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(98, ZEND_FETCH_LIST_R, CONST|TMPVARCV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - zend_fetch_dimension_address_LIST_r(container, GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R), OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(155, ZEND_FETCH_LIST_W, VAR, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *dim; - - SAVE_OPLINE(); - container = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - dim = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (OP1_TYPE == IS_VAR - && Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT - && UNEXPECTED(!Z_ISREF_P(container)) - ) { - zend_error(E_NOTICE, "Attempting to set reference to non referenceable value"); - zend_fetch_dimension_address_LIST_r(container, dim, OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_fetch_dimension_address_W(container, dim, OP2_TYPE OPLINE_CC EXECUTE_DATA_CC); - } - - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(24, ZEND_ASSIGN_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT, SPEC(OP_DATA=CONST|TMP|VAR|CV)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - value = GET_OP_DATA_ZVAL_PTR(BP_VAR_R); - - if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - ZEND_VM_C_GOTO(assign_object); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - ZEND_VM_C_GOTO(free_and_exit_assign_obj); - } - } - -ZEND_VM_C_LABEL(assign_object): - if (OP2_TYPE == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - ZEND_VM_C_GOTO(free_and_exit_assign_obj); - } else { -ZEND_VM_C_LABEL(fast_assign_obj): - value = zend_assign_to_variable(property_val, value, OP_DATA_TYPE, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - ZEND_VM_C_GOTO(exit_assign_obj); - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - ZEND_VM_C_GOTO(fast_assign_obj); - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (OP_DATA_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (OP_DATA_TYPE != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (OP_DATA_TYPE == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (OP_DATA_TYPE == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - ZEND_VM_C_GOTO(exit_assign_obj); - } - } - } - - if (OP_DATA_TYPE == IS_CV || OP_DATA_TYPE == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -ZEND_VM_C_LABEL(free_and_exit_assign_obj): - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - FREE_OP_DATA(); -ZEND_VM_C_LABEL(exit_assign_obj): - FREE_OP2(); - FREE_OP1_VAR_PTR(); - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -ZEND_VM_HANDLER(25, ZEND_ASSIGN_STATIC_PROP, ANY, ANY, CACHE_SLOT, SPEC(OP_DATA=CONST|TMP|VAR|CV)) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *prop, *value; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_W, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - FREE_UNFETCHED_OP_DATA(); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - value = GET_OP_DATA_ZVAL_PTR(BP_VAR_R); - - if (UNEXPECTED(prop_info->type)) { - value = zend_assign_to_typed_prop(prop_info, prop, value EXECUTE_DATA_CC); - FREE_OP_DATA(); - } else { - value = zend_assign_to_variable(prop, value, OP_DATA_TYPE, EX_USES_STRICT_TYPES()); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* assign_static_prop has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -ZEND_VM_HANDLER(23, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV, SPEC(OP_DATA=CONST|TMP|VAR|CV)) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -ZEND_VM_C_LABEL(try_assign_dim_array): - value = GET_OP_DATA_ZVAL_PTR(BP_VAR_R); - SEPARATE_ARRAY(object_ptr); - if (OP2_TYPE == IS_UNUSED) { - if (OP_DATA_TYPE == IS_CV || OP_DATA_TYPE == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - ZEND_VM_C_GOTO(assign_dim_error); - } else if (OP_DATA_TYPE == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (OP_DATA_TYPE == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - FREE_OP_DATA(); - } - } else if (OP_DATA_TYPE == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP2_TYPE == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - ZEND_VM_C_GOTO(assign_dim_error); - } - value = zend_assign_to_variable(variable_ptr, value, OP_DATA_TYPE, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - ZEND_VM_C_GOTO(try_assign_dim_array); - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = GET_OP2_ZVAL_PTR(BP_VAR_R); - value = GET_OP_DATA_ZVAL_PTR_DEREF(BP_VAR_R); - - if (OP2_TYPE == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - FREE_OP_DATA(); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (OP2_TYPE == IS_UNUSED) { - zend_use_new_element_for_string(); - FREE_UNFETCHED_OP_DATA(); - UNDEF_RESULT(); - } else { - dim = GET_OP2_ZVAL_PTR(BP_VAR_R); - value = GET_OP_DATA_ZVAL_PTR_DEREF(BP_VAR_R); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - FREE_OP_DATA(); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = GET_OP2_ZVAL_PTR(BP_VAR_R); - FREE_UNFETCHED_OP_DATA(); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - ZEND_VM_C_GOTO(try_assign_dim_array); - } - } else { - if (OP1_TYPE != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = GET_OP2_ZVAL_PTR(BP_VAR_R); -ZEND_VM_C_LABEL(assign_dim_error): - FREE_UNFETCHED_OP_DATA(); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (OP2_TYPE != IS_UNUSED) { - FREE_OP2(); - } - FREE_OP1_VAR_PTR(); - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -ZEND_VM_HANDLER(22, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV, SPEC(RETVAL)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = GET_OP2_ZVAL_PTR(BP_VAR_R); - variable_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - FREE_OP2(); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, OP2_TYPE, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - FREE_OP1_VAR_PTR(); - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(30, ZEND_ASSIGN_REF, VAR|CV, VAR|CV, SRC) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *variable_ptr; - zval *value_ptr; - - SAVE_OPLINE(); - value_ptr = GET_OP2_ZVAL_PTR_PTR(BP_VAR_W); - variable_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (OP1_TYPE == IS_VAR && - UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) { - - zend_throw_error(NULL, "Cannot assign by reference to an array dimension of an object"); - variable_ptr = &EG(uninitialized_zval); - } else if (OP2_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(value_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (OP2_TYPE == IS_VAR && - opline->extended_value == ZEND_RETURNS_FUNCTION && - UNEXPECTED(!Z_ISREF_P(value_ptr))) { - - variable_ptr = zend_wrong_assign_to_variable_reference( - variable_ptr, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_variable_reference(variable_ptr, value_ptr); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), variable_ptr); - } - - FREE_OP2_VAR_PTR(); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(32, ZEND_ASSIGN_OBJ_REF, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT|SRC, SPEC(OP_DATA=VAR|CV)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - property = GET_OP2_ZVAL_PTR(BP_VAR_R); - - value_ptr = GET_OP_DATA_ZVAL_PTR_PTR(BP_VAR_W); - - if (ZEND_VM_SPEC) { - if (OP1_TYPE == IS_UNUSED) { - if (OP2_TYPE == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (OP2_TYPE == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, OP1_TYPE, property, OP2_TYPE, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - FREE_OP1_VAR_PTR(); - FREE_OP2(); - FREE_OP_DATA_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -ZEND_VM_HANDLER(33, ZEND_ASSIGN_STATIC_PROP_REF, ANY, ANY, CACHE_SLOT|SRC) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *prop, *value_ptr; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value & ~ZEND_RETURNS_FUNCTION, BP_VAR_W, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - FREE_UNFETCHED_OP_DATA(); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - value_ptr = GET_OP_DATA_ZVAL_PTR_PTR(BP_VAR_W); - - if (OP_DATA_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(value_ptr))) { - prop = &EG(uninitialized_zval); - } else if (OP_DATA_TYPE == IS_VAR && (opline->extended_value & ZEND_RETURNS_FUNCTION) && UNEXPECTED(!Z_ISREF_P(value_ptr))) { - if (UNEXPECTED(!zend_wrong_assign_to_variable_reference(prop, value_ptr OPLINE_CC EXECUTE_DATA_CC))) { - prop = &EG(uninitialized_zval); - } - } else if (UNEXPECTED(prop_info->type)) { - prop = zend_assign_to_typed_property_reference(prop_info, prop, value_ptr EXECUTE_DATA_CC); - } else { - zend_assign_to_variable_reference(prop, value_ptr); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), prop); - } - - FREE_OP_DATA_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -ZEND_VM_HOT_HELPER(zend_leave_helper, ANY, ANY) -{ - zend_execute_data *old_execute_data; - uint32_t call_info = EX_CALL_INFO(); - SAVE_OPLINE(); - - if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(execute_data->This)); - } else if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - EG(vm_stack_top) = (zval*)execute_data; - execute_data = EX(prev_execute_data); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } - - /* Free extra args before releasing the closure, - * as that may free the op_array. */ - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(execute_data->This)); - } else if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - - old_execute_data = execute_data; - execute_data = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & ZEND_CALL_TOP) == 0)) { - zend_detach_symbol_table(execute_data); - destroy_op_array(&EX(func)->op_array); - efree_size(EX(func), sizeof(zend_op_array)); -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - old_execute_data = execute_data; - execute_data = EG(current_execute_data) = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - - zend_attach_symbol_table(execute_data); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else { - if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - } - if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - ZEND_VM_RETURN(); - } else /* if (call_kind == ZEND_CALL_TOP_CODE) */ { - zend_array *symbol_table = EX(symbol_table); - - zend_detach_symbol_table(execute_data); - old_execute_data = EX(prev_execute_data); - while (old_execute_data) { - if (old_execute_data->func && (ZEND_CALL_INFO(old_execute_data) & ZEND_CALL_HAS_SYMBOL_TABLE)) { - if (old_execute_data->symbol_table == symbol_table) { - zend_attach_symbol_table(old_execute_data); - } - break; - } - old_execute_data = old_execute_data->prev_execute_data; - } - EG(current_execute_data) = EX(prev_execute_data); - ZEND_VM_RETURN(); - } - } -} - -ZEND_VM_HOT_HANDLER(42, ZEND_JMP, JMP_ADDR, ANY) -{ - USE_OPLINE - - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op1), 0); -} - -ZEND_VM_HOT_NOCONST_HANDLER(43, ZEND_JMPZ, CONST|TMPVAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - - val = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline++; - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - FREE_OP1(); - ZEND_VM_JMP(opline); -} - -ZEND_VM_HOT_NOCONST_HANDLER(44, ZEND_JMPNZ, CONST|TMPVAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - - val = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - opline++; - } - FREE_OP1(); - ZEND_VM_JMP(opline); -} - -ZEND_VM_HANDLER(45, ZEND_JMPZNZ, CONST|TMPVAR|CV, JMP_ADDR, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - - val = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (EXPECTED(Z_TYPE_INFO_P(val) == IS_TRUE)) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - FREE_OP1(); - ZEND_VM_JMP(opline); -} - -ZEND_VM_COLD_CONST_HANDLER(46, ZEND_JMPZ_EX, CONST|TMPVAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - int ret; - - val = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - FREE_OP1(); - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline++; - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } - ZEND_VM_JMP(opline); -} - -ZEND_VM_COLD_CONST_HANDLER(47, ZEND_JMPNZ_EX, CONST|TMPVAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - int ret; - - val = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - FREE_OP1(); - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline++; - } - ZEND_VM_JMP(opline); -} - -ZEND_VM_HANDLER(70, ZEND_FREE, TMPVAR, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - zval_ptr_dtor_nogc(EX_VAR(opline->op1.var)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(127, ZEND_FE_FREE, TMPVAR, ANY) -{ - zval *var; - USE_OPLINE - - SAVE_OPLINE(); - var = EX_VAR(opline->op1.var); - if (Z_TYPE_P(var) != IS_ARRAY && Z_FE_ITER_P(var) != (uint32_t)-1) { - zend_hash_iterator_del(Z_FE_ITER_P(var)); - } - zval_ptr_dtor_nogc(var); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(53, ZEND_FAST_CONCAT, CONST|TMPVAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if ((OP1_TYPE == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (OP2_TYPE == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (OP1_TYPE != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (OP2_TYPE == IS_CONST || OP2_TYPE == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (OP2_TYPE != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (OP1_TYPE != IS_CONST && OP1_TYPE != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if (OP2_TYPE == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if (OP1_TYPE != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (OP2_TYPE == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if (OP2_TYPE != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (OP1_TYPE != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if (OP2_TYPE != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - FREE_OP1(); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(54, ZEND_ROPE_INIT, UNUSED, CONST|TMPVAR|CV, NUM) -{ - USE_OPLINE - zend_free_op free_op2; - zend_string **rope; - zval *var; - - /* Compiler allocates the necessary number of zval slots to keep the rope */ - rope = (zend_string**)EX_VAR(opline->result.var); - if (OP2_TYPE == IS_CONST) { - var = GET_OP2_ZVAL_PTR(BP_VAR_R); - rope[0] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (OP2_TYPE == IS_CV) { - rope[0] = zend_string_copy(Z_STR_P(var)); - } else { - rope[0] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[0] = zval_get_string_func(var); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(55, ZEND_ROPE_ADD, TMP, CONST|TMPVAR|CV, NUM) -{ - USE_OPLINE - zend_free_op free_op2; - zend_string **rope; - zval *var; - - /* op1 and result are the same */ - rope = (zend_string**)EX_VAR(opline->op1.var); - if (OP2_TYPE == IS_CONST) { - var = GET_OP2_ZVAL_PTR(BP_VAR_R); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (OP2_TYPE == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(56, ZEND_ROPE_END, TMP, CONST|TMPVAR|CV, NUM) -{ - USE_OPLINE - zend_free_op free_op2; - zend_string **rope; - zval *var, *ret; - uint32_t i; - size_t len = 0; - char *target; - - rope = (zend_string**)EX_VAR(opline->op1.var); - if (OP2_TYPE == IS_CONST) { - var = GET_OP2_ZVAL_PTR(BP_VAR_R); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (OP2_TYPE == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - FREE_OP2(); - if (UNEXPECTED(EG(exception))) { - for (i = 0; i <= opline->extended_value; i++) { - zend_string_release_ex(rope[i], 0); - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - for (i = 0; i <= opline->extended_value; i++) { - len += ZSTR_LEN(rope[i]); - } - ret = EX_VAR(opline->result.var); - ZVAL_STR(ret, zend_string_alloc(len, 0)); - target = Z_STRVAL_P(ret); - for (i = 0; i <= opline->extended_value; i++) { - memcpy(target, ZSTR_VAL(rope[i]), ZSTR_LEN(rope[i])); - target += ZSTR_LEN(rope[i]); - zend_string_release_ex(rope[i], 0); - } - *target = '\0'; - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(109, ZEND_FETCH_CLASS, UNUSED|CLASS_FETCH, CONST|TMPVAR|UNUSED|CV, CACHE_SLOT) -{ - zend_free_op free_op2; - zval *class_name; - USE_OPLINE - - SAVE_OPLINE(); - if (OP2_TYPE == IS_UNUSED) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->op1.num); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else if (OP2_TYPE == IS_CONST) { - zend_class_entry *ce = CACHED_PTR(opline->extended_value); - - if (UNEXPECTED(ce == NULL)) { - class_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - ce = zend_fetch_class_by_name(Z_STR_P(class_name), Z_STR_P(class_name + 1), opline->op1.num); - CACHE_PTR(opline->extended_value, ce); - } - Z_CE_P(EX_VAR(opline->result.var)) = ce; - } else { - class_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); -ZEND_VM_C_LABEL(try_class_name): - if (Z_TYPE_P(class_name) == IS_OBJECT) { - Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name); - } else if (Z_TYPE_P(class_name) == IS_STRING) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->op1.num); - } else if ((OP2_TYPE & (IS_VAR|IS_CV)) && Z_TYPE_P(class_name) == IS_REFERENCE) { - class_name = Z_REFVAL_P(class_name); - ZEND_VM_C_GOTO(try_class_name); - } else { - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(class_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Class name must be a valid object or a string"); - } - } - - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_OBJ_HANDLER(112, ZEND_INIT_METHOD_CALL, CONST|TMPVAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, NUM|CACHE_SLOT) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1, free_op2; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = GET_OP1_OBJ_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - if (OP2_TYPE != IS_CONST) { - function_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - } - - if (OP2_TYPE != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((OP2_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - FREE_OP1(); - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - FREE_OP2(); - FREE_OP1(); - HANDLE_EXCEPTION(); - } while (0); - } - - if (OP1_TYPE != IS_UNUSED) { - do { - if (OP1_TYPE == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (OP2_TYPE != IS_CONST) { - FREE_OP2(); - } - HANDLE_EXCEPTION(); - } - } - if (OP2_TYPE == IS_CONST) { - function_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - } - zend_invalid_method_call(object, function_name); - FREE_OP2(); - FREE_OP1(); - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (OP2_TYPE == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (OP2_TYPE == IS_CONST) { - function_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((OP2_TYPE == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - FREE_OP2(); - FREE_OP1(); - HANDLE_EXCEPTION(); - } - if (OP2_TYPE == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((OP1_TYPE & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (OP2_TYPE != IS_CONST) { - FREE_OP2(); - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - FREE_OP1(); - - if ((OP1_TYPE & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (OP1_TYPE & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (OP1_TYPE == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - FREE_OP1(); - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, UNUSED|CLASS_FETCH|CONST|VAR, CONST|TMPVAR|UNUSED|CONSTRUCTOR|CV, NUM|CACHE_SLOT) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (OP1_TYPE == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - FREE_UNFETCHED_OP2(); - HANDLE_EXCEPTION(); - } - if (OP2_TYPE != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (OP1_TYPE == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - FREE_UNFETCHED_OP2(); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (OP1_TYPE == IS_CONST && - OP2_TYPE == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (OP1_TYPE != IS_CONST && - OP2_TYPE == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (OP2_TYPE != IS_UNUSED) { - zend_free_op free_op2; - - function_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP2_TYPE != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (OP2_TYPE & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - FREE_OP2(); - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((OP2_TYPE == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - FREE_OP2(); - HANDLE_EXCEPTION(); - } - if (OP2_TYPE == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (OP2_TYPE != IS_CONST) { - FREE_OP2(); - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - ZEND_VM_C_GOTO(check_parent_and_self); - } - } else { -ZEND_VM_C_LABEL(check_parent_and_self): - /* previous opcode is ZEND_FETCH_CLASS */ - if (OP1_TYPE == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(59, ZEND_INIT_FCALL_BY_NAME, ANY, CONST, NUM|CACHE_SLOT) -{ - USE_OPLINE - zend_function *fbc; - zval *function_name, *func; - zend_execute_data *call; - - fbc = CACHED_PTR(opline->result.num); - if (UNEXPECTED(fbc == NULL)) { - function_name = (zval*)RT_CONSTANT(opline, opline->op2); - func = zend_hash_find_ex(EG(function_table), Z_STR_P(function_name+1), 1); - if (UNEXPECTED(func == NULL)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_undefined_function_helper); - } - fbc = Z_FUNC_P(func); - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - CACHE_PTR(opline->result.num, fbc); - } - call = _zend_vm_stack_push_call_frame(ZEND_CALL_NESTED_FUNCTION, - fbc, opline->extended_value, NULL); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(128, ZEND_INIT_DYNAMIC_CALL, ANY, CONST|TMPVAR|CV, NUM) -{ - USE_OPLINE - zend_free_op free_op2; - zval *function_name; - zend_execute_data *call; - - SAVE_OPLINE(); - function_name = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - -ZEND_VM_C_LABEL(try_function_name): - if (OP2_TYPE != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - call = zend_init_dynamic_call_string(Z_STR_P(function_name), opline->extended_value); - } else if (OP2_TYPE != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_OBJECT)) { - call = zend_init_dynamic_call_object(function_name, opline->extended_value); - } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY)) { - call = zend_init_dynamic_call_array(Z_ARRVAL_P(function_name), opline->extended_value); - } else if ((OP2_TYPE & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(function_name) == IS_REFERENCE)) { - function_name = Z_REFVAL_P(function_name); - ZEND_VM_C_GOTO(try_function_name); - } else { - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - call = NULL; - } - - FREE_OP2(); - if (UNEXPECTED(!call)) { - HANDLE_EXCEPTION(); - } - - if (OP2_TYPE & (IS_VAR|IS_TMP_VAR)) { - if (UNEXPECTED(EG(exception))) { - if (call) { - if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) { - zend_string_release_ex(call->func->common.function_name, 0); - zend_free_trampoline(call->func); - } - zend_vm_stack_free_call_frame(call); - } - HANDLE_EXCEPTION(); - } - } - - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(118, ZEND_INIT_USER_CALL, CONST, CONST|TMPVAR|CV, NUM) -{ - USE_OPLINE - zend_free_op free_op2; - zval *function_name; - zend_fcall_info_cache fcc; - char *error = NULL; - zend_function *func; - void *object_or_called_scope; - zend_execute_data *call; - uint32_t call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_DYNAMIC; - - SAVE_OPLINE(); - function_name = GET_OP2_ZVAL_PTR(BP_VAR_R); - if (zend_is_callable_ex(function_name, NULL, 0, NULL, &fcc, &error)) { - func = fcc.function_handler; - if (error) { - efree(error); - /* This is the only soft error is_callable() can generate */ - zend_non_static_method_call(func); - if (UNEXPECTED(EG(exception) != NULL)) { - FREE_OP2(); - HANDLE_EXCEPTION(); - } - } - object_or_called_scope = fcc.called_scope; - if (func->common.fn_flags & ZEND_ACC_CLOSURE) { - /* Delay closure destruction until its invocation */ - GC_ADDREF(ZEND_CLOSURE_OBJECT(func)); - call_info |= ZEND_CALL_CLOSURE; - if (func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE) { - call_info |= ZEND_CALL_FAKE_CLOSURE; - } - if (fcc.object) { - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_HAS_THIS; - } - } else if (fcc.object) { - GC_ADDREF(fcc.object); /* For $this pointer */ - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS; - } - - FREE_OP2(); - if ((OP2_TYPE & (IS_TMP_VAR|IS_VAR)) && UNEXPECTED(EG(exception))) { - if (call_info & ZEND_CALL_CLOSURE) { - zend_object_release(ZEND_CLOSURE_OBJECT(func)); - } else if (call_info & ZEND_CALL_RELEASE_THIS) { - zend_object_release(fcc.object); - } - HANDLE_EXCEPTION(); - } - - if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&func->op_array))) { - init_func_run_time_cache(&func->op_array); - } - } else { - zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(RT_CONSTANT(opline, opline->op1)), error); - efree(error); - FREE_OP2(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - func = (zend_function*)&zend_pass_function; - object_or_called_scope = NULL; - } - - call = zend_vm_stack_push_call_frame(call_info, - func, opline->extended_value, object_or_called_scope); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(69, ZEND_INIT_NS_FCALL_BY_NAME, ANY, CONST, NUM|CACHE_SLOT) -{ - USE_OPLINE - zval *func_name; - zval *func; - zend_function *fbc; - zend_execute_data *call; - - fbc = CACHED_PTR(opline->result.num); - if (UNEXPECTED(fbc == NULL)) { - func_name = (zval *)RT_CONSTANT(opline, opline->op2); - func = zend_hash_find_ex(EG(function_table), Z_STR_P(func_name + 1), 1); - if (func == NULL) { - func = zend_hash_find_ex(EG(function_table), Z_STR_P(func_name + 2), 1); - if (UNEXPECTED(func == NULL)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_undefined_function_helper); - } - } - fbc = Z_FUNC_P(func); - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - CACHE_PTR(opline->result.num, fbc); - } - - call = _zend_vm_stack_push_call_frame(ZEND_CALL_NESTED_FUNCTION, - fbc, opline->extended_value, NULL); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(61, ZEND_INIT_FCALL, NUM, CONST, NUM|CACHE_SLOT) -{ - USE_OPLINE - zval *fname; - zval *func; - zend_function *fbc; - zend_execute_data *call; - - fbc = CACHED_PTR(opline->result.num); - if (UNEXPECTED(fbc == NULL)) { - fname = (zval*)RT_CONSTANT(opline, opline->op2); - func = zend_hash_find_ex(EG(function_table), Z_STR_P(fname), 1); - if (UNEXPECTED(func == NULL)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_undefined_function_helper); - } - fbc = Z_FUNC_P(func); - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - CACHE_PTR(opline->result.num, fbc); - } - - call = _zend_vm_stack_push_call_frame_ex( - opline->op1.num, ZEND_CALL_NESTED_FUNCTION, - fbc, opline->extended_value, NULL); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(129, ZEND_DO_ICALL, ANY, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - zval retval; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - ret = RETURN_VALUE_USED(opline) ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - fbc->internal_function.handler(call, ret); - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - zend_vm_stack_free_args(call); - zend_vm_stack_free_call_frame(call); - - if (!RETURN_VALUE_USED(opline)) { - i_zval_ptr_dtor(ret); - } - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -ZEND_VM_HOT_HANDLER(130, ZEND_DO_UCALL, ANY, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - ret = NULL; - if (RETURN_VALUE_USED(opline)) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - LOAD_OPLINE_EX(); - - ZEND_VM_ENTER_EX(); -} - -ZEND_VM_HOT_HANDLER(131, ZEND_DO_FCALL_BY_NAME, ANY, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - ret = NULL; - if (RETURN_VALUE_USED(opline)) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - LOAD_OPLINE_EX(); - - ZEND_VM_ENTER_EX(); - } else { - zval retval; - ZEND_ASSERT(fbc->type == ZEND_INTERNAL_FUNCTION); - - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) { - zend_deprecated_function(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - if (!RETURN_VALUE_USED(opline)) { - ret = &retval; - ZVAL_UNDEF(ret); - } - ZEND_VM_C_GOTO(fcall_by_name_end); - } - } - - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - UNDEF_RESULT(); - if (!RETURN_VALUE_USED(opline)) { - ret = &retval; - ZVAL_UNDEF(ret); - } - ZEND_VM_C_GOTO(fcall_by_name_end); - } - - ret = RETURN_VALUE_USED(opline) ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - fbc->internal_function.handler(call, ret); - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - -ZEND_VM_C_LABEL(fcall_by_name_end): - zend_vm_stack_free_args(call); - zend_vm_stack_free_call_frame(call); - - if (!RETURN_VALUE_USED(opline)) { - i_zval_ptr_dtor(ret); - } - } - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -ZEND_VM_HOT_HANDLER(60, ZEND_DO_FCALL, ANY, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - zval retval; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) { - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) { - zend_abstract_method(fbc); -ZEND_VM_C_LABEL(fcall_except): - UNDEF_RESULT(); - if (!RETURN_VALUE_USED(opline)) { - ret = &retval; - ZVAL_UNDEF(ret); - } - ZEND_VM_C_GOTO(fcall_end); - } else { - zend_deprecated_function(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - ZEND_VM_C_GOTO(fcall_except); - } - } - } - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - ret = NULL; - if (RETURN_VALUE_USED(opline)) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 1 EXECUTE_DATA_CC); - - if (EXPECTED(zend_execute_ex == execute_ex)) { - LOAD_OPLINE_EX(); - ZEND_VM_ENTER_EX(); - } else { - SAVE_OPLINE_EX(); - execute_data = EX(prev_execute_data); - LOAD_OPLINE(); - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - } - } else if (EXPECTED(fbc->type < ZEND_USER_FUNCTION)) { - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - ZEND_VM_C_GOTO(fcall_except); - } - - ret = RETURN_VALUE_USED(opline) ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - if (!zend_execute_internal) { - /* saves one function call if zend_execute_internal is not used */ - fbc->internal_function.handler(call, ret); - } else { - zend_execute_internal(call, ret); - } - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - -ZEND_VM_C_LABEL(fcall_end): - zend_vm_stack_free_args(call); - if (!RETURN_VALUE_USED(opline)) { - i_zval_ptr_dtor(ret); - } - } else { /* ZEND_OVERLOADED_FUNCTION */ - ret = RETURN_VALUE_USED(opline) ? EX_VAR(opline->result.var) : &retval; - - call->prev_execute_data = execute_data; - - if (UNEXPECTED(!zend_do_fcall_overloaded(call, ret))) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (!RETURN_VALUE_USED(opline)) { - zval_ptr_dtor(ret); - } - } - - if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(call->This)); - } - - zend_vm_stack_free_call_frame(call); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -ZEND_VM_COLD_CONST_HANDLER(124, ZEND_VERIFY_RETURN_TYPE, CONST|TMP|VAR|UNUSED|CV, UNUSED|CACHE_SLOT) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (OP1_TYPE == IS_UNUSED) { - zend_verify_missing_return_type(EX(func), CACHE_ADDR(opline->op2.num)); - } else { -/* prevents "undefined variable opline" errors */ -#if !ZEND_VM_SPEC || (OP1_TYPE != IS_UNUSED) - zval *retval_ref, *retval_ptr; - zend_free_op free_op1; - zend_arg_info *ret_info = EX(func)->common.arg_info - 1; - - retval_ref = retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - - if (OP1_TYPE == IS_CONST) { - ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr); - retval_ref = retval_ptr = EX_VAR(opline->result.var); - } else if (OP1_TYPE == IS_VAR) { - if (UNEXPECTED(Z_TYPE_P(retval_ptr) == IS_INDIRECT)) { - retval_ptr = Z_INDIRECT_P(retval_ptr); - } - ZVAL_DEREF(retval_ptr); - } else if (OP1_TYPE == IS_CV) { - ZVAL_DEREF(retval_ptr); - } - - if (UNEXPECTED(!ZEND_TYPE_IS_CLASS(ret_info->type) - && ZEND_TYPE_CODE(ret_info->type) != IS_CALLABLE - && ZEND_TYPE_CODE(ret_info->type) != IS_ITERABLE - && !ZEND_SAME_FAKE_TYPE(ZEND_TYPE_CODE(ret_info->type), Z_TYPE_P(retval_ptr)) - && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) - && retval_ref != retval_ptr) - ) { - /* A cast might happen - unwrap the reference if this is a by-value return */ - if (Z_REFCOUNT_P(retval_ref) == 1) { - ZVAL_UNREF(retval_ref); - } else { - Z_DELREF_P(retval_ref); - ZVAL_COPY(retval_ref, retval_ptr); - } - retval_ptr = retval_ref; - } - zend_verify_return_type(EX(func), retval_ptr, CACHE_ADDR(opline->op2.num)); -#endif - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_INLINE_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - return_value = EX(return_value); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (OP1_TYPE & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((OP1_TYPE & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (OP1_TYPE == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (OP1_TYPE == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper); -} - -ZEND_VM_COLD_CONST_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY, SRC) -{ - USE_OPLINE - zval *retval_ptr; - zend_free_op free_op1; - - SAVE_OPLINE(); - - do { - if ((OP1_TYPE & (IS_CONST|IS_TMP_VAR)) || - (OP1_TYPE == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) { - /* Not supposed to happen, but we'll allow it */ - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - - retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - if (!EX(return_value)) { - FREE_OP1(); - } else { - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISREF_P(retval_ptr))) { - ZVAL_COPY_VALUE(EX(return_value), retval_ptr); - break; - } - - ZVAL_NEW_REF(EX(return_value), retval_ptr); - if (OP1_TYPE == IS_CONST) { - Z_TRY_ADDREF_P(retval_ptr); - } - } - break; - } - - retval_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W); - - if (OP1_TYPE == IS_VAR) { - ZEND_ASSERT(retval_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION && !Z_ISREF_P(retval_ptr)) { - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - if (EX(return_value)) { - ZVAL_NEW_REF(EX(return_value), retval_ptr); - } else { - FREE_OP1_VAR_PTR(); - } - break; - } - } - - if (EX(return_value)) { - if (Z_ISREF_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } else { - ZVAL_MAKE_REF_EX(retval_ptr, 2); - } - ZVAL_REF(EX(return_value), Z_REF_P(retval_ptr)); - } - - FREE_OP1_VAR_PTR(); - } while (0); - - ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper); -} - -ZEND_VM_HANDLER(139, ZEND_GENERATOR_CREATE, ANY, ANY) -{ - zval *return_value = EX(return_value); - - if (EXPECTED(return_value)) { - USE_OPLINE - zend_generator *generator; - zend_execute_data *gen_execute_data; - uint32_t num_args, used_stack, call_info; - - object_init_ex(return_value, zend_ce_generator); - - /* - * Normally the execute_data is allocated on the VM stack (because it does - * not actually do any allocation and thus is faster). For generators - * though this behavior would be suboptimal, because the (rather large) - * structure would have to be copied back and forth every time execution is - * suspended or resumed. That's why for generators the execution context - * is allocated on heap. - */ - num_args = EX_NUM_ARGS(); - if (EXPECTED(num_args <= EX(func)->op_array.num_args)) { - used_stack = (ZEND_CALL_FRAME_SLOT + EX(func)->op_array.last_var + EX(func)->op_array.T) * sizeof(zval); - gen_execute_data = (zend_execute_data*)emalloc(used_stack); - used_stack = (ZEND_CALL_FRAME_SLOT + EX(func)->op_array.last_var) * sizeof(zval); - } else { - used_stack = (ZEND_CALL_FRAME_SLOT + num_args + EX(func)->op_array.last_var + EX(func)->op_array.T - EX(func)->op_array.num_args) * sizeof(zval); - gen_execute_data = (zend_execute_data*)emalloc(used_stack); - } - memcpy(gen_execute_data, execute_data, used_stack); - - /* Save execution context in generator object. */ - generator = (zend_generator *) Z_OBJ_P(EX(return_value)); - generator->execute_data = gen_execute_data; - generator->frozen_call_stack = NULL; - generator->execute_fake.opline = NULL; - generator->execute_fake.func = NULL; - generator->execute_fake.prev_execute_data = NULL; - ZVAL_OBJ(&generator->execute_fake.This, (zend_object *) generator); - - gen_execute_data->opline = opline + 1; - /* EX(return_value) keeps pointer to zend_object (not a real zval) */ - gen_execute_data->return_value = (zval*)generator; - call_info = Z_TYPE_INFO(EX(This)); - if ((call_info & Z_TYPE_MASK) == IS_OBJECT - && (!(call_info & (ZEND_CALL_CLOSURE|ZEND_CALL_RELEASE_THIS)) - /* Bug #72523 */ - || UNEXPECTED(zend_execute_ex != execute_ex))) { - ZEND_ADD_CALL_FLAG_EX(call_info, ZEND_CALL_RELEASE_THIS); - Z_ADDREF(gen_execute_data->This); - } - ZEND_ADD_CALL_FLAG_EX(call_info, (ZEND_CALL_TOP_FUNCTION | ZEND_CALL_ALLOCATED | ZEND_CALL_GENERATOR)); - Z_TYPE_INFO(gen_execute_data->This) = call_info; - gen_execute_data->prev_execute_data = NULL; - - call_info = EX_CALL_INFO(); - EG(current_execute_data) = EX(prev_execute_data); - if (EXPECTED(!(call_info & (ZEND_CALL_TOP|ZEND_CALL_ALLOCATED)))) { - EG(vm_stack_top) = (zval*)execute_data; - execute_data = EX(prev_execute_data); - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED(!(call_info & ZEND_CALL_TOP))) { - zend_execute_data *old_execute_data = execute_data; - execute_data = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else { - ZEND_VM_RETURN(); - } - } else { - ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper); - } -} - -ZEND_VM_HANDLER(161, ZEND_GENERATOR_RETURN, CONST|TMP|VAR|CV, ANY) -{ - USE_OPLINE - zval *retval; - zend_free_op free_op1; - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - retval = GET_OP1_ZVAL_PTR(BP_VAR_R); - - /* Copy return value into generator->retval */ - if ((OP1_TYPE & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(&generator->retval, retval); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->retval))) { - Z_ADDREF(generator->retval); - } - } - } else if (OP1_TYPE == IS_CV) { - ZVAL_COPY_DEREF(&generator->retval, retval); - } else /* if (OP1_TYPE == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_refcounted *ref = Z_COUNTED_P(retval); - - retval = Z_REFVAL_P(retval); - ZVAL_COPY_VALUE(&generator->retval, retval); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval)) { - Z_ADDREF_P(retval); - } - } else { - ZVAL_COPY_VALUE(&generator->retval, retval); - } - } - - /* Close the generator to free up resources */ - zend_generator_close(generator, 1); - - /* Pass execution back to handling code */ - ZEND_VM_RETURN(); -} - -ZEND_VM_COLD_CONST_HANDLER(108, ZEND_THROW, CONST|TMP|VAR|CV, ANY) -{ - USE_OPLINE - zval *value; - zend_free_op free_op1; - - SAVE_OPLINE(); - value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - do { - if (OP1_TYPE == IS_CONST || UNEXPECTED(Z_TYPE_P(value) != IS_OBJECT)) { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_OBJECT)) { - break; - } - } - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Can only throw objects"); - FREE_OP1(); - HANDLE_EXCEPTION(); - } - } while (0); - - zend_exception_save(); - if (OP1_TYPE != IS_TMP_VAR) { - Z_TRY_ADDREF_P(value); - } - - zend_throw_exception_object(value); - zend_exception_restore(); - FREE_OP1_IF_VAR(); - HANDLE_EXCEPTION(); -} - -ZEND_VM_HANDLER(107, ZEND_CATCH, CONST, JMP_ADDR, LAST_CATCH|CACHE_SLOT) -{ - USE_OPLINE - zend_class_entry *ce, *catch_ce; - zend_object *exception; - zval *ex; - - SAVE_OPLINE(); - /* Check whether an exception has been thrown, if not, jump over code */ - zend_exception_restore(); - if (EG(exception) == NULL) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - catch_ce = CACHED_PTR(opline->extended_value & ~ZEND_LAST_CATCH); - if (UNEXPECTED(catch_ce == NULL)) { - catch_ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - - CACHE_PTR(opline->extended_value & ~ZEND_LAST_CATCH, catch_ce); - } - ce = EG(exception)->ce; - -#ifdef HAVE_DTRACE - if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) { - DTRACE_EXCEPTION_CAUGHT((char *)ce->name); - } -#endif /* HAVE_DTRACE */ - - if (ce != catch_ce) { - if (!catch_ce || !instanceof_function(ce, catch_ce)) { - if (opline->extended_value & ZEND_LAST_CATCH) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - } - - exception = EG(exception); - ex = EX_VAR(opline->result.var); - { - /* Always perform a strict assignment. There is a reasonable expectation that if you - * write "catch (Exception $e)" then $e will actually be instanceof Exception. As such, - * we should not permit coercion to string here. */ - zval tmp; - ZVAL_OBJ(&tmp, exception); - EG(exception) = NULL; - zend_assign_to_variable(ex, &tmp, IS_TMP_VAR, /* strict */ 1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -ZEND_VM_HOT_HANDLER(65, ZEND_SEND_VAL, CONST|TMPVAR, NUM) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - - value = GET_OP1_ZVAL_PTR(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_HELPER(zend_cannot_pass_by_ref_helper, ANY, ANY) -{ - USE_OPLINE - zval *arg; - uint32_t arg_num = opline->op2.num; - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot pass parameter %d by reference", arg_num); - FREE_UNFETCHED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_UNDEF(arg); - HANDLE_EXCEPTION(); -} - -ZEND_VM_HOT_SEND_HANDLER(116, ZEND_SEND_VAL_EX, CONST|TMP, NUM, SPEC(QUICK_ARG)) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(arg_num <= MAX_ARG_FLAG_NUM)) { - if (QUICK_ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_C_GOTO(send_val_by_ref); - } - } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -ZEND_VM_C_LABEL(send_val_by_ref): - ZEND_VM_DISPATCH_TO_HELPER(zend_cannot_pass_by_ref_helper); - } - value = GET_OP1_ZVAL_PTR(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(117, ZEND_SEND_VAR, VAR|CV, NUM) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - - varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (OP1_TYPE == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (OP1_TYPE == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR, NUM) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varptr, *arg; - - varptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr))) { - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - ZVAL_NEW_REF(arg, arg); - zend_error(E_NOTICE, "Only variables should be passed by reference"); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_SEND_HANDLER(50, ZEND_SEND_VAR_NO_REF_EX, VAR, NUM, SPEC(QUICK_ARG)) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varptr, *arg; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(arg_num <= MAX_ARG_FLAG_NUM)) { - if (!QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_VAR); - } - - varptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr) || - QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { - ZEND_VM_NEXT_OPCODE(); - } - } else { - if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_VAR); - } - - varptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr) || - ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - ZVAL_NEW_REF(arg, arg); - zend_error(E_NOTICE, "Only variables should be passed by reference"); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(67, ZEND_SEND_REF, VAR|CV, NUM) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varptr, *arg; - - SAVE_OPLINE(); - varptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W); - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - if (OP1_TYPE == IS_VAR && UNEXPECTED(Z_ISERROR_P(varptr))) { - ZVAL_NEW_EMPTY_REF(arg); - ZVAL_NULL(Z_REFVAL_P(arg)); - ZEND_VM_NEXT_OPCODE(); - } - - if (Z_ISREF_P(varptr)) { - Z_ADDREF_P(varptr); - } else { - ZVAL_MAKE_REF_EX(varptr, 2); - } - ZVAL_REF(arg, Z_REF_P(varptr)); - - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_SEND_HANDLER(66, ZEND_SEND_VAR_EX, VAR|CV, NUM, SPEC(QUICK_ARG)) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(arg_num <= MAX_ARG_FLAG_NUM)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_C_GOTO(send_var_by_ref); - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -ZEND_VM_C_LABEL(send_var_by_ref): - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_REF); - } - - varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (OP1_TYPE == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (OP1_TYPE == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_SEND_HANDLER(100, ZEND_CHECK_FUNC_ARG, UNUSED, NUM, SPEC(QUICK_ARG)) -{ - USE_OPLINE - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(arg_num <= MAX_ARG_FLAG_NUM)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } else { - ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } else { - ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(185, ZEND_SEND_FUNC_ARG, VAR, NUM) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_REF); - } - - varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(165, ZEND_SEND_UNPACK, ANY, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *args; - int arg_num; - - SAVE_OPLINE(); - args = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - arg_num = ZEND_CALL_NUM_ARGS(EX(call)) + 1; - -ZEND_VM_C_LABEL(send_again): - if (EXPECTED(Z_TYPE_P(args) == IS_ARRAY)) { - HashTable *ht = Z_ARRVAL_P(args); - zval *arg, *top; - zend_string *name; - - zend_vm_stack_extend_call_frame(&EX(call), arg_num - 1, zend_hash_num_elements(ht)); - - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_REFCOUNT_P(args) > 1) { - uint32_t i; - int separate = 0; - - /* check if any of arguments are going to be passed by reference */ - for (i = 0; i < zend_hash_num_elements(ht); i++) { - if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num + i)) { - separate = 1; - break; - } - } - if (separate) { - SEPARATE_ARRAY(args); - ht = Z_ARRVAL_P(args); - } - } - - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, name, arg) { - if (name) { - zend_throw_error(NULL, "Cannot unpack array with string keys"); - FREE_OP1(); - HANDLE_EXCEPTION(); - } - - top = ZEND_CALL_ARG(EX(call), arg_num); - if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - if (Z_ISREF_P(arg)) { - Z_ADDREF_P(arg); - ZVAL_REF(top, Z_REF_P(arg)); - } else if (OP1_TYPE & (IS_VAR|IS_CV)) { - /* array is already separated above */ - ZVAL_MAKE_REF_EX(arg, 2); - ZVAL_REF(top, Z_REF_P(arg)); - } else { - Z_TRY_ADDREF_P(arg); - ZVAL_NEW_REF(top, arg); - } - } else { - ZVAL_COPY_DEREF(top, arg); - } - - ZEND_CALL_NUM_ARGS(EX(call))++; - arg_num++; - } ZEND_HASH_FOREACH_END(); - - } else if (EXPECTED(Z_TYPE_P(args) == IS_OBJECT)) { - zend_class_entry *ce = Z_OBJCE_P(args); - zend_object_iterator *iter; - - if (!ce || !ce->get_iterator) { - zend_error(E_WARNING, "Only arrays and Traversables can be unpacked"); - } else { - - iter = ce->get_iterator(ce, args, 0); - if (UNEXPECTED(!iter)) { - FREE_OP1(); - if (!EG(exception)) { - zend_throw_exception_ex( - NULL, 0, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name) - ); - } - HANDLE_EXCEPTION(); - } - - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - } - - for (; iter->funcs->valid(iter) == SUCCESS; ++arg_num) { - zval *arg, *top; - - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - arg = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (iter->funcs->get_current_key) { - zval key; - iter->funcs->get_current_key(iter, &key); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (UNEXPECTED(Z_TYPE(key) != IS_LONG)) { - zend_throw_error(NULL, - (Z_TYPE(key) == IS_STRING) ? - "Cannot unpack Traversable with string keys" : - "Cannot unpack Traversable with non-integer keys"); - zval_ptr_dtor(&key); - break; - } - } - - if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - zend_error( - E_WARNING, "Cannot pass by-reference argument %d of %s%s%s()" - " by unpacking a Traversable, passing by-value instead", arg_num, - EX(call)->func->common.scope ? ZSTR_VAL(EX(call)->func->common.scope->name) : "", - EX(call)->func->common.scope ? "::" : "", - ZSTR_VAL(EX(call)->func->common.function_name) - ); - } - - ZVAL_DEREF(arg); - Z_TRY_ADDREF_P(arg); - - zend_vm_stack_extend_call_frame(&EX(call), arg_num - 1, 1); - top = ZEND_CALL_ARG(EX(call), arg_num); - ZVAL_COPY_VALUE(top, arg); - ZEND_CALL_NUM_ARGS(EX(call))++; - - iter->funcs->move_forward(iter); - } - - zend_iterator_dtor(iter); - } - } else if (EXPECTED(Z_ISREF_P(args))) { - args = Z_REFVAL_P(args); - ZEND_VM_C_GOTO(send_again); - } else { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(args) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_error(E_WARNING, "Only arrays and Traversables can be unpacked"); - } - - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(119, ZEND_SEND_ARRAY, ANY, ANY, NUM) -{ - USE_OPLINE - zend_free_op free_op1; - zval *args; - - SAVE_OPLINE(); - args = GET_OP1_ZVAL_PTR(BP_VAR_R); - - if (UNEXPECTED(Z_TYPE_P(args) != IS_ARRAY)) { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(args)) { - args = Z_REFVAL_P(args); - if (EXPECTED(Z_TYPE_P(args) == IS_ARRAY)) { - ZEND_VM_C_GOTO(send_array); - } - } - zend_internal_type_error(EX_USES_STRICT_TYPES(), "call_user_func_array() expects parameter 2 to be array, %s given", zend_get_type_by_const(Z_TYPE_P(args))); - if (ZEND_CALL_INFO(EX(call)) & ZEND_CALL_CLOSURE) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(call)->func)); - } else if (ZEND_CALL_INFO(EX(call)) & ZEND_CALL_RELEASE_THIS) { - OBJ_RELEASE(Z_OBJ(EX(call)->This)); - } - EX(call)->func = (zend_function*)&zend_pass_function; - Z_OBJ(EX(call)->This) = NULL; - ZEND_CALL_INFO(EX(call)) &= ~(ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS); - FREE_UNFETCHED_OP2(); - } else { - uint32_t arg_num; - HashTable *ht; - zval *arg, *param; - - -ZEND_VM_C_LABEL(send_array): - ht = Z_ARRVAL_P(args); - if (OP2_TYPE != IS_UNUSED) { - zend_free_op free_op2; - zval *op2 = GET_OP2_ZVAL_PTR(BP_VAR_R); - uint32_t skip = opline->extended_value; - uint32_t count = zend_hash_num_elements(ht); - zend_long len = zval_get_long(op2); - - if (len < 0) { - len += (zend_long)(count - skip); - } - if (skip < count && len > 0) { - if (len > (zend_long)(count - skip)) { - len = (zend_long)(count - skip); - } - zend_vm_stack_extend_call_frame(&EX(call), 0, len); - arg_num = 1; - param = ZEND_CALL_ARG(EX(call), 1); - ZEND_HASH_FOREACH_VAL(ht, arg) { - zend_bool must_wrap = 0; - if (skip > 0) { - skip--; - continue; - } else if ((zend_long)(arg_num - 1) >= len) { - break; - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - if (UNEXPECTED(!Z_ISREF_P(arg))) { - if (!ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - /* By-value send is not allowed -- emit a warning, - * but still perform the call. */ - zend_param_must_be_ref(EX(call)->func, arg_num); - must_wrap = 1; - } - } - } else { - if (Z_ISREF_P(arg) && - !(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) { - /* don't separate references for __call */ - arg = Z_REFVAL_P(arg); - } - } - if (EXPECTED(!must_wrap)) { - ZVAL_COPY(param, arg); - } else { - Z_TRY_ADDREF_P(arg); - ZVAL_NEW_REF(param, arg); - } - ZEND_CALL_NUM_ARGS(EX(call))++; - arg_num++; - param++; - } ZEND_HASH_FOREACH_END(); - } - FREE_OP2(); - } else { - zend_vm_stack_extend_call_frame(&EX(call), 0, zend_hash_num_elements(ht)); - arg_num = 1; - param = ZEND_CALL_ARG(EX(call), 1); - ZEND_HASH_FOREACH_VAL(ht, arg) { - zend_bool must_wrap = 0; - if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - if (UNEXPECTED(!Z_ISREF_P(arg))) { - if (!ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - /* By-value send is not allowed -- emit a warning, - * but still perform the call. */ - zend_param_must_be_ref(EX(call)->func, arg_num); - must_wrap = 1; - } - } - } else { - if (Z_ISREF_P(arg) && - !(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) { - /* don't separate references for __call */ - arg = Z_REFVAL_P(arg); - } - } - if (EXPECTED(!must_wrap)) { - ZVAL_COPY(param, arg); - } else { - Z_TRY_ADDREF_P(arg); - ZVAL_NEW_REF(param, arg); - } - ZEND_CALL_NUM_ARGS(EX(call))++; - arg_num++; - param++; - } ZEND_HASH_FOREACH_END(); - } - } - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(120, ZEND_SEND_USER, CONST|TMP|VAR|CV, NUM) -{ - USE_OPLINE - zval *arg, *param; - zend_free_op free_op1; - - SAVE_OPLINE(); - - if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) { - zend_param_must_be_ref(EX(call)->func, opline->op2.num); - } - - arg = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); - param = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY(param, arg); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(63, ZEND_RECV, NUM, UNUSED|CACHE_SLOT) -{ - USE_OPLINE - uint32_t arg_num = opline->op1.num; - - if (UNEXPECTED(arg_num > EX_NUM_ARGS())) { - SAVE_OPLINE(); - zend_missing_arg_error(execute_data); - HANDLE_EXCEPTION(); - } else { - zval *param = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - if (UNEXPECTED(!zend_verify_recv_arg_type(EX(func), arg_num, param, NULL, CACHE_ADDR(opline->op2.num)))) { - HANDLE_EXCEPTION(); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(64, ZEND_RECV_INIT, NUM, CONST, CACHE_SLOT) -{ - USE_OPLINE - uint32_t arg_num; - zval *param; - - ZEND_VM_REPEATABLE_OPCODE - - arg_num = opline->op1.num; - param = EX_VAR(opline->result.var); - if (arg_num > EX_NUM_ARGS()) { - zval *default_value = RT_CONSTANT(opline, opline->op2); - - if (Z_OPT_TYPE_P(default_value) == IS_CONSTANT_AST) { - zval *cache_val = (zval*)CACHE_ADDR(Z_CACHE_SLOT_P(default_value)); - - /* we keep in cache only not refcounted values */ - if (Z_TYPE_P(cache_val) != IS_UNDEF) { - ZVAL_COPY_VALUE(param, cache_val); - } else { - SAVE_OPLINE(); - ZVAL_COPY(param, default_value); - if (UNEXPECTED(zval_update_constant_ex(param, EX(func)->op_array.scope) != SUCCESS)) { - zval_ptr_dtor_nogc(param); - ZVAL_UNDEF(param); - HANDLE_EXCEPTION(); - } - if (!Z_REFCOUNTED_P(param)) { - ZVAL_COPY_VALUE(cache_val, param); - } - } - ZEND_VM_C_GOTO(recv_init_check_type); - } else { - ZVAL_COPY(param, default_value); - } - } else { -ZEND_VM_C_LABEL(recv_init_check_type): - if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { - zval *default_value = RT_CONSTANT(opline, opline->op2); - - SAVE_OPLINE(); - if (UNEXPECTED(!zend_verify_recv_arg_type(EX(func), arg_num, param, default_value, CACHE_ADDR(opline->extended_value)))) { - HANDLE_EXCEPTION(); - } - } - } - - ZEND_VM_REPEAT_OPCODE(ZEND_RECV_INIT); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(164, ZEND_RECV_VARIADIC, NUM, UNUSED|CACHE_SLOT) -{ - USE_OPLINE - uint32_t arg_num = opline->op1.num; - uint32_t arg_count = EX_NUM_ARGS(); - zval *params; - - SAVE_OPLINE(); - - params = EX_VAR(opline->result.var); - - if (arg_num <= arg_count) { - zval *param; - - array_init_size(params, arg_count - arg_num + 1); - zend_hash_real_init_packed(Z_ARRVAL_P(params)); - ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(params)) { - param = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T); - if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { - ZEND_ADD_CALL_FLAG(execute_data, ZEND_CALL_FREE_EXTRA_ARGS); - do { - zend_verify_variadic_arg_type(EX(func), arg_num, param, NULL, CACHE_ADDR(opline->op2.num)); - if (Z_OPT_REFCOUNTED_P(param)) Z_ADDREF_P(param); - ZEND_HASH_FILL_ADD(param); - param++; - } while (++arg_num <= arg_count); - } else { - do { - if (Z_OPT_REFCOUNTED_P(param)) Z_ADDREF_P(param); - ZEND_HASH_FILL_ADD(param); - param++; - } while (++arg_num <= arg_count); - } - } ZEND_HASH_FILL_END(); - } else { - ZVAL_EMPTY_ARRAY(params); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(52, ZEND_BOOL, CONST|TMPVAR|CV, ANY) -{ - USE_OPLINE - zval *val; - zend_free_op free_op1; - - val = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (OP1_TYPE == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val)); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HELPER(zend_case_helper, ANY, ANY, zval *op_1, zval *op_2) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (OP2_TYPE & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_HANDLER(48, ZEND_CASE, TMPVAR, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -ZEND_VM_C_LABEL(case_true): - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -ZEND_VM_C_LABEL(case_false): - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - ZEND_VM_C_GOTO(case_double); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -ZEND_VM_C_LABEL(case_double): - if (d1 == d2) { - ZEND_VM_C_GOTO(case_true); - } else { - ZEND_VM_C_GOTO(case_false); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - ZEND_VM_C_GOTO(case_double); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - FREE_OP2(); - if (result) { - ZEND_VM_C_GOTO(case_true); - } else { - ZEND_VM_C_GOTO(case_false); - } - } - } - ZEND_VM_DISPATCH_TO_HELPER(zend_case_helper, op_1, op1, op_2, op2); -} - -ZEND_VM_HANDLER(68, ZEND_NEW, UNUSED|CLASS_FETCH|CONST|VAR, UNUSED|CACHE_SLOT, NUM) -{ - USE_OPLINE - zval *result; - zend_function *constructor; - zend_class_entry *ce; - zend_execute_data *call; - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CONST) { - ce = CACHED_PTR(opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - CACHE_PTR(opline->op2.num, ce); - } - } else if (OP1_TYPE == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - result = EX_VAR(opline->result.var); - if (UNEXPECTED(object_init_ex(result, ce) != SUCCESS)) { - ZVAL_UNDEF(result); - HANDLE_EXCEPTION(); - } - - constructor = Z_OBJ_HT_P(result)->get_constructor(Z_OBJ_P(result)); - if (constructor == NULL) { - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - - /* If there are no arguments, skip over the DO_FCALL opcode. We check if the next - * opcode is DO_FCALL in case EXT instructions are used. */ - if (EXPECTED(opline->extended_value == 0 && (opline+1)->opcode == ZEND_DO_FCALL)) { - ZEND_VM_NEXT_OPCODE_EX(1, 2); - } - - /* Perform a dummy function call */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION, (zend_function *) &zend_pass_function, - opline->extended_value, NULL); - } else { - if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&constructor->op_array))) { - init_func_run_time_cache(&constructor->op_array); - } - /* We are not handling overloaded classes right now */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION | ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS, - constructor, - opline->extended_value, - Z_OBJ_P(result)); - Z_ADDREF_P(result); - } - - call->prev_execute_data = EX(call); - EX(call) = call; - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_CONST_HANDLER(110, ZEND_CLONE, CONST|TMPVAR|UNUSED|THIS|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *obj; - zend_class_entry *ce, *scope; - zend_function *clone; - zend_object_clone_obj_t clone_call; - - SAVE_OPLINE(); - obj = GET_OP1_OBJ_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - do { - if (OP1_TYPE == IS_CONST || - (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(obj)) { - obj = Z_REFVAL_P(obj); - if (EXPECTED(Z_TYPE_P(obj) == IS_OBJECT)) { - break; - } - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "__clone method called on non-object"); - FREE_OP1(); - HANDLE_EXCEPTION(); - } - } while (0); - - ce = Z_OBJCE_P(obj); - clone = ce->clone; - clone_call = Z_OBJ_HT_P(obj)->clone_obj; - if (UNEXPECTED(clone_call == NULL)) { - zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name)); - FREE_OP1(); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (clone && !(clone->common.fn_flags & ZEND_ACC_PUBLIC)) { - scope = EX(func)->op_array.scope; - if (clone->common.scope != scope) { - if (UNEXPECTED(clone->common.fn_flags & ZEND_ACC_PRIVATE) - || UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), scope))) { - zend_wrong_clone_call(clone, scope); - FREE_OP1(); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - - ZVAL_OBJ(EX_VAR(opline->result.var), clone_call(obj)); - - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(99, ZEND_FETCH_CONSTANT, UNUSED|CONST_FETCH, CONST, CACHE_SLOT) -{ - USE_OPLINE - zend_constant *c; - - c = CACHED_PTR(opline->extended_value); - if (EXPECTED(c != NULL) && EXPECTED(!IS_SPECIAL_CACHE_VAL(c))) { - ZVAL_COPY_OR_DUP(EX_VAR(opline->result.var), &c->value); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - zend_quick_get_constant(RT_CONSTANT(opline, opline->op2) + 1, opline->op1.num OPLINE_CC EXECUTE_DATA_CC); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(181, ZEND_FETCH_CLASS_CONSTANT, VAR|CONST|UNUSED|CLASS_FETCH, CONST, CACHE_SLOT) -{ - zend_class_entry *ce, *scope; - zend_class_constant *c; - zval *value, *zv; - USE_OPLINE - - SAVE_OPLINE(); - - do { - if (OP1_TYPE == IS_CONST) { - if (EXPECTED(CACHED_PTR(opline->extended_value + sizeof(void*)))) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } else if (EXPECTED(CACHED_PTR(opline->extended_value))) { - ce = CACHED_PTR(opline->extended_value); - } else { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } else { - if (OP1_TYPE == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - if (EXPECTED(CACHED_PTR(opline->extended_value) == ce)) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } - } - - zv = zend_hash_find_ex(&ce->constants_table, Z_STR_P(RT_CONSTANT(opline, opline->op2)), 1); - if (EXPECTED(zv != NULL)) { - c = Z_PTR_P(zv); - scope = EX(func)->op_array.scope; - if (!zend_verify_const_access(c, scope)) { - zend_throw_error(NULL, "Cannot access %s const %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(ce->name), Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - value = &c->value; - if (Z_TYPE_P(value) == IS_CONSTANT_AST) { - zval_update_constant_ex(value, c->ce); - if (UNEXPECTED(EG(exception) != NULL)) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - CACHE_POLYMORPHIC_PTR(opline->extended_value, ce, value); - } else { - zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } while (0); - - ZVAL_COPY_OR_DUP(EX_VAR(opline->result.var), value); - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(72, ZEND_ADD_ARRAY_ELEMENT, CONST|TMP|VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV, REF) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - FREE_OP1_VAR_PTR(); - } else { - expr_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - if (OP1_TYPE == IS_TMP_VAR) { - /* pass */ - } else if (OP1_TYPE == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (OP1_TYPE == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (OP1_TYPE == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (OP2_TYPE != IS_UNUSED) { - zend_free_op free_op2; - zval *offset = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - zend_string *str; - zend_ulong hval; - -ZEND_VM_C_LABEL(add_again): - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (OP2_TYPE != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - ZEND_VM_C_GOTO(num_index); - } - } -ZEND_VM_C_LABEL(str_index): - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -ZEND_VM_C_LABEL(num_index): - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((OP2_TYPE & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - ZEND_VM_C_GOTO(add_again); - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - ZEND_VM_C_GOTO(str_index); - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - ZEND_VM_C_GOTO(num_index); - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - ZEND_VM_C_GOTO(num_index); - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - ZEND_VM_C_GOTO(num_index); - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - ZEND_VM_C_GOTO(num_index); - } else if (OP2_TYPE == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - ZEND_VM_C_GOTO(str_index); - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - FREE_OP2(); - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(147, ZEND_ADD_ARRAY_UNPACK, ANY, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR(BP_VAR_R); - -ZEND_VM_C_LABEL(add_unpack_again): - if (EXPECTED(Z_TYPE_P(op1) == IS_ARRAY)) { - HashTable *ht = Z_ARRVAL_P(op1); - zval *val; - zend_string *key; - - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) { - if (key) { - zend_throw_error(NULL, "Cannot unpack array with string keys"); - FREE_OP1(); - HANDLE_EXCEPTION(); - } else { - if (Z_ISREF_P(val) && Z_REFCOUNT_P(val) == 1) { - val = Z_REFVAL_P(val); - } - Z_TRY_ADDREF_P(val); - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), val)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(val); - break; - } - } - } ZEND_HASH_FOREACH_END(); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_OBJECT)) { - zend_class_entry *ce = Z_OBJCE_P(op1); - zend_object_iterator *iter; - - if (!ce || !ce->get_iterator) { - zend_throw_error(NULL, "Only arrays and Traversables can be unpacked"); - } else { - iter = ce->get_iterator(ce, op1, 0); - if (UNEXPECTED(!iter)) { - FREE_OP1(); - if (!EG(exception)) { - zend_throw_exception_ex( - NULL, 0, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name) - ); - } - HANDLE_EXCEPTION(); - } - - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - } - - for (; iter->funcs->valid(iter) == SUCCESS; ) { - zval *val; - - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - val = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (iter->funcs->get_current_key) { - zval key; - iter->funcs->get_current_key(iter, &key); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (UNEXPECTED(Z_TYPE(key) != IS_LONG)) { - zend_throw_error(NULL, - (Z_TYPE(key) == IS_STRING) ? - "Cannot unpack Traversable with string keys" : - "Cannot unpack Traversable with non-integer keys"); - zval_ptr_dtor(&key); - break; - } - } - - ZVAL_DEREF(val); - Z_TRY_ADDREF_P(val); - - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), val)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(val); - } - - iter->funcs->move_forward(iter); - } - - zend_iterator_dtor(iter); - } - } else if (EXPECTED(Z_ISREF_P(op1))) { - op1 = Z_REFVAL_P(op1); - ZEND_VM_C_GOTO(add_unpack_again); - } else { - zend_throw_error(NULL, "Only arrays and Traversables can be unpacked"); - } - - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(71, ZEND_INIT_ARRAY, CONST|TMP|VAR|CV|UNUSED, CONST|TMPVAR|UNUSED|NEXT|CV, ARRAY_INIT|REF) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (OP1_TYPE != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_ADD_ARRAY_ELEMENT); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_COLD_CONST_HANDLER(51, ZEND_CAST, CONST|TMP|VAR|CV, ANY, TYPE) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr; - zval *result = EX_VAR(opline->result.var); - HashTable *ht; - - SAVE_OPLINE(); - expr = GET_OP1_ZVAL_PTR(BP_VAR_R); - - switch (opline->extended_value) { - case IS_NULL: - ZVAL_NULL(result); - break; - case _IS_BOOL: - ZVAL_BOOL(result, zend_is_true(expr)); - break; - case IS_LONG: - ZVAL_LONG(result, zval_get_long(expr)); - break; - case IS_DOUBLE: - ZVAL_DOUBLE(result, zval_get_double(expr)); - break; - case IS_STRING: - ZVAL_STR(result, zval_get_string(expr)); - break; - default: - if (OP1_TYPE & (IS_VAR|IS_CV)) { - ZVAL_DEREF(expr); - } - /* If value is already of correct type, return it directly */ - if (Z_TYPE_P(expr) == opline->extended_value) { - ZVAL_COPY_VALUE(result, expr); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (OP1_TYPE != IS_TMP_VAR) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } - - FREE_OP1_IF_VAR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (opline->extended_value == IS_ARRAY) { - if (OP1_TYPE == IS_CONST || Z_TYPE_P(expr) != IS_OBJECT || Z_OBJCE_P(expr) == zend_ce_closure) { - if (Z_TYPE_P(expr) != IS_NULL) { - ZVAL_ARR(result, zend_new_array(1)); - expr = zend_hash_index_add_new(Z_ARRVAL_P(result), 0, expr); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } else { - ZVAL_EMPTY_ARRAY(result); - } - } else { - HashTable *obj_ht = zend_get_properties_for(expr, ZEND_PROP_PURPOSE_ARRAY_CAST); - if (obj_ht) { - /* fast copy */ - ZVAL_ARR(result, zend_proptable_to_symtable(obj_ht, - (Z_OBJCE_P(expr)->default_properties_count || - Z_OBJ_P(expr)->handlers != &std_object_handlers || - GC_IS_RECURSIVE(obj_ht)))); - zend_release_properties(obj_ht); - } else { - ZVAL_EMPTY_ARRAY(result); - } - } - } else { - ZVAL_OBJ(result, zend_objects_new(zend_standard_class_def)); - if (Z_TYPE_P(expr) == IS_ARRAY) { - ht = zend_symtable_to_proptable(Z_ARR_P(expr)); - if (GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) { - /* TODO: try not to duplicate immutable arrays as well ??? */ - ht = zend_array_dup(ht); - } - Z_OBJ_P(result)->properties = ht; - } else if (Z_TYPE_P(expr) != IS_NULL) { - Z_OBJ_P(result)->properties = ht = zend_new_array(1); - expr = zend_hash_add_new(ht, ZSTR_KNOWN(ZEND_STR_SCALAR), expr); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } - } - } - - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMPVAR|CV, ANY, EVAL) -{ - USE_OPLINE - zend_op_array *new_op_array; - zend_free_op free_op1; - zval *inc_filename; - - SAVE_OPLINE(); - inc_filename = GET_OP1_ZVAL_PTR(BP_VAR_R); - new_op_array = zend_include_or_eval(inc_filename, opline->extended_value); - FREE_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (new_op_array != ZEND_FAKE_OP_ARRAY && new_op_array != NULL) { - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else if (new_op_array == ZEND_FAKE_OP_ARRAY) { - if (RETURN_VALUE_USED(opline)) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } - } else if (EXPECTED(new_op_array != NULL)) { - zval *return_value = NULL; - zend_execute_data *call; - - if (RETURN_VALUE_USED(opline)) { - return_value = EX_VAR(opline->result.var); - } - - new_op_array->scope = EX(func)->op_array.scope; - - call = zend_vm_stack_push_call_frame( - (Z_TYPE_INFO(EX(This)) & ZEND_CALL_HAS_THIS) | ZEND_CALL_NESTED_CODE | ZEND_CALL_HAS_SYMBOL_TABLE, - (zend_function*)new_op_array, 0, - Z_PTR(EX(This))); - - if (EX_CALL_INFO() & ZEND_CALL_HAS_SYMBOL_TABLE) { - call->symbol_table = EX(symbol_table); - } else { - call->symbol_table = zend_rebuild_symbol_table(); - } - - call->prev_execute_data = execute_data; - i_init_code_execute_data(call, new_op_array, return_value); - if (EXPECTED(zend_execute_ex == execute_ex)) { - ZEND_VM_ENTER(); - } else { - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - zend_vm_stack_free_call_frame(call); - } - - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else if (RETURN_VALUE_USED(opline)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(153, ZEND_UNSET_CV, CV, UNUSED) -{ - USE_OPLINE - zval *var = EX_VAR(opline->op1.var); - - if (Z_REFCOUNTED_P(var)) { - zend_refcounted *garbage = Z_COUNTED_P(var); - - ZVAL_UNDEF(var); - SAVE_OPLINE(); - if (!GC_DELREF(garbage)) { - rc_dtor_func(garbage); - } else { - gc_check_possible_root(garbage); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZVAL_UNDEF(var); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(74, ZEND_UNSET_VAR, CONST|TMPVAR|CV, UNUSED, VAR_FETCH) -{ - USE_OPLINE - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - zend_free_op free_op1; - - SAVE_OPLINE(); - - varname = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (OP1_TYPE == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - varname = ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - FREE_OP1(); - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - zend_hash_del_ind(target_symbol_table, name); - - if (OP1_TYPE != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_COLD_HANDLER(179, ZEND_UNSET_STATIC_PROP, ANY, ANY, CACHE_SLOT) -{ - USE_OPLINE - zval *varname; - zend_string *name, *tmp_name = NULL; - zend_class_entry *ce; - zend_free_op free_op1; - - SAVE_OPLINE(); - - if (OP2_TYPE == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - FREE_UNFETCHED_OP1(); - HANDLE_EXCEPTION(); - } - /*CACHE_PTR(opline->extended_value, ce);*/ - } - } else if (OP2_TYPE == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - FREE_UNFETCHED_OP1(); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - - varname = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP1_TYPE == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - } else { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - varname = ZVAL_UNDEFINED_OP1(); - } - name = zval_get_tmp_string(varname, &tmp_name); - } - - zend_std_unset_static_property(ce, name); - - zend_tmp_string_release(tmp_name); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR|CV, CONST|TMPVAR|CV) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - zval *offset; - zend_ulong hval; - zend_string *key; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_UNSET); - offset = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - - do { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - -ZEND_VM_C_LABEL(unset_dim_array): - SEPARATE_ARRAY(container); - ht = Z_ARRVAL_P(container); -ZEND_VM_C_LABEL(offset_again): - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - key = Z_STR_P(offset); - if (OP2_TYPE != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(key, hval)) { - ZEND_VM_C_GOTO(num_index_dim); - } - } -ZEND_VM_C_LABEL(str_index_dim): - if (ht == &EG(symbol_table)) { - zend_delete_global_variable(key); - } else { - zend_hash_del(ht, key); - } - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -ZEND_VM_C_LABEL(num_index_dim): - zend_hash_index_del(ht, hval); - } else if ((OP2_TYPE & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - ZEND_VM_C_GOTO(offset_again); - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - ZEND_VM_C_GOTO(num_index_dim); - } else if (Z_TYPE_P(offset) == IS_NULL) { - key = ZSTR_EMPTY_ALLOC(); - ZEND_VM_C_GOTO(str_index_dim); - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - ZEND_VM_C_GOTO(num_index_dim); - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - ZEND_VM_C_GOTO(num_index_dim); - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - hval = Z_RES_HANDLE_P(offset); - ZEND_VM_C_GOTO(num_index_dim); - } else if (OP2_TYPE == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - key = ZSTR_EMPTY_ALLOC(); - ZEND_VM_C_GOTO(str_index_dim); - } else { - zend_error(E_WARNING, "Illegal offset type in unset"); - } - break; - } else if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - ZEND_VM_C_GOTO(unset_dim_array); - } - } - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); - } - if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - offset = ZVAL_UNDEFINED_OP2(); - } - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (OP2_TYPE == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - Z_OBJ_HT_P(container)->unset_dimension(container, offset); - } else if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) { - zend_throw_error(NULL, "Cannot unset string offsets"); - } - } while (0); - - FREE_OP2(); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR_PTR_UNDEF(BP_VAR_UNSET); - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - offset = GET_OP2_ZVAL_PTR(BP_VAR_R); - - do { - if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (OP1_TYPE == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - FREE_OP2(); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(77, ZEND_FE_RESET_R, CONST|TMP|VAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *array_ptr, *result; - - SAVE_OPLINE(); - - array_ptr = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (OP1_TYPE != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(array_ptr); - } - Z_FE_POS_P(result) = 0; - - FREE_OP1_IF_VAR(); - ZEND_VM_NEXT_OPCODE(); - } else if (OP1_TYPE != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (OP1_TYPE != IS_TMP_VAR) { - Z_ADDREF_P(array_ptr); - } - - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(result) = (uint32_t) -1; - FREE_OP1_IF_VAR(); - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(result) = zend_hash_iterator_add(properties, 0); - FREE_OP1_IF_VAR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 0 OPLINE_CC EXECUTE_DATA_CC); - - FREE_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - FREE_OP1(); - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -ZEND_VM_COLD_CONST_HANDLER(125, ZEND_FE_RESET_RW, CONST|TMP|VAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *array_ptr, *array_ref; - - SAVE_OPLINE(); - - if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) { - array_ref = array_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_R); - if (Z_ISREF_P(array_ref)) { - array_ptr = Z_REFVAL_P(array_ref); - } - } else { - array_ref = array_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - } - - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ref = EX_VAR(opline->result.var); - ZVAL_NEW_REF(array_ref, array_ptr); - array_ptr = Z_REFVAL_P(array_ref); - } - if (OP1_TYPE == IS_CONST) { - ZVAL_ARR(array_ptr, zend_array_dup(Z_ARRVAL_P(array_ptr))); - } else { - SEPARATE_ARRAY(array_ptr); - } - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(Z_ARRVAL_P(array_ptr), 0); - - if (OP1_TYPE == IS_VAR) { - FREE_OP1_VAR_PTR(); - } - ZEND_VM_NEXT_OPCODE(); - } else if (OP1_TYPE != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ptr = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(array_ptr, array_ref); - } - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t) -1; - FREE_OP1_VAR_PTR(); - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(properties, 0); - FREE_OP1_VAR_PTR(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (OP1_TYPE == IS_VAR) { - FREE_OP1_VAR_PTR(); - } else { - FREE_OP1(); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - if (OP1_TYPE == IS_VAR) { - FREE_OP1_VAR_PTR(); - } else { - FREE_OP1(); - } - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -ZEND_VM_HANDLER(78, ZEND_FE_FETCH_R, VAR, ANY, JMP_ADDR) -{ - USE_OPLINE - zval *array; - zval *value; - uint32_t value_type; - HashTable *fe_ht; - HashPosition pos; - Bucket *p; - - array = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - if (EXPECTED(Z_TYPE_P(array) == IS_ARRAY)) { - fe_ht = Z_ARRVAL_P(array); - pos = Z_FE_POS_P(array); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ -ZEND_VM_C_LABEL(fe_fetch_r_exit): - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - break; - } - } else { - break; - } - } - pos++; - p++; - } - Z_FE_POS_P(array) = pos + 1; - if (RETURN_VALUE_USED(opline)) { - if (!p->key) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } - } - } else { - zend_object_iterator *iter; - - ZEND_ASSERT(Z_TYPE_P(array) == IS_OBJECT); - if ((iter = zend_iterator_unwrap(array)) == NULL) { - /* plain object */ - - fe_ht = Z_OBJPROP_P(array); - pos = zend_hash_iterator_pos(Z_FE_ITER_P(array), fe_ht); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - ZEND_VM_C_GOTO(fe_fetch_r_exit); - } - - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF) - && EXPECTED(zend_check_property_access(Z_OBJ_P(array), p->key, 0) == SUCCESS)) { - break; - } - } else if (EXPECTED(Z_OBJCE_P(array)->default_properties_count == 0) - || !p->key - || zend_check_property_access(Z_OBJ_P(array), p->key, 1) == SUCCESS) { - break; - } - } - pos++; - p++; - } - if (RETURN_VALUE_USED(opline)) { - if (UNEXPECTED(!p->key)) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else if (ZSTR_VAL(p->key)[0]) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } else { - const char *class_name, *prop_name; - size_t prop_name_len; - zend_unmangle_property_name_ex( - p->key, &class_name, &prop_name, &prop_name_len); - ZVAL_STRINGL(EX_VAR(opline->result.var), prop_name, prop_name_len); - } - } - EG(ht_iterators)[Z_FE_ITER_P(array)].pos = pos + 1; - } else { - if (EXPECTED(++iter->index > 0)) { - /* This could cause an endless loop if index becomes zero again. - * In case that ever happens we need an additional flag. */ - iter->funcs->move_forward(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (UNEXPECTED(iter->funcs->valid(iter) == FAILURE)) { - /* reached end of iteration */ - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - ZEND_VM_C_GOTO(fe_fetch_r_exit); - } - } - value = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (!value) { - /* failure in get_current_data */ - ZEND_VM_C_GOTO(fe_fetch_r_exit); - } - if (RETURN_VALUE_USED(opline)) { - if (iter->funcs->get_current_key) { - iter->funcs->get_current_key(iter, EX_VAR(opline->result.var)); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else { - ZVAL_LONG(EX_VAR(opline->result.var), iter->index); - } - } - value_type = Z_TYPE_INFO_P(value); - } - } - - if (EXPECTED(OP2_TYPE == IS_CV)) { - zval *variable_ptr = EX_VAR(opline->op2.var); - zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } else { - zval *res = EX_VAR(opline->op2.var); - zend_refcounted *gc = Z_COUNTED_P(value); - - ZVAL_COPY_VALUE_EX(res, value, gc, value_type); - if (Z_TYPE_INFO_REFCOUNTED(value_type)) { - GC_ADDREF(gc); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(126, ZEND_FE_FETCH_RW, VAR, ANY, JMP_ADDR) -{ - USE_OPLINE - zval *array; - zval *value; - uint32_t value_type; - HashTable *fe_ht; - HashPosition pos; - Bucket *p; - - array = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - - ZVAL_DEREF(array); - if (EXPECTED(Z_TYPE_P(array) == IS_ARRAY)) { - pos = zend_hash_iterator_pos_ex(Z_FE_ITER_P(EX_VAR(opline->op1.var)), array); - fe_ht = Z_ARRVAL_P(array); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - ZEND_VM_C_GOTO(fe_fetch_w_exit); - } - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - break; - } - } else { - break; - } - } - pos++; - p++; - } - if (RETURN_VALUE_USED(opline)) { - if (!p->key) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } - } - EG(ht_iterators)[Z_FE_ITER_P(EX_VAR(opline->op1.var))].pos = pos + 1; - } else if (EXPECTED(Z_TYPE_P(array) == IS_OBJECT)) { - zend_object_iterator *iter; - - if ((iter = zend_iterator_unwrap(array)) == NULL) { - /* plain object */ - - fe_ht = Z_OBJPROP_P(array); - pos = zend_hash_iterator_pos(Z_FE_ITER_P(EX_VAR(opline->op1.var)), fe_ht); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - ZEND_VM_C_GOTO(fe_fetch_w_exit); - } - - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF) - && EXPECTED(zend_check_property_access(Z_OBJ_P(array), p->key, 0) == SUCCESS)) { - if ((value_type & Z_TYPE_MASK) != IS_REFERENCE) { - zend_property_info *prop_info = - zend_get_typed_property_info_for_slot(Z_OBJ_P(array), value); - if (UNEXPECTED(prop_info)) { - ZVAL_NEW_REF(value, value); - ZEND_REF_ADD_TYPE_SOURCE(Z_REF_P(value), prop_info); - value_type = IS_REFERENCE_EX; - } - } - break; - } - } else if (EXPECTED(Z_OBJCE_P(array)->default_properties_count == 0) - || !p->key - || zend_check_property_access(Z_OBJ_P(array), p->key, 1) == SUCCESS) { - break; - } - } - pos++; - p++; - } - if (RETURN_VALUE_USED(opline)) { - if (UNEXPECTED(!p->key)) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else if (ZSTR_VAL(p->key)[0]) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } else { - const char *class_name, *prop_name; - size_t prop_name_len; - zend_unmangle_property_name_ex( - p->key, &class_name, &prop_name, &prop_name_len); - ZVAL_STRINGL(EX_VAR(opline->result.var), prop_name, prop_name_len); - } - } - EG(ht_iterators)[Z_FE_ITER_P(EX_VAR(opline->op1.var))].pos = pos + 1; - } else { - if (++iter->index > 0) { - /* This could cause an endless loop if index becomes zero again. - * In case that ever happens we need an additional flag. */ - iter->funcs->move_forward(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (UNEXPECTED(iter->funcs->valid(iter) == FAILURE)) { - /* reached end of iteration */ - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - ZEND_VM_C_GOTO(fe_fetch_w_exit); - } - } - value = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (!value) { - /* failure in get_current_data */ - ZEND_VM_C_GOTO(fe_fetch_w_exit); - } - if (RETURN_VALUE_USED(opline)) { - if (iter->funcs->get_current_key) { - iter->funcs->get_current_key(iter, EX_VAR(opline->result.var)); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else { - ZVAL_LONG(EX_VAR(opline->result.var), iter->index); - } - } - value_type = Z_TYPE_INFO_P(value); - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - if (UNEXPECTED(EG(exception))) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } -ZEND_VM_C_LABEL(fe_fetch_w_exit): - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } - - if (EXPECTED((value_type & Z_TYPE_MASK) != IS_REFERENCE)) { - zend_refcounted *gc = Z_COUNTED_P(value); - zval *ref; - ZVAL_NEW_EMPTY_REF(value); - ref = Z_REFVAL_P(value); - ZVAL_COPY_VALUE_EX(ref, value, gc, value_type); - } - if (EXPECTED(OP2_TYPE == IS_CV)) { - zval *variable_ptr = EX_VAR(opline->op2.var); - if (EXPECTED(variable_ptr != value)) { - zend_reference *ref; - - ref = Z_REF_P(value); - GC_ADDREF(ref); - i_zval_ptr_dtor(variable_ptr); - ZVAL_REF(variable_ptr, ref); - } - } else { - Z_ADDREF_P(value); - ZVAL_REF(EX_VAR(opline->op2.var), Z_REF_P(value)); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(154, ZEND_ISSET_ISEMPTY_CV, CV, UNUSED, ISSET, SPEC(ISSET)) -{ - USE_OPLINE - zval *value; - - value = EX_VAR(opline->op1.var); - if (!(opline->extended_value & ZEND_ISEMPTY)) { - if (Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else { - int result; - - SAVE_OPLINE(); - result = !i_zend_is_true(value); - if (UNEXPECTED(EG(exception))) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_HANDLER(114, ZEND_ISSET_ISEMPTY_VAR, CONST|TMPVAR|CV, UNUSED, VAR_FETCH|ISSET) -{ - USE_OPLINE - zval *value; - int result; - zend_free_op free_op1; - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = GET_OP1_ZVAL_PTR(BP_VAR_IS); - if (OP1_TYPE == IS_CONST) { - name = Z_STR_P(varname); - } else { - name = zval_get_tmp_string(varname, &tmp_name); - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - value = zend_hash_find_ex(target_symbol_table, name, OP1_TYPE == IS_CONST); - - if (OP1_TYPE != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - FREE_OP1(); - - if (!value) { - result = (opline->extended_value & ZEND_ISEMPTY); - } else { - if (Z_TYPE_P(value) == IS_INDIRECT) { - value = Z_INDIRECT_P(value); - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - if (Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - } - result = Z_TYPE_P(value) > IS_NULL; - } else { - result = !i_zend_is_true(value); - } - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -ZEND_VM_HANDLER(180, ZEND_ISSET_ISEMPTY_STATIC_PROP, ANY, CLASS_FETCH, ISSET|CACHE_SLOT) -{ - USE_OPLINE - zval *value; - int result; - - SAVE_OPLINE(); - - result = zend_fetch_static_property_address(&value, NULL, opline->extended_value & ~ZEND_ISEMPTY, BP_VAR_IS, 0 OPLINE_CC EXECUTE_DATA_CC); - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = result == SUCCESS && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - } else { - result = result != SUCCESS || !i_zend_is_true(value); - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(115, ZEND_ISSET_ISEMPTY_DIM_OBJ, CONST|TMPVAR|CV, CONST|TMPVAR|CV, ISSET) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR_UNDEF(BP_VAR_IS); - offset = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -ZEND_VM_C_LABEL(isset_dim_obj_array): - ht = Z_ARRVAL_P(container); -ZEND_VM_C_LABEL(isset_again): - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (OP2_TYPE != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - ZEND_VM_C_GOTO(num_index_prop); - } - } - value = zend_hash_find_ex_ind(ht, str, OP2_TYPE == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -ZEND_VM_C_LABEL(num_index_prop): - value = zend_hash_index_find(ht, hval); - } else if ((OP2_TYPE & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - ZEND_VM_C_GOTO(isset_again); - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - ZEND_VM_C_GOTO(isset_dim_obj_exit); - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if (OP1_TYPE & (IS_CONST|IS_CV)) { - /* avoid exception check */ - FREE_OP2(); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - ZEND_VM_C_GOTO(isset_dim_obj_exit); - } else if ((OP1_TYPE & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - ZEND_VM_C_GOTO(isset_dim_obj_array); - } - } - - if (OP2_TYPE == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -ZEND_VM_C_LABEL(isset_dim_obj_exit): - FREE_OP2(); - FREE_OP1(); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(148, ZEND_ISSET_ISEMPTY_PROP_OBJ, CONST|TMPVAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, ISSET|CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS); - - if (OP1_TYPE == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } - - offset = GET_OP2_ZVAL_PTR(BP_VAR_R); - - if (OP1_TYPE == IS_CONST || - (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - ZEND_VM_C_GOTO(isset_object_finish); - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - ZEND_VM_C_GOTO(isset_object_finish); - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((OP2_TYPE == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -ZEND_VM_C_LABEL(isset_object_finish): - FREE_OP2(); - FREE_OP1(); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(194, ZEND_ARRAY_KEY_EXISTS, CV|TMPVAR|CONST, CV|TMPVAR|CONST) -{ - USE_OPLINE - - zend_free_op free_op1, free_op2; - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - subject = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -ZEND_VM_C_LABEL(array_key_exists_array): - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if ((OP2_TYPE & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - ZEND_VM_C_GOTO(array_key_exists_array); - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - FREE_OP2(); - FREE_OP1(); - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -ZEND_VM_COLD_HANDLER(79, ZEND_EXIT, ANY, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (OP1_TYPE != IS_UNUSED) { - zend_free_op free_op1; - zval *ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - - do { - if (Z_TYPE_P(ptr) == IS_LONG) { - EG(exit_status) = Z_LVAL_P(ptr); - } else { - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(ptr)) { - ptr = Z_REFVAL_P(ptr); - if (Z_TYPE_P(ptr) == IS_LONG) { - EG(exit_status) = Z_LVAL_P(ptr); - break; - } - } - zend_print_zval(ptr, 0); - } - } while (0); - FREE_OP1(); - } - zend_bailout(); - ZEND_VM_NEXT_OPCODE(); /* Never reached */ -} - -ZEND_VM_HANDLER(57, ZEND_BEGIN_SILENCE, ANY, ANY) -{ - USE_OPLINE - - ZVAL_LONG(EX_VAR(opline->result.var), EG(error_reporting)); - - if (EG(error_reporting)) { - do { - EG(error_reporting) = 0; - if (!EG(error_reporting_ini_entry)) { - zval *zv = zend_hash_find_ex(EG(ini_directives), ZSTR_KNOWN(ZEND_STR_ERROR_REPORTING), 1); - if (zv) { - EG(error_reporting_ini_entry) = (zend_ini_entry *)Z_PTR_P(zv); - } else { - break; - } - } - if (!EG(error_reporting_ini_entry)->modified) { - if (!EG(modified_ini_directives)) { - ALLOC_HASHTABLE(EG(modified_ini_directives)); - zend_hash_init(EG(modified_ini_directives), 8, NULL, NULL, 0); - } - if (EXPECTED(zend_hash_add_ptr(EG(modified_ini_directives), ZSTR_KNOWN(ZEND_STR_ERROR_REPORTING), EG(error_reporting_ini_entry)) != NULL)) { - EG(error_reporting_ini_entry)->orig_value = EG(error_reporting_ini_entry)->value; - EG(error_reporting_ini_entry)->orig_modifiable = EG(error_reporting_ini_entry)->modifiable; - EG(error_reporting_ini_entry)->modified = 1; - } - } - } while (0); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(58, ZEND_END_SILENCE, TMP, ANY) -{ - USE_OPLINE - - if (!EG(error_reporting) && Z_LVAL_P(EX_VAR(opline->op1.var)) != 0) { - EG(error_reporting) = Z_LVAL_P(EX_VAR(opline->op1.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_CONST_HANDLER(152, ZEND_JMP_SET, CONST|TMP|VAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *ref = NULL; - int ret; - - SAVE_OPLINE(); - value = GET_OP1_ZVAL_PTR(BP_VAR_R); - - if ((OP1_TYPE == IS_VAR || OP1_TYPE == IS_CV) && Z_ISREF_P(value)) { - if (OP1_TYPE == IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - ret = i_zend_is_true(value); - - if (UNEXPECTED(EG(exception))) { - FREE_OP1(); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (ret) { - zval *result = EX_VAR(opline->result.var); - - ZVAL_COPY_VALUE(result, value); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (OP1_TYPE == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if (OP1_TYPE == IS_VAR && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - FREE_OP1(); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_CONST_HANDLER(169, ZEND_COALESCE, CONST|TMP|VAR|CV, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *ref = NULL; - - SAVE_OPLINE(); - value = GET_OP1_ZVAL_PTR(BP_VAR_IS); - - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - if (OP1_TYPE & IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - if (Z_TYPE_P(value) > IS_NULL) { - zval *result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, value); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (OP1_TYPE == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if ((OP1_TYPE & IS_VAR) && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - FREE_OP1(); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(31, ZEND_QM_ASSIGN, CONST|TMP|VAR|CV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *result = EX_VAR(opline->result.var); - - value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZVAL_NULL(result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (OP1_TYPE == IS_CV) { - ZVAL_COPY_DEREF(result, value); - } else if (OP1_TYPE == IS_VAR) { - if (UNEXPECTED(Z_ISREF_P(value))) { - ZVAL_COPY_VALUE(result, Z_REFVAL_P(value)); - if (UNEXPECTED(Z_DELREF_P(value) == 0)) { - efree_size(Z_REF_P(value), sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } else { - ZVAL_COPY_VALUE(result, value); - } - } else { - ZVAL_COPY_VALUE(result, value); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) { - Z_ADDREF_P(result); - } - } - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_HANDLER(101, ZEND_EXT_STMT, ANY, ANY) -{ - USE_OPLINE - - if (!EG(no_extensions)) { - SAVE_OPLINE(); - zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_statement_handler, execute_data); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_HANDLER(102, ZEND_EXT_FCALL_BEGIN, ANY, ANY) -{ - USE_OPLINE - - if (!EG(no_extensions)) { - SAVE_OPLINE(); - zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_begin_handler, execute_data); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_HANDLER(103, ZEND_EXT_FCALL_END, ANY, ANY) -{ - USE_OPLINE - - if (!EG(no_extensions)) { - SAVE_OPLINE(); - zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_end_handler, execute_data); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(144, ZEND_DECLARE_CLASS, CONST, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - do_bind_class(RT_CONSTANT(opline, opline->op1), (OP2_TYPE == IS_CONST) ? Z_STR_P(RT_CONSTANT(opline, opline->op2)) : NULL); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(145, ZEND_DECLARE_CLASS_DELAYED, CONST, CONST) -{ - USE_OPLINE - zval *lcname, *zv; - zend_class_entry *ce; - - ce = CACHED_PTR(opline->extended_value); - if (ce == NULL) { - lcname = RT_CONSTANT(opline, opline->op1); - zv = zend_hash_find_ex(EG(class_table), Z_STR_P(lcname + 1), 1); - if (zv) { - SAVE_OPLINE(); - ce = Z_CE_P(zv); - zv = zend_hash_set_bucket_key(EG(class_table), (Bucket*)zv, Z_STR_P(lcname)); - if (UNEXPECTED(!zv)) { - zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce), ZSTR_VAL(ce->name)); - } else { - if (zend_do_link_class(ce, Z_STR_P(RT_CONSTANT(opline, opline->op2))) == FAILURE) { - /* Reload bucket pointer, the hash table may have been reallocated */ - zv = zend_hash_find(EG(class_table), Z_STR_P(lcname)); - zend_hash_set_bucket_key(EG(class_table), (Bucket *) zv, Z_STR_P(lcname + 1)); - HANDLE_EXCEPTION(); - } - } - } - CACHE_PTR(opline->extended_value, ce); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(146, ZEND_DECLARE_ANON_CLASS, ANY, ANY, CACHE_SLOT) -{ - zval *zv; - zend_class_entry *ce; - USE_OPLINE - - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - zend_string *rtd_key = Z_STR_P(RT_CONSTANT(opline, opline->op1)); - zv = zend_hash_find_ex(EG(class_table), rtd_key, 1); - if (UNEXPECTED(zv == NULL)) { - SAVE_OPLINE(); - do { - ZEND_ASSERT(EX(func)->op_array.fn_flags & ZEND_ACC_PRELOADED); - if (zend_preload_autoload - && zend_preload_autoload(EX(func)->op_array.filename) == SUCCESS) { - zv = zend_hash_find_ex(EG(class_table), rtd_key, 1); - if (EXPECTED(zv != NULL)) { - break; - } - } - zend_error_noreturn(E_ERROR, "Anonymous class wasn't preloaded"); - } while (0); - } - ZEND_ASSERT(zv != NULL); - ce = Z_CE_P(zv); - if (!(ce->ce_flags & ZEND_ACC_LINKED)) { - SAVE_OPLINE(); - if (zend_do_link_class(ce, (OP2_TYPE == IS_CONST) ? Z_STR_P(RT_CONSTANT(opline, opline->op2)) : NULL) == FAILURE) { - HANDLE_EXCEPTION(); - } - } - CACHE_PTR(opline->extended_value, ce); - } - Z_CE_P(EX_VAR(opline->result.var)) = ce; - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(141, ZEND_DECLARE_FUNCTION, ANY, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - do_bind_function(RT_CONSTANT(opline, opline->op1)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(105, ZEND_TICKS, ANY, ANY, NUM) -{ - USE_OPLINE - - if ((uint32_t)++EG(ticks_count) >= opline->extended_value) { - EG(ticks_count) = 0; - if (zend_ticks_function) { - SAVE_OPLINE(); - zend_ticks_function(opline->extended_value); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(138, ZEND_INSTANCEOF, TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr; - zend_bool result; - - SAVE_OPLINE(); - expr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - -ZEND_VM_C_LABEL(try_instanceof): - if (Z_TYPE_P(expr) == IS_OBJECT) { - zend_class_entry *ce; - - if (OP2_TYPE == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (EXPECTED(ce)) { - CACHE_PTR(opline->extended_value, ce); - } - } - } else if (OP2_TYPE == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - FREE_OP1(); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - result = ce && instanceof_function(Z_OBJCE_P(expr), ce); - } else if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_TYPE_P(expr) == IS_REFERENCE) { - expr = Z_REFVAL_P(expr); - ZEND_VM_C_GOTO(try_instanceof); - } else { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(expr) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - result = 0; - } - FREE_OP1(); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_HANDLER(104, ZEND_EXT_NOP, ANY, ANY) -{ - USE_OPLINE - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_HANDLER(0, ZEND_NOP, ANY, ANY) -{ - USE_OPLINE - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HELPER(zend_dispatch_try_catch_finally_helper, ANY, ANY, uint32_t try_catch_offset, uint32_t op_num) -{ - /* May be NULL during generator closing (only finally blocks are executed) */ - zend_object *ex = EG(exception); - - /* Walk try/catch/finally structures upwards, performing the necessary actions */ - while (try_catch_offset != (uint32_t) -1) { - zend_try_catch_element *try_catch = - &EX(func)->op_array.try_catch_array[try_catch_offset]; - - if (op_num < try_catch->catch_op && ex) { - /* Go to catch block */ - cleanup_live_vars(execute_data, op_num, try_catch->catch_op); - ZEND_VM_JMP_EX(&EX(func)->op_array.opcodes[try_catch->catch_op], 0); - - } else if (op_num < try_catch->finally_op) { - /* Go to finally block */ - zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[try_catch->finally_end].op1.var); - cleanup_live_vars(execute_data, op_num, try_catch->finally_op); - Z_OBJ_P(fast_call) = EG(exception); - EG(exception) = NULL; - Z_OPLINE_NUM_P(fast_call) = (uint32_t)-1; - ZEND_VM_JMP_EX(&EX(func)->op_array.opcodes[try_catch->finally_op], 0); - - } else if (op_num < try_catch->finally_end) { - zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[try_catch->finally_end].op1.var); - - /* cleanup incomplete RETURN statement */ - if (Z_OPLINE_NUM_P(fast_call) != (uint32_t)-1 - && (EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2_type & (IS_TMP_VAR | IS_VAR))) { - zval *return_value = EX_VAR(EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2.var); - - zval_ptr_dtor(return_value); - } - - /* Chain potential exception from wrapping finally block */ - if (Z_OBJ_P(fast_call)) { - if (ex) { - zend_exception_set_previous(ex, Z_OBJ_P(fast_call)); - } else { - EG(exception) = Z_OBJ_P(fast_call); - } - ex = Z_OBJ_P(fast_call); - } - } - - try_catch_offset--; - } - - /* Uncaught exception */ - cleanup_live_vars(execute_data, op_num, 0); - if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - zend_generator_close(generator, 1); - ZEND_VM_RETURN(); - } else { - /* We didn't execute RETURN, and have to initialize return_value */ - if (EX(return_value)) { - ZVAL_UNDEF(EX(return_value)); - } - ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper); - } -} - -ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY) -{ - const zend_op *throw_op = EG(opline_before_exception); - uint32_t throw_op_num = throw_op - EX(func)->op_array.opcodes; - int i, current_try_catch_offset = -1; - - if ((throw_op->opcode == ZEND_FREE || throw_op->opcode == ZEND_FE_FREE) - && throw_op->extended_value & ZEND_FREE_ON_RETURN) { - /* exceptions thrown because of loop var destruction on return/break/... - * are logically thrown at the end of the foreach loop, so adjust the - * throw_op_num. - */ - const zend_live_range *range = find_live_range( - &EX(func)->op_array, throw_op_num, throw_op->op1.var); - throw_op_num = range->end; - } - - /* Find the innermost try/catch/finally the exception was thrown in */ - for (i = 0; i < EX(func)->op_array.last_try_catch; i++) { - zend_try_catch_element *try_catch = &EX(func)->op_array.try_catch_array[i]; - if (try_catch->try_op > throw_op_num) { - /* further blocks will not be relevant... */ - break; - } - if (throw_op_num < try_catch->catch_op || throw_op_num < try_catch->finally_end) { - current_try_catch_offset = i; - } - } - - cleanup_unfinished_calls(execute_data, throw_op_num); - - if (throw_op->result_type & (IS_VAR | IS_TMP_VAR)) { - switch (throw_op->opcode) { - case ZEND_ADD_ARRAY_ELEMENT: - case ZEND_ADD_ARRAY_UNPACK: - case ZEND_ROPE_INIT: - case ZEND_ROPE_ADD: - break; /* exception while building structures, live range handling will free those */ - - case ZEND_FETCH_CLASS: - case ZEND_DECLARE_ANON_CLASS: - break; /* return value is zend_class_entry pointer */ - - default: - zval_ptr_dtor_nogc(EX_VAR(throw_op->result.var)); - } - } - - ZEND_VM_DISPATCH_TO_HELPER(zend_dispatch_try_catch_finally_helper, try_catch_offset, current_try_catch_offset, op_num, throw_op_num); -} - -ZEND_VM_HANDLER(150, ZEND_USER_OPCODE, ANY, ANY) -{ - USE_OPLINE - int ret; - - SAVE_OPLINE(); - ret = zend_user_opcode_handlers[opline->opcode](execute_data); - opline = EX(opline); - - switch (ret) { - case ZEND_USER_OPCODE_CONTINUE: - ZEND_VM_CONTINUE(); - case ZEND_USER_OPCODE_RETURN: - if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - zend_generator_close(generator, 1); - ZEND_VM_RETURN(); - } else { - ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper); - } - case ZEND_USER_OPCODE_ENTER: - ZEND_VM_ENTER(); - case ZEND_USER_OPCODE_LEAVE: - ZEND_VM_LEAVE(); - case ZEND_USER_OPCODE_DISPATCH: - ZEND_VM_DISPATCH(opline->opcode, opline); - default: - ZEND_VM_DISPATCH((zend_uchar)(ret & 0xff), opline); - } -} - -ZEND_VM_HANDLER(143, ZEND_DECLARE_CONST, CONST, CONST) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *name; - zval *val; - zend_constant c; - - SAVE_OPLINE(); - name = GET_OP1_ZVAL_PTR(BP_VAR_R); - val = GET_OP2_ZVAL_PTR(BP_VAR_R); - - ZVAL_COPY(&c.value, val); - if (Z_OPT_CONSTANT(c.value)) { - if (UNEXPECTED(zval_update_constant_ex(&c.value, EX(func)->op_array.scope) != SUCCESS)) { - zval_ptr_dtor_nogc(&c.value); - FREE_OP1(); - FREE_OP2(); - HANDLE_EXCEPTION(); - } - } - /* non persistent, case sensitive */ - ZEND_CONSTANT_SET_FLAGS(&c, CONST_CS, PHP_USER_CONSTANT); - c.name = zend_string_copy(Z_STR_P(name)); - - if (zend_register_constant(&c) == FAILURE) { - } - - FREE_OP1(); - FREE_OP2(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(142, ZEND_DECLARE_LAMBDA_FUNCTION, CONST, UNUSED, CACHE_SLOT) -{ - USE_OPLINE - zend_function *func; - zval *zfunc; - zval *object; - zend_class_entry *called_scope; - - func = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(func == NULL)) { - zfunc = zend_hash_find_ex(EG(function_table), Z_STR_P(RT_CONSTANT(opline, opline->op1)), 1); - ZEND_ASSERT(zfunc != NULL); - func = Z_FUNC_P(zfunc); - ZEND_ASSERT(func->type == ZEND_USER_FUNCTION); - CACHE_PTR(opline->extended_value, func); - } - - if (Z_TYPE(EX(This)) == IS_OBJECT) { - called_scope = Z_OBJCE(EX(This)); - if (UNEXPECTED((func->common.fn_flags & ZEND_ACC_STATIC) || - (EX(func)->common.fn_flags & ZEND_ACC_STATIC))) { - object = NULL; - } else { - object = &EX(This); - } - } else { - called_scope = Z_CE(EX(This)); - object = NULL; - } - zend_create_closure(EX_VAR(opline->result.var), func, - EX(func)->op_array.scope, called_scope, object); - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(156, ZEND_SEPARATE, VAR, UNUSED) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - if (UNEXPECTED(Z_REFCOUNT_P(var_ptr) == 1)) { - ZVAL_UNREF(var_ptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_HELPER(zend_yield_in_closed_generator_helper, ANY, ANY) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator"); - FREE_UNFETCHED_OP2(); - FREE_UNFETCHED_OP1(); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); -} - -ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSED, SRC) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_yield_in_closed_generator_helper); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (OP1_TYPE != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (OP1_TYPE & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = GET_OP1_ZVAL_PTR(BP_VAR_R); - ZVAL_COPY_VALUE(&generator->value, value); - if (OP1_TYPE == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (OP1_TYPE == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - FREE_OP1_VAR_PTR(); - } - } else { - zval *value = GET_OP1_ZVAL_PTR(BP_VAR_R); - - /* Consts, temporary variables and references need copying */ - if (OP1_TYPE == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (OP1_TYPE == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - FREE_OP1_IF_VAR(); - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (OP1_TYPE == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (OP2_TYPE != IS_UNUSED) { - zend_free_op free_op2; - zval *key = GET_OP2_ZVAL_PTR(BP_VAR_R); - - /* Consts, temporary variables and references need copying */ - if (OP2_TYPE == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (OP2_TYPE == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((OP2_TYPE & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - FREE_OP2_IF_VAR(); - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (OP2_TYPE == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -ZEND_VM_HANDLER(166, ZEND_YIELD_FROM, CONST|TMP|VAR|CV, ANY) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - zval *val; - zend_free_op free_op1; - - SAVE_OPLINE(); - val = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); - - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - zend_throw_error(NULL, "Cannot use \"yield from\" in a force-closed generator"); - FREE_OP1(); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (Z_TYPE_P(val) == IS_ARRAY) { - ZVAL_COPY_VALUE(&generator->values, val); - if (OP1_TYPE != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(val)) { - Z_ADDREF_P(val); - } - Z_FE_POS(generator->values) = 0; - - FREE_OP1_IF_VAR(); - } else if (OP1_TYPE != IS_CONST && Z_TYPE_P(val) == IS_OBJECT && Z_OBJCE_P(val)->get_iterator) { - zend_class_entry *ce = Z_OBJCE_P(val); - if (ce == zend_ce_generator) { - zend_generator *new_gen = (zend_generator *) Z_OBJ_P(val); - - if (OP1_TYPE != IS_TMP_VAR) { - Z_ADDREF_P(val); - } - FREE_OP1_IF_VAR(); - - if (Z_ISUNDEF(new_gen->retval)) { - if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) { - zend_throw_error(NULL, "Impossible to yield from the Generator being currently run"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - zend_generator_yield_from(generator, new_gen); - } - } else if (UNEXPECTED(new_gen->execute_data == NULL)) { - zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - if (RETURN_VALUE_USED(opline)) { - ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval); - } - ZEND_VM_NEXT_OPCODE(); - } - } else { - zend_object_iterator *iter = ce->get_iterator(ce, val, 0); - FREE_OP1(); - - if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) { - if (!EG(exception)) { - zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - iter->index = 0; - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - OBJ_RELEASE(&iter->std); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } - - ZVAL_OBJ(&generator->values, &iter->std); - } - } else { - zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables"); - FREE_OP1(); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - /* This is the default return value - * when the expression is a Generator, it will be overwritten in zend_generator_resume() */ - if (RETURN_VALUE_USED(opline)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - - /* This generator has no send target (though the generator we delegate to might have one) */ - generator->send_target = NULL; - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -ZEND_VM_HANDLER(159, ZEND_DISCARD_EXCEPTION, ANY, ANY) -{ - USE_OPLINE - zval *fast_call = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - - /* cleanup incomplete RETURN statement */ - if (Z_OPLINE_NUM_P(fast_call) != (uint32_t)-1 - && (EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2_type & (IS_TMP_VAR | IS_VAR))) { - zval *return_value = EX_VAR(EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2.var); - - zval_ptr_dtor(return_value); - } - - /* cleanup delayed exception */ - if (Z_OBJ_P(fast_call) != NULL) { - /* discard the previously thrown exception */ - OBJ_RELEASE(Z_OBJ_P(fast_call)); - Z_OBJ_P(fast_call) = NULL; - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(162, ZEND_FAST_CALL, JMP_ADDR, ANY) -{ - USE_OPLINE - zval *fast_call = EX_VAR(opline->result.var); - - Z_OBJ_P(fast_call) = NULL; - /* set return address */ - Z_OPLINE_NUM_P(fast_call) = opline - EX(func)->op_array.opcodes; - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op1), 0); -} - -ZEND_VM_HANDLER(163, ZEND_FAST_RET, ANY, TRY_CATCH) -{ - USE_OPLINE - zval *fast_call = EX_VAR(opline->op1.var); - uint32_t current_try_catch_offset, current_op_num; - - if (Z_OPLINE_NUM_P(fast_call) != (uint32_t)-1) { - const zend_op *fast_ret = EX(func)->op_array.opcodes + Z_OPLINE_NUM_P(fast_call); - - ZEND_VM_JMP_EX(fast_ret + 1, 0); - } - - /* special case for unhandled exceptions */ - EG(exception) = Z_OBJ_P(fast_call); - Z_OBJ_P(fast_call) = NULL; - current_try_catch_offset = opline->op2.num; - current_op_num = opline - EX(func)->op_array.opcodes; - ZEND_VM_DISPATCH_TO_HELPER(zend_dispatch_try_catch_finally_helper, try_catch_offset, current_try_catch_offset, op_num, current_op_num); -} - -ZEND_VM_HOT_HANDLER(168, ZEND_BIND_GLOBAL, CV, CONST, CACHE_SLOT) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zend_string *varname; - zval *value; - zval *variable_ptr; - uintptr_t idx; - zend_reference *ref; - - ZEND_VM_REPEATABLE_OPCODE - - varname = Z_STR_P(GET_OP2_ZVAL_PTR(BP_VAR_R)); - - /* We store "hash slot index" + 1 (NULL is a mark of uninitialized cache slot) */ - idx = (uintptr_t)CACHED_PTR(opline->extended_value) - 1; - if (EXPECTED(idx < EG(symbol_table).nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)EG(symbol_table).arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == varname) || - (EXPECTED(p->h == ZSTR_H(varname)) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, varname))))) { - - value = (zval*)p; /* value = &p->val; */ - ZEND_VM_C_GOTO(check_indirect); - } - } - - value = zend_hash_find_ex(&EG(symbol_table), varname, 1); - if (UNEXPECTED(value == NULL)) { - value = zend_hash_add_new(&EG(symbol_table), varname, &EG(uninitialized_zval)); - idx = (char*)value - (char*)EG(symbol_table).arData; - /* Store "hash slot index" + 1 (NULL is a mark of uninitialized cache slot) */ - CACHE_PTR(opline->extended_value, (void*)(idx + 1)); - } else { - idx = (char*)value - (char*)EG(symbol_table).arData; - /* Store "hash slot index" + 1 (NULL is a mark of uninitialized cache slot) */ - CACHE_PTR(opline->extended_value, (void*)(idx + 1)); -ZEND_VM_C_LABEL(check_indirect): - /* GLOBAL variable may be an INDIRECT pointer to CV */ - if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - if (UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - ZVAL_NULL(value); - } - } - } - - if (UNEXPECTED(!Z_ISREF_P(value))) { - ZVAL_MAKE_REF_EX(value, 2); - ref = Z_REF_P(value); - } else { - ref = Z_REF_P(value); - GC_ADDREF(ref); - } - - variable_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - - if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(variable_ptr); - uint32_t refcnt = GC_DELREF(ref); - - if (EXPECTED(variable_ptr != value)) { - if (refcnt == 0) { - SAVE_OPLINE(); - rc_dtor_func(ref); - if (UNEXPECTED(EG(exception))) { - ZVAL_NULL(variable_ptr); - HANDLE_EXCEPTION(); - } - } else { - gc_check_possible_root(ref); - } - } - } - ZVAL_REF(variable_ptr, ref); - - ZEND_VM_REPEAT_OPCODE(ZEND_BIND_GLOBAL); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_CONST_HANDLER(121, ZEND_STRLEN, CONST|TMPVAR|CV, ANY) -{ - USE_OPLINE - zval *value; - zend_free_op free_op1; - - value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE(); - } else { - zend_bool strict; - - if ((OP1_TYPE & (IS_VAR|IS_CV)) && Z_TYPE_P(value) == IS_REFERENCE) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - value = ZVAL_UNDEFINED_OP1(); - } - strict = EX_USES_STRICT_TYPES(); - do { - if (EXPECTED(!strict)) { - zend_string *str; - zval tmp; - - ZVAL_COPY(&tmp, value); - if (zend_parse_arg_str_weak(&tmp, &str)) { - ZVAL_LONG(EX_VAR(opline->result.var), ZSTR_LEN(str)); - zval_ptr_dtor(&tmp); - break; - } - zval_ptr_dtor(&tmp); - } - if (!EG(exception)) { - zend_internal_type_error(strict, "strlen() expects parameter 1 to be string, %s given", zend_get_type_by_const(Z_TYPE_P(value))); - } - ZVAL_NULL(EX_VAR(opline->result.var)); - } while (0); - } - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_NOCONST_HANDLER(123, ZEND_TYPE_CHECK, CONST|TMPVAR|CV, ANY, TYPE_MASK) -{ - USE_OPLINE - zval *value; - int result = 0; - zend_free_op free_op1; - - value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { -ZEND_VM_C_LABEL(type_check_resource): - if (EXPECTED(Z_TYPE_P(value) != IS_RESOURCE) - || EXPECTED(NULL != zend_rsrc_list_get_rsrc_type(Z_RES_P(value)))) { - result = 1; - } - } else if ((OP1_TYPE & (IS_CV|IS_VAR)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { - ZEND_VM_C_GOTO(type_check_resource); - } - } else if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - result = ((1 << IS_NULL) & opline->extended_value) != 0; - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - FREE_OP1(); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_HOT_HANDLER(122, ZEND_DEFINED, CONST, ANY, CACHE_SLOT) -{ - USE_OPLINE - zend_constant *c; - - c = CACHED_PTR(opline->extended_value); - if (EXPECTED(c != NULL)) { - if (!IS_SPECIAL_CACHE_VAL(c)) { -ZEND_VM_C_LABEL(defined_true): - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(zend_hash_num_elements(EG(zend_constants)) == DECODE_SPECIAL_CACHE_NUM(c))) { -ZEND_VM_C_LABEL(defined_false): - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } - if (zend_quick_check_constant(RT_CONSTANT(opline, opline->op1) OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - CACHE_PTR(opline->extended_value, ENCODE_SPECIAL_CACHE_NUM(zend_hash_num_elements(EG(zend_constants)))); - ZEND_VM_C_GOTO(defined_false); - } else { - ZEND_VM_C_GOTO(defined_true); - } -} - -ZEND_VM_HANDLER(151, ZEND_ASSERT_CHECK, ANY, JMP_ADDR) -{ - USE_OPLINE - - if (EG(assertions) <= 0) { - zend_op *target = OP_JMP_ADDR(opline, opline->op2); - if (RETURN_VALUE_USED(opline)) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } - ZEND_VM_JMP_EX(target, 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } -} - -ZEND_VM_HANDLER(157, ZEND_FETCH_CLASS_NAME, UNUSED|CLASS_FETCH, ANY) -{ - uint32_t fetch_type; - zend_class_entry *called_scope, *scope; - USE_OPLINE - - fetch_type = opline->op1.num; - - scope = EX(func)->op_array.scope; - if (UNEXPECTED(scope == NULL)) { - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot use \"%s\" when no class scope is active", - fetch_type == ZEND_FETCH_CLASS_SELF ? "self" : - fetch_type == ZEND_FETCH_CLASS_PARENT ? "parent" : "static"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - switch (fetch_type) { - case ZEND_FETCH_CLASS_SELF: - ZVAL_STR_COPY(EX_VAR(opline->result.var), scope->name); - break; - case ZEND_FETCH_CLASS_PARENT: - if (UNEXPECTED(scope->parent == NULL)) { - SAVE_OPLINE(); - zend_throw_error(NULL, - "Cannot use \"parent\" when current class scope has no parent"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - ZVAL_STR_COPY(EX_VAR(opline->result.var), scope->parent->name); - break; - case ZEND_FETCH_CLASS_STATIC: - if (Z_TYPE(EX(This)) == IS_OBJECT) { - called_scope = Z_OBJCE(EX(This)); - } else { - called_scope = Z_CE(EX(This)); - } - ZVAL_STR_COPY(EX_VAR(opline->result.var), called_scope->name); - break; - EMPTY_SWITCH_DEFAULT_CASE() - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(158, ZEND_CALL_TRAMPOLINE, ANY, ANY) -{ - zend_array *args = NULL; - zend_function *fbc = EX(func); - zval *ret = EX(return_value); - uint32_t call_info = EX_CALL_INFO() & (ZEND_CALL_NESTED | ZEND_CALL_TOP | ZEND_CALL_RELEASE_THIS); - uint32_t num_args = EX_NUM_ARGS(); - zend_execute_data *call; - - SAVE_OPLINE(); - - if (num_args) { - zval *p = ZEND_CALL_ARG(execute_data, 1); - zval *end = p + num_args; - - args = zend_new_array(num_args); - zend_hash_real_init_packed(args); - ZEND_HASH_FILL_PACKED(args) { - do { - ZEND_HASH_FILL_ADD(p); - p++; - } while (p != end); - } ZEND_HASH_FILL_END(); - } - - call = execute_data; - execute_data = EG(current_execute_data) = EX(prev_execute_data); - - call->func = (fbc->op_array.fn_flags & ZEND_ACC_STATIC) ? fbc->op_array.scope->__callstatic : fbc->op_array.scope->__call; - ZEND_ASSERT(zend_vm_calc_used_stack(2, call->func) <= (size_t)(((char*)EG(vm_stack_end)) - (char*)call)); - ZEND_CALL_NUM_ARGS(call) = 2; - - ZVAL_STR(ZEND_CALL_ARG(call, 1), fbc->common.function_name); - if (args) { - ZVAL_ARR(ZEND_CALL_ARG(call, 2), args); - } else { - ZVAL_EMPTY_ARRAY(ZEND_CALL_ARG(call, 2)); - } - zend_free_trampoline(fbc); - fbc = call->func; - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - if (UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - if (EXPECTED(zend_execute_ex == execute_ex)) { - LOAD_OPLINE_EX(); - ZEND_VM_ENTER_EX(); - } else { - SAVE_OPLINE_EX(); - execute_data = EX(prev_execute_data); - LOAD_OPLINE(); - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - } - } else { - zval retval; - - ZEND_ASSERT(fbc->type == ZEND_INTERNAL_FUNCTION); - - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - zend_vm_stack_free_call_frame(call); - if (ret) { - ZVAL_UNDEF(ret); - } - ZEND_VM_C_GOTO(call_trampoline_end); - } - - if (ret == NULL) { - ret = &retval; - } - - ZVAL_NULL(ret); - if (!zend_execute_internal) { - /* saves one function call if zend_execute_internal is not used */ - fbc->internal_function.handler(call, ret); - } else { - zend_execute_internal(call, ret); - } - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = call->prev_execute_data; - -ZEND_VM_C_LABEL(call_trampoline_end): - zend_vm_stack_free_args(call); - if (ret == &retval) { - zval_ptr_dtor(ret); - } - } - - execute_data = EG(current_execute_data); - - if (!EX(func) || !ZEND_USER_CODE(EX(func)->type) || (call_info & ZEND_CALL_TOP)) { - ZEND_VM_RETURN(); - } - - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - zend_object *object = Z_OBJ(call->This); - OBJ_RELEASE(object); - } - zend_vm_stack_free_call_frame(call); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_OPLINE(); - ZEND_VM_INC_OPCODE(); - ZEND_VM_LEAVE(); -} - -ZEND_VM_HANDLER(182, ZEND_BIND_LEXICAL, TMP, CV, REF) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *closure, *var; - - closure = GET_OP1_ZVAL_PTR(BP_VAR_R); - if (opline->extended_value & ZEND_BIND_REF) { - /* By-ref binding */ - var = GET_OP2_ZVAL_PTR(BP_VAR_W); - if (Z_ISREF_P(var)) { - Z_ADDREF_P(var); - } else { - ZVAL_MAKE_REF_EX(var, 2); - } - } else { - var = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (UNEXPECTED(Z_ISUNDEF_P(var)) && !(opline->extended_value & ZEND_BIND_IMPLICIT)) { - SAVE_OPLINE(); - var = ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZVAL_DEREF(var); - Z_TRY_ADDREF_P(var); - } - - zend_closure_bind_var_ex(closure, - (opline->extended_value & ~(ZEND_BIND_REF|ZEND_BIND_IMPLICIT)), var); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(183, ZEND_BIND_STATIC, CV, UNUSED, REF) -{ - USE_OPLINE - zend_free_op free_op1; - HashTable *ht; - zval *value; - zval *variable_ptr; - - variable_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); - i_zval_ptr_dtor(variable_ptr); - - ht = ZEND_MAP_PTR_GET(EX(func)->op_array.static_variables_ptr); - if (!ht) { - ZEND_ASSERT(EX(func)->op_array.fn_flags & (ZEND_ACC_IMMUTABLE|ZEND_ACC_PRELOADED)); - ht = zend_array_dup(EX(func)->op_array.static_variables); - ZEND_MAP_PTR_SET(EX(func)->op_array.static_variables_ptr, ht); - } else if (GC_REFCOUNT(ht) > 1) { - if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) { - GC_DELREF(ht); - } - ht = zend_array_dup(ht); - ZEND_MAP_PTR_SET(EX(func)->op_array.static_variables_ptr, ht); - } - - value = (zval*)((char*)ht->arData + (opline->extended_value & ~(ZEND_BIND_REF|ZEND_BIND_IMPLICIT))); - - if (opline->extended_value & ZEND_BIND_REF) { - if (Z_TYPE_P(value) == IS_CONSTANT_AST) { - SAVE_OPLINE(); - if (UNEXPECTED(zval_update_constant_ex(value, EX(func)->op_array.scope) != SUCCESS)) { - ZVAL_NULL(variable_ptr); - HANDLE_EXCEPTION(); - } - } - if (UNEXPECTED(!Z_ISREF_P(value))) { - zend_reference *ref = (zend_reference*)emalloc(sizeof(zend_reference)); - GC_SET_REFCOUNT(ref, 2); - GC_TYPE_INFO(ref) = IS_REFERENCE; - ZVAL_COPY_VALUE(&ref->val, value); - ref->sources.ptr = NULL; - Z_REF_P(value) = ref; - Z_TYPE_INFO_P(value) = IS_REFERENCE_EX; - ZVAL_REF(variable_ptr, ref); - } else { - Z_ADDREF_P(value); - ZVAL_REF(variable_ptr, Z_REF_P(value)); - } - } else { - ZVAL_COPY(variable_ptr, value); - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(184, ZEND_FETCH_THIS, UNUSED, UNUSED) -{ - USE_OPLINE - - if (EXPECTED(Z_TYPE(EX(This)) == IS_OBJECT)) { - zval *result = EX_VAR(opline->result.var); - - ZVAL_OBJ(result, Z_OBJ(EX(This))); - Z_ADDREF_P(result); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_DISPATCH_TO_HELPER(zend_this_not_in_object_context_helper); - } -} - -ZEND_VM_HANDLER(186, ZEND_ISSET_ISEMPTY_THIS, UNUSED, UNUSED) -{ - USE_OPLINE - - ZVAL_BOOL(EX_VAR(opline->result.var), - (opline->extended_value & ZEND_ISEMPTY) ^ - (Z_TYPE(EX(This)) == IS_OBJECT)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(49, ZEND_CHECK_VAR, CV, UNUSED) -{ - USE_OPLINE - zval *op1 = EX_VAR(opline->op1.var); - - if (UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(140, ZEND_MAKE_REF, VAR|CV, UNUSED) -{ - USE_OPLINE - zval *op1 = EX_VAR(opline->op1.var); - - if (OP1_TYPE == IS_CV) { - if (UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_NEW_EMPTY_REF(op1); - Z_SET_REFCOUNT_P(op1, 2); - ZVAL_NULL(Z_REFVAL_P(op1)); - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } else { - if (Z_ISREF_P(op1)) { - Z_ADDREF_P(op1); - } else { - ZVAL_MAKE_REF_EX(op1, 2); - } - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_INDIRECT)) { - op1 = Z_INDIRECT_P(op1); - if (EXPECTED(!Z_ISREF_P(op1))) { - ZVAL_MAKE_REF_EX(op1, 2); - } else { - GC_ADDREF(Z_REF_P(op1)); - } - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } else { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), op1); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(187, ZEND_SWITCH_LONG, CONST|TMPVARCV, CONST, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op, *jump_zv; - HashTable *jumptable; - - op = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - jumptable = Z_ARRVAL_P(GET_OP2_ZVAL_PTR(BP_VAR_R)); - - if (Z_TYPE_P(op) != IS_LONG) { - ZVAL_DEREF(op); - if (Z_TYPE_P(op) != IS_LONG) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } - } - - jump_zv = zend_hash_index_find(jumptable, Z_LVAL_P(op)); - if (jump_zv != NULL) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, Z_LVAL_P(jump_zv)); - ZEND_VM_CONTINUE(); - } else { - /* default */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(188, ZEND_SWITCH_STRING, CONST|TMPVARCV, CONST, JMP_ADDR) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op, *jump_zv; - HashTable *jumptable; - - op = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - jumptable = Z_ARRVAL_P(GET_OP2_ZVAL_PTR(BP_VAR_R)); - - if (Z_TYPE_P(op) != IS_STRING) { - if (OP1_TYPE == IS_CONST) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } else { - ZVAL_DEREF(op); - if (Z_TYPE_P(op) != IS_STRING) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } - } - } - - jump_zv = zend_hash_find_ex(jumptable, Z_STR_P(op), OP1_TYPE == IS_CONST); - if (jump_zv != NULL) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, Z_LVAL_P(jump_zv)); - ZEND_VM_CONTINUE(); - } else { - /* default */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } -} - -ZEND_VM_COLD_CONSTCONST_HANDLER(189, ZEND_IN_ARRAY, CONST|TMP|VAR|CV, CONST, NUM) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - HashTable *ht = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - zval *result; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - result = zend_hash_find_ex(ht, Z_STR_P(op1), OP1_TYPE == IS_CONST); - } else if (opline->extended_value) { - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - result = zend_hash_index_find(ht, Z_LVAL_P(op1)); - } else { - result = NULL; - } - } else if (Z_TYPE_P(op1) <= IS_FALSE) { - result = zend_hash_find_ex(ht, ZSTR_EMPTY_ALLOC(), 1); - } else { - zend_string *key; - zval key_tmp, result_tmp, *val; - - result = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) { - ZVAL_STR(&key_tmp, key); - compare_function(&result_tmp, op1, &key_tmp); - if (Z_LVAL(result_tmp) == 0) { - result = val; - break; - } - } ZEND_HASH_FOREACH_END(); - } - FREE_OP1(); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result != NULL); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(190, ZEND_COUNT, CONST|TMPVAR|CV, UNUSED) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - zend_long count; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - while (1) { - if (Z_TYPE_P(op1) == IS_ARRAY) { - count = zend_array_count(Z_ARRVAL_P(op1)); - break; - } else if (Z_TYPE_P(op1) == IS_OBJECT) { - /* first, we check if the handler is defined */ - if (Z_OBJ_HT_P(op1)->count_elements) { - if (SUCCESS == Z_OBJ_HT_P(op1)->count_elements(op1, &count)) { - break; - } - if (UNEXPECTED(EG(exception))) { - count = 0; - break; - } - } - - /* if not and the object implements Countable we call its count() method */ - if (instanceof_function(Z_OBJCE_P(op1), zend_ce_countable)) { - zval retval; - - zend_call_method_with_0_params(op1, NULL, NULL, "count", &retval); - count = zval_get_long(&retval); - zval_ptr_dtor(&retval); - break; - } - - /* If There's no handler and it doesn't implement Countable then add a warning */ - count = 1; - } else if ((OP1_TYPE & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else if (Z_TYPE_P(op1) <= IS_NULL) { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - count = 0; - } else { - count = 1; - } - zend_error(E_WARNING, "%s(): Parameter must be an array or an object that implements Countable", opline->extended_value ? "sizeof" : "count"); - break; - } - - ZVAL_LONG(EX_VAR(opline->result.var), count); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_COLD_CONST_HANDLER(191, ZEND_GET_CLASS, UNUSED|CONST|TMPVAR|CV, UNUSED) -{ - USE_OPLINE - - if (OP1_TYPE == IS_UNUSED) { - if (UNEXPECTED(!EX(func)->common.scope)) { - SAVE_OPLINE(); - zend_error(E_WARNING, "get_class() called without object from outside a class"); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), EX(func)->common.scope->name); - ZEND_VM_NEXT_OPCODE(); - } - } else { - zend_free_op free_op1; - zval *op1; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - while (1) { - if (Z_TYPE_P(op1) == IS_OBJECT) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_OBJCE_P(op1)->name); - } else if ((OP1_TYPE & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else { - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_error(E_WARNING, "get_class() expects parameter 1 to be object, %s given", zend_get_type_by_const(Z_TYPE_P(op1))); - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - break; - } - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -ZEND_VM_HANDLER(192, ZEND_GET_CALLED_CLASS, UNUSED, UNUSED) -{ - USE_OPLINE - - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_OBJCE(EX(This))->name); - } else if (Z_CE(EX(This))) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_CE(EX(This))->name); - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (UNEXPECTED(!EX(func)->common.scope)) { - SAVE_OPLINE(); - zend_error(E_WARNING, "get_called_class() called from outside a class"); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_COLD_CONST_HANDLER(193, ZEND_GET_TYPE, CONST|TMP|VAR|CV, UNUSED) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - zend_string *type; - - SAVE_OPLINE(); - op1 = GET_OP1_ZVAL_PTR_DEREF(BP_VAR_R); - type = zend_zval_get_type(op1); - if (EXPECTED(type)) { - ZVAL_INTERNED_STR(EX_VAR(opline->result.var), type); - } else { - ZVAL_STRING(EX_VAR(opline->result.var), "unknown type"); - } - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HANDLER(171, ZEND_FUNC_NUM_ARGS, UNUSED, UNUSED) -{ - USE_OPLINE - - ZVAL_LONG(EX_VAR(opline->result.var), EX_NUM_ARGS()); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(172, ZEND_FUNC_GET_ARGS, UNUSED|CONST, UNUSED) -{ - USE_OPLINE - zend_array *ht; - uint32_t arg_count, result_size, skip; - - arg_count = EX_NUM_ARGS(); - if (OP1_TYPE == IS_CONST) { - skip = Z_LVAL_P(RT_CONSTANT(opline, opline->op1)); - if (arg_count < skip) { - result_size = 0; - } else { - result_size = arg_count - skip; - } - } else { - skip = 0; - result_size = arg_count; - } - - if (result_size) { - uint32_t first_extra_arg = EX(func)->op_array.num_args; - - ht = zend_new_array(result_size); - ZVAL_ARR(EX_VAR(opline->result.var), ht); - zend_hash_real_init_packed(ht); - ZEND_HASH_FILL_PACKED(ht) { - zval *p, *q; - uint32_t i = skip; - p = EX_VAR_NUM(i); - if (arg_count > first_extra_arg) { - while (i < first_extra_arg) { - q = p; - if (EXPECTED(Z_TYPE_INFO_P(q) != IS_UNDEF)) { - ZVAL_DEREF(q); - if (Z_OPT_REFCOUNTED_P(q)) { - Z_ADDREF_P(q); - } - ZEND_HASH_FILL_SET(q); - } else { - ZEND_HASH_FILL_SET_NULL(); - } - ZEND_HASH_FILL_NEXT(); - p++; - i++; - } - if (skip < first_extra_arg) { - skip = 0; - } else { - skip -= first_extra_arg; - } - p = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T + skip); - } - while (i < arg_count) { - q = p; - if (EXPECTED(Z_TYPE_INFO_P(q) != IS_UNDEF)) { - ZVAL_DEREF(q); - if (Z_OPT_REFCOUNTED_P(q)) { - Z_ADDREF_P(q); - } - ZEND_HASH_FILL_SET(q); - } else { - ZEND_HASH_FILL_SET_NULL(); - } - ZEND_HASH_FILL_NEXT(); - p++; - i++; - } - } ZEND_HASH_FILL_END(); - ht->nNumOfElements = result_size; - } else { - ZVAL_EMPTY_ARRAY(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HANDLER(167, ZEND_COPY_TMP, TMPVAR, UNUSED) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value = GET_OP1_ZVAL_PTR(BP_VAR_R); - zval *result = EX_VAR(opline->result.var); - ZVAL_COPY(result, value); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_JMP, (OP_JMP_ADDR(op, op->op1) > op), ZEND_JMP_FORWARD, JMP_ADDR, ANY) -{ - USE_OPLINE - - OPLINE = OP_JMP_ADDR(opline, opline->op1); - ZEND_VM_CONTINUE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_ADD, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_ADD_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) + Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_ADD, (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_ADD_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_ADD, (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE), ZEND_ADD_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) + Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_SUB, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_SUB_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) - Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_SUB, (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_SUB_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_SUB, (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE), ZEND_SUB_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) - Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_MUL, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_MUL_LONG_NO_OVERFLOW, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) * Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_MUL, (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_MUL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2, *result; - zend_long overflow; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1), Z_LVAL_P(op2), Z_LVAL_P(result), Z_DVAL_P(result), overflow); - Z_TYPE_INFO_P(result) = overflow ? IS_DOUBLE : IS_LONG; - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_MUL, (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE), ZEND_MUL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) * Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_IS_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_LVAL_P(op1) == Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_EQUAL, (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE), ZEND_IS_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_DVAL_P(op1) == Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_IS_NOT_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_LVAL_P(op1) != Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_NOT_EQUAL, (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE), ZEND_IS_NOT_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST,COMMUTATIVE)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_DVAL_P(op1) != Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_IS_SMALLER_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER, (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE), ZEND_IS_SMALLER_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG), ZEND_IS_SMALLER_OR_EQUAL_LONG, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_IS_SMALLER_OR_EQUAL, (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE), ZEND_IS_SMALLER_OR_EQUAL_DOUBLE, CONST|TMPVARCV, CONST|TMPVARCV, SPEC(SMART_BRANCH,NO_CONST_CONST)) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - op2 = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_PRE_INC, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG), ZEND_PRE_INC_LONG_NO_OVERFLOW, CV, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - Z_LVAL_P(var_ptr)++; - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_PRE_INC, (op1_info == MAY_BE_LONG), ZEND_PRE_INC_LONG, CV, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - fast_long_increment_function(var_ptr); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG), ZEND_PRE_DEC_LONG_NO_OVERFLOW, CV, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - Z_LVAL_P(var_ptr)--; - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_PRE_DEC, (op1_info == MAY_BE_LONG), ZEND_PRE_DEC_LONG, CV, ANY, SPEC(RETVAL)) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_POST_INC, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG), ZEND_POST_INC_LONG_NO_OVERFLOW, CV, ANY) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - Z_LVAL_P(var_ptr)++; - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_POST_INC, (op1_info == MAY_BE_LONG), ZEND_POST_INC_LONG, CV, ANY) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_increment_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_POST_DEC, (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG), ZEND_POST_DEC_LONG_NO_OVERFLOW, CV, ANY) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - Z_LVAL_P(var_ptr)--; - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_POST_DEC, (op1_info == MAY_BE_LONG), ZEND_POST_DEC_LONG, CV, ANY) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_RW); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_decrement_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_QM_ASSIGN, (op1_info == MAY_BE_LONG), ZEND_QM_ASSIGN_LONG, CONST|TMPVARCV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - - value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(value)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_QM_ASSIGN, (op1_info == MAY_BE_DOUBLE), ZEND_QM_ASSIGN_DOUBLE, CONST|TMPVARCV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - - value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - ZVAL_DOUBLE(EX_VAR(opline->result.var), Z_DVAL_P(value)); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_QM_ASSIGN, ((op->op1_type == IS_CONST) ? !Z_REFCOUNTED_P(RT_CONSTANT(op, op->op1)) : (!(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE))))), ZEND_QM_ASSIGN_NOREF, CONST|TMPVARCV, ANY) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - - value = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_FETCH_DIM_R, (!(op2_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))), ZEND_FETCH_DIM_R_INDEX, CONST|TMPVAR|CV, CONST|TMPVARCV, SPEC(NO_CONST_CONST)) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *dim, *value; - zend_long offset; - HashTable *ht; - - container = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - dim = GET_OP2_ZVAL_PTR_UNDEF(BP_VAR_R); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -ZEND_VM_C_LABEL(fetch_dim_r_index_array): - if (EXPECTED(Z_TYPE_P(dim) == IS_LONG)) { - offset = Z_LVAL_P(dim); - } else { - offset = zval_get_long(dim); - } - ht = Z_ARRVAL_P(container); - ZEND_HASH_INDEX_FIND(ht, offset, value, ZEND_VM_C_LABEL(fetch_dim_r_index_undef)); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - if (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } else if (OP1_TYPE != IS_CONST && EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - ZEND_VM_C_GOTO(fetch_dim_r_index_array); - } else { - ZEND_VM_C_GOTO(fetch_dim_r_index_slow); - } - } else { -ZEND_VM_C_LABEL(fetch_dim_r_index_slow): - SAVE_OPLINE(); - if (OP2_TYPE == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - -ZEND_VM_C_LABEL(fetch_dim_r_index_undef): - ZVAL_NULL(EX_VAR(opline->result.var)); - SAVE_OPLINE(); - zend_undefined_offset(offset); - FREE_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_SEND_VAR, (op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0, ZEND_SEND_VAR_SIMPLE, CV|VAR, NUM) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - - varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (OP1_TYPE == IS_CV) { - ZVAL_COPY(arg, varptr); - } else /* if (OP1_TYPE == IS_VAR) */ { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_SEND_VAR_EX, op->op2.num <= MAX_ARG_FLAG_NUM && (op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0, ZEND_SEND_VAR_EX_SIMPLE, CV|VAR, NUM) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_DISPATCH_TO_HANDLER(ZEND_SEND_REF); - } - - varptr = GET_OP1_ZVAL_PTR_UNDEF(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (OP1_TYPE == IS_CV) { - ZVAL_COPY(arg, varptr); - } else /* if (OP1_TYPE == IS_VAR) */ { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_SEND_VAL, op->op1_type == IS_CONST && !Z_REFCOUNTED_P(RT_CONSTANT(op, op->op1)), ZEND_SEND_VAL_SIMPLE, CONST, NUM) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - - value = GET_OP1_ZVAL_PTR(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_SEND_VAL_EX, op->op2.num <= MAX_ARG_FLAG_NUM && op->op1_type == IS_CONST && !Z_REFCOUNTED_P(RT_CONSTANT(op, op->op1)), ZEND_SEND_VAL_EX_SIMPLE, CONST, NUM) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (QUICK_ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_DISPATCH_TO_HELPER(zend_cannot_pass_by_ref_helper); - } - value = GET_OP1_ZVAL_PTR(BP_VAR_R); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - ZEND_VM_NEXT_OPCODE(); -} - -ZEND_VM_HOT_TYPE_SPEC_HANDLER(ZEND_FE_FETCH_R, op->op2_type == IS_CV && (op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_ARRAY, ZEND_FE_FETCH_R_SIMPLE, VAR, CV, JMP_ADDR, SPEC(RETVAL)) -{ - USE_OPLINE - zval *array; - zval *value, *variable_ptr; - uint32_t value_type; - HashTable *fe_ht; - HashPosition pos; - Bucket *p; - - array = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - fe_ht = Z_ARRVAL_P(array); - pos = Z_FE_POS_P(array); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - break; - } - } else { - break; - } - } - pos++; - p++; - } - Z_FE_POS_P(array) = pos + 1; - if (RETURN_VALUE_USED(opline)) { - if (!p->key) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } - } - - variable_ptr = EX_VAR(opline->op2.var); - zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -ZEND_VM_DEFINE_OP(137, ZEND_OP_DATA); - -ZEND_VM_HELPER(zend_interrupt_helper, ANY, ANY) -{ - EG(vm_interrupt) = 0; - SAVE_OPLINE(); - if (EG(timed_out)) { - zend_timeout(0); - } else if (zend_interrupt_function) { - zend_interrupt_function(execute_data); - ZEND_VM_ENTER(); - } - ZEND_VM_CONTINUE(); -} diff --git a/include/php/Zend/zend_vm_execute.h b/include/php/Zend/zend_vm_execute.h deleted file mode 100644 index 2875fd3..0000000 --- a/include/php/Zend/zend_vm_execute.h +++ /dev/null @@ -1,61479 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifdef ZEND_WIN32 -# pragma warning(disable : 4101) -# pragma warning(once : 6235) -# pragma warning(once : 6237) -# pragma warning(once : 6239) -# pragma warning(once : 6240) -# pragma warning(once : 6285) -# pragma warning(once : 6286) -# pragma warning(once : 6326) -#endif -static user_opcode_handler_t zend_user_opcode_handlers[256] = { - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL, - (user_opcode_handler_t)NULL -}; - -static zend_uchar zend_user_opcodes[256] = {0, - 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64, - 65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80, - 81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96, - 97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, - 113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128, - 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144, - 145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160, - 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, - 177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192, - 193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208, - 209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224, - 225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240, - 241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 -}; - -#define SPEC_START_MASK 0x0000ffff -#define SPEC_EXTRA_MASK 0xfffc0000 -#define SPEC_RULE_OP1 0x00010000 -#define SPEC_RULE_OP2 0x00020000 -#define SPEC_RULE_OP_DATA 0x00040000 -#define SPEC_RULE_RETVAL 0x00080000 -#define SPEC_RULE_QUICK_ARG 0x00100000 -#define SPEC_RULE_SMART_BRANCH 0x00200000 -#define SPEC_RULE_COMMUTATIVE 0x00800000 -#define SPEC_RULE_ISSET 0x01000000 - -static const uint32_t *zend_spec_handlers; -static const void * const *zend_opcode_handlers; -static int zend_handlers_count; -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) -static const void * const * zend_opcode_handler_funcs; -static zend_op hybrid_halt_op; -#endif -#if (ZEND_VM_KIND != ZEND_VM_KIND_HYBRID) || !ZEND_VM_SPEC -static const void *zend_vm_get_opcode_handler(zend_uchar opcode, const zend_op* op); -#endif - -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) -static const void *zend_vm_get_opcode_handler_func(zend_uchar opcode, const zend_op* op); -#else -# define zend_vm_get_opcode_handler_func zend_vm_get_opcode_handler -#endif - -#ifndef VM_TRACE -# define VM_TRACE(op) -#endif -#ifndef VM_TRACE_START -# define VM_TRACE_START() -#endif -#ifndef VM_TRACE_END -# define VM_TRACE_END() -#endif -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) -#define HYBRID_NEXT() goto *(void**)(OPLINE->handler) -#define HYBRID_SWITCH() HYBRID_NEXT(); -#define HYBRID_CASE(op) op ## _LABEL -#define HYBRID_BREAK() HYBRID_NEXT() -#define HYBRID_DEFAULT ZEND_NULL_LABEL -#endif - -#ifdef ZEND_VM_FP_GLOBAL_REG -# define ZEND_OPCODE_HANDLER_ARGS void -# define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU -# define ZEND_OPCODE_HANDLER_ARGS_DC -# define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC -#else -# define ZEND_OPCODE_HANDLER_ARGS zend_execute_data *execute_data -# define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU execute_data -# define ZEND_OPCODE_HANDLER_ARGS_DC , ZEND_OPCODE_HANDLER_ARGS -# define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC , ZEND_OPCODE_HANDLER_ARGS_PASSTHRU -#endif - -#if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG) -# define ZEND_OPCODE_HANDLER_RET void -# define ZEND_VM_TAIL_CALL(call) call; return -# ifdef ZEND_VM_TAIL_CALL_DISPATCH -# define ZEND_VM_CONTINUE() ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); return -# else -# define ZEND_VM_CONTINUE() return -# endif -# if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) -# define ZEND_VM_RETURN() opline = &hybrid_halt_op; return -# define ZEND_VM_HOT zend_always_inline ZEND_COLD ZEND_OPT_SIZE -# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE -# else -# define ZEND_VM_RETURN() opline = NULL; return -# define ZEND_VM_HOT -# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE -# endif -#else -# define ZEND_OPCODE_HANDLER_RET int -# define ZEND_VM_TAIL_CALL(call) return call -# define ZEND_VM_CONTINUE() return 0 -# define ZEND_VM_RETURN() return -1 -# define ZEND_VM_HOT -# define ZEND_VM_COLD ZEND_COLD ZEND_OPT_SIZE -#endif - -typedef ZEND_OPCODE_HANDLER_RET (ZEND_FASTCALL *opcode_handler_t) (ZEND_OPCODE_HANDLER_ARGS); - -#undef OPLINE -#undef DCL_OPLINE -#undef USE_OPLINE -#undef LOAD_OPLINE -#undef LOAD_OPLINE_EX -#undef SAVE_OPLINE -#undef SAVE_OPLINE_EX -#define DCL_OPLINE -#ifdef ZEND_VM_IP_GLOBAL_REG -# define OPLINE opline -# define USE_OPLINE -# define LOAD_OPLINE() opline = EX(opline) -# define LOAD_OPLINE_EX() -# define LOAD_NEXT_OPLINE() opline = EX(opline) + 1 -# define SAVE_OPLINE() EX(opline) = opline -# define SAVE_OPLINE_EX() SAVE_OPLINE() -#else -# define OPLINE EX(opline) -# define USE_OPLINE const zend_op *opline = EX(opline); -# define LOAD_OPLINE() -# define LOAD_OPLINE_EX() -# define LOAD_NEXT_OPLINE() ZEND_VM_INC_OPCODE() -# define SAVE_OPLINE() -# define SAVE_OPLINE_EX() -#endif -#undef HANDLE_EXCEPTION -#undef HANDLE_EXCEPTION_LEAVE -#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE() -#define HANDLE_EXCEPTION_LEAVE() LOAD_OPLINE(); ZEND_VM_LEAVE() -#if defined(ZEND_VM_FP_GLOBAL_REG) -# define ZEND_VM_ENTER_EX() ZEND_VM_INTERRUPT_CHECK(); ZEND_VM_CONTINUE() -# define ZEND_VM_ENTER() execute_data = EG(current_execute_data); LOAD_OPLINE(); ZEND_VM_ENTER_EX() -# define ZEND_VM_LEAVE() ZEND_VM_CONTINUE() -#elif defined(ZEND_VM_IP_GLOBAL_REG) -# define ZEND_VM_ENTER_EX() return 1 -# define ZEND_VM_ENTER() opline = EG(current_execute_data)->opline; ZEND_VM_ENTER_EX() -# define ZEND_VM_LEAVE() return 2 -#else -# define ZEND_VM_ENTER_EX() return 1 -# define ZEND_VM_ENTER() return 1 -# define ZEND_VM_LEAVE() return 2 -#endif -#define ZEND_VM_INTERRUPT() ZEND_VM_TAIL_CALL(zend_interrupt_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -#define ZEND_VM_LOOP_INTERRUPT() zend_interrupt_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); -#define ZEND_VM_DISPATCH(opcode, opline) ZEND_VM_TAIL_CALL(((opcode_handler_t)zend_vm_get_opcode_handler_func(opcode, opline))(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_interrupt_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS); -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS); - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_add_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - add_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_sub_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - sub_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_mul_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - mul_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_mod_by_zero_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_exception_ex(zend_ce_division_by_zero_error, 0, "Modulo by zero"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_mod_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - mod_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_shift_left_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - shift_left_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_shift_right_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - shift_right_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_equal_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_not_equal_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) != 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_smaller_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) < 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_is_smaller_or_equal_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) <= 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_bw_or_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - bitwise_or_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_bw_and_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - bitwise_and_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_bw_xor_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - bitwise_xor_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_1); - } - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Using $this when not in object context"); - if ((opline+1)->opcode == ZEND_OP_DATA) { - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - } - FREE_UNFETCHED_OP(opline->op2_type, opline->op2.var); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); -} - -static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_undefined_function_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - - SAVE_OPLINE(); - function_name = RT_CONSTANT(opline, opline->op2); - zend_throw_error(NULL, "Call to undefined function %s()", Z_STRVAL_P(function_name)); - HANDLE_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_OP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - /* This helper actually never will receive IS_VAR as second op, and has the same handling for VAR and TMP in the first op, but for interoperability with the other binary_assign_op helpers, it is necessary to "include" it */ - - USE_OPLINE - zend_free_op free_op_data; - zval *prop, *value; - zend_property_info *prop_info; - zend_reference *ref; - - SAVE_OPLINE(); - - if (UNEXPECTED(zend_fetch_static_property_address(&prop, &prop_info, (opline+1)->extended_value, BP_VAR_RW, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS)) { - ZEND_ASSERT(EG(exception)); - UNDEF_RESULT(); - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - HANDLE_EXCEPTION(); - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - do { - if (UNEXPECTED(Z_ISREF_P(prop))) { - ref = Z_REF_P(prop); - prop = Z_REFVAL_P(prop); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (UNEXPECTED(prop_info->type)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, prop, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(prop, prop, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), prop); - } - - FREE_OP(free_op_data); - /* assign_static_prop has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *prop; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_RW, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - zend_pre_incdec_property_zval(prop, prop_info->type ? prop_info : NULL OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *prop; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_RW, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - zend_post_incdec_property_zval(prop, prop_info->type ? prop_info : NULL OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC(int type ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - zval *prop; - - SAVE_OPLINE(); - - if (UNEXPECTED(zend_fetch_static_property_address(&prop, NULL, opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS, type, opline->extended_value & ZEND_FETCH_OBJ_FLAGS OPLINE_CC EXECUTE_DATA_CC) != SUCCESS)) { - ZEND_ASSERT(EG(exception) || (type == BP_VAR_IS)); - prop = &EG(uninitialized_zval); - } - - if (type == BP_VAR_R || type == BP_VAR_IS) { - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), prop); - } else { - ZVAL_INDIRECT(EX_VAR(opline->result.var), prop); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_R_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_W_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_RW_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC(BP_VAR_RW ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - int fetch_type = - (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) ? - BP_VAR_W : BP_VAR_R; - ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC(fetch_type ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_UNSET_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC(BP_VAR_UNSET ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_STATIC_PROP_IS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_static_prop_helper_SPEC(BP_VAR_IS ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot use temporary expression in write context"); - FREE_UNFETCHED_OP(opline->op2_type, opline->op2.var); - FREE_UNFETCHED_OP(opline->op1_type, opline->op1.var); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); -} - -static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot use [] for reading"); - FREE_UNFETCHED_OP(opline->op2_type, opline->op2.var); - FREE_UNFETCHED_OP(opline->op1_type, opline->op1.var); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *prop, *value; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_W, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (UNEXPECTED(prop_info->type)) { - value = zend_assign_to_typed_prop(prop_info, prop, value EXECUTE_DATA_CC); - - } else { - value = zend_assign_to_variable(prop, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* assign_static_prop has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *prop, *value; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_W, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (UNEXPECTED(prop_info->type)) { - value = zend_assign_to_typed_prop(prop_info, prop, value EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } else { - value = zend_assign_to_variable(prop, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* assign_static_prop has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *prop, *value; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_W, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (UNEXPECTED(prop_info->type)) { - value = zend_assign_to_typed_prop(prop_info, prop, value EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } else { - value = zend_assign_to_variable(prop, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* assign_static_prop has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *prop, *value; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value, BP_VAR_W, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (UNEXPECTED(prop_info->type)) { - value = zend_assign_to_typed_prop(prop_info, prop, value EXECUTE_DATA_CC); - - } else { - value = zend_assign_to_variable(prop, value, IS_CV, EX_USES_STRICT_TYPES()); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* assign_static_prop has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_REF_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *prop, *value_ptr; - zend_property_info *prop_info; - - SAVE_OPLINE(); - - if (zend_fetch_static_property_address(&prop, &prop_info, opline->extended_value & ~ZEND_RETURNS_FUNCTION, BP_VAR_W, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - value_ptr = get_zval_ptr_ptr((opline+1)->op1_type, (opline+1)->op1, &free_op_data, BP_VAR_W); - - if ((opline+1)->op1_type == IS_VAR && UNEXPECTED(Z_ISERROR_P(value_ptr))) { - prop = &EG(uninitialized_zval); - } else if ((opline+1)->op1_type == IS_VAR && (opline->extended_value & ZEND_RETURNS_FUNCTION) && UNEXPECTED(!Z_ISREF_P(value_ptr))) { - if (UNEXPECTED(!zend_wrong_assign_to_variable_reference(prop, value_ptr OPLINE_CC EXECUTE_DATA_CC))) { - prop = &EG(uninitialized_zval); - } - } else if (UNEXPECTED(prop_info->type)) { - prop = zend_assign_to_typed_property_reference(prop_info, prop, value_ptr EXECUTE_DATA_CC); - } else { - zend_assign_to_variable_reference(prop, value_ptr); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), prop); - } - - if (free_op_data) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - zend_execute_data *old_execute_data; - uint32_t call_info = EX_CALL_INFO(); - SAVE_OPLINE(); - - if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(execute_data->This)); - } else if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - EG(vm_stack_top) = (zval*)execute_data; - execute_data = EX(prev_execute_data); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } - - /* Free extra args before releasing the closure, - * as that may free the op_array. */ - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(execute_data->This)); - } else if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - - old_execute_data = execute_data; - execute_data = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & ZEND_CALL_TOP) == 0)) { - zend_detach_symbol_table(execute_data); - destroy_op_array(&EX(func)->op_array); - efree_size(EX(func), sizeof(zend_op_array)); -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - old_execute_data = execute_data; - execute_data = EG(current_execute_data) = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - - zend_attach_symbol_table(execute_data); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else { - if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - } - if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - ZEND_VM_RETURN(); - } else /* if (call_kind == ZEND_CALL_TOP_CODE) */ { - zend_array *symbol_table = EX(symbol_table); - - zend_detach_symbol_table(execute_data); - old_execute_data = EX(prev_execute_data); - while (old_execute_data) { - if (old_execute_data->func && (ZEND_CALL_INFO(old_execute_data) & ZEND_CALL_HAS_SYMBOL_TABLE)) { - if (old_execute_data->symbol_table == symbol_table) { - zend_attach_symbol_table(old_execute_data); - } - break; - } - old_execute_data = old_execute_data->prev_execute_data; - } - EG(current_execute_data) = EX(prev_execute_data); - ZEND_VM_RETURN(); - } - } -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op1), 0); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_ICALL_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - zval retval; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - ret = 0 ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - fbc->internal_function.handler(call, ret); - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - zend_vm_stack_free_args(call); - zend_vm_stack_free_call_frame(call); - - if (!0) { - i_zval_ptr_dtor(ret); - } - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - zval retval; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - ret = 1 ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - fbc->internal_function.handler(call, ret); - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - zend_vm_stack_free_args(call); - zend_vm_stack_free_call_frame(call); - - if (!1) { - i_zval_ptr_dtor(ret); - } - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_UCALL_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - ret = NULL; - if (0) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - LOAD_OPLINE_EX(); - - ZEND_VM_ENTER_EX(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_UCALL_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - ret = NULL; - if (1) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - LOAD_OPLINE_EX(); - - ZEND_VM_ENTER_EX(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - ret = NULL; - if (0) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - LOAD_OPLINE_EX(); - - ZEND_VM_ENTER_EX(); - } else { - zval retval; - ZEND_ASSERT(fbc->type == ZEND_INTERNAL_FUNCTION); - - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) { - zend_deprecated_function(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - if (!0) { - ret = &retval; - ZVAL_UNDEF(ret); - } - goto fcall_by_name_end; - } - } - - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - UNDEF_RESULT(); - if (!0) { - ret = &retval; - ZVAL_UNDEF(ret); - } - goto fcall_by_name_end; - } - - ret = 0 ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - fbc->internal_function.handler(call, ret); - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - -fcall_by_name_end: - zend_vm_stack_free_args(call); - zend_vm_stack_free_call_frame(call); - - if (!0) { - i_zval_ptr_dtor(ret); - } - } - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - ret = NULL; - if (1) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - LOAD_OPLINE_EX(); - - ZEND_VM_ENTER_EX(); - } else { - zval retval; - ZEND_ASSERT(fbc->type == ZEND_INTERNAL_FUNCTION); - - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_DEPRECATED) != 0)) { - zend_deprecated_function(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - if (!1) { - ret = &retval; - ZVAL_UNDEF(ret); - } - goto fcall_by_name_end; - } - } - - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - UNDEF_RESULT(); - if (!1) { - ret = &retval; - ZVAL_UNDEF(ret); - } - goto fcall_by_name_end; - } - - ret = 1 ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - fbc->internal_function.handler(call, ret); - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - -fcall_by_name_end: - zend_vm_stack_free_args(call); - zend_vm_stack_free_call_frame(call); - - if (!1) { - i_zval_ptr_dtor(ret); - } - } - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - zval retval; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) { - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) { - zend_abstract_method(fbc); -fcall_except: - UNDEF_RESULT(); - if (!0) { - ret = &retval; - ZVAL_UNDEF(ret); - } - goto fcall_end; - } else { - zend_deprecated_function(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - goto fcall_except; - } - } - } - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - ret = NULL; - if (0) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 1 EXECUTE_DATA_CC); - - if (EXPECTED(zend_execute_ex == execute_ex)) { - LOAD_OPLINE_EX(); - ZEND_VM_ENTER_EX(); - } else { - SAVE_OPLINE_EX(); - execute_data = EX(prev_execute_data); - LOAD_OPLINE(); - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - } - } else if (EXPECTED(fbc->type < ZEND_USER_FUNCTION)) { - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - goto fcall_except; - } - - ret = 0 ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - if (!zend_execute_internal) { - /* saves one function call if zend_execute_internal is not used */ - fbc->internal_function.handler(call, ret); - } else { - zend_execute_internal(call, ret); - } - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - -fcall_end: - zend_vm_stack_free_args(call); - if (!0) { - i_zval_ptr_dtor(ret); - } - } else { /* ZEND_OVERLOADED_FUNCTION */ - ret = 0 ? EX_VAR(opline->result.var) : &retval; - - call->prev_execute_data = execute_data; - - if (UNEXPECTED(!zend_do_fcall_overloaded(call, ret))) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (!0) { - zval_ptr_dtor(ret); - } - } - - if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(call->This)); - } - - zend_vm_stack_free_call_frame(call); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DO_FCALL_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_execute_data *call = EX(call); - zend_function *fbc = call->func; - zval *ret; - zval retval; - - SAVE_OPLINE(); - EX(call) = call->prev_execute_data; - if (UNEXPECTED((fbc->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) != 0)) { - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_ABSTRACT) != 0)) { - zend_abstract_method(fbc); -fcall_except: - UNDEF_RESULT(); - if (!1) { - ret = &retval; - ZVAL_UNDEF(ret); - } - goto fcall_end; - } else { - zend_deprecated_function(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - goto fcall_except; - } - } - } - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - ret = NULL; - if (1) { - ret = EX_VAR(opline->result.var); - } - - call->prev_execute_data = execute_data; - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 1 EXECUTE_DATA_CC); - - if (EXPECTED(zend_execute_ex == execute_ex)) { - LOAD_OPLINE_EX(); - ZEND_VM_ENTER_EX(); - } else { - SAVE_OPLINE_EX(); - execute_data = EX(prev_execute_data); - LOAD_OPLINE(); - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - } - } else if (EXPECTED(fbc->type < ZEND_USER_FUNCTION)) { - call->prev_execute_data = execute_data; - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - goto fcall_except; - } - - ret = 1 ? EX_VAR(opline->result.var) : &retval; - ZVAL_NULL(ret); - - if (!zend_execute_internal) { - /* saves one function call if zend_execute_internal is not used */ - fbc->internal_function.handler(call, ret); - } else { - zend_execute_internal(call, ret); - } - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = execute_data; - -fcall_end: - zend_vm_stack_free_args(call); - if (!1) { - i_zval_ptr_dtor(ret); - } - } else { /* ZEND_OVERLOADED_FUNCTION */ - ret = 1 ? EX_VAR(opline->result.var) : &retval; - - call->prev_execute_data = execute_data; - - if (UNEXPECTED(!zend_do_fcall_overloaded(call, ret))) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (!1) { - zval_ptr_dtor(ret); - } - } - - if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(call->This)); - } - - zend_vm_stack_free_call_frame(call); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - - ZEND_VM_SET_OPCODE(opline + 1); - ZEND_VM_CONTINUE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_CREATE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *return_value = EX(return_value); - - if (EXPECTED(return_value)) { - USE_OPLINE - zend_generator *generator; - zend_execute_data *gen_execute_data; - uint32_t num_args, used_stack, call_info; - - object_init_ex(return_value, zend_ce_generator); - - /* - * Normally the execute_data is allocated on the VM stack (because it does - * not actually do any allocation and thus is faster). For generators - * though this behavior would be suboptimal, because the (rather large) - * structure would have to be copied back and forth every time execution is - * suspended or resumed. That's why for generators the execution context - * is allocated on heap. - */ - num_args = EX_NUM_ARGS(); - if (EXPECTED(num_args <= EX(func)->op_array.num_args)) { - used_stack = (ZEND_CALL_FRAME_SLOT + EX(func)->op_array.last_var + EX(func)->op_array.T) * sizeof(zval); - gen_execute_data = (zend_execute_data*)emalloc(used_stack); - used_stack = (ZEND_CALL_FRAME_SLOT + EX(func)->op_array.last_var) * sizeof(zval); - } else { - used_stack = (ZEND_CALL_FRAME_SLOT + num_args + EX(func)->op_array.last_var + EX(func)->op_array.T - EX(func)->op_array.num_args) * sizeof(zval); - gen_execute_data = (zend_execute_data*)emalloc(used_stack); - } - memcpy(gen_execute_data, execute_data, used_stack); - - /* Save execution context in generator object. */ - generator = (zend_generator *) Z_OBJ_P(EX(return_value)); - generator->execute_data = gen_execute_data; - generator->frozen_call_stack = NULL; - generator->execute_fake.opline = NULL; - generator->execute_fake.func = NULL; - generator->execute_fake.prev_execute_data = NULL; - ZVAL_OBJ(&generator->execute_fake.This, (zend_object *) generator); - - gen_execute_data->opline = opline + 1; - /* EX(return_value) keeps pointer to zend_object (not a real zval) */ - gen_execute_data->return_value = (zval*)generator; - call_info = Z_TYPE_INFO(EX(This)); - if ((call_info & Z_TYPE_MASK) == IS_OBJECT - && (!(call_info & (ZEND_CALL_CLOSURE|ZEND_CALL_RELEASE_THIS)) - /* Bug #72523 */ - || UNEXPECTED(zend_execute_ex != execute_ex))) { - ZEND_ADD_CALL_FLAG_EX(call_info, ZEND_CALL_RELEASE_THIS); - Z_ADDREF(gen_execute_data->This); - } - ZEND_ADD_CALL_FLAG_EX(call_info, (ZEND_CALL_TOP_FUNCTION | ZEND_CALL_ALLOCATED | ZEND_CALL_GENERATOR)); - Z_TYPE_INFO(gen_execute_data->This) = call_info; - gen_execute_data->prev_execute_data = NULL; - - call_info = EX_CALL_INFO(); - EG(current_execute_data) = EX(prev_execute_data); - if (EXPECTED(!(call_info & (ZEND_CALL_TOP|ZEND_CALL_ALLOCATED)))) { - EG(vm_stack_top) = (zval*)execute_data; - execute_data = EX(prev_execute_data); - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED(!(call_info & ZEND_CALL_TOP))) { - zend_execute_data *old_execute_data = execute_data; - execute_data = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else { - ZEND_VM_RETURN(); - } - } else { - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_cannot_pass_by_ref_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *arg; - uint32_t arg_num = opline->op2.num; - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot pass parameter %d by reference", arg_num); - FREE_UNFETCHED_OP(opline->op1_type, opline->op1.var); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_UNDEF(arg); - HANDLE_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_UNPACK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *args; - int arg_num; - - SAVE_OPLINE(); - args = get_zval_ptr_undef(opline->op1_type, opline->op1, &free_op1, BP_VAR_R); - arg_num = ZEND_CALL_NUM_ARGS(EX(call)) + 1; - -send_again: - if (EXPECTED(Z_TYPE_P(args) == IS_ARRAY)) { - HashTable *ht = Z_ARRVAL_P(args); - zval *arg, *top; - zend_string *name; - - zend_vm_stack_extend_call_frame(&EX(call), arg_num - 1, zend_hash_num_elements(ht)); - - if ((opline->op1_type & (IS_VAR|IS_CV)) && Z_REFCOUNT_P(args) > 1) { - uint32_t i; - int separate = 0; - - /* check if any of arguments are going to be passed by reference */ - for (i = 0; i < zend_hash_num_elements(ht); i++) { - if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num + i)) { - separate = 1; - break; - } - } - if (separate) { - SEPARATE_ARRAY(args); - ht = Z_ARRVAL_P(args); - } - } - - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, name, arg) { - if (name) { - zend_throw_error(NULL, "Cannot unpack array with string keys"); - FREE_OP(free_op1); - HANDLE_EXCEPTION(); - } - - top = ZEND_CALL_ARG(EX(call), arg_num); - if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - if (Z_ISREF_P(arg)) { - Z_ADDREF_P(arg); - ZVAL_REF(top, Z_REF_P(arg)); - } else if (opline->op1_type & (IS_VAR|IS_CV)) { - /* array is already separated above */ - ZVAL_MAKE_REF_EX(arg, 2); - ZVAL_REF(top, Z_REF_P(arg)); - } else { - Z_TRY_ADDREF_P(arg); - ZVAL_NEW_REF(top, arg); - } - } else { - ZVAL_COPY_DEREF(top, arg); - } - - ZEND_CALL_NUM_ARGS(EX(call))++; - arg_num++; - } ZEND_HASH_FOREACH_END(); - - } else if (EXPECTED(Z_TYPE_P(args) == IS_OBJECT)) { - zend_class_entry *ce = Z_OBJCE_P(args); - zend_object_iterator *iter; - - if (!ce || !ce->get_iterator) { - zend_error(E_WARNING, "Only arrays and Traversables can be unpacked"); - } else { - - iter = ce->get_iterator(ce, args, 0); - if (UNEXPECTED(!iter)) { - FREE_OP(free_op1); - if (!EG(exception)) { - zend_throw_exception_ex( - NULL, 0, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name) - ); - } - HANDLE_EXCEPTION(); - } - - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - } - - for (; iter->funcs->valid(iter) == SUCCESS; ++arg_num) { - zval *arg, *top; - - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - arg = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (iter->funcs->get_current_key) { - zval key; - iter->funcs->get_current_key(iter, &key); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (UNEXPECTED(Z_TYPE(key) != IS_LONG)) { - zend_throw_error(NULL, - (Z_TYPE(key) == IS_STRING) ? - "Cannot unpack Traversable with string keys" : - "Cannot unpack Traversable with non-integer keys"); - zval_ptr_dtor(&key); - break; - } - } - - if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - zend_error( - E_WARNING, "Cannot pass by-reference argument %d of %s%s%s()" - " by unpacking a Traversable, passing by-value instead", arg_num, - EX(call)->func->common.scope ? ZSTR_VAL(EX(call)->func->common.scope->name) : "", - EX(call)->func->common.scope ? "::" : "", - ZSTR_VAL(EX(call)->func->common.function_name) - ); - } - - ZVAL_DEREF(arg); - Z_TRY_ADDREF_P(arg); - - zend_vm_stack_extend_call_frame(&EX(call), arg_num - 1, 1); - top = ZEND_CALL_ARG(EX(call), arg_num); - ZVAL_COPY_VALUE(top, arg); - ZEND_CALL_NUM_ARGS(EX(call))++; - - iter->funcs->move_forward(iter); - } - - zend_iterator_dtor(iter); - } - } else if (EXPECTED(Z_ISREF_P(args))) { - args = Z_REFVAL_P(args); - goto send_again; - } else { - if (opline->op1_type == IS_CV && UNEXPECTED(Z_TYPE_P(args) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_error(E_WARNING, "Only arrays and Traversables can be unpacked"); - } - - FREE_OP(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_ARRAY_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *args; - - SAVE_OPLINE(); - args = get_zval_ptr(opline->op1_type, opline->op1, &free_op1, BP_VAR_R); - - if (UNEXPECTED(Z_TYPE_P(args) != IS_ARRAY)) { - if ((opline->op1_type & (IS_VAR|IS_CV)) && Z_ISREF_P(args)) { - args = Z_REFVAL_P(args); - if (EXPECTED(Z_TYPE_P(args) == IS_ARRAY)) { - goto send_array; - } - } - zend_internal_type_error(EX_USES_STRICT_TYPES(), "call_user_func_array() expects parameter 2 to be array, %s given", zend_get_type_by_const(Z_TYPE_P(args))); - if (ZEND_CALL_INFO(EX(call)) & ZEND_CALL_CLOSURE) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(call)->func)); - } else if (ZEND_CALL_INFO(EX(call)) & ZEND_CALL_RELEASE_THIS) { - OBJ_RELEASE(Z_OBJ(EX(call)->This)); - } - EX(call)->func = (zend_function*)&zend_pass_function; - Z_OBJ(EX(call)->This) = NULL; - ZEND_CALL_INFO(EX(call)) &= ~(ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS); - FREE_UNFETCHED_OP(opline->op2_type, opline->op2.var); - } else { - uint32_t arg_num; - HashTable *ht; - zval *arg, *param; - - -send_array: - ht = Z_ARRVAL_P(args); - if (opline->op2_type != IS_UNUSED) { - zend_free_op free_op2; - zval *op2 = get_zval_ptr(opline->op2_type, opline->op2, &free_op2, BP_VAR_R); - uint32_t skip = opline->extended_value; - uint32_t count = zend_hash_num_elements(ht); - zend_long len = zval_get_long(op2); - - if (len < 0) { - len += (zend_long)(count - skip); - } - if (skip < count && len > 0) { - if (len > (zend_long)(count - skip)) { - len = (zend_long)(count - skip); - } - zend_vm_stack_extend_call_frame(&EX(call), 0, len); - arg_num = 1; - param = ZEND_CALL_ARG(EX(call), 1); - ZEND_HASH_FOREACH_VAL(ht, arg) { - zend_bool must_wrap = 0; - if (skip > 0) { - skip--; - continue; - } else if ((zend_long)(arg_num - 1) >= len) { - break; - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - if (UNEXPECTED(!Z_ISREF_P(arg))) { - if (!ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - /* By-value send is not allowed -- emit a warning, - * but still perform the call. */ - zend_param_must_be_ref(EX(call)->func, arg_num); - must_wrap = 1; - } - } - } else { - if (Z_ISREF_P(arg) && - !(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) { - /* don't separate references for __call */ - arg = Z_REFVAL_P(arg); - } - } - if (EXPECTED(!must_wrap)) { - ZVAL_COPY(param, arg); - } else { - Z_TRY_ADDREF_P(arg); - ZVAL_NEW_REF(param, arg); - } - ZEND_CALL_NUM_ARGS(EX(call))++; - arg_num++; - param++; - } ZEND_HASH_FOREACH_END(); - } - FREE_OP(free_op2); - } else { - zend_vm_stack_extend_call_frame(&EX(call), 0, zend_hash_num_elements(ht)); - arg_num = 1; - param = ZEND_CALL_ARG(EX(call), 1); - ZEND_HASH_FOREACH_VAL(ht, arg) { - zend_bool must_wrap = 0; - if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - if (UNEXPECTED(!Z_ISREF_P(arg))) { - if (!ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - /* By-value send is not allowed -- emit a warning, - * but still perform the call. */ - zend_param_must_be_ref(EX(call)->func, arg_num); - must_wrap = 1; - } - } - } else { - if (Z_ISREF_P(arg) && - !(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) { - /* don't separate references for __call */ - arg = Z_REFVAL_P(arg); - } - } - if (EXPECTED(!must_wrap)) { - ZVAL_COPY(param, arg); - } else { - Z_TRY_ADDREF_P(arg); - ZVAL_NEW_REF(param, arg); - } - ZEND_CALL_NUM_ARGS(EX(call))++; - arg_num++; - param++; - } ZEND_HASH_FOREACH_END(); - } - } - FREE_OP(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_case_helper_SPEC(zval *op_1, zval *op_2 ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (UNEXPECTED(Z_TYPE_INFO_P(op_1) == IS_UNDEF)) { - op_1 = ZVAL_UNDEFINED_OP1(); - } - if (UNEXPECTED(Z_TYPE_INFO_P(op_2) == IS_UNDEF)) { - op_2 = ZVAL_UNDEFINED_OP2(); - } - compare_function(EX_VAR(opline->result.var), op_1, op_2); - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_nogc(op_2); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - if (Z_LVAL_P(EX_VAR(opline->result.var)) == 0) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_UNPACK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - - SAVE_OPLINE(); - op1 = get_zval_ptr(opline->op1_type, opline->op1, &free_op1, BP_VAR_R); - -add_unpack_again: - if (EXPECTED(Z_TYPE_P(op1) == IS_ARRAY)) { - HashTable *ht = Z_ARRVAL_P(op1); - zval *val; - zend_string *key; - - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) { - if (key) { - zend_throw_error(NULL, "Cannot unpack array with string keys"); - FREE_OP(free_op1); - HANDLE_EXCEPTION(); - } else { - if (Z_ISREF_P(val) && Z_REFCOUNT_P(val) == 1) { - val = Z_REFVAL_P(val); - } - Z_TRY_ADDREF_P(val); - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), val)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(val); - break; - } - } - } ZEND_HASH_FOREACH_END(); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_OBJECT)) { - zend_class_entry *ce = Z_OBJCE_P(op1); - zend_object_iterator *iter; - - if (!ce || !ce->get_iterator) { - zend_throw_error(NULL, "Only arrays and Traversables can be unpacked"); - } else { - iter = ce->get_iterator(ce, op1, 0); - if (UNEXPECTED(!iter)) { - FREE_OP(free_op1); - if (!EG(exception)) { - zend_throw_exception_ex( - NULL, 0, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name) - ); - } - HANDLE_EXCEPTION(); - } - - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - } - - for (; iter->funcs->valid(iter) == SUCCESS; ) { - zval *val; - - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - val = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (iter->funcs->get_current_key) { - zval key; - iter->funcs->get_current_key(iter, &key); - if (UNEXPECTED(EG(exception) != NULL)) { - break; - } - - if (UNEXPECTED(Z_TYPE(key) != IS_LONG)) { - zend_throw_error(NULL, - (Z_TYPE(key) == IS_STRING) ? - "Cannot unpack Traversable with string keys" : - "Cannot unpack Traversable with non-integer keys"); - zval_ptr_dtor(&key); - break; - } - } - - ZVAL_DEREF(val); - Z_TRY_ADDREF_P(val); - - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), val)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(val); - } - - iter->funcs->move_forward(iter); - } - - zend_iterator_dtor(iter); - } - } else if (EXPECTED(Z_ISREF_P(op1))) { - op1 = Z_REFVAL_P(op1); - goto add_unpack_again; - } else { - zend_throw_error(NULL, "Only arrays and Traversables can be unpacked"); - } - - FREE_OP(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varname; - zend_string *name, *tmp_name = NULL; - zend_class_entry *ce; - zend_free_op free_op1; - - SAVE_OPLINE(); - - if (opline->op2_type == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - FREE_UNFETCHED_OP(opline->op1_type, opline->op1.var); - HANDLE_EXCEPTION(); - } - /*CACHE_PTR(opline->extended_value, ce);*/ - } - } else if (opline->op2_type == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - FREE_UNFETCHED_OP(opline->op1_type, opline->op1.var); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - - varname = get_zval_ptr_undef(opline->op1_type, opline->op1, &free_op1, BP_VAR_R); - if (opline->op1_type == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - } else { - if (opline->op1_type == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - varname = ZVAL_UNDEFINED_OP1(); - } - name = zval_get_tmp_string(varname, &tmp_name); - } - - zend_std_unset_static_property(ce, name); - - zend_tmp_string_release(tmp_name); - FREE_OP(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - int result; - - SAVE_OPLINE(); - - result = zend_fetch_static_property_address(&value, NULL, opline->extended_value & ~ZEND_ISEMPTY, BP_VAR_IS, 0 OPLINE_CC EXECUTE_DATA_CC); - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = result == SUCCESS && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - } else { - result = result != SUCCESS || !i_zend_is_true(value); - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXIT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (opline->op1_type != IS_UNUSED) { - zend_free_op free_op1; - zval *ptr = get_zval_ptr(opline->op1_type, opline->op1, &free_op1, BP_VAR_R); - - do { - if (Z_TYPE_P(ptr) == IS_LONG) { - EG(exit_status) = Z_LVAL_P(ptr); - } else { - if ((opline->op1_type & (IS_VAR|IS_CV)) && Z_ISREF_P(ptr)) { - ptr = Z_REFVAL_P(ptr); - if (Z_TYPE_P(ptr) == IS_LONG) { - EG(exit_status) = Z_LVAL_P(ptr); - break; - } - } - zend_print_zval(ptr, 0); - } - } while (0); - FREE_OP(free_op1); - } - zend_bailout(); - ZEND_VM_NEXT_OPCODE(); /* Never reached */ -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BEGIN_SILENCE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - ZVAL_LONG(EX_VAR(opline->result.var), EG(error_reporting)); - - if (EG(error_reporting)) { - do { - EG(error_reporting) = 0; - if (!EG(error_reporting_ini_entry)) { - zval *zv = zend_hash_find_ex(EG(ini_directives), ZSTR_KNOWN(ZEND_STR_ERROR_REPORTING), 1); - if (zv) { - EG(error_reporting_ini_entry) = (zend_ini_entry *)Z_PTR_P(zv); - } else { - break; - } - } - if (!EG(error_reporting_ini_entry)->modified) { - if (!EG(modified_ini_directives)) { - ALLOC_HASHTABLE(EG(modified_ini_directives)); - zend_hash_init(EG(modified_ini_directives), 8, NULL, NULL, 0); - } - if (EXPECTED(zend_hash_add_ptr(EG(modified_ini_directives), ZSTR_KNOWN(ZEND_STR_ERROR_REPORTING), EG(error_reporting_ini_entry)) != NULL)) { - EG(error_reporting_ini_entry)->orig_value = EG(error_reporting_ini_entry)->value; - EG(error_reporting_ini_entry)->orig_modifiable = EG(error_reporting_ini_entry)->modifiable; - EG(error_reporting_ini_entry)->modified = 1; - } - } - } while (0); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_STMT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (!EG(no_extensions)) { - SAVE_OPLINE(); - zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_statement_handler, execute_data); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_FCALL_BEGIN_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (!EG(no_extensions)) { - SAVE_OPLINE(); - zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_begin_handler, execute_data); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_FCALL_END_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (!EG(no_extensions)) { - SAVE_OPLINE(); - zend_llist_apply_with_argument(&zend_extensions, (llist_apply_with_arg_func_t) zend_extension_fcall_end_handler, execute_data); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_ANON_CLASS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *zv; - zend_class_entry *ce; - USE_OPLINE - - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - zend_string *rtd_key = Z_STR_P(RT_CONSTANT(opline, opline->op1)); - zv = zend_hash_find_ex(EG(class_table), rtd_key, 1); - if (UNEXPECTED(zv == NULL)) { - SAVE_OPLINE(); - do { - ZEND_ASSERT(EX(func)->op_array.fn_flags & ZEND_ACC_PRELOADED); - if (zend_preload_autoload - && zend_preload_autoload(EX(func)->op_array.filename) == SUCCESS) { - zv = zend_hash_find_ex(EG(class_table), rtd_key, 1); - if (EXPECTED(zv != NULL)) { - break; - } - } - zend_error_noreturn(E_ERROR, "Anonymous class wasn't preloaded"); - } while (0); - } - ZEND_ASSERT(zv != NULL); - ce = Z_CE_P(zv); - if (!(ce->ce_flags & ZEND_ACC_LINKED)) { - SAVE_OPLINE(); - if (zend_do_link_class(ce, (opline->op2_type == IS_CONST) ? Z_STR_P(RT_CONSTANT(opline, opline->op2)) : NULL) == FAILURE) { - HANDLE_EXCEPTION(); - } - } - CACHE_PTR(opline->extended_value, ce); - } - Z_CE_P(EX_VAR(opline->result.var)) = ce; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_FUNCTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - do_bind_function(RT_CONSTANT(opline, opline->op1)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TICKS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if ((uint32_t)++EG(ticks_count) >= opline->extended_value) { - EG(ticks_count) = 0; - if (zend_ticks_function) { - SAVE_OPLINE(); - zend_ticks_function(opline->extended_value); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_EXT_NOP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NOP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - ZEND_VM_NEXT_OPCODE(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_dispatch_try_catch_finally_helper_SPEC(uint32_t try_catch_offset, uint32_t op_num ZEND_OPCODE_HANDLER_ARGS_DC) -{ - /* May be NULL during generator closing (only finally blocks are executed) */ - zend_object *ex = EG(exception); - - /* Walk try/catch/finally structures upwards, performing the necessary actions */ - while (try_catch_offset != (uint32_t) -1) { - zend_try_catch_element *try_catch = - &EX(func)->op_array.try_catch_array[try_catch_offset]; - - if (op_num < try_catch->catch_op && ex) { - /* Go to catch block */ - cleanup_live_vars(execute_data, op_num, try_catch->catch_op); - ZEND_VM_JMP_EX(&EX(func)->op_array.opcodes[try_catch->catch_op], 0); - - } else if (op_num < try_catch->finally_op) { - /* Go to finally block */ - zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[try_catch->finally_end].op1.var); - cleanup_live_vars(execute_data, op_num, try_catch->finally_op); - Z_OBJ_P(fast_call) = EG(exception); - EG(exception) = NULL; - Z_OPLINE_NUM_P(fast_call) = (uint32_t)-1; - ZEND_VM_JMP_EX(&EX(func)->op_array.opcodes[try_catch->finally_op], 0); - - } else if (op_num < try_catch->finally_end) { - zval *fast_call = EX_VAR(EX(func)->op_array.opcodes[try_catch->finally_end].op1.var); - - /* cleanup incomplete RETURN statement */ - if (Z_OPLINE_NUM_P(fast_call) != (uint32_t)-1 - && (EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2_type & (IS_TMP_VAR | IS_VAR))) { - zval *return_value = EX_VAR(EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2.var); - - zval_ptr_dtor(return_value); - } - - /* Chain potential exception from wrapping finally block */ - if (Z_OBJ_P(fast_call)) { - if (ex) { - zend_exception_set_previous(ex, Z_OBJ_P(fast_call)); - } else { - EG(exception) = Z_OBJ_P(fast_call); - } - ex = Z_OBJ_P(fast_call); - } - } - - try_catch_offset--; - } - - /* Uncaught exception */ - cleanup_live_vars(execute_data, op_num, 0); - if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - zend_generator_close(generator, 1); - ZEND_VM_RETURN(); - } else { - /* We didn't execute RETURN, and have to initialize return_value */ - if (EX(return_value)) { - ZVAL_UNDEF(EX(return_value)); - } - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - const zend_op *throw_op = EG(opline_before_exception); - uint32_t throw_op_num = throw_op - EX(func)->op_array.opcodes; - int i, current_try_catch_offset = -1; - - if ((throw_op->opcode == ZEND_FREE || throw_op->opcode == ZEND_FE_FREE) - && throw_op->extended_value & ZEND_FREE_ON_RETURN) { - /* exceptions thrown because of loop var destruction on return/break/... - * are logically thrown at the end of the foreach loop, so adjust the - * throw_op_num. - */ - const zend_live_range *range = find_live_range( - &EX(func)->op_array, throw_op_num, throw_op->op1.var); - throw_op_num = range->end; - } - - /* Find the innermost try/catch/finally the exception was thrown in */ - for (i = 0; i < EX(func)->op_array.last_try_catch; i++) { - zend_try_catch_element *try_catch = &EX(func)->op_array.try_catch_array[i]; - if (try_catch->try_op > throw_op_num) { - /* further blocks will not be relevant... */ - break; - } - if (throw_op_num < try_catch->catch_op || throw_op_num < try_catch->finally_end) { - current_try_catch_offset = i; - } - } - - cleanup_unfinished_calls(execute_data, throw_op_num); - - if (throw_op->result_type & (IS_VAR | IS_TMP_VAR)) { - switch (throw_op->opcode) { - case ZEND_ADD_ARRAY_ELEMENT: - case ZEND_ADD_ARRAY_UNPACK: - case ZEND_ROPE_INIT: - case ZEND_ROPE_ADD: - break; /* exception while building structures, live range handling will free those */ - - case ZEND_FETCH_CLASS: - case ZEND_DECLARE_ANON_CLASS: - break; /* return value is zend_class_entry pointer */ - - default: - zval_ptr_dtor_nogc(EX_VAR(throw_op->result.var)); - } - } - - ZEND_VM_TAIL_CALL(zend_dispatch_try_catch_finally_helper_SPEC(current_try_catch_offset, throw_op_num ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - int ret; - - SAVE_OPLINE(); - ret = zend_user_opcode_handlers[opline->opcode](execute_data); - opline = EX(opline); - - switch (ret) { - case ZEND_USER_OPCODE_CONTINUE: - ZEND_VM_CONTINUE(); - case ZEND_USER_OPCODE_RETURN: - if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - zend_generator_close(generator, 1); - ZEND_VM_RETURN(); - } else { - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - case ZEND_USER_OPCODE_ENTER: - ZEND_VM_ENTER(); - case ZEND_USER_OPCODE_LEAVE: - ZEND_VM_LEAVE(); - case ZEND_USER_OPCODE_DISPATCH: - ZEND_VM_DISPATCH(opline->opcode, opline); - default: - ZEND_VM_DISPATCH((zend_uchar)(ret & 0xff), opline); - } -} - -static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot yield from finally in a force-closed generator"); - FREE_UNFETCHED_OP(opline->op2_type, opline->op2.var); - FREE_UNFETCHED_OP(opline->op1_type, opline->op1.var); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DISCARD_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *fast_call = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - - /* cleanup incomplete RETURN statement */ - if (Z_OPLINE_NUM_P(fast_call) != (uint32_t)-1 - && (EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2_type & (IS_TMP_VAR | IS_VAR))) { - zval *return_value = EX_VAR(EX(func)->op_array.opcodes[Z_OPLINE_NUM_P(fast_call)].op2.var); - - zval_ptr_dtor(return_value); - } - - /* cleanup delayed exception */ - if (Z_OBJ_P(fast_call) != NULL) { - /* discard the previously thrown exception */ - OBJ_RELEASE(Z_OBJ_P(fast_call)); - Z_OBJ_P(fast_call) = NULL; - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *fast_call = EX_VAR(opline->result.var); - - Z_OBJ_P(fast_call) = NULL; - /* set return address */ - Z_OPLINE_NUM_P(fast_call) = opline - EX(func)->op_array.opcodes; - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op1), 0); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_RET_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *fast_call = EX_VAR(opline->op1.var); - uint32_t current_try_catch_offset, current_op_num; - - if (Z_OPLINE_NUM_P(fast_call) != (uint32_t)-1) { - const zend_op *fast_ret = EX(func)->op_array.opcodes + Z_OPLINE_NUM_P(fast_call); - - ZEND_VM_JMP_EX(fast_ret + 1, 0); - } - - /* special case for unhandled exceptions */ - EG(exception) = Z_OBJ_P(fast_call); - Z_OBJ_P(fast_call) = NULL; - current_try_catch_offset = opline->op2.num; - current_op_num = opline - EX(func)->op_array.opcodes; - ZEND_VM_TAIL_CALL(zend_dispatch_try_catch_finally_helper_SPEC(current_try_catch_offset, current_op_num ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSERT_CHECK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (EG(assertions) <= 0) { - zend_op *target = OP_JMP_ADDR(opline, opline->op2); - if (RETURN_VALUE_USED(opline)) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } - ZEND_VM_JMP_EX(target, 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zend_array *args = NULL; - zend_function *fbc = EX(func); - zval *ret = EX(return_value); - uint32_t call_info = EX_CALL_INFO() & (ZEND_CALL_NESTED | ZEND_CALL_TOP | ZEND_CALL_RELEASE_THIS); - uint32_t num_args = EX_NUM_ARGS(); - zend_execute_data *call; - - SAVE_OPLINE(); - - if (num_args) { - zval *p = ZEND_CALL_ARG(execute_data, 1); - zval *end = p + num_args; - - args = zend_new_array(num_args); - zend_hash_real_init_packed(args); - ZEND_HASH_FILL_PACKED(args) { - do { - ZEND_HASH_FILL_ADD(p); - p++; - } while (p != end); - } ZEND_HASH_FILL_END(); - } - - call = execute_data; - execute_data = EG(current_execute_data) = EX(prev_execute_data); - - call->func = (fbc->op_array.fn_flags & ZEND_ACC_STATIC) ? fbc->op_array.scope->__callstatic : fbc->op_array.scope->__call; - ZEND_ASSERT(zend_vm_calc_used_stack(2, call->func) <= (size_t)(((char*)EG(vm_stack_end)) - (char*)call)); - ZEND_CALL_NUM_ARGS(call) = 2; - - ZVAL_STR(ZEND_CALL_ARG(call, 1), fbc->common.function_name); - if (args) { - ZVAL_ARR(ZEND_CALL_ARG(call, 2), args); - } else { - ZVAL_EMPTY_ARRAY(ZEND_CALL_ARG(call, 2)); - } - zend_free_trampoline(fbc); - fbc = call->func; - - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { - if (UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - execute_data = call; - i_init_func_execute_data(&fbc->op_array, ret, 0 EXECUTE_DATA_CC); - if (EXPECTED(zend_execute_ex == execute_ex)) { - LOAD_OPLINE_EX(); - ZEND_VM_ENTER_EX(); - } else { - SAVE_OPLINE_EX(); - execute_data = EX(prev_execute_data); - LOAD_OPLINE(); - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - } - } else { - zval retval; - - ZEND_ASSERT(fbc->type == ZEND_INTERNAL_FUNCTION); - - EG(current_execute_data) = call; - - if (UNEXPECTED(fbc->common.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) - && UNEXPECTED(!zend_verify_internal_arg_types(fbc, call))) { - zend_vm_stack_free_call_frame(call); - if (ret) { - ZVAL_UNDEF(ret); - } - goto call_trampoline_end; - } - - if (ret == NULL) { - ret = &retval; - } - - ZVAL_NULL(ret); - if (!zend_execute_internal) { - /* saves one function call if zend_execute_internal is not used */ - fbc->internal_function.handler(call, ret); - } else { - zend_execute_internal(call, ret); - } - -#if ZEND_DEBUG - if (!EG(exception) && call->func) { - ZEND_ASSERT(!(call->func->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) || - zend_verify_internal_return_type(call->func, ret)); - ZEND_ASSERT((call->func->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) - ? Z_ISREF_P(ret) : !Z_ISREF_P(ret)); - } -#endif - - EG(current_execute_data) = call->prev_execute_data; - -call_trampoline_end: - zend_vm_stack_free_args(call); - if (ret == &retval) { - zval_ptr_dtor(ret); - } - } - - execute_data = EG(current_execute_data); - - if (!EX(func) || !ZEND_USER_CODE(EX(func)->type) || (call_info & ZEND_CALL_TOP)) { - ZEND_VM_RETURN(); - } - - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - zend_object *object = Z_OBJ(call->This); - OBJ_RELEASE(object); - } - zend_vm_stack_free_call_frame(call); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_OPLINE(); - ZEND_VM_INC_OPCODE(); - ZEND_VM_LEAVE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_FORWARD_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - OPLINE = OP_JMP_ADDR(opline, opline->op1); - ZEND_VM_CONTINUE(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_interrupt_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS) -{ - EG(vm_interrupt) = 0; - SAVE_OPLINE(); - if (EG(timed_out)) { - zend_timeout(0); - } else if (zend_interrupt_function) { - zend_interrupt_function(execute_data); - ZEND_VM_ENTER(); - } - ZEND_VM_CONTINUE(); -} -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_function *fbc; - zval *function_name, *func; - zend_execute_data *call; - - fbc = CACHED_PTR(opline->result.num); - if (UNEXPECTED(fbc == NULL)) { - function_name = (zval*)RT_CONSTANT(opline, opline->op2); - func = zend_hash_find_ex(EG(function_table), Z_STR_P(function_name+1), 1); - if (UNEXPECTED(func == NULL)) { - ZEND_VM_TAIL_CALL(zend_undefined_function_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - fbc = Z_FUNC_P(func); - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - CACHE_PTR(opline->result.num, fbc); - } - call = _zend_vm_stack_push_call_frame(ZEND_CALL_NESTED_FUNCTION, - fbc, opline->extended_value, NULL); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *function_name; - zend_execute_data *call; - - SAVE_OPLINE(); - function_name = RT_CONSTANT(opline, opline->op2); - -try_function_name: - if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - call = zend_init_dynamic_call_string(Z_STR_P(function_name), opline->extended_value); - } else if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_OBJECT)) { - call = zend_init_dynamic_call_object(function_name, opline->extended_value); - } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY)) { - call = zend_init_dynamic_call_array(Z_ARRVAL_P(function_name), opline->extended_value); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(function_name) == IS_REFERENCE)) { - function_name = Z_REFVAL_P(function_name); - goto try_function_name; - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - call = NULL; - } - - if (UNEXPECTED(!call)) { - HANDLE_EXCEPTION(); - } - - if (IS_CONST & (IS_VAR|IS_TMP_VAR)) { - if (UNEXPECTED(EG(exception))) { - if (call) { - if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) { - zend_string_release_ex(call->func->common.function_name, 0); - zend_free_trampoline(call->func); - } - zend_vm_stack_free_call_frame(call); - } - HANDLE_EXCEPTION(); - } - } - - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *func_name; - zval *func; - zend_function *fbc; - zend_execute_data *call; - - fbc = CACHED_PTR(opline->result.num); - if (UNEXPECTED(fbc == NULL)) { - func_name = (zval *)RT_CONSTANT(opline, opline->op2); - func = zend_hash_find_ex(EG(function_table), Z_STR_P(func_name + 1), 1); - if (func == NULL) { - func = zend_hash_find_ex(EG(function_table), Z_STR_P(func_name + 2), 1); - if (UNEXPECTED(func == NULL)) { - ZEND_VM_TAIL_CALL(zend_undefined_function_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - } - fbc = Z_FUNC_P(func); - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - CACHE_PTR(opline->result.num, fbc); - } - - call = _zend_vm_stack_push_call_frame(ZEND_CALL_NESTED_FUNCTION, - fbc, opline->extended_value, NULL); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_FCALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *fname; - zval *func; - zend_function *fbc; - zend_execute_data *call; - - fbc = CACHED_PTR(opline->result.num); - if (UNEXPECTED(fbc == NULL)) { - fname = (zval*)RT_CONSTANT(opline, opline->op2); - func = zend_hash_find_ex(EG(function_table), Z_STR_P(fname), 1); - if (UNEXPECTED(func == NULL)) { - ZEND_VM_TAIL_CALL(zend_undefined_function_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - fbc = Z_FUNC_P(func); - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - CACHE_PTR(opline->result.num, fbc); - } - - call = _zend_vm_stack_push_call_frame_ex( - opline->op1.num, ZEND_CALL_NESTED_FUNCTION, - fbc, opline->extended_value, NULL); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - uint32_t arg_num; - zval *param; - - ZEND_VM_REPEATABLE_OPCODE - - arg_num = opline->op1.num; - param = EX_VAR(opline->result.var); - if (arg_num > EX_NUM_ARGS()) { - zval *default_value = RT_CONSTANT(opline, opline->op2); - - if (Z_OPT_TYPE_P(default_value) == IS_CONSTANT_AST) { - zval *cache_val = (zval*)CACHE_ADDR(Z_CACHE_SLOT_P(default_value)); - - /* we keep in cache only not refcounted values */ - if (Z_TYPE_P(cache_val) != IS_UNDEF) { - ZVAL_COPY_VALUE(param, cache_val); - } else { - SAVE_OPLINE(); - ZVAL_COPY(param, default_value); - if (UNEXPECTED(zval_update_constant_ex(param, EX(func)->op_array.scope) != SUCCESS)) { - zval_ptr_dtor_nogc(param); - ZVAL_UNDEF(param); - HANDLE_EXCEPTION(); - } - if (!Z_REFCOUNTED_P(param)) { - ZVAL_COPY_VALUE(cache_val, param); - } - } - goto recv_init_check_type; - } else { - ZVAL_COPY(param, default_value); - } - } else { -recv_init_check_type: - if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { - zval *default_value = RT_CONSTANT(opline, opline->op2); - - SAVE_OPLINE(); - if (UNEXPECTED(!zend_verify_recv_arg_type(EX(func), arg_num, param, default_value, CACHE_ADDR(opline->extended_value)))) { - HANDLE_EXCEPTION(); - } - } - } - - ZEND_VM_REPEAT_OPCODE(ZEND_RECV_INIT); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *function_name; - zend_execute_data *call; - - SAVE_OPLINE(); - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - -try_function_name: - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - call = zend_init_dynamic_call_string(Z_STR_P(function_name), opline->extended_value); - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_OBJECT)) { - call = zend_init_dynamic_call_object(function_name, opline->extended_value); - } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY)) { - call = zend_init_dynamic_call_array(Z_ARRVAL_P(function_name), opline->extended_value); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(function_name) == IS_REFERENCE)) { - function_name = Z_REFVAL_P(function_name); - goto try_function_name; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - call = NULL; - } - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(!call)) { - HANDLE_EXCEPTION(); - } - - if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) { - if (UNEXPECTED(EG(exception))) { - if (call) { - if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) { - zend_string_release_ex(call->func->common.function_name, 0); - zend_free_trampoline(call->func); - } - zend_vm_stack_free_call_frame(call); - } - HANDLE_EXCEPTION(); - } - } - - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RECV_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - uint32_t arg_num = opline->op1.num; - - if (UNEXPECTED(arg_num > EX_NUM_ARGS())) { - SAVE_OPLINE(); - zend_missing_arg_error(execute_data); - HANDLE_EXCEPTION(); - } else { - zval *param = EX_VAR(opline->result.var); - - SAVE_OPLINE(); - if (UNEXPECTED(!zend_verify_recv_arg_type(EX(func), arg_num, param, NULL, CACHE_ADDR(opline->op2.num)))) { - HANDLE_EXCEPTION(); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RECV_VARIADIC_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - uint32_t arg_num = opline->op1.num; - uint32_t arg_count = EX_NUM_ARGS(); - zval *params; - - SAVE_OPLINE(); - - params = EX_VAR(opline->result.var); - - if (arg_num <= arg_count) { - zval *param; - - array_init_size(params, arg_count - arg_num + 1); - zend_hash_real_init_packed(Z_ARRVAL_P(params)); - ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(params)) { - param = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T); - if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) { - ZEND_ADD_CALL_FLAG(execute_data, ZEND_CALL_FREE_EXTRA_ARGS); - do { - zend_verify_variadic_arg_type(EX(func), arg_num, param, NULL, CACHE_ADDR(opline->op2.num)); - if (Z_OPT_REFCOUNTED_P(param)) Z_ADDREF_P(param); - ZEND_HASH_FILL_ADD(param); - param++; - } while (++arg_num <= arg_count); - } else { - do { - if (Z_OPT_REFCOUNTED_P(param)) Z_ADDREF_P(param); - ZEND_HASH_FILL_ADD(param); - param++; - } while (++arg_num <= arg_count); - } - } ZEND_HASH_FILL_END(); - } else { - ZVAL_EMPTY_ARRAY(params); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_DYNAMIC_CALL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *function_name; - zend_execute_data *call; - - SAVE_OPLINE(); - function_name = EX_VAR(opline->op2.var); - -try_function_name: - if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - call = zend_init_dynamic_call_string(Z_STR_P(function_name), opline->extended_value); - } else if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(function_name) == IS_OBJECT)) { - call = zend_init_dynamic_call_object(function_name, opline->extended_value); - } else if (EXPECTED(Z_TYPE_P(function_name) == IS_ARRAY)) { - call = zend_init_dynamic_call_array(Z_ARRVAL_P(function_name), opline->extended_value); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(function_name) == IS_REFERENCE)) { - function_name = Z_REFVAL_P(function_name); - goto try_function_name; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - call = NULL; - } - - if (UNEXPECTED(!call)) { - HANDLE_EXCEPTION(); - } - - if (IS_CV & (IS_VAR|IS_TMP_VAR)) { - if (UNEXPECTED(EG(exception))) { - if (call) { - if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) { - zend_string_release_ex(call->func->common.function_name, 0); - zend_free_trampoline(call->func); - } - zend_vm_stack_free_call_frame(call); - } - HANDLE_EXCEPTION(); - } - } - - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - - op1 = RT_CONSTANT(opline, opline->op1); - if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), ~Z_LVAL_P(op1)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - bitwise_not_function(EX_VAR(opline->result.var), op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *val; - - - val = RT_CONSTANT(opline, opline->op1); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_TRUE(EX_VAR(opline->result.var)); - if (IS_CONST == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *z; - - SAVE_OPLINE(); - z = RT_CONSTANT(opline, opline->op1); - - if (Z_TYPE_P(z) == IS_STRING) { - zend_string *str = Z_STR_P(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } - } else { - zend_string *str = zval_get_string_func(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(z) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_string_release_ex(str, 0); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - - val = RT_CONSTANT(opline, opline->op1); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline++; - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - - ZEND_VM_JMP(opline); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - - val = RT_CONSTANT(opline, opline->op1); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - opline++; - } - - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - - val = RT_CONSTANT(opline, opline->op1); - - if (EXPECTED(Z_TYPE_INFO_P(val) == IS_TRUE)) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - - ZEND_VM_JMP(opline); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - int ret; - - val = RT_CONSTANT(opline, opline->op1); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline++; - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } - ZEND_VM_JMP(opline); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - int ret; - - val = RT_CONSTANT(opline, opline->op1); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline++; - } - ZEND_VM_JMP(opline); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = RT_CONSTANT(opline, opline->op1); - return_value = EX(return_value); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_CONST & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_CONST == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_CONST == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - - - SAVE_OPLINE(); - - do { - if ((IS_CONST & (IS_CONST|IS_TMP_VAR)) || - (IS_CONST == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) { - /* Not supposed to happen, but we'll allow it */ - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - - retval_ptr = RT_CONSTANT(opline, opline->op1); - if (!EX(return_value)) { - - } else { - if (IS_CONST == IS_VAR && UNEXPECTED(Z_ISREF_P(retval_ptr))) { - ZVAL_COPY_VALUE(EX(return_value), retval_ptr); - break; - } - - ZVAL_NEW_REF(EX(return_value), retval_ptr); - if (IS_CONST == IS_CONST) { - Z_TRY_ADDREF_P(retval_ptr); - } - } - break; - } - - retval_ptr = NULL; - - if (IS_CONST == IS_VAR) { - ZEND_ASSERT(retval_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION && !Z_ISREF_P(retval_ptr)) { - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - if (EX(return_value)) { - ZVAL_NEW_REF(EX(return_value), retval_ptr); - } else { - - } - break; - } - } - - if (EX(return_value)) { - if (Z_ISREF_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } else { - ZVAL_MAKE_REF_EX(retval_ptr, 2); - } - ZVAL_REF(EX(return_value), Z_REF_P(retval_ptr)); - } - - } while (0); - - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval; - - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - retval = RT_CONSTANT(opline, opline->op1); - - /* Copy return value into generator->retval */ - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(&generator->retval, retval); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->retval))) { - Z_ADDREF(generator->retval); - } - } - } else if (IS_CONST == IS_CV) { - ZVAL_COPY_DEREF(&generator->retval, retval); - } else /* if (IS_CONST == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_refcounted *ref = Z_COUNTED_P(retval); - - retval = Z_REFVAL_P(retval); - ZVAL_COPY_VALUE(&generator->retval, retval); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval)) { - Z_ADDREF_P(retval); - } - } else { - ZVAL_COPY_VALUE(&generator->retval, retval); - } - } - - /* Close the generator to free up resources */ - zend_generator_close(generator, 1); - - /* Pass execution back to handling code */ - ZEND_VM_RETURN(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op1); - - do { - if (IS_CONST == IS_CONST || UNEXPECTED(Z_TYPE_P(value) != IS_OBJECT)) { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_OBJECT)) { - break; - } - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Can only throw objects"); - - HANDLE_EXCEPTION(); - } - } while (0); - - zend_exception_save(); - if (IS_CONST != IS_TMP_VAR) { - Z_TRY_ADDREF_P(value); - } - - zend_throw_exception_object(value); - zend_exception_restore(); - - HANDLE_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CATCH_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_class_entry *ce, *catch_ce; - zend_object *exception; - zval *ex; - - SAVE_OPLINE(); - /* Check whether an exception has been thrown, if not, jump over code */ - zend_exception_restore(); - if (EG(exception) == NULL) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - catch_ce = CACHED_PTR(opline->extended_value & ~ZEND_LAST_CATCH); - if (UNEXPECTED(catch_ce == NULL)) { - catch_ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - - CACHE_PTR(opline->extended_value & ~ZEND_LAST_CATCH, catch_ce); - } - ce = EG(exception)->ce; - -#ifdef HAVE_DTRACE - if (DTRACE_EXCEPTION_CAUGHT_ENABLED()) { - DTRACE_EXCEPTION_CAUGHT((char *)ce->name); - } -#endif /* HAVE_DTRACE */ - - if (ce != catch_ce) { - if (!catch_ce || !instanceof_function(ce, catch_ce)) { - if (opline->extended_value & ZEND_LAST_CATCH) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION(); - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - } - - exception = EG(exception); - ex = EX_VAR(opline->result.var); - { - /* Always perform a strict assignment. There is a reasonable expectation that if you - * write "catch (Exception $e)" then $e will actually be instanceof Exception. As such, - * we should not permit coercion to string here. */ - zval tmp; - ZVAL_OBJ(&tmp, exception); - EG(exception) = NULL; - zend_assign_to_variable(ex, &tmp, IS_TMP_VAR, /* strict */ 1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - - - value = RT_CONSTANT(opline, opline->op1); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(0)) { - if (QUICK_ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_val_by_ref; - } - } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_val_by_ref: - ZEND_VM_TAIL_CALL(zend_cannot_pass_by_ref_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - value = RT_CONSTANT(opline, opline->op1); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SPEC_CONST_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(1)) { - if (QUICK_ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_val_by_ref; - } - } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_val_by_ref: - ZEND_VM_TAIL_CALL(zend_cannot_pass_by_ref_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - value = RT_CONSTANT(opline, opline->op1); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *arg, *param; - - - SAVE_OPLINE(); - - if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) { - zend_param_must_be_ref(EX(call)->func, opline->op2.num); - } - - arg = RT_CONSTANT(opline, opline->op1); - param = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY(param, arg); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *val; - - - val = RT_CONSTANT(opline, opline->op1); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CONST == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *obj; - zend_class_entry *ce, *scope; - zend_function *clone; - zend_object_clone_obj_t clone_call; - - SAVE_OPLINE(); - obj = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - do { - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(obj)) { - obj = Z_REFVAL_P(obj); - if (EXPECTED(Z_TYPE_P(obj) == IS_OBJECT)) { - break; - } - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "__clone method called on non-object"); - - HANDLE_EXCEPTION(); - } - } while (0); - - ce = Z_OBJCE_P(obj); - clone = ce->clone; - clone_call = Z_OBJ_HT_P(obj)->clone_obj; - if (UNEXPECTED(clone_call == NULL)) { - zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name)); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (clone && !(clone->common.fn_flags & ZEND_ACC_PUBLIC)) { - scope = EX(func)->op_array.scope; - if (clone->common.scope != scope) { - if (UNEXPECTED(clone->common.fn_flags & ZEND_ACC_PRIVATE) - || UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), scope))) { - zend_wrong_clone_call(clone, scope); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - - ZVAL_OBJ(EX_VAR(opline->result.var), clone_call(obj)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr; - zval *result = EX_VAR(opline->result.var); - HashTable *ht; - - SAVE_OPLINE(); - expr = RT_CONSTANT(opline, opline->op1); - - switch (opline->extended_value) { - case IS_NULL: - ZVAL_NULL(result); - break; - case _IS_BOOL: - ZVAL_BOOL(result, zend_is_true(expr)); - break; - case IS_LONG: - ZVAL_LONG(result, zval_get_long(expr)); - break; - case IS_DOUBLE: - ZVAL_DOUBLE(result, zval_get_double(expr)); - break; - case IS_STRING: - ZVAL_STR(result, zval_get_string(expr)); - break; - default: - if (IS_CONST & (IS_VAR|IS_CV)) { - ZVAL_DEREF(expr); - } - /* If value is already of correct type, return it directly */ - if (Z_TYPE_P(expr) == opline->extended_value) { - ZVAL_COPY_VALUE(result, expr); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (opline->extended_value == IS_ARRAY) { - if (IS_CONST == IS_CONST || Z_TYPE_P(expr) != IS_OBJECT || Z_OBJCE_P(expr) == zend_ce_closure) { - if (Z_TYPE_P(expr) != IS_NULL) { - ZVAL_ARR(result, zend_new_array(1)); - expr = zend_hash_index_add_new(Z_ARRVAL_P(result), 0, expr); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } else { - ZVAL_EMPTY_ARRAY(result); - } - } else { - HashTable *obj_ht = zend_get_properties_for(expr, ZEND_PROP_PURPOSE_ARRAY_CAST); - if (obj_ht) { - /* fast copy */ - ZVAL_ARR(result, zend_proptable_to_symtable(obj_ht, - (Z_OBJCE_P(expr)->default_properties_count || - Z_OBJ_P(expr)->handlers != &std_object_handlers || - GC_IS_RECURSIVE(obj_ht)))); - zend_release_properties(obj_ht); - } else { - ZVAL_EMPTY_ARRAY(result); - } - } - } else { - ZVAL_OBJ(result, zend_objects_new(zend_standard_class_def)); - if (Z_TYPE_P(expr) == IS_ARRAY) { - ht = zend_symtable_to_proptable(Z_ARR_P(expr)); - if (GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) { - /* TODO: try not to duplicate immutable arrays as well ??? */ - ht = zend_array_dup(ht); - } - Z_OBJ_P(result)->properties = ht; - } else if (Z_TYPE_P(expr) != IS_NULL) { - Z_OBJ_P(result)->properties = ht = zend_new_array(1); - expr = zend_hash_add_new(ht, ZSTR_KNOWN(ZEND_STR_SCALAR), expr); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } - } - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_op_array *new_op_array; - - zval *inc_filename; - - SAVE_OPLINE(); - inc_filename = RT_CONSTANT(opline, opline->op1); - new_op_array = zend_include_or_eval(inc_filename, opline->extended_value); - - if (UNEXPECTED(EG(exception) != NULL)) { - if (new_op_array != ZEND_FAKE_OP_ARRAY && new_op_array != NULL) { - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else if (new_op_array == ZEND_FAKE_OP_ARRAY) { - if (RETURN_VALUE_USED(opline)) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } - } else if (EXPECTED(new_op_array != NULL)) { - zval *return_value = NULL; - zend_execute_data *call; - - if (RETURN_VALUE_USED(opline)) { - return_value = EX_VAR(opline->result.var); - } - - new_op_array->scope = EX(func)->op_array.scope; - - call = zend_vm_stack_push_call_frame( - (Z_TYPE_INFO(EX(This)) & ZEND_CALL_HAS_THIS) | ZEND_CALL_NESTED_CODE | ZEND_CALL_HAS_SYMBOL_TABLE, - (zend_function*)new_op_array, 0, - Z_PTR(EX(This))); - - if (EX_CALL_INFO() & ZEND_CALL_HAS_SYMBOL_TABLE) { - call->symbol_table = EX(symbol_table); - } else { - call->symbol_table = zend_rebuild_symbol_table(); - } - - call->prev_execute_data = execute_data; - i_init_code_execute_data(call, new_op_array, return_value); - if (EXPECTED(zend_execute_ex == execute_ex)) { - ZEND_VM_ENTER(); - } else { - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - zend_vm_stack_free_call_frame(call); - } - - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else if (RETURN_VALUE_USED(opline)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *array_ptr, *result; - - SAVE_OPLINE(); - - array_ptr = RT_CONSTANT(opline, opline->op1); - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_CONST != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(array_ptr); - } - Z_FE_POS_P(result) = 0; - - ZEND_VM_NEXT_OPCODE(); - } else if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_CONST != IS_TMP_VAR) { - Z_ADDREF_P(array_ptr); - } - - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(result) = (uint32_t) -1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(result) = zend_hash_iterator_add(properties, 0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 0 OPLINE_CC EXECUTE_DATA_CC); - - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *array_ptr, *array_ref; - - SAVE_OPLINE(); - - if (IS_CONST == IS_VAR || IS_CONST == IS_CV) { - array_ref = array_ptr = NULL; - if (Z_ISREF_P(array_ref)) { - array_ptr = Z_REFVAL_P(array_ref); - } - } else { - array_ref = array_ptr = RT_CONSTANT(opline, opline->op1); - } - - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - if (IS_CONST == IS_VAR || IS_CONST == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ref = EX_VAR(opline->result.var); - ZVAL_NEW_REF(array_ref, array_ptr); - array_ptr = Z_REFVAL_P(array_ref); - } - if (IS_CONST == IS_CONST) { - ZVAL_ARR(array_ptr, zend_array_dup(Z_ARRVAL_P(array_ptr))); - } else { - SEPARATE_ARRAY(array_ptr); - } - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(Z_ARRVAL_P(array_ptr), 0); - - if (IS_CONST == IS_VAR) { - - } - ZEND_VM_NEXT_OPCODE(); - } else if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (IS_CONST == IS_VAR || IS_CONST == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ptr = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(array_ptr, array_ref); - } - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t) -1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(properties, 0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CONST == IS_VAR) { - - } else { - - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - if (IS_CONST == IS_VAR) { - - } else { - - } - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *ref = NULL; - int ret; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op1); - - if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - ret = i_zend_is_true(value); - - if (UNEXPECTED(EG(exception))) { - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (ret) { - zval *result = EX_VAR(opline->result.var); - - ZVAL_COPY_VALUE(result, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if (IS_CONST == IS_VAR && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *ref = NULL; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op1); - - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - if (IS_CONST & IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - if (Z_TYPE_P(value) > IS_NULL) { - zval *result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if ((IS_CONST & IS_VAR) && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *result = EX_VAR(opline->result.var); - - value = RT_CONSTANT(opline, opline->op1); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZVAL_NULL(result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (IS_CONST == IS_CV) { - ZVAL_COPY_DEREF(result, value); - } else if (IS_CONST == IS_VAR) { - if (UNEXPECTED(Z_ISREF_P(value))) { - ZVAL_COPY_VALUE(result, Z_REFVAL_P(value)); - if (UNEXPECTED(Z_DELREF_P(value) == 0)) { - efree_size(Z_REF_P(value), sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } else { - ZVAL_COPY_VALUE(result, value); - } - } else { - ZVAL_COPY_VALUE(result, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) { - Z_ADDREF_P(result); - } - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_CLASS_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - do_bind_class(RT_CONSTANT(opline, opline->op1), (opline->op2_type == IS_CONST) ? Z_STR_P(RT_CONSTANT(opline, opline->op2)) : NULL); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - zval *val; - - - SAVE_OPLINE(); - val = RT_CONSTANT(opline, opline->op1); - - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - zend_throw_error(NULL, "Cannot use \"yield from\" in a force-closed generator"); - - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (Z_TYPE_P(val) == IS_ARRAY) { - ZVAL_COPY_VALUE(&generator->values, val); - if (IS_CONST != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(val)) { - Z_ADDREF_P(val); - } - Z_FE_POS(generator->values) = 0; - - } else if (IS_CONST != IS_CONST && Z_TYPE_P(val) == IS_OBJECT && Z_OBJCE_P(val)->get_iterator) { - zend_class_entry *ce = Z_OBJCE_P(val); - if (ce == zend_ce_generator) { - zend_generator *new_gen = (zend_generator *) Z_OBJ_P(val); - - if (IS_CONST != IS_TMP_VAR) { - Z_ADDREF_P(val); - } - - if (Z_ISUNDEF(new_gen->retval)) { - if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) { - zend_throw_error(NULL, "Impossible to yield from the Generator being currently run"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - zend_generator_yield_from(generator, new_gen); - } - } else if (UNEXPECTED(new_gen->execute_data == NULL)) { - zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - if (RETURN_VALUE_USED(opline)) { - ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval); - } - ZEND_VM_NEXT_OPCODE(); - } - } else { - zend_object_iterator *iter = ce->get_iterator(ce, val, 0); - - if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) { - if (!EG(exception)) { - zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - iter->index = 0; - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - OBJ_RELEASE(&iter->std); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } - - ZVAL_OBJ(&generator->values, &iter->std); - } - } else { - zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables"); - - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - /* This is the default return value - * when the expression is a Generator, it will be overwritten in zend_generator_resume() */ - if (RETURN_VALUE_USED(opline)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - - /* This generator has no send target (though the generator we delegate to might have one) */ - generator->send_target = NULL; - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_STRLEN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - - - value = RT_CONSTANT(opline, opline->op1); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - - ZEND_VM_NEXT_OPCODE(); - } else { - zend_bool strict; - - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_TYPE_P(value) == IS_REFERENCE) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - value = ZVAL_UNDEFINED_OP1(); - } - strict = EX_USES_STRICT_TYPES(); - do { - if (EXPECTED(!strict)) { - zend_string *str; - zval tmp; - - ZVAL_COPY(&tmp, value); - if (zend_parse_arg_str_weak(&tmp, &str)) { - ZVAL_LONG(EX_VAR(opline->result.var), ZSTR_LEN(str)); - zval_ptr_dtor(&tmp); - break; - } - zval_ptr_dtor(&tmp); - } - if (!EG(exception)) { - zend_internal_type_error(strict, "strlen() expects parameter 1 to be string, %s given", zend_get_type_by_const(Z_TYPE_P(value))); - } - ZVAL_NULL(EX_VAR(opline->result.var)); - } while (0); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - int result = 0; - - - value = RT_CONSTANT(opline, opline->op1); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { -type_check_resource: - if (EXPECTED(Z_TYPE_P(value) != IS_RESOURCE) - || EXPECTED(NULL != zend_rsrc_list_get_rsrc_type(Z_RES_P(value)))) { - result = 1; - } - } else if ((IS_CONST & (IS_CV|IS_VAR)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { - goto type_check_resource; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - result = ((1 << IS_NULL) & opline->extended_value) != 0; - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DEFINED_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_constant *c; - - c = CACHED_PTR(opline->extended_value); - if (EXPECTED(c != NULL)) { - if (!IS_SPECIAL_CACHE_VAL(c)) { -defined_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(zend_hash_num_elements(EG(zend_constants)) == DECODE_SPECIAL_CACHE_NUM(c))) { -defined_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } - if (zend_quick_check_constant(RT_CONSTANT(opline, opline->op1) OPLINE_CC EXECUTE_DATA_CC) != SUCCESS) { - CACHE_PTR(opline->extended_value, ENCODE_SPECIAL_CACHE_NUM(zend_hash_num_elements(EG(zend_constants)))); - goto defined_false; - } else { - goto defined_true; - } -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_LONG_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(value)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_DOUBLE(EX_VAR(opline->result.var), Z_DVAL_P(value)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_NOREF_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_SIMPLE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - - - value = RT_CONSTANT(opline, opline->op1); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SIMPLE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - - uint32_t arg_num = opline->op2.num; - - if (QUICK_ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_TAIL_CALL(zend_cannot_pass_by_ref_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - value = RT_CONSTANT(opline, opline->op1); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto add_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -add_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 + d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto add_double; - } - } - - ZEND_VM_TAIL_CALL(zend_add_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto sub_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -sub_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 - d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto sub_double; - } - } - - ZEND_VM_TAIL_CALL(zend_sub_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - zend_long overflow; - - result = EX_VAR(opline->result.var); - ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1), Z_LVAL_P(op2), Z_LVAL_P(result), Z_DVAL_P(result), overflow); - Z_TYPE_INFO_P(result) = overflow ? IS_DOUBLE : IS_LONG; - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto mul_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -mul_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 * d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto mul_double; - } - } - - ZEND_VM_TAIL_CALL(zend_mul_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - if (UNEXPECTED(Z_LVAL_P(op2) == 0)) { - ZEND_VM_TAIL_CALL(zend_mod_by_zero_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else if (UNEXPECTED(Z_LVAL_P(op2) == -1)) { - /* Prevent overflow error/crash if op1==ZEND_LONG_MIN */ - ZVAL_LONG(result, 0); - } else { - ZVAL_LONG(result, Z_LVAL_P(op1) % Z_LVAL_P(op2)); - } - ZEND_VM_NEXT_OPCODE(); - } - } - - ZEND_VM_TAIL_CALL(zend_mod_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - /* Perform shift on unsigned numbers to get well-defined wrap behavior. */ - ZVAL_LONG(EX_VAR(opline->result.var), - (zend_long) ((zend_ulong) Z_LVAL_P(op1) << Z_LVAL_P(op2))); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_left_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) >> Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_right_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - pow_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_identical_function(op1, op2); - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_not_identical_function(op1, op2); - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - compare_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) | Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_or_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) & Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_and_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CONST == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) ^ Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_xor_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - boolean_xor_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, IS_CONST, BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, IS_CONST OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - zend_fetch_dimension_address_read_IS(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CONST == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - zend_fetch_dimension_address_LIST_r(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = RT_CONSTANT(opline, opline->op2); - if ((IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CONST != IS_CONST && IS_CONST != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CONST == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if (IS_CONST == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CONST != IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - if (IS_CONST != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_CONST != IS_UNUSED) { - do { - if (IS_CONST == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CONST != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - zend_invalid_method_call(object, function_name); - - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CONST == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - - HANDLE_EXCEPTION(); - } - if (IS_CONST == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_CONST & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CONST != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_CONST & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_CONST & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_CONST == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_CONST == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_CONST != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_CONST == IS_CONST && - IS_CONST == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_CONST != IS_CONST && - IS_CONST == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_CONST != IS_UNUSED) { - - - function_name = RT_CONSTANT(opline, opline->op2); - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_CONST & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_CONST == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_CONST != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_CONST == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *function_name; - zend_fcall_info_cache fcc; - char *error = NULL; - zend_function *func; - void *object_or_called_scope; - zend_execute_data *call; - uint32_t call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_DYNAMIC; - - SAVE_OPLINE(); - function_name = RT_CONSTANT(opline, opline->op2); - if (zend_is_callable_ex(function_name, NULL, 0, NULL, &fcc, &error)) { - func = fcc.function_handler; - if (error) { - efree(error); - /* This is the only soft error is_callable() can generate */ - zend_non_static_method_call(func); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - object_or_called_scope = fcc.called_scope; - if (func->common.fn_flags & ZEND_ACC_CLOSURE) { - /* Delay closure destruction until its invocation */ - GC_ADDREF(ZEND_CLOSURE_OBJECT(func)); - call_info |= ZEND_CALL_CLOSURE; - if (func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE) { - call_info |= ZEND_CALL_FAKE_CLOSURE; - } - if (fcc.object) { - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_HAS_THIS; - } - } else if (fcc.object) { - GC_ADDREF(fcc.object); /* For $this pointer */ - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS; - } - - if ((IS_CONST & (IS_TMP_VAR|IS_VAR)) && UNEXPECTED(EG(exception))) { - if (call_info & ZEND_CALL_CLOSURE) { - zend_object_release(ZEND_CLOSURE_OBJECT(func)); - } else if (call_info & ZEND_CALL_RELEASE_THIS) { - zend_object_release(fcc.object); - } - HANDLE_EXCEPTION(); - } - - if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&func->op_array))) { - init_func_run_time_cache(&func->op_array); - } - } else { - zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(RT_CONSTANT(opline, opline->op1)), error); - efree(error); - - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - func = (zend_function*)&zend_pass_function; - object_or_called_scope = NULL; - } - - call = zend_vm_stack_push_call_frame(call_info, - func, opline->extended_value, object_or_called_scope); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zend_class_entry *ce, *scope; - zend_class_constant *c; - zval *value, *zv; - USE_OPLINE - - SAVE_OPLINE(); - - do { - if (IS_CONST == IS_CONST) { - if (EXPECTED(CACHED_PTR(opline->extended_value + sizeof(void*)))) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } else if (EXPECTED(CACHED_PTR(opline->extended_value))) { - ce = CACHED_PTR(opline->extended_value); - } else { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } else { - if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - if (EXPECTED(CACHED_PTR(opline->extended_value) == ce)) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } - } - - zv = zend_hash_find_ex(&ce->constants_table, Z_STR_P(RT_CONSTANT(opline, opline->op2)), 1); - if (EXPECTED(zv != NULL)) { - c = Z_PTR_P(zv); - scope = EX(func)->op_array.scope; - if (!zend_verify_const_access(c, scope)) { - zend_throw_error(NULL, "Cannot access %s const %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(ce->name), Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - value = &c->value; - if (Z_TYPE_P(value) == IS_CONSTANT_AST) { - zval_update_constant_ex(value, c->ce); - if (UNEXPECTED(EG(exception) != NULL)) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - CACHE_POLYMORPHIC_PTR(opline->extended_value, ce, value); - } else { - zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } while (0); - - ZVAL_COPY_OR_DUP(EX_VAR(opline->result.var), value); - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = RT_CONSTANT(opline, opline->op1); - if (IS_CONST == IS_TMP_VAR) { - /* pass */ - } else if (IS_CONST == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CONST == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CONST == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CONST != IS_UNUSED) { - - zval *offset = RT_CONSTANT(opline, opline->op2); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CONST == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CONST != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - offset = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, IS_CONST == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if (IS_CONST & (IS_CONST|IS_CV)) { - /* avoid exception check */ - - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if (IS_CONST == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = RT_CONSTANT(opline, opline->op1); - subject = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_CLASS_DELAYED_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *lcname, *zv; - zend_class_entry *ce; - - ce = CACHED_PTR(opline->extended_value); - if (ce == NULL) { - lcname = RT_CONSTANT(opline, opline->op1); - zv = zend_hash_find_ex(EG(class_table), Z_STR_P(lcname + 1), 1); - if (zv) { - SAVE_OPLINE(); - ce = Z_CE_P(zv); - zv = zend_hash_set_bucket_key(EG(class_table), (Bucket*)zv, Z_STR_P(lcname)); - if (UNEXPECTED(!zv)) { - zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce), ZSTR_VAL(ce->name)); - } else { - if (zend_do_link_class(ce, Z_STR_P(RT_CONSTANT(opline, opline->op2))) == FAILURE) { - /* Reload bucket pointer, the hash table may have been reallocated */ - zv = zend_hash_find(EG(class_table), Z_STR_P(lcname)); - zend_hash_set_bucket_key(EG(class_table), (Bucket *) zv, Z_STR_P(lcname + 1)); - HANDLE_EXCEPTION(); - } - } - } - CACHE_PTR(opline->extended_value, ce); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *name; - zval *val; - zend_constant c; - - SAVE_OPLINE(); - name = RT_CONSTANT(opline, opline->op1); - val = RT_CONSTANT(opline, opline->op2); - - ZVAL_COPY(&c.value, val); - if (Z_OPT_CONSTANT(c.value)) { - if (UNEXPECTED(zval_update_constant_ex(&c.value, EX(func)->op_array.scope) != SUCCESS)) { - zval_ptr_dtor_nogc(&c.value); - - - HANDLE_EXCEPTION(); - } - } - /* non persistent, case sensitive */ - ZEND_CONSTANT_SET_FLAGS(&c, CONST_CS, PHP_USER_CONSTANT); - c.name = zend_string_copy(Z_STR_P(name)); - - if (zend_register_constant(&c) == FAILURE) { - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CONST != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CONST & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CONST == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = RT_CONSTANT(opline, opline->op1); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CONST != IS_UNUSED) { - - zval *key = RT_CONSTANT(opline, opline->op2); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SWITCH_LONG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op, *jump_zv; - HashTable *jumptable; - - op = RT_CONSTANT(opline, opline->op1); - jumptable = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - - if (Z_TYPE_P(op) != IS_LONG) { - ZVAL_DEREF(op); - if (Z_TYPE_P(op) != IS_LONG) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } - } - - jump_zv = zend_hash_index_find(jumptable, Z_LVAL_P(op)); - if (jump_zv != NULL) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, Z_LVAL_P(jump_zv)); - ZEND_VM_CONTINUE(); - } else { - /* default */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SWITCH_STRING_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op, *jump_zv; - HashTable *jumptable; - - op = RT_CONSTANT(opline, opline->op1); - jumptable = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - - if (Z_TYPE_P(op) != IS_STRING) { - if (IS_CONST == IS_CONST) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } else { - ZVAL_DEREF(op); - if (Z_TYPE_P(op) != IS_STRING) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } - } - } - - jump_zv = zend_hash_find_ex(jumptable, Z_STR_P(op), IS_CONST == IS_CONST); - if (jump_zv != NULL) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, Z_LVAL_P(jump_zv)); - ZEND_VM_CONTINUE(); - } else { - /* default */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IN_ARRAY_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - HashTable *ht = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - zval *result; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - result = zend_hash_find_ex(ht, Z_STR_P(op1), IS_CONST == IS_CONST); - } else if (opline->extended_value) { - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - result = zend_hash_index_find(ht, Z_LVAL_P(op1)); - } else { - result = NULL; - } - } else if (Z_TYPE_P(op1) <= IS_FALSE) { - result = zend_hash_find_ex(ht, ZSTR_EMPTY_ALLOC(), 1); - } else { - zend_string *key; - zval key_tmp, result_tmp, *val; - - result = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) { - ZVAL_STR(&key_tmp, key); - compare_function(&result_tmp, op1, &key_tmp); - if (Z_LVAL(result_tmp) == 0) { - result = val; - break; - } - } ZEND_HASH_FOREACH_END(); - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result != NULL); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto add_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -add_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 + d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto add_double; - } - } - - ZEND_VM_TAIL_CALL(zend_add_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto sub_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -sub_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 - d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto sub_double; - } - } - - ZEND_VM_TAIL_CALL(zend_sub_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - if (UNEXPECTED(Z_LVAL_P(op2) == 0)) { - ZEND_VM_TAIL_CALL(zend_mod_by_zero_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else if (UNEXPECTED(Z_LVAL_P(op2) == -1)) { - /* Prevent overflow error/crash if op1==ZEND_LONG_MIN */ - ZVAL_LONG(result, 0); - } else { - ZVAL_LONG(result, Z_LVAL_P(op1) % Z_LVAL_P(op2)); - } - ZEND_VM_NEXT_OPCODE(); - } - } - - ZEND_VM_TAIL_CALL(zend_mod_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - /* Perform shift on unsigned numbers to get well-defined wrap behavior. */ - ZVAL_LONG(EX_VAR(opline->result.var), - (zend_long) ((zend_ulong) Z_LVAL_P(op1) << Z_LVAL_P(op2))); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_left_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) >> Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_right_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CONST == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) - Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) - Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container, *dim, *value; - zend_long offset; - HashTable *ht; - - container = RT_CONSTANT(opline, opline->op1); - dim = EX_VAR(opline->op2.var); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_index_array: - if (EXPECTED(Z_TYPE_P(dim) == IS_LONG)) { - offset = Z_LVAL_P(dim); - } else { - offset = zval_get_long(dim); - } - ht = Z_ARRVAL_P(container); - ZEND_HASH_INDEX_FIND(ht, offset, value, fetch_dim_r_index_undef); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } else if (IS_CONST != IS_CONST && EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_index_array; - } else { - goto fetch_dim_r_index_slow; - } - } else { -fetch_dim_r_index_slow: - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - -fetch_dim_r_index_undef: - ZVAL_NULL(EX_VAR(opline->result.var)); - SAVE_OPLINE(); - zend_undefined_offset(offset); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - pow_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if ((IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - ((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CONST != IS_CONST && IS_CONST != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - compare_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (IS_CONST != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, (IS_TMP_VAR|IS_VAR), BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - } - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - zend_fetch_dimension_address_read_IS(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - zend_fetch_dimension_address_LIST_r(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - ((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CONST != IS_CONST && IS_CONST != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CONST == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1, free_op2; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_CONST != IS_UNUSED) { - do { - if (IS_CONST == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - HANDLE_EXCEPTION(); - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - zend_invalid_method_call(object, function_name); - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_CONST & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_CONST & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_CONST & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_CONST == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_CONST == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(EX_VAR(opline->op2.var)); - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(EX_VAR(opline->op2.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_CONST == IS_CONST && - (IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_CONST != IS_CONST && - (IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zend_free_op free_op2; - - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - zval_ptr_dtor_nogc(free_op2); - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - zval_ptr_dtor_nogc(free_op2); - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_CONST == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *function_name; - zend_fcall_info_cache fcc; - char *error = NULL; - zend_function *func; - void *object_or_called_scope; - zend_execute_data *call; - uint32_t call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_DYNAMIC; - - SAVE_OPLINE(); - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (zend_is_callable_ex(function_name, NULL, 0, NULL, &fcc, &error)) { - func = fcc.function_handler; - if (error) { - efree(error); - /* This is the only soft error is_callable() can generate */ - zend_non_static_method_call(func); - if (UNEXPECTED(EG(exception) != NULL)) { - zval_ptr_dtor_nogc(free_op2); - HANDLE_EXCEPTION(); - } - } - object_or_called_scope = fcc.called_scope; - if (func->common.fn_flags & ZEND_ACC_CLOSURE) { - /* Delay closure destruction until its invocation */ - GC_ADDREF(ZEND_CLOSURE_OBJECT(func)); - call_info |= ZEND_CALL_CLOSURE; - if (func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE) { - call_info |= ZEND_CALL_FAKE_CLOSURE; - } - if (fcc.object) { - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_HAS_THIS; - } - } else if (fcc.object) { - GC_ADDREF(fcc.object); /* For $this pointer */ - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS; - } - - zval_ptr_dtor_nogc(free_op2); - if (((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) && UNEXPECTED(EG(exception))) { - if (call_info & ZEND_CALL_CLOSURE) { - zend_object_release(ZEND_CLOSURE_OBJECT(func)); - } else if (call_info & ZEND_CALL_RELEASE_THIS) { - zend_object_release(fcc.object); - } - HANDLE_EXCEPTION(); - } - - if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&func->op_array))) { - init_func_run_time_cache(&func->op_array); - } - } else { - zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(RT_CONSTANT(opline, opline->op1)), error); - efree(error); - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - func = (zend_function*)&zend_pass_function; - object_or_called_scope = NULL; - } - - call = zend_vm_stack_push_call_frame(call_info, - func, opline->extended_value, object_or_called_scope); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = RT_CONSTANT(opline, opline->op1); - if (IS_CONST == IS_TMP_VAR) { - /* pass */ - } else if (IS_CONST == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CONST == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CONST == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zend_free_op free_op2; - zval *offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - zval_ptr_dtor_nogc(free_op2); - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CONST != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, (IS_TMP_VAR|IS_VAR) == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if (IS_CONST & (IS_CONST|IS_CV)) { - /* avoid exception check */ - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_free_op free_op2; - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = RT_CONSTANT(opline, opline->op1); - subject = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CONST != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CONST & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CONST == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = RT_CONSTANT(opline, opline->op1); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CONST != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CONST & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CONST == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = RT_CONSTANT(opline, opline->op1); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - zval_ptr_dtor_nogc(free_op2); - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST_UNUSED(int type ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - zval *varname; - zval *retval; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - retval = zend_hash_find_ex(target_symbol_table, name, IS_CONST == IS_CONST); - if (retval == NULL) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { -fetch_this: - zend_fetch_this_var(type OPLINE_CC EXECUTE_DATA_CC); - if (IS_CONST != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - if (type == BP_VAR_W) { - retval = zend_hash_add_new(target_symbol_table, name, &EG(uninitialized_zval)); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - retval = zend_hash_update(target_symbol_table, name, &EG(uninitialized_zval)); - } else { - retval = &EG(uninitialized_zval); - } - } - /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ - } else if (Z_TYPE_P(retval) == IS_INDIRECT) { - retval = Z_INDIRECT_P(retval); - if (Z_TYPE_P(retval) == IS_UNDEF) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { - goto fetch_this; - } - if (type == BP_VAR_W) { - ZVAL_NULL(retval); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - ZVAL_NULL(retval); - } else { - retval = &EG(uninitialized_zval); - } - } - } - } - - if (!(opline->extended_value & ZEND_FETCH_GLOBAL_LOCK)) { - - } - - if (IS_CONST != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - ZEND_ASSERT(retval != NULL); - if (type == BP_VAR_R || type == BP_VAR_IS) { - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else { - ZVAL_INDIRECT(EX_VAR(opline->result.var), retval); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_W_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_RW_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(BP_VAR_RW ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - int fetch_type = - (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) ? - BP_VAR_W : BP_VAR_R; - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(fetch_type ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(BP_VAR_UNSET ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_IS_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CONST_UNUSED(BP_VAR_IS ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_UNUSED == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_CONST == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_UNUSED != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_CONST == IS_CONST && - IS_UNUSED == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_CONST != IS_CONST && - IS_UNUSED == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_UNUSED != IS_UNUSED) { - - - function_name = NULL; - if (IS_UNUSED != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_UNUSED & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_UNUSED == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_UNUSED == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_UNUSED != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_CONST == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (IS_CONST == IS_UNUSED) { - zend_verify_missing_return_type(EX(func), CACHE_ADDR(opline->op2.num)); - } else { -/* prevents "undefined variable opline" errors */ -#if 0 || (IS_CONST != IS_UNUSED) - zval *retval_ref, *retval_ptr; - - zend_arg_info *ret_info = EX(func)->common.arg_info - 1; - - retval_ref = retval_ptr = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_CONST) { - ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr); - retval_ref = retval_ptr = EX_VAR(opline->result.var); - } else if (IS_CONST == IS_VAR) { - if (UNEXPECTED(Z_TYPE_P(retval_ptr) == IS_INDIRECT)) { - retval_ptr = Z_INDIRECT_P(retval_ptr); - } - ZVAL_DEREF(retval_ptr); - } else if (IS_CONST == IS_CV) { - ZVAL_DEREF(retval_ptr); - } - - if (UNEXPECTED(!ZEND_TYPE_IS_CLASS(ret_info->type) - && ZEND_TYPE_CODE(ret_info->type) != IS_CALLABLE - && ZEND_TYPE_CODE(ret_info->type) != IS_ITERABLE - && !ZEND_SAME_FAKE_TYPE(ZEND_TYPE_CODE(ret_info->type), Z_TYPE_P(retval_ptr)) - && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) - && retval_ref != retval_ptr) - ) { - /* A cast might happen - unwrap the reference if this is a by-value return */ - if (Z_REFCOUNT_P(retval_ref) == 1) { - ZVAL_UNREF(retval_ref); - } else { - Z_DELREF_P(retval_ref); - ZVAL_COPY(retval_ref, retval_ptr); - } - retval_ptr = retval_ref; - } - zend_verify_return_type(EX(func), retval_ptr, CACHE_ADDR(opline->op2.num)); -#endif - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *result; - zend_function *constructor; - zend_class_entry *ce; - zend_execute_data *call; - - SAVE_OPLINE(); - if (IS_CONST == IS_CONST) { - ce = CACHED_PTR(opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - CACHE_PTR(opline->op2.num, ce); - } - } else if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - result = EX_VAR(opline->result.var); - if (UNEXPECTED(object_init_ex(result, ce) != SUCCESS)) { - ZVAL_UNDEF(result); - HANDLE_EXCEPTION(); - } - - constructor = Z_OBJ_HT_P(result)->get_constructor(Z_OBJ_P(result)); - if (constructor == NULL) { - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - - /* If there are no arguments, skip over the DO_FCALL opcode. We check if the next - * opcode is DO_FCALL in case EXT instructions are used. */ - if (EXPECTED(opline->extended_value == 0 && (opline+1)->opcode == ZEND_DO_FCALL)) { - ZEND_VM_NEXT_OPCODE_EX(1, 2); - } - - /* Perform a dummy function call */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION, (zend_function *) &zend_pass_function, - opline->extended_value, NULL); - } else { - if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&constructor->op_array))) { - init_func_run_time_cache(&constructor->op_array); - } - /* We are not handling overloaded classes right now */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION | ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS, - constructor, - opline->extended_value, - Z_OBJ_P(result)); - Z_ADDREF_P(result); - } - - call->prev_execute_data = EX(call); - EX(call) = call; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = RT_CONSTANT(opline, opline->op1); - if (IS_CONST == IS_TMP_VAR) { - /* pass */ - } else if (IS_CONST == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CONST == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CONST == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_UNUSED != IS_UNUSED) { - - zval *offset = NULL; - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_UNUSED != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_UNUSED == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CONST != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - - SAVE_OPLINE(); - - varname = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - varname = ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - zend_hash_del_ind(target_symbol_table, name); - - if (IS_CONST != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - int result; - - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = RT_CONSTANT(opline, opline->op1); - if (IS_CONST == IS_CONST) { - name = Z_STR_P(varname); - } else { - name = zval_get_tmp_string(varname, &tmp_name); - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - value = zend_hash_find_ex(target_symbol_table, name, IS_CONST == IS_CONST); - - if (IS_CONST != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - if (!value) { - result = (opline->extended_value & ZEND_ISEMPTY); - } else { - if (Z_TYPE_P(value) == IS_INDIRECT) { - value = Z_INDIRECT_P(value); - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - if (Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - } - result = Z_TYPE_P(value) > IS_NULL; - } else { - result = !i_zend_is_true(value); - } - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_function *func; - zval *zfunc; - zval *object; - zend_class_entry *called_scope; - - func = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(func == NULL)) { - zfunc = zend_hash_find_ex(EG(function_table), Z_STR_P(RT_CONSTANT(opline, opline->op1)), 1); - ZEND_ASSERT(zfunc != NULL); - func = Z_FUNC_P(zfunc); - ZEND_ASSERT(func->type == ZEND_USER_FUNCTION); - CACHE_PTR(opline->extended_value, func); - } - - if (Z_TYPE(EX(This)) == IS_OBJECT) { - called_scope = Z_OBJCE(EX(This)); - if (UNEXPECTED((func->common.fn_flags & ZEND_ACC_STATIC) || - (EX(func)->common.fn_flags & ZEND_ACC_STATIC))) { - object = NULL; - } else { - object = &EX(This); - } - } else { - called_scope = Z_CE(EX(This)); - object = NULL; - } - zend_create_closure(EX_VAR(opline->result.var), func, - EX(func)->op_array.scope, called_scope, object); - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CONST != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CONST & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CONST == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = RT_CONSTANT(opline, opline->op1); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_UNUSED != IS_UNUSED) { - - zval *key = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - zend_long count; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - while (1) { - if (Z_TYPE_P(op1) == IS_ARRAY) { - count = zend_array_count(Z_ARRVAL_P(op1)); - break; - } else if (Z_TYPE_P(op1) == IS_OBJECT) { - /* first, we check if the handler is defined */ - if (Z_OBJ_HT_P(op1)->count_elements) { - if (SUCCESS == Z_OBJ_HT_P(op1)->count_elements(op1, &count)) { - break; - } - if (UNEXPECTED(EG(exception))) { - count = 0; - break; - } - } - - /* if not and the object implements Countable we call its count() method */ - if (instanceof_function(Z_OBJCE_P(op1), zend_ce_countable)) { - zval retval; - - zend_call_method_with_0_params(op1, NULL, NULL, "count", &retval); - count = zval_get_long(&retval); - zval_ptr_dtor(&retval); - break; - } - - /* If There's no handler and it doesn't implement Countable then add a warning */ - count = 1; - } else if ((IS_CONST & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else if (Z_TYPE_P(op1) <= IS_NULL) { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - count = 0; - } else { - count = 1; - } - zend_error(E_WARNING, "%s(): Parameter must be an array or an object that implements Countable", opline->extended_value ? "sizeof" : "count"); - break; - } - - ZVAL_LONG(EX_VAR(opline->result.var), count); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_CLASS_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (IS_CONST == IS_UNUSED) { - if (UNEXPECTED(!EX(func)->common.scope)) { - SAVE_OPLINE(); - zend_error(E_WARNING, "get_class() called without object from outside a class"); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), EX(func)->common.scope->name); - ZEND_VM_NEXT_OPCODE(); - } - } else { - - zval *op1; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - while (1) { - if (Z_TYPE_P(op1) == IS_OBJECT) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_OBJCE_P(op1)->name); - } else if ((IS_CONST & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_error(E_WARNING, "get_class() expects parameter 1 to be object, %s given", zend_get_type_by_const(Z_TYPE_P(op1))); - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - break; - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_TYPE_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - zend_string *type; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - type = zend_zval_get_type(op1); - if (EXPECTED(type)) { - ZVAL_INTERNED_STR(EX_VAR(opline->result.var), type); - } else { - ZVAL_STRING(EX_VAR(opline->result.var), "unknown type"); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FUNC_GET_ARGS_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_array *ht; - uint32_t arg_count, result_size, skip; - - arg_count = EX_NUM_ARGS(); - if (IS_CONST == IS_CONST) { - skip = Z_LVAL_P(RT_CONSTANT(opline, opline->op1)); - if (arg_count < skip) { - result_size = 0; - } else { - result_size = arg_count - skip; - } - } else { - skip = 0; - result_size = arg_count; - } - - if (result_size) { - uint32_t first_extra_arg = EX(func)->op_array.num_args; - - ht = zend_new_array(result_size); - ZVAL_ARR(EX_VAR(opline->result.var), ht); - zend_hash_real_init_packed(ht); - ZEND_HASH_FILL_PACKED(ht) { - zval *p, *q; - uint32_t i = skip; - p = EX_VAR_NUM(i); - if (arg_count > first_extra_arg) { - while (i < first_extra_arg) { - q = p; - if (EXPECTED(Z_TYPE_INFO_P(q) != IS_UNDEF)) { - ZVAL_DEREF(q); - if (Z_OPT_REFCOUNTED_P(q)) { - Z_ADDREF_P(q); - } - ZEND_HASH_FILL_SET(q); - } else { - ZEND_HASH_FILL_SET_NULL(); - } - ZEND_HASH_FILL_NEXT(); - p++; - i++; - } - if (skip < first_extra_arg) { - skip = 0; - } else { - skip -= first_extra_arg; - } - p = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T + skip); - } - while (i < arg_count) { - q = p; - if (EXPECTED(Z_TYPE_INFO_P(q) != IS_UNDEF)) { - ZVAL_DEREF(q); - if (Z_OPT_REFCOUNTED_P(q)) { - Z_ADDREF_P(q); - } - ZEND_HASH_FILL_SET(q); - } else { - ZEND_HASH_FILL_SET_NULL(); - } - ZEND_HASH_FILL_NEXT(); - p++; - i++; - } - } ZEND_HASH_FILL_END(); - ht->nNumOfElements = result_size; - } else { - ZVAL_EMPTY_ARRAY(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - pow_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - - if ((IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CONST != IS_CONST && IS_CONST != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = RT_CONSTANT(opline, opline->op1); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - compare_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - dim = EX_VAR(opline->op2.var); - if (IS_CONST != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, IS_CV, BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, IS_CV OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - zend_fetch_dimension_address_read_IS(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CV == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = EX_VAR(opline->op2.var); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - zend_fetch_dimension_address_LIST_r(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = RT_CONSTANT(opline, opline->op1); - op2 = EX_VAR(opline->op2.var); - if ((IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CONST != IS_CONST && IS_CONST != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CONST == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if (IS_CV == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if (IS_CV != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CV != IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - if (IS_CV != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_CONST != IS_UNUSED) { - do { - if (IS_CONST == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CV != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - zend_invalid_method_call(object, function_name); - - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CV == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - - HANDLE_EXCEPTION(); - } - if (IS_CV == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_CONST & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CV != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_CONST & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_CONST & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_CONST == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_CONST == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_CV != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_CONST == IS_CONST && - IS_CV == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_CONST != IS_CONST && - IS_CV == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_CV != IS_UNUSED) { - - - function_name = EX_VAR(opline->op2.var); - if (IS_CV != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_CV & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_CV == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_CV != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_CONST == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *function_name; - zend_fcall_info_cache fcc; - char *error = NULL; - zend_function *func; - void *object_or_called_scope; - zend_execute_data *call; - uint32_t call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_DYNAMIC; - - SAVE_OPLINE(); - function_name = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - if (zend_is_callable_ex(function_name, NULL, 0, NULL, &fcc, &error)) { - func = fcc.function_handler; - if (error) { - efree(error); - /* This is the only soft error is_callable() can generate */ - zend_non_static_method_call(func); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - object_or_called_scope = fcc.called_scope; - if (func->common.fn_flags & ZEND_ACC_CLOSURE) { - /* Delay closure destruction until its invocation */ - GC_ADDREF(ZEND_CLOSURE_OBJECT(func)); - call_info |= ZEND_CALL_CLOSURE; - if (func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE) { - call_info |= ZEND_CALL_FAKE_CLOSURE; - } - if (fcc.object) { - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_HAS_THIS; - } - } else if (fcc.object) { - GC_ADDREF(fcc.object); /* For $this pointer */ - object_or_called_scope = fcc.object; - call_info |= ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS; - } - - if ((IS_CV & (IS_TMP_VAR|IS_VAR)) && UNEXPECTED(EG(exception))) { - if (call_info & ZEND_CALL_CLOSURE) { - zend_object_release(ZEND_CLOSURE_OBJECT(func)); - } else if (call_info & ZEND_CALL_RELEASE_THIS) { - zend_object_release(fcc.object); - } - HANDLE_EXCEPTION(); - } - - if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&func->op_array))) { - init_func_run_time_cache(&func->op_array); - } - } else { - zend_internal_type_error(EX_USES_STRICT_TYPES(), "%s() expects parameter 1 to be a valid callback, %s", Z_STRVAL_P(RT_CONSTANT(opline, opline->op1)), error); - efree(error); - - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - func = (zend_function*)&zend_pass_function; - object_or_called_scope = NULL; - } - - call = zend_vm_stack_push_call_frame(call_info, - func, opline->extended_value, object_or_called_scope); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CONST == IS_VAR || IS_CONST == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = RT_CONSTANT(opline, opline->op1); - if (IS_CONST == IS_TMP_VAR) { - /* pass */ - } else if (IS_CONST == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CONST == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CONST == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CV != IS_UNUSED) { - - zval *offset = EX_VAR(opline->op2.var); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CV == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CONST != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - offset = EX_VAR(opline->op2.var); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, IS_CV == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if (IS_CONST & (IS_CONST|IS_CV)) { - /* avoid exception check */ - - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if (IS_CV == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = RT_CONSTANT(opline, opline->op1); - - if (IS_CONST == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST || - (IS_CONST != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = RT_CONSTANT(opline, opline->op1); - subject = EX_VAR(opline->op2.var); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CONST != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CONST & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = RT_CONSTANT(opline, opline->op1); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CONST == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = RT_CONSTANT(opline, opline->op1); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CV != IS_UNUSED) { - - zval *key = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - - value = EX_VAR(opline->op1.var); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(value)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - - value = EX_VAR(opline->op1.var); - ZVAL_DOUBLE(EX_VAR(opline->result.var), Z_DVAL_P(value)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - - value = EX_VAR(opline->op1.var); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto add_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -add_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 + d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto add_double; - } - } - - ZEND_VM_TAIL_CALL(zend_add_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto sub_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -sub_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 - d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto sub_double; - } - } - - ZEND_VM_TAIL_CALL(zend_sub_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - zend_long overflow; - - result = EX_VAR(opline->result.var); - ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1), Z_LVAL_P(op2), Z_LVAL_P(result), Z_DVAL_P(result), overflow); - Z_TYPE_INFO_P(result) = overflow ? IS_DOUBLE : IS_LONG; - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto mul_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -mul_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 * d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto mul_double; - } - } - - ZEND_VM_TAIL_CALL(zend_mul_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - if (UNEXPECTED(Z_LVAL_P(op2) == 0)) { - ZEND_VM_TAIL_CALL(zend_mod_by_zero_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else if (UNEXPECTED(Z_LVAL_P(op2) == -1)) { - /* Prevent overflow error/crash if op1==ZEND_LONG_MIN */ - ZVAL_LONG(result, 0); - } else { - ZVAL_LONG(result, Z_LVAL_P(op1) % Z_LVAL_P(op2)); - } - ZEND_VM_NEXT_OPCODE(); - } - } - - ZEND_VM_TAIL_CALL(zend_mod_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - /* Perform shift on unsigned numbers to get well-defined wrap behavior. */ - ZVAL_LONG(EX_VAR(opline->result.var), - (zend_long) ((zend_ulong) Z_LVAL_P(op1) << Z_LVAL_P(op2))); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_left_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) >> Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_right_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) | Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_or_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) & Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_and_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) ^ Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_xor_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_LIST_r(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op, *jump_zv; - HashTable *jumptable; - - op = EX_VAR(opline->op1.var); - jumptable = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - - if (Z_TYPE_P(op) != IS_LONG) { - ZVAL_DEREF(op); - if (Z_TYPE_P(op) != IS_LONG) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } - } - - jump_zv = zend_hash_index_find(jumptable, Z_LVAL_P(op)); - if (jump_zv != NULL) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, Z_LVAL_P(jump_zv)); - ZEND_VM_CONTINUE(); - } else { - /* default */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op, *jump_zv; - HashTable *jumptable; - - op = EX_VAR(opline->op1.var); - jumptable = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - - if (Z_TYPE_P(op) != IS_STRING) { - if ((IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } else { - ZVAL_DEREF(op); - if (Z_TYPE_P(op) != IS_STRING) { - /* Wrong type, fall back to ZEND_CASE chain */ - ZEND_VM_NEXT_OPCODE(); - } - } - } - - jump_zv = zend_hash_find_ex(jumptable, Z_STR_P(op), (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST); - if (jump_zv != NULL) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, Z_LVAL_P(jump_zv)); - ZEND_VM_CONTINUE(); - } else { - /* default */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) + Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) + Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) - Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) - Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) * Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - zend_long overflow; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1), Z_LVAL_P(op2), Z_LVAL_P(result), Z_DVAL_P(result), overflow); - Z_TYPE_INFO_P(result) = overflow ? IS_DOUBLE : IS_LONG; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) * Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) == Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) == Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) == Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) == Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) == Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) == Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) != Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) != Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) != Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) != Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) != Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) != Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto add_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -add_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 + d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto add_double; - } - } - - ZEND_VM_TAIL_CALL(zend_add_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto sub_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -sub_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 - d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto sub_double; - } - } - - ZEND_VM_TAIL_CALL(zend_sub_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - zend_long overflow; - - result = EX_VAR(opline->result.var); - ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1), Z_LVAL_P(op2), Z_LVAL_P(result), Z_DVAL_P(result), overflow); - Z_TYPE_INFO_P(result) = overflow ? IS_DOUBLE : IS_LONG; - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto mul_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -mul_double: - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, d1 * d2); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto mul_double; - } - } - - ZEND_VM_TAIL_CALL(zend_mul_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - result = EX_VAR(opline->result.var); - if (UNEXPECTED(Z_LVAL_P(op2) == 0)) { - ZEND_VM_TAIL_CALL(zend_mod_by_zero_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else if (UNEXPECTED(Z_LVAL_P(op2) == -1)) { - /* Prevent overflow error/crash if op1==ZEND_LONG_MIN */ - ZVAL_LONG(result, 0); - } else { - ZVAL_LONG(result, Z_LVAL_P(op1) % Z_LVAL_P(op2)); - } - ZEND_VM_NEXT_OPCODE(); - } - } - - ZEND_VM_TAIL_CALL(zend_mod_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - /* Perform shift on unsigned numbers to get well-defined wrap behavior. */ - ZVAL_LONG(EX_VAR(opline->result.var), - (zend_long) ((zend_ulong) Z_LVAL_P(op1) << Z_LVAL_P(op2))); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_left_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG) - && EXPECTED((zend_ulong)Z_LVAL_P(op2) < SIZEOF_ZEND_LONG * 8)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) >> Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_shift_right_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) < Z_LVAL_P(op2))) { -is_smaller_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_double: - if (d1 < d2) { - goto is_smaller_true; - } else { - goto is_smaller_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) <= Z_LVAL_P(op2))) { -is_smaller_or_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_smaller_or_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_smaller_or_equal_double; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_smaller_or_equal_double: - if (d1 <= d2) { - goto is_smaller_or_equal_true; - } else { - goto is_smaller_or_equal_false; - } - } else if (EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_smaller_or_equal_double; - } - } - ZEND_VM_TAIL_CALL(zend_is_smaller_or_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) | Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_or_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) & Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_and_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && (IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG) - && EXPECTED(Z_TYPE_INFO_P(op2) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(op1) ^ Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_bw_xor_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) + Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - fast_long_add_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) + Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) - Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - fast_long_sub_function(result, op1, op2); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) - Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_LONG(result, Z_LVAL_P(op1) * Z_LVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - zend_long overflow; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZEND_SIGNED_MULTIPLY_LONG(Z_LVAL_P(op1), Z_LVAL_P(op2), Z_LVAL_P(result), Z_DVAL_P(result), overflow); - Z_TYPE_INFO_P(result) = overflow ? IS_DOUBLE : IS_LONG; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2, *result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = EX_VAR(opline->result.var); - ZVAL_DOUBLE(result, Z_DVAL_P(op1) * Z_DVAL_P(op2)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) == Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) == Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) == Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) == Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) == Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) == Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) != Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) != Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) != Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) != Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) != Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) != Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) < Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) < Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_LVAL_P(op1) <= Z_LVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1, *op2; - int result; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - result = (Z_DVAL_P(op1) <= Z_DVAL_P(op2)); - ZEND_VM_SMART_BRANCH_JMPNZ(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_LIST_r(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_LIST_r(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), ~Z_LVAL_P(op1)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - bitwise_not_function(EX_VAR(opline->result.var), op1); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *val; - zend_free_op free_op1; - - val = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_TRUE(EX_VAR(opline->result.var)); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val)); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ECHO_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *z; - - SAVE_OPLINE(); - z = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (Z_TYPE_P(z) == IS_STRING) { - zend_string *str = Z_STR_P(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } - } else { - zend_string *str = zval_get_string_func(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(z) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_string_release_ex(str, 0); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - - val = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline++; - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_JMP(opline); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - - val = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - opline++; - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - - val = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_INFO_P(val) == IS_TRUE)) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - int ret; - - val = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - zval_ptr_dtor_nogc(free_op1); - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline++; - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *val; - int ret; - - val = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - zval_ptr_dtor_nogc(free_op1); - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline++; - } - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FREE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - zval_ptr_dtor_nogc(EX_VAR(opline->op1.var)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FREE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *var; - USE_OPLINE - - SAVE_OPLINE(); - var = EX_VAR(opline->op1.var); - if (Z_TYPE_P(var) != IS_ARRAY && Z_FE_ITER_P(var) != (uint32_t)-1) { - zend_hash_iterator_del(Z_FE_ITER_P(var)); - } - zval_ptr_dtor_nogc(var); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *val; - zend_free_op free_op1; - - val = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_FALSE(EX_VAR(opline->result.var)); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val)); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *obj; - zend_class_entry *ce, *scope; - zend_function *clone; - zend_object_clone_obj_t clone_call; - - SAVE_OPLINE(); - obj = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - do { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(obj)) { - obj = Z_REFVAL_P(obj); - if (EXPECTED(Z_TYPE_P(obj) == IS_OBJECT)) { - break; - } - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "__clone method called on non-object"); - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } while (0); - - ce = Z_OBJCE_P(obj); - clone = ce->clone; - clone_call = Z_OBJ_HT_P(obj)->clone_obj; - if (UNEXPECTED(clone_call == NULL)) { - zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name)); - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (clone && !(clone->common.fn_flags & ZEND_ACC_PUBLIC)) { - scope = EX(func)->op_array.scope; - if (clone->common.scope != scope) { - if (UNEXPECTED(clone->common.fn_flags & ZEND_ACC_PRIVATE) - || UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), scope))) { - zend_wrong_clone_call(clone, scope); - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - - ZVAL_OBJ(EX_VAR(opline->result.var), clone_call(obj)); - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_op_array *new_op_array; - zend_free_op free_op1; - zval *inc_filename; - - SAVE_OPLINE(); - inc_filename = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - new_op_array = zend_include_or_eval(inc_filename, opline->extended_value); - zval_ptr_dtor_nogc(free_op1); - if (UNEXPECTED(EG(exception) != NULL)) { - if (new_op_array != ZEND_FAKE_OP_ARRAY && new_op_array != NULL) { - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else if (new_op_array == ZEND_FAKE_OP_ARRAY) { - if (RETURN_VALUE_USED(opline)) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } - } else if (EXPECTED(new_op_array != NULL)) { - zval *return_value = NULL; - zend_execute_data *call; - - if (RETURN_VALUE_USED(opline)) { - return_value = EX_VAR(opline->result.var); - } - - new_op_array->scope = EX(func)->op_array.scope; - - call = zend_vm_stack_push_call_frame( - (Z_TYPE_INFO(EX(This)) & ZEND_CALL_HAS_THIS) | ZEND_CALL_NESTED_CODE | ZEND_CALL_HAS_SYMBOL_TABLE, - (zend_function*)new_op_array, 0, - Z_PTR(EX(This))); - - if (EX_CALL_INFO() & ZEND_CALL_HAS_SYMBOL_TABLE) { - call->symbol_table = EX(symbol_table); - } else { - call->symbol_table = zend_rebuild_symbol_table(); - } - - call->prev_execute_data = execute_data; - i_init_code_execute_data(call, new_op_array, return_value); - if (EXPECTED(zend_execute_ex == execute_ex)) { - ZEND_VM_ENTER(); - } else { - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - zend_vm_stack_free_call_frame(call); - } - - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else if (RETURN_VALUE_USED(opline)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_STRLEN_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - zend_free_op free_op1; - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE(); - } else { - zend_bool strict; - - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_TYPE_P(value) == IS_REFERENCE) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - value = ZVAL_UNDEFINED_OP1(); - } - strict = EX_USES_STRICT_TYPES(); - do { - if (EXPECTED(!strict)) { - zend_string *str; - zval tmp; - - ZVAL_COPY(&tmp, value); - if (zend_parse_arg_str_weak(&tmp, &str)) { - ZVAL_LONG(EX_VAR(opline->result.var), ZSTR_LEN(str)); - zval_ptr_dtor(&tmp); - break; - } - zval_ptr_dtor(&tmp); - } - if (!EG(exception)) { - zend_internal_type_error(strict, "strlen() expects parameter 1 to be string, %s given", zend_get_type_by_const(Z_TYPE_P(value))); - } - ZVAL_NULL(EX_VAR(opline->result.var)); - } while (0); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - int result = 0; - zend_free_op free_op1; - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { -type_check_resource: - if (EXPECTED(Z_TYPE_P(value) != IS_RESOURCE) - || EXPECTED(NULL != zend_rsrc_list_get_rsrc_type(Z_RES_P(value)))) { - result = 1; - } - } else if (((IS_TMP_VAR|IS_VAR) & (IS_CV|IS_VAR)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { - goto type_check_resource; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - result = ((1 << IS_NULL) & opline->extended_value) != 0; - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - pow_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - - if (((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && (IS_TMP_VAR|IS_VAR) != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - compare_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - boolean_xor_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = RT_CONSTANT(opline, opline->op2); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, IS_CONST, BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, IS_CONST OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_read_IS(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && (IS_TMP_VAR|IS_VAR) != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if (IS_CONST == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CONST != IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - if (IS_CONST != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } while (0); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - do { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CONST != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - zend_invalid_method_call(object, function_name); - - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CONST == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - if (IS_CONST == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CONST != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - zval_ptr_dtor_nogc(free_op1); - - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - zval_ptr_dtor_nogc(free_op1); - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -case_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -case_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto case_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -case_double: - if (d1 == d2) { - goto case_true; - } else { - goto case_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto case_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - - if (result) { - goto case_true; - } else { - goto case_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_case_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - offset = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, IS_CONST == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if ((IS_TMP_VAR|IS_VAR) & (IS_CONST|IS_CV)) { - /* avoid exception check */ - - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if (IS_CONST == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_free_op free_op1; - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - subject = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr; - zend_bool result; - - SAVE_OPLINE(); - expr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - -try_instanceof: - if (Z_TYPE_P(expr) == IS_OBJECT) { - zend_class_entry *ce; - - if (IS_CONST == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (EXPECTED(ce)) { - CACHE_PTR(opline->extended_value, ce); - } - } - } else if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - result = ce && instanceof_function(Z_OBJCE_P(expr), ce); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_TYPE_P(expr) == IS_REFERENCE) { - expr = Z_REFVAL_P(expr); - goto try_instanceof; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(expr) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - result = 0; - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *dim, *value; - zend_long offset; - HashTable *ht; - - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = RT_CONSTANT(opline, opline->op2); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_index_array: - if (EXPECTED(Z_TYPE_P(dim) == IS_LONG)) { - offset = Z_LVAL_P(dim); - } else { - offset = zval_get_long(dim); - } - ht = Z_ARRVAL_P(container); - ZEND_HASH_INDEX_FIND(ht, offset, value, fetch_dim_r_index_undef); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_index_array; - } else { - goto fetch_dim_r_index_slow; - } - } else { -fetch_dim_r_index_slow: - SAVE_OPLINE(); - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - -fetch_dim_r_index_undef: - ZVAL_NULL(EX_VAR(opline->result.var)); - SAVE_OPLINE(); - zend_undefined_offset(offset); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *dim, *value; - zend_long offset; - HashTable *ht; - - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = EX_VAR(opline->op2.var); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_index_array: - if (EXPECTED(Z_TYPE_P(dim) == IS_LONG)) { - offset = Z_LVAL_P(dim); - } else { - offset = zval_get_long(dim); - } - ht = Z_ARRVAL_P(container); - ZEND_HASH_INDEX_FIND(ht, offset, value, fetch_dim_r_index_undef); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_index_array; - } else { - goto fetch_dim_r_index_slow; - } - } else { -fetch_dim_r_index_slow: - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - -fetch_dim_r_index_undef: - ZVAL_NULL(EX_VAR(opline->result.var)); - SAVE_OPLINE(); - zend_undefined_offset(offset); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - pow_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - ((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && (IS_TMP_VAR|IS_VAR) != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && (IS_TMP_VAR|IS_VAR) == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - compare_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - boolean_xor_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, (IS_TMP_VAR|IS_VAR), BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - } - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_read_IS(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - ((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && (IS_TMP_VAR|IS_VAR) != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1, free_op2; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } while (0); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - do { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - HANDLE_EXCEPTION(); - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - zend_invalid_method_call(object, function_name); - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - zval_ptr_dtor_nogc(free_op1); - - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - zval_ptr_dtor_nogc(free_op1); - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -case_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -case_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto case_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -case_double: - if (d1 == d2) { - goto case_true; - } else { - goto case_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto case_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - zval_ptr_dtor_nogc(free_op2); - if (result) { - goto case_true; - } else { - goto case_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_case_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, (IS_TMP_VAR|IS_VAR) == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if ((IS_TMP_VAR|IS_VAR) & (IS_CONST|IS_CV)) { - /* avoid exception check */ - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_free_op free_op1, free_op2; - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - subject = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_TMPVAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr; - zend_bool result; - - SAVE_OPLINE(); - expr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - -try_instanceof: - if (Z_TYPE_P(expr) == IS_OBJECT) { - zend_class_entry *ce; - - if (IS_VAR == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (EXPECTED(ce)) { - CACHE_PTR(opline->extended_value, ce); - } - } - } else if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - result = ce && instanceof_function(Z_OBJCE_P(expr), ce); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_TYPE_P(expr) == IS_REFERENCE) { - expr = Z_REFVAL_P(expr); - goto try_instanceof; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(expr) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - result = 0; - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(int type ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varname; - zval *retval; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - retval = zend_hash_find_ex(target_symbol_table, name, (IS_TMP_VAR|IS_VAR) == IS_CONST); - if (retval == NULL) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { -fetch_this: - zend_fetch_this_var(type OPLINE_CC EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - if (type == BP_VAR_W) { - retval = zend_hash_add_new(target_symbol_table, name, &EG(uninitialized_zval)); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - retval = zend_hash_update(target_symbol_table, name, &EG(uninitialized_zval)); - } else { - retval = &EG(uninitialized_zval); - } - } - /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ - } else if (Z_TYPE_P(retval) == IS_INDIRECT) { - retval = Z_INDIRECT_P(retval); - if (Z_TYPE_P(retval) == IS_UNDEF) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { - goto fetch_this; - } - if (type == BP_VAR_W) { - ZVAL_NULL(retval); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - ZVAL_NULL(retval); - } else { - retval = &EG(uninitialized_zval); - } - } - } - } - - if (!(opline->extended_value & ZEND_FETCH_GLOBAL_LOCK)) { - zval_ptr_dtor_nogc(free_op1); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - ZEND_ASSERT(retval != NULL); - if (type == BP_VAR_R || type == BP_VAR_IS) { - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else { - ZVAL_INDIRECT(EX_VAR(opline->result.var), retval); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_W_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(BP_VAR_RW ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - int fetch_type = - (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) ? - BP_VAR_W : BP_VAR_R; - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(fetch_type ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(BP_VAR_UNSET ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_TMPVAR_UNUSED(BP_VAR_IS ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - zend_free_op free_op1; - - SAVE_OPLINE(); - - varname = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - varname = ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - zend_hash_del_ind(target_symbol_table, name); - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - int result; - zend_free_op free_op1; - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - name = Z_STR_P(varname); - } else { - name = zval_get_tmp_string(varname, &tmp_name); - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - value = zend_hash_find_ex(target_symbol_table, name, (IS_TMP_VAR|IS_VAR) == IS_CONST); - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - zval_ptr_dtor_nogc(free_op1); - - if (!value) { - result = (opline->extended_value & ZEND_ISEMPTY); - } else { - if (Z_TYPE_P(value) == IS_INDIRECT) { - value = Z_INDIRECT_P(value); - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - if (Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - } - result = Z_TYPE_P(value) > IS_NULL; - } else { - result = !i_zend_is_true(value); - } - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr; - zend_bool result; - - SAVE_OPLINE(); - expr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - -try_instanceof: - if (Z_TYPE_P(expr) == IS_OBJECT) { - zend_class_entry *ce; - - if (IS_UNUSED == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (EXPECTED(ce)) { - CACHE_PTR(opline->extended_value, ce); - } - } - } else if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - result = ce && instanceof_function(Z_OBJCE_P(expr), ce); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_TYPE_P(expr) == IS_REFERENCE) { - expr = Z_REFVAL_P(expr); - goto try_instanceof; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(expr) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - result = 0; - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - zend_long count; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - while (1) { - if (Z_TYPE_P(op1) == IS_ARRAY) { - count = zend_array_count(Z_ARRVAL_P(op1)); - break; - } else if (Z_TYPE_P(op1) == IS_OBJECT) { - /* first, we check if the handler is defined */ - if (Z_OBJ_HT_P(op1)->count_elements) { - if (SUCCESS == Z_OBJ_HT_P(op1)->count_elements(op1, &count)) { - break; - } - if (UNEXPECTED(EG(exception))) { - count = 0; - break; - } - } - - /* if not and the object implements Countable we call its count() method */ - if (instanceof_function(Z_OBJCE_P(op1), zend_ce_countable)) { - zval retval; - - zend_call_method_with_0_params(op1, NULL, NULL, "count", &retval); - count = zval_get_long(&retval); - zval_ptr_dtor(&retval); - break; - } - - /* If There's no handler and it doesn't implement Countable then add a warning */ - count = 1; - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else if (Z_TYPE_P(op1) <= IS_NULL) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - count = 0; - } else { - count = 1; - } - zend_error(E_WARNING, "%s(): Parameter must be an array or an object that implements Countable", opline->extended_value ? "sizeof" : "count"); - break; - } - - ZVAL_LONG(EX_VAR(opline->result.var), count); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (UNEXPECTED(!EX(func)->common.scope)) { - SAVE_OPLINE(); - zend_error(E_WARNING, "get_class() called without object from outside a class"); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), EX(func)->common.scope->name); - ZEND_VM_NEXT_OPCODE(); - } - } else { - zend_free_op free_op1; - zval *op1; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - while (1) { - if (Z_TYPE_P(op1) == IS_OBJECT) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_OBJCE_P(op1)->name); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_error(E_WARNING, "get_class() expects parameter 1 to be object, %s given", zend_get_type_by_const(Z_TYPE_P(op1))); - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - break; - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COPY_TMP_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zval *result = EX_VAR(opline->result.var); - ZVAL_COPY(result, value); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - pow_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = EX_VAR(opline->op2.var); - - if (((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && (IS_TMP_VAR|IS_VAR) != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - compare_function(EX_VAR(opline->result.var), op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = EX_VAR(opline->op2.var); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, IS_CV, BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, IS_CV OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_read_IS(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = EX_VAR(opline->op2.var); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = EX_VAR(opline->op2.var); - if (((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && (IS_TMP_VAR|IS_VAR) != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if (IS_CV == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if (IS_CV != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CV != IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - if (IS_CV != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } while (0); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - do { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CV != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - zend_invalid_method_call(object, function_name); - - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CV == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - if (IS_CV == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CV != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - zval_ptr_dtor_nogc(free_op1); - - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - zval_ptr_dtor_nogc(free_op1); - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - double d1, d2; - - op1 = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = EX_VAR(opline->op2.var); - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -case_true: - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -case_false: - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto case_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -case_double: - if (d1 == d2) { - goto case_true; - } else { - goto case_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto case_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - - if (result) { - goto case_true; - } else { - goto case_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_case_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - offset = EX_VAR(opline->op2.var); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, IS_CV == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if ((IS_TMP_VAR|IS_VAR) & (IS_CONST|IS_CV)) { - /* avoid exception check */ - - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if (IS_CV == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || - ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_free_op free_op1; - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - subject = EX_VAR(opline->op2.var); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - return_value = EX(return_value); - if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_TMP_VAR & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_TMP_VAR == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_TMP_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - zend_free_op free_op1; - - SAVE_OPLINE(); - - do { - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR)) || - (IS_TMP_VAR == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) { - /* Not supposed to happen, but we'll allow it */ - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - - retval_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (!EX(return_value)) { - zval_ptr_dtor_nogc(free_op1); - } else { - if (IS_TMP_VAR == IS_VAR && UNEXPECTED(Z_ISREF_P(retval_ptr))) { - ZVAL_COPY_VALUE(EX(return_value), retval_ptr); - break; - } - - ZVAL_NEW_REF(EX(return_value), retval_ptr); - if (IS_TMP_VAR == IS_CONST) { - Z_TRY_ADDREF_P(retval_ptr); - } - } - break; - } - - retval_ptr = NULL; - - if (IS_TMP_VAR == IS_VAR) { - ZEND_ASSERT(retval_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION && !Z_ISREF_P(retval_ptr)) { - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - if (EX(return_value)) { - ZVAL_NEW_REF(EX(return_value), retval_ptr); - } else { - - } - break; - } - } - - if (EX(return_value)) { - if (Z_ISREF_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } else { - ZVAL_MAKE_REF_EX(retval_ptr, 2); - } - ZVAL_REF(EX(return_value), Z_REF_P(retval_ptr)); - } - - } while (0); - - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval; - zend_free_op free_op1; - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - retval = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Copy return value into generator->retval */ - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(&generator->retval, retval); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->retval))) { - Z_ADDREF(generator->retval); - } - } - } else if (IS_TMP_VAR == IS_CV) { - ZVAL_COPY_DEREF(&generator->retval, retval); - } else /* if (IS_TMP_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_refcounted *ref = Z_COUNTED_P(retval); - - retval = Z_REFVAL_P(retval); - ZVAL_COPY_VALUE(&generator->retval, retval); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval)) { - Z_ADDREF_P(retval); - } - } else { - ZVAL_COPY_VALUE(&generator->retval, retval); - } - } - - /* Close the generator to free up resources */ - zend_generator_close(generator, 1); - - /* Pass execution back to handling code */ - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - zend_free_op free_op1; - - SAVE_OPLINE(); - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - do { - if (IS_TMP_VAR == IS_CONST || UNEXPECTED(Z_TYPE_P(value) != IS_OBJECT)) { - if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_OBJECT)) { - break; - } - } - if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Can only throw objects"); - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } while (0); - - zend_exception_save(); - if (IS_TMP_VAR != IS_TMP_VAR) { - Z_TRY_ADDREF_P(value); - } - - zend_throw_exception_object(value); - zend_exception_restore(); - - HANDLE_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(0)) { - if (QUICK_ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_val_by_ref; - } - } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_val_by_ref: - ZEND_VM_TAIL_CALL(zend_cannot_pass_by_ref_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAL_EX_SPEC_TMP_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(1)) { - if (QUICK_ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_val_by_ref; - } - } else if (ARG_MUST_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_val_by_ref: - ZEND_VM_TAIL_CALL(zend_cannot_pass_by_ref_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(arg))) { - Z_ADDREF_P(arg); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *arg, *param; - zend_free_op free_op1; - - SAVE_OPLINE(); - - if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) { - zend_param_must_be_ref(EX(call)->func, opline->op2.num); - } - - arg = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - param = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY(param, arg); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr; - zval *result = EX_VAR(opline->result.var); - HashTable *ht; - - SAVE_OPLINE(); - expr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - switch (opline->extended_value) { - case IS_NULL: - ZVAL_NULL(result); - break; - case _IS_BOOL: - ZVAL_BOOL(result, zend_is_true(expr)); - break; - case IS_LONG: - ZVAL_LONG(result, zval_get_long(expr)); - break; - case IS_DOUBLE: - ZVAL_DOUBLE(result, zval_get_double(expr)); - break; - case IS_STRING: - ZVAL_STR(result, zval_get_string(expr)); - break; - default: - if (IS_TMP_VAR & (IS_VAR|IS_CV)) { - ZVAL_DEREF(expr); - } - /* If value is already of correct type, return it directly */ - if (Z_TYPE_P(expr) == opline->extended_value) { - ZVAL_COPY_VALUE(result, expr); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (opline->extended_value == IS_ARRAY) { - if (IS_TMP_VAR == IS_CONST || Z_TYPE_P(expr) != IS_OBJECT || Z_OBJCE_P(expr) == zend_ce_closure) { - if (Z_TYPE_P(expr) != IS_NULL) { - ZVAL_ARR(result, zend_new_array(1)); - expr = zend_hash_index_add_new(Z_ARRVAL_P(result), 0, expr); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } else { - ZVAL_EMPTY_ARRAY(result); - } - } else { - HashTable *obj_ht = zend_get_properties_for(expr, ZEND_PROP_PURPOSE_ARRAY_CAST); - if (obj_ht) { - /* fast copy */ - ZVAL_ARR(result, zend_proptable_to_symtable(obj_ht, - (Z_OBJCE_P(expr)->default_properties_count || - Z_OBJ_P(expr)->handlers != &std_object_handlers || - GC_IS_RECURSIVE(obj_ht)))); - zend_release_properties(obj_ht); - } else { - ZVAL_EMPTY_ARRAY(result); - } - } - } else { - ZVAL_OBJ(result, zend_objects_new(zend_standard_class_def)); - if (Z_TYPE_P(expr) == IS_ARRAY) { - ht = zend_symtable_to_proptable(Z_ARR_P(expr)); - if (GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) { - /* TODO: try not to duplicate immutable arrays as well ??? */ - ht = zend_array_dup(ht); - } - Z_OBJ_P(result)->properties = ht; - } else if (Z_TYPE_P(expr) != IS_NULL) { - Z_OBJ_P(result)->properties = ht = zend_new_array(1); - expr = zend_hash_add_new(ht, ZSTR_KNOWN(ZEND_STR_SCALAR), expr); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } - } - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *array_ptr, *result; - - SAVE_OPLINE(); - - array_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_TMP_VAR != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(array_ptr); - } - Z_FE_POS_P(result) = 0; - - ZEND_VM_NEXT_OPCODE(); - } else if (IS_TMP_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_TMP_VAR != IS_TMP_VAR) { - Z_ADDREF_P(array_ptr); - } - - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(result) = (uint32_t) -1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(result) = zend_hash_iterator_add(properties, 0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 0 OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op1); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *array_ptr, *array_ref; - - SAVE_OPLINE(); - - if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) { - array_ref = array_ptr = NULL; - if (Z_ISREF_P(array_ref)) { - array_ptr = Z_REFVAL_P(array_ref); - } - } else { - array_ref = array_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - } - - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ref = EX_VAR(opline->result.var); - ZVAL_NEW_REF(array_ref, array_ptr); - array_ptr = Z_REFVAL_P(array_ref); - } - if (IS_TMP_VAR == IS_CONST) { - ZVAL_ARR(array_ptr, zend_array_dup(Z_ARRVAL_P(array_ptr))); - } else { - SEPARATE_ARRAY(array_ptr); - } - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(Z_ARRVAL_P(array_ptr), 0); - - if (IS_TMP_VAR == IS_VAR) { - - } - ZEND_VM_NEXT_OPCODE(); - } else if (IS_TMP_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ptr = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(array_ptr, array_ref); - } - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t) -1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(properties, 0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_TMP_VAR == IS_VAR) { - - } else { - zval_ptr_dtor_nogc(free_op1); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - if (IS_TMP_VAR == IS_VAR) { - - } else { - zval_ptr_dtor_nogc(free_op1); - } - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_END_SILENCE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (!EG(error_reporting) && Z_LVAL_P(EX_VAR(opline->op1.var)) != 0) { - EG(error_reporting) = Z_LVAL_P(EX_VAR(opline->op1.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *ref = NULL; - int ret; - - SAVE_OPLINE(); - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - ret = i_zend_is_true(value); - - if (UNEXPECTED(EG(exception))) { - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (ret) { - zval *result = EX_VAR(opline->result.var); - - ZVAL_COPY_VALUE(result, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if (IS_TMP_VAR == IS_VAR && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *ref = NULL; - - SAVE_OPLINE(); - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - if (IS_TMP_VAR & IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - if (Z_TYPE_P(value) > IS_NULL) { - zval *result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if ((IS_TMP_VAR & IS_VAR) && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *result = EX_VAR(opline->result.var); - - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZVAL_NULL(result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (IS_TMP_VAR == IS_CV) { - ZVAL_COPY_DEREF(result, value); - } else if (IS_TMP_VAR == IS_VAR) { - if (UNEXPECTED(Z_ISREF_P(value))) { - ZVAL_COPY_VALUE(result, Z_REFVAL_P(value)); - if (UNEXPECTED(Z_DELREF_P(value) == 0)) { - efree_size(Z_REF_P(value), sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } else { - ZVAL_COPY_VALUE(result, value); - } - } else { - ZVAL_COPY_VALUE(result, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) { - Z_ADDREF_P(result); - } - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - zval *val; - zend_free_op free_op1; - - SAVE_OPLINE(); - val = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - zend_throw_error(NULL, "Cannot use \"yield from\" in a force-closed generator"); - zval_ptr_dtor_nogc(free_op1); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (Z_TYPE_P(val) == IS_ARRAY) { - ZVAL_COPY_VALUE(&generator->values, val); - if (IS_TMP_VAR != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(val)) { - Z_ADDREF_P(val); - } - Z_FE_POS(generator->values) = 0; - - } else if (IS_TMP_VAR != IS_CONST && Z_TYPE_P(val) == IS_OBJECT && Z_OBJCE_P(val)->get_iterator) { - zend_class_entry *ce = Z_OBJCE_P(val); - if (ce == zend_ce_generator) { - zend_generator *new_gen = (zend_generator *) Z_OBJ_P(val); - - if (IS_TMP_VAR != IS_TMP_VAR) { - Z_ADDREF_P(val); - } - - if (Z_ISUNDEF(new_gen->retval)) { - if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) { - zend_throw_error(NULL, "Impossible to yield from the Generator being currently run"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - zend_generator_yield_from(generator, new_gen); - } - } else if (UNEXPECTED(new_gen->execute_data == NULL)) { - zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - if (RETURN_VALUE_USED(opline)) { - ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval); - } - ZEND_VM_NEXT_OPCODE(); - } - } else { - zend_object_iterator *iter = ce->get_iterator(ce, val, 0); - zval_ptr_dtor_nogc(free_op1); - - if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) { - if (!EG(exception)) { - zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - iter->index = 0; - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - OBJ_RELEASE(&iter->std); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } - - ZVAL_OBJ(&generator->values, &iter->std); - } - } else { - zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables"); - zval_ptr_dtor_nogc(free_op1); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - /* This is the default return value - * when the expression is a Generator, it will be overwritten in zend_generator_resume() */ - if (RETURN_VALUE_USED(opline)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - - /* This generator has no send target (though the generator we delegate to might have one) */ - generator->send_target = NULL; - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_not_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CONST == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_ADD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_string **rope; - zval *var; - - /* op1 and result are the same */ - rope = (zend_string**)EX_VAR(opline->op1.var); - if (IS_CONST == IS_CONST) { - var = RT_CONSTANT(opline, opline->op2); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = RT_CONSTANT(opline, opline->op2); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (IS_CONST == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_END_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_string **rope; - zval *var, *ret; - uint32_t i; - size_t len = 0; - char *target; - - rope = (zend_string**)EX_VAR(opline->op1.var); - if (IS_CONST == IS_CONST) { - var = RT_CONSTANT(opline, opline->op2); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = RT_CONSTANT(opline, opline->op2); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (IS_CONST == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - - if (UNEXPECTED(EG(exception))) { - for (i = 0; i <= opline->extended_value; i++) { - zend_string_release_ex(rope[i], 0); - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - for (i = 0; i <= opline->extended_value; i++) { - len += ZSTR_LEN(rope[i]); - } - ret = EX_VAR(opline->result.var); - ZVAL_STR(ret, zend_string_alloc(len, 0)); - target = Z_STRVAL_P(ret); - for (i = 0; i <= opline->extended_value; i++) { - memcpy(target, ZSTR_VAL(rope[i]), ZSTR_LEN(rope[i])); - target += ZSTR_LEN(rope[i]); - zend_string_release_ex(rope[i], 0); - } - *target = '\0'; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_TMP_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_TMP_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_TMP_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_TMP_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CONST != IS_UNUSED) { - - zval *offset = RT_CONSTANT(opline, opline->op2); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CONST == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_TMP_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_TMP_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_TMP_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CONST != IS_UNUSED) { - - zval *key = RT_CONSTANT(opline, opline->op2); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IN_ARRAY_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - HashTable *ht = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - zval *result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - result = zend_hash_find_ex(ht, Z_STR_P(op1), IS_TMP_VAR == IS_CONST); - } else if (opline->extended_value) { - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - result = zend_hash_index_find(ht, Z_LVAL_P(op1)); - } else { - result = NULL; - } - } else if (Z_TYPE_P(op1) <= IS_FALSE) { - result = zend_hash_find_ex(ht, ZSTR_EMPTY_ALLOC(), 1); - } else { - zend_string *key; - zval key_tmp, result_tmp, *val; - - result = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) { - ZVAL_STR(&key_tmp, key); - compare_function(&result_tmp, op1, &key_tmp); - if (Z_LVAL(result_tmp) == 0) { - result = val; - break; - } - } ZEND_HASH_FOREACH_END(); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result != NULL); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_ADD_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zend_string **rope; - zval *var; - - /* op1 and result are the same */ - rope = (zend_string**)EX_VAR(opline->op1.var); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_END_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zend_string **rope; - zval *var, *ret; - uint32_t i; - size_t len = 0; - char *target; - - rope = (zend_string**)EX_VAR(opline->op1.var); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(EG(exception))) { - for (i = 0; i <= opline->extended_value; i++) { - zend_string_release_ex(rope[i], 0); - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - for (i = 0; i <= opline->extended_value; i++) { - len += ZSTR_LEN(rope[i]); - } - ret = EX_VAR(opline->result.var); - ZVAL_STR(ret, zend_string_alloc(len, 0)); - target = Z_STRVAL_P(ret); - for (i = 0; i <= opline->extended_value; i++) { - memcpy(target, ZSTR_VAL(rope[i]), ZSTR_LEN(rope[i])); - target += ZSTR_LEN(rope[i]); - zend_string_release_ex(rope[i], 0); - } - *target = '\0'; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_TMP_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_TMP_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_TMP_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_TMP_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zend_free_op free_op2; - zval *offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - zval_ptr_dtor_nogc(free_op2); - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_TMP_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_not_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_TMP_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_TMP_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_TMP_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_TMP_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - zval_ptr_dtor_nogc(free_op2); - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_UNUSED == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (IS_TMP_VAR == IS_UNUSED) { - zend_verify_missing_return_type(EX(func), CACHE_ADDR(opline->op2.num)); - } else { -/* prevents "undefined variable opline" errors */ -#if 0 || (IS_TMP_VAR != IS_UNUSED) - zval *retval_ref, *retval_ptr; - zend_free_op free_op1; - zend_arg_info *ret_info = EX(func)->common.arg_info - 1; - - retval_ref = retval_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr); - retval_ref = retval_ptr = EX_VAR(opline->result.var); - } else if (IS_TMP_VAR == IS_VAR) { - if (UNEXPECTED(Z_TYPE_P(retval_ptr) == IS_INDIRECT)) { - retval_ptr = Z_INDIRECT_P(retval_ptr); - } - ZVAL_DEREF(retval_ptr); - } else if (IS_TMP_VAR == IS_CV) { - ZVAL_DEREF(retval_ptr); - } - - if (UNEXPECTED(!ZEND_TYPE_IS_CLASS(ret_info->type) - && ZEND_TYPE_CODE(ret_info->type) != IS_CALLABLE - && ZEND_TYPE_CODE(ret_info->type) != IS_ITERABLE - && !ZEND_SAME_FAKE_TYPE(ZEND_TYPE_CODE(ret_info->type), Z_TYPE_P(retval_ptr)) - && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) - && retval_ref != retval_ptr) - ) { - /* A cast might happen - unwrap the reference if this is a by-value return */ - if (Z_REFCOUNT_P(retval_ref) == 1) { - ZVAL_UNREF(retval_ref); - } else { - Z_DELREF_P(retval_ref); - ZVAL_COPY(retval_ref, retval_ptr); - } - retval_ptr = retval_ref; - } - zend_verify_return_type(EX(func), retval_ptr, CACHE_ADDR(opline->op2.num)); -#endif - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_TMP_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_TMP_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_TMP_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_TMP_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_UNUSED != IS_UNUSED) { - - zval *offset = NULL; - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_UNUSED != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_UNUSED == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_TMP_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_TMP_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_TMP_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_UNUSED != IS_UNUSED) { - - zval *key = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_TYPE_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - zend_string *type; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - type = zend_zval_get_type(op1); - if (EXPECTED(type)) { - ZVAL_INTERNED_STR(EX_VAR(opline->result.var), type); - } else { - ZVAL_STRING(EX_VAR(opline->result.var), "unknown type"); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CV == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_ADD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_string **rope; - zval *var; - - /* op1 and result are the same */ - rope = (zend_string**)EX_VAR(opline->op1.var); - if (IS_CV == IS_CONST) { - var = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = EX_VAR(opline->op2.var); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (IS_CV == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_END_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_string **rope; - zval *var, *ret; - uint32_t i; - size_t len = 0; - char *target; - - rope = (zend_string**)EX_VAR(opline->op1.var); - if (IS_CV == IS_CONST) { - var = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - rope[opline->extended_value] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = EX_VAR(opline->op2.var); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (IS_CV == IS_CV) { - rope[opline->extended_value] = zend_string_copy(Z_STR_P(var)); - } else { - rope[opline->extended_value] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[opline->extended_value] = zval_get_string_func(var); - - if (UNEXPECTED(EG(exception))) { - for (i = 0; i <= opline->extended_value; i++) { - zend_string_release_ex(rope[i], 0); - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - for (i = 0; i <= opline->extended_value; i++) { - len += ZSTR_LEN(rope[i]); - } - ret = EX_VAR(opline->result.var); - ZVAL_STR(ret, zend_string_alloc(len, 0)); - target = Z_STRVAL_P(ret); - for (i = 0; i <= opline->extended_value; i++) { - memcpy(target, ZSTR_VAL(rope[i]), ZSTR_LEN(rope[i])); - target += ZSTR_LEN(rope[i]); - zend_string_release_ex(rope[i], 0); - } - *target = '\0'; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_TMP_VAR == IS_VAR || IS_TMP_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = NULL; - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_TMP_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_TMP_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_TMP_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_TMP_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CV != IS_UNUSED) { - - zval *offset = EX_VAR(opline->op2.var); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CV == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_TMP_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_TMP_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_TMP_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CV != IS_UNUSED) { - - zval *key = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_LEXICAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *closure, *var; - - closure = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (opline->extended_value & ZEND_BIND_REF) { - /* By-ref binding */ - var = _get_zval_ptr_cv_BP_VAR_W(opline->op2.var EXECUTE_DATA_CC); - if (Z_ISREF_P(var)) { - Z_ADDREF_P(var); - } else { - ZVAL_MAKE_REF_EX(var, 2); - } - } else { - var = EX_VAR(opline->op2.var); - if (UNEXPECTED(Z_ISUNDEF_P(var)) && !(opline->extended_value & ZEND_BIND_IMPLICIT)) { - SAVE_OPLINE(); - var = ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZVAL_DEREF(var); - Z_TRY_ADDREF_P(var); - } - - zend_closure_bind_var_ex(closure, - (opline->extended_value & ~(ZEND_BIND_REF|ZEND_BIND_IMPLICIT)), var); - ZEND_VM_NEXT_OPCODE(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_inc_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, NULL OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - increment_function(var_ptr); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_increment_function(var_ptr); - if (UNEXPECTED(0)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_inc_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_increment_function(var_ptr); - if (UNEXPECTED(1)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_inc_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_dec_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, NULL OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - decrement_function(var_ptr); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(0)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_dec_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(1)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_dec_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_inc_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, EX_VAR(opline->result.var) OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - - increment_function(var_ptr); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_increment_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_post_inc_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_dec_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, EX_VAR(opline->result.var) OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - - decrement_function(var_ptr); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_decrement_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_post_dec_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - return_value = EX(return_value); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_VAR & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_VAR == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - zend_free_op free_op1; - - SAVE_OPLINE(); - - do { - if ((IS_VAR & (IS_CONST|IS_TMP_VAR)) || - (IS_VAR == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) { - /* Not supposed to happen, but we'll allow it */ - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - - retval_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (!EX(return_value)) { - zval_ptr_dtor_nogc(free_op1); - } else { - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISREF_P(retval_ptr))) { - ZVAL_COPY_VALUE(EX(return_value), retval_ptr); - break; - } - - ZVAL_NEW_REF(EX(return_value), retval_ptr); - if (IS_VAR == IS_CONST) { - Z_TRY_ADDREF_P(retval_ptr); - } - } - break; - } - - retval_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - ZEND_ASSERT(retval_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION && !Z_ISREF_P(retval_ptr)) { - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - if (EX(return_value)) { - ZVAL_NEW_REF(EX(return_value), retval_ptr); - } else { - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } - break; - } - } - - if (EX(return_value)) { - if (Z_ISREF_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } else { - ZVAL_MAKE_REF_EX(retval_ptr, 2); - } - ZVAL_REF(EX(return_value), Z_REF_P(retval_ptr)); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } while (0); - - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval; - zend_free_op free_op1; - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - retval = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Copy return value into generator->retval */ - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(&generator->retval, retval); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->retval))) { - Z_ADDREF(generator->retval); - } - } - } else if (IS_VAR == IS_CV) { - ZVAL_COPY_DEREF(&generator->retval, retval); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_refcounted *ref = Z_COUNTED_P(retval); - - retval = Z_REFVAL_P(retval); - ZVAL_COPY_VALUE(&generator->retval, retval); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval)) { - Z_ADDREF_P(retval); - } - } else { - ZVAL_COPY_VALUE(&generator->retval, retval); - } - } - - /* Close the generator to free up resources */ - zend_generator_close(generator, 1); - - /* Pass execution back to handling code */ - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - zend_free_op free_op1; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - do { - if (IS_VAR == IS_CONST || UNEXPECTED(Z_TYPE_P(value) != IS_OBJECT)) { - if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_OBJECT)) { - break; - } - } - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Can only throw objects"); - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); - } - } while (0); - - zend_exception_save(); - if (IS_VAR != IS_TMP_VAR) { - Z_TRY_ADDREF_P(value); - } - - zend_throw_exception_object(value); - zend_exception_restore(); - zval_ptr_dtor_nogc(free_op1); - HANDLE_EXCEPTION(); -} - -static zend_always_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SPEC_VAR_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_VAR == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varptr, *arg; - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr))) { - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - ZVAL_NEW_REF(arg, arg); - zend_error(E_NOTICE, "Only variables should be passed by reference"); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varptr, *arg; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(0)) { - if (!QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr) || - QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { - ZEND_VM_NEXT_OPCODE(); - } - } else { - if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr) || - ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - ZVAL_NEW_REF(arg, arg); - zend_error(E_NOTICE, "Only variables should be passed by reference"); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varptr, *arg; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(1)) { - if (!QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr) || - QUICK_ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { - ZEND_VM_NEXT_OPCODE(); - } - } else { - if (!ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_VAR_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY_VALUE(arg, varptr); - - if (EXPECTED(Z_ISREF_P(varptr) || - ARG_MAY_BE_SENT_BY_REF(EX(call)->func, arg_num))) { - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - ZVAL_NEW_REF(arg, arg); - zend_error(E_NOTICE, "Only variables should be passed by reference"); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *varptr, *arg; - - SAVE_OPLINE(); - varptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(varptr))) { - ZVAL_NEW_EMPTY_REF(arg); - ZVAL_NULL(Z_REFVAL_P(arg)); - ZEND_VM_NEXT_OPCODE(); - } - - if (Z_ISREF_P(varptr)) { - Z_ADDREF_P(varptr); - } else { - ZVAL_MAKE_REF_EX(varptr, 2); - } - ZVAL_REF(arg, Z_REF_P(varptr)); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(0)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_var_by_ref; - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_var_by_ref: - ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_VAR == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SPEC_VAR_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(1)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_var_by_ref; - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_var_by_ref: - ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_VAR == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_FUNC_ARG_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *arg, *param; - zend_free_op free_op1; - - SAVE_OPLINE(); - - if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) { - zend_param_must_be_ref(EX(call)->func, opline->op2.num); - } - - arg = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - param = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY(param, arg); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr; - zval *result = EX_VAR(opline->result.var); - HashTable *ht; - - SAVE_OPLINE(); - expr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - switch (opline->extended_value) { - case IS_NULL: - ZVAL_NULL(result); - break; - case _IS_BOOL: - ZVAL_BOOL(result, zend_is_true(expr)); - break; - case IS_LONG: - ZVAL_LONG(result, zval_get_long(expr)); - break; - case IS_DOUBLE: - ZVAL_DOUBLE(result, zval_get_double(expr)); - break; - case IS_STRING: - ZVAL_STR(result, zval_get_string(expr)); - break; - default: - if (IS_VAR & (IS_VAR|IS_CV)) { - ZVAL_DEREF(expr); - } - /* If value is already of correct type, return it directly */ - if (Z_TYPE_P(expr) == opline->extended_value) { - ZVAL_COPY_VALUE(result, expr); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (opline->extended_value == IS_ARRAY) { - if (IS_VAR == IS_CONST || Z_TYPE_P(expr) != IS_OBJECT || Z_OBJCE_P(expr) == zend_ce_closure) { - if (Z_TYPE_P(expr) != IS_NULL) { - ZVAL_ARR(result, zend_new_array(1)); - expr = zend_hash_index_add_new(Z_ARRVAL_P(result), 0, expr); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } else { - ZVAL_EMPTY_ARRAY(result); - } - } else { - HashTable *obj_ht = zend_get_properties_for(expr, ZEND_PROP_PURPOSE_ARRAY_CAST); - if (obj_ht) { - /* fast copy */ - ZVAL_ARR(result, zend_proptable_to_symtable(obj_ht, - (Z_OBJCE_P(expr)->default_properties_count || - Z_OBJ_P(expr)->handlers != &std_object_handlers || - GC_IS_RECURSIVE(obj_ht)))); - zend_release_properties(obj_ht); - } else { - ZVAL_EMPTY_ARRAY(result); - } - } - } else { - ZVAL_OBJ(result, zend_objects_new(zend_standard_class_def)); - if (Z_TYPE_P(expr) == IS_ARRAY) { - ht = zend_symtable_to_proptable(Z_ARR_P(expr)); - if (GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) { - /* TODO: try not to duplicate immutable arrays as well ??? */ - ht = zend_array_dup(ht); - } - Z_OBJ_P(result)->properties = ht; - } else if (Z_TYPE_P(expr) != IS_NULL) { - Z_OBJ_P(result)->properties = ht = zend_new_array(1); - expr = zend_hash_add_new(ht, ZSTR_KNOWN(ZEND_STR_SCALAR), expr); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } - } - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *array_ptr, *result; - - SAVE_OPLINE(); - - array_ptr = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_VAR != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(array_ptr); - } - Z_FE_POS_P(result) = 0; - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE(); - } else if (IS_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_VAR != IS_TMP_VAR) { - Z_ADDREF_P(array_ptr); - } - - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(result) = (uint32_t) -1; - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(result) = zend_hash_iterator_add(properties, 0); - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 0 OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op1); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *array_ptr, *array_ref; - - SAVE_OPLINE(); - - if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { - array_ref = array_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (Z_ISREF_P(array_ref)) { - array_ptr = Z_REFVAL_P(array_ref); - } - } else { - array_ref = array_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - } - - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ref = EX_VAR(opline->result.var); - ZVAL_NEW_REF(array_ref, array_ptr); - array_ptr = Z_REFVAL_P(array_ref); - } - if (IS_VAR == IS_CONST) { - ZVAL_ARR(array_ptr, zend_array_dup(Z_ARRVAL_P(array_ptr))); - } else { - SEPARATE_ARRAY(array_ptr); - } - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(Z_ARRVAL_P(array_ptr), 0); - - if (IS_VAR == IS_VAR) { - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } - ZEND_VM_NEXT_OPCODE(); - } else if (IS_VAR != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (IS_VAR == IS_VAR || IS_VAR == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ptr = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(array_ptr, array_ref); - } - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t) -1; - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(properties, 0); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } else { - zval_ptr_dtor_nogc(free_op1); - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - if (IS_VAR == IS_VAR) { - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } else { - zval_ptr_dtor_nogc(free_op1); - } - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *array; - zval *value; - uint32_t value_type; - HashTable *fe_ht; - HashPosition pos; - Bucket *p; - - array = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - if (EXPECTED(Z_TYPE_P(array) == IS_ARRAY)) { - fe_ht = Z_ARRVAL_P(array); - pos = Z_FE_POS_P(array); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ -fe_fetch_r_exit: - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - break; - } - } else { - break; - } - } - pos++; - p++; - } - Z_FE_POS_P(array) = pos + 1; - if (RETURN_VALUE_USED(opline)) { - if (!p->key) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } - } - } else { - zend_object_iterator *iter; - - ZEND_ASSERT(Z_TYPE_P(array) == IS_OBJECT); - if ((iter = zend_iterator_unwrap(array)) == NULL) { - /* plain object */ - - fe_ht = Z_OBJPROP_P(array); - pos = zend_hash_iterator_pos(Z_FE_ITER_P(array), fe_ht); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - goto fe_fetch_r_exit; - } - - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF) - && EXPECTED(zend_check_property_access(Z_OBJ_P(array), p->key, 0) == SUCCESS)) { - break; - } - } else if (EXPECTED(Z_OBJCE_P(array)->default_properties_count == 0) - || !p->key - || zend_check_property_access(Z_OBJ_P(array), p->key, 1) == SUCCESS) { - break; - } - } - pos++; - p++; - } - if (RETURN_VALUE_USED(opline)) { - if (UNEXPECTED(!p->key)) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else if (ZSTR_VAL(p->key)[0]) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } else { - const char *class_name, *prop_name; - size_t prop_name_len; - zend_unmangle_property_name_ex( - p->key, &class_name, &prop_name, &prop_name_len); - ZVAL_STRINGL(EX_VAR(opline->result.var), prop_name, prop_name_len); - } - } - EG(ht_iterators)[Z_FE_ITER_P(array)].pos = pos + 1; - } else { - if (EXPECTED(++iter->index > 0)) { - /* This could cause an endless loop if index becomes zero again. - * In case that ever happens we need an additional flag. */ - iter->funcs->move_forward(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (UNEXPECTED(iter->funcs->valid(iter) == FAILURE)) { - /* reached end of iteration */ - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - goto fe_fetch_r_exit; - } - } - value = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (!value) { - /* failure in get_current_data */ - goto fe_fetch_r_exit; - } - if (RETURN_VALUE_USED(opline)) { - if (iter->funcs->get_current_key) { - iter->funcs->get_current_key(iter, EX_VAR(opline->result.var)); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else { - ZVAL_LONG(EX_VAR(opline->result.var), iter->index); - } - } - value_type = Z_TYPE_INFO_P(value); - } - } - - if (EXPECTED(opline->op2_type == IS_CV)) { - zval *variable_ptr = EX_VAR(opline->op2.var); - zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } else { - zval *res = EX_VAR(opline->op2.var); - zend_refcounted *gc = Z_COUNTED_P(value); - - ZVAL_COPY_VALUE_EX(res, value, gc, value_type); - if (Z_TYPE_INFO_REFCOUNTED(value_type)) { - GC_ADDREF(gc); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *array; - zval *value; - uint32_t value_type; - HashTable *fe_ht; - HashPosition pos; - Bucket *p; - - array = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - - ZVAL_DEREF(array); - if (EXPECTED(Z_TYPE_P(array) == IS_ARRAY)) { - pos = zend_hash_iterator_pos_ex(Z_FE_ITER_P(EX_VAR(opline->op1.var)), array); - fe_ht = Z_ARRVAL_P(array); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - goto fe_fetch_w_exit; - } - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - break; - } - } else { - break; - } - } - pos++; - p++; - } - if (RETURN_VALUE_USED(opline)) { - if (!p->key) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } - } - EG(ht_iterators)[Z_FE_ITER_P(EX_VAR(opline->op1.var))].pos = pos + 1; - } else if (EXPECTED(Z_TYPE_P(array) == IS_OBJECT)) { - zend_object_iterator *iter; - - if ((iter = zend_iterator_unwrap(array)) == NULL) { - /* plain object */ - - fe_ht = Z_OBJPROP_P(array); - pos = zend_hash_iterator_pos(Z_FE_ITER_P(EX_VAR(opline->op1.var)), fe_ht); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - goto fe_fetch_w_exit; - } - - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF) - && EXPECTED(zend_check_property_access(Z_OBJ_P(array), p->key, 0) == SUCCESS)) { - if ((value_type & Z_TYPE_MASK) != IS_REFERENCE) { - zend_property_info *prop_info = - zend_get_typed_property_info_for_slot(Z_OBJ_P(array), value); - if (UNEXPECTED(prop_info)) { - ZVAL_NEW_REF(value, value); - ZEND_REF_ADD_TYPE_SOURCE(Z_REF_P(value), prop_info); - value_type = IS_REFERENCE_EX; - } - } - break; - } - } else if (EXPECTED(Z_OBJCE_P(array)->default_properties_count == 0) - || !p->key - || zend_check_property_access(Z_OBJ_P(array), p->key, 1) == SUCCESS) { - break; - } - } - pos++; - p++; - } - if (RETURN_VALUE_USED(opline)) { - if (UNEXPECTED(!p->key)) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else if (ZSTR_VAL(p->key)[0]) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } else { - const char *class_name, *prop_name; - size_t prop_name_len; - zend_unmangle_property_name_ex( - p->key, &class_name, &prop_name, &prop_name_len); - ZVAL_STRINGL(EX_VAR(opline->result.var), prop_name, prop_name_len); - } - } - EG(ht_iterators)[Z_FE_ITER_P(EX_VAR(opline->op1.var))].pos = pos + 1; - } else { - if (++iter->index > 0) { - /* This could cause an endless loop if index becomes zero again. - * In case that ever happens we need an additional flag. */ - iter->funcs->move_forward(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (UNEXPECTED(iter->funcs->valid(iter) == FAILURE)) { - /* reached end of iteration */ - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - goto fe_fetch_w_exit; - } - } - value = iter->funcs->get_current_data(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - if (!value) { - /* failure in get_current_data */ - goto fe_fetch_w_exit; - } - if (RETURN_VALUE_USED(opline)) { - if (iter->funcs->get_current_key) { - iter->funcs->get_current_key(iter, EX_VAR(opline->result.var)); - if (UNEXPECTED(EG(exception) != NULL)) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else { - ZVAL_LONG(EX_VAR(opline->result.var), iter->index); - } - } - value_type = Z_TYPE_INFO_P(value); - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - if (UNEXPECTED(EG(exception))) { - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } -fe_fetch_w_exit: - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } - - if (EXPECTED((value_type & Z_TYPE_MASK) != IS_REFERENCE)) { - zend_refcounted *gc = Z_COUNTED_P(value); - zval *ref; - ZVAL_NEW_EMPTY_REF(value); - ref = Z_REFVAL_P(value); - ZVAL_COPY_VALUE_EX(ref, value, gc, value_type); - } - if (EXPECTED(opline->op2_type == IS_CV)) { - zval *variable_ptr = EX_VAR(opline->op2.var); - if (EXPECTED(variable_ptr != value)) { - zend_reference *ref; - - ref = Z_REF_P(value); - GC_ADDREF(ref); - i_zval_ptr_dtor(variable_ptr); - ZVAL_REF(variable_ptr, ref); - } - } else { - Z_ADDREF_P(value); - ZVAL_REF(EX_VAR(opline->op2.var), Z_REF_P(value)); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *ref = NULL; - int ret; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - ret = i_zend_is_true(value); - - if (UNEXPECTED(EG(exception))) { - zval_ptr_dtor_nogc(free_op1); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (ret) { - zval *result = EX_VAR(opline->result.var); - - ZVAL_COPY_VALUE(result, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if (IS_VAR == IS_VAR && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *ref = NULL; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - if (IS_VAR & IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - if (Z_TYPE_P(value) > IS_NULL) { - zval *result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if ((IS_VAR & IS_VAR) && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *result = EX_VAR(opline->result.var); - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZVAL_NULL(result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (IS_VAR == IS_CV) { - ZVAL_COPY_DEREF(result, value); - } else if (IS_VAR == IS_VAR) { - if (UNEXPECTED(Z_ISREF_P(value))) { - ZVAL_COPY_VALUE(result, Z_REFVAL_P(value)); - if (UNEXPECTED(Z_DELREF_P(value) == 0)) { - efree_size(Z_REF_P(value), sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } else { - ZVAL_COPY_VALUE(result, value); - } - } else { - ZVAL_COPY_VALUE(result, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) { - Z_ADDREF_P(result); - } - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - zval *val; - zend_free_op free_op1; - - SAVE_OPLINE(); - val = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - zend_throw_error(NULL, "Cannot use \"yield from\" in a force-closed generator"); - zval_ptr_dtor_nogc(free_op1); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (Z_TYPE_P(val) == IS_ARRAY) { - ZVAL_COPY_VALUE(&generator->values, val); - if (IS_VAR != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(val)) { - Z_ADDREF_P(val); - } - Z_FE_POS(generator->values) = 0; - - zval_ptr_dtor_nogc(free_op1); - } else if (IS_VAR != IS_CONST && Z_TYPE_P(val) == IS_OBJECT && Z_OBJCE_P(val)->get_iterator) { - zend_class_entry *ce = Z_OBJCE_P(val); - if (ce == zend_ce_generator) { - zend_generator *new_gen = (zend_generator *) Z_OBJ_P(val); - - if (IS_VAR != IS_TMP_VAR) { - Z_ADDREF_P(val); - } - zval_ptr_dtor_nogc(free_op1); - - if (Z_ISUNDEF(new_gen->retval)) { - if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) { - zend_throw_error(NULL, "Impossible to yield from the Generator being currently run"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - zend_generator_yield_from(generator, new_gen); - } - } else if (UNEXPECTED(new_gen->execute_data == NULL)) { - zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - if (RETURN_VALUE_USED(opline)) { - ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval); - } - ZEND_VM_NEXT_OPCODE(); - } - } else { - zend_object_iterator *iter = ce->get_iterator(ce, val, 0); - zval_ptr_dtor_nogc(free_op1); - - if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) { - if (!EG(exception)) { - zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - iter->index = 0; - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - OBJ_RELEASE(&iter->std); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } - - ZVAL_OBJ(&generator->values, &iter->std); - } - } else { - zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables"); - zval_ptr_dtor_nogc(free_op1); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - /* This is the default return value - * when the expression is a Generator, it will be overwritten in zend_generator_resume() */ - if (RETURN_VALUE_USED(opline)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - - /* This generator has no send target (though the generator we delegate to might have one) */ - generator->send_target = NULL; - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SIMPLE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_VAR == IS_CV) { - ZVAL_COPY(arg, varptr); - } else /* if (IS_VAR == IS_VAR) */ { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - zend_free_op free_op1; - uint32_t arg_num = opline->op2.num; - - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_VAR == IS_CV) { - ZVAL_COPY(arg, varptr); - } else /* if (IS_VAR == IS_VAR) */ { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_not_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if (IS_CONST == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - zval *value; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op2); - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_W(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_RW(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CONST == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_UNSET(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_VAR, property, IS_CONST, - ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *dim; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = RT_CONSTANT(opline, opline->op2); - - if (IS_VAR == IS_VAR - && Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT - && UNEXPECTED(!Z_ISREF_P(container)) - ) { - zend_error(E_NOTICE, "Attempting to set reference to non referenceable value"); - zend_fetch_dimension_address_LIST_r(container, dim, IS_CONST OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_fetch_dimension_address_W(container, dim, IS_CONST OPLINE_CC EXECUTE_DATA_CC); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op2); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op2); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_VAR == IS_UNUSED) { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_VAR, property, IS_CONST, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_VAR == IS_UNUSED) { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_VAR, property, IS_CONST, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_VAR == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_CONST != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_VAR == IS_CONST && - IS_CONST == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_VAR != IS_CONST && - IS_CONST == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_CONST != IS_UNUSED) { - - - function_name = RT_CONSTANT(opline, opline->op2); - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_CONST & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_CONST == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_CONST != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_VAR == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zend_class_entry *ce, *scope; - zend_class_constant *c; - zval *value, *zv; - USE_OPLINE - - SAVE_OPLINE(); - - do { - if (IS_VAR == IS_CONST) { - if (EXPECTED(CACHED_PTR(opline->extended_value + sizeof(void*)))) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } else if (EXPECTED(CACHED_PTR(opline->extended_value))) { - ce = CACHED_PTR(opline->extended_value); - } else { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } else { - if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - if (EXPECTED(CACHED_PTR(opline->extended_value) == ce)) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } - } - - zv = zend_hash_find_ex(&ce->constants_table, Z_STR_P(RT_CONSTANT(opline, opline->op2)), 1); - if (EXPECTED(zv != NULL)) { - c = Z_PTR_P(zv); - scope = EX(func)->op_array.scope; - if (!zend_verify_const_access(c, scope)) { - zend_throw_error(NULL, "Cannot access %s const %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(ce->name), Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - value = &c->value; - if (Z_TYPE_P(value) == IS_CONSTANT_AST) { - zval_update_constant_ex(value, c->ce); - if (UNEXPECTED(EG(exception) != NULL)) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - CACHE_POLYMORPHIC_PTR(opline->extended_value, ce, value); - } else { - zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } while (0); - - ZVAL_COPY_OR_DUP(EX_VAR(opline->result.var), value); - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } else { - expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CONST != IS_UNUSED) { - - zval *offset = RT_CONSTANT(opline, opline->op2); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CONST == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zval *offset; - zend_ulong hval; - zend_string *key; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - offset = RT_CONSTANT(opline, opline->op2); - - do { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - -unset_dim_array: - SEPARATE_ARRAY(container); - ht = Z_ARRVAL_P(container); -offset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - key = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(key, hval)) { - goto num_index_dim; - } - } -str_index_dim: - if (ht == &EG(symbol_table)) { - zend_delete_global_variable(key); - } else { - zend_hash_del(ht, key); - } - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_dim: - zend_hash_index_del(ht, hval); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto offset_again; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_NULL) { - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - hval = Z_RES_HANDLE_P(offset); - goto num_index_dim; - } else if (IS_CONST == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else { - zend_error(E_WARNING, "Illegal offset type in unset"); - } - break; - } else if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto unset_dim_array; - } - } - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - offset = ZVAL_UNDEFINED_OP2(); - } - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CONST == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - Z_OBJ_HT_P(container)->unset_dimension(container, offset); - } else if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) { - zend_throw_error(NULL, "Cannot unset string offsets"); - } - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } - } else { - zval *value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - zval_ptr_dtor_nogc(free_op1); - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CONST != IS_UNUSED) { - - zval *key = RT_CONSTANT(opline, opline->op2); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IN_ARRAY_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - HashTable *ht = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - zval *result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - result = zend_hash_find_ex(ht, Z_STR_P(op1), IS_VAR == IS_CONST); - } else if (opline->extended_value) { - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - result = zend_hash_index_find(ht, Z_LVAL_P(op1)); - } else { - result = NULL; - } - } else if (Z_TYPE_P(op1) <= IS_FALSE) { - result = zend_hash_find_ex(ht, ZSTR_EMPTY_ALLOC(), 1); - } else { - zend_string *key; - zval key_tmp, result_tmp, *val; - - result = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) { - ZVAL_STR(&key_tmp, key); - compare_function(&result_tmp, op1, &key_tmp); - if (Z_LVAL(result_tmp) == 0) { - result = val; - break; - } - } ZEND_HASH_FOREACH_END(); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result != NULL); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *var_ptr; - zval *value; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - } - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_W(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_RW(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_UNSET(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), - (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *dim; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR - && Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT - && UNEXPECTED(!Z_ISREF_P(container)) - ) { - zend_error(E_NOTICE, "Attempting to set reference to non referenceable value"); - zend_fetch_dimension_address_LIST_r(container, dim, (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_fetch_dimension_address_W(container, dim, (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2, free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_VAR == IS_UNUSED) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_VAR == IS_UNUSED) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_VAR == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(EX_VAR(opline->op2.var)); - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(EX_VAR(opline->op2.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_VAR == IS_CONST && - (IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_VAR != IS_CONST && - (IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zend_free_op free_op2; - - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - zval_ptr_dtor_nogc(free_op2); - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - zval_ptr_dtor_nogc(free_op2); - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_VAR == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } else { - expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zend_free_op free_op2; - zval *offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - zval_ptr_dtor_nogc(free_op2); - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - zval *offset; - zend_ulong hval; - zend_string *key; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - -unset_dim_array: - SEPARATE_ARRAY(container); - ht = Z_ARRVAL_P(container); -offset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - key = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(key, hval)) { - goto num_index_dim; - } - } -str_index_dim: - if (ht == &EG(symbol_table)) { - zend_delete_global_variable(key); - } else { - zend_hash_del(ht, key); - } - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_dim: - zend_hash_index_del(ht, hval); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto offset_again; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_NULL) { - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - hval = Z_RES_HANDLE_P(offset); - goto num_index_dim; - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else { - zend_error(E_WARNING, "Illegal offset type in unset"); - } - break; - } else if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto unset_dim_array; - } - } - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - offset = ZVAL_UNDEFINED_OP2(); - } - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - Z_OBJ_HT_P(container)->unset_dimension(container, offset); - } else if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) { - zend_throw_error(NULL, "Cannot unset string offsets"); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_not_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } - } else { - zval *value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - zval_ptr_dtor_nogc(free_op1); - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var_deref(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var_deref(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_not_identical_function(op1, op2); - zval_ptr_dtor_nogc(free_op1); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *variable_ptr; - zval *value_ptr; - - SAVE_OPLINE(); - value_ptr = _get_zval_ptr_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_VAR == IS_VAR && - UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) { - - zend_throw_error(NULL, "Cannot assign by reference to an array dimension of an object"); - variable_ptr = &EG(uninitialized_zval); - } else if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(value_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_VAR == IS_VAR && - opline->extended_value == ZEND_RETURNS_FUNCTION && - UNEXPECTED(!Z_ISREF_P(value_ptr))) { - - variable_ptr = zend_wrong_assign_to_variable_reference( - variable_ptr, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_variable_reference(variable_ptr, value_ptr); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), variable_ptr); - } - - if (UNEXPECTED(free_op2)) {zval_ptr_dtor_nogc(free_op2);}; - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } - } else { - zval *value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - zval_ptr_dtor_nogc(free_op1); - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - zval_ptr_dtor_nogc(free_op2); - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = NULL; - if (IS_UNUSED == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if (IS_UNUSED == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = NULL; - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_W(container, NULL, IS_UNUSED OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_RW(container, NULL, IS_UNUSED OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_UNUSED == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = NULL; - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = NULL; - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = NULL; - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = NULL; - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_VAR == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_UNUSED != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_VAR == IS_CONST && - IS_UNUSED == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_VAR != IS_CONST && - IS_UNUSED == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_UNUSED != IS_UNUSED) { - - - function_name = NULL; - if (IS_UNUSED != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_UNUSED & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_UNUSED == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_UNUSED == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_UNUSED != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_VAR == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (IS_VAR == IS_UNUSED) { - zend_verify_missing_return_type(EX(func), CACHE_ADDR(opline->op2.num)); - } else { -/* prevents "undefined variable opline" errors */ -#if 0 || (IS_VAR != IS_UNUSED) - zval *retval_ref, *retval_ptr; - zend_free_op free_op1; - zend_arg_info *ret_info = EX(func)->common.arg_info - 1; - - retval_ref = retval_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_CONST) { - ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr); - retval_ref = retval_ptr = EX_VAR(opline->result.var); - } else if (IS_VAR == IS_VAR) { - if (UNEXPECTED(Z_TYPE_P(retval_ptr) == IS_INDIRECT)) { - retval_ptr = Z_INDIRECT_P(retval_ptr); - } - ZVAL_DEREF(retval_ptr); - } else if (IS_VAR == IS_CV) { - ZVAL_DEREF(retval_ptr); - } - - if (UNEXPECTED(!ZEND_TYPE_IS_CLASS(ret_info->type) - && ZEND_TYPE_CODE(ret_info->type) != IS_CALLABLE - && ZEND_TYPE_CODE(ret_info->type) != IS_ITERABLE - && !ZEND_SAME_FAKE_TYPE(ZEND_TYPE_CODE(ret_info->type), Z_TYPE_P(retval_ptr)) - && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) - && retval_ref != retval_ptr) - ) { - /* A cast might happen - unwrap the reference if this is a by-value return */ - if (Z_REFCOUNT_P(retval_ref) == 1) { - ZVAL_UNREF(retval_ref); - } else { - Z_DELREF_P(retval_ref); - ZVAL_COPY(retval_ref, retval_ptr); - } - retval_ptr = retval_ref; - } - zend_verify_return_type(EX(func), retval_ptr, CACHE_ADDR(opline->op2.num)); -#endif - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *result; - zend_function *constructor; - zend_class_entry *ce; - zend_execute_data *call; - - SAVE_OPLINE(); - if (IS_VAR == IS_CONST) { - ce = CACHED_PTR(opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - CACHE_PTR(opline->op2.num, ce); - } - } else if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - result = EX_VAR(opline->result.var); - if (UNEXPECTED(object_init_ex(result, ce) != SUCCESS)) { - ZVAL_UNDEF(result); - HANDLE_EXCEPTION(); - } - - constructor = Z_OBJ_HT_P(result)->get_constructor(Z_OBJ_P(result)); - if (constructor == NULL) { - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - - /* If there are no arguments, skip over the DO_FCALL opcode. We check if the next - * opcode is DO_FCALL in case EXT instructions are used. */ - if (EXPECTED(opline->extended_value == 0 && (opline+1)->opcode == ZEND_DO_FCALL)) { - ZEND_VM_NEXT_OPCODE_EX(1, 2); - } - - /* Perform a dummy function call */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION, (zend_function *) &zend_pass_function, - opline->extended_value, NULL); - } else { - if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&constructor->op_array))) { - init_func_run_time_cache(&constructor->op_array); - } - /* We are not handling overloaded classes right now */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION | ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS, - constructor, - opline->extended_value, - Z_OBJ_P(result)); - Z_ADDREF_P(result); - } - - call->prev_execute_data = EX(call); - EX(call) = call; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } else { - expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_UNUSED != IS_UNUSED) { - - zval *offset = NULL; - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_UNUSED != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_UNUSED == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEPARATE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - if (UNEXPECTED(Z_ISREF_P(var_ptr))) { - if (UNEXPECTED(Z_REFCOUNT_P(var_ptr) == 1)) { - ZVAL_UNREF(var_ptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } - } else { - zval *value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - zval_ptr_dtor_nogc(free_op1); - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_UNUSED != IS_UNUSED) { - - zval *key = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MAKE_REF_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1 = EX_VAR(opline->op1.var); - - if (IS_VAR == IS_CV) { - if (UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_NEW_EMPTY_REF(op1); - Z_SET_REFCOUNT_P(op1, 2); - ZVAL_NULL(Z_REFVAL_P(op1)); - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } else { - if (Z_ISREF_P(op1)) { - Z_ADDREF_P(op1); - } else { - ZVAL_MAKE_REF_EX(op1, 2); - } - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_INDIRECT)) { - op1 = Z_INDIRECT_P(op1); - if (EXPECTED(!Z_ISREF_P(op1))) { - ZVAL_MAKE_REF_EX(op1, 2); - } else { - GC_ADDREF(Z_REF_P(op1)); - } - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } else { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), op1); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_TYPE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *op1; - zend_string *type; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_var_deref(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - type = zend_zval_get_type(op1); - if (EXPECTED(type)) { - ZVAL_INTERNED_STR(EX_VAR(opline->result.var), type); - } else { - ZVAL_STRING(EX_VAR(opline->result.var), "unknown type"); - } - zval_ptr_dtor_nogc(free_op1); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if (IS_CV == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *var_ptr; - zval *value; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - var_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_W(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_RW(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CV == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - zend_fetch_dimension_address_UNSET(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_VAR, property, IS_CV, - ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_LIST_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *dim; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - dim = EX_VAR(opline->op2.var); - - if (IS_VAR == IS_VAR - && Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT - && UNEXPECTED(!Z_ISREF_P(container)) - ) { - zend_error(E_NOTICE, "Attempting to set reference to non referenceable value"); - zend_fetch_dimension_address_LIST_r(container, dim, IS_CV OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_fetch_dimension_address_W(container, dim, IS_CV OPLINE_CC EXECUTE_DATA_CC); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_VAR != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *variable_ptr; - zval *value_ptr; - - SAVE_OPLINE(); - value_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op2.var EXECUTE_DATA_CC); - variable_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_VAR == IS_VAR && - UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) { - - zend_throw_error(NULL, "Cannot assign by reference to an array dimension of an object"); - variable_ptr = &EG(uninitialized_zval); - } else if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(value_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_CV == IS_VAR && - opline->extended_value == ZEND_RETURNS_FUNCTION && - UNEXPECTED(!Z_ISREF_P(value_ptr))) { - - variable_ptr = zend_wrong_assign_to_variable_reference( - variable_ptr, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_variable_reference(variable_ptr, value_ptr); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), variable_ptr); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_VAR == IS_UNUSED) { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_VAR, property, IS_CV, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_VAR == IS_UNUSED) { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_VAR, property, IS_CV, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_VAR == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_CV != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_VAR == IS_CONST && - IS_CV == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_VAR != IS_CONST && - IS_CV == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_CV != IS_UNUSED) { - - - function_name = EX_VAR(opline->op2.var); - if (IS_CV != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_CV & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_CV == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_CV != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_VAR == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } else { - expr_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_TMP_VAR) { - /* pass */ - } else if (IS_VAR == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_VAR == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CV != IS_UNUSED) { - - zval *offset = EX_VAR(opline->op2.var); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CV == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_VAR != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zval *offset; - zend_ulong hval; - zend_string *key; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - offset = EX_VAR(opline->op2.var); - - do { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - -unset_dim_array: - SEPARATE_ARRAY(container); - ht = Z_ARRVAL_P(container); -offset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - key = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(key, hval)) { - goto num_index_dim; - } - } -str_index_dim: - if (ht == &EG(symbol_table)) { - zend_delete_global_variable(key); - } else { - zend_hash_del(ht, key); - } - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_dim: - zend_hash_index_del(ht, hval); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto offset_again; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_NULL) { - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - hval = Z_RES_HANDLE_P(offset); - goto num_index_dim; - } else if (IS_CV == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else { - zend_error(E_WARNING, "Illegal offset type in unset"); - } - break; - } else if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto unset_dim_array; - } - } - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - offset = ZVAL_UNDEFINED_OP2(); - } - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CV == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - Z_OBJ_HT_P(container)->unset_dimension(container, offset); - } else if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) { - zend_throw_error(NULL, "Cannot unset string offsets"); - } - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - if (IS_VAR == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_VAR == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op1; - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_VAR & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_VAR == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);}; - } - } else { - zval *value = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - zval_ptr_dtor_nogc(free_op1); - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CV != IS_UNUSED) { - - zval *key = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *array; - zval *value, *variable_ptr; - uint32_t value_type; - HashTable *fe_ht; - HashPosition pos; - Bucket *p; - - array = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - fe_ht = Z_ARRVAL_P(array); - pos = Z_FE_POS_P(array); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - break; - } - } else { - break; - } - } - pos++; - p++; - } - Z_FE_POS_P(array) = pos + 1; - if (0) { - if (!p->key) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } - } - - variable_ptr = EX_VAR(opline->op2.var); - zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *array; - zval *value, *variable_ptr; - uint32_t value_type; - HashTable *fe_ht; - HashPosition pos; - Bucket *p; - - array = EX_VAR(opline->op1.var); - SAVE_OPLINE(); - fe_ht = Z_ARRVAL_P(array); - pos = Z_FE_POS_P(array); - p = fe_ht->arData + pos; - while (1) { - if (UNEXPECTED(pos >= fe_ht->nNumUsed)) { - /* reached end of iteration */ - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } - value = &p->val; - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - if (UNEXPECTED(value_type == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - value_type = Z_TYPE_INFO_P(value); - if (EXPECTED(value_type != IS_UNDEF)) { - break; - } - } else { - break; - } - } - pos++; - p++; - } - Z_FE_POS_P(array) = pos + 1; - if (1) { - if (!p->key) { - ZVAL_LONG(EX_VAR(opline->result.var), p->h); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key); - } - } - - variable_ptr = EX_VAR(opline->op2.var); - zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(0)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } else { - ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } else { - ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(1)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } else { - ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } else { - ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *obj; - zend_class_entry *ce, *scope; - zend_function *clone; - zend_object_clone_obj_t clone_call; - - SAVE_OPLINE(); - obj = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - do { - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(obj)) { - obj = Z_REFVAL_P(obj); - if (EXPECTED(Z_TYPE_P(obj) == IS_OBJECT)) { - break; - } - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "__clone method called on non-object"); - - HANDLE_EXCEPTION(); - } - } while (0); - - ce = Z_OBJCE_P(obj); - clone = ce->clone; - clone_call = Z_OBJ_HT_P(obj)->clone_obj; - if (UNEXPECTED(clone_call == NULL)) { - zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name)); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (clone && !(clone->common.fn_flags & ZEND_ACC_PUBLIC)) { - scope = EX(func)->op_array.scope; - if (clone->common.scope != scope) { - if (UNEXPECTED(clone->common.fn_flags & ZEND_ACC_PRIVATE) - || UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), scope))) { - zend_wrong_clone_call(clone, scope); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - - ZVAL_OBJ(EX_VAR(opline->result.var), clone_call(obj)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_NAME_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - uint32_t fetch_type; - zend_class_entry *called_scope, *scope; - USE_OPLINE - - fetch_type = opline->op1.num; - - scope = EX(func)->op_array.scope; - if (UNEXPECTED(scope == NULL)) { - SAVE_OPLINE(); - zend_throw_error(NULL, "Cannot use \"%s\" when no class scope is active", - fetch_type == ZEND_FETCH_CLASS_SELF ? "self" : - fetch_type == ZEND_FETCH_CLASS_PARENT ? "parent" : "static"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - switch (fetch_type) { - case ZEND_FETCH_CLASS_SELF: - ZVAL_STR_COPY(EX_VAR(opline->result.var), scope->name); - break; - case ZEND_FETCH_CLASS_PARENT: - if (UNEXPECTED(scope->parent == NULL)) { - SAVE_OPLINE(); - zend_throw_error(NULL, - "Cannot use \"parent\" when current class scope has no parent"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - ZVAL_STR_COPY(EX_VAR(opline->result.var), scope->parent->name); - break; - case ZEND_FETCH_CLASS_STATIC: - if (Z_TYPE(EX(This)) == IS_OBJECT) { - called_scope = Z_OBJCE(EX(This)); - } else { - called_scope = Z_CE(EX(This)); - } - ZVAL_STR_COPY(EX_VAR(opline->result.var), called_scope->name); - break; - EMPTY_SWITCH_DEFAULT_CASE() - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_always_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = &EX(This); - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_UNUSED, property, IS_CONST, - ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_UNUSED & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_UNUSED == IS_UNUSED) { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_UNUSED, property, IS_CONST, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_UNUSED == IS_UNUSED) { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_UNUSED, property, IS_CONST, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_string **rope; - zval *var; - - /* Compiler allocates the necessary number of zval slots to keep the rope */ - rope = (zend_string**)EX_VAR(opline->result.var); - if (IS_CONST == IS_CONST) { - var = RT_CONSTANT(opline, opline->op2); - rope[0] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = RT_CONSTANT(opline, opline->op2); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (IS_CONST == IS_CV) { - rope[0] = zend_string_copy(Z_STR_P(var)); - } else { - rope[0] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[0] = zval_get_string_func(var); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - - zval *class_name; - USE_OPLINE - - SAVE_OPLINE(); - if (IS_CONST == IS_UNUSED) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->op1.num); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else if (IS_CONST == IS_CONST) { - zend_class_entry *ce = CACHED_PTR(opline->extended_value); - - if (UNEXPECTED(ce == NULL)) { - class_name = RT_CONSTANT(opline, opline->op2); - ce = zend_fetch_class_by_name(Z_STR_P(class_name), Z_STR_P(class_name + 1), opline->op1.num); - CACHE_PTR(opline->extended_value, ce); - } - Z_CE_P(EX_VAR(opline->result.var)) = ce; - } else { - class_name = RT_CONSTANT(opline, opline->op2); -try_class_name: - if (Z_TYPE_P(class_name) == IS_OBJECT) { - Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name); - } else if (Z_TYPE_P(class_name) == IS_STRING) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->op1.num); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_TYPE_P(class_name) == IS_REFERENCE) { - class_name = Z_REFVAL_P(class_name); - goto try_class_name; - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(class_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Class name must be a valid object or a string"); - } - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CONST != IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - if (IS_CONST != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_UNUSED != IS_UNUSED) { - do { - if (IS_UNUSED == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CONST != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - zend_invalid_method_call(object, function_name); - - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CONST == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - - HANDLE_EXCEPTION(); - } - if (IS_CONST == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_UNUSED & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CONST != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_UNUSED & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_UNUSED & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_UNUSED == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_UNUSED == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_CONST != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_UNUSED == IS_CONST && - IS_CONST == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_UNUSED != IS_CONST && - IS_CONST == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_CONST != IS_UNUSED) { - - - function_name = RT_CONSTANT(opline, opline->op2); - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_CONST & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_CONST == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_CONST != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_UNUSED == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_constant *c; - - c = CACHED_PTR(opline->extended_value); - if (EXPECTED(c != NULL) && EXPECTED(!IS_SPECIAL_CACHE_VAL(c))) { - ZVAL_COPY_OR_DUP(EX_VAR(opline->result.var), &c->value); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - zend_quick_get_constant(RT_CONSTANT(opline, opline->op2) + 1, opline->op1.num OPLINE_CC EXECUTE_DATA_CC); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zend_class_entry *ce, *scope; - zend_class_constant *c; - zval *value, *zv; - USE_OPLINE - - SAVE_OPLINE(); - - do { - if (IS_UNUSED == IS_CONST) { - if (EXPECTED(CACHED_PTR(opline->extended_value + sizeof(void*)))) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } else if (EXPECTED(CACHED_PTR(opline->extended_value))) { - ce = CACHED_PTR(opline->extended_value); - } else { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } else { - if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - if (EXPECTED(CACHED_PTR(opline->extended_value) == ce)) { - value = CACHED_PTR(opline->extended_value + sizeof(void*)); - break; - } - } - - zv = zend_hash_find_ex(&ce->constants_table, Z_STR_P(RT_CONSTANT(opline, opline->op2)), 1); - if (EXPECTED(zv != NULL)) { - c = Z_PTR_P(zv); - scope = EX(func)->op_array.scope; - if (!zend_verify_const_access(c, scope)) { - zend_throw_error(NULL, "Cannot access %s const %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(ce->name), Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - value = &c->value; - if (Z_TYPE_P(value) == IS_CONSTANT_AST) { - zval_update_constant_ex(value, c->ce); - if (UNEXPECTED(EG(exception) != NULL)) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - CACHE_POLYMORPHIC_PTR(opline->extended_value, ce, value); - } else { - zend_throw_error(NULL, "Undefined class constant '%s'", Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } while (0); - - ZVAL_COPY_OR_DUP(EX_VAR(opline->result.var), value); - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_UNUSED != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = &EX(This); - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_UNUSED != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_UNUSED & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = NULL; - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_UNUSED == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CONST != IS_UNUSED) { - - zval *key = RT_CONSTANT(opline, opline->op2); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = &EX(This); - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), - (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_UNUSED & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_UNUSED == IS_UNUSED) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_UNUSED == IS_UNUSED) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zend_string **rope; - zval *var; - - /* Compiler allocates the necessary number of zval slots to keep the rope */ - rope = (zend_string**)EX_VAR(opline->result.var); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - rope[0] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CV) { - rope[0] = zend_string_copy(Z_STR_P(var)); - } else { - rope[0] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[0] = zval_get_string_func(var); - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zend_free_op free_op2; - zval *class_name; - USE_OPLINE - - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->op1.num); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_class_entry *ce = CACHED_PTR(opline->extended_value); - - if (UNEXPECTED(ce == NULL)) { - class_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - ce = zend_fetch_class_by_name(Z_STR_P(class_name), Z_STR_P(class_name + 1), opline->op1.num); - CACHE_PTR(opline->extended_value, ce); - } - Z_CE_P(EX_VAR(opline->result.var)) = ce; - } else { - class_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -try_class_name: - if (Z_TYPE_P(class_name) == IS_OBJECT) { - Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name); - } else if (Z_TYPE_P(class_name) == IS_STRING) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->op1.num); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_TYPE_P(class_name) == IS_REFERENCE) { - class_name = Z_REFVAL_P(class_name); - goto try_class_name; - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(class_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Class name must be a valid object or a string"); - } - } - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1, free_op2; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_UNUSED != IS_UNUSED) { - do { - if (IS_UNUSED == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - HANDLE_EXCEPTION(); - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - zend_invalid_method_call(object, function_name); - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_UNUSED & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_UNUSED & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_UNUSED & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_UNUSED == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_UNUSED == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(EX_VAR(opline->op2.var)); - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - zval_ptr_dtor_nogc(EX_VAR(opline->op2.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_UNUSED == IS_CONST && - (IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_UNUSED != IS_CONST && - (IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zend_free_op free_op2; - - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - zval_ptr_dtor_nogc(free_op2); - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - zval_ptr_dtor_nogc(free_op2); - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_UNUSED == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_UNUSED != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = &EX(This); - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_UNUSED != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_UNUSED & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = NULL; - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_UNUSED == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_UNUSED != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_UNUSED & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = NULL; - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_UNUSED == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - zval_ptr_dtor_nogc(free_op2); - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - - zval *class_name; - USE_OPLINE - - SAVE_OPLINE(); - if (IS_UNUSED == IS_UNUSED) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->op1.num); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else if (IS_UNUSED == IS_CONST) { - zend_class_entry *ce = CACHED_PTR(opline->extended_value); - - if (UNEXPECTED(ce == NULL)) { - class_name = NULL; - ce = zend_fetch_class_by_name(Z_STR_P(class_name), Z_STR_P(class_name + 1), opline->op1.num); - CACHE_PTR(opline->extended_value, ce); - } - Z_CE_P(EX_VAR(opline->result.var)) = ce; - } else { - class_name = NULL; -try_class_name: - if (Z_TYPE_P(class_name) == IS_OBJECT) { - Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name); - } else if (Z_TYPE_P(class_name) == IS_STRING) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->op1.num); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_TYPE_P(class_name) == IS_REFERENCE) { - class_name = Z_REFVAL_P(class_name); - goto try_class_name; - } else { - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(class_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Class name must be a valid object or a string"); - } - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_UNUSED == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_UNUSED != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_UNUSED == IS_CONST && - IS_UNUSED == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_UNUSED != IS_CONST && - IS_UNUSED == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_UNUSED != IS_UNUSED) { - - - function_name = NULL; - if (IS_UNUSED != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_UNUSED & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_UNUSED == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_UNUSED == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_UNUSED != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_UNUSED == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (IS_UNUSED == IS_UNUSED) { - zend_verify_missing_return_type(EX(func), CACHE_ADDR(opline->op2.num)); - } else { -/* prevents "undefined variable opline" errors */ -#if 0 || (IS_UNUSED != IS_UNUSED) - zval *retval_ref, *retval_ptr; - - zend_arg_info *ret_info = EX(func)->common.arg_info - 1; - - retval_ref = retval_ptr = NULL; - - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr); - retval_ref = retval_ptr = EX_VAR(opline->result.var); - } else if (IS_UNUSED == IS_VAR) { - if (UNEXPECTED(Z_TYPE_P(retval_ptr) == IS_INDIRECT)) { - retval_ptr = Z_INDIRECT_P(retval_ptr); - } - ZVAL_DEREF(retval_ptr); - } else if (IS_UNUSED == IS_CV) { - ZVAL_DEREF(retval_ptr); - } - - if (UNEXPECTED(!ZEND_TYPE_IS_CLASS(ret_info->type) - && ZEND_TYPE_CODE(ret_info->type) != IS_CALLABLE - && ZEND_TYPE_CODE(ret_info->type) != IS_ITERABLE - && !ZEND_SAME_FAKE_TYPE(ZEND_TYPE_CODE(ret_info->type), Z_TYPE_P(retval_ptr)) - && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) - && retval_ref != retval_ptr) - ) { - /* A cast might happen - unwrap the reference if this is a by-value return */ - if (Z_REFCOUNT_P(retval_ref) == 1) { - ZVAL_UNREF(retval_ref); - } else { - Z_DELREF_P(retval_ref); - ZVAL_COPY(retval_ref, retval_ptr); - } - retval_ptr = retval_ref; - } - zend_verify_return_type(EX(func), retval_ptr, CACHE_ADDR(opline->op2.num)); -#endif - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *result; - zend_function *constructor; - zend_class_entry *ce; - zend_execute_data *call; - - SAVE_OPLINE(); - if (IS_UNUSED == IS_CONST) { - ce = CACHED_PTR(opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - CACHE_PTR(opline->op2.num, ce); - } - } else if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - result = EX_VAR(opline->result.var); - if (UNEXPECTED(object_init_ex(result, ce) != SUCCESS)) { - ZVAL_UNDEF(result); - HANDLE_EXCEPTION(); - } - - constructor = Z_OBJ_HT_P(result)->get_constructor(Z_OBJ_P(result)); - if (constructor == NULL) { - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - - /* If there are no arguments, skip over the DO_FCALL opcode. We check if the next - * opcode is DO_FCALL in case EXT instructions are used. */ - if (EXPECTED(opline->extended_value == 0 && (opline+1)->opcode == ZEND_DO_FCALL)) { - ZEND_VM_NEXT_OPCODE_EX(1, 2); - } - - /* Perform a dummy function call */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION, (zend_function *) &zend_pass_function, - opline->extended_value, NULL); - } else { - if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&constructor->op_array))) { - init_func_run_time_cache(&constructor->op_array); - } - /* We are not handling overloaded classes right now */ - call = zend_vm_stack_push_call_frame( - ZEND_CALL_FUNCTION | ZEND_CALL_RELEASE_THIS | ZEND_CALL_HAS_THIS, - constructor, - opline->extended_value, - Z_OBJ_P(result)); - Z_ADDREF_P(result); - } - - call->prev_execute_data = EX(call); - EX(call) = call; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_UNUSED != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_UNUSED != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_UNUSED & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = NULL; - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_UNUSED == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_UNUSED != IS_UNUSED) { - - zval *key = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_THIS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (EXPECTED(Z_TYPE(EX(This)) == IS_OBJECT)) { - zval *result = EX_VAR(opline->result.var); - - ZVAL_OBJ(result, Z_OBJ(EX(This))); - Z_ADDREF_P(result); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_THIS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - ZVAL_BOOL(EX_VAR(opline->result.var), - (opline->extended_value & ZEND_ISEMPTY) ^ - (Z_TYPE(EX(This)) == IS_OBJECT)); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_CLASS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (IS_UNUSED == IS_UNUSED) { - if (UNEXPECTED(!EX(func)->common.scope)) { - SAVE_OPLINE(); - zend_error(E_WARNING, "get_class() called without object from outside a class"); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), EX(func)->common.scope->name); - ZEND_VM_NEXT_OPCODE(); - } - } else { - - zval *op1; - - SAVE_OPLINE(); - op1 = NULL; - while (1) { - if (Z_TYPE_P(op1) == IS_OBJECT) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_OBJCE_P(op1)->name); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else { - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_error(E_WARNING, "get_class() expects parameter 1 to be object, %s given", zend_get_type_by_const(Z_TYPE_P(op1))); - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - break; - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_CALLED_CLASS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_OBJCE(EX(This))->name); - } else if (Z_CE(EX(This))) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_CE(EX(This))->name); - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (UNEXPECTED(!EX(func)->common.scope)) { - SAVE_OPLINE(); - zend_error(E_WARNING, "get_called_class() called from outside a class"); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FUNC_NUM_ARGS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - ZVAL_LONG(EX_VAR(opline->result.var), EX_NUM_ARGS()); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FUNC_GET_ARGS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_array *ht; - uint32_t arg_count, result_size, skip; - - arg_count = EX_NUM_ARGS(); - if (IS_UNUSED == IS_CONST) { - skip = Z_LVAL_P(RT_CONSTANT(opline, opline->op1)); - if (arg_count < skip) { - result_size = 0; - } else { - result_size = arg_count - skip; - } - } else { - skip = 0; - result_size = arg_count; - } - - if (result_size) { - uint32_t first_extra_arg = EX(func)->op_array.num_args; - - ht = zend_new_array(result_size); - ZVAL_ARR(EX_VAR(opline->result.var), ht); - zend_hash_real_init_packed(ht); - ZEND_HASH_FILL_PACKED(ht) { - zval *p, *q; - uint32_t i = skip; - p = EX_VAR_NUM(i); - if (arg_count > first_extra_arg) { - while (i < first_extra_arg) { - q = p; - if (EXPECTED(Z_TYPE_INFO_P(q) != IS_UNDEF)) { - ZVAL_DEREF(q); - if (Z_OPT_REFCOUNTED_P(q)) { - Z_ADDREF_P(q); - } - ZEND_HASH_FILL_SET(q); - } else { - ZEND_HASH_FILL_SET_NULL(); - } - ZEND_HASH_FILL_NEXT(); - p++; - i++; - } - if (skip < first_extra_arg) { - skip = 0; - } else { - skip -= first_extra_arg; - } - p = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T + skip); - } - while (i < arg_count) { - q = p; - if (EXPECTED(Z_TYPE_INFO_P(q) != IS_UNDEF)) { - ZVAL_DEREF(q); - if (Z_OPT_REFCOUNTED_P(q)) { - Z_ADDREF_P(q); - } - ZEND_HASH_FILL_SET(q); - } else { - ZEND_HASH_FILL_SET_NULL(); - } - ZEND_HASH_FILL_NEXT(); - p++; - i++; - } - } ZEND_HASH_FILL_END(); - ht->nNumOfElements = result_size; - } else { - ZVAL_EMPTY_ARRAY(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = EX_VAR(opline->op2.var); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = &EX(This); - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_UNUSED, property, IS_CV, - ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_UNUSED & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_UNUSED == IS_UNUSED) { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_UNUSED, property, IS_CV, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_UNUSED == IS_UNUSED) { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_UNUSED, property, IS_CV, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ROPE_INIT_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_string **rope; - zval *var; - - /* Compiler allocates the necessary number of zval slots to keep the rope */ - rope = (zend_string**)EX_VAR(opline->result.var); - if (IS_CV == IS_CONST) { - var = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - rope[0] = Z_STR_P(var); - if (UNEXPECTED(Z_REFCOUNTED_P(var))) { - Z_ADDREF_P(var); - } - } else { - var = EX_VAR(opline->op2.var); - if (EXPECTED(Z_TYPE_P(var) == IS_STRING)) { - if (IS_CV == IS_CV) { - rope[0] = zend_string_copy(Z_STR_P(var)); - } else { - rope[0] = Z_STR_P(var); - } - } else { - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(var) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - rope[0] = zval_get_string_func(var); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - - zval *class_name; - USE_OPLINE - - SAVE_OPLINE(); - if (IS_CV == IS_UNUSED) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(NULL, opline->op1.num); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else if (IS_CV == IS_CONST) { - zend_class_entry *ce = CACHED_PTR(opline->extended_value); - - if (UNEXPECTED(ce == NULL)) { - class_name = EX_VAR(opline->op2.var); - ce = zend_fetch_class_by_name(Z_STR_P(class_name), Z_STR_P(class_name + 1), opline->op1.num); - CACHE_PTR(opline->extended_value, ce); - } - Z_CE_P(EX_VAR(opline->result.var)) = ce; - } else { - class_name = EX_VAR(opline->op2.var); -try_class_name: - if (Z_TYPE_P(class_name) == IS_OBJECT) { - Z_CE_P(EX_VAR(opline->result.var)) = Z_OBJCE_P(class_name); - } else if (Z_TYPE_P(class_name) == IS_STRING) { - Z_CE_P(EX_VAR(opline->result.var)) = zend_fetch_class(Z_STR_P(class_name), opline->op1.num); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_TYPE_P(class_name) == IS_REFERENCE) { - class_name = Z_REFVAL_P(class_name); - goto try_class_name; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(class_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Class name must be a valid object or a string"); - } - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CV != IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - if (IS_CV != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_UNUSED != IS_UNUSED) { - do { - if (IS_UNUSED == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CV != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - zend_invalid_method_call(object, function_name); - - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CV == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - - HANDLE_EXCEPTION(); - } - if (IS_CV == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_UNUSED & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CV != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_UNUSED & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_UNUSED & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_UNUSED == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_class_entry *ce; - uint32_t call_info; - zend_function *fbc; - zend_execute_data *call; - - SAVE_OPLINE(); - - if (IS_UNUSED == IS_CONST) { - /* no function found. try a static method in class */ - ce = CACHED_PTR(opline->result.num); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - if (IS_CV != IS_CONST) { - CACHE_PTR(opline->result.num, ce); - } - } - } else if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op1.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op1.var)); - } - - if (IS_UNUSED == IS_CONST && - IS_CV == IS_CONST && - EXPECTED((fbc = CACHED_PTR(opline->result.num + sizeof(void*))) != NULL)) { - /* nothing to do */ - } else if (IS_UNUSED != IS_CONST && - IS_CV == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == ce)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else if (IS_CV != IS_UNUSED) { - - - function_name = EX_VAR(opline->op2.var); - if (IS_CV != IS_CONST) { - if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (IS_CV & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Function name must be a string"); - - HANDLE_EXCEPTION(); - } while (0); - } - } - - if (ce->get_static_method) { - fbc = ce->get_static_method(ce, Z_STR_P(function_name)); - } else { - fbc = zend_std_get_static_method(ce, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - } - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(ce, Z_STR_P(function_name)); - } - - HANDLE_EXCEPTION(); - } - if (IS_CV == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { - CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - if (IS_CV != IS_CONST) { - - } - } else { - if (UNEXPECTED(ce->constructor == NULL)) { - zend_throw_error(NULL, "Cannot call constructor"); - HANDLE_EXCEPTION(); - } - if (Z_TYPE(EX(This)) == IS_OBJECT && Z_OBJ(EX(This))->ce != ce->constructor->common.scope && (ce->constructor->common.fn_flags & ZEND_ACC_PRIVATE)) { - zend_throw_error(NULL, "Cannot call private %s::__construct()", ZSTR_VAL(ce->name)); - HANDLE_EXCEPTION(); - } - fbc = ce->constructor; - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (!(fbc->common.fn_flags & ZEND_ACC_STATIC)) { - if (Z_TYPE(EX(This)) == IS_OBJECT && instanceof_function(Z_OBJCE(EX(This)), ce)) { - ce = (zend_class_entry*)Z_OBJ(EX(This)); - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - } else { - zend_non_static_method_call(fbc); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - goto check_parent_and_self; - } - } else { -check_parent_and_self: - /* previous opcode is ZEND_FETCH_CLASS */ - if (IS_UNUSED == IS_UNUSED - && ((opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_PARENT || - (opline->op1.num & ZEND_FETCH_CLASS_MASK) == ZEND_FETCH_CLASS_SELF)) { - if (Z_TYPE(EX(This)) == IS_OBJECT) { - ce = Z_OBJCE(EX(This)); - } else { - ce = Z_CE(EX(This)); - } - } - call_info = ZEND_CALL_NESTED_FUNCTION; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, ce); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_UNUSED != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = &EX(This); - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_UNUSED == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = &EX(This); - - if (IS_UNUSED == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST || - (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_UNUSED != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_UNUSED & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = NULL; - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = NULL; - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_UNUSED == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CV != IS_UNUSED) { - - zval *key = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - - op1 = EX_VAR(opline->op1.var); - if (EXPECTED(Z_TYPE_INFO_P(op1) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), ~Z_LVAL_P(op1)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - bitwise_not_function(EX_VAR(opline->result.var), op1); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *val; - - - val = EX_VAR(opline->op1.var); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_TRUE(EX_VAR(opline->result.var)); - if (IS_CV == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), !i_zend_is_true(val)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_inc_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, NULL OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - increment_function(var_ptr); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_increment_function(var_ptr); - if (UNEXPECTED(0)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_inc_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_increment_function(var_ptr); - if (UNEXPECTED(1)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_inc_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_pre_dec_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, NULL OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - decrement_function(var_ptr); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(0)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_dec_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(1)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_pre_dec_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_inc_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, EX_VAR(opline->result.var) OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - - increment_function(var_ptr); - } while (0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_increment_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_post_inc_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_post_dec_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(var_ptr) == IS_UNDEF)) { - ZVAL_NULL(var_ptr); - ZVAL_UNDEFINED_OP1(); - } - - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_incdec_typed_ref(ref, EX_VAR(opline->result.var) OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - - decrement_function(var_ptr); - } while (0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(var_ptr) == IS_LONG)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_decrement_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); - } - - ZEND_VM_TAIL_CALL(zend_post_dec_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ECHO_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *z; - - SAVE_OPLINE(); - z = EX_VAR(opline->op1.var); - - if (Z_TYPE_P(z) == IS_STRING) { - zend_string *str = Z_STR_P(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } - } else { - zend_string *str = zval_get_string_func(z); - - if (ZSTR_LEN(str) != 0) { - zend_write(ZSTR_VAL(str), ZSTR_LEN(str)); - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(z) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_string_release_ex(str, 0); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - - val = EX_VAR(opline->op1.var); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline++; - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - - ZEND_VM_JMP(opline); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - - val = EX_VAR(opline->op1.var); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - opline++; - } - - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - - val = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_INFO_P(val) == IS_TRUE)) { - ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value); - ZEND_VM_CONTINUE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - if (i_zend_is_true(val)) { - opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value); - } else { - opline = OP_JMP_ADDR(opline, opline->op2); - } - - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - int ret; - - val = EX_VAR(opline->op1.var); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline++; - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } - ZEND_VM_JMP(opline); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *val; - int ret; - - val = EX_VAR(opline->op1.var); - - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(val) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - ret = i_zend_is_true(val); - - if (ret) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - opline = OP_JMP_ADDR(opline, opline->op2); - } else { - ZVAL_FALSE(EX_VAR(opline->result.var)); - opline++; - } - ZEND_VM_JMP(opline); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = EX_VAR(opline->op1.var); - return_value = EX(return_value); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_CV & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_CV == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval_ptr; - - - SAVE_OPLINE(); - - do { - if ((IS_CV & (IS_CONST|IS_TMP_VAR)) || - (IS_CV == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) { - /* Not supposed to happen, but we'll allow it */ - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - - retval_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (!EX(return_value)) { - - } else { - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISREF_P(retval_ptr))) { - ZVAL_COPY_VALUE(EX(return_value), retval_ptr); - break; - } - - ZVAL_NEW_REF(EX(return_value), retval_ptr); - if (IS_CV == IS_CONST) { - Z_TRY_ADDREF_P(retval_ptr); - } - } - break; - } - - retval_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - ZEND_ASSERT(retval_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION && !Z_ISREF_P(retval_ptr)) { - zend_error(E_NOTICE, "Only variable references should be returned by reference"); - if (EX(return_value)) { - ZVAL_NEW_REF(EX(return_value), retval_ptr); - } else { - - } - break; - } - } - - if (EX(return_value)) { - if (Z_ISREF_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } else { - ZVAL_MAKE_REF_EX(retval_ptr, 2); - } - ZVAL_REF(EX(return_value), Z_REF_P(retval_ptr)); - } - - } while (0); - - ZEND_VM_TAIL_CALL(zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *retval; - - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - retval = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - /* Copy return value into generator->retval */ - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(&generator->retval, retval); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->retval))) { - Z_ADDREF(generator->retval); - } - } - } else if (IS_CV == IS_CV) { - ZVAL_COPY_DEREF(&generator->retval, retval); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_refcounted *ref = Z_COUNTED_P(retval); - - retval = Z_REFVAL_P(retval); - ZVAL_COPY_VALUE(&generator->retval, retval); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval)) { - Z_ADDREF_P(retval); - } - } else { - ZVAL_COPY_VALUE(&generator->retval, retval); - } - } - - /* Close the generator to free up resources */ - zend_generator_close(generator, 1); - - /* Pass execution back to handling code */ - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_THROW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - - - SAVE_OPLINE(); - value = EX_VAR(opline->op1.var); - - do { - if (IS_CV == IS_CONST || UNEXPECTED(Z_TYPE_P(value) != IS_OBJECT)) { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_OBJECT)) { - break; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Can only throw objects"); - - HANDLE_EXCEPTION(); - } - } while (0); - - zend_exception_save(); - if (IS_CV != IS_TMP_VAR) { - Z_TRY_ADDREF_P(value); - } - - zend_throw_exception_object(value); - zend_exception_restore(); - - HANDLE_EXCEPTION(); -} - -static zend_always_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SPEC_CV_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - - - varptr = EX_VAR(opline->op1.var); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_CV == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(ZEND_SEND_VAR_SPEC_CV_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *varptr, *arg; - - SAVE_OPLINE(); - varptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(varptr))) { - ZVAL_NEW_EMPTY_REF(arg); - ZVAL_NULL(Z_REFVAL_P(arg)); - ZEND_VM_NEXT_OPCODE(); - } - - if (Z_ISREF_P(varptr)) { - Z_ADDREF_P(varptr); - } else { - ZVAL_MAKE_REF_EX(varptr, 2); - } - ZVAL_REF(arg, Z_REF_P(varptr)); - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(0)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_var_by_ref; - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_var_by_ref: - ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = EX_VAR(opline->op1.var); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_CV == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SPEC_CV_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - - uint32_t arg_num = opline->op2.num; - - if (EXPECTED(1)) { - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - goto send_var_by_ref; - } - } else if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { -send_var_by_ref: - ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = EX_VAR(opline->op1.var); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(varptr) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_NULL(arg); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_CV == IS_CV) { - ZVAL_COPY_DEREF(arg, varptr); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(varptr))) { - zend_refcounted *ref = Z_COUNTED_P(varptr); - - varptr = Z_REFVAL_P(varptr); - ZVAL_COPY_VALUE(arg, varptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(arg)) { - Z_ADDREF_P(arg); - } - } else { - ZVAL_COPY_VALUE(arg, varptr); - } - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *arg, *param; - - - SAVE_OPLINE(); - - if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) { - zend_param_must_be_ref(EX(call)->func, opline->op2.num); - } - - arg = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - param = ZEND_CALL_VAR(EX(call), opline->result.var); - ZVAL_COPY(param, arg); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *val; - - - val = EX_VAR(opline->op1.var); - if (Z_TYPE_INFO_P(val) == IS_TRUE) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } else if (EXPECTED(Z_TYPE_INFO_P(val) <= IS_TRUE)) { - /* The result and op1 can be the same cv zval */ - const uint32_t orig_val_type = Z_TYPE_INFO_P(val); - ZVAL_FALSE(EX_VAR(opline->result.var)); - if (IS_CV == IS_CV && UNEXPECTED(orig_val_type == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - } else { - SAVE_OPLINE(); - ZVAL_BOOL(EX_VAR(opline->result.var), i_zend_is_true(val)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *obj; - zend_class_entry *ce, *scope; - zend_function *clone; - zend_object_clone_obj_t clone_call; - - SAVE_OPLINE(); - obj = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - do { - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(obj) != IS_OBJECT))) { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(obj)) { - obj = Z_REFVAL_P(obj); - if (EXPECTED(Z_TYPE_P(obj) == IS_OBJECT)) { - break; - } - } - ZVAL_UNDEF(EX_VAR(opline->result.var)); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(obj) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "__clone method called on non-object"); - - HANDLE_EXCEPTION(); - } - } while (0); - - ce = Z_OBJCE_P(obj); - clone = ce->clone; - clone_call = Z_OBJ_HT_P(obj)->clone_obj; - if (UNEXPECTED(clone_call == NULL)) { - zend_throw_error(NULL, "Trying to clone an uncloneable object of class %s", ZSTR_VAL(ce->name)); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (clone && !(clone->common.fn_flags & ZEND_ACC_PUBLIC)) { - scope = EX(func)->op_array.scope; - if (clone->common.scope != scope) { - if (UNEXPECTED(clone->common.fn_flags & ZEND_ACC_PRIVATE) - || UNEXPECTED(!zend_check_protected(zend_get_function_root_class(clone), scope))) { - zend_wrong_clone_call(clone, scope); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - } - - ZVAL_OBJ(EX_VAR(opline->result.var), clone_call(obj)); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr; - zval *result = EX_VAR(opline->result.var); - HashTable *ht; - - SAVE_OPLINE(); - expr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - switch (opline->extended_value) { - case IS_NULL: - ZVAL_NULL(result); - break; - case _IS_BOOL: - ZVAL_BOOL(result, zend_is_true(expr)); - break; - case IS_LONG: - ZVAL_LONG(result, zval_get_long(expr)); - break; - case IS_DOUBLE: - ZVAL_DOUBLE(result, zval_get_double(expr)); - break; - case IS_STRING: - ZVAL_STR(result, zval_get_string(expr)); - break; - default: - if (IS_CV & (IS_VAR|IS_CV)) { - ZVAL_DEREF(expr); - } - /* If value is already of correct type, return it directly */ - if (Z_TYPE_P(expr) == opline->extended_value) { - ZVAL_COPY_VALUE(result, expr); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_CV != IS_TMP_VAR) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (opline->extended_value == IS_ARRAY) { - if (IS_CV == IS_CONST || Z_TYPE_P(expr) != IS_OBJECT || Z_OBJCE_P(expr) == zend_ce_closure) { - if (Z_TYPE_P(expr) != IS_NULL) { - ZVAL_ARR(result, zend_new_array(1)); - expr = zend_hash_index_add_new(Z_ARRVAL_P(result), 0, expr); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } else { - ZVAL_EMPTY_ARRAY(result); - } - } else { - HashTable *obj_ht = zend_get_properties_for(expr, ZEND_PROP_PURPOSE_ARRAY_CAST); - if (obj_ht) { - /* fast copy */ - ZVAL_ARR(result, zend_proptable_to_symtable(obj_ht, - (Z_OBJCE_P(expr)->default_properties_count || - Z_OBJ_P(expr)->handlers != &std_object_handlers || - GC_IS_RECURSIVE(obj_ht)))); - zend_release_properties(obj_ht); - } else { - ZVAL_EMPTY_ARRAY(result); - } - } - } else { - ZVAL_OBJ(result, zend_objects_new(zend_standard_class_def)); - if (Z_TYPE_P(expr) == IS_ARRAY) { - ht = zend_symtable_to_proptable(Z_ARR_P(expr)); - if (GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) { - /* TODO: try not to duplicate immutable arrays as well ??? */ - ht = zend_array_dup(ht); - } - Z_OBJ_P(result)->properties = ht; - } else if (Z_TYPE_P(expr) != IS_NULL) { - Z_OBJ_P(result)->properties = ht = zend_new_array(1); - expr = zend_hash_add_new(ht, ZSTR_KNOWN(ZEND_STR_SCALAR), expr); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(expr))) Z_ADDREF_P(expr); - } else { - if (Z_OPT_REFCOUNTED_P(expr)) Z_ADDREF_P(expr); - } - } - } - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_op_array *new_op_array; - - zval *inc_filename; - - SAVE_OPLINE(); - inc_filename = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - new_op_array = zend_include_or_eval(inc_filename, opline->extended_value); - - if (UNEXPECTED(EG(exception) != NULL)) { - if (new_op_array != ZEND_FAKE_OP_ARRAY && new_op_array != NULL) { - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else if (new_op_array == ZEND_FAKE_OP_ARRAY) { - if (RETURN_VALUE_USED(opline)) { - ZVAL_TRUE(EX_VAR(opline->result.var)); - } - } else if (EXPECTED(new_op_array != NULL)) { - zval *return_value = NULL; - zend_execute_data *call; - - if (RETURN_VALUE_USED(opline)) { - return_value = EX_VAR(opline->result.var); - } - - new_op_array->scope = EX(func)->op_array.scope; - - call = zend_vm_stack_push_call_frame( - (Z_TYPE_INFO(EX(This)) & ZEND_CALL_HAS_THIS) | ZEND_CALL_NESTED_CODE | ZEND_CALL_HAS_SYMBOL_TABLE, - (zend_function*)new_op_array, 0, - Z_PTR(EX(This))); - - if (EX_CALL_INFO() & ZEND_CALL_HAS_SYMBOL_TABLE) { - call->symbol_table = EX(symbol_table); - } else { - call->symbol_table = zend_rebuild_symbol_table(); - } - - call->prev_execute_data = execute_data; - i_init_code_execute_data(call, new_op_array, return_value); - if (EXPECTED(zend_execute_ex == execute_ex)) { - ZEND_VM_ENTER(); - } else { - ZEND_ADD_CALL_FLAG(call, ZEND_CALL_TOP); - zend_execute_ex(call); - zend_vm_stack_free_call_frame(call); - } - - destroy_op_array(new_op_array); - efree_size(new_op_array, sizeof(zend_op_array)); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } else if (RETURN_VALUE_USED(opline)) { - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *array_ptr, *result; - - SAVE_OPLINE(); - - array_ptr = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_CV != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(array_ptr); - } - Z_FE_POS_P(result) = 0; - - ZEND_VM_NEXT_OPCODE(); - } else if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, array_ptr); - if (IS_CV != IS_TMP_VAR) { - Z_ADDREF_P(array_ptr); - } - - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(result) = (uint32_t) -1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(result) = zend_hash_iterator_add(properties, 0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 0 OPLINE_CC EXECUTE_DATA_CC); - - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_RW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *array_ptr, *array_ref; - - SAVE_OPLINE(); - - if (IS_CV == IS_VAR || IS_CV == IS_CV) { - array_ref = array_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (Z_ISREF_P(array_ref)) { - array_ptr = Z_REFVAL_P(array_ref); - } - } else { - array_ref = array_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - } - - if (EXPECTED(Z_TYPE_P(array_ptr) == IS_ARRAY)) { - if (IS_CV == IS_VAR || IS_CV == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ref = EX_VAR(opline->result.var); - ZVAL_NEW_REF(array_ref, array_ptr); - array_ptr = Z_REFVAL_P(array_ref); - } - if (IS_CV == IS_CONST) { - ZVAL_ARR(array_ptr, zend_array_dup(Z_ARRVAL_P(array_ptr))); - } else { - SEPARATE_ARRAY(array_ptr); - } - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(Z_ARRVAL_P(array_ptr), 0); - - if (IS_CV == IS_VAR) { - - } - ZEND_VM_NEXT_OPCODE(); - } else if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(array_ptr) == IS_OBJECT)) { - if (!Z_OBJCE_P(array_ptr)->get_iterator) { - HashTable *properties; - if (IS_CV == IS_VAR || IS_CV == IS_CV) { - if (array_ptr == array_ref) { - ZVAL_NEW_REF(array_ref, array_ref); - array_ptr = Z_REFVAL_P(array_ref); - } - Z_ADDREF_P(array_ref); - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), array_ref); - } else { - array_ptr = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(array_ptr, array_ref); - } - if (Z_OBJ_P(array_ptr)->properties - && UNEXPECTED(GC_REFCOUNT(Z_OBJ_P(array_ptr)->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(Z_OBJ_P(array_ptr)->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(Z_OBJ_P(array_ptr)->properties); - } - Z_OBJ_P(array_ptr)->properties = zend_array_dup(Z_OBJ_P(array_ptr)->properties); - } - - properties = Z_OBJPROP_P(array_ptr); - if (zend_hash_num_elements(properties) == 0) { - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t) -1; - - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } - - Z_FE_ITER_P(EX_VAR(opline->result.var)) = zend_hash_iterator_add(properties, 0); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - zend_bool is_empty = zend_fe_reset_iterator(array_ptr, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - - } else { - - } - if (UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } else if (is_empty) { - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } - } else { - zend_error(E_WARNING, "Invalid argument supplied for foreach()"); - ZVAL_UNDEF(EX_VAR(opline->result.var)); - Z_FE_ITER_P(EX_VAR(opline->result.var)) = (uint32_t)-1; - if (IS_CV == IS_VAR) { - - } else { - - } - ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMP_SET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *ref = NULL; - int ret; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - if ((IS_CV == IS_VAR || IS_CV == IS_CV) && Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - ret = i_zend_is_true(value); - - if (UNEXPECTED(EG(exception))) { - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - - if (ret) { - zval *result = EX_VAR(opline->result.var); - - ZVAL_COPY_VALUE(result, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if (IS_CV == IS_VAR && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COALESCE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *ref = NULL; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - if (IS_CV & IS_VAR) { - ref = value; - } - value = Z_REFVAL_P(value); - } - - if (Z_TYPE_P(value) > IS_NULL) { - zval *result = EX_VAR(opline->result.var); - ZVAL_COPY_VALUE(result, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) Z_ADDREF_P(result); - } else if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(result)) Z_ADDREF_P(result); - } else if ((IS_CV & IS_VAR) && ref) { - zend_reference *r = Z_REF_P(ref); - - if (UNEXPECTED(GC_DELREF(r) == 0)) { - efree_size(r, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } - ZEND_VM_JMP_EX(OP_JMP_ADDR(opline, opline->op2), 0); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *result = EX_VAR(opline->result.var); - - value = EX_VAR(opline->op1.var); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZVAL_NULL(result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - - if (IS_CV == IS_CV) { - ZVAL_COPY_DEREF(result, value); - } else if (IS_CV == IS_VAR) { - if (UNEXPECTED(Z_ISREF_P(value))) { - ZVAL_COPY_VALUE(result, Z_REFVAL_P(value)); - if (UNEXPECTED(Z_DELREF_P(value) == 0)) { - efree_size(Z_REF_P(value), sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(result)) { - Z_ADDREF_P(result); - } - } else { - ZVAL_COPY_VALUE(result, value); - } - } else { - ZVAL_COPY_VALUE(result, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(result))) { - Z_ADDREF_P(result); - } - } - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - zval *val; - - - SAVE_OPLINE(); - val = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - zend_throw_error(NULL, "Cannot use \"yield from\" in a force-closed generator"); - - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - if (Z_TYPE_P(val) == IS_ARRAY) { - ZVAL_COPY_VALUE(&generator->values, val); - if (IS_CV != IS_TMP_VAR && Z_OPT_REFCOUNTED_P(val)) { - Z_ADDREF_P(val); - } - Z_FE_POS(generator->values) = 0; - - } else if (IS_CV != IS_CONST && Z_TYPE_P(val) == IS_OBJECT && Z_OBJCE_P(val)->get_iterator) { - zend_class_entry *ce = Z_OBJCE_P(val); - if (ce == zend_ce_generator) { - zend_generator *new_gen = (zend_generator *) Z_OBJ_P(val); - - if (IS_CV != IS_TMP_VAR) { - Z_ADDREF_P(val); - } - - if (Z_ISUNDEF(new_gen->retval)) { - if (UNEXPECTED(zend_generator_get_current(new_gen) == generator)) { - zend_throw_error(NULL, "Impossible to yield from the Generator being currently run"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - zend_generator_yield_from(generator, new_gen); - } - } else if (UNEXPECTED(new_gen->execute_data == NULL)) { - zend_throw_error(NULL, "Generator passed to yield from was aborted without proper return and is unable to continue"); - zval_ptr_dtor(val); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } else { - if (RETURN_VALUE_USED(opline)) { - ZVAL_COPY(EX_VAR(opline->result.var), &new_gen->retval); - } - ZEND_VM_NEXT_OPCODE(); - } - } else { - zend_object_iterator *iter = ce->get_iterator(ce, val, 0); - - if (UNEXPECTED(!iter) || UNEXPECTED(EG(exception))) { - if (!EG(exception)) { - zend_throw_error(NULL, "Object of type %s did not create an Iterator", ZSTR_VAL(ce->name)); - } - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - iter->index = 0; - if (iter->funcs->rewind) { - iter->funcs->rewind(iter); - if (UNEXPECTED(EG(exception) != NULL)) { - OBJ_RELEASE(&iter->std); - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - } - - ZVAL_OBJ(&generator->values, &iter->std); - } - } else { - zend_throw_error(NULL, "Can use \"yield from\" only with arrays and Traversables"); - - UNDEF_RESULT(); - HANDLE_EXCEPTION(); - } - - /* This is the default return value - * when the expression is a Generator, it will be overwritten in zend_generator_resume() */ - if (RETURN_VALUE_USED(opline)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - - /* This generator has no send target (though the generator we delegate to might have one) */ - generator->send_target = NULL; - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_STRLEN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - - - value = EX_VAR(opline->op1.var); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - - ZEND_VM_NEXT_OPCODE(); - } else { - zend_bool strict; - - if ((IS_CV & (IS_VAR|IS_CV)) && Z_TYPE_P(value) == IS_REFERENCE) { - value = Z_REFVAL_P(value); - if (EXPECTED(Z_TYPE_P(value) == IS_STRING)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_STRLEN_P(value)); - - ZEND_VM_NEXT_OPCODE(); - } - } - - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - value = ZVAL_UNDEFINED_OP1(); - } - strict = EX_USES_STRICT_TYPES(); - do { - if (EXPECTED(!strict)) { - zend_string *str; - zval tmp; - - ZVAL_COPY(&tmp, value); - if (zend_parse_arg_str_weak(&tmp, &str)) { - ZVAL_LONG(EX_VAR(opline->result.var), ZSTR_LEN(str)); - zval_ptr_dtor(&tmp); - break; - } - zval_ptr_dtor(&tmp); - } - if (!EG(exception)) { - zend_internal_type_error(strict, "strlen() expects parameter 1 to be string, %s given", zend_get_type_by_const(Z_TYPE_P(value))); - } - ZVAL_NULL(EX_VAR(opline->result.var)); - } while (0); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_TYPE_CHECK_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - int result = 0; - - - value = EX_VAR(opline->op1.var); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { -type_check_resource: - if (EXPECTED(Z_TYPE_P(value) != IS_RESOURCE) - || EXPECTED(NULL != zend_rsrc_list_get_rsrc_type(Z_RES_P(value)))) { - result = 1; - } - } else if ((IS_CV & (IS_CV|IS_VAR)) && Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - if ((opline->extended_value >> (uint32_t)Z_TYPE_P(value)) & 1) { - goto type_check_resource; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - result = ((1 << IS_NULL) & opline->extended_value) != 0; - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception))) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - Z_LVAL_P(var_ptr)++; - if (UNEXPECTED(0)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - Z_LVAL_P(var_ptr)++; - if (UNEXPECTED(1)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - fast_long_increment_function(var_ptr); - if (UNEXPECTED(0)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - fast_long_increment_function(var_ptr); - if (UNEXPECTED(1)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - Z_LVAL_P(var_ptr)--; - if (UNEXPECTED(0)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - Z_LVAL_P(var_ptr)--; - if (UNEXPECTED(1)) { - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(0)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - fast_long_decrement_function(var_ptr); - if (UNEXPECTED(1)) { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), var_ptr); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - Z_LVAL_P(var_ptr)++; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_LONG_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_increment_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - Z_LVAL_P(var_ptr)--; - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_DEC_LONG_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var_ptr; - - var_ptr = EX_VAR(opline->op1.var); - ZVAL_LONG(EX_VAR(opline->result.var), Z_LVAL_P(var_ptr)); - fast_long_decrement_function(var_ptr); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_SIMPLE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - - - varptr = EX_VAR(opline->op1.var); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_CV == IS_CV) { - ZVAL_COPY(arg, varptr); - } else /* if (IS_CV == IS_VAR) */ { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varptr, *arg; - - uint32_t arg_num = opline->op2.num; - - if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) { - ZEND_VM_TAIL_CALL(ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - varptr = EX_VAR(opline->op1.var); - arg = ZEND_CALL_VAR(EX(call), opline->result.var); - - if (IS_CV == IS_CV) { - ZVAL_COPY(arg, varptr); - } else /* if (IS_CV == IS_VAR) */ { - ZVAL_COPY_VALUE(arg, varptr); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - pow_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - - if ((IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CV != IS_CONST && IS_CV != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_identical_function(op1, op2); - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - result = fast_is_not_identical_function(op1, op2); - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CV == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CV == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CV == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CV == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CV == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if (1 && IS_CV == IS_CONST && IS_CONST == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - compare_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = RT_CONSTANT(opline, opline->op2); - boolean_xor_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if (IS_CONST == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if (IS_CONST != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - zval *value; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op2); - var_ptr = _get_zval_ptr_cv_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if (IS_CONST == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CV != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, IS_CONST, BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, IS_CONST OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_W(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_RW(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_read_IS(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CONST == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_UNSET(container, RT_CONSTANT(opline, opline->op2), IS_CONST OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static zend_always_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CONST_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CV_CONST_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_CV, property, IS_CONST, - ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CONST == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CONST == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CONST == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = RT_CONSTANT(opline, opline->op2); - if (IS_CONST == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CONST == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = RT_CONSTANT(opline, opline->op2); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = RT_CONSTANT(opline, opline->op2); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = RT_CONSTANT(opline, opline->op2); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CONST != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op2); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = RT_CONSTANT(opline, opline->op2); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_CV == IS_UNUSED) { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_CV, property, IS_CONST, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = RT_CONSTANT(opline, opline->op2); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_CV == IS_UNUSED) { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CONST == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_CV, property, IS_CONST, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = EX_VAR(opline->op1.var); - op2 = RT_CONSTANT(opline, opline->op2); - if ((IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CONST == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST || IS_CONST == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CONST != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CV != IS_CONST && IS_CV != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if (IS_CONST == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if (IS_CV != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if (IS_CONST != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CONST != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CONST != IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - if (IS_CONST != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_CV != IS_UNUSED) { - do { - if (IS_CV == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CONST != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - zend_invalid_method_call(object, function_name); - - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CONST == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CONST == IS_CONST) { - function_name = RT_CONSTANT(opline, opline->op2); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CONST == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - - HANDLE_EXCEPTION(); - } - if (IS_CONST == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_CV & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CONST != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_CV & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_CV & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_CV == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CV == IS_VAR || IS_CV == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (IS_CV == IS_TMP_VAR) { - /* pass */ - } else if (IS_CV == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CV == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CONST != IS_UNUSED) { - - zval *offset = RT_CONSTANT(opline, opline->op2); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CONST == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CV != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zval *offset; - zend_ulong hval; - zend_string *key; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - offset = RT_CONSTANT(opline, opline->op2); - - do { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - -unset_dim_array: - SEPARATE_ARRAY(container); - ht = Z_ARRVAL_P(container); -offset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - key = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(key, hval)) { - goto num_index_dim; - } - } -str_index_dim: - if (ht == &EG(symbol_table)) { - zend_delete_global_variable(key); - } else { - zend_hash_del(ht, key); - } - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_dim: - zend_hash_index_del(ht, hval); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto offset_again; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_NULL) { - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - hval = Z_RES_HANDLE_P(offset); - goto num_index_dim; - } else if (IS_CONST == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else { - zend_error(E_WARNING, "Illegal offset type in unset"); - } - break; - } else if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto unset_dim_array; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); - } - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - offset = ZVAL_UNDEFINED_OP2(); - } - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CONST == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - Z_OBJ_HT_P(container)->unset_dimension(container, offset); - } else if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) { - zend_throw_error(NULL, "Cannot unset string offsets"); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = RT_CONSTANT(opline, opline->op2); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - offset = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CONST != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, IS_CONST == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if (IS_CV & (IS_CONST|IS_CV)) { - /* avoid exception check */ - - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if (IS_CONST == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = RT_CONSTANT(opline, opline->op2); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CONST == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = EX_VAR(opline->op1.var); - subject = RT_CONSTANT(opline, opline->op2); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if ((IS_CONST & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr; - zend_bool result; - - SAVE_OPLINE(); - expr = EX_VAR(opline->op1.var); - -try_instanceof: - if (Z_TYPE_P(expr) == IS_OBJECT) { - zend_class_entry *ce; - - if (IS_CONST == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (EXPECTED(ce)) { - CACHE_PTR(opline->extended_value, ce); - } - } - } else if (IS_CONST == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - result = ce && instanceof_function(Z_OBJCE_P(expr), ce); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_TYPE_P(expr) == IS_REFERENCE) { - expr = Z_REFVAL_P(expr); - goto try_instanceof; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(expr) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - result = 0; - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CV != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CV & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CV == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CONST != IS_UNUSED) { - - zval *key = RT_CONSTANT(opline, opline->op2); - - /* Consts, temporary variables and references need copying */ - if (IS_CONST == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CONST == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CONST & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CONST == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_GLOBAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_string *varname; - zval *value; - zval *variable_ptr; - uintptr_t idx; - zend_reference *ref; - - ZEND_VM_REPEATABLE_OPCODE - - varname = Z_STR_P(RT_CONSTANT(opline, opline->op2)); - - /* We store "hash slot index" + 1 (NULL is a mark of uninitialized cache slot) */ - idx = (uintptr_t)CACHED_PTR(opline->extended_value) - 1; - if (EXPECTED(idx < EG(symbol_table).nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)EG(symbol_table).arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == varname) || - (EXPECTED(p->h == ZSTR_H(varname)) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, varname))))) { - - value = (zval*)p; /* value = &p->val; */ - goto check_indirect; - } - } - - value = zend_hash_find_ex(&EG(symbol_table), varname, 1); - if (UNEXPECTED(value == NULL)) { - value = zend_hash_add_new(&EG(symbol_table), varname, &EG(uninitialized_zval)); - idx = (char*)value - (char*)EG(symbol_table).arData; - /* Store "hash slot index" + 1 (NULL is a mark of uninitialized cache slot) */ - CACHE_PTR(opline->extended_value, (void*)(idx + 1)); - } else { - idx = (char*)value - (char*)EG(symbol_table).arData; - /* Store "hash slot index" + 1 (NULL is a mark of uninitialized cache slot) */ - CACHE_PTR(opline->extended_value, (void*)(idx + 1)); -check_indirect: - /* GLOBAL variable may be an INDIRECT pointer to CV */ - if (UNEXPECTED(Z_TYPE_P(value) == IS_INDIRECT)) { - value = Z_INDIRECT_P(value); - if (UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) { - ZVAL_NULL(value); - } - } - } - - if (UNEXPECTED(!Z_ISREF_P(value))) { - ZVAL_MAKE_REF_EX(value, 2); - ref = Z_REF_P(value); - } else { - ref = Z_REF_P(value); - GC_ADDREF(ref); - } - - variable_ptr = EX_VAR(opline->op1.var); - - if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(variable_ptr); - uint32_t refcnt = GC_DELREF(ref); - - if (EXPECTED(variable_ptr != value)) { - if (refcnt == 0) { - SAVE_OPLINE(); - rc_dtor_func(ref); - if (UNEXPECTED(EG(exception))) { - ZVAL_NULL(variable_ptr); - HANDLE_EXCEPTION(); - } - } else { - gc_check_possible_root(ref); - } - } - } - ZVAL_REF(variable_ptr, ref); - - ZEND_VM_REPEAT_OPCODE(ZEND_BIND_GLOBAL); - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IN_ARRAY_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - HashTable *ht = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2)); - zval *result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - result = zend_hash_find_ex(ht, Z_STR_P(op1), IS_CV == IS_CONST); - } else if (opline->extended_value) { - if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - result = zend_hash_index_find(ht, Z_LVAL_P(op1)); - } else { - result = NULL; - } - } else if (Z_TYPE_P(op1) <= IS_FALSE) { - result = zend_hash_find_ex(ht, ZSTR_EMPTY_ALLOC(), 1); - } else { - zend_string *key; - zval key_tmp, result_tmp, *val; - - result = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, key, val) { - ZVAL_STR(&key_tmp, key); - compare_function(&result_tmp, op1, &key_tmp); - if (Z_LVAL(result_tmp) == 0) { - result = val; - break; - } - } ZEND_HASH_FOREACH_END(); - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result != NULL); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container, *dim, *value; - zend_long offset; - HashTable *ht; - - container = EX_VAR(opline->op1.var); - dim = RT_CONSTANT(opline, opline->op2); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_index_array: - if (EXPECTED(Z_TYPE_P(dim) == IS_LONG)) { - offset = Z_LVAL_P(dim); - } else { - offset = zval_get_long(dim); - } - ht = Z_ARRVAL_P(container); - ZEND_HASH_INDEX_FIND(ht, offset, value, fetch_dim_r_index_undef); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } else if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_index_array; - } else { - goto fetch_dim_r_index_slow; - } - } else { -fetch_dim_r_index_slow: - SAVE_OPLINE(); - if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - -fetch_dim_r_index_undef: - ZVAL_NULL(EX_VAR(opline->result.var)); - SAVE_OPLINE(); - zend_undefined_offset(offset); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container, *dim, *value; - zend_long offset; - HashTable *ht; - - container = EX_VAR(opline->op1.var); - dim = EX_VAR(opline->op2.var); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_index_array: - if (EXPECTED(Z_TYPE_P(dim) == IS_LONG)) { - offset = Z_LVAL_P(dim); - } else { - offset = zval_get_long(dim); - } - ht = Z_ARRVAL_P(container); - ZEND_HASH_INDEX_FIND(ht, offset, value, fetch_dim_r_index_undef); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - SAVE_OPLINE(); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZEND_VM_NEXT_OPCODE(); - } - } else if (IS_CV != IS_CONST && EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_index_array; - } else { - goto fetch_dim_r_index_slow; - } - } else { -fetch_dim_r_index_slow: - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR|IS_CV) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - -fetch_dim_r_index_undef: - ZVAL_NULL(EX_VAR(opline->result.var)); - SAVE_OPLINE(); - zend_undefined_offset(offset); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - pow_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if ((IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - ((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CV != IS_CONST && IS_CV != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (1 && IS_CV == IS_CONST && (IS_TMP_VAR|IS_VAR) == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - compare_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - boolean_xor_function(EX_VAR(opline->result.var), op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *var_ptr; - zval *value; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - var_ptr = _get_zval_ptr_cv_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - } - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if (IS_CV != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, (IS_TMP_VAR|IS_VAR), BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - } - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_W(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_RW(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_read_IS(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_UNSET(container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_CV, property, (IS_TMP_VAR|IS_VAR), - (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zend_free_op free_op2; - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1, free_op2; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op2); - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, ((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - zval_ptr_dtor_nogc(free_op2); - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op2, free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zval_ptr_dtor_nogc(free_op2); - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2, free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_CV == IS_UNUSED) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_CV, property, (IS_TMP_VAR|IS_VAR), value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_CV == IS_UNUSED) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_CV, property, (IS_TMP_VAR|IS_VAR), value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = EX_VAR(opline->op1.var); - op2 = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - if ((IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - ((IS_TMP_VAR|IS_VAR) == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST || (IS_TMP_VAR|IS_VAR) == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if ((IS_TMP_VAR|IS_VAR) != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CV != IS_CONST && IS_CV != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if (IS_CV != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1, free_op2; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_CV != IS_UNUSED) { - do { - if (IS_CV == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - HANDLE_EXCEPTION(); - } - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - zend_invalid_method_call(object, function_name); - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST) { - function_name = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - zval_ptr_dtor_nogc(free_op2); - - HANDLE_EXCEPTION(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_CV & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - zval_ptr_dtor_nogc(free_op2); - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_CV & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_CV & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_CV == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CV == IS_VAR || IS_CV == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (IS_CV == IS_TMP_VAR) { - /* pass */ - } else if (IS_CV == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CV == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if ((IS_TMP_VAR|IS_VAR) != IS_UNUSED) { - zend_free_op free_op2; - zval *offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - zval_ptr_dtor_nogc(free_op2); - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CV != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - zval *offset; - zend_ulong hval; - zend_string *key; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - -unset_dim_array: - SEPARATE_ARRAY(container); - ht = Z_ARRVAL_P(container); -offset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - key = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(key, hval)) { - goto num_index_dim; - } - } -str_index_dim: - if (ht == &EG(symbol_table)) { - zend_delete_global_variable(key); - } else { - zend_hash_del(ht, key); - } - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_dim: - zend_hash_index_del(ht, hval); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto offset_again; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_NULL) { - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - hval = Z_RES_HANDLE_P(offset); - goto num_index_dim; - } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else { - zend_error(E_WARNING, "Illegal offset type in unset"); - } - break; - } else if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto unset_dim_array; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); - } - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - offset = ZVAL_UNDEFINED_OP2(); - } - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - Z_OBJ_HT_P(container)->unset_dimension(container, offset); - } else if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) { - zend_throw_error(NULL, "Cannot unset string offsets"); - } - } while (0); - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, (IS_TMP_VAR|IS_VAR) == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if (IS_CV & (IS_CONST|IS_CV)) { - /* avoid exception check */ - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_free_op free_op2; - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = EX_VAR(opline->op1.var); - subject = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - zval_ptr_dtor_nogc(free_op2); - - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_identical_function(op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_not_identical_function(op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CV != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CV & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CV == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_TMP_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_tmp(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_TMP_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_TMP_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_TMP_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_TMP_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var_deref(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_identical_function(op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_var_deref(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - result = fast_is_not_identical_function(op1, op2); - - zval_ptr_dtor_nogc(free_op2); - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - zval_ptr_dtor_nogc(free_op2); - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op2; - zval *variable_ptr; - zval *value_ptr; - - SAVE_OPLINE(); - value_ptr = _get_zval_ptr_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_CV == IS_VAR && - UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) { - - zend_throw_error(NULL, "Cannot assign by reference to an array dimension of an object"); - variable_ptr = &EG(uninitialized_zval); - } else if (IS_VAR == IS_VAR && UNEXPECTED(Z_ISERROR_P(value_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_VAR == IS_VAR && - opline->extended_value == ZEND_RETURNS_FUNCTION && - UNEXPECTED(!Z_ISREF_P(value_ptr))) { - - variable_ptr = zend_wrong_assign_to_variable_reference( - variable_ptr, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_variable_reference(variable_ptr, value_ptr); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), variable_ptr); - } - - if (UNEXPECTED(free_op2)) {zval_ptr_dtor_nogc(free_op2);}; - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr; - zend_bool result; - - SAVE_OPLINE(); - expr = EX_VAR(opline->op1.var); - -try_instanceof: - if (Z_TYPE_P(expr) == IS_OBJECT) { - zend_class_entry *ce; - - if (IS_VAR == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (EXPECTED(ce)) { - CACHE_PTR(opline->extended_value, ce); - } - } - } else if (IS_VAR == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - result = ce && instanceof_function(Z_OBJCE_P(expr), ce); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_TYPE_P(expr) == IS_REFERENCE) { - expr = Z_REFVAL_P(expr); - goto try_instanceof; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(expr) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - result = 0; - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CV != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CV & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CV == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_VAR != IS_UNUSED) { - zend_free_op free_op2; - zval *key = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_VAR == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_VAR == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_VAR & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - zval_ptr_dtor_nogc(free_op2); - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_VAR == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = NULL; - if (IS_UNUSED == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if (IS_UNUSED == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = NULL; - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV_UNUSED(int type ZEND_OPCODE_HANDLER_ARGS_DC) -{ - USE_OPLINE - - zval *varname; - zval *retval; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = EX_VAR(opline->op1.var); - - if (IS_CV == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - retval = zend_hash_find_ex(target_symbol_table, name, IS_CV == IS_CONST); - if (retval == NULL) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { -fetch_this: - zend_fetch_this_var(type OPLINE_CC EXECUTE_DATA_CC); - if (IS_CV != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - if (type == BP_VAR_W) { - retval = zend_hash_add_new(target_symbol_table, name, &EG(uninitialized_zval)); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - retval = zend_hash_update(target_symbol_table, name, &EG(uninitialized_zval)); - } else { - retval = &EG(uninitialized_zval); - } - } - /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ - } else if (Z_TYPE_P(retval) == IS_INDIRECT) { - retval = Z_INDIRECT_P(retval); - if (Z_TYPE_P(retval) == IS_UNDEF) { - if (UNEXPECTED(zend_string_equals(name, ZSTR_KNOWN(ZEND_STR_THIS)))) { - goto fetch_this; - } - if (type == BP_VAR_W) { - ZVAL_NULL(retval); - } else if (type == BP_VAR_IS) { - retval = &EG(uninitialized_zval); - } else { - zend_error(E_NOTICE,"Undefined variable: %s", ZSTR_VAL(name)); - if (type == BP_VAR_RW) { - ZVAL_NULL(retval); - } else { - retval = &EG(uninitialized_zval); - } - } - } - } - - if (!(opline->extended_value & ZEND_FETCH_GLOBAL_LOCK)) { - - } - - if (IS_CV != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - ZEND_ASSERT(retval != NULL); - if (type == BP_VAR_R || type == BP_VAR_IS) { - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else { - ZVAL_INDIRECT(EX_VAR(opline->result.var), retval); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_R_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(BP_VAR_R ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(BP_VAR_W ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_RW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(BP_VAR_RW ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - int fetch_type = - (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) ? - BP_VAR_W : BP_VAR_R; - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(fetch_type ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_UNSET_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(BP_VAR_UNSET ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_IS_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - ZEND_VM_TAIL_CALL(zend_fetch_var_address_helper_SPEC_CV_UNUSED(BP_VAR_IS ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_W(container, NULL, IS_UNUSED OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_RW(container, NULL, IS_UNUSED OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_UNUSED == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = NULL; - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = NULL; - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = NULL; - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_UNUSED == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = NULL; - if (IS_UNUSED == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = NULL; - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_UNUSED == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = NULL; - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = NULL; - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = NULL; -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_UNUSED != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - SAVE_OPLINE(); - if (IS_CV == IS_UNUSED) { - zend_verify_missing_return_type(EX(func), CACHE_ADDR(opline->op2.num)); - } else { -/* prevents "undefined variable opline" errors */ -#if 0 || (IS_CV != IS_UNUSED) - zval *retval_ref, *retval_ptr; - - zend_arg_info *ret_info = EX(func)->common.arg_info - 1; - - retval_ref = retval_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST) { - ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr); - retval_ref = retval_ptr = EX_VAR(opline->result.var); - } else if (IS_CV == IS_VAR) { - if (UNEXPECTED(Z_TYPE_P(retval_ptr) == IS_INDIRECT)) { - retval_ptr = Z_INDIRECT_P(retval_ptr); - } - ZVAL_DEREF(retval_ptr); - } else if (IS_CV == IS_CV) { - ZVAL_DEREF(retval_ptr); - } - - if (UNEXPECTED(!ZEND_TYPE_IS_CLASS(ret_info->type) - && ZEND_TYPE_CODE(ret_info->type) != IS_CALLABLE - && ZEND_TYPE_CODE(ret_info->type) != IS_ITERABLE - && !ZEND_SAME_FAKE_TYPE(ZEND_TYPE_CODE(ret_info->type), Z_TYPE_P(retval_ptr)) - && !(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE) - && retval_ref != retval_ptr) - ) { - /* A cast might happen - unwrap the reference if this is a by-value return */ - if (Z_REFCOUNT_P(retval_ref) == 1) { - ZVAL_UNREF(retval_ref); - } else { - Z_DELREF_P(retval_ref); - ZVAL_COPY(retval_ref, retval_ptr); - } - retval_ptr = retval_ref; - } - zend_verify_return_type(EX(func), retval_ptr, CACHE_ADDR(opline->op2.num)); -#endif - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CV == IS_VAR || IS_CV == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (IS_CV == IS_TMP_VAR) { - /* pass */ - } else if (IS_CV == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CV == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_UNUSED != IS_UNUSED) { - - zval *offset = NULL; - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_UNUSED != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_UNUSED == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CV != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_CV_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *var = EX_VAR(opline->op1.var); - - if (Z_REFCOUNTED_P(var)) { - zend_refcounted *garbage = Z_COUNTED_P(var); - - ZVAL_UNDEF(var); - SAVE_OPLINE(); - if (!GC_DELREF(garbage)) { - rc_dtor_func(garbage); - } else { - gc_check_possible_root(garbage); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZVAL_UNDEF(var); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - - SAVE_OPLINE(); - - varname = EX_VAR(opline->op1.var); - - if (IS_CV == IS_CONST) { - name = Z_STR_P(varname); - } else if (EXPECTED(Z_TYPE_P(varname) == IS_STRING)) { - name = Z_STR_P(varname); - tmp_name = NULL; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(varname) == IS_UNDEF)) { - varname = ZVAL_UNDEFINED_OP1(); - } - name = zval_try_get_tmp_string(varname, &tmp_name); - if (UNEXPECTED(!name)) { - - HANDLE_EXCEPTION(); - } - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - zend_hash_del_ind(target_symbol_table, name); - - if (IS_CV != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_SET_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - - value = EX_VAR(opline->op1.var); - if (!(0)) { - if (Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else { - int result; - - SAVE_OPLINE(); - result = !i_zend_is_true(value); - if (UNEXPECTED(EG(exception))) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_EMPTY_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - - value = EX_VAR(opline->op1.var); - if (!(1)) { - if (Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) { - ZEND_VM_SMART_BRANCH_TRUE(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { - ZEND_VM_SMART_BRANCH_FALSE(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else { - int result; - - SAVE_OPLINE(); - result = !i_zend_is_true(value); - if (UNEXPECTED(EG(exception))) { - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *value; - int result; - - zval *varname; - zend_string *name, *tmp_name; - HashTable *target_symbol_table; - - SAVE_OPLINE(); - varname = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - if (IS_CV == IS_CONST) { - name = Z_STR_P(varname); - } else { - name = zval_get_tmp_string(varname, &tmp_name); - } - - target_symbol_table = zend_get_target_symbol_table(opline->extended_value EXECUTE_DATA_CC); - value = zend_hash_find_ex(target_symbol_table, name, IS_CV == IS_CONST); - - if (IS_CV != IS_CONST) { - zend_tmp_string_release(tmp_name); - } - - if (!value) { - result = (opline->extended_value & ZEND_ISEMPTY); - } else { - if (Z_TYPE_P(value) == IS_INDIRECT) { - value = Z_INDIRECT_P(value); - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - if (Z_ISREF_P(value)) { - value = Z_REFVAL_P(value); - } - result = Z_TYPE_P(value) > IS_NULL; - } else { - result = !i_zend_is_true(value); - } - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CLASS_FETCH|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr; - zend_bool result; - - SAVE_OPLINE(); - expr = EX_VAR(opline->op1.var); - -try_instanceof: - if (Z_TYPE_P(expr) == IS_OBJECT) { - zend_class_entry *ce; - - if (IS_UNUSED == IS_CONST) { - ce = CACHED_PTR(opline->extended_value); - if (UNEXPECTED(ce == NULL)) { - ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_NO_AUTOLOAD); - if (EXPECTED(ce)) { - CACHE_PTR(opline->extended_value, ce); - } - } - } else if (IS_UNUSED == IS_UNUSED) { - ce = zend_fetch_class(NULL, opline->op2.num); - if (UNEXPECTED(ce == NULL)) { - ZEND_ASSERT(EG(exception)); - - ZVAL_UNDEF(EX_VAR(opline->result.var)); - HANDLE_EXCEPTION(); - } - } else { - ce = Z_CE_P(EX_VAR(opline->op2.var)); - } - result = ce && instanceof_function(Z_OBJCE_P(expr), ce); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_TYPE_P(expr) == IS_REFERENCE) { - expr = Z_REFVAL_P(expr); - goto try_instanceof; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(expr) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - result = 0; - } - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CV != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CV & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CV == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_UNUSED != IS_UNUSED) { - - zval *key = NULL; - - /* Consts, temporary variables and references need copying */ - if (IS_UNUSED == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_UNUSED == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_UNUSED & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_UNUSED == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_STATIC_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - HashTable *ht; - zval *value; - zval *variable_ptr; - - variable_ptr = EX_VAR(opline->op1.var); - i_zval_ptr_dtor(variable_ptr); - - ht = ZEND_MAP_PTR_GET(EX(func)->op_array.static_variables_ptr); - if (!ht) { - ZEND_ASSERT(EX(func)->op_array.fn_flags & (ZEND_ACC_IMMUTABLE|ZEND_ACC_PRELOADED)); - ht = zend_array_dup(EX(func)->op_array.static_variables); - ZEND_MAP_PTR_SET(EX(func)->op_array.static_variables_ptr, ht); - } else if (GC_REFCOUNT(ht) > 1) { - if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) { - GC_DELREF(ht); - } - ht = zend_array_dup(ht); - ZEND_MAP_PTR_SET(EX(func)->op_array.static_variables_ptr, ht); - } - - value = (zval*)((char*)ht->arData + (opline->extended_value & ~(ZEND_BIND_REF|ZEND_BIND_IMPLICIT))); - - if (opline->extended_value & ZEND_BIND_REF) { - if (Z_TYPE_P(value) == IS_CONSTANT_AST) { - SAVE_OPLINE(); - if (UNEXPECTED(zval_update_constant_ex(value, EX(func)->op_array.scope) != SUCCESS)) { - ZVAL_NULL(variable_ptr); - HANDLE_EXCEPTION(); - } - } - if (UNEXPECTED(!Z_ISREF_P(value))) { - zend_reference *ref = (zend_reference*)emalloc(sizeof(zend_reference)); - GC_SET_REFCOUNT(ref, 2); - GC_TYPE_INFO(ref) = IS_REFERENCE; - ZVAL_COPY_VALUE(&ref->val, value); - ref->sources.ptr = NULL; - Z_REF_P(value) = ref; - Z_TYPE_INFO_P(value) = IS_REFERENCE_EX; - ZVAL_REF(variable_ptr, ref); - } else { - Z_ADDREF_P(value); - ZVAL_REF(variable_ptr, Z_REF_P(value)); - } - } else { - ZVAL_COPY(variable_ptr, value); - } - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CHECK_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1 = EX_VAR(opline->op1.var); - - if (UNEXPECTED(Z_TYPE_INFO_P(op1) == IS_UNDEF)) { - SAVE_OPLINE(); - ZVAL_UNDEFINED_OP1(); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_MAKE_REF_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *op1 = EX_VAR(opline->op1.var); - - if (IS_CV == IS_CV) { - if (UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_NEW_EMPTY_REF(op1); - Z_SET_REFCOUNT_P(op1, 2); - ZVAL_NULL(Z_REFVAL_P(op1)); - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } else { - if (Z_ISREF_P(op1)) { - Z_ADDREF_P(op1); - } else { - ZVAL_MAKE_REF_EX(op1, 2); - } - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_INDIRECT)) { - op1 = Z_INDIRECT_P(op1); - if (EXPECTED(!Z_ISREF_P(op1))) { - ZVAL_MAKE_REF_EX(op1, 2); - } else { - GC_ADDREF(Z_REF_P(op1)); - } - ZVAL_REF(EX_VAR(opline->result.var), Z_REF_P(op1)); - } else { - ZVAL_COPY_VALUE(EX_VAR(opline->result.var), op1); - } - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_COUNT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - zend_long count; - - SAVE_OPLINE(); - op1 = EX_VAR(opline->op1.var); - while (1) { - if (Z_TYPE_P(op1) == IS_ARRAY) { - count = zend_array_count(Z_ARRVAL_P(op1)); - break; - } else if (Z_TYPE_P(op1) == IS_OBJECT) { - /* first, we check if the handler is defined */ - if (Z_OBJ_HT_P(op1)->count_elements) { - if (SUCCESS == Z_OBJ_HT_P(op1)->count_elements(op1, &count)) { - break; - } - if (UNEXPECTED(EG(exception))) { - count = 0; - break; - } - } - - /* if not and the object implements Countable we call its count() method */ - if (instanceof_function(Z_OBJCE_P(op1), zend_ce_countable)) { - zval retval; - - zend_call_method_with_0_params(op1, NULL, NULL, "count", &retval); - count = zval_get_long(&retval); - zval_ptr_dtor(&retval); - break; - } - - /* If There's no handler and it doesn't implement Countable then add a warning */ - count = 1; - } else if ((IS_CV & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else if (Z_TYPE_P(op1) <= IS_NULL) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - count = 0; - } else { - count = 1; - } - zend_error(E_WARNING, "%s(): Parameter must be an array or an object that implements Countable", opline->extended_value ? "sizeof" : "count"); - break; - } - - ZVAL_LONG(EX_VAR(opline->result.var), count); - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_CLASS_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - if (IS_CV == IS_UNUSED) { - if (UNEXPECTED(!EX(func)->common.scope)) { - SAVE_OPLINE(); - zend_error(E_WARNING, "get_class() called without object from outside a class"); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } else { - ZVAL_STR_COPY(EX_VAR(opline->result.var), EX(func)->common.scope->name); - ZEND_VM_NEXT_OPCODE(); - } - } else { - - zval *op1; - - SAVE_OPLINE(); - op1 = EX_VAR(opline->op1.var); - while (1) { - if (Z_TYPE_P(op1) == IS_OBJECT) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), Z_OBJCE_P(op1)->name); - } else if ((IS_CV & (IS_VAR|IS_CV)) != 0 && Z_TYPE_P(op1) == IS_REFERENCE) { - op1 = Z_REFVAL_P(op1); - continue; - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - zend_error(E_WARNING, "get_class() expects parameter 1 to be object, %s given", zend_get_type_by_const(Z_TYPE_P(op1))); - ZVAL_FALSE(EX_VAR(opline->result.var)); - } - break; - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GET_TYPE_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1; - zend_string *type; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - type = zend_zval_get_type(op1); - if (EXPECTED(type)) { - ZVAL_INTERNED_STR(EX_VAR(opline->result.var), type); - } else { - ZVAL_STRING(EX_VAR(opline->result.var), "unknown type"); - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DIV_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - fast_div_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - pow_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - - if ((IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CV != IS_CONST && IS_CV != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - if (UNEXPECTED(len > ZSTR_MAX_LEN - ZSTR_LEN(op2_str))) { - zend_error_noreturn(E_ERROR, "Integer overflow in memory allocation"); - } - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } else { - SAVE_OPLINE(); - - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - op2 = ZVAL_UNDEFINED_OP2(); - } - concat_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = fast_is_identical_function(op1, op2); - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_bool result; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = fast_is_not_identical_function(op1, op2); - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CV == IS_CONST && IS_CV == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CV == IS_CONST && IS_CV == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_CV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CV == IS_CONST && IS_CV == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) == Z_LVAL_P(op2))) { -is_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_equal_double: - if (d1 == d2) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (result) { - goto is_equal_true; - } else { - goto is_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CV == IS_CONST && IS_CV == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CV == IS_CONST && IS_CV == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - double d1, d2; - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if (1 && IS_CV == IS_CONST && IS_CV == IS_CONST) { - /* pass */ - } else if (EXPECTED(Z_TYPE_P(op1) == IS_LONG)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - if (EXPECTED(Z_LVAL_P(op1) != Z_LVAL_P(op2))) { -is_not_equal_true: - ZEND_VM_SMART_BRANCH_TRUE_JMPNZ(); - ZVAL_TRUE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } else { -is_not_equal_false: - ZEND_VM_SMART_BRANCH_FALSE_JMPNZ(); - ZVAL_FALSE(EX_VAR(opline->result.var)); - ZEND_VM_NEXT_OPCODE(); - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = (double)Z_LVAL_P(op1); - d2 = Z_DVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_DOUBLE)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_DOUBLE)) { - d1 = Z_DVAL_P(op1); - d2 = Z_DVAL_P(op2); -is_not_equal_double: - if (d1 != d2) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } else if (EXPECTED(Z_TYPE_P(op2) == IS_LONG)) { - d1 = Z_DVAL_P(op1); - d2 = (double)Z_LVAL_P(op2); - goto is_not_equal_double; - } - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - int result = zend_fast_equal_strings(Z_STR_P(op1), Z_STR_P(op2)); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op1); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zval_ptr_dtor_str(op2); - } - if (!result) { - goto is_not_equal_true; - } else { - goto is_not_equal_false; - } - } - } - ZEND_VM_TAIL_CALL(zend_is_not_equal_helper_SPEC(op1, op2 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SPACESHIP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - compare_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - - SAVE_OPLINE(); - op1 = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - op2 = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - boolean_xor_function(EX_VAR(opline->result.var), op1, op2); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object; - zval *property; - zval *value; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_op_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -assign_op_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR((opline+1)->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - zval *orig_zptr = zptr; - zend_reference *ref; - - do { - if (UNEXPECTED(Z_ISREF_P(zptr))) { - ref = Z_REF_P(zptr); - zptr = Z_REFVAL_P(zptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr); - } - if (UNEXPECTED(prop_info)) { - /* special case for typed properties */ - zend_binary_assign_op_typed_prop(prop_info, zptr, value OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_binary_op(zptr, zptr, value OPLINE_CC); - } - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), zptr); - } - } - } else { - zend_assign_op_overloaded_property(object, property, cache_slot, value OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - FREE_OP(free_op_data); - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMP|VAR|CV, UNUSED|CONST|TMPVAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data1; - zval *var_ptr; - zval *value, *container, *dim; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -assign_dim_op_array: - SEPARATE_ARRAY(container); -assign_dim_op_new_array: - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_UNUSED) { - var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval)); - if (UNEXPECTED(!var_ptr)) { - zend_cannot_add_element(); - goto assign_dim_op_ret_null; - } - } else { - if (IS_CV == IS_CONST) { - var_ptr = zend_fetch_dimension_address_inner_RW_CONST(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } else { - var_ptr = zend_fetch_dimension_address_inner_RW(Z_ARRVAL_P(container), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(!var_ptr)) { - goto assign_dim_op_ret_null; - } - } - - value = get_op_data_zval_ptr_r((opline+1)->op1_type, (opline+1)->op1, &free_op_data1); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_ISREF_P(var_ptr))) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - FREE_OP(free_op_data1); - } else { - if (EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto assign_dim_op_array; - } - } - - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); - } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - ZVAL_ARR(container, zend_new_array(8)); - goto assign_dim_op_new_array; - } else { - zend_binary_assign_op_dim_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); -assign_dim_op_ret_null: - FREE_UNFETCHED_OP((opline+1)->op1_type, (opline+1)->op1.var); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *var_ptr; - zval *value; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - var_ptr = _get_zval_ptr_cv_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(var_ptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - do { - if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_REFERENCE)) { - zend_reference *ref = Z_REF_P(var_ptr); - var_ptr = Z_REFVAL_P(var_ptr); - if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(ref))) { - zend_binary_assign_op_typed_ref(ref, value OPLINE_CC EXECUTE_DATA_CC); - break; - } - } - zend_binary_op(var_ptr, var_ptr, value OPLINE_CC); - } while (0); - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), var_ptr); - } - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto pre_incdec_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -pre_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info *) CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - zend_pre_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_pre_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object; - zval *property; - zval *zptr; - void **cache_slot; - zend_property_info *prop_info; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto post_incdec_object; - } - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - break; - } - } - -post_incdec_object: - /* here we are sure we are dealing with an object */ - cache_slot = (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL; - if (EXPECTED((zptr = Z_OBJ_HT_P(object)->get_property_ptr_ptr(object, property, BP_VAR_RW, cache_slot)) != NULL)) { - if (UNEXPECTED(Z_ISERROR_P(zptr))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } else { - if (IS_CV == IS_CONST) { - prop_info = (zend_property_info*)CACHED_PTR_EX(cache_slot + 2); - } else { - prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), zptr); - } - - zend_post_incdec_property_zval(zptr, prop_info OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_post_incdec_overloaded_property(object, property, cache_slot OPLINE_CC EXECUTE_DATA_CC); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container, *dim, *value; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - dim = EX_VAR(opline->op2.var); - if (IS_CV != IS_CONST) { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { -fetch_dim_r_array: - value = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, IS_CV, BP_VAR_R EXECUTE_DATA_CC); - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), value); - } else if (EXPECTED(Z_TYPE_P(container) == IS_REFERENCE)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto fetch_dim_r_array; - } else { - goto fetch_dim_r_slow; - } - } else { -fetch_dim_r_slow: - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_fetch_dimension_address_read_R_slow(container, dim OPLINE_CC EXECUTE_DATA_CC); - } - } else { - zend_fetch_dimension_address_read_R(container, dim, IS_CV OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_W(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_RW(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_read_IS(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - if (IS_CV == IS_UNUSED) { - ZEND_VM_TAIL_CALL(zend_use_undef_in_read_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - zend_fetch_dimension_address_UNSET(container, EX_VAR(opline->op2.var), IS_CV OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - zval *result = EX_VAR(opline->result.var); - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = EX_VAR(opline->op2.var); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - zend_wrong_property_read(offset); - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_r_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_REF /* FUNC_ARG fetch may contain it */); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_INFO_P(retval) != IS_UNDEF)) { - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { -fetch_obj_r_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_r_copy; - } else { - goto fetch_obj_r_fast_copy; - } - } - } - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(offset) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_R, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_r_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_r_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address( - result, container, IS_CV, property, IS_CV, - ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) : NULL), - BP_VAR_W, opline->extended_value & ZEND_FETCH_OBJ_FLAGS, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *property, *container, *result; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_RW, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - - zval *offset; - void **cache_slot = NULL; - - SAVE_OPLINE(); - container = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - break; - } - } - ZVAL_NULL(EX_VAR(opline->result.var)); - goto fetch_obj_is_finish; - } while (0); - } - - /* here we are sure we are dealing with an object */ - do { - zend_object *zobj = Z_OBJ_P(container); - zval *retval; - - if (IS_CV == IS_CONST) { - cache_slot = CACHE_ADDR(opline->extended_value); - - if (EXPECTED(zobj->ce == CACHED_PTR_EX(cache_slot))) { - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - retval = OBJ_PROP(zobj, prop_offset); - if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) { - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { -fetch_obj_is_fast_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - ZEND_VM_NEXT_OPCODE(); - } - } - } else if (EXPECTED(zobj->properties != NULL)) { - if (!IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(prop_offset)) { - uintptr_t idx = ZEND_DECODE_DYN_PROP_OFFSET(prop_offset); - - if (EXPECTED(idx < zobj->properties->nNumUsed * sizeof(Bucket))) { - Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx); - - if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) && - (EXPECTED(p->key == Z_STR_P(offset)) || - (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) && - EXPECTED(p->key != NULL) && - EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) { - retval = &p->val; - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_DYNAMIC_PROPERTY_OFFSET); - } - retval = zend_hash_find_ex(zobj->properties, Z_STR_P(offset), 1); - if (EXPECTED(retval)) { - uintptr_t idx = (char*)retval - (char*)zobj->properties->arData; - CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - if (0 || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) { - goto fetch_obj_is_copy; - } else { - goto fetch_obj_is_fast_copy; - } - } - } - } - } - - retval = zobj->handlers->read_property(container, offset, BP_VAR_IS, cache_slot, EX_VAR(opline->result.var)); - - if (retval != EX_VAR(opline->result.var)) { -fetch_obj_is_copy: - ZVAL_COPY_DEREF(EX_VAR(opline->result.var), retval); - } else if (UNEXPECTED(Z_ISREF_P(retval))) { - zend_unwrap_reference(retval); - } - } while (0); - -fetch_obj_is_finish: - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ -#if 0 - USE_OPLINE -#endif - - if (UNEXPECTED(ZEND_CALL_INFO(EX(call)) & ZEND_CALL_SEND_ARG_BY_REF)) { - /* Behave like FETCH_OBJ_W */ - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZEND_VM_TAIL_CALL(zend_use_tmp_in_write_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZEND_VM_TAIL_CALL(ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op1; - zval *container, *property, *result; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - result = EX_VAR(opline->result.var); - zend_fetch_property_address(result, container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL), BP_VAR_UNSET, 0, 1 OPLINE_CC EXECUTE_DATA_CC); - - if (IS_CV == IS_VAR) { - FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result); - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CONST, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CONST != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CONST == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CONST == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_TMP_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_VAR, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_VAR != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_VAR == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_VAR == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - zval_ptr_dtor_nogc(free_op_data); -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object, *property, *value, tmp; - - SAVE_OPLINE(); - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if (Z_ISREF_P(object) && Z_TYPE_P(Z_REFVAL_P(object)) == IS_OBJECT) { - object = Z_REFVAL_P(object); - goto assign_object; - } - object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); - if (UNEXPECTED(!object)) { - value = &EG(uninitialized_zval); - goto free_and_exit_assign_obj; - } - } - -assign_object: - if (IS_CV == IS_CONST && - EXPECTED(Z_OBJCE_P(object) == CACHED_PTR(opline->extended_value))) { - void **cache_slot = CACHE_ADDR(opline->extended_value); - uintptr_t prop_offset = (uintptr_t)CACHED_PTR_EX(cache_slot + 1); - zend_object *zobj = Z_OBJ_P(object); - zval *property_val; - - if (EXPECTED(IS_VALID_PROPERTY_OFFSET(prop_offset))) { - property_val = OBJ_PROP(zobj, prop_offset); - if (Z_TYPE_P(property_val) != IS_UNDEF) { - zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2); - - if (UNEXPECTED(prop_info != NULL)) { - value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC); - goto free_and_exit_assign_obj; - } else { -fast_assign_obj: - value = zend_assign_to_variable(property_val, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } else { - if (EXPECTED(zobj->properties != NULL)) { - if (UNEXPECTED(GC_REFCOUNT(zobj->properties) > 1)) { - if (EXPECTED(!(GC_FLAGS(zobj->properties) & IS_ARRAY_IMMUTABLE))) { - GC_DELREF(zobj->properties); - } - zobj->properties = zend_array_dup(zobj->properties); - } - property_val = zend_hash_find_ex(zobj->properties, Z_STR_P(property), 1); - if (property_val) { - goto fast_assign_obj; - } - } - - if (!zobj->ce->__set) { - - if (EXPECTED(zobj->properties == NULL)) { - rebuild_object_properties(zobj); - } - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } else if (IS_CV != IS_TMP_VAR) { - if (Z_ISREF_P(value)) { - if (IS_CV == IS_VAR) { - zend_reference *ref = Z_REF_P(value); - if (GC_DELREF(ref) == 0) { - ZVAL_COPY_VALUE(&tmp, Z_REFVAL_P(value)); - efree_size(ref, sizeof(zend_reference)); - value = &tmp; - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else { - value = Z_REFVAL_P(value); - Z_TRY_ADDREF_P(value); - } - } else if (IS_CV == IS_CV) { - Z_TRY_ADDREF_P(value); - } - } - zend_hash_add_new(zobj->properties, Z_STR_P(property), value); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - goto exit_assign_obj; - } - } - } - - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - - value = Z_OBJ_HT_P(object)->write_property(object, property, value, (IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL); - -free_and_exit_assign_obj: - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - -exit_assign_obj: - - - /* assign_obj has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = RT_CONSTANT((opline+1), (opline+1)->op1); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_CONST == IS_CV || IS_CONST == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CONST == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CONST == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CONST, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = RT_CONSTANT((opline+1), (opline+1)->op1); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_TMP_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_TMP_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_TMP_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_tmp((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_VAR == IS_CV || IS_VAR == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_VAR == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_VAR == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - zval_ptr_dtor_nogc(free_op_data); - } - } else if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_VAR, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - zval_ptr_dtor_nogc(free_op_data); - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_var_deref((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(free_op_data); - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *object_ptr, *orig_object_ptr; - zend_free_op free_op_data; - zval *value; - zval *variable_ptr; - zval *dim; - - SAVE_OPLINE(); - orig_object_ptr = object_ptr = EX_VAR(opline->op1.var); - - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { -try_assign_dim_array: - value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - SEPARATE_ARRAY(object_ptr); - if (IS_CV == IS_UNUSED) { - if (IS_CV == IS_CV || IS_CV == IS_VAR) { - ZVAL_DEREF(value); - } - variable_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(object_ptr), value); - if (UNEXPECTED(variable_ptr == NULL)) { - zend_cannot_add_element(); - goto assign_dim_error; - } else if (IS_CV == IS_CV) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - } else if (IS_CV == IS_VAR) { - if (value != free_op_data) { - if (Z_REFCOUNTED_P(value)) { - Z_ADDREF_P(value); - } - - } - } else if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(value))) { - Z_ADDREF_P(value); - } - } - } else { - dim = EX_VAR(opline->op2.var); - if (IS_CV == IS_CONST) { - variable_ptr = zend_fetch_dimension_address_inner_W_CONST(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } else { - variable_ptr = zend_fetch_dimension_address_inner_W(Z_ARRVAL_P(object_ptr), dim EXECUTE_DATA_CC); - } - if (UNEXPECTED(variable_ptr == NULL)) { - goto assign_dim_error; - } - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - } - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - } else { - if (EXPECTED(Z_ISREF_P(object_ptr))) { - object_ptr = Z_REFVAL_P(object_ptr); - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_ARRAY)) { - goto try_assign_dim_array; - } - } - if (EXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) { - dim++; - } - zend_assign_to_object_dim(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } else if (EXPECTED(Z_TYPE_P(object_ptr) == IS_STRING)) { - if (IS_CV == IS_UNUSED) { - zend_use_new_element_for_string(); - - UNDEF_RESULT(); - } else { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - value = _get_zval_ptr_cv_deref_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC); - zend_assign_to_string_offset(object_ptr, dim, value OPLINE_CC EXECUTE_DATA_CC); - - } - } else if (EXPECTED(Z_TYPE_P(object_ptr) <= IS_FALSE)) { - if (Z_ISREF_P(orig_object_ptr) - && ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(orig_object_ptr)) - && !zend_verify_ref_array_assignable(Z_REF_P(orig_object_ptr))) { - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - UNDEF_RESULT(); - } else { - ZVAL_ARR(object_ptr, zend_new_array(8)); - goto try_assign_dim_array; - } - } else { - if (IS_CV != IS_VAR || EXPECTED(!Z_ISERROR_P(object_ptr))) { - zend_use_scalar_as_array(); - } - dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); -assign_dim_error: - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } - } - if (IS_CV != IS_UNUSED) { - - } - - /* assign_dim has two opcodes! */ - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(0)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(0)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *value; - zval *variable_ptr; - - SAVE_OPLINE(); - value = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - - if (UNEXPECTED(1)) { - ZVAL_NULL(EX_VAR(opline->result.var)); - } - } else { - value = zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES()); - if (UNEXPECTED(1)) { - ZVAL_COPY(EX_VAR(opline->result.var), value); - } - - /* zend_assign_to_variable() always takes care of op2, never free it! */ - } - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *variable_ptr; - zval *value_ptr; - - SAVE_OPLINE(); - value_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op2.var EXECUTE_DATA_CC); - variable_ptr = EX_VAR(opline->op1.var); - - if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(variable_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_CV == IS_VAR && - UNEXPECTED(Z_TYPE_P(EX_VAR(opline->op1.var)) != IS_INDIRECT)) { - - zend_throw_error(NULL, "Cannot assign by reference to an array dimension of an object"); - variable_ptr = &EG(uninitialized_zval); - } else if (IS_CV == IS_VAR && UNEXPECTED(Z_ISERROR_P(value_ptr))) { - variable_ptr = &EG(uninitialized_zval); - } else if (IS_CV == IS_VAR && - opline->extended_value == ZEND_RETURNS_FUNCTION && - UNEXPECTED(!Z_ISREF_P(value_ptr))) { - - variable_ptr = zend_wrong_assign_to_variable_reference( - variable_ptr, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_variable_reference(variable_ptr, value_ptr); - } - - if (UNEXPECTED(RETURN_VALUE_USED(opline))) { - ZVAL_COPY(EX_VAR(opline->result.var), variable_ptr); - } - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zend_free_op free_op_data; - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_ptr_var((opline+1)->op1.var, &free_op_data EXECUTE_DATA_CC); - - if (1) { - if (IS_CV == IS_UNUSED) { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_CV, property, IS_CV, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - if (UNEXPECTED(free_op_data)) {zval_ptr_dtor_nogc(free_op_data);}; - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *property, *container, *value_ptr; - - SAVE_OPLINE(); - - container = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - value_ptr = _get_zval_ptr_cv_BP_VAR_W((opline+1)->op1.var EXECUTE_DATA_CC); - - if (1) { - if (IS_CV == IS_UNUSED) { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_this_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_this_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } else { - if (IS_CV == IS_CONST) { - zend_assign_to_property_reference_var_const(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } else { - zend_assign_to_property_reference_var_var(container, property, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - } - } else { - zend_assign_to_property_reference(container, IS_CV, property, IS_CV, value_ptr OPLINE_CC EXECUTE_DATA_CC); - } - - - - ZEND_VM_NEXT_OPCODE_EX(1, 2); -} - -/* No specialization for op_types (CONST|TMPVAR|CV, UNUSED|CONST|VAR) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FAST_CONCAT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *op1, *op2; - zend_string *op1_str, *op2_str, *str; - - - op1 = EX_VAR(opline->op1.var); - op2 = EX_VAR(opline->op2.var); - if ((IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op1) == IS_STRING)) && - (IS_CV == IS_CONST || EXPECTED(Z_TYPE_P(op2) == IS_STRING))) { - zend_string *op1_str = Z_STR_P(op1); - zend_string *op2_str = Z_STR_P(op2); - zend_string *str; - - if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op2_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - } else if (IS_CV != IS_CONST && UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST || IS_CV == IS_CV) { - ZVAL_STR_COPY(EX_VAR(opline->result.var), op1_str); - } else { - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else if (IS_CV != IS_CONST && IS_CV != IS_CV && - !ZSTR_IS_INTERNED(op1_str) && GC_REFCOUNT(op1_str) == 1) { - size_t len = ZSTR_LEN(op1_str); - - str = zend_string_extend(op1_str, len + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str) + len, ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } else { - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV & (IS_TMP_VAR|IS_VAR)) { - zend_string_release_ex(op2_str, 0); - } - } - ZEND_VM_NEXT_OPCODE(); - } - - SAVE_OPLINE(); - if (IS_CV == IS_CONST) { - op1_str = Z_STR_P(op1); - } else if (EXPECTED(Z_TYPE_P(op1) == IS_STRING)) { - op1_str = zend_string_copy(Z_STR_P(op1)); - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - op1_str = zval_get_string_func(op1); - } - if (IS_CV == IS_CONST) { - op2_str = Z_STR_P(op2); - } else if (EXPECTED(Z_TYPE_P(op2) == IS_STRING)) { - op2_str = zend_string_copy(Z_STR_P(op2)); - } else { - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - } - op2_str = zval_get_string_func(op2); - } - do { - if (IS_CV != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op1_str) == 0)) { - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op2))) { - GC_ADDREF(op2_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op2_str); - zend_string_release_ex(op1_str, 0); - break; - } - } - if (IS_CV != IS_CONST) { - if (UNEXPECTED(ZSTR_LEN(op2_str) == 0)) { - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_REFCOUNTED_P(op1))) { - GC_ADDREF(op1_str); - } - } - ZVAL_STR(EX_VAR(opline->result.var), op1_str); - zend_string_release_ex(op2_str, 0); - break; - } - } - str = zend_string_alloc(ZSTR_LEN(op1_str) + ZSTR_LEN(op2_str), 0); - memcpy(ZSTR_VAL(str), ZSTR_VAL(op1_str), ZSTR_LEN(op1_str)); - memcpy(ZSTR_VAL(str) + ZSTR_LEN(op1_str), ZSTR_VAL(op2_str), ZSTR_LEN(op2_str)+1); - ZVAL_NEW_STR(EX_VAR(opline->result.var), str); - if (IS_CV != IS_CONST) { - zend_string_release_ex(op1_str, 0); - } - if (IS_CV != IS_CONST) { - zend_string_release_ex(op2_str, 0); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - zval *function_name; - zend_free_op free_op1; - zval *object; - zend_function *fbc; - zend_class_entry *called_scope; - zend_object *obj; - zend_execute_data *call; - uint32_t call_info; - - SAVE_OPLINE(); - - object = EX_VAR(opline->op1.var); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - if (IS_CV != IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - if (IS_CV != IS_CONST && - UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) { - do { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(function_name)) { - function_name = Z_REFVAL_P(function_name); - if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) { - break; - } - } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP2(); - if (UNEXPECTED(EG(exception) != NULL)) { - - HANDLE_EXCEPTION(); - } - } - zend_throw_error(NULL, "Method name must be a string"); - - - HANDLE_EXCEPTION(); - } while (0); - } - - if (IS_CV != IS_UNUSED) { - do { - if (IS_CV == IS_CONST || UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) { - if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(object))) { - object = Z_REFVAL_P(object); - if (EXPECTED(Z_TYPE_P(object) == IS_OBJECT)) { - break; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); - if (UNEXPECTED(EG(exception) != NULL)) { - if (IS_CV != IS_CONST) { - - } - HANDLE_EXCEPTION(); - } - } - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - zend_invalid_method_call(object, function_name); - - - HANDLE_EXCEPTION(); - } - } while (0); - } - - obj = Z_OBJ_P(object); - called_scope = obj->ce; - - if (IS_CV == IS_CONST && - EXPECTED(CACHED_PTR(opline->result.num) == called_scope)) { - fbc = CACHED_PTR(opline->result.num + sizeof(void*)); - } else { - zend_object *orig_obj = obj; - - if (IS_CV == IS_CONST) { - function_name = EX_VAR(opline->op2.var); - } - - /* First, locate the function. */ - fbc = obj->handlers->get_method(&obj, Z_STR_P(function_name), ((IS_CV == IS_CONST) ? (RT_CONSTANT(opline, opline->op2) + 1) : NULL)); - if (UNEXPECTED(fbc == NULL)) { - if (EXPECTED(!EG(exception))) { - zend_undefined_method(obj->ce, Z_STR_P(function_name)); - } - - - HANDLE_EXCEPTION(); - } - if (IS_CV == IS_CONST && - EXPECTED(fbc->type <= ZEND_USER_FUNCTION) && - EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) && - EXPECTED(obj == orig_obj)) { - CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); - } - if ((IS_CV & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(obj != orig_obj)) { - /* Reset "object" to trigger reference counting */ - object = NULL; - } - if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { - init_func_run_time_cache(&fbc->op_array); - } - } - - if (IS_CV != IS_CONST) { - - } - - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS; - if (UNEXPECTED((fbc->common.fn_flags & ZEND_ACC_STATIC) != 0)) { - - if ((IS_CV & (IS_VAR|IS_TMP_VAR)) && UNEXPECTED(EG(exception))) { - HANDLE_EXCEPTION(); - } - /* call static method */ - obj = (zend_object*)called_scope; - call_info = ZEND_CALL_NESTED_FUNCTION; - } else if (IS_CV & (IS_VAR|IS_TMP_VAR|IS_CV)) { - if (IS_CV == IS_CV) { - GC_ADDREF(obj); /* For $this pointer */ - } else if (free_op1 != object) { - GC_ADDREF(obj); /* For $this pointer */ - - } - /* CV may be changed indirectly (e.g. when it's a reference) */ - call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS; - } - - call = zend_vm_stack_push_call_frame(call_info, - fbc, opline->extended_value, obj); - call->prev_execute_data = EX(call); - EX(call) = call; - - ZEND_VM_NEXT_OPCODE(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *expr_ptr, new_expr; - - SAVE_OPLINE(); - if ((IS_CV == IS_VAR || IS_CV == IS_CV) && - UNEXPECTED(opline->extended_value & ZEND_ARRAY_ELEMENT_REF)) { - expr_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - if (Z_ISREF_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } else { - ZVAL_MAKE_REF_EX(expr_ptr, 2); - } - - } else { - expr_ptr = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - if (IS_CV == IS_TMP_VAR) { - /* pass */ - } else if (IS_CV == IS_CONST) { - Z_TRY_ADDREF_P(expr_ptr); - } else if (IS_CV == IS_CV) { - ZVAL_DEREF(expr_ptr); - Z_TRY_ADDREF_P(expr_ptr); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(expr_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(expr_ptr); - - expr_ptr = Z_REFVAL_P(expr_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - ZVAL_COPY_VALUE(&new_expr, expr_ptr); - expr_ptr = &new_expr; - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(expr_ptr)) { - Z_ADDREF_P(expr_ptr); - } - } - } - } - - if (IS_CV != IS_UNUSED) { - - zval *offset = EX_VAR(opline->op2.var); - zend_string *str; - zend_ulong hval; - -add_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index; - } - } -str_index: - zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index: - zend_hash_index_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), hval, expr_ptr); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto add_again; - } else if (Z_TYPE_P(offset) == IS_NULL) { - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - zend_use_resource_as_offset(offset); - hval = Z_RES_HANDLE_P(offset); - goto num_index; - } else if (IS_CV == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - str = ZSTR_EMPTY_ALLOC(); - goto str_index; - } else { - zend_illegal_offset(); - zval_ptr_dtor_nogc(expr_ptr); - } - - } else { - if (!zend_hash_next_index_insert(Z_ARRVAL_P(EX_VAR(opline->result.var)), expr_ptr)) { - zend_cannot_add_element(); - zval_ptr_dtor_nogc(expr_ptr); - } - } - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_ARRAY_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - zval *array; - uint32_t size; - USE_OPLINE - - array = EX_VAR(opline->result.var); - if (IS_CV != IS_UNUSED) { - size = opline->extended_value >> ZEND_ARRAY_SIZE_SHIFT; - ZVAL_ARR(array, zend_new_array(size)); - /* Explicitly initialize array as not-packed if flag is set */ - if (opline->extended_value & ZEND_ARRAY_NOT_PACKED) { - zend_hash_real_init_mixed(Z_ARRVAL_P(array)); - } - ZEND_VM_TAIL_CALL(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } else { - ZVAL_ARR(array, zend_new_array(0)); - ZEND_VM_NEXT_OPCODE(); - } -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zval *offset; - zend_ulong hval; - zend_string *key; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - offset = EX_VAR(opline->op2.var); - - do { - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - -unset_dim_array: - SEPARATE_ARRAY(container); - ht = Z_ARRVAL_P(container); -offset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - key = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(key, hval)) { - goto num_index_dim; - } - } -str_index_dim: - if (ht == &EG(symbol_table)) { - zend_delete_global_variable(key); - } else { - zend_hash_del(ht, key); - } - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_dim: - zend_hash_index_del(ht, hval); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_TYPE_P(offset) == IS_REFERENCE)) { - offset = Z_REFVAL_P(offset); - goto offset_again; - } else if (Z_TYPE_P(offset) == IS_DOUBLE) { - hval = zend_dval_to_lval(Z_DVAL_P(offset)); - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_NULL) { - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else if (Z_TYPE_P(offset) == IS_FALSE) { - hval = 0; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_TRUE) { - hval = 1; - goto num_index_dim; - } else if (Z_TYPE_P(offset) == IS_RESOURCE) { - hval = Z_RES_HANDLE_P(offset); - goto num_index_dim; - } else if (IS_CV == IS_CV && Z_TYPE_P(offset) == IS_UNDEF) { - ZVAL_UNDEFINED_OP2(); - key = ZSTR_EMPTY_ALLOC(); - goto str_index_dim; - } else { - zend_error(E_WARNING, "Illegal offset type in unset"); - } - break; - } else if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto unset_dim_array; - } - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); - } - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(offset) == IS_UNDEF)) { - offset = ZVAL_UNDEFINED_OP2(); - } - if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) { - if (IS_CV == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - Z_OBJ_HT_P(container)->unset_dimension(container, offset); - } else if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_STRING)) { - zend_throw_error(NULL, "Cannot unset string offsets"); - } - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - zval *offset; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - do { - if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - if (Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (Z_TYPE_P(container) != IS_OBJECT) { - if (IS_CV == IS_CV - && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZVAL_UNDEFINED_OP1(); - } - break; - } - } else { - break; - } - } - Z_OBJ_HT_P(container)->unset_property(container, offset, ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value) : NULL)); - } while (0); - - - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zend_ulong hval; - zval *offset; - - SAVE_OPLINE(); - container = EX_VAR(opline->op1.var); - offset = EX_VAR(opline->op2.var); - - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - HashTable *ht; - zval *value; - zend_string *str; - -isset_dim_obj_array: - ht = Z_ARRVAL_P(container); -isset_again: - if (EXPECTED(Z_TYPE_P(offset) == IS_STRING)) { - str = Z_STR_P(offset); - if (IS_CV != IS_CONST) { - if (ZEND_HANDLE_NUMERIC(str, hval)) { - goto num_index_prop; - } - } - value = zend_hash_find_ex_ind(ht, str, IS_CV == IS_CONST); - } else if (EXPECTED(Z_TYPE_P(offset) == IS_LONG)) { - hval = Z_LVAL_P(offset); -num_index_prop: - value = zend_hash_index_find(ht, hval); - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(offset))) { - offset = Z_REFVAL_P(offset); - goto isset_again; - } else { - value = zend_find_array_dim_slow(ht, offset EXECUTE_DATA_CC); - if (UNEXPECTED(EG(exception))) { - result = 0; - goto isset_dim_obj_exit; - } - } - - if (!(opline->extended_value & ZEND_ISEMPTY)) { - /* > IS_NULL means not IS_UNDEF and not IS_NULL */ - result = value != NULL && Z_TYPE_P(value) > IS_NULL && - (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL); - - if (IS_CV & (IS_CONST|IS_CV)) { - /* avoid exception check */ - - ZEND_VM_SMART_BRANCH(result, 0); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE(); - } - } else { - result = (value == NULL || !i_zend_is_true(value)); - } - goto isset_dim_obj_exit; - } else if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(container))) { - container = Z_REFVAL_P(container); - if (EXPECTED(Z_TYPE_P(container) == IS_ARRAY)) { - goto isset_dim_obj_array; - } - } - - if (IS_CV == IS_CONST && Z_EXTRA_P(offset) == ZEND_EXTRA_VALUE) { - offset++; - } - if (!(opline->extended_value & ZEND_ISEMPTY)) { - result = zend_isset_dim_slow(container, offset EXECUTE_DATA_CC); - } else { - result = zend_isempty_dim_slow(container, offset EXECUTE_DATA_CC); - } - -isset_dim_obj_exit: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zval *container; - int result; - zval *offset; - - SAVE_OPLINE(); - container = _get_zval_ptr_cv_BP_VAR_IS(opline->op1.var EXECUTE_DATA_CC); - - if (IS_CV == IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - offset = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - if (IS_CV == IS_CONST || - (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT))) { - if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(container)) { - container = Z_REFVAL_P(container); - if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } else { - result = (opline->extended_value & ZEND_ISEMPTY); - goto isset_object_finish; - } - } - - result = - (opline->extended_value & ZEND_ISEMPTY) ^ - Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY), ((IS_CV == IS_CONST) ? CACHE_ADDR(opline->extended_value & ~ZEND_ISEMPTY) : NULL)); - -isset_object_finish: - - - ZEND_VM_SMART_BRANCH(result, 1); - ZVAL_BOOL(EX_VAR(opline->result.var), result); - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - - zval *key, *subject; - HashTable *ht; - uint32_t result; - - SAVE_OPLINE(); - - key = EX_VAR(opline->op1.var); - subject = EX_VAR(opline->op2.var); - - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { -array_key_exists_array: - ht = Z_ARRVAL_P(subject); - result = zend_array_key_exists_fast(ht, key OPLINE_CC EXECUTE_DATA_CC); - } else { - if ((IS_CV & (IS_VAR|IS_CV)) && EXPECTED(Z_ISREF_P(subject))) { - subject = Z_REFVAL_P(subject); - if (EXPECTED(Z_TYPE_P(subject) == IS_ARRAY)) { - goto array_key_exists_array; - } - } - result = zend_array_key_exists_slow(subject, key OPLINE_CC EXECUTE_DATA_CC); - } - - - ZEND_VM_SMART_BRANCH(result == IS_TRUE, 1); - Z_TYPE_INFO_P(EX_VAR(opline->result.var)) = result; - ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION(); -} - -/* No specialization for op_types (CONST|TMPVAR|UNUSED|CV, ANY) */ -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); - - SAVE_OPLINE(); - if (UNEXPECTED(generator->flags & ZEND_GENERATOR_FORCED_CLOSE)) { - ZEND_VM_TAIL_CALL(zend_yield_in_closed_generator_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)); - } - - /* Destroy the previously yielded value */ - zval_ptr_dtor(&generator->value); - - /* Destroy the previously yielded key */ - zval_ptr_dtor(&generator->key); - - /* Set the new yielded value */ - if (IS_CV != IS_UNUSED) { - - - if (UNEXPECTED(EX(func)->op_array.fn_flags & ZEND_ACC_RETURN_REFERENCE)) { - /* Constants and temporary variables aren't yieldable by reference, - * but we still allow them with a notice. */ - if (IS_CV & (IS_CONST|IS_TMP_VAR)) { - zval *value; - - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - - value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } - } else { - zval *value_ptr = _get_zval_ptr_cv_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC); - - /* If a function call result is yielded and the function did - * not return by reference we throw a notice. */ - do { - if (IS_CV == IS_VAR) { - ZEND_ASSERT(value_ptr != &EG(uninitialized_zval)); - if (opline->extended_value == ZEND_RETURNS_FUNCTION - && !Z_ISREF_P(value_ptr)) { - zend_error(E_NOTICE, "Only variable references should be yielded by reference"); - ZVAL_COPY(&generator->value, value_ptr); - break; - } - } - if (Z_ISREF_P(value_ptr)) { - Z_ADDREF_P(value_ptr); - } else { - ZVAL_MAKE_REF_EX(value_ptr, 2); - } - ZVAL_REF(&generator->value, Z_REF_P(value_ptr)); - } while (0); - - } - } else { - zval *value = _get_zval_ptr_cv_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->value, value); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->value))) { - Z_ADDREF(generator->value); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->value, value); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(value)) { - ZVAL_COPY(&generator->value, Z_REFVAL_P(value)); - - } else { - ZVAL_COPY_VALUE(&generator->value, value); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value); - } - } - } - } else { - /* If no value was specified yield null */ - ZVAL_NULL(&generator->value); - } - - /* Set the new yielded key */ - if (IS_CV != IS_UNUSED) { - - zval *key = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); - - /* Consts, temporary variables and references need copying */ - if (IS_CV == IS_CONST) { - ZVAL_COPY_VALUE(&generator->key, key); - if (UNEXPECTED(Z_OPT_REFCOUNTED(generator->key))) { - Z_ADDREF(generator->key); - } - } else if (IS_CV == IS_TMP_VAR) { - ZVAL_COPY_VALUE(&generator->key, key); - } else if ((IS_CV & (IS_VAR|IS_CV)) && Z_ISREF_P(key)) { - ZVAL_COPY(&generator->key, Z_REFVAL_P(key)); - - } else { - ZVAL_COPY_VALUE(&generator->key, key); - if (IS_CV == IS_CV) { - if (Z_OPT_REFCOUNTED_P(key)) Z_ADDREF_P(key); - } - } - - if (Z_TYPE(generator->key) == IS_LONG - && Z_LVAL(generator->key) > generator->largest_used_integer_key - ) { - generator->largest_used_integer_key = Z_LVAL(generator->key); - } - } else { - /* If no key was specified we use auto-increment keys */ - generator->largest_used_integer_key++; - ZVAL_LONG(&generator->key, generator->largest_used_integer_key); - } - - if (RETURN_VALUE_USED(opline)) { - /* If the return value of yield is used set the send - * target and initialize it to NULL */ - generator->send_target = EX_VAR(opline->result.var); - ZVAL_NULL(generator->send_target); - } else { - generator->send_target = NULL; - } - - /* We increment to the next op, so we are at the correct position when the - * generator is resumed. */ - ZEND_VM_INC_OPCODE(); - - /* The GOTO VM uses a local opline variable. We need to set the opline - * variable in execute_data so we don't resume at an old position. */ - SAVE_OPLINE(); - - ZEND_VM_RETURN(); -} - -static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS) -{ - USE_OPLINE - - zend_error_noreturn(E_ERROR, "Invalid opcode %d/%d/%d.", OPLINE->opcode, OPLINE->op1_type, OPLINE->op2_type); - ZEND_VM_NEXT_OPCODE(); /* Never reached */ -} - - -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) -# undef ZEND_VM_TAIL_CALL -# undef ZEND_VM_CONTINUE -# undef ZEND_VM_RETURN - -# define ZEND_VM_TAIL_CALL(call) call; ZEND_VM_CONTINUE() -# define ZEND_VM_CONTINUE() HYBRID_NEXT() -# define ZEND_VM_RETURN() goto HYBRID_HALT_LABEL -#endif - - -#if (ZEND_VM_KIND != ZEND_VM_KIND_CALL) && (ZEND_GCC_VERSION >= 4000) && !defined(__clang__) -# pragma GCC push_options -# pragma GCC optimize("no-gcse") -# pragma GCC optimize("no-ivopts") -#endif -ZEND_API void execute_ex(zend_execute_data *ex) -{ - DCL_OPLINE - -#ifdef ZEND_VM_IP_GLOBAL_REG - const zend_op *orig_opline = opline; -#endif -#ifdef ZEND_VM_FP_GLOBAL_REG - zend_execute_data *orig_execute_data = execute_data; - execute_data = ex; -#else - zend_execute_data *execute_data = ex; -#endif - -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) - if (UNEXPECTED(execute_data == NULL)) { - static const void * const labels[] = { - (void*)&&ZEND_NOP_SPEC_LABEL, - (void*)&&ZEND_ADD_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_ADD_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_SUB_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_DIV_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_DIV_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_DIV_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_DIV_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_DIV_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_DIV_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_DIV_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_DIV_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_DIV_SPEC_CV_CV_LABEL, - (void*)&&ZEND_MOD_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_MOD_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_MOD_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MOD_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_SL_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SL_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SL_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SR_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_SR_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SR_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SR_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CONCAT_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_CONCAT_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CONCAT_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CONCAT_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CONCAT_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_CONCAT_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_CONCAT_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CONCAT_SPEC_CV_CV_LABEL, - (void*)&&ZEND_BW_OR_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_AND_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_POW_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_POW_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_POW_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POW_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POW_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POW_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_POW_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_POW_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POW_SPEC_CV_CV_LABEL, - (void*)&&ZEND_BW_NOT_SPEC_CONST_LABEL, - (void*)&&ZEND_BW_NOT_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_BW_NOT_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BW_NOT_SPEC_CV_LABEL, - (void*)&&ZEND_BOOL_NOT_SPEC_CONST_LABEL, - (void*)&&ZEND_BOOL_NOT_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_BOOL_NOT_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BOOL_NOT_SPEC_CV_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BOOL_XOR_SPEC_CV_CV_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_TMP_TMP_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_VAR_TMP_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_VAR_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_CV_TMP_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_CV_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_IDENTICAL_SPEC_CV_CV_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_CV_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_CV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_SPEC_CV_CV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_CV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_USED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_USED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_USED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_USED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_SPEC_CV_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CONST_LABEL, - (void*)&&ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_TMP_LABEL, - (void*)&&ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OP_SPEC_CV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_ASSIGN_DIM_OP_SPEC_CV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV_LABEL, - (void*)&&ZEND_ASSIGN_STATIC_PROP_OP_SPEC_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_REF_SPEC_VAR_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_REF_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_REF_SPEC_CV_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_REF_SPEC_CV_CV_LABEL, - (void*)&&ZEND_QM_ASSIGN_SPEC_CONST_LABEL, - (void*)&&ZEND_QM_ASSIGN_SPEC_TMP_LABEL, - (void*)&&ZEND_QM_ASSIGN_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_QM_ASSIGN_SPEC_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_CV_LABEL, - (void*)&&ZEND_ASSIGN_STATIC_PROP_REF_SPEC_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_INC_SPEC_VAR_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_INC_SPEC_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_INC_SPEC_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_DEC_SPEC_VAR_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_DEC_SPEC_VAR_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_DEC_SPEC_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_DEC_SPEC_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_INC_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_INC_SPEC_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_DEC_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_DEC_SPEC_CV_LABEL, - (void*)&&ZEND_PRE_INC_STATIC_PROP_SPEC_LABEL, - (void*)&&ZEND_POST_INC_STATIC_PROP_SPEC_LABEL, - (void*)&&ZEND_JMP_SPEC_LABEL, - (void*)&&ZEND_JMPZ_SPEC_CONST_LABEL, - (void*)&&ZEND_JMPZ_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_JMPZ_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_JMPZ_SPEC_CV_LABEL, - (void*)&&ZEND_JMPNZ_SPEC_CONST_LABEL, - (void*)&&ZEND_JMPNZ_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_JMPNZ_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_JMPNZ_SPEC_CV_LABEL, - (void*)&&ZEND_JMPZNZ_SPEC_CONST_LABEL, - (void*)&&ZEND_JMPZNZ_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_JMPZNZ_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_JMPZNZ_SPEC_CV_LABEL, - (void*)&&ZEND_JMPZ_EX_SPEC_CONST_LABEL, - (void*)&&ZEND_JMPZ_EX_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_JMPZ_EX_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_JMPZ_EX_SPEC_CV_LABEL, - (void*)&&ZEND_JMPNZ_EX_SPEC_CONST_LABEL, - (void*)&&ZEND_JMPNZ_EX_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_JMPNZ_EX_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_JMPNZ_EX_SPEC_CV_LABEL, - (void*)&&ZEND_CASE_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_CASE_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_CASE_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CASE_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_CHECK_VAR_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_LABEL, - (void*)&&ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK_LABEL, - (void*)&&ZEND_CAST_SPEC_CONST_LABEL, - (void*)&&ZEND_CAST_SPEC_TMP_LABEL, - (void*)&&ZEND_CAST_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_CAST_SPEC_CV_LABEL, - (void*)&&ZEND_BOOL_SPEC_CONST_LABEL, - (void*)&&ZEND_BOOL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_BOOL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BOOL_SPEC_CV_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FAST_CONCAT_SPEC_CV_CV_LABEL, - (void*)&&ZEND_ROPE_INIT_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ROPE_INIT_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_ROPE_ADD_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_ROPE_ADD_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_ROPE_ADD_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ROPE_ADD_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_ROPE_END_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_ROPE_END_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_ROPE_END_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ROPE_END_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_BEGIN_SILENCE_SPEC_LABEL, - (void*)&&ZEND_END_SILENCE_SPEC_TMP_LABEL, - (void*)&&ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_LABEL, - (void*)&&ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_DO_FCALL_SPEC_RETVAL_USED_LABEL, - (void*)&&ZEND_INIT_FCALL_SPEC_CONST_LABEL, - (void*)&&ZEND_RETURN_SPEC_CONST_LABEL, - (void*)&&ZEND_RETURN_SPEC_TMP_LABEL, - (void*)&&ZEND_RETURN_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_RETURN_SPEC_CV_LABEL, - (void*)&&ZEND_RECV_SPEC_UNUSED_LABEL, - (void*)&&ZEND_RECV_INIT_SPEC_CONST_LABEL, - (void*)&&ZEND_SEND_VAL_SPEC_CONST_LABEL, - (void*)&&ZEND_SEND_VAL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_SEND_VAL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_EX_SPEC_VAR_LABEL, - (void*)&&ZEND_SEND_VAR_EX_SPEC_VAR_QUICK_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_EX_SPEC_CV_LABEL, - (void*)&&ZEND_SEND_VAR_EX_SPEC_CV_QUICK_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_REF_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_REF_SPEC_CV_LABEL, - (void*)&&ZEND_NEW_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NEW_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_NEW_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_LABEL, - (void*)&&ZEND_FREE_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_TMP_UNUSED_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_INIT_ARRAY_SPEC_CV_CV_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_LABEL, - (void*)&&ZEND_INCLUDE_OR_EVAL_SPEC_CONST_LABEL, - (void*)&&ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INCLUDE_OR_EVAL_SPEC_CV_LABEL, - (void*)&&ZEND_UNSET_VAR_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_VAR_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_DIM_SPEC_CV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_UNSET_OBJ_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FE_RESET_R_SPEC_CONST_LABEL, - (void*)&&ZEND_FE_RESET_R_SPEC_TMP_LABEL, - (void*)&&ZEND_FE_RESET_R_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FE_RESET_R_SPEC_CV_LABEL, - (void*)&&ZEND_FE_FETCH_R_SPEC_VAR_LABEL, - (void*)&&ZEND_EXIT_SPEC_LABEL, - (void*)&&ZEND_FETCH_R_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_FETCH_R_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_R_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_R_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_R_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_W_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_FETCH_W_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_W_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_W_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_W_SPEC_CV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_W_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_RW_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_RW_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_RW_SPEC_CV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_RW_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_IS_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_IS_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_IS_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_IS_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_UNSET_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_UNSET_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_LABEL, - (void*)&&ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_LABEL, - (void*)&&ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_QUICK_LABEL, - (void*)&&ZEND_EXT_STMT_SPEC_LABEL, - (void*)&&ZEND_EXT_FCALL_BEGIN_SPEC_LABEL, - (void*)&&ZEND_EXT_FCALL_END_SPEC_LABEL, - (void*)&&ZEND_EXT_NOP_SPEC_LABEL, - (void*)&&ZEND_TICKS_SPEC_LABEL, - (void*)&&ZEND_SEND_VAR_NO_REF_SPEC_VAR_LABEL, - (void*)&&ZEND_CATCH_SPEC_CONST_LABEL, - (void*)&&ZEND_THROW_SPEC_CONST_LABEL, - (void*)&&ZEND_THROW_SPEC_TMP_LABEL, - (void*)&&ZEND_THROW_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_THROW_SPEC_CV_LABEL, - (void*)&&ZEND_FETCH_CLASS_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_CLASS_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_FETCH_CLASS_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_CLONE_SPEC_CONST_LABEL, - (void*)&&ZEND_CLONE_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_CLONE_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_CLONE_SPEC_UNUSED_LABEL, - (void*)&&ZEND_CLONE_SPEC_CV_LABEL, - (void*)&&ZEND_RETURN_BY_REF_SPEC_CONST_LABEL, - (void*)&&ZEND_RETURN_BY_REF_SPEC_TMP_LABEL, - (void*)&&ZEND_RETURN_BY_REF_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_RETURN_BY_REF_SPEC_CV_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_METHOD_CALL_SPEC_CV_CV_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV_LABEL, - (void*)&&ZEND_SEND_VAL_EX_SPEC_CONST_LABEL, - (void*)&&ZEND_SEND_VAL_EX_SPEC_CONST_QUICK_LABEL, - (void*)&&ZEND_SEND_VAL_EX_SPEC_TMP_LABEL, - (void*)&&ZEND_SEND_VAL_EX_SPEC_TMP_QUICK_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_SPEC_CV_LABEL, - (void*)&&ZEND_INIT_USER_CALL_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_USER_CALL_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_SEND_ARRAY_SPEC_LABEL, - (void*)&&ZEND_SEND_USER_SPEC_CONST_LABEL, - (void*)&&ZEND_SEND_USER_SPEC_TMP_LABEL, - (void*)&&ZEND_SEND_USER_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_USER_SPEC_CV_LABEL, - (void*)&&ZEND_STRLEN_SPEC_CONST_LABEL, - (void*)&&ZEND_STRLEN_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_STRLEN_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_STRLEN_SPEC_CV_LABEL, - (void*)&&ZEND_DEFINED_SPEC_CONST_LABEL, - (void*)&&ZEND_TYPE_CHECK_SPEC_CONST_LABEL, - (void*)&&ZEND_TYPE_CHECK_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_TYPE_CHECK_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_TYPE_CHECK_SPEC_CV_LABEL, - (void*)&&ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED_LABEL, - (void*)&&ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FE_RESET_RW_SPEC_CONST_LABEL, - (void*)&&ZEND_FE_RESET_RW_SPEC_TMP_LABEL, - (void*)&&ZEND_FE_RESET_RW_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FE_RESET_RW_SPEC_CV_LABEL, - (void*)&&ZEND_FE_FETCH_RW_SPEC_VAR_LABEL, - (void*)&&ZEND_FE_FREE_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_INIT_DYNAMIC_CALL_SPEC_CONST_LABEL, - (void*)&&ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INIT_DYNAMIC_CALL_SPEC_CV_LABEL, - (void*)&&ZEND_DO_ICALL_SPEC_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_DO_ICALL_SPEC_RETVAL_USED_LABEL, - (void*)&&ZEND_DO_UCALL_SPEC_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_DO_UCALL_SPEC_RETVAL_USED_LABEL, - (void*)&&ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_PRE_INC_OBJ_SPEC_CV_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_POST_INC_OBJ_SPEC_CV_CV_LABEL, - (void*)&&ZEND_ECHO_SPEC_CONST_LABEL, - (void*)&&ZEND_ECHO_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_ECHO_SPEC_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ECHO_SPEC_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_TMPVAR_VAR_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_TMPVAR_VAR_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_CV_VAR_LABEL, - (void*)&&ZEND_INSTANCEOF_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_GENERATOR_CREATE_SPEC_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MAKE_REF_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MAKE_REF_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_DECLARE_FUNCTION_SPEC_LABEL, - (void*)&&ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_DECLARE_CONST_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_DECLARE_CLASS_SPEC_CONST_LABEL, - (void*)&&ZEND_DECLARE_CLASS_DELAYED_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_DECLARE_ANON_CLASS_SPEC_LABEL, - (void*)&&ZEND_ADD_ARRAY_UNPACK_SPEC_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV_LABEL, - (void*)&&ZEND_HANDLE_EXCEPTION_SPEC_LABEL, - (void*)&&ZEND_USER_OPCODE_SPEC_LABEL, - (void*)&&ZEND_ASSERT_CHECK_SPEC_LABEL, - (void*)&&ZEND_JMP_SET_SPEC_CONST_LABEL, - (void*)&&ZEND_JMP_SET_SPEC_TMP_LABEL, - (void*)&&ZEND_JMP_SET_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_JMP_SET_SPEC_CV_LABEL, - (void*)&&ZEND_UNSET_CV_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_SET_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_EMPTY_LABEL, - (void*)&&ZEND_FETCH_LIST_W_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_LIST_W_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_SEPARATE_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_FETCH_CLASS_NAME_SPEC_UNUSED_LABEL, - (void*)&&ZEND_CALL_TRAMPOLINE_SPEC_LABEL, - (void*)&&ZEND_DISCARD_EXCEPTION_SPEC_LABEL, - (void*)&&ZEND_YIELD_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_YIELD_SPEC_CONST_TMP_LABEL, - (void*)&&ZEND_YIELD_SPEC_CONST_VAR_LABEL, - (void*)&&ZEND_YIELD_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_YIELD_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_YIELD_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_YIELD_SPEC_TMP_TMP_LABEL, - (void*)&&ZEND_YIELD_SPEC_TMP_VAR_LABEL, - (void*)&&ZEND_YIELD_SPEC_TMP_UNUSED_LABEL, - (void*)&&ZEND_YIELD_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_YIELD_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_YIELD_SPEC_VAR_TMP_LABEL, - (void*)&&ZEND_YIELD_SPEC_VAR_VAR_LABEL, - (void*)&&ZEND_YIELD_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_YIELD_SPEC_VAR_CV_LABEL, - (void*)&&ZEND_YIELD_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_YIELD_SPEC_UNUSED_TMP_LABEL, - (void*)&&ZEND_YIELD_SPEC_UNUSED_VAR_LABEL, - (void*)&&ZEND_YIELD_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_YIELD_SPEC_UNUSED_CV_LABEL, - (void*)&&ZEND_YIELD_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_YIELD_SPEC_CV_TMP_LABEL, - (void*)&&ZEND_YIELD_SPEC_CV_VAR_LABEL, - (void*)&&ZEND_YIELD_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_YIELD_SPEC_CV_CV_LABEL, - (void*)&&ZEND_GENERATOR_RETURN_SPEC_CONST_LABEL, - (void*)&&ZEND_GENERATOR_RETURN_SPEC_TMP_LABEL, - (void*)&&ZEND_GENERATOR_RETURN_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_GENERATOR_RETURN_SPEC_CV_LABEL, - (void*)&&ZEND_FAST_CALL_SPEC_LABEL, - (void*)&&ZEND_FAST_RET_SPEC_LABEL, - (void*)&&ZEND_RECV_VARIADIC_SPEC_UNUSED_LABEL, - (void*)&&ZEND_SEND_UNPACK_SPEC_LABEL, - (void*)&&ZEND_YIELD_FROM_SPEC_CONST_LABEL, - (void*)&&ZEND_YIELD_FROM_SPEC_TMP_LABEL, - (void*)&&ZEND_YIELD_FROM_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_YIELD_FROM_SPEC_CV_LABEL, - (void*)&&ZEND_COPY_TMP_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_BIND_GLOBAL_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_COALESCE_SPEC_CONST_LABEL, - (void*)&&ZEND_COALESCE_SPEC_TMP_LABEL, - (void*)&&ZEND_COALESCE_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_COALESCE_SPEC_CV_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SPACESHIP_SPEC_CV_CV_LABEL, - (void*)&&ZEND_FUNC_NUM_ARGS_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_FUNC_GET_ARGS_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FUNC_GET_ARGS_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_STATIC_PROP_R_SPEC_LABEL, - (void*)&&ZEND_FETCH_STATIC_PROP_W_SPEC_LABEL, - (void*)&&ZEND_FETCH_STATIC_PROP_RW_SPEC_LABEL, - (void*)&&ZEND_FETCH_STATIC_PROP_IS_SPEC_LABEL, - (void*)&&ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPEC_LABEL, - (void*)&&ZEND_FETCH_STATIC_PROP_UNSET_SPEC_LABEL, - (void*)&&ZEND_UNSET_STATIC_PROP_SPEC_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC_LABEL, - (void*)&&ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_BIND_LEXICAL_SPEC_TMP_CV_LABEL, - (void*)&&ZEND_BIND_STATIC_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_FETCH_THIS_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_SEND_FUNC_ARG_SPEC_VAR_LABEL, - (void*)&&ZEND_ISSET_ISEMPTY_THIS_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_SWITCH_LONG_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SWITCH_STRING_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IN_ARRAY_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_IN_ARRAY_SPEC_TMP_CONST_LABEL, - (void*)&&ZEND_IN_ARRAY_SPEC_VAR_CONST_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IN_ARRAY_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_COUNT_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_COUNT_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_COUNT_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_COUNT_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_GET_CLASS_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED_LABEL, - (void*)&&ZEND_GET_CLASS_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_GET_CLASS_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_GET_CALLED_CLASS_SPEC_UNUSED_UNUSED_LABEL, - (void*)&&ZEND_GET_TYPE_SPEC_CONST_UNUSED_LABEL, - (void*)&&ZEND_GET_TYPE_SPEC_TMP_UNUSED_LABEL, - (void*)&&ZEND_GET_TYPE_SPEC_VAR_UNUSED_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_GET_TYPE_SPEC_CV_UNUSED_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CONST_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CV_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CV_LABEL, - (void*)&&ZEND_JMP_FORWARD_SPEC_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_LABEL, - (void*)&&ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_LABEL, - (void*)&&ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_CV_LABEL, - (void*)&&ZEND_POST_INC_LONG_SPEC_CV_LABEL, - (void*)&&ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_CV_LABEL, - (void*)&&ZEND_POST_DEC_LONG_SPEC_CV_LABEL, - (void*)&&ZEND_QM_ASSIGN_LONG_SPEC_CONST_LABEL, - (void*)&&ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST_LABEL, - (void*)&&ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_QM_ASSIGN_NOREF_SPEC_CONST_LABEL, - (void*)&&ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_SIMPLE_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_SIMPLE_SPEC_CV_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_LABEL, - (void*)&&ZEND_NULL_LABEL, - (void*)&&ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_LABEL, - (void*)&&ZEND_SEND_VAL_SIMPLE_SPEC_CONST_LABEL, - (void*)&&ZEND_SEND_VAL_EX_SIMPLE_SPEC_CONST_LABEL, - (void*)&&ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED_LABEL, - (void*)&&ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED_LABEL, - (void*)&&ZEND_NULL_LABEL - }; - zend_opcode_handlers = (const void **) labels; - zend_handlers_count = sizeof(labels) / sizeof(void*); - memset(&hybrid_halt_op, 0, sizeof(hybrid_halt_op)); - hybrid_halt_op.handler = (void*)&&HYBRID_HALT_LABEL; - goto HYBRID_HALT_LABEL; - } -#endif - - LOAD_OPLINE(); - ZEND_VM_LOOP_INTERRUPT_CHECK(); - - while (1) { -#if !defined(ZEND_VM_FP_GLOBAL_REG) || !defined(ZEND_VM_IP_GLOBAL_REG) - int ret; -#endif -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) - HYBRID_SWITCH() { -#else -#if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG) - ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - if (UNEXPECTED(!OPLINE)) { -#else - if (UNEXPECTED((ret = ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)) != 0)) { -#endif -#endif -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) - HYBRID_CASE(ZEND_ASSIGN_STATIC_PROP_OP_SPEC): - VM_TRACE(ZEND_ASSIGN_STATIC_PROP_OP_SPEC) - ZEND_ASSIGN_STATIC_PROP_OP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_STATIC_PROP_SPEC): - VM_TRACE(ZEND_PRE_INC_STATIC_PROP_SPEC) - ZEND_PRE_INC_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_STATIC_PROP_SPEC): - VM_TRACE(ZEND_POST_INC_STATIC_PROP_SPEC) - ZEND_POST_INC_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_STATIC_PROP_R_SPEC): - VM_TRACE(ZEND_FETCH_STATIC_PROP_R_SPEC) - ZEND_FETCH_STATIC_PROP_R_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_STATIC_PROP_W_SPEC): - VM_TRACE(ZEND_FETCH_STATIC_PROP_W_SPEC) - ZEND_FETCH_STATIC_PROP_W_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_STATIC_PROP_RW_SPEC): - VM_TRACE(ZEND_FETCH_STATIC_PROP_RW_SPEC) - ZEND_FETCH_STATIC_PROP_RW_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPEC): - VM_TRACE(ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPEC) - ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_STATIC_PROP_UNSET_SPEC): - VM_TRACE(ZEND_FETCH_STATIC_PROP_UNSET_SPEC) - ZEND_FETCH_STATIC_PROP_UNSET_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_STATIC_PROP_IS_SPEC): - VM_TRACE(ZEND_FETCH_STATIC_PROP_IS_SPEC) - ZEND_FETCH_STATIC_PROP_IS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CONST) - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_TMP) - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_VAR) - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CV) - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_STATIC_PROP_REF_SPEC): - VM_TRACE(ZEND_ASSIGN_STATIC_PROP_REF_SPEC) - ZEND_ASSIGN_STATIC_PROP_REF_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); -zend_leave_helper_SPEC_LABEL: -{ - zend_execute_data *old_execute_data; - uint32_t call_info = EX_CALL_INFO(); - SAVE_OPLINE(); - - if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(execute_data->This)); - } else if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - EG(vm_stack_top) = (zval*)execute_data; - execute_data = EX(prev_execute_data); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); - -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } - - /* Free extra args before releasing the closure, - * as that may free the op_array. */ - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - - if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { - OBJ_RELEASE(Z_OBJ(execute_data->This)); - } else if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - - old_execute_data = execute_data; - execute_data = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else if (EXPECTED((call_info & ZEND_CALL_TOP) == 0)) { - zend_detach_symbol_table(execute_data); - destroy_op_array(&EX(func)->op_array); - efree_size(EX(func), sizeof(zend_op_array)); -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - old_execute_data = execute_data; - execute_data = EG(current_execute_data) = EX(prev_execute_data); - zend_vm_stack_free_call_frame_ex(call_info, old_execute_data); - - zend_attach_symbol_table(execute_data); - if (UNEXPECTED(EG(exception) != NULL)) { - zend_rethrow_exception(execute_data); - HANDLE_EXCEPTION_LEAVE(); - } - - LOAD_NEXT_OPLINE(); - ZEND_VM_LEAVE(); - } else { - if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { - EG(current_execute_data) = EX(prev_execute_data); - i_free_compiled_variables(execute_data); -#ifdef ZEND_PREFER_RELOAD - call_info = EX_CALL_INFO(); -#endif - if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { - if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { - zend_clean_and_cache_symbol_table(EX(symbol_table)); - } - zend_vm_stack_free_extra_args_ex(call_info, execute_data); - } - if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { - OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func))); - } - ZEND_VM_RETURN(); - } else /* if (call_kind == ZEND_CALL_TOP_CODE) */ { - zend_array *symbol_table = EX(symbol_table); - - zend_detach_symbol_table(execute_data); - old_execute_data = EX(prev_execute_data); - while (old_execute_data) { - if (old_execute_data->func && (ZEND_CALL_INFO(old_execute_data) & ZEND_CALL_HAS_SYMBOL_TABLE)) { - if (old_execute_data->symbol_table == symbol_table) { - zend_attach_symbol_table(old_execute_data); - } - break; - } - old_execute_data = old_execute_data->prev_execute_data; - } - EG(current_execute_data) = EX(prev_execute_data); - ZEND_VM_RETURN(); - } - } -} - - HYBRID_CASE(ZEND_JMP_SPEC): - VM_TRACE(ZEND_JMP_SPEC) - ZEND_JMP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_ICALL_SPEC_RETVAL_UNUSED): - VM_TRACE(ZEND_DO_ICALL_SPEC_RETVAL_UNUSED) - ZEND_DO_ICALL_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_ICALL_SPEC_RETVAL_USED): - VM_TRACE(ZEND_DO_ICALL_SPEC_RETVAL_USED) - ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_UCALL_SPEC_RETVAL_UNUSED): - VM_TRACE(ZEND_DO_UCALL_SPEC_RETVAL_UNUSED) - ZEND_DO_UCALL_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_UCALL_SPEC_RETVAL_USED): - VM_TRACE(ZEND_DO_UCALL_SPEC_RETVAL_USED) - ZEND_DO_UCALL_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED): - VM_TRACE(ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED) - ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED): - VM_TRACE(ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED) - ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_FCALL_SPEC_RETVAL_UNUSED): - VM_TRACE(ZEND_DO_FCALL_SPEC_RETVAL_UNUSED) - ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DO_FCALL_SPEC_RETVAL_USED): - VM_TRACE(ZEND_DO_FCALL_SPEC_RETVAL_USED) - ZEND_DO_FCALL_SPEC_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GENERATOR_CREATE_SPEC): - VM_TRACE(ZEND_GENERATOR_CREATE_SPEC) - ZEND_GENERATOR_CREATE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_UNPACK_SPEC): - VM_TRACE(ZEND_SEND_UNPACK_SPEC) - ZEND_SEND_UNPACK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_ARRAY_SPEC): - VM_TRACE(ZEND_SEND_ARRAY_SPEC) - ZEND_SEND_ARRAY_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_UNPACK_SPEC): - VM_TRACE(ZEND_ADD_ARRAY_UNPACK_SPEC) - ZEND_ADD_ARRAY_UNPACK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_STATIC_PROP_SPEC): - VM_TRACE(ZEND_UNSET_STATIC_PROP_SPEC) - ZEND_UNSET_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC): - VM_TRACE(ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC) - ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_EXIT_SPEC): - VM_TRACE(ZEND_EXIT_SPEC) - ZEND_EXIT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BEGIN_SILENCE_SPEC): - VM_TRACE(ZEND_BEGIN_SILENCE_SPEC) - ZEND_BEGIN_SILENCE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_EXT_STMT_SPEC): - VM_TRACE(ZEND_EXT_STMT_SPEC) - ZEND_EXT_STMT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_EXT_FCALL_BEGIN_SPEC): - VM_TRACE(ZEND_EXT_FCALL_BEGIN_SPEC) - ZEND_EXT_FCALL_BEGIN_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_EXT_FCALL_END_SPEC): - VM_TRACE(ZEND_EXT_FCALL_END_SPEC) - ZEND_EXT_FCALL_END_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DECLARE_ANON_CLASS_SPEC): - VM_TRACE(ZEND_DECLARE_ANON_CLASS_SPEC) - ZEND_DECLARE_ANON_CLASS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DECLARE_FUNCTION_SPEC): - VM_TRACE(ZEND_DECLARE_FUNCTION_SPEC) - ZEND_DECLARE_FUNCTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_TICKS_SPEC): - VM_TRACE(ZEND_TICKS_SPEC) - ZEND_TICKS_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_EXT_NOP_SPEC): - VM_TRACE(ZEND_EXT_NOP_SPEC) - ZEND_EXT_NOP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_NOP_SPEC): - VM_TRACE(ZEND_NOP_SPEC) - ZEND_NOP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_HANDLE_EXCEPTION_SPEC): - VM_TRACE(ZEND_HANDLE_EXCEPTION_SPEC) - ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_USER_OPCODE_SPEC): - VM_TRACE(ZEND_USER_OPCODE_SPEC) - ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DISCARD_EXCEPTION_SPEC): - VM_TRACE(ZEND_DISCARD_EXCEPTION_SPEC) - ZEND_DISCARD_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CALL_SPEC): - VM_TRACE(ZEND_FAST_CALL_SPEC) - ZEND_FAST_CALL_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_RET_SPEC): - VM_TRACE(ZEND_FAST_RET_SPEC) - ZEND_FAST_RET_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSERT_CHECK_SPEC): - VM_TRACE(ZEND_ASSERT_CHECK_SPEC) - ZEND_ASSERT_CHECK_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CALL_TRAMPOLINE_SPEC): - VM_TRACE(ZEND_CALL_TRAMPOLINE_SPEC) - ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMP_FORWARD_SPEC): - VM_TRACE(ZEND_JMP_FORWARD_SPEC) - ZEND_JMP_FORWARD_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_FCALL_BY_NAME_SPEC_CONST): - VM_TRACE(ZEND_INIT_FCALL_BY_NAME_SPEC_CONST) - ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_DYNAMIC_CALL_SPEC_CONST): - VM_TRACE(ZEND_INIT_DYNAMIC_CALL_SPEC_CONST) - ZEND_INIT_DYNAMIC_CALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST): - VM_TRACE(ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST) - ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_FCALL_SPEC_CONST): - VM_TRACE(ZEND_INIT_FCALL_SPEC_CONST) - ZEND_INIT_FCALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_RECV_INIT_SPEC_CONST): - VM_TRACE(ZEND_RECV_INIT_SPEC_CONST) - ZEND_RECV_INIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR): - VM_TRACE(ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR) - ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_RECV_SPEC_UNUSED): - VM_TRACE(ZEND_RECV_SPEC_UNUSED) - ZEND_RECV_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_RECV_VARIADIC_SPEC_UNUSED): - VM_TRACE(ZEND_RECV_VARIADIC_SPEC_UNUSED) - ZEND_RECV_VARIADIC_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_DYNAMIC_CALL_SPEC_CV): - VM_TRACE(ZEND_INIT_DYNAMIC_CALL_SPEC_CV) - ZEND_INIT_DYNAMIC_CALL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_NOT_SPEC_CONST): - VM_TRACE(ZEND_BW_NOT_SPEC_CONST) - ZEND_BW_NOT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_NOT_SPEC_CONST): - VM_TRACE(ZEND_BOOL_NOT_SPEC_CONST) - ZEND_BOOL_NOT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ECHO_SPEC_CONST): - VM_TRACE(ZEND_ECHO_SPEC_CONST) - ZEND_ECHO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZ_SPEC_CONST): - VM_TRACE(ZEND_JMPZ_SPEC_CONST) - ZEND_JMPZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPNZ_SPEC_CONST): - VM_TRACE(ZEND_JMPNZ_SPEC_CONST) - ZEND_JMPNZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZNZ_SPEC_CONST): - VM_TRACE(ZEND_JMPZNZ_SPEC_CONST) - ZEND_JMPZNZ_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZ_EX_SPEC_CONST): - VM_TRACE(ZEND_JMPZ_EX_SPEC_CONST) - ZEND_JMPZ_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPNZ_EX_SPEC_CONST): - VM_TRACE(ZEND_JMPNZ_EX_SPEC_CONST) - ZEND_JMPNZ_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_RETURN_SPEC_CONST): - VM_TRACE(ZEND_RETURN_SPEC_CONST) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = RT_CONSTANT(opline, opline->op1); - return_value = EX(return_value); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_CONST & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_CONST & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_CONST == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_CONST == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_CONST == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - goto zend_leave_helper_SPEC_LABEL; -} - - HYBRID_CASE(ZEND_RETURN_BY_REF_SPEC_CONST): - VM_TRACE(ZEND_RETURN_BY_REF_SPEC_CONST) - ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GENERATOR_RETURN_SPEC_CONST): - VM_TRACE(ZEND_GENERATOR_RETURN_SPEC_CONST) - ZEND_GENERATOR_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_THROW_SPEC_CONST): - VM_TRACE(ZEND_THROW_SPEC_CONST) - ZEND_THROW_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CATCH_SPEC_CONST): - VM_TRACE(ZEND_CATCH_SPEC_CONST) - ZEND_CATCH_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_SPEC_CONST): - VM_TRACE(ZEND_SEND_VAL_SPEC_CONST) - ZEND_SEND_VAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_EX_SPEC_CONST): - VM_TRACE(ZEND_SEND_VAL_EX_SPEC_CONST) - ZEND_SEND_VAL_EX_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_EX_SPEC_CONST_QUICK): - VM_TRACE(ZEND_SEND_VAL_EX_SPEC_CONST_QUICK) - ZEND_SEND_VAL_EX_SPEC_CONST_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_USER_SPEC_CONST): - VM_TRACE(ZEND_SEND_USER_SPEC_CONST) - ZEND_SEND_USER_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_SPEC_CONST): - VM_TRACE(ZEND_BOOL_SPEC_CONST) - ZEND_BOOL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CLONE_SPEC_CONST): - VM_TRACE(ZEND_CLONE_SPEC_CONST) - ZEND_CLONE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CAST_SPEC_CONST): - VM_TRACE(ZEND_CAST_SPEC_CONST) - ZEND_CAST_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INCLUDE_OR_EVAL_SPEC_CONST): - VM_TRACE(ZEND_INCLUDE_OR_EVAL_SPEC_CONST) - ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_R_SPEC_CONST): - VM_TRACE(ZEND_FE_RESET_R_SPEC_CONST) - ZEND_FE_RESET_R_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_RW_SPEC_CONST): - VM_TRACE(ZEND_FE_RESET_RW_SPEC_CONST) - ZEND_FE_RESET_RW_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMP_SET_SPEC_CONST): - VM_TRACE(ZEND_JMP_SET_SPEC_CONST) - ZEND_JMP_SET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COALESCE_SPEC_CONST): - VM_TRACE(ZEND_COALESCE_SPEC_CONST) - ZEND_COALESCE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_SPEC_CONST): - VM_TRACE(ZEND_QM_ASSIGN_SPEC_CONST) - ZEND_QM_ASSIGN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DECLARE_CLASS_SPEC_CONST): - VM_TRACE(ZEND_DECLARE_CLASS_SPEC_CONST) - ZEND_DECLARE_CLASS_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_FROM_SPEC_CONST): - VM_TRACE(ZEND_YIELD_FROM_SPEC_CONST) - ZEND_YIELD_FROM_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_STRLEN_SPEC_CONST): - VM_TRACE(ZEND_STRLEN_SPEC_CONST) - ZEND_STRLEN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_TYPE_CHECK_SPEC_CONST): - VM_TRACE(ZEND_TYPE_CHECK_SPEC_CONST) - ZEND_TYPE_CHECK_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DEFINED_SPEC_CONST): - VM_TRACE(ZEND_DEFINED_SPEC_CONST) - ZEND_DEFINED_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_LONG_SPEC_CONST): - VM_TRACE(ZEND_QM_ASSIGN_LONG_SPEC_CONST) - ZEND_QM_ASSIGN_LONG_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST): - VM_TRACE(ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST) - ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_NOREF_SPEC_CONST): - VM_TRACE(ZEND_QM_ASSIGN_NOREF_SPEC_CONST) - ZEND_QM_ASSIGN_NOREF_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_SIMPLE_SPEC_CONST): - VM_TRACE(ZEND_SEND_VAL_SIMPLE_SPEC_CONST) - ZEND_SEND_VAL_SIMPLE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_EX_SIMPLE_SPEC_CONST): - VM_TRACE(ZEND_SEND_VAL_EX_SIMPLE_SPEC_CONST) - ZEND_SEND_VAL_EX_SIMPLE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_SPEC_CONST_CONST): - VM_TRACE(ZEND_ADD_SPEC_CONST_CONST) - ZEND_ADD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_SPEC_CONST_CONST): - VM_TRACE(ZEND_SUB_SPEC_CONST_CONST) - ZEND_SUB_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_SPEC_CONST_CONST): - VM_TRACE(ZEND_MUL_SPEC_CONST_CONST) - ZEND_MUL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_CONST_CONST): - VM_TRACE(ZEND_DIV_SPEC_CONST_CONST) - ZEND_DIV_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MOD_SPEC_CONST_CONST): - VM_TRACE(ZEND_MOD_SPEC_CONST_CONST) - ZEND_MOD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SL_SPEC_CONST_CONST): - VM_TRACE(ZEND_SL_SPEC_CONST_CONST) - ZEND_SL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SR_SPEC_CONST_CONST): - VM_TRACE(ZEND_SR_SPEC_CONST_CONST) - ZEND_SR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_CONST_CONST): - VM_TRACE(ZEND_POW_SPEC_CONST_CONST) - ZEND_POW_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_CONST_CONST): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_CONST_CONST) - ZEND_IS_IDENTICAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CONST): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CONST) - ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CONST_CONST): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CONST_CONST) - ZEND_IS_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST) - ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CONST_CONST): - VM_TRACE(ZEND_IS_SMALLER_SPEC_CONST_CONST) - ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_CONST_CONST): - VM_TRACE(ZEND_SPACESHIP_SPEC_CONST_CONST) - ZEND_SPACESHIP_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_OR_SPEC_CONST_CONST): - VM_TRACE(ZEND_BW_OR_SPEC_CONST_CONST) - ZEND_BW_OR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_AND_SPEC_CONST_CONST): - VM_TRACE(ZEND_BW_AND_SPEC_CONST_CONST) - ZEND_BW_AND_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_XOR_SPEC_CONST_CONST): - VM_TRACE(ZEND_BW_XOR_SPEC_CONST_CONST) - ZEND_BW_XOR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_XOR_SPEC_CONST_CONST): - VM_TRACE(ZEND_BOOL_XOR_SPEC_CONST_CONST) - ZEND_BOOL_XOR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_CONST_CONST) - ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_CONST_CONST) - ZEND_FETCH_DIM_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_CONST_CONST) - ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST) - ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_R_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_LIST_R_SPEC_CONST_CONST) - ZEND_FETCH_LIST_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_CONST_CONST): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_CONST_CONST) - ZEND_FAST_CONCAT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST) - ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_USER_CALL_SPEC_CONST_CONST): - VM_TRACE(ZEND_INIT_USER_CALL_SPEC_CONST_CONST) - ZEND_INIT_USER_CALL_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST): - VM_TRACE(ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST) - ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CONST_CONST): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CONST_CONST) - ZEND_INIT_ARRAY_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CONST): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CONST) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CONST): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CONST) - ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DECLARE_CLASS_DELAYED_SPEC_CONST_CONST): - VM_TRACE(ZEND_DECLARE_CLASS_DELAYED_SPEC_CONST_CONST) - ZEND_DECLARE_CLASS_DELAYED_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DECLARE_CONST_SPEC_CONST_CONST): - VM_TRACE(ZEND_DECLARE_CONST_SPEC_CONST_CONST) - ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CONST_CONST): - VM_TRACE(ZEND_YIELD_SPEC_CONST_CONST) - ZEND_YIELD_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SWITCH_LONG_SPEC_CONST_CONST): - VM_TRACE(ZEND_SWITCH_LONG_SPEC_CONST_CONST) - ZEND_SWITCH_LONG_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SWITCH_STRING_SPEC_CONST_CONST): - VM_TRACE(ZEND_SWITCH_STRING_SPEC_CONST_CONST) - ZEND_SWITCH_STRING_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IN_ARRAY_SPEC_CONST_CONST): - VM_TRACE(ZEND_IN_ARRAY_SPEC_CONST_CONST) - ZEND_IN_ARRAY_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_ADD_SPEC_CONST_TMPVARCV) - ZEND_ADD_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_SUB_SPEC_CONST_TMPVARCV) - ZEND_SUB_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MOD_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_MOD_SPEC_CONST_TMPVARCV) - ZEND_MOD_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SL_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_SL_SPEC_CONST_TMPVARCV) - ZEND_SL_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SR_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_SR_SPEC_CONST_TMPVARCV) - ZEND_SR_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV) - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_LONG_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) - ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) - ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV): - VM_TRACE(ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) - ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_DIV_SPEC_CONST_TMPVAR) - ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_POW_SPEC_CONST_TMPVAR) - ZEND_POW_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_CONCAT_SPEC_CONST_TMPVAR) - ZEND_CONCAT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_SPACESHIP_SPEC_CONST_TMPVAR) - ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR) - ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR) - ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR) - ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR) - ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR) - ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR) - ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR) - ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR) - ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR) - ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR) - ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CONST_TMP): - VM_TRACE(ZEND_YIELD_SPEC_CONST_TMP) - ZEND_YIELD_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CONST_VAR): - VM_TRACE(ZEND_YIELD_SPEC_CONST_VAR) - ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_R_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FETCH_R_SPEC_CONST_UNUSED) - ZEND_FETCH_R_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_W_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FETCH_W_SPEC_CONST_UNUSED) - ZEND_FETCH_W_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_RW_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FETCH_RW_SPEC_CONST_UNUSED) - ZEND_FETCH_RW_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED) - ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_UNSET_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FETCH_UNSET_SPEC_CONST_UNUSED) - ZEND_FETCH_UNSET_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_IS_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FETCH_IS_SPEC_CONST_UNUSED) - ZEND_FETCH_IS_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_UNUSED) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED) - ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_NEW_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_NEW_SPEC_CONST_UNUSED) - ZEND_NEW_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CONST_UNUSED) - ZEND_INIT_ARRAY_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_VAR_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_UNSET_VAR_SPEC_CONST_UNUSED) - ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED) - ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED) - ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_YIELD_SPEC_CONST_UNUSED) - ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COUNT_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_COUNT_SPEC_CONST_UNUSED) - ZEND_COUNT_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_CLASS_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_GET_CLASS_SPEC_CONST_UNUSED) - ZEND_GET_CLASS_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_TYPE_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_GET_TYPE_SPEC_CONST_UNUSED) - ZEND_GET_TYPE_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FUNC_GET_ARGS_SPEC_CONST_UNUSED): - VM_TRACE(ZEND_FUNC_GET_ARGS_SPEC_CONST_UNUSED) - ZEND_FUNC_GET_ARGS_SPEC_CONST_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_CONST_CV): - VM_TRACE(ZEND_DIV_SPEC_CONST_CV) - ZEND_DIV_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_CONST_CV): - VM_TRACE(ZEND_POW_SPEC_CONST_CV) - ZEND_POW_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_CONST_CV): - VM_TRACE(ZEND_CONCAT_SPEC_CONST_CV) - ZEND_CONCAT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_CONST_CV): - VM_TRACE(ZEND_SPACESHIP_SPEC_CONST_CV) - ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_CONST_CV): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_CONST_CV) - ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_CONST_CV): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_CONST_CV) - ZEND_FETCH_DIM_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_CONST_CV): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_CONST_CV) - ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_CONST_CV): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_CONST_CV) - ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_R_SPEC_CONST_CV): - VM_TRACE(ZEND_FETCH_LIST_R_SPEC_CONST_CV) - ZEND_FETCH_LIST_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_CONST_CV): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_CONST_CV) - ZEND_FAST_CONCAT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_CONST_CV): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_CONST_CV) - ZEND_INIT_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_USER_CALL_SPEC_CONST_CV): - VM_TRACE(ZEND_INIT_USER_CALL_SPEC_CONST_CV) - ZEND_INIT_USER_CALL_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CONST_CV): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CONST_CV) - ZEND_INIT_ARRAY_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CV): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CV) - ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CONST_CV): - VM_TRACE(ZEND_YIELD_SPEC_CONST_CV) - ZEND_YIELD_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV): - VM_TRACE(ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV) - ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV): - VM_TRACE(ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) - ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV): - VM_TRACE(ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) - ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_ADD_SPEC_TMPVARCV_CONST) - ZEND_ADD_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SUB_SPEC_TMPVARCV_CONST) - ZEND_SUB_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_MUL_SPEC_TMPVARCV_CONST) - ZEND_MUL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MOD_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_MOD_SPEC_TMPVARCV_CONST) - ZEND_MOD_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SL_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SL_SPEC_TMPVARCV_CONST) - ZEND_SL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SR_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SR_SPEC_TMPVARCV_CONST) - ZEND_SR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST) - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_OR_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_BW_OR_SPEC_TMPVARCV_CONST) - ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_AND_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_BW_AND_SPEC_TMPVARCV_CONST) - ZEND_BW_AND_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_XOR_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_BW_XOR_SPEC_TMPVARCV_CONST) - ZEND_BW_XOR_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST) - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST) - ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST) - ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) - ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) - ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) - ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MOD_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SL_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_SL_SPEC_TMPVARCV_TMPVARCV) - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SR_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_SR_SPEC_TMPVARCV_TMPVARCV) - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ): - VM_TRACE(ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR): - VM_TRACE(ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR) - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV): - VM_TRACE(ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV) - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_NOT_SPEC_TMPVAR): - VM_TRACE(ZEND_BW_NOT_SPEC_TMPVAR) - ZEND_BW_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_NOT_SPEC_TMPVAR): - VM_TRACE(ZEND_BOOL_NOT_SPEC_TMPVAR) - ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ECHO_SPEC_TMPVAR): - VM_TRACE(ZEND_ECHO_SPEC_TMPVAR) - ZEND_ECHO_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZ_SPEC_TMPVAR): - VM_TRACE(ZEND_JMPZ_SPEC_TMPVAR) - ZEND_JMPZ_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPNZ_SPEC_TMPVAR): - VM_TRACE(ZEND_JMPNZ_SPEC_TMPVAR) - ZEND_JMPNZ_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZNZ_SPEC_TMPVAR): - VM_TRACE(ZEND_JMPZNZ_SPEC_TMPVAR) - ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZ_EX_SPEC_TMPVAR): - VM_TRACE(ZEND_JMPZ_EX_SPEC_TMPVAR) - ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPNZ_EX_SPEC_TMPVAR): - VM_TRACE(ZEND_JMPNZ_EX_SPEC_TMPVAR) - ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FREE_SPEC_TMPVAR): - VM_TRACE(ZEND_FREE_SPEC_TMPVAR) - ZEND_FREE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_FREE_SPEC_TMPVAR): - VM_TRACE(ZEND_FE_FREE_SPEC_TMPVAR) - ZEND_FE_FREE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_SPEC_TMPVAR): - VM_TRACE(ZEND_SEND_VAL_SPEC_TMPVAR) - ZEND_SEND_VAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_SPEC_TMPVAR): - VM_TRACE(ZEND_BOOL_SPEC_TMPVAR) - ZEND_BOOL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CLONE_SPEC_TMPVAR): - VM_TRACE(ZEND_CLONE_SPEC_TMPVAR) - ZEND_CLONE_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR): - VM_TRACE(ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR) - ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_STRLEN_SPEC_TMPVAR): - VM_TRACE(ZEND_STRLEN_SPEC_TMPVAR) - ZEND_STRLEN_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_TYPE_CHECK_SPEC_TMPVAR): - VM_TRACE(ZEND_TYPE_CHECK_SPEC_TMPVAR) - ZEND_TYPE_CHECK_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_DIV_SPEC_TMPVAR_CONST) - ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_POW_SPEC_TMPVAR_CONST) - ZEND_POW_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_CONCAT_SPEC_TMPVAR_CONST) - ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_IS_EQUAL_SPEC_TMPVAR_CONST) - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ) - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ) - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST) - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ) - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ) - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_SPACESHIP_SPEC_TMPVAR_CONST) - ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_XOR_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_BOOL_XOR_SPEC_TMPVAR_CONST) - ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST) - ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST) - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST) - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST) - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST) - ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST) - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CASE_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_CASE_SPEC_TMPVAR_CONST) - ZEND_CASE_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST) - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INSTANCEOF_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_INSTANCEOF_SPEC_TMPVAR_CONST) - ZEND_INSTANCEOF_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST): - VM_TRACE(ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST) - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV): - VM_TRACE(ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_DIV_SPEC_TMPVAR_TMPVAR) - ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_POW_SPEC_TMPVAR_TMPVAR) - ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_CONCAT_SPEC_TMPVAR_TMPVAR) - ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR) - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR) - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR) - ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR) - ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR) - ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR) - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR) - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR) - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR) - ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR) - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CASE_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_CASE_SPEC_TMPVAR_TMPVAR) - ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR) - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INSTANCEOF_SPEC_TMPVAR_VAR): - VM_TRACE(ZEND_INSTANCEOF_SPEC_TMPVAR_VAR) - ZEND_INSTANCEOF_SPEC_TMPVAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_R_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_FETCH_R_SPEC_TMPVAR_UNUSED) - ZEND_FETCH_R_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_W_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_FETCH_W_SPEC_TMPVAR_UNUSED) - ZEND_FETCH_W_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED) - ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED) - ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED) - ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED) - ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED) - ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED) - ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED) - ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COUNT_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_COUNT_SPEC_TMPVAR_UNUSED) - ZEND_COUNT_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED) - ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COPY_TMP_SPEC_TMPVAR_UNUSED): - VM_TRACE(ZEND_COPY_TMP_SPEC_TMPVAR_UNUSED) - ZEND_COPY_TMP_SPEC_TMPVAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_DIV_SPEC_TMPVAR_CV) - ZEND_DIV_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_POW_SPEC_TMPVAR_CV) - ZEND_POW_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_CONCAT_SPEC_TMPVAR_CV) - ZEND_CONCAT_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_SPACESHIP_SPEC_TMPVAR_CV) - ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV) - ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV) - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV) - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV) - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_TMPVAR_CV) - ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV) - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CASE_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_CASE_SPEC_TMPVAR_CV) - ZEND_CASE_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV) - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_RETURN_SPEC_TMP): - VM_TRACE(ZEND_RETURN_SPEC_TMP) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = _get_zval_ptr_tmp(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - return_value = EX(return_value); - if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_TMP_VAR & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_TMP_VAR & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_TMP_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_TMP_VAR == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_TMP_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - goto zend_leave_helper_SPEC_LABEL; -} - - HYBRID_CASE(ZEND_RETURN_BY_REF_SPEC_TMP): - VM_TRACE(ZEND_RETURN_BY_REF_SPEC_TMP) - ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GENERATOR_RETURN_SPEC_TMP): - VM_TRACE(ZEND_GENERATOR_RETURN_SPEC_TMP) - ZEND_GENERATOR_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_THROW_SPEC_TMP): - VM_TRACE(ZEND_THROW_SPEC_TMP) - ZEND_THROW_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_EX_SPEC_TMP): - VM_TRACE(ZEND_SEND_VAL_EX_SPEC_TMP) - ZEND_SEND_VAL_EX_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAL_EX_SPEC_TMP_QUICK): - VM_TRACE(ZEND_SEND_VAL_EX_SPEC_TMP_QUICK) - ZEND_SEND_VAL_EX_SPEC_TMP_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_USER_SPEC_TMP): - VM_TRACE(ZEND_SEND_USER_SPEC_TMP) - ZEND_SEND_USER_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CAST_SPEC_TMP): - VM_TRACE(ZEND_CAST_SPEC_TMP) - ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_R_SPEC_TMP): - VM_TRACE(ZEND_FE_RESET_R_SPEC_TMP) - ZEND_FE_RESET_R_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_RW_SPEC_TMP): - VM_TRACE(ZEND_FE_RESET_RW_SPEC_TMP) - ZEND_FE_RESET_RW_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_END_SILENCE_SPEC_TMP): - VM_TRACE(ZEND_END_SILENCE_SPEC_TMP) - ZEND_END_SILENCE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMP_SET_SPEC_TMP): - VM_TRACE(ZEND_JMP_SET_SPEC_TMP) - ZEND_JMP_SET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COALESCE_SPEC_TMP): - VM_TRACE(ZEND_COALESCE_SPEC_TMP) - ZEND_COALESCE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_SPEC_TMP): - VM_TRACE(ZEND_QM_ASSIGN_SPEC_TMP) - ZEND_QM_ASSIGN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_FROM_SPEC_TMP): - VM_TRACE(ZEND_YIELD_FROM_SPEC_TMP) - ZEND_YIELD_FROM_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_TMP_CONST): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_TMP_CONST) - ZEND_IS_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST) - ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CONST): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CONST) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_ADD_SPEC_TMP_CONST): - VM_TRACE(ZEND_ROPE_ADD_SPEC_TMP_CONST) - ZEND_ROPE_ADD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_END_SPEC_TMP_CONST): - VM_TRACE(ZEND_ROPE_END_SPEC_TMP_CONST) - ZEND_ROPE_END_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST) - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_TMP_CONST): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_TMP_CONST) - ZEND_INIT_ARRAY_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_TMP_CONST): - VM_TRACE(ZEND_YIELD_SPEC_TMP_CONST) - ZEND_YIELD_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IN_ARRAY_SPEC_TMP_CONST): - VM_TRACE(ZEND_IN_ARRAY_SPEC_TMP_CONST) - ZEND_IN_ARRAY_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_ADD_SPEC_TMP_TMPVAR): - VM_TRACE(ZEND_ROPE_ADD_SPEC_TMP_TMPVAR) - ZEND_ROPE_ADD_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_END_SPEC_TMP_TMPVAR): - VM_TRACE(ZEND_ROPE_END_SPEC_TMP_TMPVAR) - ZEND_ROPE_END_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR) - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR) - ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_TMP_TMP): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_TMP_TMP) - ZEND_IS_IDENTICAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP) - ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_TMP_TMP): - VM_TRACE(ZEND_YIELD_SPEC_TMP_TMP) - ZEND_YIELD_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_TMP_VAR): - VM_TRACE(ZEND_YIELD_SPEC_TMP_VAR) - ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UNUSED) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED): - VM_TRACE(ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED) - ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED) - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_TMP_UNUSED): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_TMP_UNUSED) - ZEND_INIT_ARRAY_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_TMP_UNUSED): - VM_TRACE(ZEND_YIELD_SPEC_TMP_UNUSED) - ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_TYPE_SPEC_TMP_UNUSED): - VM_TRACE(ZEND_GET_TYPE_SPEC_TMP_UNUSED) - ZEND_GET_TYPE_SPEC_TMP_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_ADD_SPEC_TMP_CV): - VM_TRACE(ZEND_ROPE_ADD_SPEC_TMP_CV) - ZEND_ROPE_ADD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_END_SPEC_TMP_CV): - VM_TRACE(ZEND_ROPE_END_SPEC_TMP_CV) - ZEND_ROPE_END_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV) - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_TMP_CV): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_TMP_CV) - ZEND_INIT_ARRAY_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_TMP_CV): - VM_TRACE(ZEND_YIELD_SPEC_TMP_CV) - ZEND_YIELD_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BIND_LEXICAL_SPEC_TMP_CV): - VM_TRACE(ZEND_BIND_LEXICAL_SPEC_TMP_CV) - ZEND_BIND_LEXICAL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED) - ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_SPEC_VAR_RETVAL_USED): - VM_TRACE(ZEND_PRE_INC_SPEC_VAR_RETVAL_USED) - ZEND_PRE_INC_SPEC_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_SPEC_VAR_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_DEC_SPEC_VAR_RETVAL_UNUSED) - ZEND_PRE_DEC_SPEC_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_SPEC_VAR_RETVAL_USED): - VM_TRACE(ZEND_PRE_DEC_SPEC_VAR_RETVAL_USED) - ZEND_PRE_DEC_SPEC_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_SPEC_VAR): - VM_TRACE(ZEND_POST_INC_SPEC_VAR) - ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_DEC_SPEC_VAR): - VM_TRACE(ZEND_POST_DEC_SPEC_VAR) - ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_RETURN_SPEC_VAR): - VM_TRACE(ZEND_RETURN_SPEC_VAR) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = _get_zval_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC); - return_value = EX(return_value); - if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_VAR & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_VAR & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_VAR == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_VAR == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_VAR == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - goto zend_leave_helper_SPEC_LABEL; -} - - HYBRID_CASE(ZEND_RETURN_BY_REF_SPEC_VAR): - VM_TRACE(ZEND_RETURN_BY_REF_SPEC_VAR) - ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GENERATOR_RETURN_SPEC_VAR): - VM_TRACE(ZEND_GENERATOR_RETURN_SPEC_VAR) - ZEND_GENERATOR_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_THROW_SPEC_VAR): - VM_TRACE(ZEND_THROW_SPEC_VAR) - ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_SPEC_VAR): - VM_TRACE(ZEND_SEND_VAR_SPEC_VAR) - ZEND_SEND_VAR_SPEC_VAR_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_NO_REF_SPEC_VAR): - VM_TRACE(ZEND_SEND_VAR_NO_REF_SPEC_VAR) - ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR): - VM_TRACE(ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR) - ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK): - VM_TRACE(ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK) - ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_REF_SPEC_VAR): - VM_TRACE(ZEND_SEND_REF_SPEC_VAR) - ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_EX_SPEC_VAR): - VM_TRACE(ZEND_SEND_VAR_EX_SPEC_VAR) - ZEND_SEND_VAR_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_EX_SPEC_VAR_QUICK): - VM_TRACE(ZEND_SEND_VAR_EX_SPEC_VAR_QUICK) - ZEND_SEND_VAR_EX_SPEC_VAR_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_FUNC_ARG_SPEC_VAR): - VM_TRACE(ZEND_SEND_FUNC_ARG_SPEC_VAR) - ZEND_SEND_FUNC_ARG_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_USER_SPEC_VAR): - VM_TRACE(ZEND_SEND_USER_SPEC_VAR) - ZEND_SEND_USER_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CAST_SPEC_VAR): - VM_TRACE(ZEND_CAST_SPEC_VAR) - ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_R_SPEC_VAR): - VM_TRACE(ZEND_FE_RESET_R_SPEC_VAR) - ZEND_FE_RESET_R_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_RW_SPEC_VAR): - VM_TRACE(ZEND_FE_RESET_RW_SPEC_VAR) - ZEND_FE_RESET_RW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_FETCH_R_SPEC_VAR): - VM_TRACE(ZEND_FE_FETCH_R_SPEC_VAR) - ZEND_FE_FETCH_R_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_FETCH_RW_SPEC_VAR): - VM_TRACE(ZEND_FE_FETCH_RW_SPEC_VAR) - ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMP_SET_SPEC_VAR): - VM_TRACE(ZEND_JMP_SET_SPEC_VAR) - ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COALESCE_SPEC_VAR): - VM_TRACE(ZEND_COALESCE_SPEC_VAR) - ZEND_COALESCE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_SPEC_VAR): - VM_TRACE(ZEND_QM_ASSIGN_SPEC_VAR) - ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_FROM_SPEC_VAR): - VM_TRACE(ZEND_YIELD_FROM_SPEC_VAR) - ZEND_YIELD_FROM_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_SIMPLE_SPEC_VAR): - VM_TRACE(ZEND_SEND_VAR_SIMPLE_SPEC_VAR) - ZEND_SEND_VAR_SIMPLE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR): - VM_TRACE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR) - ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_VAR_CONST): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_VAR_CONST) - ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST) - ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST) - ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST) - ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OP_SPEC_VAR_CONST): - VM_TRACE(ZEND_ASSIGN_OP_SPEC_VAR_CONST) - ZEND_ASSIGN_OP_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_VAR_CONST): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_VAR_CONST) - ZEND_PRE_INC_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_VAR_CONST): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_VAR_CONST) - ZEND_POST_INC_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_VAR_CONST) - ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_VAR_CONST) - ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST) - ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_VAR_CONST) - ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST) - ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST) - ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_W_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_LIST_W_SPEC_VAR_CONST) - ZEND_FETCH_LIST_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_USED) - ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_CONST): - VM_TRACE(ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_CONST) - ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST) - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_VAR_CONST): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_VAR_CONST) - ZEND_INIT_ARRAY_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_DIM_SPEC_VAR_CONST): - VM_TRACE(ZEND_UNSET_DIM_SPEC_VAR_CONST) - ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_VAR_CONST): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_VAR_CONST) - ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_VAR_CONST): - VM_TRACE(ZEND_YIELD_SPEC_VAR_CONST) - ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IN_ARRAY_SPEC_VAR_CONST): - VM_TRACE(ZEND_IN_ARRAY_SPEC_VAR_CONST) - ZEND_IN_ARRAY_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR) - ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR) - ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR) - ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR) - ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR) - ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR) - ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR) - ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR) - ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR) - ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR) - ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR) - ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR) - ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR) - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR) - ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_DIM_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_UNSET_DIM_SPEC_VAR_TMPVAR) - ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR) - ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_VAR_TMP): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_VAR_TMP) - ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP) - ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_USED) - ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_VAR_TMP): - VM_TRACE(ZEND_YIELD_SPEC_VAR_TMP) - ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_VAR_VAR): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_VAR_VAR) - ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR) - ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_USED) - ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_REF_SPEC_VAR_VAR): - VM_TRACE(ZEND_ASSIGN_REF_SPEC_VAR_VAR) - ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_VAR_VAR): - VM_TRACE(ZEND_YIELD_SPEC_VAR_VAR) - ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED) - ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED) - ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED) - ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED) - ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_NEW_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_NEW_SPEC_VAR_UNUSED) - ZEND_NEW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED) - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_VAR_UNUSED) - ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEPARATE_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_SEPARATE_SPEC_VAR_UNUSED) - ZEND_SEPARATE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_YIELD_SPEC_VAR_UNUSED) - ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MAKE_REF_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_MAKE_REF_SPEC_VAR_UNUSED) - ZEND_MAKE_REF_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_TYPE_SPEC_VAR_UNUSED): - VM_TRACE(ZEND_GET_TYPE_SPEC_VAR_UNUSED) - ZEND_GET_TYPE_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV) - ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV) - ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OP_SPEC_VAR_CV): - VM_TRACE(ZEND_ASSIGN_OP_SPEC_VAR_CV) - ZEND_ASSIGN_OP_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_VAR_CV): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_VAR_CV) - ZEND_PRE_INC_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_VAR_CV): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_VAR_CV) - ZEND_POST_INC_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_VAR_CV) - ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_VAR_CV) - ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV) - ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_VAR_CV) - ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_VAR_CV) - ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV) - ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_LIST_W_SPEC_VAR_CV): - VM_TRACE(ZEND_FETCH_LIST_W_SPEC_VAR_CV) - ZEND_FETCH_LIST_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_USED) - ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_REF_SPEC_VAR_CV): - VM_TRACE(ZEND_ASSIGN_REF_SPEC_VAR_CV) - ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV) - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_VAR_CV): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_VAR_CV) - ZEND_INIT_ARRAY_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_DIM_SPEC_VAR_CV): - VM_TRACE(ZEND_UNSET_DIM_SPEC_VAR_CV) - ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_VAR_CV): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_VAR_CV) - ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_VAR_CV): - VM_TRACE(ZEND_YIELD_SPEC_VAR_CV) - ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED) - ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED): - VM_TRACE(ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED) - ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CHECK_FUNC_ARG_SPEC_UNUSED): - VM_TRACE(ZEND_CHECK_FUNC_ARG_SPEC_UNUSED) - ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_QUICK): - VM_TRACE(ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_QUICK) - ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CLONE_SPEC_UNUSED): - VM_TRACE(ZEND_CLONE_SPEC_UNUSED) - ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_NAME_SPEC_UNUSED): - VM_TRACE(ZEND_FETCH_CLASS_NAME_SPEC_UNUSED) - ZEND_FETCH_CLASS_NAME_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST) - ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST) - ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST) - ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST) - ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST) - ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST) - ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST) - ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST) - ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_INIT_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_ROPE_INIT_SPEC_UNUSED_CONST) - ZEND_ROPE_INIT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_CLASS_SPEC_UNUSED_CONST) - ZEND_FETCH_CLASS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST) - ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CONST) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST) - ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST) - ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_UNUSED_CONST) - ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_UNUSED_CONST) - ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_UNUSED_CONST): - VM_TRACE(ZEND_YIELD_SPEC_UNUSED_CONST) - ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR) - ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR) - ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR) - ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR) - ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR) - ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR) - ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR) - ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR) - ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR) - ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR) - ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR) - ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR) - ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR) - ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_UNUSED_TMP): - VM_TRACE(ZEND_YIELD_SPEC_UNUSED_TMP) - ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_UNUSED_VAR): - VM_TRACE(ZEND_YIELD_SPEC_UNUSED_VAR) - ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_FETCH_CLASS_SPEC_UNUSED_UNUSED) - ZEND_FETCH_CLASS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_UNUSED) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED) - ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_NEW_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_NEW_SPEC_UNUSED_UNUSED) - ZEND_NEW_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED) - ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_YIELD_SPEC_UNUSED_UNUSED) - ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_THIS_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_FETCH_THIS_SPEC_UNUSED_UNUSED) - ZEND_FETCH_THIS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_THIS_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_ISSET_ISEMPTY_THIS_SPEC_UNUSED_UNUSED) - ZEND_ISSET_ISEMPTY_THIS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_CLASS_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_GET_CLASS_SPEC_UNUSED_UNUSED) - ZEND_GET_CLASS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_CALLED_CLASS_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_GET_CALLED_CLASS_SPEC_UNUSED_UNUSED) - ZEND_GET_CALLED_CLASS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FUNC_NUM_ARGS_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_FUNC_NUM_ARGS_SPEC_UNUSED_UNUSED) - ZEND_FUNC_NUM_ARGS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FUNC_GET_ARGS_SPEC_UNUSED_UNUSED): - VM_TRACE(ZEND_FUNC_GET_ARGS_SPEC_UNUSED_UNUSED) - ZEND_FUNC_GET_ARGS_SPEC_UNUSED_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV) - ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV) - ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_UNUSED_CV): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_UNUSED_CV) - ZEND_POST_INC_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV) - ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV) - ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV) - ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV) - ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV) - ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ROPE_INIT_SPEC_UNUSED_CV): - VM_TRACE(ZEND_ROPE_INIT_SPEC_UNUSED_CV) - ZEND_ROPE_INIT_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_CLASS_SPEC_UNUSED_CV): - VM_TRACE(ZEND_FETCH_CLASS_SPEC_UNUSED_CV) - ZEND_FETCH_CLASS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV) - ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV): - VM_TRACE(ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV) - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_UNUSED_CV): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_UNUSED_CV) - ZEND_INIT_ARRAY_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_UNUSED_CV): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_UNUSED_CV) - ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_UNUSED_CV): - VM_TRACE(ZEND_YIELD_SPEC_UNUSED_CV) - ZEND_YIELD_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BW_NOT_SPEC_CV): - VM_TRACE(ZEND_BW_NOT_SPEC_CV) - ZEND_BW_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_NOT_SPEC_CV): - VM_TRACE(ZEND_BOOL_NOT_SPEC_CV) - ZEND_BOOL_NOT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_SPEC_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_INC_SPEC_CV_RETVAL_UNUSED) - ZEND_PRE_INC_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_SPEC_CV_RETVAL_USED): - VM_TRACE(ZEND_PRE_INC_SPEC_CV_RETVAL_USED) - ZEND_PRE_INC_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_SPEC_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_DEC_SPEC_CV_RETVAL_UNUSED) - ZEND_PRE_DEC_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_SPEC_CV_RETVAL_USED): - VM_TRACE(ZEND_PRE_DEC_SPEC_CV_RETVAL_USED) - ZEND_PRE_DEC_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_SPEC_CV): - VM_TRACE(ZEND_POST_INC_SPEC_CV) - ZEND_POST_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_DEC_SPEC_CV): - VM_TRACE(ZEND_POST_DEC_SPEC_CV) - ZEND_POST_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ECHO_SPEC_CV): - VM_TRACE(ZEND_ECHO_SPEC_CV) - ZEND_ECHO_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZ_SPEC_CV): - VM_TRACE(ZEND_JMPZ_SPEC_CV) - ZEND_JMPZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPNZ_SPEC_CV): - VM_TRACE(ZEND_JMPNZ_SPEC_CV) - ZEND_JMPNZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZNZ_SPEC_CV): - VM_TRACE(ZEND_JMPZNZ_SPEC_CV) - ZEND_JMPZNZ_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPZ_EX_SPEC_CV): - VM_TRACE(ZEND_JMPZ_EX_SPEC_CV) - ZEND_JMPZ_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMPNZ_EX_SPEC_CV): - VM_TRACE(ZEND_JMPNZ_EX_SPEC_CV) - ZEND_JMPNZ_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_RETURN_SPEC_CV): - VM_TRACE(ZEND_RETURN_SPEC_CV) -{ - USE_OPLINE - zval *retval_ptr; - zval *return_value; - zend_free_op free_op1; - - retval_ptr = EX_VAR(opline->op1.var); - return_value = EX(return_value); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(retval_ptr) == IS_UNDEF)) { - SAVE_OPLINE(); - retval_ptr = ZVAL_UNDEFINED_OP1(); - if (return_value) { - ZVAL_NULL(return_value); - } - } else if (!return_value) { - if (IS_CV & (IS_VAR|IS_TMP_VAR)) { - if (Z_REFCOUNTED_P(free_op1) && !Z_DELREF_P(free_op1)) { - SAVE_OPLINE(); - rc_dtor_func(Z_COUNTED_P(free_op1)); - } - } - } else { - if ((IS_CV & (IS_CONST|IS_TMP_VAR))) { - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (IS_CV == IS_CONST) { - if (UNEXPECTED(Z_OPT_REFCOUNTED_P(return_value))) { - Z_ADDREF_P(return_value); - } - } - } else if (IS_CV == IS_CV) { - do { - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - if (EXPECTED(!Z_OPT_ISREF_P(retval_ptr))) { - if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (GC_MAY_LEAK(ref)) { - gc_possible_root(ref); - } - ZVAL_NULL(retval_ptr); - break; - } else { - Z_ADDREF_P(retval_ptr); - } - } else { - retval_ptr = Z_REFVAL_P(retval_ptr); - if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } - } - ZVAL_COPY_VALUE(return_value, retval_ptr); - } while (0); - } else /* if (IS_CV == IS_VAR) */ { - if (UNEXPECTED(Z_ISREF_P(retval_ptr))) { - zend_refcounted *ref = Z_COUNTED_P(retval_ptr); - - retval_ptr = Z_REFVAL_P(retval_ptr); - ZVAL_COPY_VALUE(return_value, retval_ptr); - if (UNEXPECTED(GC_DELREF(ref) == 0)) { - efree_size(ref, sizeof(zend_reference)); - } else if (Z_OPT_REFCOUNTED_P(retval_ptr)) { - Z_ADDREF_P(retval_ptr); - } - } else { - ZVAL_COPY_VALUE(return_value, retval_ptr); - } - } - } - goto zend_leave_helper_SPEC_LABEL; -} - - HYBRID_CASE(ZEND_RETURN_BY_REF_SPEC_CV): - VM_TRACE(ZEND_RETURN_BY_REF_SPEC_CV) - ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GENERATOR_RETURN_SPEC_CV): - VM_TRACE(ZEND_GENERATOR_RETURN_SPEC_CV) - ZEND_GENERATOR_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_THROW_SPEC_CV): - VM_TRACE(ZEND_THROW_SPEC_CV) - ZEND_THROW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_SPEC_CV): - VM_TRACE(ZEND_SEND_VAR_SPEC_CV) - ZEND_SEND_VAR_SPEC_CV_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_REF_SPEC_CV): - VM_TRACE(ZEND_SEND_REF_SPEC_CV) - ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_EX_SPEC_CV): - VM_TRACE(ZEND_SEND_VAR_EX_SPEC_CV) - ZEND_SEND_VAR_EX_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_EX_SPEC_CV_QUICK): - VM_TRACE(ZEND_SEND_VAR_EX_SPEC_CV_QUICK) - ZEND_SEND_VAR_EX_SPEC_CV_QUICK_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_USER_SPEC_CV): - VM_TRACE(ZEND_SEND_USER_SPEC_CV) - ZEND_SEND_USER_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_SPEC_CV): - VM_TRACE(ZEND_BOOL_SPEC_CV) - ZEND_BOOL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CLONE_SPEC_CV): - VM_TRACE(ZEND_CLONE_SPEC_CV) - ZEND_CLONE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CAST_SPEC_CV): - VM_TRACE(ZEND_CAST_SPEC_CV) - ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INCLUDE_OR_EVAL_SPEC_CV): - VM_TRACE(ZEND_INCLUDE_OR_EVAL_SPEC_CV) - ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_R_SPEC_CV): - VM_TRACE(ZEND_FE_RESET_R_SPEC_CV) - ZEND_FE_RESET_R_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FE_RESET_RW_SPEC_CV): - VM_TRACE(ZEND_FE_RESET_RW_SPEC_CV) - ZEND_FE_RESET_RW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_JMP_SET_SPEC_CV): - VM_TRACE(ZEND_JMP_SET_SPEC_CV) - ZEND_JMP_SET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COALESCE_SPEC_CV): - VM_TRACE(ZEND_COALESCE_SPEC_CV) - ZEND_COALESCE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_QM_ASSIGN_SPEC_CV): - VM_TRACE(ZEND_QM_ASSIGN_SPEC_CV) - ZEND_QM_ASSIGN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_FROM_SPEC_CV): - VM_TRACE(ZEND_YIELD_FROM_SPEC_CV) - ZEND_YIELD_FROM_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_STRLEN_SPEC_CV): - VM_TRACE(ZEND_STRLEN_SPEC_CV) - ZEND_STRLEN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_TYPE_CHECK_SPEC_CV): - VM_TRACE(ZEND_TYPE_CHECK_SPEC_CV) - ZEND_TYPE_CHECK_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED) - ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED): - VM_TRACE(ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED) - ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_UNUSED) - ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_USED): - VM_TRACE(ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_USED) - ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED) - ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED): - VM_TRACE(ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED) - ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_UNUSED) - ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_USED): - VM_TRACE(ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_USED) - ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_CV): - VM_TRACE(ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_CV) - ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_LONG_SPEC_CV): - VM_TRACE(ZEND_POST_INC_LONG_SPEC_CV) - ZEND_POST_INC_LONG_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_CV): - VM_TRACE(ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_CV) - ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_DEC_LONG_SPEC_CV): - VM_TRACE(ZEND_POST_DEC_LONG_SPEC_CV) - ZEND_POST_DEC_LONG_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_SIMPLE_SPEC_CV): - VM_TRACE(ZEND_SEND_VAR_SIMPLE_SPEC_CV) - ZEND_SEND_VAR_SIMPLE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV): - VM_TRACE(ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV) - ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_CV_CONST): - VM_TRACE(ZEND_DIV_SPEC_CV_CONST) - ZEND_DIV_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_CV_CONST): - VM_TRACE(ZEND_POW_SPEC_CV_CONST) - ZEND_POW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_CV_CONST): - VM_TRACE(ZEND_CONCAT_SPEC_CV_CONST) - ZEND_CONCAT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_CV_CONST): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_CV_CONST) - ZEND_IS_IDENTICAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST) - ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_CONST): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_CONST) - ZEND_IS_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_CONST_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_CONST_JMPZ) - ZEND_IS_EQUAL_SPEC_CV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_CONST_JMPNZ) - ZEND_IS_EQUAL_SPEC_CV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_CONST): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CONST) - ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPZ) - ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPNZ) - ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_CV_CONST): - VM_TRACE(ZEND_SPACESHIP_SPEC_CV_CONST) - ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_XOR_SPEC_CV_CONST): - VM_TRACE(ZEND_BOOL_XOR_SPEC_CV_CONST) - ZEND_BOOL_XOR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST) - ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST) - ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OP_SPEC_CV_CONST): - VM_TRACE(ZEND_ASSIGN_OP_SPEC_CV_CONST) - ZEND_ASSIGN_OP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_CV_CONST): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_CV_CONST) - ZEND_PRE_INC_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_CV_CONST): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_CV_CONST) - ZEND_POST_INC_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_CV_CONST) - ZEND_FETCH_DIM_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_CV_CONST) - ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_CV_CONST) - ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_CV_CONST) - ZEND_FETCH_DIM_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST) - ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_CV_CONST) - ZEND_FETCH_OBJ_R_SPEC_CV_CONST_INLINE_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_CV_CONST) - ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_CV_CONST) - ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_CV_CONST) - ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST) - ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_USED) - ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_CV_CONST): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_CV_CONST) - ZEND_FAST_CONCAT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_CV_CONST): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_CV_CONST) - ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CV_CONST): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CV_CONST) - ZEND_INIT_ARRAY_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_DIM_SPEC_CV_CONST): - VM_TRACE(ZEND_UNSET_DIM_SPEC_CV_CONST) - ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_CV_CONST): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_CV_CONST) - ZEND_UNSET_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CONST): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CONST) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CONST): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CONST) - ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INSTANCEOF_SPEC_CV_CONST): - VM_TRACE(ZEND_INSTANCEOF_SPEC_CV_CONST) - ZEND_INSTANCEOF_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CV_CONST): - VM_TRACE(ZEND_YIELD_SPEC_CV_CONST) - ZEND_YIELD_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BIND_GLOBAL_SPEC_CV_CONST): - VM_TRACE(ZEND_BIND_GLOBAL_SPEC_CV_CONST) - ZEND_BIND_GLOBAL_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IN_ARRAY_SPEC_CV_CONST): - VM_TRACE(ZEND_IN_ARRAY_SPEC_CV_CONST) - ZEND_IN_ARRAY_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST): - VM_TRACE(ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST) - ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV): - VM_TRACE(ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) - ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_DIV_SPEC_CV_TMPVAR) - ZEND_DIV_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_POW_SPEC_CV_TMPVAR) - ZEND_POW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_CONCAT_SPEC_CV_TMPVAR) - ZEND_CONCAT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_TMPVAR) - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ) - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ) - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR) - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ) - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ) - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_SPACESHIP_SPEC_CV_TMPVAR) - ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_XOR_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_BOOL_XOR_SPEC_CV_TMPVAR) - ZEND_BOOL_XOR_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR) - ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR) - ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OP_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_ASSIGN_OP_SPEC_CV_TMPVAR) - ZEND_ASSIGN_OP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR) - ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR) - ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR) - ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR) - ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR) - ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR) - ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR) - ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR) - ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR) - ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR) - ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR) - ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR) - ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_CV_TMPVAR) - ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR) - ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CV_TMPVAR) - ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_DIM_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_UNSET_DIM_SPEC_CV_TMPVAR) - ZEND_UNSET_DIM_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_CV_TMPVAR) - ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR) - ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_CV_TMP): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_CV_TMP) - ZEND_IS_IDENTICAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP) - ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_USED) - ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CV_TMP): - VM_TRACE(ZEND_YIELD_SPEC_CV_TMP) - ZEND_YIELD_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_CV_VAR): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_CV_VAR) - ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR) - ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_USED) - ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_REF_SPEC_CV_VAR): - VM_TRACE(ZEND_ASSIGN_REF_SPEC_CV_VAR) - ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INSTANCEOF_SPEC_CV_VAR): - VM_TRACE(ZEND_INSTANCEOF_SPEC_CV_VAR) - ZEND_INSTANCEOF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CV_VAR): - VM_TRACE(ZEND_YIELD_SPEC_CV_VAR) - ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED) - ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_R_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_R_SPEC_CV_UNUSED) - ZEND_FETCH_R_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_W_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_W_SPEC_CV_UNUSED) - ZEND_FETCH_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_RW_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_RW_SPEC_CV_UNUSED) - ZEND_FETCH_RW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED) - ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_UNSET_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_UNSET_SPEC_CV_UNUSED) - ZEND_FETCH_UNSET_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_IS_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_IS_SPEC_CV_UNUSED) - ZEND_FETCH_IS_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_CV_UNUSED) - ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED) - ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED): - VM_TRACE(ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED) - ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CV_UNUSED): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CV_UNUSED) - ZEND_INIT_ARRAY_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_CV_SPEC_CV_UNUSED): - VM_TRACE(ZEND_UNSET_CV_SPEC_CV_UNUSED) - ZEND_UNSET_CV_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_VAR_SPEC_CV_UNUSED): - VM_TRACE(ZEND_UNSET_VAR_SPEC_CV_UNUSED) - ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_SET): - VM_TRACE(ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_SET) - ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_SET_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_EMPTY): - VM_TRACE(ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_EMPTY) - ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_EMPTY_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED): - VM_TRACE(ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED) - ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INSTANCEOF_SPEC_CV_UNUSED): - VM_TRACE(ZEND_INSTANCEOF_SPEC_CV_UNUSED) - ZEND_INSTANCEOF_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CV_UNUSED): - VM_TRACE(ZEND_YIELD_SPEC_CV_UNUSED) - ZEND_YIELD_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BIND_STATIC_SPEC_CV_UNUSED): - VM_TRACE(ZEND_BIND_STATIC_SPEC_CV_UNUSED) - ZEND_BIND_STATIC_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CHECK_VAR_SPEC_CV_UNUSED): - VM_TRACE(ZEND_CHECK_VAR_SPEC_CV_UNUSED) - ZEND_CHECK_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_MAKE_REF_SPEC_CV_UNUSED): - VM_TRACE(ZEND_MAKE_REF_SPEC_CV_UNUSED) - ZEND_MAKE_REF_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_COUNT_SPEC_CV_UNUSED): - VM_TRACE(ZEND_COUNT_SPEC_CV_UNUSED) - ZEND_COUNT_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_CLASS_SPEC_CV_UNUSED): - VM_TRACE(ZEND_GET_CLASS_SPEC_CV_UNUSED) - ZEND_GET_CLASS_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_GET_TYPE_SPEC_CV_UNUSED): - VM_TRACE(ZEND_GET_TYPE_SPEC_CV_UNUSED) - ZEND_GET_TYPE_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_DIV_SPEC_CV_CV): - VM_TRACE(ZEND_DIV_SPEC_CV_CV) - ZEND_DIV_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POW_SPEC_CV_CV): - VM_TRACE(ZEND_POW_SPEC_CV_CV) - ZEND_POW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_CONCAT_SPEC_CV_CV): - VM_TRACE(ZEND_CONCAT_SPEC_CV_CV) - ZEND_CONCAT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_IDENTICAL_SPEC_CV_CV): - VM_TRACE(ZEND_IS_IDENTICAL_SPEC_CV_CV) - ZEND_IS_IDENTICAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV): - VM_TRACE(ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV) - ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_CV): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_CV) - ZEND_IS_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_CV_JMPZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_CV_JMPZ) - ZEND_IS_EQUAL_SPEC_CV_CV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_EQUAL_SPEC_CV_CV_JMPNZ): - VM_TRACE(ZEND_IS_EQUAL_SPEC_CV_CV_JMPNZ) - ZEND_IS_EQUAL_SPEC_CV_CV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_CV): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CV) - ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPZ) - ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPNZ): - VM_TRACE(ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPNZ) - ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPNZ_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_SPACESHIP_SPEC_CV_CV): - VM_TRACE(ZEND_SPACESHIP_SPEC_CV_CV) - ZEND_SPACESHIP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_BOOL_XOR_SPEC_CV_CV): - VM_TRACE(ZEND_BOOL_XOR_SPEC_CV_CV) - ZEND_BOOL_XOR_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV) - ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_OP_SPEC_CV_CV): - VM_TRACE(ZEND_ASSIGN_DIM_OP_SPEC_CV_CV) - ZEND_ASSIGN_DIM_OP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OP_SPEC_CV_CV): - VM_TRACE(ZEND_ASSIGN_OP_SPEC_CV_CV) - ZEND_ASSIGN_OP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_PRE_INC_OBJ_SPEC_CV_CV): - VM_TRACE(ZEND_PRE_INC_OBJ_SPEC_CV_CV) - ZEND_PRE_INC_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_POST_INC_OBJ_SPEC_CV_CV): - VM_TRACE(ZEND_POST_INC_OBJ_SPEC_CV_CV) - ZEND_POST_INC_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_R_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_DIM_R_SPEC_CV_CV) - ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_W_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_DIM_W_SPEC_CV_CV) - ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_RW_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_DIM_RW_SPEC_CV_CV) - ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_IS_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_DIM_IS_SPEC_CV_CV) - ZEND_FETCH_DIM_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV) - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_DIM_UNSET_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_DIM_UNSET_SPEC_CV_CV) - ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_R_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_OBJ_R_SPEC_CV_CV) - ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_W_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_OBJ_W_SPEC_CV_CV) - ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_RW_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_OBJ_RW_SPEC_CV_CV) - ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_IS_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_OBJ_IS_SPEC_CV_CV) - ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV) - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV): - VM_TRACE(ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV) - ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CONST) - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_TMP) - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CV) - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CONST): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CONST) - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP) - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR) - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV) - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_CV_RETVAL_UNUSED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_CV_RETVAL_UNUSED) - ZEND_ASSIGN_SPEC_CV_CV_RETVAL_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_SPEC_CV_CV_RETVAL_USED): - VM_TRACE(ZEND_ASSIGN_SPEC_CV_CV_RETVAL_USED) - ZEND_ASSIGN_SPEC_CV_CV_RETVAL_USED_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_REF_SPEC_CV_CV): - VM_TRACE(ZEND_ASSIGN_REF_SPEC_CV_CV) - ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_VAR): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_VAR) - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_CV): - VM_TRACE(ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_CV) - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_FAST_CONCAT_SPEC_CV_CV): - VM_TRACE(ZEND_FAST_CONCAT_SPEC_CV_CV) - ZEND_FAST_CONCAT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_METHOD_CALL_SPEC_CV_CV): - VM_TRACE(ZEND_INIT_METHOD_CALL_SPEC_CV_CV) - ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV): - VM_TRACE(ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV) - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_INIT_ARRAY_SPEC_CV_CV): - VM_TRACE(ZEND_INIT_ARRAY_SPEC_CV_CV) - ZEND_INIT_ARRAY_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_DIM_SPEC_CV_CV): - VM_TRACE(ZEND_UNSET_DIM_SPEC_CV_CV) - ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_UNSET_OBJ_SPEC_CV_CV): - VM_TRACE(ZEND_UNSET_OBJ_SPEC_CV_CV) - ZEND_UNSET_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV): - VM_TRACE(ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV) - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV): - VM_TRACE(ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV) - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CV): - VM_TRACE(ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CV) - ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(ZEND_YIELD_SPEC_CV_CV): - VM_TRACE(ZEND_YIELD_SPEC_CV_CV) - ZEND_YIELD_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); - HYBRID_CASE(HYBRID_HALT): -#ifdef ZEND_VM_FP_GLOBAL_REG - execute_data = orig_execute_data; -#endif -#ifdef ZEND_VM_IP_GLOBAL_REG - opline = orig_opline; -#endif - return; - HYBRID_DEFAULT: - VM_TRACE(ZEND_NULL) - ZEND_NULL_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - HYBRID_BREAK(); /* Never reached */ -#else -#ifdef ZEND_VM_FP_GLOBAL_REG - execute_data = orig_execute_data; -# ifdef ZEND_VM_IP_GLOBAL_REG - opline = orig_opline; -# endif - return; -#else - if (EXPECTED(ret > 0)) { - execute_data = EG(current_execute_data); - ZEND_VM_LOOP_INTERRUPT_CHECK(); - } else { -# ifdef ZEND_VM_IP_GLOBAL_REG - opline = orig_opline; -# endif - return; - } -#endif -#endif - } - - } - zend_error_noreturn(E_CORE_ERROR, "Arrived at end of main loop which shouldn't happen"); -} -#if (ZEND_VM_KIND != ZEND_VM_KIND_CALL) && (ZEND_GCC_VERSION >= 4000) && !defined(__clang__) -# pragma GCC pop_options -#endif - -ZEND_API void zend_execute(zend_op_array *op_array, zval *return_value) -{ - zend_execute_data *execute_data; - void *object_or_called_scope; - uint32_t call_info; - - if (EG(exception) != NULL) { - return; - } - - object_or_called_scope = zend_get_this_object(EG(current_execute_data)); - if (EXPECTED(!object_or_called_scope)) { - object_or_called_scope = zend_get_called_scope(EG(current_execute_data)); - call_info = ZEND_CALL_TOP_CODE | ZEND_CALL_HAS_SYMBOL_TABLE; - } else { - call_info = ZEND_CALL_TOP_CODE | ZEND_CALL_HAS_SYMBOL_TABLE | ZEND_CALL_HAS_THIS; - } - execute_data = zend_vm_stack_push_call_frame(call_info, - (zend_function*)op_array, 0, object_or_called_scope); - if (EG(current_execute_data)) { - execute_data->symbol_table = zend_rebuild_symbol_table(); - } else { - execute_data->symbol_table = &EG(symbol_table); - } - EX(prev_execute_data) = EG(current_execute_data); - i_init_code_execute_data(execute_data, op_array, return_value); - zend_execute_ex(execute_data); - zend_vm_stack_free_call_frame(execute_data); -} - - -void zend_vm_init(void) -{ - static const void * const labels[] = { - ZEND_NOP_SPEC_HANDLER, - ZEND_ADD_SPEC_CONST_CONST_HANDLER, - ZEND_ADD_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_ADD_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_SPEC_CONST_CONST_HANDLER, - ZEND_SUB_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_DIV_SPEC_CONST_CONST_HANDLER, - ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER, - ZEND_DIV_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_DIV_SPEC_CONST_CV_HANDLER, - ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER, - ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_DIV_SPEC_TMPVAR_CV_HANDLER, - ZEND_DIV_SPEC_TMPVAR_CONST_HANDLER, - ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_DIV_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_DIV_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_DIV_SPEC_CV_CONST_HANDLER, - ZEND_DIV_SPEC_CV_TMPVAR_HANDLER, - ZEND_DIV_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_DIV_SPEC_CV_CV_HANDLER, - ZEND_MOD_SPEC_CONST_CONST_HANDLER, - ZEND_MOD_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_MOD_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MOD_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MOD_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SL_SPEC_CONST_CONST_HANDLER, - ZEND_SL_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SL_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SL_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SR_SPEC_CONST_CONST_HANDLER, - ZEND_SR_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SR_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SR_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CONCAT_SPEC_CONST_TMPVAR_HANDLER, - ZEND_CONCAT_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CONCAT_SPEC_CONST_CV_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_CV_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CONCAT_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CONCAT_SPEC_CV_CONST_HANDLER, - ZEND_CONCAT_SPEC_CV_TMPVAR_HANDLER, - ZEND_CONCAT_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CONCAT_SPEC_CV_CV_HANDLER, - ZEND_BW_OR_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_AND_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_XOR_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_POW_SPEC_CONST_CONST_HANDLER, - ZEND_POW_SPEC_CONST_TMPVAR_HANDLER, - ZEND_POW_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POW_SPEC_CONST_CV_HANDLER, - ZEND_POW_SPEC_TMPVAR_CONST_HANDLER, - ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POW_SPEC_TMPVAR_CV_HANDLER, - ZEND_POW_SPEC_TMPVAR_CONST_HANDLER, - ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_POW_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POW_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POW_SPEC_CV_CONST_HANDLER, - ZEND_POW_SPEC_CV_TMPVAR_HANDLER, - ZEND_POW_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POW_SPEC_CV_CV_HANDLER, - ZEND_BW_NOT_SPEC_CONST_HANDLER, - ZEND_BW_NOT_SPEC_TMPVAR_HANDLER, - ZEND_BW_NOT_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BW_NOT_SPEC_CV_HANDLER, - ZEND_BOOL_NOT_SPEC_CONST_HANDLER, - ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER, - ZEND_BOOL_NOT_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BOOL_NOT_SPEC_CV_HANDLER, - ZEND_BOOL_XOR_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_HANDLER, - ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BOOL_XOR_SPEC_TMPVAR_CONST_HANDLER, - ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BOOL_XOR_SPEC_CV_CONST_HANDLER, - ZEND_BOOL_XOR_SPEC_CV_TMPVAR_HANDLER, - ZEND_BOOL_XOR_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BOOL_XOR_SPEC_CV_CV_HANDLER, - ZEND_IS_IDENTICAL_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_IDENTICAL_SPEC_TMP_CONST_HANDLER, - ZEND_IS_IDENTICAL_SPEC_TMP_TMP_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER, - ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HANDLER, - ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_IDENTICAL_SPEC_CV_CONST_HANDLER, - ZEND_IS_IDENTICAL_SPEC_CV_TMP_HANDLER, - ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_IDENTICAL_SPEC_CV_CV_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV_HANDLER, - ZEND_IS_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_CONST_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_CV_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_CV_JMPZ_HANDLER, - ZEND_IS_EQUAL_SPEC_CV_CV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_CV_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_USED_HANDLER, - ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_USED_HANDLER, - ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_USED_HANDLER, - ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_USED_HANDLER, - ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_SPEC_CV_CV_RETVAL_UNUSED_HANDLER, - ZEND_ASSIGN_SPEC_CV_CV_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CONST_HANDLER, - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_TMP_HANDLER, - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OP_SPEC_VAR_CONST_HANDLER, - ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR_HANDLER, - ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OP_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OP_SPEC_CV_CONST_HANDLER, - ZEND_ASSIGN_OP_SPEC_CV_TMPVAR_HANDLER, - ZEND_ASSIGN_OP_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OP_SPEC_CV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED_HANDLER, - ZEND_ASSIGN_DIM_OP_SPEC_CV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV_HANDLER, - ZEND_ASSIGN_STATIC_PROP_OP_SPEC_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_REF_SPEC_CV_CV_HANDLER, - ZEND_QM_ASSIGN_SPEC_CONST_HANDLER, - ZEND_QM_ASSIGN_SPEC_TMP_HANDLER, - ZEND_QM_ASSIGN_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_QM_ASSIGN_SPEC_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_CV_HANDLER, - ZEND_ASSIGN_STATIC_PROP_REF_SPEC_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED_HANDLER, - ZEND_PRE_INC_SPEC_VAR_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_INC_SPEC_CV_RETVAL_UNUSED_HANDLER, - ZEND_PRE_INC_SPEC_CV_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_DEC_SPEC_VAR_RETVAL_UNUSED_HANDLER, - ZEND_PRE_DEC_SPEC_VAR_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_DEC_SPEC_CV_RETVAL_UNUSED_HANDLER, - ZEND_PRE_DEC_SPEC_CV_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_INC_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_INC_SPEC_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_DEC_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_DEC_SPEC_CV_HANDLER, - ZEND_PRE_INC_STATIC_PROP_SPEC_HANDLER, - ZEND_POST_INC_STATIC_PROP_SPEC_HANDLER, - ZEND_JMP_SPEC_HANDLER, - ZEND_JMPZ_SPEC_CONST_HANDLER, - ZEND_JMPZ_SPEC_TMPVAR_HANDLER, - ZEND_JMPZ_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_JMPZ_SPEC_CV_HANDLER, - ZEND_JMPNZ_SPEC_CONST_HANDLER, - ZEND_JMPNZ_SPEC_TMPVAR_HANDLER, - ZEND_JMPNZ_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_JMPNZ_SPEC_CV_HANDLER, - ZEND_JMPZNZ_SPEC_CONST_HANDLER, - ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER, - ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_JMPZNZ_SPEC_CV_HANDLER, - ZEND_JMPZ_EX_SPEC_CONST_HANDLER, - ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER, - ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_JMPZ_EX_SPEC_CV_HANDLER, - ZEND_JMPNZ_EX_SPEC_CONST_HANDLER, - ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER, - ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_JMPNZ_EX_SPEC_CV_HANDLER, - ZEND_CASE_SPEC_TMPVAR_CONST_HANDLER, - ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CASE_SPEC_TMPVAR_CV_HANDLER, - ZEND_CHECK_VAR_SPEC_CV_UNUSED_HANDLER, - ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_HANDLER, - ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK_HANDLER, - ZEND_CAST_SPEC_CONST_HANDLER, - ZEND_CAST_SPEC_TMP_HANDLER, - ZEND_CAST_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_CAST_SPEC_CV_HANDLER, - ZEND_BOOL_SPEC_CONST_HANDLER, - ZEND_BOOL_SPEC_TMPVAR_HANDLER, - ZEND_BOOL_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BOOL_SPEC_CV_HANDLER, - ZEND_FAST_CONCAT_SPEC_CONST_CONST_HANDLER, - ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FAST_CONCAT_SPEC_CONST_CV_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FAST_CONCAT_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FAST_CONCAT_SPEC_CV_CONST_HANDLER, - ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_HANDLER, - ZEND_FAST_CONCAT_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FAST_CONCAT_SPEC_CV_CV_HANDLER, - ZEND_ROPE_INIT_SPEC_UNUSED_CONST_HANDLER, - ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ROPE_INIT_SPEC_UNUSED_CV_HANDLER, - ZEND_ROPE_ADD_SPEC_TMP_CONST_HANDLER, - ZEND_ROPE_ADD_SPEC_TMP_TMPVAR_HANDLER, - ZEND_ROPE_ADD_SPEC_TMP_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ROPE_ADD_SPEC_TMP_CV_HANDLER, - ZEND_ROPE_END_SPEC_TMP_CONST_HANDLER, - ZEND_ROPE_END_SPEC_TMP_TMPVAR_HANDLER, - ZEND_ROPE_END_SPEC_TMP_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ROPE_END_SPEC_TMP_CV_HANDLER, - ZEND_BEGIN_SILENCE_SPEC_HANDLER, - ZEND_END_SILENCE_SPEC_TMP_HANDLER, - ZEND_INIT_FCALL_BY_NAME_SPEC_CONST_HANDLER, - ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_HANDLER, - ZEND_DO_FCALL_SPEC_RETVAL_USED_HANDLER, - ZEND_INIT_FCALL_SPEC_CONST_HANDLER, - ZEND_RETURN_SPEC_CONST_HANDLER, - ZEND_RETURN_SPEC_TMP_HANDLER, - ZEND_RETURN_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_RETURN_SPEC_CV_HANDLER, - ZEND_RECV_SPEC_UNUSED_HANDLER, - ZEND_RECV_INIT_SPEC_CONST_HANDLER, - ZEND_SEND_VAL_SPEC_CONST_HANDLER, - ZEND_SEND_VAL_SPEC_TMPVAR_HANDLER, - ZEND_SEND_VAL_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_EX_SPEC_VAR_HANDLER, - ZEND_SEND_VAR_EX_SPEC_VAR_QUICK_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_EX_SPEC_CV_HANDLER, - ZEND_SEND_VAR_EX_SPEC_CV_QUICK_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_REF_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_REF_SPEC_CV_HANDLER, - ZEND_NEW_SPEC_CONST_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NEW_SPEC_VAR_UNUSED_HANDLER, - ZEND_NEW_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST_HANDLER, - ZEND_FREE_SPEC_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_CONST_CONST_HANDLER, - ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_CONST_UNUSED_HANDLER, - ZEND_INIT_ARRAY_SPEC_CONST_CV_HANDLER, - ZEND_INIT_ARRAY_SPEC_TMP_CONST_HANDLER, - ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_TMP_UNUSED_HANDLER, - ZEND_INIT_ARRAY_SPEC_TMP_CV_HANDLER, - ZEND_INIT_ARRAY_SPEC_VAR_CONST_HANDLER, - ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_VAR_UNUSED_HANDLER, - ZEND_INIT_ARRAY_SPEC_VAR_CV_HANDLER, - ZEND_INIT_ARRAY_SPEC_UNUSED_CONST_HANDLER, - ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_INIT_ARRAY_SPEC_UNUSED_CV_HANDLER, - ZEND_INIT_ARRAY_SPEC_CV_CONST_HANDLER, - ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_CV_TMPVAR_HANDLER, - ZEND_INIT_ARRAY_SPEC_CV_UNUSED_HANDLER, - ZEND_INIT_ARRAY_SPEC_CV_CV_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER, - ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER, - ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER, - ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HANDLER, - ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER, - ZEND_UNSET_VAR_SPEC_CONST_UNUSED_HANDLER, - ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_VAR_SPEC_CV_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER, - ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_HANDLER, - ZEND_UNSET_DIM_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER, - ZEND_UNSET_DIM_SPEC_CV_TMPVAR_HANDLER, - ZEND_UNSET_DIM_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER, - ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HANDLER, - ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER, - ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HANDLER, - ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDLER, - ZEND_UNSET_OBJ_SPEC_CV_CONST_HANDLER, - ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_UNSET_OBJ_SPEC_CV_CV_HANDLER, - ZEND_FE_RESET_R_SPEC_CONST_HANDLER, - ZEND_FE_RESET_R_SPEC_TMP_HANDLER, - ZEND_FE_RESET_R_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FE_RESET_R_SPEC_CV_HANDLER, - ZEND_FE_FETCH_R_SPEC_VAR_HANDLER, - ZEND_EXIT_SPEC_HANDLER, - ZEND_FETCH_R_SPEC_CONST_UNUSED_HANDLER, - ZEND_FETCH_R_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_FETCH_R_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_R_SPEC_CV_UNUSED_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CONST_CONST_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CONST_CV_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_SPEC_CV_CV_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER, - ZEND_FETCH_W_SPEC_CONST_UNUSED_HANDLER, - ZEND_FETCH_W_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_FETCH_W_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_W_SPEC_CV_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER, - ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HANDLER, - ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER, - ZEND_FETCH_RW_SPEC_CONST_UNUSED_HANDLER, - ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_RW_SPEC_CV_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HANDLER, - ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLER, - ZEND_FETCH_IS_SPEC_CONST_UNUSED_HANDLER, - ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_IS_SPEC_CV_UNUSED_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CONST_CONST_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CONST_CV_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_IS_SPEC_CV_CV_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER, - ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED_HANDLER, - ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_UNUSED_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CONST_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UNUSED_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_HANDLER, - ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_HANDLER, - ZEND_FETCH_UNSET_SPEC_CONST_UNUSED_HANDLER, - ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_UNSET_SPEC_CV_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER, - ZEND_FETCH_LIST_R_SPEC_CONST_CONST_HANDLER, - ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR_HANDLER, - ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_LIST_R_SPEC_CONST_CV_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV_HANDLER, - ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST_HANDLER, - ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_HANDLER, - ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_QUICK_HANDLER, - ZEND_EXT_STMT_SPEC_HANDLER, - ZEND_EXT_FCALL_BEGIN_SPEC_HANDLER, - ZEND_EXT_FCALL_END_SPEC_HANDLER, - ZEND_EXT_NOP_SPEC_HANDLER, - ZEND_TICKS_SPEC_HANDLER, - ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER, - ZEND_CATCH_SPEC_CONST_HANDLER, - ZEND_THROW_SPEC_CONST_HANDLER, - ZEND_THROW_SPEC_TMP_HANDLER, - ZEND_THROW_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_THROW_SPEC_CV_HANDLER, - ZEND_FETCH_CLASS_SPEC_UNUSED_CONST_HANDLER, - ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_FETCH_CLASS_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_FETCH_CLASS_SPEC_UNUSED_CV_HANDLER, - ZEND_CLONE_SPEC_CONST_HANDLER, - ZEND_CLONE_SPEC_TMPVAR_HANDLER, - ZEND_CLONE_SPEC_TMPVAR_HANDLER, - ZEND_CLONE_SPEC_UNUSED_HANDLER, - ZEND_CLONE_SPEC_CV_HANDLER, - ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER, - ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER, - ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_RETURN_BY_REF_SPEC_CV_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CONST_CV_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER, - ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV_HANDLER, - ZEND_SEND_VAL_EX_SPEC_CONST_HANDLER, - ZEND_SEND_VAL_EX_SPEC_CONST_QUICK_HANDLER, - ZEND_SEND_VAL_EX_SPEC_TMP_HANDLER, - ZEND_SEND_VAL_EX_SPEC_TMP_QUICK_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_SPEC_CV_HANDLER, - ZEND_INIT_USER_CALL_SPEC_CONST_CONST_HANDLER, - ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR_HANDLER, - ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_USER_CALL_SPEC_CONST_CV_HANDLER, - ZEND_SEND_ARRAY_SPEC_HANDLER, - ZEND_SEND_USER_SPEC_CONST_HANDLER, - ZEND_SEND_USER_SPEC_TMP_HANDLER, - ZEND_SEND_USER_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_USER_SPEC_CV_HANDLER, - ZEND_STRLEN_SPEC_CONST_HANDLER, - ZEND_STRLEN_SPEC_TMPVAR_HANDLER, - ZEND_STRLEN_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_STRLEN_SPEC_CV_HANDLER, - ZEND_DEFINED_SPEC_CONST_HANDLER, - ZEND_TYPE_CHECK_SPEC_CONST_HANDLER, - ZEND_TYPE_CHECK_SPEC_TMPVAR_HANDLER, - ZEND_TYPE_CHECK_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_TYPE_CHECK_SPEC_CV_HANDLER, - ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED_HANDLER, - ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED_HANDLER, - ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED_HANDLER, - ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED_HANDLER, - ZEND_FE_RESET_RW_SPEC_CONST_HANDLER, - ZEND_FE_RESET_RW_SPEC_TMP_HANDLER, - ZEND_FE_RESET_RW_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FE_RESET_RW_SPEC_CV_HANDLER, - ZEND_FE_FETCH_RW_SPEC_VAR_HANDLER, - ZEND_FE_FREE_SPEC_TMPVAR_HANDLER, - ZEND_INIT_DYNAMIC_CALL_SPEC_CONST_HANDLER, - ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_HANDLER, - ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INIT_DYNAMIC_CALL_SPEC_CV_HANDLER, - ZEND_DO_ICALL_SPEC_RETVAL_UNUSED_HANDLER, - ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER, - ZEND_DO_UCALL_SPEC_RETVAL_UNUSED_HANDLER, - ZEND_DO_UCALL_SPEC_RETVAL_USED_HANDLER, - ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED_HANDLER, - ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_VAR_CONST_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_VAR_CV_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_CV_CONST_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_PRE_INC_OBJ_SPEC_CV_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_INC_OBJ_SPEC_VAR_CONST_HANDLER, - ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER, - ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_INC_OBJ_SPEC_VAR_CV_HANDLER, - ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST_HANDLER, - ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_INC_OBJ_SPEC_UNUSED_CV_HANDLER, - ZEND_POST_INC_OBJ_SPEC_CV_CONST_HANDLER, - ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_POST_INC_OBJ_SPEC_CV_CV_HANDLER, - ZEND_ECHO_SPEC_CONST_HANDLER, - ZEND_ECHO_SPEC_TMPVAR_HANDLER, - ZEND_ECHO_SPEC_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ECHO_SPEC_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INSTANCEOF_SPEC_TMPVAR_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INSTANCEOF_SPEC_TMPVAR_VAR_HANDLER, - ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INSTANCEOF_SPEC_TMPVAR_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INSTANCEOF_SPEC_TMPVAR_VAR_HANDLER, - ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INSTANCEOF_SPEC_CV_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_INSTANCEOF_SPEC_CV_VAR_HANDLER, - ZEND_INSTANCEOF_SPEC_CV_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_GENERATOR_CREATE_SPEC_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MAKE_REF_SPEC_VAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MAKE_REF_SPEC_CV_UNUSED_HANDLER, - ZEND_DECLARE_FUNCTION_SPEC_HANDLER, - ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED_HANDLER, - ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER, - ZEND_DECLARE_CLASS_SPEC_CONST_HANDLER, - ZEND_DECLARE_CLASS_DELAYED_SPEC_CONST_CONST_HANDLER, - ZEND_DECLARE_ANON_CLASS_SPEC_HANDLER, - ZEND_ADD_ARRAY_UNPACK_SPEC_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV_HANDLER, - ZEND_HANDLE_EXCEPTION_SPEC_HANDLER, - ZEND_USER_OPCODE_SPEC_HANDLER, - ZEND_ASSERT_CHECK_SPEC_HANDLER, - ZEND_JMP_SET_SPEC_CONST_HANDLER, - ZEND_JMP_SET_SPEC_TMP_HANDLER, - ZEND_JMP_SET_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_JMP_SET_SPEC_CV_HANDLER, - ZEND_UNSET_CV_SPEC_CV_UNUSED_HANDLER, - ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_SET_HANDLER, - ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_EMPTY_HANDLER, - ZEND_FETCH_LIST_W_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR_HANDLER, - ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_LIST_W_SPEC_VAR_CV_HANDLER, - ZEND_SEPARATE_SPEC_VAR_UNUSED_HANDLER, - ZEND_FETCH_CLASS_NAME_SPEC_UNUSED_HANDLER, - ZEND_CALL_TRAMPOLINE_SPEC_HANDLER, - ZEND_DISCARD_EXCEPTION_SPEC_HANDLER, - ZEND_YIELD_SPEC_CONST_CONST_HANDLER, - ZEND_YIELD_SPEC_CONST_TMP_HANDLER, - ZEND_YIELD_SPEC_CONST_VAR_HANDLER, - ZEND_YIELD_SPEC_CONST_UNUSED_HANDLER, - ZEND_YIELD_SPEC_CONST_CV_HANDLER, - ZEND_YIELD_SPEC_TMP_CONST_HANDLER, - ZEND_YIELD_SPEC_TMP_TMP_HANDLER, - ZEND_YIELD_SPEC_TMP_VAR_HANDLER, - ZEND_YIELD_SPEC_TMP_UNUSED_HANDLER, - ZEND_YIELD_SPEC_TMP_CV_HANDLER, - ZEND_YIELD_SPEC_VAR_CONST_HANDLER, - ZEND_YIELD_SPEC_VAR_TMP_HANDLER, - ZEND_YIELD_SPEC_VAR_VAR_HANDLER, - ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER, - ZEND_YIELD_SPEC_VAR_CV_HANDLER, - ZEND_YIELD_SPEC_UNUSED_CONST_HANDLER, - ZEND_YIELD_SPEC_UNUSED_TMP_HANDLER, - ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER, - ZEND_YIELD_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_YIELD_SPEC_UNUSED_CV_HANDLER, - ZEND_YIELD_SPEC_CV_CONST_HANDLER, - ZEND_YIELD_SPEC_CV_TMP_HANDLER, - ZEND_YIELD_SPEC_CV_VAR_HANDLER, - ZEND_YIELD_SPEC_CV_UNUSED_HANDLER, - ZEND_YIELD_SPEC_CV_CV_HANDLER, - ZEND_GENERATOR_RETURN_SPEC_CONST_HANDLER, - ZEND_GENERATOR_RETURN_SPEC_TMP_HANDLER, - ZEND_GENERATOR_RETURN_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_GENERATOR_RETURN_SPEC_CV_HANDLER, - ZEND_FAST_CALL_SPEC_HANDLER, - ZEND_FAST_RET_SPEC_HANDLER, - ZEND_RECV_VARIADIC_SPEC_UNUSED_HANDLER, - ZEND_SEND_UNPACK_SPEC_HANDLER, - ZEND_YIELD_FROM_SPEC_CONST_HANDLER, - ZEND_YIELD_FROM_SPEC_TMP_HANDLER, - ZEND_YIELD_FROM_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_YIELD_FROM_SPEC_CV_HANDLER, - ZEND_COPY_TMP_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_BIND_GLOBAL_SPEC_CV_CONST_HANDLER, - ZEND_COALESCE_SPEC_CONST_HANDLER, - ZEND_COALESCE_SPEC_TMP_HANDLER, - ZEND_COALESCE_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_COALESCE_SPEC_CV_HANDLER, - ZEND_SPACESHIP_SPEC_CONST_CONST_HANDLER, - ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER, - ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER, - ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER, - ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SPACESHIP_SPEC_CV_CV_HANDLER, - ZEND_FUNC_NUM_ARGS_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_FUNC_GET_ARGS_SPEC_CONST_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FUNC_GET_ARGS_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_STATIC_PROP_R_SPEC_HANDLER, - ZEND_FETCH_STATIC_PROP_W_SPEC_HANDLER, - ZEND_FETCH_STATIC_PROP_RW_SPEC_HANDLER, - ZEND_FETCH_STATIC_PROP_IS_SPEC_HANDLER, - ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPEC_HANDLER, - ZEND_FETCH_STATIC_PROP_UNSET_SPEC_HANDLER, - ZEND_UNSET_STATIC_PROP_SPEC_HANDLER, - ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC_HANDLER, - ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_CONST_HANDLER, - ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_BIND_LEXICAL_SPEC_TMP_CV_HANDLER, - ZEND_BIND_STATIC_SPEC_CV_UNUSED_HANDLER, - ZEND_FETCH_THIS_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_SEND_FUNC_ARG_SPEC_VAR_HANDLER, - ZEND_ISSET_ISEMPTY_THIS_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_SWITCH_LONG_SPEC_CONST_CONST_HANDLER, - ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SWITCH_STRING_SPEC_CONST_CONST_HANDLER, - ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IN_ARRAY_SPEC_CONST_CONST_HANDLER, - ZEND_IN_ARRAY_SPEC_TMP_CONST_HANDLER, - ZEND_IN_ARRAY_SPEC_VAR_CONST_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IN_ARRAY_SPEC_CV_CONST_HANDLER, - ZEND_COUNT_SPEC_CONST_UNUSED_HANDLER, - ZEND_COUNT_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_COUNT_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_COUNT_SPEC_CV_UNUSED_HANDLER, - ZEND_GET_CLASS_SPEC_CONST_UNUSED_HANDLER, - ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED_HANDLER, - ZEND_GET_CLASS_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_GET_CLASS_SPEC_CV_UNUSED_HANDLER, - ZEND_GET_CALLED_CLASS_SPEC_UNUSED_UNUSED_HANDLER, - ZEND_GET_TYPE_SPEC_CONST_UNUSED_HANDLER, - ZEND_GET_TYPE_SPEC_TMP_UNUSED_HANDLER, - ZEND_GET_TYPE_SPEC_VAR_UNUSED_HANDLER, - ZEND_NULL_HANDLER, - ZEND_GET_TYPE_SPEC_CV_UNUSED_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CONST_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CV_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CONST_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CV_HANDLER, - ZEND_JMP_FORWARD_SPEC_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ_HANDLER, - ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ_HANDLER, - ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_HANDLER, - ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_HANDLER, - ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_UNUSED_HANDLER, - ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_USED_HANDLER, - ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED_HANDLER, - ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED_HANDLER, - ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_UNUSED_HANDLER, - ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_USED_HANDLER, - ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_CV_HANDLER, - ZEND_POST_INC_LONG_SPEC_CV_HANDLER, - ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_CV_HANDLER, - ZEND_POST_DEC_LONG_SPEC_CV_HANDLER, - ZEND_QM_ASSIGN_LONG_SPEC_CONST_HANDLER, - ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_HANDLER, - ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV_HANDLER, - ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST_HANDLER, - ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_HANDLER, - ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV_HANDLER, - ZEND_QM_ASSIGN_NOREF_SPEC_CONST_HANDLER, - ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_HANDLER, - ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_SIMPLE_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_SIMPLE_SPEC_CV_HANDLER, - ZEND_NULL_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR_HANDLER, - ZEND_NULL_HANDLER, - ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV_HANDLER, - ZEND_SEND_VAL_SIMPLE_SPEC_CONST_HANDLER, - ZEND_SEND_VAL_EX_SIMPLE_SPEC_CONST_HANDLER, - ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED_HANDLER, - ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED_HANDLER, - ZEND_NULL_HANDLER - }; - static const uint32_t specs[] = { - 0, - 1 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 26 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 51 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE, - 76 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 101 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 126 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 151 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 176 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 201 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE, - 226 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE, - 251 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE, - 276 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 301 | SPEC_RULE_OP1, - 306 | SPEC_RULE_OP1, - 311 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE, - 336 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE, - 361 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE, - 386 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE, - 461 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE, - 536 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH, - 611 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH, - 686 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_RETVAL, - 736 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_OP_DATA, - 861 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_OP_DATA, - 986 | SPEC_RULE_OP_DATA, - 991 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1016 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1041 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1066, - 1067 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1092 | SPEC_RULE_OP1, - 1097 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_OP_DATA, - 1222, - 1223 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL, - 1233 | SPEC_RULE_OP1 | SPEC_RULE_RETVAL, - 1243 | SPEC_RULE_OP1, - 1248 | SPEC_RULE_OP1, - 1253, - 1253, - 1254, - 1254, - 1255, - 1256 | SPEC_RULE_OP1, - 1261 | SPEC_RULE_OP1, - 1266 | SPEC_RULE_OP1, - 1271 | SPEC_RULE_OP1, - 1276 | SPEC_RULE_OP1, - 1281 | SPEC_RULE_OP2, - 1286, - 1287 | SPEC_RULE_QUICK_ARG, - 1289 | SPEC_RULE_OP1, - 1294 | SPEC_RULE_OP1, - 1299 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1324 | SPEC_RULE_OP2, - 1329 | SPEC_RULE_OP2, - 1334 | SPEC_RULE_OP2, - 1339, - 1340, - 1341, - 1342 | SPEC_RULE_RETVAL, - 1344, - 1345 | SPEC_RULE_OP1, - 1350, - 1351, - 1352 | SPEC_RULE_OP1, - 1357 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG, - 1367 | SPEC_RULE_OP1, - 1372 | SPEC_RULE_OP1, - 1377, - 1378, - 1379 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1404 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1429 | SPEC_RULE_OP1, - 1434 | SPEC_RULE_OP1, - 1439 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1464 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1489 | SPEC_RULE_OP1, - 1494, - 1495, - 1496 | SPEC_RULE_OP1, - 1501 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1526 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1551 | SPEC_RULE_OP1, - 1556 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1581 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1606 | SPEC_RULE_OP1, - 1611 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1636 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1661 | SPEC_RULE_OP1, - 1666 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1691 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1716 | SPEC_RULE_OP1, - 1721 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1746 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1771 | SPEC_RULE_OP1, - 1776 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1801 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1826 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1851, - 1852 | SPEC_RULE_QUICK_ARG, - 1854, - 1855, - 1856, - 1857, - 1858, - 1859, - 1860, - 1861 | SPEC_RULE_OP1, - 1866 | SPEC_RULE_OP2, - 1871 | SPEC_RULE_OP1, - 1876 | SPEC_RULE_OP1, - 1881 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1906 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1931 | SPEC_RULE_OP1, - 1936 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 1961 | SPEC_RULE_OP1 | SPEC_RULE_QUICK_ARG, - 1971 | SPEC_RULE_OP1, - 1976 | SPEC_RULE_OP2, - 1981, - 1982 | SPEC_RULE_OP1, - 1987 | SPEC_RULE_OP1, - 1992, - 1993 | SPEC_RULE_OP1, - 1998 | SPEC_RULE_OP1, - 2003 | SPEC_RULE_OP1, - 2008, - 2009, - 2010 | SPEC_RULE_OP2, - 2015 | SPEC_RULE_RETVAL, - 2017 | SPEC_RULE_RETVAL, - 2019 | SPEC_RULE_RETVAL, - 2021 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2021 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2046 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2046 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2071 | SPEC_RULE_OP1, - 2076, - 2077 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2102, - 2103 | SPEC_RULE_OP1, - 2108, - 2109, - 2110, - 2111, - 2112, - 2113, - 2114, - 2115 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2140, - 2141, - 2142, - 2143 | SPEC_RULE_OP1, - 2148, - 2149 | SPEC_RULE_ISSET, - 2151 | SPEC_RULE_OP2, - 2156, - 2157, - 2158, - 2159, - 2160 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2185 | SPEC_RULE_OP1, - 2190, - 2191, - 2192, - 2193, - 2194 | SPEC_RULE_OP1, - 2199, - 2200, - 2201 | SPEC_RULE_OP1, - 2206 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 2231, - 2232 | SPEC_RULE_OP1, - 2237, - 2238, - 2239, - 2240, - 2241, - 2242, - 2243, - 2244, - 2245 | SPEC_RULE_OP1, - 2250, - 2251, - 2252, - 2253, - 2254, - 2255 | SPEC_RULE_OP1, - 2260 | SPEC_RULE_OP1, - 2265 | SPEC_RULE_OP1, - 2270 | SPEC_RULE_OP1, - 2275 | SPEC_RULE_OP1, - 2280, - 2281 | SPEC_RULE_OP1, - 2286 | SPEC_RULE_OP1 | SPEC_RULE_OP2, - 3203 - }; -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) - zend_opcode_handler_funcs = labels; - zend_spec_handlers = specs; - execute_ex(NULL); -#else - zend_opcode_handlers = labels; - zend_handlers_count = sizeof(labels) / sizeof(void*); - zend_spec_handlers = specs; -#endif - VM_TRACE_START(); -} - -static HashTable *zend_handlers_table = NULL; - -void zend_vm_dtor(void) -{ - VM_TRACE_END(); - if (zend_handlers_table) { - zend_hash_destroy(zend_handlers_table); - free(zend_handlers_table); - zend_handlers_table = NULL; - } -} - -static void init_opcode_serialiser(void) -{ - int i; - zval tmp; - - zend_handlers_table = malloc(sizeof(HashTable)); - zend_hash_init_ex(zend_handlers_table, zend_handlers_count, NULL, NULL, 1, 0); - zend_hash_real_init(zend_handlers_table, 0); - Z_TYPE_INFO(tmp) = IS_LONG; - for (i = 0; i < zend_handlers_count; i++) { - Z_LVAL(tmp) = i; - zend_hash_index_add(zend_handlers_table, (zend_long)(zend_uintptr_t)zend_opcode_handlers[i], &tmp); - } -} - -ZEND_API void ZEND_FASTCALL zend_serialize_opcode_handler(zend_op *op) -{ - zval *zv; - - if (!zend_handlers_table) { - init_opcode_serialiser(); - } - zv = zend_hash_index_find(zend_handlers_table, (zend_long)(zend_uintptr_t)op->handler); - ZEND_ASSERT(zv != NULL); - op->handler = (const void *)(zend_uintptr_t)Z_LVAL_P(zv); -} - -ZEND_API void ZEND_FASTCALL zend_deserialize_opcode_handler(zend_op *op) -{ - op->handler = zend_opcode_handlers[(zend_uintptr_t)op->handler]; -} - -ZEND_API const void* ZEND_FASTCALL zend_get_opcode_handler_func(const zend_op *op) -{ -#if ZEND_VM_KIND == ZEND_VM_KIND_CALL - return op->handler; -#elif ZEND_VM_KIND == ZEND_VM_KIND_HYBRID - zval *zv; - - if (!zend_handlers_table) { - init_opcode_serialiser(); - } - zv = zend_hash_index_find(zend_handlers_table, (zend_long)(zend_uintptr_t)op->handler); - ZEND_ASSERT(zv != NULL); - return zend_opcode_handler_funcs[Z_LVAL_P(zv)]; -#else - return NULL; -#endif -} - -ZEND_API const zend_op *zend_get_halt_op(void) -{ -#if ZEND_VM_KIND == ZEND_VM_KIND_HYBRID - return &hybrid_halt_op; -#else - return NULL; -#endif -} - -ZEND_API int zend_vm_kind(void) -{ - return ZEND_VM_KIND; -} - -static const void* ZEND_FASTCALL zend_vm_get_opcode_handler_ex(uint32_t spec, const zend_op* op) -{ - static const int zend_vm_decode[] = { - _UNUSED_CODE, /* 0 = IS_UNUSED */ - _CONST_CODE, /* 1 = IS_CONST */ - _TMP_CODE, /* 2 = IS_TMP_VAR */ - _UNUSED_CODE, /* 3 */ - _VAR_CODE, /* 4 = IS_VAR */ - _UNUSED_CODE, /* 5 */ - _UNUSED_CODE, /* 6 */ - _UNUSED_CODE, /* 7 */ - _CV_CODE /* 8 = IS_CV */ - }; - uint32_t offset = 0; - if (spec & SPEC_RULE_OP1) offset = offset * 5 + zend_vm_decode[op->op1_type]; - if (spec & SPEC_RULE_OP2) offset = offset * 5 + zend_vm_decode[op->op2_type]; - if (spec & SPEC_EXTRA_MASK) { - if (spec & SPEC_RULE_RETVAL) { - offset = offset * 2 + (op->result_type != IS_UNUSED); - } else if (spec & SPEC_RULE_QUICK_ARG) { - offset = offset * 2 + (op->op2.num <= MAX_ARG_FLAG_NUM); - } else if (spec & SPEC_RULE_OP_DATA) { - offset = offset * 5 + zend_vm_decode[(op + 1)->op1_type]; - } else if (spec & SPEC_RULE_ISSET) { - offset = offset * 2 + (op->extended_value & ZEND_ISEMPTY); - } else if (spec & SPEC_RULE_SMART_BRANCH) { - offset = offset * 3; - if ((op+1)->opcode == ZEND_JMPZ) { - offset += 1; - } else if ((op+1)->opcode == ZEND_JMPNZ) { - offset += 2; - } - } - } - return zend_opcode_handlers[(spec & SPEC_START_MASK) + offset]; -} - -#if (ZEND_VM_KIND != ZEND_VM_KIND_HYBRID) || !ZEND_VM_SPEC -static const void *zend_vm_get_opcode_handler(zend_uchar opcode, const zend_op* op) -{ - return zend_vm_get_opcode_handler_ex(zend_spec_handlers[opcode], op); -} -#endif - -#if ZEND_VM_KIND == ZEND_VM_KIND_HYBRID -static const void *zend_vm_get_opcode_handler_func(zend_uchar opcode, const zend_op* op) -{ - uint32_t spec = zend_spec_handlers[opcode]; - static const int zend_vm_decode[] = { - _UNUSED_CODE, /* 0 = IS_UNUSED */ - _CONST_CODE, /* 1 = IS_CONST */ - _TMP_CODE, /* 2 = IS_TMP_VAR */ - _UNUSED_CODE, /* 3 */ - _VAR_CODE, /* 4 = IS_VAR */ - _UNUSED_CODE, /* 5 */ - _UNUSED_CODE, /* 6 */ - _UNUSED_CODE, /* 7 */ - _CV_CODE /* 8 = IS_CV */ - }; - uint32_t offset = 0; - if (spec & SPEC_RULE_OP1) offset = offset * 5 + zend_vm_decode[op->op1_type]; - if (spec & SPEC_RULE_OP2) offset = offset * 5 + zend_vm_decode[op->op2_type]; - if (spec & SPEC_EXTRA_MASK) { - if (spec & SPEC_RULE_OP_DATA) offset = offset * 5 + zend_vm_decode[(op + 1)->op1_type]; - else if (spec & SPEC_RULE_RETVAL) offset = offset * 2 + (op->result_type != IS_UNUSED); - else if (spec & SPEC_RULE_QUICK_ARG) offset = offset * 2 + (op->op2.num <= MAX_ARG_FLAG_NUM); - else if (spec & SPEC_RULE_SMART_BRANCH) { - offset = offset * 3; - if ((op+1)->opcode == ZEND_JMPZ) { - offset += 1; - } else if ((op+1)->opcode == ZEND_JMPNZ) { - offset += 2; - } - } - else if (spec & SPEC_RULE_ISSET) offset = offset * 2 + (op->extended_value & ZEND_ISEMPTY); - } - return zend_opcode_handler_funcs[(spec & SPEC_START_MASK) + offset]; -} - -#endif - -ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler(zend_op* op) -{ - zend_uchar opcode = zend_user_opcodes[op->opcode]; - - if (zend_spec_handlers[op->opcode] & SPEC_RULE_COMMUTATIVE) { - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - } - op->handler = zend_vm_get_opcode_handler_ex(zend_spec_handlers[opcode], op); -} - -ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler_ex(zend_op* op, uint32_t op1_info, uint32_t op2_info, uint32_t res_info) -{ - zend_uchar opcode = zend_user_opcodes[op->opcode]; - uint32_t spec = zend_spec_handlers[opcode]; - switch (opcode) { - case ZEND_ADD: - if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2312 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - } else if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2337 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2362 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - } - break; - case ZEND_SUB: - if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2387 | SPEC_RULE_OP1 | SPEC_RULE_OP2; - } else if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2412 | SPEC_RULE_OP1 | SPEC_RULE_OP2; - } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2437 | SPEC_RULE_OP1 | SPEC_RULE_OP2; - } - break; - case ZEND_MUL: - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2462 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; - } else if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2487 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; - } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2512 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_COMMUTATIVE; - } - break; - case ZEND_IS_EQUAL: - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2537 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; - } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2612 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; - } - break; - case ZEND_IS_NOT_EQUAL: - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2687 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; - } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2762 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH | SPEC_RULE_COMMUTATIVE; - } - break; - case ZEND_IS_SMALLER: - if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2837 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; - } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2912 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; - } - break; - case ZEND_IS_SMALLER_OR_EQUAL: - if (op1_info == MAY_BE_LONG && op2_info == MAY_BE_LONG) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 2987 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; - } else if (op1_info == MAY_BE_DOUBLE && op2_info == MAY_BE_DOUBLE) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 3062 | SPEC_RULE_OP1 | SPEC_RULE_OP2 | SPEC_RULE_SMART_BRANCH; - } - break; - case ZEND_QM_ASSIGN: - if (op1_info == MAY_BE_LONG) { - spec = 3149 | SPEC_RULE_OP1; - } else if (op1_info == MAY_BE_DOUBLE) { - spec = 3154 | SPEC_RULE_OP1; - } else if ((op->op1_type == IS_CONST) ? !Z_REFCOUNTED_P(RT_CONSTANT(op, op->op1)) : (!(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE))))) { - spec = 3159 | SPEC_RULE_OP1; - } - break; - case ZEND_PRE_INC: - if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3137 | SPEC_RULE_RETVAL; - } else if (op1_info == MAY_BE_LONG) { - spec = 3139 | SPEC_RULE_RETVAL; - } - break; - case ZEND_PRE_DEC: - if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3141 | SPEC_RULE_RETVAL; - } else if (op1_info == MAY_BE_LONG) { - spec = 3143 | SPEC_RULE_RETVAL; - } - break; - case ZEND_POST_INC: - if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3145; - } else if (op1_info == MAY_BE_LONG) { - spec = 3146; - } - break; - case ZEND_POST_DEC: - if (res_info == MAY_BE_LONG && op1_info == MAY_BE_LONG) { - spec = 3147; - } else if (op1_info == MAY_BE_LONG) { - spec = 3148; - } - break; - case ZEND_JMP: - if (OP_JMP_ADDR(op, op->op1) > op) { - spec = 2311; - } - break; - case ZEND_SEND_VAL: - if (op->op1_type == IS_CONST && !Z_REFCOUNTED_P(RT_CONSTANT(op, op->op1))) { - spec = 3199; - } - break; - case ZEND_SEND_VAR_EX: - if (op->op2.num <= MAX_ARG_FLAG_NUM && (op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0) { - spec = 3194 | SPEC_RULE_OP1; - } - break; - case ZEND_FE_FETCH_R: - if (op->op2_type == IS_CV && (op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_ARRAY) { - spec = 3201 | SPEC_RULE_RETVAL; - } - break; - case ZEND_FETCH_DIM_R: - if (!(op2_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))) { - if (op->op1_type == IS_CONST && op->op2_type == IS_CONST) { - break; - } - spec = 3164 | SPEC_RULE_OP1 | SPEC_RULE_OP2; - } - break; - case ZEND_SEND_VAL_EX: - if (op->op2.num <= MAX_ARG_FLAG_NUM && op->op1_type == IS_CONST && !Z_REFCOUNTED_P(RT_CONSTANT(op, op->op1))) { - spec = 3200; - } - break; - case ZEND_SEND_VAR: - if ((op1_info & (MAY_BE_UNDEF|MAY_BE_REF)) == 0) { - spec = 3189 | SPEC_RULE_OP1; - } - break; - case ZEND_BW_OR: - case ZEND_BW_AND: - case ZEND_BW_XOR: - case ZEND_BOOL_XOR: - case ZEND_IS_IDENTICAL: - case ZEND_IS_NOT_IDENTICAL: - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - break; - case ZEND_USER_OPCODE: - if (zend_spec_handlers[op->opcode] & SPEC_RULE_COMMUTATIVE) { - if (op->op1_type < op->op2_type) { - zend_swap_operands(op); - } - } - break; - default: - break; - } - op->handler = zend_vm_get_opcode_handler_ex(spec, op); -} - -ZEND_API int ZEND_FASTCALL zend_vm_call_opcode_handler(zend_execute_data* ex) -{ -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) - opcode_handler_t handler; -#endif - int ret; -#ifdef ZEND_VM_IP_GLOBAL_REG - const zend_op *orig_opline = opline; -#endif -#ifdef ZEND_VM_FP_GLOBAL_REG - zend_execute_data *orig_execute_data = execute_data; - execute_data = ex; -#else - zend_execute_data *execute_data = ex; -#endif - - LOAD_OPLINE(); -#if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG) -#if (ZEND_VM_KIND == ZEND_VM_KIND_HYBRID) - handler = (opcode_handler_t)zend_vm_get_opcode_handler_func(zend_user_opcodes[opline->opcode], opline); - handler(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - if (EXPECTED(opline != &hybrid_halt_op)) { -#else - ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - if (EXPECTED(opline)) { -#endif - ret = execute_data != ex ? (int)(execute_data->prev_execute_data != ex) + 1 : 0; - SAVE_OPLINE(); - } else { - ret = -1; - } -#else - ret = ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); - SAVE_OPLINE(); -#endif -#ifdef ZEND_VM_FP_GLOBAL_REG - execute_data = orig_execute_data; -#endif -#ifdef ZEND_VM_IP_GLOBAL_REG - opline = orig_opline; -#endif - return ret; -} - diff --git a/include/php/Zend/zend_vm_handlers.h b/include/php/Zend/zend_vm_handlers.h deleted file mode 100644 index 7aa1a93..0000000 --- a/include/php/Zend/zend_vm_handlers.h +++ /dev/null @@ -1,1776 +0,0 @@ -#define VM_HANDLERS(_) \ - _(0, ZEND_NOP_SPEC) \ - _(1, ZEND_ADD_SPEC_CONST_CONST) \ - _(2, ZEND_ADD_SPEC_CONST_TMPVARCV) \ - _(3, ZEND_ADD_SPEC_CONST_TMPVARCV) \ - _(5, ZEND_ADD_SPEC_CONST_TMPVARCV) \ - _(6, ZEND_ADD_SPEC_TMPVARCV_CONST) \ - _(7, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(8, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(10, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(11, ZEND_ADD_SPEC_TMPVARCV_CONST) \ - _(12, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(13, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(15, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(21, ZEND_ADD_SPEC_TMPVARCV_CONST) \ - _(22, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(23, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(25, ZEND_ADD_SPEC_TMPVARCV_TMPVARCV) \ - _(26, ZEND_SUB_SPEC_CONST_CONST) \ - _(27, ZEND_SUB_SPEC_CONST_TMPVARCV) \ - _(28, ZEND_SUB_SPEC_CONST_TMPVARCV) \ - _(30, ZEND_SUB_SPEC_CONST_TMPVARCV) \ - _(31, ZEND_SUB_SPEC_TMPVARCV_CONST) \ - _(32, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(33, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(35, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(36, ZEND_SUB_SPEC_TMPVARCV_CONST) \ - _(37, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(38, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(40, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(46, ZEND_SUB_SPEC_TMPVARCV_CONST) \ - _(47, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(48, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(50, ZEND_SUB_SPEC_TMPVARCV_TMPVARCV) \ - _(51, ZEND_MUL_SPEC_CONST_CONST) \ - _(56, ZEND_MUL_SPEC_TMPVARCV_CONST) \ - _(57, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(58, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(60, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(61, ZEND_MUL_SPEC_TMPVARCV_CONST) \ - _(62, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(63, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(65, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(71, ZEND_MUL_SPEC_TMPVARCV_CONST) \ - _(72, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(73, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(75, ZEND_MUL_SPEC_TMPVARCV_TMPVARCV) \ - _(76, ZEND_DIV_SPEC_CONST_CONST) \ - _(77, ZEND_DIV_SPEC_CONST_TMPVAR) \ - _(78, ZEND_DIV_SPEC_CONST_TMPVAR) \ - _(80, ZEND_DIV_SPEC_CONST_CV) \ - _(81, ZEND_DIV_SPEC_TMPVAR_CONST) \ - _(82, ZEND_DIV_SPEC_TMPVAR_TMPVAR) \ - _(83, ZEND_DIV_SPEC_TMPVAR_TMPVAR) \ - _(85, ZEND_DIV_SPEC_TMPVAR_CV) \ - _(86, ZEND_DIV_SPEC_TMPVAR_CONST) \ - _(87, ZEND_DIV_SPEC_TMPVAR_TMPVAR) \ - _(88, ZEND_DIV_SPEC_TMPVAR_TMPVAR) \ - _(90, ZEND_DIV_SPEC_TMPVAR_CV) \ - _(96, ZEND_DIV_SPEC_CV_CONST) \ - _(97, ZEND_DIV_SPEC_CV_TMPVAR) \ - _(98, ZEND_DIV_SPEC_CV_TMPVAR) \ - _(100, ZEND_DIV_SPEC_CV_CV) \ - _(101, ZEND_MOD_SPEC_CONST_CONST) \ - _(102, ZEND_MOD_SPEC_CONST_TMPVARCV) \ - _(103, ZEND_MOD_SPEC_CONST_TMPVARCV) \ - _(105, ZEND_MOD_SPEC_CONST_TMPVARCV) \ - _(106, ZEND_MOD_SPEC_TMPVARCV_CONST) \ - _(107, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(108, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(110, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(111, ZEND_MOD_SPEC_TMPVARCV_CONST) \ - _(112, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(113, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(115, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(121, ZEND_MOD_SPEC_TMPVARCV_CONST) \ - _(122, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(123, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(125, ZEND_MOD_SPEC_TMPVARCV_TMPVARCV) \ - _(126, ZEND_SL_SPEC_CONST_CONST) \ - _(127, ZEND_SL_SPEC_CONST_TMPVARCV) \ - _(128, ZEND_SL_SPEC_CONST_TMPVARCV) \ - _(130, ZEND_SL_SPEC_CONST_TMPVARCV) \ - _(131, ZEND_SL_SPEC_TMPVARCV_CONST) \ - _(132, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(133, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(135, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(136, ZEND_SL_SPEC_TMPVARCV_CONST) \ - _(137, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(138, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(140, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(146, ZEND_SL_SPEC_TMPVARCV_CONST) \ - _(147, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(148, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(150, ZEND_SL_SPEC_TMPVARCV_TMPVARCV) \ - _(151, ZEND_SR_SPEC_CONST_CONST) \ - _(152, ZEND_SR_SPEC_CONST_TMPVARCV) \ - _(153, ZEND_SR_SPEC_CONST_TMPVARCV) \ - _(155, ZEND_SR_SPEC_CONST_TMPVARCV) \ - _(156, ZEND_SR_SPEC_TMPVARCV_CONST) \ - _(157, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(158, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(160, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(161, ZEND_SR_SPEC_TMPVARCV_CONST) \ - _(162, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(163, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(165, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(171, ZEND_SR_SPEC_TMPVARCV_CONST) \ - _(172, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(173, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(175, ZEND_SR_SPEC_TMPVARCV_TMPVARCV) \ - _(177, ZEND_CONCAT_SPEC_CONST_TMPVAR) \ - _(178, ZEND_CONCAT_SPEC_CONST_TMPVAR) \ - _(180, ZEND_CONCAT_SPEC_CONST_CV) \ - _(181, ZEND_CONCAT_SPEC_TMPVAR_CONST) \ - _(182, ZEND_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(183, ZEND_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(185, ZEND_CONCAT_SPEC_TMPVAR_CV) \ - _(186, ZEND_CONCAT_SPEC_TMPVAR_CONST) \ - _(187, ZEND_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(188, ZEND_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(190, ZEND_CONCAT_SPEC_TMPVAR_CV) \ - _(196, ZEND_CONCAT_SPEC_CV_CONST) \ - _(197, ZEND_CONCAT_SPEC_CV_TMPVAR) \ - _(198, ZEND_CONCAT_SPEC_CV_TMPVAR) \ - _(200, ZEND_CONCAT_SPEC_CV_CV) \ - _(201, ZEND_BW_OR_SPEC_CONST_CONST) \ - _(206, ZEND_BW_OR_SPEC_TMPVARCV_CONST) \ - _(207, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(208, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(210, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(211, ZEND_BW_OR_SPEC_TMPVARCV_CONST) \ - _(212, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(213, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(215, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(221, ZEND_BW_OR_SPEC_TMPVARCV_CONST) \ - _(222, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(223, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(225, ZEND_BW_OR_SPEC_TMPVARCV_TMPVARCV) \ - _(226, ZEND_BW_AND_SPEC_CONST_CONST) \ - _(231, ZEND_BW_AND_SPEC_TMPVARCV_CONST) \ - _(232, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(233, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(235, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(236, ZEND_BW_AND_SPEC_TMPVARCV_CONST) \ - _(237, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(238, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(240, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(246, ZEND_BW_AND_SPEC_TMPVARCV_CONST) \ - _(247, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(248, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(250, ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV) \ - _(251, ZEND_BW_XOR_SPEC_CONST_CONST) \ - _(256, ZEND_BW_XOR_SPEC_TMPVARCV_CONST) \ - _(257, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(258, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(260, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(261, ZEND_BW_XOR_SPEC_TMPVARCV_CONST) \ - _(262, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(263, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(265, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(271, ZEND_BW_XOR_SPEC_TMPVARCV_CONST) \ - _(272, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(273, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(275, ZEND_BW_XOR_SPEC_TMPVARCV_TMPVARCV) \ - _(276, ZEND_POW_SPEC_CONST_CONST) \ - _(277, ZEND_POW_SPEC_CONST_TMPVAR) \ - _(278, ZEND_POW_SPEC_CONST_TMPVAR) \ - _(280, ZEND_POW_SPEC_CONST_CV) \ - _(281, ZEND_POW_SPEC_TMPVAR_CONST) \ - _(282, ZEND_POW_SPEC_TMPVAR_TMPVAR) \ - _(283, ZEND_POW_SPEC_TMPVAR_TMPVAR) \ - _(285, ZEND_POW_SPEC_TMPVAR_CV) \ - _(286, ZEND_POW_SPEC_TMPVAR_CONST) \ - _(287, ZEND_POW_SPEC_TMPVAR_TMPVAR) \ - _(288, ZEND_POW_SPEC_TMPVAR_TMPVAR) \ - _(290, ZEND_POW_SPEC_TMPVAR_CV) \ - _(296, ZEND_POW_SPEC_CV_CONST) \ - _(297, ZEND_POW_SPEC_CV_TMPVAR) \ - _(298, ZEND_POW_SPEC_CV_TMPVAR) \ - _(300, ZEND_POW_SPEC_CV_CV) \ - _(301, ZEND_BW_NOT_SPEC_CONST) \ - _(302, ZEND_BW_NOT_SPEC_TMPVAR) \ - _(303, ZEND_BW_NOT_SPEC_TMPVAR) \ - _(305, ZEND_BW_NOT_SPEC_CV) \ - _(306, ZEND_BOOL_NOT_SPEC_CONST) \ - _(307, ZEND_BOOL_NOT_SPEC_TMPVAR) \ - _(308, ZEND_BOOL_NOT_SPEC_TMPVAR) \ - _(310, ZEND_BOOL_NOT_SPEC_CV) \ - _(311, ZEND_BOOL_XOR_SPEC_CONST_CONST) \ - _(316, ZEND_BOOL_XOR_SPEC_TMPVAR_CONST) \ - _(317, ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR) \ - _(318, ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR) \ - _(321, ZEND_BOOL_XOR_SPEC_TMPVAR_CONST) \ - _(322, ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR) \ - _(323, ZEND_BOOL_XOR_SPEC_TMPVAR_TMPVAR) \ - _(331, ZEND_BOOL_XOR_SPEC_CV_CONST) \ - _(332, ZEND_BOOL_XOR_SPEC_CV_TMPVAR) \ - _(333, ZEND_BOOL_XOR_SPEC_CV_TMPVAR) \ - _(335, ZEND_BOOL_XOR_SPEC_CV_CV) \ - _(336, ZEND_IS_IDENTICAL_SPEC_CONST_CONST) \ - _(341, ZEND_IS_IDENTICAL_SPEC_TMP_CONST) \ - _(342, ZEND_IS_IDENTICAL_SPEC_TMP_TMP) \ - _(346, ZEND_IS_IDENTICAL_SPEC_VAR_CONST) \ - _(347, ZEND_IS_IDENTICAL_SPEC_VAR_TMP) \ - _(348, ZEND_IS_IDENTICAL_SPEC_VAR_VAR) \ - _(356, ZEND_IS_IDENTICAL_SPEC_CV_CONST) \ - _(357, ZEND_IS_IDENTICAL_SPEC_CV_TMP) \ - _(358, ZEND_IS_IDENTICAL_SPEC_CV_VAR) \ - _(360, ZEND_IS_IDENTICAL_SPEC_CV_CV) \ - _(361, ZEND_IS_NOT_IDENTICAL_SPEC_CONST_CONST) \ - _(366, ZEND_IS_NOT_IDENTICAL_SPEC_TMP_CONST) \ - _(367, ZEND_IS_NOT_IDENTICAL_SPEC_TMP_TMP) \ - _(371, ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST) \ - _(372, ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP) \ - _(373, ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR) \ - _(381, ZEND_IS_NOT_IDENTICAL_SPEC_CV_CONST) \ - _(382, ZEND_IS_NOT_IDENTICAL_SPEC_CV_TMP) \ - _(383, ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR) \ - _(385, ZEND_IS_NOT_IDENTICAL_SPEC_CV_CV) \ - _(386, ZEND_IS_EQUAL_SPEC_CONST_CONST) \ - _(387, ZEND_IS_EQUAL_SPEC_CONST_CONST) \ - _(388, ZEND_IS_EQUAL_SPEC_CONST_CONST) \ - _(401, ZEND_IS_EQUAL_SPEC_TMPVAR_CONST) \ - _(402, ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ) \ - _(403, ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ) \ - _(404, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(405, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(406, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(407, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(408, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(409, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(416, ZEND_IS_EQUAL_SPEC_TMPVAR_CONST) \ - _(417, ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPZ) \ - _(418, ZEND_IS_EQUAL_SPEC_TMPVAR_CONST_JMPNZ) \ - _(419, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(420, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(421, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(422, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(423, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(424, ZEND_IS_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(446, ZEND_IS_EQUAL_SPEC_CV_CONST) \ - _(447, ZEND_IS_EQUAL_SPEC_CV_CONST_JMPZ) \ - _(448, ZEND_IS_EQUAL_SPEC_CV_CONST_JMPNZ) \ - _(449, ZEND_IS_EQUAL_SPEC_CV_TMPVAR) \ - _(450, ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ) \ - _(451, ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ) \ - _(452, ZEND_IS_EQUAL_SPEC_CV_TMPVAR) \ - _(453, ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPZ) \ - _(454, ZEND_IS_EQUAL_SPEC_CV_TMPVAR_JMPNZ) \ - _(458, ZEND_IS_EQUAL_SPEC_CV_CV) \ - _(459, ZEND_IS_EQUAL_SPEC_CV_CV_JMPZ) \ - _(460, ZEND_IS_EQUAL_SPEC_CV_CV_JMPNZ) \ - _(461, ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST) \ - _(462, ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST) \ - _(463, ZEND_IS_NOT_EQUAL_SPEC_CONST_CONST) \ - _(476, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST) \ - _(477, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ) \ - _(478, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ) \ - _(479, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(480, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(481, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(482, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(483, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(484, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(491, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST) \ - _(492, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPZ) \ - _(493, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_CONST_JMPNZ) \ - _(494, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(495, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(496, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(497, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR) \ - _(498, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPZ) \ - _(499, ZEND_IS_NOT_EQUAL_SPEC_TMPVAR_TMPVAR_JMPNZ) \ - _(521, ZEND_IS_NOT_EQUAL_SPEC_CV_CONST) \ - _(522, ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPZ) \ - _(523, ZEND_IS_NOT_EQUAL_SPEC_CV_CONST_JMPNZ) \ - _(524, ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR) \ - _(525, ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ) \ - _(526, ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ) \ - _(527, ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR) \ - _(528, ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPZ) \ - _(529, ZEND_IS_NOT_EQUAL_SPEC_CV_TMPVAR_JMPNZ) \ - _(533, ZEND_IS_NOT_EQUAL_SPEC_CV_CV) \ - _(534, ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPZ) \ - _(535, ZEND_IS_NOT_EQUAL_SPEC_CV_CV_JMPNZ) \ - _(536, ZEND_IS_SMALLER_SPEC_CONST_CONST) \ - _(537, ZEND_IS_SMALLER_SPEC_CONST_CONST) \ - _(538, ZEND_IS_SMALLER_SPEC_CONST_CONST) \ - _(539, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV) \ - _(540, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ) \ - _(541, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(542, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV) \ - _(543, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ) \ - _(544, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(548, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV) \ - _(549, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPZ) \ - _(550, ZEND_IS_SMALLER_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(551, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST) \ - _(552, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ) \ - _(553, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(554, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(555, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(556, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(557, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(558, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(559, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(563, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(564, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(565, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(566, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST) \ - _(567, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ) \ - _(568, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(569, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(570, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(571, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(572, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(573, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(574, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(578, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(579, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(580, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(596, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST) \ - _(597, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPZ) \ - _(598, ZEND_IS_SMALLER_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(599, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(600, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(601, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(602, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(603, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(604, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(608, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV) \ - _(609, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(610, ZEND_IS_SMALLER_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(611, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST) \ - _(612, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST) \ - _(613, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST) \ - _(614, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV) \ - _(615, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ) \ - _(616, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(617, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV) \ - _(618, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ) \ - _(619, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(623, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV) \ - _(624, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPZ) \ - _(625, ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(626, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST) \ - _(627, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ) \ - _(628, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(629, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(630, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(631, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(632, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(633, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(634, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(638, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(639, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(640, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(641, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST) \ - _(642, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ) \ - _(643, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(644, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(645, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(646, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(647, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(648, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(649, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(653, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(654, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(655, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(671, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST) \ - _(672, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPZ) \ - _(673, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(674, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(675, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(676, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(677, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(678, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(679, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(683, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV) \ - _(684, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(685, ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(706, ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_UNUSED) \ - _(707, ZEND_ASSIGN_SPEC_VAR_CONST_RETVAL_USED) \ - _(708, ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED) \ - _(709, ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_USED) \ - _(710, ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_UNUSED) \ - _(711, ZEND_ASSIGN_SPEC_VAR_VAR_RETVAL_USED) \ - _(714, ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_UNUSED) \ - _(715, ZEND_ASSIGN_SPEC_VAR_CV_RETVAL_USED) \ - _(726, ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_UNUSED) \ - _(727, ZEND_ASSIGN_SPEC_CV_CONST_RETVAL_USED) \ - _(728, ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_UNUSED) \ - _(729, ZEND_ASSIGN_SPEC_CV_TMP_RETVAL_USED) \ - _(730, ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_UNUSED) \ - _(731, ZEND_ASSIGN_SPEC_CV_VAR_RETVAL_USED) \ - _(734, ZEND_ASSIGN_SPEC_CV_CV_RETVAL_UNUSED) \ - _(735, ZEND_ASSIGN_SPEC_CV_CV_RETVAL_USED) \ - _(786, ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CONST) \ - _(787, ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_TMP) \ - _(788, ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_VAR) \ - _(790, ZEND_ASSIGN_DIM_SPEC_VAR_CONST_OP_DATA_CV) \ - _(791, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST) \ - _(792, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP) \ - _(793, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR) \ - _(795, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV) \ - _(796, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CONST) \ - _(797, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_TMP) \ - _(798, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_VAR) \ - _(800, ZEND_ASSIGN_DIM_SPEC_VAR_TMPVAR_OP_DATA_CV) \ - _(801, ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CONST) \ - _(802, ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_TMP) \ - _(803, ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_VAR) \ - _(805, ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_OP_DATA_CV) \ - _(806, ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CONST) \ - _(807, ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_TMP) \ - _(808, ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_VAR) \ - _(810, ZEND_ASSIGN_DIM_SPEC_VAR_CV_OP_DATA_CV) \ - _(836, ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CONST) \ - _(837, ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_TMP) \ - _(838, ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_VAR) \ - _(840, ZEND_ASSIGN_DIM_SPEC_CV_CONST_OP_DATA_CV) \ - _(841, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST) \ - _(842, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP) \ - _(843, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR) \ - _(845, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV) \ - _(846, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CONST) \ - _(847, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_TMP) \ - _(848, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_VAR) \ - _(850, ZEND_ASSIGN_DIM_SPEC_CV_TMPVAR_OP_DATA_CV) \ - _(851, ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CONST) \ - _(852, ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_TMP) \ - _(853, ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_VAR) \ - _(855, ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_OP_DATA_CV) \ - _(856, ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CONST) \ - _(857, ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_TMP) \ - _(858, ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_VAR) \ - _(860, ZEND_ASSIGN_DIM_SPEC_CV_CV_OP_DATA_CV) \ - _(911, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CONST) \ - _(912, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_TMP) \ - _(913, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_VAR) \ - _(915, ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_OP_DATA_CV) \ - _(916, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST) \ - _(917, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP) \ - _(918, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR) \ - _(920, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV) \ - _(921, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CONST) \ - _(922, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_TMP) \ - _(923, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_VAR) \ - _(925, ZEND_ASSIGN_OBJ_SPEC_VAR_TMPVAR_OP_DATA_CV) \ - _(931, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CONST) \ - _(932, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_TMP) \ - _(933, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_VAR) \ - _(935, ZEND_ASSIGN_OBJ_SPEC_VAR_CV_OP_DATA_CV) \ - _(936, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CONST) \ - _(937, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_TMP) \ - _(938, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_VAR) \ - _(940, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CONST_OP_DATA_CV) \ - _(941, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST) \ - _(942, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP) \ - _(943, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR) \ - _(945, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV) \ - _(946, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CONST) \ - _(947, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_TMP) \ - _(948, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_VAR) \ - _(950, ZEND_ASSIGN_OBJ_SPEC_UNUSED_TMPVAR_OP_DATA_CV) \ - _(956, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CONST) \ - _(957, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_TMP) \ - _(958, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_VAR) \ - _(960, ZEND_ASSIGN_OBJ_SPEC_UNUSED_CV_OP_DATA_CV) \ - _(961, ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CONST) \ - _(962, ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_TMP) \ - _(963, ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_VAR) \ - _(965, ZEND_ASSIGN_OBJ_SPEC_CV_CONST_OP_DATA_CV) \ - _(966, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST) \ - _(967, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP) \ - _(968, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR) \ - _(970, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV) \ - _(971, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CONST) \ - _(972, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_TMP) \ - _(973, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_VAR) \ - _(975, ZEND_ASSIGN_OBJ_SPEC_CV_TMPVAR_OP_DATA_CV) \ - _(981, ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CONST) \ - _(982, ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_TMP) \ - _(983, ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_VAR) \ - _(985, ZEND_ASSIGN_OBJ_SPEC_CV_CV_OP_DATA_CV) \ - _(986, ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CONST) \ - _(987, ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_TMP) \ - _(988, ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_VAR) \ - _(990, ZEND_ASSIGN_STATIC_PROP_SPEC_OP_DATA_CV) \ - _(1001, ZEND_ASSIGN_OP_SPEC_VAR_CONST) \ - _(1002, ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR) \ - _(1003, ZEND_ASSIGN_OP_SPEC_VAR_TMPVAR) \ - _(1005, ZEND_ASSIGN_OP_SPEC_VAR_CV) \ - _(1011, ZEND_ASSIGN_OP_SPEC_CV_CONST) \ - _(1012, ZEND_ASSIGN_OP_SPEC_CV_TMPVAR) \ - _(1013, ZEND_ASSIGN_OP_SPEC_CV_TMPVAR) \ - _(1015, ZEND_ASSIGN_OP_SPEC_CV_CV) \ - _(1026, ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST) \ - _(1027, ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR) \ - _(1028, ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR) \ - _(1029, ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED) \ - _(1030, ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV) \ - _(1036, ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST) \ - _(1037, ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR) \ - _(1038, ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR) \ - _(1039, ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED) \ - _(1040, ZEND_ASSIGN_DIM_OP_SPEC_CV_CV) \ - _(1051, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST) \ - _(1052, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR) \ - _(1053, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR) \ - _(1055, ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV) \ - _(1056, ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONST) \ - _(1057, ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR) \ - _(1058, ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPVAR) \ - _(1060, ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV) \ - _(1061, ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST) \ - _(1062, ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR) \ - _(1063, ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR) \ - _(1065, ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV) \ - _(1066, ZEND_ASSIGN_STATIC_PROP_OP_SPEC) \ - _(1079, ZEND_ASSIGN_REF_SPEC_VAR_VAR) \ - _(1081, ZEND_ASSIGN_REF_SPEC_VAR_CV) \ - _(1089, ZEND_ASSIGN_REF_SPEC_CV_VAR) \ - _(1091, ZEND_ASSIGN_REF_SPEC_CV_CV) \ - _(1092, ZEND_QM_ASSIGN_SPEC_CONST) \ - _(1093, ZEND_QM_ASSIGN_SPEC_TMP) \ - _(1094, ZEND_QM_ASSIGN_SPEC_VAR) \ - _(1096, ZEND_QM_ASSIGN_SPEC_CV) \ - _(1149, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_VAR) \ - _(1151, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CONST_OP_DATA_CV) \ - _(1154, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR) \ - _(1156, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV) \ - _(1159, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_VAR) \ - _(1161, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_TMPVAR_OP_DATA_CV) \ - _(1169, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_VAR) \ - _(1171, ZEND_ASSIGN_OBJ_REF_SPEC_VAR_CV_OP_DATA_CV) \ - _(1174, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_VAR) \ - _(1176, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CONST_OP_DATA_CV) \ - _(1179, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR) \ - _(1181, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV) \ - _(1184, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_VAR) \ - _(1186, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_TMPVAR_OP_DATA_CV) \ - _(1194, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_VAR) \ - _(1196, ZEND_ASSIGN_OBJ_REF_SPEC_UNUSED_CV_OP_DATA_CV) \ - _(1199, ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_VAR) \ - _(1201, ZEND_ASSIGN_OBJ_REF_SPEC_CV_CONST_OP_DATA_CV) \ - _(1204, ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR) \ - _(1206, ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV) \ - _(1209, ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_VAR) \ - _(1211, ZEND_ASSIGN_OBJ_REF_SPEC_CV_TMPVAR_OP_DATA_CV) \ - _(1219, ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_VAR) \ - _(1221, ZEND_ASSIGN_OBJ_REF_SPEC_CV_CV_OP_DATA_CV) \ - _(1222, ZEND_ASSIGN_STATIC_PROP_REF_SPEC) \ - _(1227, ZEND_PRE_INC_SPEC_VAR_RETVAL_UNUSED) \ - _(1228, ZEND_PRE_INC_SPEC_VAR_RETVAL_USED) \ - _(1231, ZEND_PRE_INC_SPEC_CV_RETVAL_UNUSED) \ - _(1232, ZEND_PRE_INC_SPEC_CV_RETVAL_USED) \ - _(1237, ZEND_PRE_DEC_SPEC_VAR_RETVAL_UNUSED) \ - _(1238, ZEND_PRE_DEC_SPEC_VAR_RETVAL_USED) \ - _(1241, ZEND_PRE_DEC_SPEC_CV_RETVAL_UNUSED) \ - _(1242, ZEND_PRE_DEC_SPEC_CV_RETVAL_USED) \ - _(1245, ZEND_POST_INC_SPEC_VAR) \ - _(1247, ZEND_POST_INC_SPEC_CV) \ - _(1250, ZEND_POST_DEC_SPEC_VAR) \ - _(1252, ZEND_POST_DEC_SPEC_CV) \ - _(1253, ZEND_PRE_INC_STATIC_PROP_SPEC) \ - _(1254, ZEND_POST_INC_STATIC_PROP_SPEC) \ - _(1255, ZEND_JMP_SPEC) \ - _(1256, ZEND_JMPZ_SPEC_CONST) \ - _(1257, ZEND_JMPZ_SPEC_TMPVAR) \ - _(1258, ZEND_JMPZ_SPEC_TMPVAR) \ - _(1260, ZEND_JMPZ_SPEC_CV) \ - _(1261, ZEND_JMPNZ_SPEC_CONST) \ - _(1262, ZEND_JMPNZ_SPEC_TMPVAR) \ - _(1263, ZEND_JMPNZ_SPEC_TMPVAR) \ - _(1265, ZEND_JMPNZ_SPEC_CV) \ - _(1266, ZEND_JMPZNZ_SPEC_CONST) \ - _(1267, ZEND_JMPZNZ_SPEC_TMPVAR) \ - _(1268, ZEND_JMPZNZ_SPEC_TMPVAR) \ - _(1270, ZEND_JMPZNZ_SPEC_CV) \ - _(1271, ZEND_JMPZ_EX_SPEC_CONST) \ - _(1272, ZEND_JMPZ_EX_SPEC_TMPVAR) \ - _(1273, ZEND_JMPZ_EX_SPEC_TMPVAR) \ - _(1275, ZEND_JMPZ_EX_SPEC_CV) \ - _(1276, ZEND_JMPNZ_EX_SPEC_CONST) \ - _(1277, ZEND_JMPNZ_EX_SPEC_TMPVAR) \ - _(1278, ZEND_JMPNZ_EX_SPEC_TMPVAR) \ - _(1280, ZEND_JMPNZ_EX_SPEC_CV) \ - _(1281, ZEND_CASE_SPEC_TMPVAR_CONST) \ - _(1282, ZEND_CASE_SPEC_TMPVAR_TMPVAR) \ - _(1283, ZEND_CASE_SPEC_TMPVAR_TMPVAR) \ - _(1285, ZEND_CASE_SPEC_TMPVAR_CV) \ - _(1286, ZEND_CHECK_VAR_SPEC_CV_UNUSED) \ - _(1287, ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR) \ - _(1288, ZEND_SEND_VAR_NO_REF_EX_SPEC_VAR_QUICK) \ - _(1289, ZEND_CAST_SPEC_CONST) \ - _(1290, ZEND_CAST_SPEC_TMP) \ - _(1291, ZEND_CAST_SPEC_VAR) \ - _(1293, ZEND_CAST_SPEC_CV) \ - _(1294, ZEND_BOOL_SPEC_CONST) \ - _(1295, ZEND_BOOL_SPEC_TMPVAR) \ - _(1296, ZEND_BOOL_SPEC_TMPVAR) \ - _(1298, ZEND_BOOL_SPEC_CV) \ - _(1299, ZEND_FAST_CONCAT_SPEC_CONST_CONST) \ - _(1300, ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR) \ - _(1301, ZEND_FAST_CONCAT_SPEC_CONST_TMPVAR) \ - _(1303, ZEND_FAST_CONCAT_SPEC_CONST_CV) \ - _(1304, ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST) \ - _(1305, ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(1306, ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(1308, ZEND_FAST_CONCAT_SPEC_TMPVAR_CV) \ - _(1309, ZEND_FAST_CONCAT_SPEC_TMPVAR_CONST) \ - _(1310, ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(1311, ZEND_FAST_CONCAT_SPEC_TMPVAR_TMPVAR) \ - _(1313, ZEND_FAST_CONCAT_SPEC_TMPVAR_CV) \ - _(1319, ZEND_FAST_CONCAT_SPEC_CV_CONST) \ - _(1320, ZEND_FAST_CONCAT_SPEC_CV_TMPVAR) \ - _(1321, ZEND_FAST_CONCAT_SPEC_CV_TMPVAR) \ - _(1323, ZEND_FAST_CONCAT_SPEC_CV_CV) \ - _(1324, ZEND_ROPE_INIT_SPEC_UNUSED_CONST) \ - _(1325, ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR) \ - _(1326, ZEND_ROPE_INIT_SPEC_UNUSED_TMPVAR) \ - _(1328, ZEND_ROPE_INIT_SPEC_UNUSED_CV) \ - _(1329, ZEND_ROPE_ADD_SPEC_TMP_CONST) \ - _(1330, ZEND_ROPE_ADD_SPEC_TMP_TMPVAR) \ - _(1331, ZEND_ROPE_ADD_SPEC_TMP_TMPVAR) \ - _(1333, ZEND_ROPE_ADD_SPEC_TMP_CV) \ - _(1334, ZEND_ROPE_END_SPEC_TMP_CONST) \ - _(1335, ZEND_ROPE_END_SPEC_TMP_TMPVAR) \ - _(1336, ZEND_ROPE_END_SPEC_TMP_TMPVAR) \ - _(1338, ZEND_ROPE_END_SPEC_TMP_CV) \ - _(1339, ZEND_BEGIN_SILENCE_SPEC) \ - _(1340, ZEND_END_SILENCE_SPEC_TMP) \ - _(1341, ZEND_INIT_FCALL_BY_NAME_SPEC_CONST) \ - _(1342, ZEND_DO_FCALL_SPEC_RETVAL_UNUSED) \ - _(1343, ZEND_DO_FCALL_SPEC_RETVAL_USED) \ - _(1344, ZEND_INIT_FCALL_SPEC_CONST) \ - _(1345, ZEND_RETURN_SPEC_CONST) \ - _(1346, ZEND_RETURN_SPEC_TMP) \ - _(1347, ZEND_RETURN_SPEC_VAR) \ - _(1349, ZEND_RETURN_SPEC_CV) \ - _(1350, ZEND_RECV_SPEC_UNUSED) \ - _(1351, ZEND_RECV_INIT_SPEC_CONST) \ - _(1352, ZEND_SEND_VAL_SPEC_CONST) \ - _(1353, ZEND_SEND_VAL_SPEC_TMPVAR) \ - _(1354, ZEND_SEND_VAL_SPEC_TMPVAR) \ - _(1361, ZEND_SEND_VAR_EX_SPEC_VAR) \ - _(1362, ZEND_SEND_VAR_EX_SPEC_VAR_QUICK) \ - _(1365, ZEND_SEND_VAR_EX_SPEC_CV) \ - _(1366, ZEND_SEND_VAR_EX_SPEC_CV_QUICK) \ - _(1369, ZEND_SEND_REF_SPEC_VAR) \ - _(1371, ZEND_SEND_REF_SPEC_CV) \ - _(1372, ZEND_NEW_SPEC_CONST_UNUSED) \ - _(1374, ZEND_NEW_SPEC_VAR_UNUSED) \ - _(1375, ZEND_NEW_SPEC_UNUSED_UNUSED) \ - _(1377, ZEND_INIT_NS_FCALL_BY_NAME_SPEC_CONST) \ - _(1378, ZEND_FREE_SPEC_TMPVAR) \ - _(1379, ZEND_INIT_ARRAY_SPEC_CONST_CONST) \ - _(1380, ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR) \ - _(1381, ZEND_INIT_ARRAY_SPEC_CONST_TMPVAR) \ - _(1382, ZEND_INIT_ARRAY_SPEC_CONST_UNUSED) \ - _(1383, ZEND_INIT_ARRAY_SPEC_CONST_CV) \ - _(1384, ZEND_INIT_ARRAY_SPEC_TMP_CONST) \ - _(1385, ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR) \ - _(1386, ZEND_INIT_ARRAY_SPEC_TMP_TMPVAR) \ - _(1387, ZEND_INIT_ARRAY_SPEC_TMP_UNUSED) \ - _(1388, ZEND_INIT_ARRAY_SPEC_TMP_CV) \ - _(1389, ZEND_INIT_ARRAY_SPEC_VAR_CONST) \ - _(1390, ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR) \ - _(1391, ZEND_INIT_ARRAY_SPEC_VAR_TMPVAR) \ - _(1392, ZEND_INIT_ARRAY_SPEC_VAR_UNUSED) \ - _(1393, ZEND_INIT_ARRAY_SPEC_VAR_CV) \ - _(1394, ZEND_INIT_ARRAY_SPEC_UNUSED_CONST) \ - _(1395, ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR) \ - _(1396, ZEND_INIT_ARRAY_SPEC_UNUSED_TMPVAR) \ - _(1397, ZEND_INIT_ARRAY_SPEC_UNUSED_UNUSED) \ - _(1398, ZEND_INIT_ARRAY_SPEC_UNUSED_CV) \ - _(1399, ZEND_INIT_ARRAY_SPEC_CV_CONST) \ - _(1400, ZEND_INIT_ARRAY_SPEC_CV_TMPVAR) \ - _(1401, ZEND_INIT_ARRAY_SPEC_CV_TMPVAR) \ - _(1402, ZEND_INIT_ARRAY_SPEC_CV_UNUSED) \ - _(1403, ZEND_INIT_ARRAY_SPEC_CV_CV) \ - _(1404, ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST) \ - _(1405, ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR) \ - _(1406, ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMPVAR) \ - _(1407, ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED) \ - _(1408, ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV) \ - _(1409, ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST) \ - _(1410, ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR) \ - _(1411, ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMPVAR) \ - _(1412, ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED) \ - _(1413, ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV) \ - _(1414, ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST) \ - _(1415, ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR) \ - _(1416, ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMPVAR) \ - _(1417, ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED) \ - _(1418, ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV) \ - _(1424, ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST) \ - _(1425, ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR) \ - _(1426, ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMPVAR) \ - _(1427, ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED) \ - _(1428, ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV) \ - _(1429, ZEND_INCLUDE_OR_EVAL_SPEC_CONST) \ - _(1430, ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR) \ - _(1431, ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR) \ - _(1433, ZEND_INCLUDE_OR_EVAL_SPEC_CV) \ - _(1434, ZEND_UNSET_VAR_SPEC_CONST_UNUSED) \ - _(1435, ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED) \ - _(1436, ZEND_UNSET_VAR_SPEC_TMPVAR_UNUSED) \ - _(1438, ZEND_UNSET_VAR_SPEC_CV_UNUSED) \ - _(1449, ZEND_UNSET_DIM_SPEC_VAR_CONST) \ - _(1450, ZEND_UNSET_DIM_SPEC_VAR_TMPVAR) \ - _(1451, ZEND_UNSET_DIM_SPEC_VAR_TMPVAR) \ - _(1453, ZEND_UNSET_DIM_SPEC_VAR_CV) \ - _(1459, ZEND_UNSET_DIM_SPEC_CV_CONST) \ - _(1460, ZEND_UNSET_DIM_SPEC_CV_TMPVAR) \ - _(1461, ZEND_UNSET_DIM_SPEC_CV_TMPVAR) \ - _(1463, ZEND_UNSET_DIM_SPEC_CV_CV) \ - _(1474, ZEND_UNSET_OBJ_SPEC_VAR_CONST) \ - _(1475, ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR) \ - _(1476, ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR) \ - _(1478, ZEND_UNSET_OBJ_SPEC_VAR_CV) \ - _(1479, ZEND_UNSET_OBJ_SPEC_UNUSED_CONST) \ - _(1480, ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR) \ - _(1481, ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR) \ - _(1483, ZEND_UNSET_OBJ_SPEC_UNUSED_CV) \ - _(1484, ZEND_UNSET_OBJ_SPEC_CV_CONST) \ - _(1485, ZEND_UNSET_OBJ_SPEC_CV_TMPVAR) \ - _(1486, ZEND_UNSET_OBJ_SPEC_CV_TMPVAR) \ - _(1488, ZEND_UNSET_OBJ_SPEC_CV_CV) \ - _(1489, ZEND_FE_RESET_R_SPEC_CONST) \ - _(1490, ZEND_FE_RESET_R_SPEC_TMP) \ - _(1491, ZEND_FE_RESET_R_SPEC_VAR) \ - _(1493, ZEND_FE_RESET_R_SPEC_CV) \ - _(1494, ZEND_FE_FETCH_R_SPEC_VAR) \ - _(1495, ZEND_EXIT_SPEC) \ - _(1496, ZEND_FETCH_R_SPEC_CONST_UNUSED) \ - _(1497, ZEND_FETCH_R_SPEC_TMPVAR_UNUSED) \ - _(1498, ZEND_FETCH_R_SPEC_TMPVAR_UNUSED) \ - _(1500, ZEND_FETCH_R_SPEC_CV_UNUSED) \ - _(1501, ZEND_FETCH_DIM_R_SPEC_CONST_CONST) \ - _(1502, ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR) \ - _(1503, ZEND_FETCH_DIM_R_SPEC_CONST_TMPVAR) \ - _(1505, ZEND_FETCH_DIM_R_SPEC_CONST_CV) \ - _(1506, ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST) \ - _(1507, ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR) \ - _(1508, ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR) \ - _(1510, ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV) \ - _(1511, ZEND_FETCH_DIM_R_SPEC_TMPVAR_CONST) \ - _(1512, ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR) \ - _(1513, ZEND_FETCH_DIM_R_SPEC_TMPVAR_TMPVAR) \ - _(1515, ZEND_FETCH_DIM_R_SPEC_TMPVAR_CV) \ - _(1521, ZEND_FETCH_DIM_R_SPEC_CV_CONST) \ - _(1522, ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR) \ - _(1523, ZEND_FETCH_DIM_R_SPEC_CV_TMPVAR) \ - _(1525, ZEND_FETCH_DIM_R_SPEC_CV_CV) \ - _(1526, ZEND_FETCH_OBJ_R_SPEC_CONST_CONST) \ - _(1527, ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR) \ - _(1528, ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR) \ - _(1530, ZEND_FETCH_OBJ_R_SPEC_CONST_CV) \ - _(1531, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST) \ - _(1532, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR) \ - _(1533, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR) \ - _(1535, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV) \ - _(1536, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CONST) \ - _(1537, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR) \ - _(1538, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_TMPVAR) \ - _(1540, ZEND_FETCH_OBJ_R_SPEC_TMPVAR_CV) \ - _(1541, ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST) \ - _(1542, ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR) \ - _(1543, ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR) \ - _(1545, ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV) \ - _(1546, ZEND_FETCH_OBJ_R_SPEC_CV_CONST) \ - _(1547, ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR) \ - _(1548, ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR) \ - _(1550, ZEND_FETCH_OBJ_R_SPEC_CV_CV) \ - _(1551, ZEND_FETCH_W_SPEC_CONST_UNUSED) \ - _(1552, ZEND_FETCH_W_SPEC_TMPVAR_UNUSED) \ - _(1553, ZEND_FETCH_W_SPEC_TMPVAR_UNUSED) \ - _(1555, ZEND_FETCH_W_SPEC_CV_UNUSED) \ - _(1566, ZEND_FETCH_DIM_W_SPEC_VAR_CONST) \ - _(1567, ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR) \ - _(1568, ZEND_FETCH_DIM_W_SPEC_VAR_TMPVAR) \ - _(1569, ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED) \ - _(1570, ZEND_FETCH_DIM_W_SPEC_VAR_CV) \ - _(1576, ZEND_FETCH_DIM_W_SPEC_CV_CONST) \ - _(1577, ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR) \ - _(1578, ZEND_FETCH_DIM_W_SPEC_CV_TMPVAR) \ - _(1579, ZEND_FETCH_DIM_W_SPEC_CV_UNUSED) \ - _(1580, ZEND_FETCH_DIM_W_SPEC_CV_CV) \ - _(1591, ZEND_FETCH_OBJ_W_SPEC_VAR_CONST) \ - _(1592, ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR) \ - _(1593, ZEND_FETCH_OBJ_W_SPEC_VAR_TMPVAR) \ - _(1595, ZEND_FETCH_OBJ_W_SPEC_VAR_CV) \ - _(1596, ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST) \ - _(1597, ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR) \ - _(1598, ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMPVAR) \ - _(1600, ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV) \ - _(1601, ZEND_FETCH_OBJ_W_SPEC_CV_CONST) \ - _(1602, ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR) \ - _(1603, ZEND_FETCH_OBJ_W_SPEC_CV_TMPVAR) \ - _(1605, ZEND_FETCH_OBJ_W_SPEC_CV_CV) \ - _(1606, ZEND_FETCH_RW_SPEC_CONST_UNUSED) \ - _(1607, ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED) \ - _(1608, ZEND_FETCH_RW_SPEC_TMPVAR_UNUSED) \ - _(1610, ZEND_FETCH_RW_SPEC_CV_UNUSED) \ - _(1621, ZEND_FETCH_DIM_RW_SPEC_VAR_CONST) \ - _(1622, ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR) \ - _(1623, ZEND_FETCH_DIM_RW_SPEC_VAR_TMPVAR) \ - _(1624, ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED) \ - _(1625, ZEND_FETCH_DIM_RW_SPEC_VAR_CV) \ - _(1631, ZEND_FETCH_DIM_RW_SPEC_CV_CONST) \ - _(1632, ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR) \ - _(1633, ZEND_FETCH_DIM_RW_SPEC_CV_TMPVAR) \ - _(1634, ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED) \ - _(1635, ZEND_FETCH_DIM_RW_SPEC_CV_CV) \ - _(1646, ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST) \ - _(1647, ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR) \ - _(1648, ZEND_FETCH_OBJ_RW_SPEC_VAR_TMPVAR) \ - _(1650, ZEND_FETCH_OBJ_RW_SPEC_VAR_CV) \ - _(1651, ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST) \ - _(1652, ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR) \ - _(1653, ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMPVAR) \ - _(1655, ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV) \ - _(1656, ZEND_FETCH_OBJ_RW_SPEC_CV_CONST) \ - _(1657, ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR) \ - _(1658, ZEND_FETCH_OBJ_RW_SPEC_CV_TMPVAR) \ - _(1660, ZEND_FETCH_OBJ_RW_SPEC_CV_CV) \ - _(1661, ZEND_FETCH_IS_SPEC_CONST_UNUSED) \ - _(1662, ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED) \ - _(1663, ZEND_FETCH_IS_SPEC_TMPVAR_UNUSED) \ - _(1665, ZEND_FETCH_IS_SPEC_CV_UNUSED) \ - _(1666, ZEND_FETCH_DIM_IS_SPEC_CONST_CONST) \ - _(1667, ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR) \ - _(1668, ZEND_FETCH_DIM_IS_SPEC_CONST_TMPVAR) \ - _(1670, ZEND_FETCH_DIM_IS_SPEC_CONST_CV) \ - _(1671, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST) \ - _(1672, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR) \ - _(1673, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR) \ - _(1675, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV) \ - _(1676, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CONST) \ - _(1677, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR) \ - _(1678, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_TMPVAR) \ - _(1680, ZEND_FETCH_DIM_IS_SPEC_TMPVAR_CV) \ - _(1686, ZEND_FETCH_DIM_IS_SPEC_CV_CONST) \ - _(1687, ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR) \ - _(1688, ZEND_FETCH_DIM_IS_SPEC_CV_TMPVAR) \ - _(1690, ZEND_FETCH_DIM_IS_SPEC_CV_CV) \ - _(1691, ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST) \ - _(1692, ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR) \ - _(1693, ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR) \ - _(1695, ZEND_FETCH_OBJ_IS_SPEC_CONST_CV) \ - _(1696, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST) \ - _(1697, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR) \ - _(1698, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR) \ - _(1700, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV) \ - _(1701, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST) \ - _(1702, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR) \ - _(1703, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR) \ - _(1705, ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV) \ - _(1706, ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST) \ - _(1707, ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR) \ - _(1708, ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR) \ - _(1710, ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV) \ - _(1711, ZEND_FETCH_OBJ_IS_SPEC_CV_CONST) \ - _(1712, ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR) \ - _(1713, ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR) \ - _(1715, ZEND_FETCH_OBJ_IS_SPEC_CV_CV) \ - _(1716, ZEND_FETCH_FUNC_ARG_SPEC_CONST_UNUSED) \ - _(1717, ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED) \ - _(1718, ZEND_FETCH_FUNC_ARG_SPEC_TMPVAR_UNUSED) \ - _(1720, ZEND_FETCH_FUNC_ARG_SPEC_CV_UNUSED) \ - _(1721, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CONST) \ - _(1722, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR) \ - _(1723, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_TMPVAR) \ - _(1724, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_UNUSED) \ - _(1725, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CONST_CV) \ - _(1726, ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CONST) \ - _(1727, ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR) \ - _(1728, ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_TMPVAR) \ - _(1729, ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_UNUSED) \ - _(1730, ZEND_FETCH_DIM_FUNC_ARG_SPEC_TMP_CV) \ - _(1731, ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST) \ - _(1732, ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR) \ - _(1733, ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMPVAR) \ - _(1734, ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED) \ - _(1735, ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV) \ - _(1741, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST) \ - _(1742, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR) \ - _(1743, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMPVAR) \ - _(1744, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED) \ - _(1745, ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV) \ - _(1746, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CONST) \ - _(1747, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR) \ - _(1748, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_TMPVAR) \ - _(1750, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CONST_CV) \ - _(1751, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CONST) \ - _(1752, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR) \ - _(1753, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_TMPVAR) \ - _(1755, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_TMP_CV) \ - _(1756, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST) \ - _(1757, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR) \ - _(1758, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMPVAR) \ - _(1760, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV) \ - _(1761, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST) \ - _(1762, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR) \ - _(1763, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMPVAR) \ - _(1765, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV) \ - _(1766, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST) \ - _(1767, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR) \ - _(1768, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMPVAR) \ - _(1770, ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV) \ - _(1771, ZEND_FETCH_UNSET_SPEC_CONST_UNUSED) \ - _(1772, ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED) \ - _(1773, ZEND_FETCH_UNSET_SPEC_TMPVAR_UNUSED) \ - _(1775, ZEND_FETCH_UNSET_SPEC_CV_UNUSED) \ - _(1786, ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST) \ - _(1787, ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR) \ - _(1788, ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMPVAR) \ - _(1790, ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV) \ - _(1796, ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST) \ - _(1797, ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR) \ - _(1798, ZEND_FETCH_DIM_UNSET_SPEC_CV_TMPVAR) \ - _(1800, ZEND_FETCH_DIM_UNSET_SPEC_CV_CV) \ - _(1811, ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST) \ - _(1812, ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR) \ - _(1813, ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMPVAR) \ - _(1815, ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV) \ - _(1816, ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST) \ - _(1817, ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR) \ - _(1818, ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMPVAR) \ - _(1820, ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV) \ - _(1821, ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST) \ - _(1822, ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR) \ - _(1823, ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMPVAR) \ - _(1825, ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV) \ - _(1826, ZEND_FETCH_LIST_R_SPEC_CONST_CONST) \ - _(1827, ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR) \ - _(1828, ZEND_FETCH_LIST_R_SPEC_CONST_TMPVAR) \ - _(1830, ZEND_FETCH_LIST_R_SPEC_CONST_CV) \ - _(1831, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST) \ - _(1832, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR) \ - _(1833, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR) \ - _(1835, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV) \ - _(1836, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST) \ - _(1837, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR) \ - _(1838, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR) \ - _(1840, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV) \ - _(1846, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CONST) \ - _(1847, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR) \ - _(1848, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_TMPVAR) \ - _(1850, ZEND_FETCH_LIST_R_SPEC_TMPVARCV_CV) \ - _(1851, ZEND_FETCH_CONSTANT_SPEC_UNUSED_CONST) \ - _(1852, ZEND_CHECK_FUNC_ARG_SPEC_UNUSED) \ - _(1853, ZEND_CHECK_FUNC_ARG_SPEC_UNUSED_QUICK) \ - _(1854, ZEND_EXT_STMT_SPEC) \ - _(1855, ZEND_EXT_FCALL_BEGIN_SPEC) \ - _(1856, ZEND_EXT_FCALL_END_SPEC) \ - _(1857, ZEND_EXT_NOP_SPEC) \ - _(1858, ZEND_TICKS_SPEC) \ - _(1859, ZEND_SEND_VAR_NO_REF_SPEC_VAR) \ - _(1860, ZEND_CATCH_SPEC_CONST) \ - _(1861, ZEND_THROW_SPEC_CONST) \ - _(1862, ZEND_THROW_SPEC_TMP) \ - _(1863, ZEND_THROW_SPEC_VAR) \ - _(1865, ZEND_THROW_SPEC_CV) \ - _(1866, ZEND_FETCH_CLASS_SPEC_UNUSED_CONST) \ - _(1867, ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR) \ - _(1868, ZEND_FETCH_CLASS_SPEC_UNUSED_TMPVAR) \ - _(1869, ZEND_FETCH_CLASS_SPEC_UNUSED_UNUSED) \ - _(1870, ZEND_FETCH_CLASS_SPEC_UNUSED_CV) \ - _(1871, ZEND_CLONE_SPEC_CONST) \ - _(1872, ZEND_CLONE_SPEC_TMPVAR) \ - _(1873, ZEND_CLONE_SPEC_TMPVAR) \ - _(1874, ZEND_CLONE_SPEC_UNUSED) \ - _(1875, ZEND_CLONE_SPEC_CV) \ - _(1876, ZEND_RETURN_BY_REF_SPEC_CONST) \ - _(1877, ZEND_RETURN_BY_REF_SPEC_TMP) \ - _(1878, ZEND_RETURN_BY_REF_SPEC_VAR) \ - _(1880, ZEND_RETURN_BY_REF_SPEC_CV) \ - _(1881, ZEND_INIT_METHOD_CALL_SPEC_CONST_CONST) \ - _(1882, ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR) \ - _(1883, ZEND_INIT_METHOD_CALL_SPEC_CONST_TMPVAR) \ - _(1885, ZEND_INIT_METHOD_CALL_SPEC_CONST_CV) \ - _(1886, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST) \ - _(1887, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR) \ - _(1888, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR) \ - _(1890, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV) \ - _(1891, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CONST) \ - _(1892, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR) \ - _(1893, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_TMPVAR) \ - _(1895, ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_CV) \ - _(1896, ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST) \ - _(1897, ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR) \ - _(1898, ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMPVAR) \ - _(1900, ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV) \ - _(1901, ZEND_INIT_METHOD_CALL_SPEC_CV_CONST) \ - _(1902, ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR) \ - _(1903, ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVAR) \ - _(1905, ZEND_INIT_METHOD_CALL_SPEC_CV_CV) \ - _(1906, ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CONST) \ - _(1907, ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR) \ - _(1908, ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_TMPVAR) \ - _(1909, ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_UNUSED) \ - _(1910, ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_CV) \ - _(1916, ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CONST) \ - _(1917, ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR) \ - _(1918, ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_TMPVAR) \ - _(1919, ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_UNUSED) \ - _(1920, ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_CV) \ - _(1921, ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CONST) \ - _(1922, ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR) \ - _(1923, ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_TMPVAR) \ - _(1924, ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_UNUSED) \ - _(1925, ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_CV) \ - _(1931, ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED) \ - _(1932, ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED) \ - _(1933, ZEND_ISSET_ISEMPTY_VAR_SPEC_TMPVAR_UNUSED) \ - _(1935, ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED) \ - _(1936, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CONST) \ - _(1937, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR) \ - _(1938, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_TMPVAR) \ - _(1940, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CONST_CV) \ - _(1941, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST) \ - _(1942, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(1943, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(1945, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV) \ - _(1946, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CONST) \ - _(1947, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(1948, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(1950, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_TMPVAR_CV) \ - _(1956, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CONST) \ - _(1957, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR) \ - _(1958, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_TMPVAR) \ - _(1960, ZEND_ISSET_ISEMPTY_DIM_OBJ_SPEC_CV_CV) \ - _(1961, ZEND_SEND_VAL_EX_SPEC_CONST) \ - _(1962, ZEND_SEND_VAL_EX_SPEC_CONST_QUICK) \ - _(1963, ZEND_SEND_VAL_EX_SPEC_TMP) \ - _(1964, ZEND_SEND_VAL_EX_SPEC_TMP_QUICK) \ - _(1973, ZEND_SEND_VAR_SPEC_VAR) \ - _(1975, ZEND_SEND_VAR_SPEC_CV) \ - _(1976, ZEND_INIT_USER_CALL_SPEC_CONST_CONST) \ - _(1977, ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR) \ - _(1978, ZEND_INIT_USER_CALL_SPEC_CONST_TMPVAR) \ - _(1980, ZEND_INIT_USER_CALL_SPEC_CONST_CV) \ - _(1981, ZEND_SEND_ARRAY_SPEC) \ - _(1982, ZEND_SEND_USER_SPEC_CONST) \ - _(1983, ZEND_SEND_USER_SPEC_TMP) \ - _(1984, ZEND_SEND_USER_SPEC_VAR) \ - _(1986, ZEND_SEND_USER_SPEC_CV) \ - _(1987, ZEND_STRLEN_SPEC_CONST) \ - _(1988, ZEND_STRLEN_SPEC_TMPVAR) \ - _(1989, ZEND_STRLEN_SPEC_TMPVAR) \ - _(1991, ZEND_STRLEN_SPEC_CV) \ - _(1992, ZEND_DEFINED_SPEC_CONST) \ - _(1993, ZEND_TYPE_CHECK_SPEC_CONST) \ - _(1994, ZEND_TYPE_CHECK_SPEC_TMPVAR) \ - _(1995, ZEND_TYPE_CHECK_SPEC_TMPVAR) \ - _(1997, ZEND_TYPE_CHECK_SPEC_CV) \ - _(1998, ZEND_VERIFY_RETURN_TYPE_SPEC_CONST_UNUSED) \ - _(1999, ZEND_VERIFY_RETURN_TYPE_SPEC_TMP_UNUSED) \ - _(2000, ZEND_VERIFY_RETURN_TYPE_SPEC_VAR_UNUSED) \ - _(2001, ZEND_VERIFY_RETURN_TYPE_SPEC_UNUSED_UNUSED) \ - _(2002, ZEND_VERIFY_RETURN_TYPE_SPEC_CV_UNUSED) \ - _(2003, ZEND_FE_RESET_RW_SPEC_CONST) \ - _(2004, ZEND_FE_RESET_RW_SPEC_TMP) \ - _(2005, ZEND_FE_RESET_RW_SPEC_VAR) \ - _(2007, ZEND_FE_RESET_RW_SPEC_CV) \ - _(2008, ZEND_FE_FETCH_RW_SPEC_VAR) \ - _(2009, ZEND_FE_FREE_SPEC_TMPVAR) \ - _(2010, ZEND_INIT_DYNAMIC_CALL_SPEC_CONST) \ - _(2011, ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR) \ - _(2012, ZEND_INIT_DYNAMIC_CALL_SPEC_TMPVAR) \ - _(2014, ZEND_INIT_DYNAMIC_CALL_SPEC_CV) \ - _(2015, ZEND_DO_ICALL_SPEC_RETVAL_UNUSED) \ - _(2016, ZEND_DO_ICALL_SPEC_RETVAL_USED) \ - _(2017, ZEND_DO_UCALL_SPEC_RETVAL_UNUSED) \ - _(2018, ZEND_DO_UCALL_SPEC_RETVAL_USED) \ - _(2019, ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_UNUSED) \ - _(2020, ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED) \ - _(2031, ZEND_PRE_INC_OBJ_SPEC_VAR_CONST) \ - _(2032, ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR) \ - _(2033, ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR) \ - _(2035, ZEND_PRE_INC_OBJ_SPEC_VAR_CV) \ - _(2036, ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST) \ - _(2037, ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR) \ - _(2038, ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR) \ - _(2040, ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV) \ - _(2041, ZEND_PRE_INC_OBJ_SPEC_CV_CONST) \ - _(2042, ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR) \ - _(2043, ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR) \ - _(2045, ZEND_PRE_INC_OBJ_SPEC_CV_CV) \ - _(2056, ZEND_POST_INC_OBJ_SPEC_VAR_CONST) \ - _(2057, ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR) \ - _(2058, ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR) \ - _(2060, ZEND_POST_INC_OBJ_SPEC_VAR_CV) \ - _(2061, ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST) \ - _(2062, ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR) \ - _(2063, ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVAR) \ - _(2065, ZEND_POST_INC_OBJ_SPEC_UNUSED_CV) \ - _(2066, ZEND_POST_INC_OBJ_SPEC_CV_CONST) \ - _(2067, ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR) \ - _(2068, ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR) \ - _(2070, ZEND_POST_INC_OBJ_SPEC_CV_CV) \ - _(2071, ZEND_ECHO_SPEC_CONST) \ - _(2072, ZEND_ECHO_SPEC_TMPVAR) \ - _(2073, ZEND_ECHO_SPEC_TMPVAR) \ - _(2075, ZEND_ECHO_SPEC_CV) \ - _(2082, ZEND_INSTANCEOF_SPEC_TMPVAR_CONST) \ - _(2084, ZEND_INSTANCEOF_SPEC_TMPVAR_VAR) \ - _(2085, ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED) \ - _(2087, ZEND_INSTANCEOF_SPEC_TMPVAR_CONST) \ - _(2089, ZEND_INSTANCEOF_SPEC_TMPVAR_VAR) \ - _(2090, ZEND_INSTANCEOF_SPEC_TMPVAR_UNUSED) \ - _(2097, ZEND_INSTANCEOF_SPEC_CV_CONST) \ - _(2099, ZEND_INSTANCEOF_SPEC_CV_VAR) \ - _(2100, ZEND_INSTANCEOF_SPEC_CV_UNUSED) \ - _(2102, ZEND_GENERATOR_CREATE_SPEC) \ - _(2105, ZEND_MAKE_REF_SPEC_VAR_UNUSED) \ - _(2107, ZEND_MAKE_REF_SPEC_CV_UNUSED) \ - _(2108, ZEND_DECLARE_FUNCTION_SPEC) \ - _(2109, ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_CONST_UNUSED) \ - _(2110, ZEND_DECLARE_CONST_SPEC_CONST_CONST) \ - _(2111, ZEND_DECLARE_CLASS_SPEC_CONST) \ - _(2112, ZEND_DECLARE_CLASS_DELAYED_SPEC_CONST_CONST) \ - _(2113, ZEND_DECLARE_ANON_CLASS_SPEC) \ - _(2114, ZEND_ADD_ARRAY_UNPACK_SPEC) \ - _(2115, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CONST) \ - _(2116, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR) \ - _(2117, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_TMPVAR) \ - _(2119, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CONST_CV) \ - _(2120, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST) \ - _(2121, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(2122, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(2124, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV) \ - _(2125, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CONST) \ - _(2126, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(2127, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_TMPVAR) \ - _(2129, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_TMPVAR_CV) \ - _(2130, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CONST) \ - _(2131, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR) \ - _(2132, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_TMPVAR) \ - _(2134, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_UNUSED_CV) \ - _(2135, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CONST) \ - _(2136, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR) \ - _(2137, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_TMPVAR) \ - _(2139, ZEND_ISSET_ISEMPTY_PROP_OBJ_SPEC_CV_CV) \ - _(2140, ZEND_HANDLE_EXCEPTION_SPEC) \ - _(2141, ZEND_USER_OPCODE_SPEC) \ - _(2142, ZEND_ASSERT_CHECK_SPEC) \ - _(2143, ZEND_JMP_SET_SPEC_CONST) \ - _(2144, ZEND_JMP_SET_SPEC_TMP) \ - _(2145, ZEND_JMP_SET_SPEC_VAR) \ - _(2147, ZEND_JMP_SET_SPEC_CV) \ - _(2148, ZEND_UNSET_CV_SPEC_CV_UNUSED) \ - _(2149, ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_SET) \ - _(2150, ZEND_ISSET_ISEMPTY_CV_SPEC_CV_UNUSED_EMPTY) \ - _(2151, ZEND_FETCH_LIST_W_SPEC_VAR_CONST) \ - _(2152, ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR) \ - _(2153, ZEND_FETCH_LIST_W_SPEC_VAR_TMPVAR) \ - _(2155, ZEND_FETCH_LIST_W_SPEC_VAR_CV) \ - _(2156, ZEND_SEPARATE_SPEC_VAR_UNUSED) \ - _(2157, ZEND_FETCH_CLASS_NAME_SPEC_UNUSED) \ - _(2158, ZEND_CALL_TRAMPOLINE_SPEC) \ - _(2159, ZEND_DISCARD_EXCEPTION_SPEC) \ - _(2160, ZEND_YIELD_SPEC_CONST_CONST) \ - _(2161, ZEND_YIELD_SPEC_CONST_TMP) \ - _(2162, ZEND_YIELD_SPEC_CONST_VAR) \ - _(2163, ZEND_YIELD_SPEC_CONST_UNUSED) \ - _(2164, ZEND_YIELD_SPEC_CONST_CV) \ - _(2165, ZEND_YIELD_SPEC_TMP_CONST) \ - _(2166, ZEND_YIELD_SPEC_TMP_TMP) \ - _(2167, ZEND_YIELD_SPEC_TMP_VAR) \ - _(2168, ZEND_YIELD_SPEC_TMP_UNUSED) \ - _(2169, ZEND_YIELD_SPEC_TMP_CV) \ - _(2170, ZEND_YIELD_SPEC_VAR_CONST) \ - _(2171, ZEND_YIELD_SPEC_VAR_TMP) \ - _(2172, ZEND_YIELD_SPEC_VAR_VAR) \ - _(2173, ZEND_YIELD_SPEC_VAR_UNUSED) \ - _(2174, ZEND_YIELD_SPEC_VAR_CV) \ - _(2175, ZEND_YIELD_SPEC_UNUSED_CONST) \ - _(2176, ZEND_YIELD_SPEC_UNUSED_TMP) \ - _(2177, ZEND_YIELD_SPEC_UNUSED_VAR) \ - _(2178, ZEND_YIELD_SPEC_UNUSED_UNUSED) \ - _(2179, ZEND_YIELD_SPEC_UNUSED_CV) \ - _(2180, ZEND_YIELD_SPEC_CV_CONST) \ - _(2181, ZEND_YIELD_SPEC_CV_TMP) \ - _(2182, ZEND_YIELD_SPEC_CV_VAR) \ - _(2183, ZEND_YIELD_SPEC_CV_UNUSED) \ - _(2184, ZEND_YIELD_SPEC_CV_CV) \ - _(2185, ZEND_GENERATOR_RETURN_SPEC_CONST) \ - _(2186, ZEND_GENERATOR_RETURN_SPEC_TMP) \ - _(2187, ZEND_GENERATOR_RETURN_SPEC_VAR) \ - _(2189, ZEND_GENERATOR_RETURN_SPEC_CV) \ - _(2190, ZEND_FAST_CALL_SPEC) \ - _(2191, ZEND_FAST_RET_SPEC) \ - _(2192, ZEND_RECV_VARIADIC_SPEC_UNUSED) \ - _(2193, ZEND_SEND_UNPACK_SPEC) \ - _(2194, ZEND_YIELD_FROM_SPEC_CONST) \ - _(2195, ZEND_YIELD_FROM_SPEC_TMP) \ - _(2196, ZEND_YIELD_FROM_SPEC_VAR) \ - _(2198, ZEND_YIELD_FROM_SPEC_CV) \ - _(2199, ZEND_COPY_TMP_SPEC_TMPVAR_UNUSED) \ - _(2200, ZEND_BIND_GLOBAL_SPEC_CV_CONST) \ - _(2201, ZEND_COALESCE_SPEC_CONST) \ - _(2202, ZEND_COALESCE_SPEC_TMP) \ - _(2203, ZEND_COALESCE_SPEC_VAR) \ - _(2205, ZEND_COALESCE_SPEC_CV) \ - _(2206, ZEND_SPACESHIP_SPEC_CONST_CONST) \ - _(2207, ZEND_SPACESHIP_SPEC_CONST_TMPVAR) \ - _(2208, ZEND_SPACESHIP_SPEC_CONST_TMPVAR) \ - _(2210, ZEND_SPACESHIP_SPEC_CONST_CV) \ - _(2211, ZEND_SPACESHIP_SPEC_TMPVAR_CONST) \ - _(2212, ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR) \ - _(2213, ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR) \ - _(2215, ZEND_SPACESHIP_SPEC_TMPVAR_CV) \ - _(2216, ZEND_SPACESHIP_SPEC_TMPVAR_CONST) \ - _(2217, ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR) \ - _(2218, ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR) \ - _(2220, ZEND_SPACESHIP_SPEC_TMPVAR_CV) \ - _(2226, ZEND_SPACESHIP_SPEC_CV_CONST) \ - _(2227, ZEND_SPACESHIP_SPEC_CV_TMPVAR) \ - _(2228, ZEND_SPACESHIP_SPEC_CV_TMPVAR) \ - _(2230, ZEND_SPACESHIP_SPEC_CV_CV) \ - _(2231, ZEND_FUNC_NUM_ARGS_SPEC_UNUSED_UNUSED) \ - _(2232, ZEND_FUNC_GET_ARGS_SPEC_CONST_UNUSED) \ - _(2235, ZEND_FUNC_GET_ARGS_SPEC_UNUSED_UNUSED) \ - _(2237, ZEND_FETCH_STATIC_PROP_R_SPEC) \ - _(2238, ZEND_FETCH_STATIC_PROP_W_SPEC) \ - _(2239, ZEND_FETCH_STATIC_PROP_RW_SPEC) \ - _(2240, ZEND_FETCH_STATIC_PROP_IS_SPEC) \ - _(2241, ZEND_FETCH_STATIC_PROP_FUNC_ARG_SPEC) \ - _(2242, ZEND_FETCH_STATIC_PROP_UNSET_SPEC) \ - _(2243, ZEND_UNSET_STATIC_PROP_SPEC) \ - _(2244, ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC) \ - _(2245, ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST) \ - _(2247, ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_CONST) \ - _(2248, ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUSED_CONST) \ - _(2250, ZEND_BIND_LEXICAL_SPEC_TMP_CV) \ - _(2251, ZEND_BIND_STATIC_SPEC_CV_UNUSED) \ - _(2252, ZEND_FETCH_THIS_SPEC_UNUSED_UNUSED) \ - _(2253, ZEND_SEND_FUNC_ARG_SPEC_VAR) \ - _(2254, ZEND_ISSET_ISEMPTY_THIS_SPEC_UNUSED_UNUSED) \ - _(2255, ZEND_SWITCH_LONG_SPEC_CONST_CONST) \ - _(2256, ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST) \ - _(2257, ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST) \ - _(2259, ZEND_SWITCH_LONG_SPEC_TMPVARCV_CONST) \ - _(2260, ZEND_SWITCH_STRING_SPEC_CONST_CONST) \ - _(2261, ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST) \ - _(2262, ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST) \ - _(2264, ZEND_SWITCH_STRING_SPEC_TMPVARCV_CONST) \ - _(2265, ZEND_IN_ARRAY_SPEC_CONST_CONST) \ - _(2266, ZEND_IN_ARRAY_SPEC_TMP_CONST) \ - _(2267, ZEND_IN_ARRAY_SPEC_VAR_CONST) \ - _(2269, ZEND_IN_ARRAY_SPEC_CV_CONST) \ - _(2270, ZEND_COUNT_SPEC_CONST_UNUSED) \ - _(2271, ZEND_COUNT_SPEC_TMPVAR_UNUSED) \ - _(2272, ZEND_COUNT_SPEC_TMPVAR_UNUSED) \ - _(2274, ZEND_COUNT_SPEC_CV_UNUSED) \ - _(2275, ZEND_GET_CLASS_SPEC_CONST_UNUSED) \ - _(2276, ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED) \ - _(2277, ZEND_GET_CLASS_SPEC_TMPVAR_UNUSED) \ - _(2278, ZEND_GET_CLASS_SPEC_UNUSED_UNUSED) \ - _(2279, ZEND_GET_CLASS_SPEC_CV_UNUSED) \ - _(2280, ZEND_GET_CALLED_CLASS_SPEC_UNUSED_UNUSED) \ - _(2281, ZEND_GET_TYPE_SPEC_CONST_UNUSED) \ - _(2282, ZEND_GET_TYPE_SPEC_TMP_UNUSED) \ - _(2283, ZEND_GET_TYPE_SPEC_VAR_UNUSED) \ - _(2285, ZEND_GET_TYPE_SPEC_CV_UNUSED) \ - _(2286, ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CONST) \ - _(2287, ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR) \ - _(2288, ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_TMPVAR) \ - _(2290, ZEND_ARRAY_KEY_EXISTS_SPEC_CONST_CV) \ - _(2291, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST) \ - _(2292, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR) \ - _(2293, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR) \ - _(2295, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV) \ - _(2296, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CONST) \ - _(2297, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR) \ - _(2298, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_TMPVAR) \ - _(2300, ZEND_ARRAY_KEY_EXISTS_SPEC_TMPVAR_CV) \ - _(2306, ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CONST) \ - _(2307, ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR) \ - _(2308, ZEND_ARRAY_KEY_EXISTS_SPEC_CV_TMPVAR) \ - _(2310, ZEND_ARRAY_KEY_EXISTS_SPEC_CV_CV) \ - _(2311, ZEND_JMP_FORWARD_SPEC) \ - _(2317, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2318, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2319, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2321, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2322, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2323, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2324, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2326, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2332, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2333, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2334, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2336, ZEND_ADD_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2342, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ - _(2343, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2344, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2346, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2347, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ - _(2348, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2349, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2351, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2357, ZEND_ADD_LONG_SPEC_TMPVARCV_CONST) \ - _(2358, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2359, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2361, ZEND_ADD_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2367, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2368, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2369, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2371, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2372, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2373, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2374, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2376, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2382, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2383, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2384, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2386, ZEND_ADD_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2388, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ - _(2389, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ - _(2391, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_CONST_TMPVARCV) \ - _(2392, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2393, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2394, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2396, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2397, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2398, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2399, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2401, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2407, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2408, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2409, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2411, ZEND_SUB_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2413, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ - _(2414, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ - _(2416, ZEND_SUB_LONG_SPEC_CONST_TMPVARCV) \ - _(2417, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ - _(2418, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2419, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2421, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2422, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ - _(2423, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2424, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2426, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2432, ZEND_SUB_LONG_SPEC_TMPVARCV_CONST) \ - _(2433, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2434, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2436, ZEND_SUB_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2438, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(2439, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(2441, ZEND_SUB_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(2442, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2443, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2444, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2446, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2447, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2448, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2449, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2451, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2457, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2458, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2459, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2461, ZEND_SUB_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2467, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2468, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2469, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2471, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2472, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2473, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2474, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2476, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2482, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_CONST) \ - _(2483, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2484, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2486, ZEND_MUL_LONG_NO_OVERFLOW_SPEC_TMPVARCV_TMPVARCV) \ - _(2492, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ - _(2493, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2494, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2496, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2497, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ - _(2498, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2499, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2501, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2507, ZEND_MUL_LONG_SPEC_TMPVARCV_CONST) \ - _(2508, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2509, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2511, ZEND_MUL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2517, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2518, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2519, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2521, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2522, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2523, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2524, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2526, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2532, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2533, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2534, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2536, ZEND_MUL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2552, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(2553, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2554, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2555, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2556, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2557, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2558, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2559, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2560, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2564, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2565, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2566, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2567, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(2568, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2569, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2570, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2571, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2572, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2573, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2574, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2575, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2579, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2580, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2581, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2597, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(2598, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2599, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2600, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2601, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2602, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2603, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2604, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2605, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2609, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2610, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2611, ZEND_IS_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2627, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2628, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2629, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2630, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2631, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2632, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2633, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2634, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2635, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2639, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2640, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2641, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2642, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2643, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2644, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2645, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2646, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2647, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2648, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2649, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2650, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2654, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2655, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2656, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2672, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2673, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2674, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2675, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2676, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2677, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2678, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2679, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2680, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2684, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2685, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2686, ZEND_IS_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2702, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(2703, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2704, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2705, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2706, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2707, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2708, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2709, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2710, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2714, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2715, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2716, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2717, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(2718, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2719, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2720, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2721, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2722, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2723, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2724, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2725, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2729, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2730, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2731, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2747, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(2748, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2749, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2750, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2751, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2752, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2753, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2754, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2755, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2759, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2760, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2761, ZEND_IS_NOT_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2777, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2778, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2779, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2780, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2781, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2782, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2783, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2784, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2785, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2789, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2790, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2791, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2792, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2793, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2794, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2795, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2796, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2797, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2798, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2799, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2800, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2804, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2805, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2806, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2822, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2823, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2824, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2825, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2826, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2827, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2828, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2829, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2830, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2834, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2835, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2836, ZEND_IS_NOT_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2840, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ - _(2841, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2842, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2843, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ - _(2844, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2845, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2849, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV) \ - _(2850, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2851, ZEND_IS_SMALLER_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2852, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ - _(2853, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2854, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2855, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2856, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2857, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2858, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2859, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2860, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2864, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2865, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2866, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2867, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ - _(2868, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2869, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2870, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2871, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2872, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2873, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2874, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2875, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2879, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2880, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2881, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2897, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST) \ - _(2898, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2899, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2900, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2901, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2902, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2903, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2904, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2905, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2909, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(2910, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2911, ZEND_IS_SMALLER_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2915, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(2916, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2917, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2918, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(2919, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2920, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2924, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(2925, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2926, ZEND_IS_SMALLER_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2927, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2928, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2929, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2930, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2931, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2932, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2933, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2934, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2935, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2939, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2940, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2941, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2942, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2943, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2944, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2945, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2946, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2947, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2948, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2949, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2950, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2954, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2955, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2956, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2972, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(2973, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(2974, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(2975, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2976, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2977, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2978, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2979, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2980, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2984, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(2985, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(2986, ZEND_IS_SMALLER_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(2990, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ - _(2991, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2992, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2993, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ - _(2994, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(2995, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(2999, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV) \ - _(3000, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3001, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3002, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3003, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3004, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3005, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3006, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3007, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3008, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3009, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3010, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3014, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3015, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3016, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3017, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3018, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3019, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3020, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3021, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3022, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3023, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3024, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3025, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3029, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3030, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3031, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3047, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST) \ - _(3048, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3049, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3050, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3051, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3052, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3053, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3054, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3055, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3059, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV) \ - _(3060, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3061, ZEND_IS_SMALLER_OR_EQUAL_LONG_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3065, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3066, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3067, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3068, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3069, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3070, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3074, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV) \ - _(3075, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPZ) \ - _(3076, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_CONST_TMPVARCV_JMPNZ) \ - _(3077, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3078, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3079, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3080, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3081, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3082, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3083, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3084, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3085, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3089, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3090, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3091, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3092, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3093, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3094, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3095, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3096, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3097, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3098, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3099, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3100, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3104, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3105, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3106, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3122, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST) \ - _(3123, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPZ) \ - _(3124, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_CONST_JMPNZ) \ - _(3125, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3126, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3127, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3128, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3129, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3130, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3134, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV) \ - _(3135, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPZ) \ - _(3136, ZEND_IS_SMALLER_OR_EQUAL_DOUBLE_SPEC_TMPVARCV_TMPVARCV_JMPNZ) \ - _(3137, ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED) \ - _(3138, ZEND_PRE_INC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED) \ - _(3139, ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_UNUSED) \ - _(3140, ZEND_PRE_INC_LONG_SPEC_CV_RETVAL_USED) \ - _(3141, ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_UNUSED) \ - _(3142, ZEND_PRE_DEC_LONG_NO_OVERFLOW_SPEC_CV_RETVAL_USED) \ - _(3143, ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_UNUSED) \ - _(3144, ZEND_PRE_DEC_LONG_SPEC_CV_RETVAL_USED) \ - _(3145, ZEND_POST_INC_LONG_NO_OVERFLOW_SPEC_CV) \ - _(3146, ZEND_POST_INC_LONG_SPEC_CV) \ - _(3147, ZEND_POST_DEC_LONG_NO_OVERFLOW_SPEC_CV) \ - _(3148, ZEND_POST_DEC_LONG_SPEC_CV) \ - _(3149, ZEND_QM_ASSIGN_LONG_SPEC_CONST) \ - _(3150, ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV) \ - _(3151, ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV) \ - _(3153, ZEND_QM_ASSIGN_LONG_SPEC_TMPVARCV) \ - _(3154, ZEND_QM_ASSIGN_DOUBLE_SPEC_CONST) \ - _(3155, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ - _(3156, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ - _(3158, ZEND_QM_ASSIGN_DOUBLE_SPEC_TMPVARCV) \ - _(3159, ZEND_QM_ASSIGN_NOREF_SPEC_CONST) \ - _(3160, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ - _(3161, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ - _(3163, ZEND_QM_ASSIGN_NOREF_SPEC_TMPVARCV) \ - _(3165, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ - _(3166, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ - _(3168, ZEND_FETCH_DIM_R_INDEX_SPEC_CONST_TMPVARCV) \ - _(3169, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST) \ - _(3170, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3171, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3173, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3174, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_CONST) \ - _(3175, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3176, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3178, ZEND_FETCH_DIM_R_INDEX_SPEC_TMPVAR_TMPVARCV) \ - _(3184, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_CONST) \ - _(3185, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ - _(3186, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ - _(3188, ZEND_FETCH_DIM_R_INDEX_SPEC_CV_TMPVARCV) \ - _(3191, ZEND_SEND_VAR_SIMPLE_SPEC_VAR) \ - _(3193, ZEND_SEND_VAR_SIMPLE_SPEC_CV) \ - _(3196, ZEND_SEND_VAR_EX_SIMPLE_SPEC_VAR) \ - _(3198, ZEND_SEND_VAR_EX_SIMPLE_SPEC_CV) \ - _(3199, ZEND_SEND_VAL_SIMPLE_SPEC_CONST) \ - _(3200, ZEND_SEND_VAL_EX_SIMPLE_SPEC_CONST) \ - _(3201, ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_UNUSED) \ - _(3202, ZEND_FE_FETCH_R_SIMPLE_SPEC_VAR_CV_RETVAL_USED) \ - _(3202+1, ZEND_NULL) diff --git a/include/php/Zend/zend_vm_opcodes.h b/include/php/Zend/zend_vm_opcodes.h deleted file mode 100644 index d06f44e..0000000 --- a/include/php/Zend/zend_vm_opcodes.h +++ /dev/null @@ -1,277 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_VM_OPCODES_H -#define ZEND_VM_OPCODES_H - -#define ZEND_VM_SPEC 1 -#define ZEND_VM_LINES 0 -#define ZEND_VM_KIND_CALL 1 -#define ZEND_VM_KIND_SWITCH 2 -#define ZEND_VM_KIND_GOTO 3 -#define ZEND_VM_KIND_HYBRID 4 -/* HYBRID requires support for computed GOTO and global register variables*/ -#if (defined(__GNUC__) && defined(HAVE_GCC_GLOBAL_REGS)) -# define ZEND_VM_KIND ZEND_VM_KIND_HYBRID -#else -# define ZEND_VM_KIND ZEND_VM_KIND_CALL -#endif - -#define ZEND_VM_OP_SPEC 0x00000001 -#define ZEND_VM_OP_CONST 0x00000002 -#define ZEND_VM_OP_TMPVAR 0x00000004 -#define ZEND_VM_OP_TMPVARCV 0x00000008 -#define ZEND_VM_OP_MASK 0x000000f0 -#define ZEND_VM_OP_NUM 0x00000010 -#define ZEND_VM_OP_JMP_ADDR 0x00000020 -#define ZEND_VM_OP_TRY_CATCH 0x00000030 -#define ZEND_VM_OP_THIS 0x00000050 -#define ZEND_VM_OP_NEXT 0x00000060 -#define ZEND_VM_OP_CLASS_FETCH 0x00000070 -#define ZEND_VM_OP_CONSTRUCTOR 0x00000080 -#define ZEND_VM_OP_CONST_FETCH 0x00000090 -#define ZEND_VM_OP_CACHE_SLOT 0x000000a0 -#define ZEND_VM_EXT_VAR_FETCH 0x00010000 -#define ZEND_VM_EXT_ISSET 0x00020000 -#define ZEND_VM_EXT_CACHE_SLOT 0x00040000 -#define ZEND_VM_EXT_ARRAY_INIT 0x00080000 -#define ZEND_VM_EXT_REF 0x00100000 -#define ZEND_VM_EXT_FETCH_REF 0x00200000 -#define ZEND_VM_EXT_DIM_OBJ_WRITE 0x00400000 -#define ZEND_VM_EXT_MASK 0x0f000000 -#define ZEND_VM_EXT_NUM 0x01000000 -#define ZEND_VM_EXT_LAST_CATCH 0x02000000 -#define ZEND_VM_EXT_JMP_ADDR 0x03000000 -#define ZEND_VM_EXT_OP 0x04000000 -#define ZEND_VM_EXT_TYPE 0x07000000 -#define ZEND_VM_EXT_EVAL 0x08000000 -#define ZEND_VM_EXT_TYPE_MASK 0x09000000 -#define ZEND_VM_EXT_SRC 0x0b000000 -#define ZEND_VM_NO_CONST_CONST 0x40000000 -#define ZEND_VM_COMMUTATIVE 0x80000000 -#define ZEND_VM_OP1_FLAGS(flags) (flags & 0xff) -#define ZEND_VM_OP2_FLAGS(flags) ((flags >> 8) & 0xff) - -BEGIN_EXTERN_C() - -ZEND_API const char* ZEND_FASTCALL zend_get_opcode_name(zend_uchar opcode); -ZEND_API uint32_t ZEND_FASTCALL zend_get_opcode_flags(zend_uchar opcode); - -END_EXTERN_C() - -#define ZEND_NOP 0 -#define ZEND_ADD 1 -#define ZEND_SUB 2 -#define ZEND_MUL 3 -#define ZEND_DIV 4 -#define ZEND_MOD 5 -#define ZEND_SL 6 -#define ZEND_SR 7 -#define ZEND_CONCAT 8 -#define ZEND_BW_OR 9 -#define ZEND_BW_AND 10 -#define ZEND_BW_XOR 11 -#define ZEND_POW 12 -#define ZEND_BW_NOT 13 -#define ZEND_BOOL_NOT 14 -#define ZEND_BOOL_XOR 15 -#define ZEND_IS_IDENTICAL 16 -#define ZEND_IS_NOT_IDENTICAL 17 -#define ZEND_IS_EQUAL 18 -#define ZEND_IS_NOT_EQUAL 19 -#define ZEND_IS_SMALLER 20 -#define ZEND_IS_SMALLER_OR_EQUAL 21 -#define ZEND_ASSIGN 22 -#define ZEND_ASSIGN_DIM 23 -#define ZEND_ASSIGN_OBJ 24 -#define ZEND_ASSIGN_STATIC_PROP 25 -#define ZEND_ASSIGN_OP 26 -#define ZEND_ASSIGN_DIM_OP 27 -#define ZEND_ASSIGN_OBJ_OP 28 -#define ZEND_ASSIGN_STATIC_PROP_OP 29 -#define ZEND_ASSIGN_REF 30 -#define ZEND_QM_ASSIGN 31 -#define ZEND_ASSIGN_OBJ_REF 32 -#define ZEND_ASSIGN_STATIC_PROP_REF 33 -#define ZEND_PRE_INC 34 -#define ZEND_PRE_DEC 35 -#define ZEND_POST_INC 36 -#define ZEND_POST_DEC 37 -#define ZEND_PRE_INC_STATIC_PROP 38 -#define ZEND_PRE_DEC_STATIC_PROP 39 -#define ZEND_POST_INC_STATIC_PROP 40 -#define ZEND_POST_DEC_STATIC_PROP 41 -#define ZEND_JMP 42 -#define ZEND_JMPZ 43 -#define ZEND_JMPNZ 44 -#define ZEND_JMPZNZ 45 -#define ZEND_JMPZ_EX 46 -#define ZEND_JMPNZ_EX 47 -#define ZEND_CASE 48 -#define ZEND_CHECK_VAR 49 -#define ZEND_SEND_VAR_NO_REF_EX 50 -#define ZEND_CAST 51 -#define ZEND_BOOL 52 -#define ZEND_FAST_CONCAT 53 -#define ZEND_ROPE_INIT 54 -#define ZEND_ROPE_ADD 55 -#define ZEND_ROPE_END 56 -#define ZEND_BEGIN_SILENCE 57 -#define ZEND_END_SILENCE 58 -#define ZEND_INIT_FCALL_BY_NAME 59 -#define ZEND_DO_FCALL 60 -#define ZEND_INIT_FCALL 61 -#define ZEND_RETURN 62 -#define ZEND_RECV 63 -#define ZEND_RECV_INIT 64 -#define ZEND_SEND_VAL 65 -#define ZEND_SEND_VAR_EX 66 -#define ZEND_SEND_REF 67 -#define ZEND_NEW 68 -#define ZEND_INIT_NS_FCALL_BY_NAME 69 -#define ZEND_FREE 70 -#define ZEND_INIT_ARRAY 71 -#define ZEND_ADD_ARRAY_ELEMENT 72 -#define ZEND_INCLUDE_OR_EVAL 73 -#define ZEND_UNSET_VAR 74 -#define ZEND_UNSET_DIM 75 -#define ZEND_UNSET_OBJ 76 -#define ZEND_FE_RESET_R 77 -#define ZEND_FE_FETCH_R 78 -#define ZEND_EXIT 79 -#define ZEND_FETCH_R 80 -#define ZEND_FETCH_DIM_R 81 -#define ZEND_FETCH_OBJ_R 82 -#define ZEND_FETCH_W 83 -#define ZEND_FETCH_DIM_W 84 -#define ZEND_FETCH_OBJ_W 85 -#define ZEND_FETCH_RW 86 -#define ZEND_FETCH_DIM_RW 87 -#define ZEND_FETCH_OBJ_RW 88 -#define ZEND_FETCH_IS 89 -#define ZEND_FETCH_DIM_IS 90 -#define ZEND_FETCH_OBJ_IS 91 -#define ZEND_FETCH_FUNC_ARG 92 -#define ZEND_FETCH_DIM_FUNC_ARG 93 -#define ZEND_FETCH_OBJ_FUNC_ARG 94 -#define ZEND_FETCH_UNSET 95 -#define ZEND_FETCH_DIM_UNSET 96 -#define ZEND_FETCH_OBJ_UNSET 97 -#define ZEND_FETCH_LIST_R 98 -#define ZEND_FETCH_CONSTANT 99 -#define ZEND_CHECK_FUNC_ARG 100 -#define ZEND_EXT_STMT 101 -#define ZEND_EXT_FCALL_BEGIN 102 -#define ZEND_EXT_FCALL_END 103 -#define ZEND_EXT_NOP 104 -#define ZEND_TICKS 105 -#define ZEND_SEND_VAR_NO_REF 106 -#define ZEND_CATCH 107 -#define ZEND_THROW 108 -#define ZEND_FETCH_CLASS 109 -#define ZEND_CLONE 110 -#define ZEND_RETURN_BY_REF 111 -#define ZEND_INIT_METHOD_CALL 112 -#define ZEND_INIT_STATIC_METHOD_CALL 113 -#define ZEND_ISSET_ISEMPTY_VAR 114 -#define ZEND_ISSET_ISEMPTY_DIM_OBJ 115 -#define ZEND_SEND_VAL_EX 116 -#define ZEND_SEND_VAR 117 -#define ZEND_INIT_USER_CALL 118 -#define ZEND_SEND_ARRAY 119 -#define ZEND_SEND_USER 120 -#define ZEND_STRLEN 121 -#define ZEND_DEFINED 122 -#define ZEND_TYPE_CHECK 123 -#define ZEND_VERIFY_RETURN_TYPE 124 -#define ZEND_FE_RESET_RW 125 -#define ZEND_FE_FETCH_RW 126 -#define ZEND_FE_FREE 127 -#define ZEND_INIT_DYNAMIC_CALL 128 -#define ZEND_DO_ICALL 129 -#define ZEND_DO_UCALL 130 -#define ZEND_DO_FCALL_BY_NAME 131 -#define ZEND_PRE_INC_OBJ 132 -#define ZEND_PRE_DEC_OBJ 133 -#define ZEND_POST_INC_OBJ 134 -#define ZEND_POST_DEC_OBJ 135 -#define ZEND_ECHO 136 -#define ZEND_OP_DATA 137 -#define ZEND_INSTANCEOF 138 -#define ZEND_GENERATOR_CREATE 139 -#define ZEND_MAKE_REF 140 -#define ZEND_DECLARE_FUNCTION 141 -#define ZEND_DECLARE_LAMBDA_FUNCTION 142 -#define ZEND_DECLARE_CONST 143 -#define ZEND_DECLARE_CLASS 144 -#define ZEND_DECLARE_CLASS_DELAYED 145 -#define ZEND_DECLARE_ANON_CLASS 146 -#define ZEND_ADD_ARRAY_UNPACK 147 -#define ZEND_ISSET_ISEMPTY_PROP_OBJ 148 -#define ZEND_HANDLE_EXCEPTION 149 -#define ZEND_USER_OPCODE 150 -#define ZEND_ASSERT_CHECK 151 -#define ZEND_JMP_SET 152 -#define ZEND_UNSET_CV 153 -#define ZEND_ISSET_ISEMPTY_CV 154 -#define ZEND_FETCH_LIST_W 155 -#define ZEND_SEPARATE 156 -#define ZEND_FETCH_CLASS_NAME 157 -#define ZEND_CALL_TRAMPOLINE 158 -#define ZEND_DISCARD_EXCEPTION 159 -#define ZEND_YIELD 160 -#define ZEND_GENERATOR_RETURN 161 -#define ZEND_FAST_CALL 162 -#define ZEND_FAST_RET 163 -#define ZEND_RECV_VARIADIC 164 -#define ZEND_SEND_UNPACK 165 -#define ZEND_YIELD_FROM 166 -#define ZEND_COPY_TMP 167 -#define ZEND_BIND_GLOBAL 168 -#define ZEND_COALESCE 169 -#define ZEND_SPACESHIP 170 -#define ZEND_FUNC_NUM_ARGS 171 -#define ZEND_FUNC_GET_ARGS 172 -#define ZEND_FETCH_STATIC_PROP_R 173 -#define ZEND_FETCH_STATIC_PROP_W 174 -#define ZEND_FETCH_STATIC_PROP_RW 175 -#define ZEND_FETCH_STATIC_PROP_IS 176 -#define ZEND_FETCH_STATIC_PROP_FUNC_ARG 177 -#define ZEND_FETCH_STATIC_PROP_UNSET 178 -#define ZEND_UNSET_STATIC_PROP 179 -#define ZEND_ISSET_ISEMPTY_STATIC_PROP 180 -#define ZEND_FETCH_CLASS_CONSTANT 181 -#define ZEND_BIND_LEXICAL 182 -#define ZEND_BIND_STATIC 183 -#define ZEND_FETCH_THIS 184 -#define ZEND_SEND_FUNC_ARG 185 -#define ZEND_ISSET_ISEMPTY_THIS 186 -#define ZEND_SWITCH_LONG 187 -#define ZEND_SWITCH_STRING 188 -#define ZEND_IN_ARRAY 189 -#define ZEND_COUNT 190 -#define ZEND_GET_CLASS 191 -#define ZEND_GET_CALLED_CLASS 192 -#define ZEND_GET_TYPE 193 -#define ZEND_ARRAY_KEY_EXISTS 194 - -#define ZEND_VM_LAST_OPCODE 194 - -#endif diff --git a/include/php/Zend/zend_vm_trace_handlers.h b/include/php/Zend/zend_vm_trace_handlers.h deleted file mode 100644 index 414d4d5..0000000 --- a/include/php/Zend/zend_vm_trace_handlers.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#include "zend_sort.h" - -#define VM_TRACE(op) zend_vm_trace(#op, sizeof(#op)-1); -#define VM_TRACE_START() zend_vm_trace_init(); -#define VM_TRACE_END() zend_vm_trace_finish(); - -static HashTable vm_trace_ht; - -static void zend_vm_trace(const char *op, size_t op_len) -{ - static const char *last = NULL; - static size_t last_len = 0; - char buf[256]; - size_t len; - zval tmp, *zv; - - if (EXPECTED(last)) { - len = last_len + 1 + op_len; - memcpy(buf, last, last_len); - buf[last_len] = ' '; - memcpy(buf + last_len + 1, op, op_len + 1); - zv = zend_hash_str_find(&vm_trace_ht, buf, len); - if (EXPECTED(zv)) { - if (EXPECTED(Z_LVAL_P(zv) < ZEND_LONG_MAX)) { - Z_LVAL_P(zv)++; - } - } else { - ZVAL_LONG(&tmp, 1); - zend_hash_str_add_new(&vm_trace_ht, buf, len, &tmp); - } - } - last = op; - last_len = op_len; -} - -static int zend_vm_trace_compare(const Bucket *p1, const Bucket *p2) -{ - if (Z_LVAL(p1->val) < Z_LVAL(p2->val)) { - return 1; - } else if (Z_LVAL(p1->val) > Z_LVAL(p2->val)) { - return -1; - } else { - return 0; - } -} - -static void zend_vm_trace_finish(void) -{ - zend_string *key; - zval *val; - FILE *f; - - f = fopen("zend_vm_trace.log", "w+"); - if (f) { - zend_hash_sort(&vm_trace_ht, (compare_func_t)zend_vm_trace_compare, 0); - ZEND_HASH_FOREACH_STR_KEY_VAL(&vm_trace_ht, key, val) { - fprintf(f, "%s "ZEND_LONG_FMT"\n", ZSTR_VAL(key), Z_LVAL_P(val)); - } ZEND_HASH_FOREACH_END(); - fclose(f); - } - zend_hash_destroy(&vm_trace_ht); -} - -static void zend_vm_trace_init(void) -{ - FILE *f; - - zend_hash_init(&vm_trace_ht, 0, NULL, NULL, 1); - f = fopen("zend_vm_trace.log", "r"); - if (f) { - char buf[256]; - size_t len; - zval tmp; - - while (!feof(f)) { - if (fgets(buf, sizeof(buf)-1, f)) { - len = strlen(buf); - while (len > 0 && buf[len-1] <= ' ') { - len--; - buf[len] = 0; - } - while (len > 0 && buf[len-1] >= '0' && buf[len-1] <= '9') { - len--; - } - if (len > 1) { - buf[len-1] = 0; - ZVAL_LONG(&tmp, ZEND_STRTOL(buf + len, NULL, 10)); - zend_hash_str_add(&vm_trace_ht, buf, len - 1, &tmp); - } - } - } - fclose(f); - } -} diff --git a/include/php/Zend/zend_vm_trace_map.h b/include/php/Zend/zend_vm_trace_map.h deleted file mode 100644 index 4a46a30..0000000 --- a/include/php/Zend/zend_vm_trace_map.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -#include "zend_vm_handlers.h" -#include "zend_sort.h" - -#define GEN_MAP(n, name) do { \ - ZVAL_LONG(&tmp, (zend_long)(uintptr_t)zend_opcode_handlers[n]); \ - zend_hash_str_add(&vm_trace_ht, #name, sizeof(#name) - 1, &tmp); \ - } while (0); - -#define VM_TRACE_START() do { \ - zval tmp; \ - zend_hash_init(&vm_trace_ht, 0, NULL, NULL, 1); \ - VM_HANDLERS(GEN_MAP) \ - zend_vm_trace_init(); \ - } while (0) - -#ifdef _WIN64 -# define ADDR_FMT "%016I64x" -#elif SIZEOF_SIZE_T == 4 -# define ADDR_FMT "%08zx" -#elif SIZEOF_SIZE_T == 8 -# define ADDR_FMT "%016zx" -#else -# error "Unknown SIZEOF_SIZE_T" -#endif - -static HashTable vm_trace_ht; - -static int zend_vm_trace_compare(const Bucket *p1, const Bucket *p2) -{ - if (Z_LVAL(p1->val) > Z_LVAL(p2->val)) { - return 1; - } else if (Z_LVAL(p1->val) < Z_LVAL(p2->val)) { - return -1; - } else { - return 0; - } -} - -static void zend_vm_trace_init(void) -{ - FILE *f; - zend_string *key, *prev_key; - zval *val; - zend_long prev_addr; - - f = fopen("zend_vm.map", "w+"); - if (f) { - zend_hash_sort(&vm_trace_ht, (compare_func_t)zend_vm_trace_compare, 0); - prev_key = NULL; - ZEND_HASH_FOREACH_STR_KEY_VAL(&vm_trace_ht, key, val) { - if (prev_key) { - fprintf(f, ADDR_FMT" "ADDR_FMT" t %s\n", prev_addr, Z_LVAL_P(val) - prev_addr, ZSTR_VAL(prev_key)); - } - prev_key = key; - prev_addr = Z_LVAL_P(val); - } ZEND_HASH_FOREACH_END(); - if (prev_key) { - fprintf(f, ADDR_FMT" "ADDR_FMT" t %s\n", prev_addr, 0, ZSTR_VAL(prev_key)); - } - fclose(f); - } - zend_hash_destroy(&vm_trace_ht); -} diff --git a/include/php/Zend/zend_weakrefs.h b/include/php/Zend/zend_weakrefs.h deleted file mode 100644 index c8a65e2..0000000 --- a/include/php/Zend/zend_weakrefs.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: krakjoe@php.net | - +----------------------------------------------------------------------+ -*/ - -#ifndef ZEND_WEAKREFS_H -#define ZEND_WEAKREFS_H - -BEGIN_EXTERN_C() - -extern ZEND_API zend_class_entry *zend_ce_weakref; - -void zend_register_weakref_ce(void); - -void zend_weakrefs_init(); -void zend_weakrefs_shutdown(); - -ZEND_API void zend_weakrefs_notify(zend_object *object); - -END_EXTERN_C() - -#endif - diff --git a/include/php/ext/date/lib/timelib.h b/include/php/ext/date/lib/timelib.h deleted file mode 100644 index 29e95e5..0000000 --- a/include/php/ext/date/lib/timelib.h +++ /dev/null @@ -1,967 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2015-2019 Derick Rethans - * Copyright (c) 2018 MongoDB, Inc. - * - * 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. - */ - -#ifndef __TIMELIB_H__ -#define __TIMELIB_H__ - -#ifdef HAVE_TIMELIB_CONFIG_H -# include "timelib_config.h" -#endif - -#include -#include -#include -#include - -# ifndef HAVE_INT32_T -# if SIZEOF_INT == 4 -typedef int int32_t; -# elif SIZEOF_LONG == 4 -typedef long int int32_t; -# endif -# endif - -# ifndef HAVE_UINT32_T -# if SIZEOF_INT == 4 -typedef unsigned int uint32_t; -# elif SIZEOF_LONG == 4 -typedef unsigned long int uint32_t; -# endif -# endif - -#ifdef _WIN32 -# if _MSC_VER >= 1600 -# include -# endif -# ifndef SIZEOF_INT -# define SIZEOF_INT 4 -# endif -# ifndef SIZEOF_LONG -# define SIZEOF_LONG 4 -# endif -# ifndef int32_t -typedef __int32 int32_t; -# endif -# ifndef uint32_t -typedef unsigned __int32 uint32_t; -# endif -# ifndef int64_t -typedef __int64 int64_t; -# endif -# ifndef uint64_t -typedef unsigned __int64 uint64_t; -# endif -# ifndef PRId32 -# define PRId32 "I32d" -# endif -# ifndef PRIu32 -# define PRIu32 "I32u" -# endif -# ifndef PRId64 -# define PRId64 "I64d" -# endif -# ifndef PRIu64 -# define PRIu64 "I64u" -# endif -# ifndef INT32_MAX -#define INT32_MAX _I32_MAX -# endif -# ifndef INT32_MIN -#define INT32_MIN ((int32_t)_I32_MIN) -# endif -# ifndef UINT32_MAX -#define UINT32_MAX _UI32_MAX -# endif -# ifndef INT64_MIN -#define INT64_MIN ((int64_t)_I64_MIN) -# endif -# ifndef INT64_MAX -#define INT64_MAX _I64_MAX -# endif -# ifndef UINT64_MAX -#define UINT64_MAX _UI64_MAX -# endif -#endif - -#if (defined(__x86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64)) && !defined(TIMELIB_FORCE_LONG32) -typedef int64_t timelib_long; -typedef uint64_t timelib_ulong; -# define TIMELIB_LONG_MAX INT64_MAX -# define TIMELIB_LONG_MIN INT64_MIN -# define TIMELIB_ULONG_MAX UINT64_MAX -# define TIMELIB_LONG_FMT "%" PRId64 -# define TIMELIB_ULONG_FMT "%" PRIu64 -#else -typedef int32_t timelib_long; -typedef uint32_t timelib_ulong; -# define TIMELIB_LONG_MAX INT32_MAX -# define TIMELIB_LONG_MIN INT32_MIN -# define TIMELIB_ULONG_MAX UINT32_MAX -# define TIMELIB_LONG_FMT "%" PRId32 -# define TIMELIB_ULONG_FMT "%" PRIu32 -#endif - -#if defined(_MSC_VER) -typedef uint64_t timelib_ull; -typedef int64_t timelib_sll; -# define TIMELIB_LL_CONST(n) n ## i64 -#else -typedef unsigned long long timelib_ull; -typedef signed long long timelib_sll; -# define TIMELIB_LL_CONST(n) n ## ll -#endif - -typedef struct _ttinfo ttinfo; -typedef struct _tlinfo tlinfo; - -typedef struct _tlocinfo -{ - char country_code[3]; - double latitude; - double longitude; - char *comments; -} tlocinfo; - -typedef struct _timelib_tzinfo -{ - char *name; - struct { - uint32_t ttisgmtcnt; - uint32_t ttisstdcnt; - uint32_t leapcnt; - uint32_t timecnt; - uint32_t typecnt; - uint32_t charcnt; - } _bit32; - struct { - uint64_t ttisgmtcnt; - uint64_t ttisstdcnt; - uint64_t leapcnt; - uint64_t timecnt; - uint64_t typecnt; - uint64_t charcnt; - } bit64; - - int64_t *trans; - unsigned char *trans_idx; - - ttinfo *type; - char *timezone_abbr; - - tlinfo *leap_times; - unsigned char bc; - tlocinfo location; -} timelib_tzinfo; - -typedef struct _timelib_rel_time { - timelib_sll y, m, d; /* Years, Months and Days */ - timelib_sll h, i, s; /* Hours, mInutes and Seconds */ - timelib_sll us; /* Microseconds */ - - int weekday; /* Stores the day in 'next monday' */ - int weekday_behavior; /* 0: the current day should *not* be counted when advancing forwards; 1: the current day *should* be counted */ - - int first_last_day_of; - int invert; /* Whether the difference should be inverted */ - timelib_sll days; /* Contains the number of *days*, instead of Y-M-D differences */ - - struct { - unsigned int type; - timelib_sll amount; - } special; - - unsigned int have_weekday_relative, have_special_relative; -} timelib_rel_time; - -typedef struct _timelib_time_offset { - int32_t offset; - unsigned int leap_secs; - unsigned int is_dst; - char *abbr; - timelib_sll transition_time; -} timelib_time_offset; - -typedef struct _timelib_time { - timelib_sll y, m, d; /* Year, Month, Day */ - timelib_sll h, i, s; /* Hour, mInute, Second */ - timelib_sll us; /* Microseconds */ - int z; /* UTC offset in seconds */ - char *tz_abbr; /* Timezone abbreviation (display only) */ - timelib_tzinfo *tz_info; /* Timezone structure */ - signed int dst; /* Flag if we were parsing a DST zone */ - timelib_rel_time relative; - - timelib_sll sse; /* Seconds since epoch */ - - unsigned int have_time, have_date, have_zone, have_relative, have_weeknr_day; - - unsigned int sse_uptodate; /* !0 if the sse member is up to date with the date/time members */ - unsigned int tim_uptodate; /* !0 if the date/time members are up to date with the sse member */ - unsigned int is_localtime; /* 1 if the current struct represents localtime, 0 if it is in GMT */ - unsigned int zone_type; /* 1 time offset, - * 3 TimeZone identifier, - * 2 TimeZone abbreviation */ -} timelib_time; - -typedef struct _timelib_abbr_info { - timelib_sll utc_offset; - char *abbr; - int dst; -} timelib_abbr_info; - -#define TIMELIB_WARN_MASK 0x1ff -#define TIMELIB_ERR_MASK 0x2ff - -#define TIMELIB_WARN_DOUBLE_TZ 0x101 -#define TIMELIB_WARN_INVALID_TIME 0x102 -#define TIMELIB_WARN_INVALID_DATE 0x103 -#define TIMELIB_WARN_TRAILING_DATA 0x11a - -#define TIMELIB_ERR_DOUBLE_TZ 0x201 -#define TIMELIB_ERR_TZID_NOT_FOUND 0x202 -#define TIMELIB_ERR_DOUBLE_TIME 0x203 -#define TIMELIB_ERR_DOUBLE_DATE 0x204 -#define TIMELIB_ERR_UNEXPECTED_CHARACTER 0x205 -#define TIMELIB_ERR_EMPTY_STRING 0x206 -#define TIMELIB_ERR_UNEXPECTED_DATA 0x207 -#define TIMELIB_ERR_NO_TEXTUAL_DAY 0x208 -#define TIMELIB_ERR_NO_TWO_DIGIT_DAY 0x209 -#define TIMELIB_ERR_NO_THREE_DIGIT_DAY_OF_YEAR 0x20a -#define TIMELIB_ERR_NO_TWO_DIGIT_MONTH 0x20b -#define TIMELIB_ERR_NO_TEXTUAL_MONTH 0x20c -#define TIMELIB_ERR_NO_TWO_DIGIT_YEAR 0x20d -#define TIMELIB_ERR_NO_FOUR_DIGIT_YEAR 0x20e -#define TIMELIB_ERR_NO_TWO_DIGIT_HOUR 0x20f -#define TIMELIB_ERR_HOUR_LARGER_THAN_12 0x210 -#define TIMELIB_ERR_MERIDIAN_BEFORE_HOUR 0x211 -#define TIMELIB_ERR_NO_MERIDIAN 0x212 -#define TIMELIB_ERR_NO_TWO_DIGIT_MINUTE 0x213 -#define TIMELIB_ERR_NO_TWO_DIGIT_SECOND 0x214 -#define TIMELIB_ERR_NO_SIX_DIGIT_MICROSECOND 0x215 -#define TIMELIB_ERR_NO_SEP_SYMBOL 0x216 -#define TIMELIB_ERR_EXPECTED_ESCAPE_CHAR 0x217 -#define TIMELIB_ERR_NO_ESCAPED_CHAR 0x218 -#define TIMELIB_ERR_WRONG_FORMAT_SEP 0x219 -#define TIMELIB_ERR_TRAILING_DATA 0x21a -#define TIMELIB_ERR_DATA_MISSING 0x21b -#define TIMELIB_ERR_NO_THREE_DIGIT_MILLISECOND 0x21c -#define TIMELIB_ERR_NO_FOUR_DIGIT_YEAR_ISO 0x21d -#define TIMELIB_ERR_NO_TWO_DIGIT_WEEK 0x21e -#define TIMELIB_ERR_INVALID_WEEK 0x21f -#define TIMELIB_ERR_NO_DAY_OF_WEEK 0x220 -#define TIMELIB_ERR_INVALID_DAY_OF_WEEK 0x221 -#define TIMELIB_ERR_INVALID_SPECIFIER 0x222 -#define TIMELIB_ERR_INVALID_TZ_OFFSET 0x223 -#define TIMELIB_ERR_FORMAT_LITERAL_MISMATCH 0x224 -#define TIMELIB_ERR_MIX_ISO_WITH_NATURAL 0x225 - -#define TIMELIB_ZONETYPE_OFFSET 1 -#define TIMELIB_ZONETYPE_ABBR 2 -#define TIMELIB_ZONETYPE_ID 3 - -typedef struct _timelib_error_message { - int error_code; - int position; - char character; - char *message; -} timelib_error_message; - -typedef struct _timelib_error_container { - timelib_error_message *error_messages; - timelib_error_message *warning_messages; - int error_count; - int warning_count; -} timelib_error_container; - -typedef struct _timelib_tz_lookup_table { - char *name; - int type; - float gmtoffset; - char *full_tz_name; -} timelib_tz_lookup_table; - -typedef struct _timelib_tzdb_index_entry { - char *id; - unsigned int pos; -} timelib_tzdb_index_entry; - -typedef struct _timelib_tzdb { - char *version; - int index_size; - const timelib_tzdb_index_entry *index; - const unsigned char *data; -} timelib_tzdb; - -#ifndef timelib_malloc -# define timelib_malloc malloc -# define timelib_realloc realloc -# define timelib_calloc calloc -# define timelib_strdup strdup -# define timelib_free free -#endif - -#define TIMELIB_VERSION 201804 -#define TIMELIB_EXTENDED_VERSION 20180401 -#define TIMELIB_ASCII_VERSION "2018.04" - -#define TIMELIB_NONE 0x00 -#define TIMELIB_OVERRIDE_TIME 0x01 -#define TIMELIB_NO_CLONE 0x02 - -#define TIMELIB_UNSET -99999 - -/* An entry for each of these error codes is also in the - * timelib_error_messages array in timelib.c */ -#define TIMELIB_ERROR_NO_ERROR 0x00 -#define TIMELIB_ERROR_CANNOT_ALLOCATE 0x01 -#define TIMELIB_ERROR_CORRUPT_TRANSITIONS_DONT_INCREASE 0x02 -#define TIMELIB_ERROR_CORRUPT_NO_64BIT_PREAMBLE 0x03 -#define TIMELIB_ERROR_CORRUPT_NO_ABBREVIATION 0x04 -#define TIMELIB_ERROR_UNSUPPORTED_VERSION 0x05 -#define TIMELIB_ERROR_NO_SUCH_TIMEZONE 0x06 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum _timelib_format_specifier_code { - TIMELIB_FORMAT_ALLOW_EXTRA_CHARACTERS = 0, - TIMELIB_FORMAT_ANY_SEPARATOR, - TIMELIB_FORMAT_DAY_TWO_DIGIT, - TIMELIB_FORMAT_DAY_TWO_DIGIT_PADDED, - TIMELIB_FORMAT_DAY_OF_WEEK_ISO, - TIMELIB_FORMAT_DAY_OF_WEEK, - TIMELIB_FORMAT_DAY_OF_YEAR, - TIMELIB_FORMAT_DAY_SUFFIX, - TIMELIB_FORMAT_END, - TIMELIB_FORMAT_EPOCH_SECONDS, - TIMELIB_FORMAT_ESCAPE, - TIMELIB_FORMAT_HOUR_TWO_DIGIT_12_MAX, - TIMELIB_FORMAT_HOUR_TWO_DIGIT_12_MAX_PADDED, - TIMELIB_FORMAT_HOUR_TWO_DIGIT_24_MAX, - TIMELIB_FORMAT_HOUR_TWO_DIGIT_24_MAX_PADDED, - TIMELIB_FORMAT_LITERAL, - TIMELIB_FORMAT_MERIDIAN, - TIMELIB_FORMAT_MICROSECOND_SIX_DIGIT, - TIMELIB_FORMAT_MILLISECOND_THREE_DIGIT, - TIMELIB_FORMAT_MINUTE_TWO_DIGIT, - TIMELIB_FORMAT_MONTH_TWO_DIGIT, - TIMELIB_FORMAT_MONTH_TWO_DIGIT_PADDED, - TIMELIB_FORMAT_RANDOM_CHAR, - TIMELIB_FORMAT_RESET_ALL, - TIMELIB_FORMAT_RESET_ALL_WHEN_NOT_SET, - TIMELIB_FORMAT_SECOND_TWO_DIGIT, - TIMELIB_FORMAT_SEPARATOR, - TIMELIB_FORMAT_SKIP_TO_SEPARATOR, - TIMELIB_FORMAT_TEXTUAL_DAY_3_LETTER, - TIMELIB_FORMAT_TEXTUAL_DAY_FULL, - TIMELIB_FORMAT_TEXTUAL_MONTH_3_LETTER, - TIMELIB_FORMAT_TEXTUAL_MONTH_FULL, - TIMELIB_FORMAT_TIMEZONE_OFFSET, - TIMELIB_FORMAT_TIMEZONE_OFFSET_MINUTES, - TIMELIB_FORMAT_WEEK_OF_YEAR_ISO, - TIMELIB_FORMAT_WEEK_OF_YEAR, - TIMELIB_FORMAT_WHITESPACE, - TIMELIB_FORMAT_YEAR_TWO_DIGIT, - TIMELIB_FORMAT_YEAR_FOUR_DIGIT, - TIMELIB_FORMAT_YEAR_ISO -} timelib_format_specifier_code; - -typedef struct _timelib_format_specifier { - char specifier; - timelib_format_specifier_code code; -} timelib_format_specifier; - -typedef struct _timelib_format_config { - const timelib_format_specifier *format_map; - /* Format speciifiers must be preceded by 'prefix_char' if not '\0'. */ - char prefix_char; -} timelib_format_config; - -/* Function pointers */ -typedef timelib_tzinfo* (*timelib_tz_get_wrapper)(char *tzname, const timelib_tzdb *tzdb, int *error_code); - -/* From dow.c */ -/* Calculates the day of the week from y, m, and d. 0=Sunday..6=Saturday */ -timelib_sll timelib_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d); - -/* Calculates the day of the ISO week from y, m, and d. 1=Monday, 7=Sunday */ -timelib_sll timelib_iso_day_of_week(timelib_sll y, timelib_sll m, timelib_sll d); - -/* Calculates the day of the year according to y-m-d. 0=Jan 1st..364/365=Dec - * 31st */ -timelib_sll timelib_day_of_year(timelib_sll y, timelib_sll m, timelib_sll d); - -/* Calculates the day of the year according to y-w-dow. 0..364/365 */ -timelib_sll timelib_daynr_from_weeknr(timelib_sll iy, timelib_sll iw, timelib_sll id); - -/* Calculates the number of days in month m for year y. 28..31 */ -timelib_sll timelib_days_in_month(timelib_sll y, timelib_sll m); - -/* Calculates the ISO year and week from y, m, and d, into iw and iy */ -void timelib_isoweek_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iw, timelib_sll *iy); - -/* Calculates the ISO year, week, and day of week from y, m, and d, into iy, - * iw, and id */ -void timelib_isodate_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iy, timelib_sll *iw, timelib_sll *id); - -/* Calculates the year, month, and day from iy, iw, and iw, into y, m, and d */ -void timelib_date_from_isodate(timelib_sll iy, timelib_sll iw, timelib_sll id, timelib_sll *y, timelib_sll *m, timelib_sll *d); - -/* Returns true if h, i and s fit in the range 00:00:00..23:59:59, false - * otherwise */ -int timelib_valid_time(timelib_sll h, timelib_sll i, timelib_sll s); - -/* Returns true if m fits in the range 1..12, and d fits in the range - * 1.. for year y */ -int timelib_valid_date(timelib_sll y, timelib_sll m, timelib_sll d); - -/* From parse_date.re */ - -/* Parses the date/time string in 's' with length 'len' into the constituent - * parts of timelib_time*. - * - * Depending on the contents of the string 's', not all elements might be - * filled. You can check whether a specific element has been parsed by - * comparing with the TIMELIB_UNSET define. - * - * If errors occur, this function keeps already parsed elements in the - * returned timelib_time* value. - * - * If the **errors points to a timelib_error_container variable, warnings - * and errors will be recorded. You are responsible for freeing the stored - * information with timelib_error_container_dtor(). To see whether errors have - * occurred, inspect errors->errors_count. To see whether warnings have occurred, - * inspect errors->warnings_count. - * - * The returned timelib_time* value is dynamically allocated and should be - * freed with timelib_time_dtor(). - */ -timelib_time *timelib_strtotime(char *s, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper); - -/* Parses the date/time string in 's' with length 'len' into the constituent - * parts of timelib_time* according to the format in 'format'. - * - * Depending on the contents of the string 's', not all elements might be - * filled. You can check whether a specific element has been parsed by - * comparing with the TIMELIB_UNSET define. - * - * If errors occur, this function keeps already parsed elements in the - * returned timelib_time* value. - * - * If the **errors points to a timelib_error_container variable, warnings - * and errors will be recorded. You are responsible for freeing the stored - * information with timelib_error_container_dtor(). To see whether errors have - * occurred, inspect errors->errors_count. To see whether warnings have occurred, - * inspect errors->warnings_count. - * - * The returned timelib_time* value is dynamically allocated and should be - * freed with timelib_time_dtor(). - */ -timelib_time *timelib_parse_from_format(char *format, char *s, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper); - -/* Parses the date/time string in 's' with length 'len' into the constituent - * parts of timelib_time* according to the format in 'format' with format - * specifier configuration 'format_config'. - * - * 'format_map' is an array of pairs, with the first element being the format - * specifier as a character and the second element corresponds to the - * representation of the specifier from the enum list - * 'timelib_format_specifier_code'. - * - * Note: 'format_map' must be terminated with specifier '\0' to indicate to the - * parser that there are no more format specifiers in the list. - */ -timelib_time *timelib_parse_from_format_with_map(char *format, char *s, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper, const timelib_format_config* format_config); - -/* Fills the gaps in the parsed timelib_time with information from the reference date/time in 'now' - * - * If any of the 'parsed' y, m, d, h, i or s parameters is unset (TIMELIB_UNSET): - * - if microtime (us) is unset, then the us of the parsed time is set to 0. - * - else if microtime (us) is unset and 'now'->'us' is set, use it, otherwise use 0. - * - * For either of the 'parsed' y, m, d, h, i, s, z (utc offset in seconds) or - * dst is unset, set it to the corresponding value in 'now' if set, otherwise - * set it to 0. - * - * It duplicates tz_abbr if unset in 'parsed' but set in 'now'. - * - * It duplicates tz_info if unset in 'parsed', but set in 'now' unless - * TIMELIB_NO_CLONE is passed, in which case only the pointer in 'parsed' is - * set to 'now'. - * - * If the option TIMELIB_OVERRIDE_TIME is passed and the parsed date/time has - * no time portion, the function will ignore the time aspect in 'now' and - * instead fill it with zeros. - */ -void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options); - -/* Tries to convert a time zone abbreviation, gmtoffset and/or isdst flag - * combination to a time zone identifier. - * - * If 'abbr' is either 'utc' or 'gmt' (case insensitve) then "UTC" is - * returned. - * - * It first uses the data in the timezonemap.h file to find a matching - * abbreviation/GMT offset combination. If not found, it uses the data in - * fallbackmap.h to match only the GMT offset/isdst flag to try to find a - * match. If nothing is found, NULL is returned. - * - * The returned char* is not duplicated, and should not be freed. - */ -char *timelib_timezone_id_from_abbr(const char *abbr, timelib_long gmtoffset, int isdst); - -/* Returns an array of known time zone abbreviations - * - * This file is generated from the time zone database through the - * gettzmapping.php scripts, which requires that an up-to-date time zone - * database is used with the PHP binary that runs the script. - * - * Each item in the returned list contains the abbreviation, a flag whether - * it's an abbreviation used with DST, the UTC offset in seconds, and the name - * of the time zone identifier that this abbreviation belongs to. - * - * The order for each specific abbreviation is controlled through the - * preference list in the gettzmapping.php script. Time zones that match the - * pattern ±\d{2,4} are excluded - */ -const timelib_tz_lookup_table *timelib_timezone_abbreviations_list(void); - -/** - * DEPRECATED, but still used by PHP. - */ -timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_found, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_wrapper); - -/* From parse_iso_intervals.re */ - -/** - * Parses a subset of an ISO 8601 intervals specification string into its - * constituent parts. - * - * If the **errors points to a timelib_error_container variable, warnings - * and errors will be recorded. You are responsible for freeing the stored - * information with timelib_error_container_dtor(). To see whether errors have - * occurred, inspect errors->errors_count. To see whether warnings have occurred, - * inspect errors->warnings_count. - */ -void timelib_strtointerval(char *s, size_t len, - timelib_time **begin, timelib_time **end, - timelib_rel_time **period, int *recurrences, - timelib_error_container **errors); - - -/* From tm2unixtime.c */ - -/** - * Uses the y/m/d/h/i/s fields to calculate and store the equivalent timestamp - * in the sse field. - * - * It uses the time zone information associated with 'time' to account for the - * right UTC offset and/or DST rules. You can associate time zone information - * with the timelib_set_timezone_* functions (see below). - * - * If the type is 'TIMELIB_ZONETYPE_ID' and there is no associated tzinfo, it - * will use the second argument 'tzi' to provide the rules necessary to - * calculate the right timestamp. - */ -void timelib_update_ts(timelib_time* time, timelib_tzinfo* tzi); - -/** - * Takes the information from the y/m/d/h/i/s fields and makes sure their - * values are in the right range. - * - * If a value under- or overflows it will adjust the larger measure up (or - * down). It also takes into account leap days. - */ -void timelib_do_normalize(timelib_time *base); - -/** - * Takes the information from the y/m/d/h/i/s fields of 'rt' and makes sure - * their values are in the right range. - * - * If a value under- or overflows it will adjust the larger measure up (or - * down). As this function operates on a *relative date/time*, it also takes - * into account leap days and correctly accounts for the difference depending - * on the base date/time in 'base'. - */ -void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt); - -/* From unixtime2tm.c */ - -/** - * Takes the unix timestamp in seconds from 'ts' and populates the y/m/d/h/i/s - * fields of 'tm' without taking time zones into account - */ -void timelib_unixtime2gmt(timelib_time* tm, timelib_sll ts); - -/** - * Takes the Unix timestamp from 'ts', and calculates the y/m/d/h/i/s fields - * according to the time zone information attached to 'tm'. - */ -void timelib_unixtime2local(timelib_time *tm, timelib_sll ts); - -/** - * Takes the Unix timestamp stored in 'tm', and calculates the y/m/d/h/i/s - * fields according to the time zone information attached to 'tm'. - */ -void timelib_update_from_sse(timelib_time *tm); - -/** - * Attaches the UTC offset as time zone information to 't'. - * - * 'utc_offset' is in seconds East of UTC. - */ -void timelib_set_timezone_from_offset(timelib_time *t, timelib_sll utc_offset); - -/** - * Attaches the information from 'abbr_info' as time zone information to 't'. - * - * The timelib_abbr_info struct contains an abbreviation ('abbr') which string - * value is duplicated, as well as a 'utc_offset' and 'dst' flag. It only - * supports a 'dst' change over of 1 hour. - */ -void timelib_set_timezone_from_abbr(timelib_time *t, timelib_abbr_info abbr_info); - -/** - * Attaches the time zone information in 'tz' to to 't'. - * - * It fetches the right UTC offset that is currently stored in the time - * stamp field in 't' ('sse'), and assigns that to the 'z' field and 'dst' - * field (whether DST is in effect at the time). It also sets the current - * abbreviation to the 'tz_addr' field, making sure that if a value was already - * set it was freed. - * - * The time zone information in 'tz' is *not* duplicated into the 't' field so - * it should not be freed until all timelib_time* variables have been freed as - * well. - */ -void timelib_set_timezone(timelib_time *t, timelib_tzinfo *tz); - -/* From parse_tz.c */ - -/** - * Returns whether the time zone ID 'timezone' is available in the time zone - * database as pointed to be 'tzdb'. - */ -int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb); - -/** - * Converts the binary stored time zone information from 'tzdb' for the time - * zone 'timeozne' into a structure the library can use for calculations. - * - * The function can be used on both timelib_builtin_db as well as a time zone - * db as opened by timelib_zoneinfo. - * The function will return null upon failure, and also set an error code - * through 'error_code'. 'error_code' must not be a null pointer. The error - * code is one of the TIMELIB_ERROR_* constants as listed above. These error - * constants can be converted into a string by timelib_get_error_message. - * - * This function allocates memory for the new time zone structure, which must - * be freed after use. Although it is recommended that a cache of each used - * time zone is kept. - */ -timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, int *error_code); - -/** - * Frees up the resources allocated by 'timelib_parse_tzfile'. - */ -void timelib_tzinfo_dtor(timelib_tzinfo *tz); - -/** - * Deep-clones a timelib_tzinfo structure. - * - * This allocates resources that need to be freed with 'timelib_tzinfo_dtor' - */ -timelib_tzinfo* timelib_tzinfo_clone(timelib_tzinfo *tz); - -/** - * Returns whether DST is active with time zone 'tz' for the time stamp 'ts'. - * - * Returns 0 if DST is not active, 1 if DST is active, or -1 if no transitions - * were available through 'tz'. - */ -int timelib_timestamp_is_in_dst(timelib_sll ts, timelib_tzinfo *tz); - -/** - * Returns offset information with time zone 'tz' for the time stamp 'ts'. - * - * The returned information contains: the offset in seconds East of UTC (in - * 'offset'), whether DST is active ('is_dst'), what the current time zone - * abbreviation is ('abbr') and the transition time that got to this state (in - * 'transition_time'); - */ -timelib_time_offset *timelib_get_time_zone_info(timelib_sll ts, timelib_tzinfo *tz); - -/** - * Returns the UTC offset currently applicable for the information stored in 't'. - * - * The value returned is the UTC offset in seconds East. - */ -timelib_sll timelib_get_current_offset(timelib_time *t); - -/** - * Displays debugging information about the time zone information in 'tz'. - */ -void timelib_dump_tzinfo(timelib_tzinfo *tz); - -/** - * Returns a pointer to the built-in time zone database. - * - * You must *not* free the returned pointer as it is part of the text segment. - */ -const timelib_tzdb *timelib_builtin_db(void); - -/** - * Returns a pointer to the start of an array containing a list of timezone identifiers. - * - * The amount of entries in the array is returned through the 'count' OUT parameter. - * - * Each entry contains the time zone ID ('id' field), and the position within the time zone - * information ('pos' field). The pos field should not be used. - */ -const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count); - -/* From parse_zoneinfo.c */ - -/** - * Scans the directory and subdirectories of 'directory' for valid time zone files and builds - * a time zone database out of these files. - * - * Typically, the directory should point to '/usr/share/zoneinfo'. - * - * Unlike 'timelib_builtin_db', the return value of this function must be freed - * with the 'timelib_zoneinfo_dtor' function. - */ -timelib_tzdb *timelib_zoneinfo(char *directory); - -/** - * Frees up the resources as created through 'timelib_zoneinfo'. - * - * This function must be used to free up all the resources that have been - * allocated while calling 'timelib_zoneinfo'. - */ -void timelib_zoneinfo_dtor(timelib_tzdb *tzdb); - -/* From timelib.c */ - -/** - * Returns a static string containing an error message belonging to a specific - * error code. - */ -const char *timelib_get_error_message(int error_code); - -/** - * Allocates resources for the relative time structure. - * - * Must be freed with 'timelib_rel_time_dtor'. - */ -timelib_rel_time* timelib_rel_time_ctor(void); - -/** - * Frees up the resources as allocated through 'timelib_rel_time_ctor'. - */ -void timelib_rel_time_dtor(timelib_rel_time* t); - -/** - * Creates a new timelib_rel_time resource and copies over the information - * from 'tz'. - * - * Must be freed with 'timelib_rel_time_dtor'. - */ -timelib_rel_time* timelib_rel_time_clone(timelib_rel_time *tz); - -/** - * Allocates resources for the time structure. - * - * Must be freed with 'timelib_time_dtor'. - */ -timelib_time* timelib_time_ctor(void); - -/** - * Frees up the resources as allocated through 'timelib_time_ctor'. - */ -void timelib_time_dtor(timelib_time* t); - -/** - * Creates a new timelib_time resource and copies over the information - * from 'orig'. - * - * Must be freed with 'timelib_time_dtor'. - */ -timelib_time* timelib_time_clone(timelib_time* orig); - -/** - * Compares two timelib_time structures and returns which one is earlier in - * time. - * - * To decide which comes earlier it uses the 'sse' (Seconds Since Epoch) and - * 'us' (microseconds) fields. - * - * Returns -1 if t1 < t2, 0 if t1 == t2, and -1 if t1 > t2. - */ -int timelib_time_compare(timelib_time *t1, timelib_time *t2); - -/** - * Allocates resources for the time offset structure. - * - * Must be freed with 'timelib_time_offset_dtor'. - */ -timelib_time_offset* timelib_time_offset_ctor(void); - -/** - * Frees up the resources as allocated through 'timelib_time_offset_ctor'. - */ -void timelib_time_offset_dtor(timelib_time_offset* t); - -/** - * Frees up the resources allocated while converting strings to timelib_time - * structures with the timelib_strtotime and timelib_strtointerval functions. - */ -void timelib_error_container_dtor(timelib_error_container *errors); - -/** - * Converts the 'sse' value of 'd' to a timelib_long type. - * - * If the value fits in the TIMELIB_LONG_MIN and TIMELIB_LONG_MAX range, the - * value is cast to (timelib_long) and returned. If *error is not a NULL - * pointer, it will be set to 0. - * - * If the value does *not* fit in the range, the function returns 0 and if - * *error is not a NULL pointer, it will be set to 1. - * - * timelib_long is a 32 bit signed long integer on 32 bit platforms, and a 64 - * bit signed long long integer on 64 bit platforms. In other words, it makes - * sure that the value in 'sse' (which is always a signed long long 64 bit - * integer) can be used safely outside of the library. - */ -timelib_long timelib_date_to_int(timelib_time *d, int *error); - -/** - * Displays debugging information about the date/time information stored in 'd'. - * - * 'options' is a bit field, where: - * - 1 controls whether the relative time portion is shown. - * - 2 controls whether the zone type is shown. - */ -void timelib_dump_date(timelib_time *d, int options); - -/** - * Displays debugging information about the relative time information stored - * in 'd'. - */ -void timelib_dump_rel_time(timelib_rel_time *d); - -/** - * Converts a decimal hour into hour/min/sec components - */ -void timelib_decimal_hour_to_hms(double h, int *hour, int *min, int *sec); - -/** - * Converts hour/min/sec values into a decimal hour - */ -void timelib_hms_to_decimal_hour(int hour, int min, int sec, double *h); - -/* from astro.c */ - -/** - * Converts the Unix Epoch time stamp 'ts' to a Julian Day - * - * The value returned is the number of whole days since -4714-11-24T12:00:00 UTC - * (in the proleptic Gregorian calendar): - * https://en.wikipedia.org/wiki/Julian_day - */ -double timelib_ts_to_julianday(timelib_sll ts); - -/** - * Converts the Unix Epoch time stamp 'ts' to the J2000 epoch - * - * The value returned is the number of whole days since 2000-01-01T12:00:00 - * UTC: https://en.wikipedia.org/wiki/Epoch_(astronomy)#Julian_years_and_J2000 - */ -double timelib_ts_to_j2000(timelib_sll ts); - -/** - * Calculates when the Sun is above a certain latitude. - * - * Parameters: - * - time: A timelib_time time describing that needs to specific midnight for a - * specific day. - * - lon: The longitude of the observer (East positive, West negative). - * - lat: The latitude of the observer (North positive, South negative). - * - altit: The altitude. Set to -35/60 for rise/set, -6 for civil twilight, - * -12 for nautical, and -18 for astronomical twilight. - * - upper_limb: set to non-zero for rise/set calculations, and 0 for twilight - * calculations. - * - * Out Parameters: - * - h_rise: The decimal hour when the Sun rises - * - h_set: The decimal hour when the Sun sets - * - ts_rise: The Unix timestamp of the Sun rising - * - ts_set: The Unix timestamp of the Sun setting - * - ts_transit: The Unix timestmap of the Sun transitting through South - * - * Return Values: - * - 0: The Sun rises and sets. - * - +1: The Sun is always above the horizon. (ts_rise is set to ts_transit - - * (12 * 3600); ts_set is set to ts_transit + (12 * 3600). - * - -1: The Sun is awlays below the horizon. (ts_rise and ts_set are set - * to ts_transit) - */ -int timelib_astro_rise_set_altitude(timelib_time *time, double lon, double lat, double altit, int upper_limb, double *h_rise, double *h_set, timelib_sll *ts_rise, timelib_sll *ts_set, timelib_sll *ts_transit); - -/* from interval.c */ - -/** - * Calculates the difference between two times - * - * The result is a timelib_rel_time structure that describes how you can - * convert from 'one' to 'two' with 'timelib_add'. This does *not* necessarily - * mean that you can go from 'two' to 'one' by using 'timelib_sub' due to the - * way months and days are calculated. - */ -timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two); - -/** - * Adds the relative time information 'interval' to the base time 't'. - * - * This can be a relative time as created by 'timelib_diff', but also by more - * complex statements such as "next workday". - */ -timelib_time *timelib_add(timelib_time *t, timelib_rel_time *interval); - -/** - * Subtracts the relative time information 'interval' to the base time 't'. - * - * This can be a relative time as created by 'timelib_diff'. Unlike with - * 'timelib_add', this does not support more complex statements such as "next - * workday". - */ -timelib_time *timelib_sub(timelib_time *t, timelib_rel_time *interval); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/include/php/ext/date/lib/timelib_config.h b/include/php/ext/date/lib/timelib_config.h deleted file mode 100644 index 443ff5e..0000000 --- a/include/php/ext/date/lib/timelib_config.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifdef PHP_WIN32 -# include "config.w32.h" -#else -# include -#endif -#include - -#include "zend.h" - -#define timelib_malloc emalloc -#define timelib_realloc erealloc -#define timelib_calloc ecalloc -#define timelib_strdup estrdup -#define timelib_free efree diff --git a/include/php/ext/date/php_date.h b/include/php/ext/date/php_date.h deleted file mode 100644 index 1f2bc32..0000000 --- a/include/php/ext/date/php_date.h +++ /dev/null @@ -1,230 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Derick Rethans | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_DATE_H -#define PHP_DATE_H - -#include "lib/timelib.h" -#include "Zend/zend_hash.h" - -#include "php_version.h" -#define PHP_DATE_VERSION PHP_VERSION - -extern zend_module_entry date_module_entry; -#define phpext_date_ptr &date_module_entry - -PHP_FUNCTION(date); -PHP_FUNCTION(idate); -PHP_FUNCTION(gmdate); -PHP_FUNCTION(strtotime); - -PHP_FUNCTION(mktime); -PHP_FUNCTION(gmmktime); - -PHP_FUNCTION(checkdate); -PHP_FUNCTION(strftime); -PHP_FUNCTION(gmstrftime); -PHP_FUNCTION(time); -PHP_FUNCTION(localtime); -PHP_FUNCTION(getdate); - -/* Advanced Interface */ -PHP_METHOD(DateTime, __construct); -PHP_METHOD(DateTime, __wakeup); -PHP_METHOD(DateTime, __set_state); -PHP_METHOD(DateTime, createFromImmutable); -PHP_FUNCTION(date_create); -PHP_FUNCTION(date_create_immutable); -PHP_FUNCTION(date_create_from_format); -PHP_FUNCTION(date_create_immutable_from_format); -PHP_FUNCTION(date_parse); -PHP_FUNCTION(date_parse_from_format); -PHP_FUNCTION(date_get_last_errors); -PHP_FUNCTION(date_format); -PHP_FUNCTION(date_modify); -PHP_FUNCTION(date_add); -PHP_FUNCTION(date_sub); -PHP_FUNCTION(date_timezone_get); -PHP_FUNCTION(date_timezone_set); -PHP_FUNCTION(date_offset_get); -PHP_FUNCTION(date_diff); - -PHP_FUNCTION(date_time_set); -PHP_FUNCTION(date_date_set); -PHP_FUNCTION(date_isodate_set); -PHP_FUNCTION(date_timestamp_set); -PHP_FUNCTION(date_timestamp_get); - -PHP_METHOD(DateTimeImmutable, __construct); -PHP_METHOD(DateTimeImmutable, __set_state); -PHP_METHOD(DateTimeImmutable, modify); -PHP_METHOD(DateTimeImmutable, add); -PHP_METHOD(DateTimeImmutable, sub); -PHP_METHOD(DateTimeImmutable, setTimezone); -PHP_METHOD(DateTimeImmutable, setTime); -PHP_METHOD(DateTimeImmutable, setDate); -PHP_METHOD(DateTimeImmutable, setISODate); -PHP_METHOD(DateTimeImmutable, setTimestamp); -PHP_METHOD(DateTimeImmutable, createFromMutable); - -PHP_METHOD(DateTimeZone, __construct); -PHP_METHOD(DateTimeZone, __wakeup); -PHP_METHOD(DateTimeZone, __set_state); -PHP_FUNCTION(timezone_open); -PHP_FUNCTION(timezone_name_get); -PHP_FUNCTION(timezone_name_from_abbr); -PHP_FUNCTION(timezone_offset_get); -PHP_FUNCTION(timezone_transitions_get); -PHP_FUNCTION(timezone_location_get); -PHP_FUNCTION(timezone_identifiers_list); -PHP_FUNCTION(timezone_abbreviations_list); -PHP_FUNCTION(timezone_version_get); - -PHP_METHOD(DateInterval, __construct); -PHP_METHOD(DateInterval, __wakeup); -PHP_METHOD(DateInterval, __set_state); -PHP_FUNCTION(date_interval_format); -PHP_FUNCTION(date_interval_create_from_date_string); - -PHP_METHOD(DatePeriod, __construct); -PHP_METHOD(DatePeriod, __wakeup); -PHP_METHOD(DatePeriod, __set_state); -PHP_METHOD(DatePeriod, getStartDate); -PHP_METHOD(DatePeriod, getEndDate); -PHP_METHOD(DatePeriod, getDateInterval); -PHP_METHOD(DatePeriod, getRecurrences); - -/* Options and Configuration */ -PHP_FUNCTION(date_default_timezone_set); -PHP_FUNCTION(date_default_timezone_get); - -/* Astro functions */ -PHP_FUNCTION(date_sunrise); -PHP_FUNCTION(date_sunset); -PHP_FUNCTION(date_sun_info); - -PHP_RINIT_FUNCTION(date); -PHP_RSHUTDOWN_FUNCTION(date); -PHP_MINIT_FUNCTION(date); -PHP_MSHUTDOWN_FUNCTION(date); -PHP_MINFO_FUNCTION(date); -ZEND_MODULE_POST_ZEND_DEACTIVATE_D(date); - -typedef struct _php_date_obj php_date_obj; -typedef struct _php_timezone_obj php_timezone_obj; -typedef struct _php_interval_obj php_interval_obj; -typedef struct _php_period_obj php_period_obj; - -struct _php_date_obj { - timelib_time *time; - zend_object std; -}; - -static inline php_date_obj *php_date_obj_from_obj(zend_object *obj) { - return (php_date_obj*)((char*)(obj) - XtOffsetOf(php_date_obj, std)); -} - -#define Z_PHPDATE_P(zv) php_date_obj_from_obj(Z_OBJ_P((zv))) - -struct _php_timezone_obj { - int initialized; - int type; - union { - timelib_tzinfo *tz; /* TIMELIB_ZONETYPE_ID */ - timelib_sll utc_offset; /* TIMELIB_ZONETYPE_OFFSET */ - timelib_abbr_info z; /* TIMELIB_ZONETYPE_ABBR */ - } tzi; - zend_object std; -}; - -static inline php_timezone_obj *php_timezone_obj_from_obj(zend_object *obj) { - return (php_timezone_obj*)((char*)(obj) - XtOffsetOf(php_timezone_obj, std)); -} - -#define Z_PHPTIMEZONE_P(zv) php_timezone_obj_from_obj(Z_OBJ_P((zv))) - -struct _php_interval_obj { - timelib_rel_time *diff; - int initialized; - zend_object std; -}; - -static inline php_interval_obj *php_interval_obj_from_obj(zend_object *obj) { - return (php_interval_obj*)((char*)(obj) - XtOffsetOf(php_interval_obj, std)); -} - -#define Z_PHPINTERVAL_P(zv) php_interval_obj_from_obj(Z_OBJ_P((zv))) - -struct _php_period_obj { - timelib_time *start; - zend_class_entry *start_ce; - timelib_time *current; - timelib_time *end; - timelib_rel_time *interval; - int recurrences; - int initialized; - int include_start_date; - zend_object std; -}; - -static inline php_period_obj *php_period_obj_from_obj(zend_object *obj) { - return (php_period_obj*)((char*)(obj) - XtOffsetOf(php_period_obj, std)); -} - -#define Z_PHPPERIOD_P(zv) php_period_obj_from_obj(Z_OBJ_P((zv))) - -ZEND_BEGIN_MODULE_GLOBALS(date) - char *default_timezone; - char *timezone; - HashTable *tzcache; - timelib_error_container *last_errors; - int timezone_valid; -ZEND_END_MODULE_GLOBALS(date) - -#define DATEG(v) ZEND_MODULE_GLOBALS_ACCESSOR(date, v) - -PHPAPI time_t php_time(); - -/* Backwards compatibility wrapper */ -PHPAPI zend_long php_parse_date(char *string, zend_long *now); -PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt); -PHPAPI int php_idate(char format, time_t ts, int localtime); - -#define _php_strftime php_strftime - -PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gm); -PHPAPI zend_string *php_format_date(char *format, size_t format_len, time_t ts, int localtime); - -/* Mechanism to set new TZ database */ -PHPAPI void php_date_set_tzdb(timelib_tzdb *tzdb); -PHPAPI timelib_tzinfo *get_timezone_info(void); - -/* Grabbing CE's so that other exts can use the date objects too */ -PHPAPI zend_class_entry *php_date_get_date_ce(void); -PHPAPI zend_class_entry *php_date_get_immutable_ce(void); -PHPAPI zend_class_entry *php_date_get_interface_ce(void); -PHPAPI zend_class_entry *php_date_get_timezone_ce(void); -PHPAPI zend_class_entry *php_date_get_interval_ce(void); -PHPAPI zend_class_entry *php_date_get_period_ce(void); - -/* Functions for creating DateTime objects, and initializing them from a string */ -PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object); -PHPAPI int php_date_initialize(php_date_obj *dateobj, /*const*/ char *time_str, size_t time_str_len, char *format, zval *timezone_object, int ctor); - - -#endif /* PHP_DATE_H */ diff --git a/include/php/ext/dom/xml_common.h b/include/php/ext/dom/xml_common.h deleted file mode 100644 index 6f51fec..0000000 --- a/include/php/ext/dom/xml_common.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Christian Stocker | - | Rob Richards | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_XML_COMMON_H -#define PHP_XML_COMMON_H - -#include "ext/libxml/php_libxml.h" - -typedef libxml_doc_props *dom_doc_propsptr; - -typedef struct _dom_object { - void *ptr; - php_libxml_ref_obj *document; - HashTable *prop_handler; - zend_object std; -} dom_object; - -static inline dom_object *php_dom_obj_from_obj(zend_object *obj) { - return (dom_object*)((char*)(obj) - XtOffsetOf(dom_object, std)); -} - -#define Z_DOMOBJ_P(zv) php_dom_obj_from_obj(Z_OBJ_P((zv))) - -#ifdef PHP_WIN32 -# ifdef DOM_EXPORTS -# define PHP_DOM_EXPORT __declspec(dllexport) -# elif !defined(DOM_LOCAL_DEFINES) /* Allow to counteract LNK4049 warning. */ -# define PHP_DOM_EXPORT __declspec(dllimport) -# else -# define PHP_DOM_EXPORT -# endif /* DOM_EXPORTS */ -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define PHP_DOM_EXPORT __attribute__ ((visibility("default"))) -#elif defined(PHPAPI) -# define PHP_DOM_EXPORT PHPAPI -#else -# define PHP_DOM_EXPORT -#endif - -PHP_DOM_EXPORT extern zend_class_entry *dom_node_class_entry; -PHP_DOM_EXPORT dom_object *php_dom_object_get_data(xmlNodePtr obj); -PHP_DOM_EXPORT zend_bool php_dom_create_object(xmlNodePtr obj, zval* return_value, dom_object *domobj); -PHP_DOM_EXPORT xmlNodePtr dom_object_get_node(dom_object *obj); - -#define DOM_XMLNS_NAMESPACE \ - (const xmlChar *) "http://www.w3.org/2000/xmlns/" - -#define NODE_GET_OBJ(__ptr, __id, __prtype, __intern) { \ - __intern = Z_LIBXML_NODE_P(__id); \ - if (__intern->node == NULL || !(__ptr = (__prtype)__intern->node->node)) { \ - php_error_docref(NULL, E_WARNING, "Couldn't fetch %s", \ - ZSTR_VAL(__intern->std.ce->name));\ - RETURN_NULL();\ - } \ -} - -#define DOC_GET_OBJ(__ptr, __id, __prtype, __intern) { \ - __intern = Z_LIBXML_NODE_P(__id); \ - if (__intern->document != NULL) { \ - if (!(__ptr = (__prtype)__intern->document->ptr)) { \ - php_error_docref(NULL, E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\ - RETURN_NULL();\ - } \ - } \ -} - -#define DOM_RET_OBJ(obj, ret, domobject) \ - *ret = php_dom_create_object(obj, return_value, domobject) - -#define DOM_GET_THIS(zval) \ - do { zval = ZEND_THIS; } while (0) - -#define DOM_GET_THIS_OBJ(__ptr, __id, __prtype, __intern) \ - DOM_GET_THIS(__id); \ - DOM_GET_OBJ(__ptr, __id, __prtype, __intern); - -#endif diff --git a/include/php/ext/filter/php_filter.h b/include/php/ext/filter/php_filter.h deleted file mode 100644 index 24b177d..0000000 --- a/include/php/ext/filter/php_filter.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Derick Rethans | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_FILTER_H -#define PHP_FILTER_H - -#include "SAPI.h" -#include "zend_API.h" -#include "php.h" -#include "php_ini.h" -#include "ext/standard/info.h" -#include "ext/standard/php_string.h" -#include "ext/standard/html.h" -#include "php_variables.h" - -extern zend_module_entry filter_module_entry; -#define phpext_filter_ptr &filter_module_entry - -#ifdef ZTS -#include "TSRM.h" -#endif - -#define PHP_FILTER_VERSION PHP_VERSION - -PHP_MINIT_FUNCTION(filter); -PHP_MSHUTDOWN_FUNCTION(filter); -PHP_RINIT_FUNCTION(filter); -PHP_RSHUTDOWN_FUNCTION(filter); -PHP_MINFO_FUNCTION(filter); - -PHP_FUNCTION(filter_input); -PHP_FUNCTION(filter_var); -PHP_FUNCTION(filter_input_array); -PHP_FUNCTION(filter_var_array); -PHP_FUNCTION(filter_list); -PHP_FUNCTION(filter_has_var); -PHP_FUNCTION(filter_id); - -ZEND_BEGIN_MODULE_GLOBALS(filter) - zval post_array; - zval get_array; - zval cookie_array; - zval env_array; - zval server_array; -#if 0 - zval session_array; -#endif - zend_long default_filter; - zend_long default_filter_flags; -ZEND_END_MODULE_GLOBALS(filter) - -#if defined(COMPILE_DL_FILTER) && defined(ZTS) -ZEND_TSRMLS_CACHE_EXTERN() -#endif - -#define IF_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(filter, v) - -#define PHP_INPUT_FILTER_PARAM_DECL zval *value, zend_long flags, zval *option_array, char *charset -void php_filter_int(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_boolean(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_float(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_validate_regexp(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_validate_domain(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_validate_url(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_validate_email(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_validate_mac(PHP_INPUT_FILTER_PARAM_DECL); - -void php_filter_string(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_encoded(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_special_chars(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_full_special_chars(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_unsafe_raw(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_email(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_url(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_number_int(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_number_float(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_add_slashes(PHP_INPUT_FILTER_PARAM_DECL); -void php_filter_magic_quotes(PHP_INPUT_FILTER_PARAM_DECL); - -void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL); - -#endif /* FILTER_H */ diff --git a/include/php/ext/hash/php_hash.h b/include/php/ext/hash/php_hash.h deleted file mode 100644 index 8e919e2..0000000 --- a/include/php/ext/hash/php_hash.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sara Golemon | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_H -#define PHP_HASH_H - -#include "php.h" - -#define PHP_HASH_EXTNAME "hash" -#define PHP_HASH_VERSION PHP_VERSION -#define PHP_MHASH_VERSION PHP_VERSION - -#define PHP_HASH_HMAC 0x0001 - -#define L64 INT64_C - -typedef void (*php_hash_init_func_t)(void *context); -typedef void (*php_hash_update_func_t)(void *context, const unsigned char *buf, size_t count); -typedef void (*php_hash_final_func_t)(unsigned char *digest, void *context); -typedef int (*php_hash_copy_func_t)(const void *ops, void *orig_context, void *dest_context); - -typedef struct _php_hash_ops { - php_hash_init_func_t hash_init; - php_hash_update_func_t hash_update; - php_hash_final_func_t hash_final; - php_hash_copy_func_t hash_copy; - - size_t digest_size; - size_t block_size; - size_t context_size; - unsigned is_crypto: 1; -} php_hash_ops; - -typedef struct _php_hashcontext_object { - const php_hash_ops *ops; - void *context; - - zend_long options; - unsigned char *key; - - zend_object std; -} php_hashcontext_object; - -static inline php_hashcontext_object *php_hashcontext_from_object(zend_object *obj) { - return ((php_hashcontext_object*)(obj + 1)) - 1; -} - -extern const php_hash_ops php_hash_md2_ops; -extern const php_hash_ops php_hash_md4_ops; -extern const php_hash_ops php_hash_md5_ops; -extern const php_hash_ops php_hash_sha1_ops; -extern const php_hash_ops php_hash_sha224_ops; -extern const php_hash_ops php_hash_sha256_ops; -extern const php_hash_ops php_hash_sha384_ops; -extern const php_hash_ops php_hash_sha512_ops; -extern const php_hash_ops php_hash_sha512_256_ops; -extern const php_hash_ops php_hash_sha512_224_ops; -extern const php_hash_ops php_hash_sha3_224_ops; -extern const php_hash_ops php_hash_sha3_256_ops; -extern const php_hash_ops php_hash_sha3_384_ops; -extern const php_hash_ops php_hash_sha3_512_ops; -extern const php_hash_ops php_hash_ripemd128_ops; -extern const php_hash_ops php_hash_ripemd160_ops; -extern const php_hash_ops php_hash_ripemd256_ops; -extern const php_hash_ops php_hash_ripemd320_ops; -extern const php_hash_ops php_hash_whirlpool_ops; -extern const php_hash_ops php_hash_3tiger128_ops; -extern const php_hash_ops php_hash_3tiger160_ops; -extern const php_hash_ops php_hash_3tiger192_ops; -extern const php_hash_ops php_hash_4tiger128_ops; -extern const php_hash_ops php_hash_4tiger160_ops; -extern const php_hash_ops php_hash_4tiger192_ops; -extern const php_hash_ops php_hash_snefru_ops; -extern const php_hash_ops php_hash_gost_ops; -extern const php_hash_ops php_hash_gost_crypto_ops; -extern const php_hash_ops php_hash_adler32_ops; -extern const php_hash_ops php_hash_crc32_ops; -extern const php_hash_ops php_hash_crc32b_ops; -extern const php_hash_ops php_hash_crc32c_ops; -extern const php_hash_ops php_hash_fnv132_ops; -extern const php_hash_ops php_hash_fnv1a32_ops; -extern const php_hash_ops php_hash_fnv164_ops; -extern const php_hash_ops php_hash_fnv1a64_ops; -extern const php_hash_ops php_hash_joaat_ops; - -#define PHP_HASH_HAVAL_OPS(p,b) extern const php_hash_ops php_hash_##p##haval##b##_ops; - -PHP_HASH_HAVAL_OPS(3,128) -PHP_HASH_HAVAL_OPS(3,160) -PHP_HASH_HAVAL_OPS(3,192) -PHP_HASH_HAVAL_OPS(3,224) -PHP_HASH_HAVAL_OPS(3,256) - -PHP_HASH_HAVAL_OPS(4,128) -PHP_HASH_HAVAL_OPS(4,160) -PHP_HASH_HAVAL_OPS(4,192) -PHP_HASH_HAVAL_OPS(4,224) -PHP_HASH_HAVAL_OPS(4,256) - -PHP_HASH_HAVAL_OPS(5,128) -PHP_HASH_HAVAL_OPS(5,160) -PHP_HASH_HAVAL_OPS(5,192) -PHP_HASH_HAVAL_OPS(5,224) -PHP_HASH_HAVAL_OPS(5,256) - -extern zend_module_entry hash_module_entry; -#define phpext_hash_ptr &hash_module_entry - -#ifdef PHP_WIN32 -# define PHP_HASH_API __declspec(dllexport) -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define PHP_HASH_API __attribute__ ((visibility("default"))) -#else -# define PHP_HASH_API -#endif - -PHP_FUNCTION(hash); -PHP_FUNCTION(hash_file); -PHP_FUNCTION(hash_hkdf); -PHP_FUNCTION(hash_hmac); -PHP_FUNCTION(hash_hmac_file); -PHP_FUNCTION(hash_init); -PHP_FUNCTION(hash_update); -PHP_FUNCTION(hash_update_stream); -PHP_FUNCTION(hash_update_file); -PHP_FUNCTION(hash_final); -PHP_FUNCTION(hash_algos); -PHP_FUNCTION(hash_pbkdf2); -PHP_FUNCTION(hash_equals); - -extern PHP_HASH_API zend_class_entry *php_hashcontext_ce; -PHP_HASH_API const php_hash_ops *php_hash_fetch_ops(const char *algo, size_t algo_len); -PHP_HASH_API void php_hash_register_algo(const char *algo, const php_hash_ops *ops); -PHP_HASH_API int php_hash_copy(const void *ops, void *orig_context, void *dest_context); - -static inline void php_hash_bin2hex(char *out, const unsigned char *in, size_t in_len) -{ - static const char hexits[17] = "0123456789abcdef"; - size_t i; - - for(i = 0; i < in_len; i++) { - out[i * 2] = hexits[in[i] >> 4]; - out[(i * 2) + 1] = hexits[in[i] & 0x0F]; - } -} - -#endif /* PHP_HASH_H */ diff --git a/include/php/ext/hash/php_hash_adler32.h b/include/php/ext/hash/php_hash_adler32.h deleted file mode 100644 index 63f32ab..0000000 --- a/include/php/ext/hash/php_hash_adler32.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_ADLER32_H -#define PHP_HASH_ADLER32_H - -#include "ext/standard/basic_functions.h" - -typedef struct { - uint32_t state; -} PHP_ADLER32_CTX; - -PHP_HASH_API void PHP_ADLER32Init(PHP_ADLER32_CTX *context); -PHP_HASH_API void PHP_ADLER32Update(PHP_ADLER32_CTX *context, const unsigned char *input, size_t len); -PHP_HASH_API void PHP_ADLER32Final(unsigned char digest[4], PHP_ADLER32_CTX *context); -PHP_HASH_API int PHP_ADLER32Copy(const php_hash_ops *ops, PHP_ADLER32_CTX *orig_context, PHP_ADLER32_CTX *copy_context); - -#endif diff --git a/include/php/ext/hash/php_hash_crc32.h b/include/php/ext/hash/php_hash_crc32.h deleted file mode 100644 index 6308b00..0000000 --- a/include/php/ext/hash/php_hash_crc32.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_CRC32_H -#define PHP_HASH_CRC32_H - -#include "ext/standard/basic_functions.h" - -typedef struct { - uint32_t state; -} PHP_CRC32_CTX; - -PHP_HASH_API void PHP_CRC32Init(PHP_CRC32_CTX *context); -PHP_HASH_API void PHP_CRC32Update(PHP_CRC32_CTX *context, const unsigned char *input, size_t len); -PHP_HASH_API void PHP_CRC32BUpdate(PHP_CRC32_CTX *context, const unsigned char *input, size_t len); -PHP_HASH_API void PHP_CRC32CUpdate(PHP_CRC32_CTX *context, const unsigned char *input, size_t len); -PHP_HASH_API void PHP_CRC32LEFinal(unsigned char digest[4], PHP_CRC32_CTX *context); -PHP_HASH_API void PHP_CRC32BEFinal(unsigned char digest[4], PHP_CRC32_CTX *context); -PHP_HASH_API int PHP_CRC32Copy(const php_hash_ops *ops, PHP_CRC32_CTX *orig_context, PHP_CRC32_CTX *copy_context); - -#endif diff --git a/include/php/ext/hash/php_hash_fnv.h b/include/php/ext/hash/php_hash_fnv.h deleted file mode 100644 index f00a469..0000000 --- a/include/php/ext/hash/php_hash_fnv.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Maclean | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_FNV_H -#define PHP_HASH_FNV_H - -#define PHP_FNV1_32_INIT ((uint32_t)0x811c9dc5) -#define PHP_FNV1_32A_INIT PHP_FNV1_32_INIT - -#define PHP_FNV_32_PRIME ((uint32_t)0x01000193) - -#define PHP_FNV1_64_INIT ((uint64_t)0xcbf29ce484222325ULL) -#define PHP_FNV1A_64_INIT FNV1_64_INIT - -#define PHP_FNV_64_PRIME ((uint64_t)0x100000001b3ULL) - - -/* - * hash types - */ -enum php_fnv_type { - PHP_FNV_NONE = 0, /* invalid FNV hash type */ - PHP_FNV0_32 = 1, /* FNV-0 32 bit hash */ - PHP_FNV1_32 = 2, /* FNV-1 32 bit hash */ - PHP_FNV1a_32 = 3, /* FNV-1a 32 bit hash */ - PHP_FNV0_64 = 4, /* FNV-0 64 bit hash */ - PHP_FNV1_64 = 5, /* FNV-1 64 bit hash */ - PHP_FNV1a_64 = 6, /* FNV-1a 64 bit hash */ -}; - -typedef struct { - uint32_t state; -} PHP_FNV132_CTX; - -typedef struct { - uint64_t state; -} PHP_FNV164_CTX; - - -PHP_HASH_API void PHP_FNV132Init(PHP_FNV132_CTX *context); -PHP_HASH_API void PHP_FNV132Update(PHP_FNV132_CTX *context, const unsigned char *input, size_t inputLen); -PHP_HASH_API void PHP_FNV1a32Update(PHP_FNV132_CTX *context, const unsigned char *input, size_t inputLen); -PHP_HASH_API void PHP_FNV132Final(unsigned char digest[16], PHP_FNV132_CTX * context); - -PHP_HASH_API void PHP_FNV164Init(PHP_FNV164_CTX *context); -PHP_HASH_API void PHP_FNV164Update(PHP_FNV164_CTX *context, const unsigned char *input, size_t inputLen); -PHP_HASH_API void PHP_FNV1a64Update(PHP_FNV164_CTX *context, const unsigned char *input, size_t inputLen); -PHP_HASH_API void PHP_FNV164Final(unsigned char digest[16], PHP_FNV164_CTX * context); - -static uint32_t fnv_32_buf(void *buf, size_t len, uint32_t hval, int alternate); -static uint64_t fnv_64_buf(void *buf, size_t len, uint64_t hval, int alternate); - -#endif diff --git a/include/php/ext/hash/php_hash_gost.h b/include/php/ext/hash/php_hash_gost.h deleted file mode 100644 index 3837eeb..0000000 --- a/include/php/ext/hash/php_hash_gost.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_GOST_H -#define PHP_HASH_GOST_H - -#include "ext/standard/basic_functions.h" - -/* GOST context */ -typedef struct { - uint32_t state[16]; - size_t count[2]; - unsigned char length; - unsigned char buffer[32]; - const uint32_t (*tables)[4][256]; -} PHP_GOST_CTX; - -PHP_HASH_API void PHP_GOSTInit(PHP_GOST_CTX *); -PHP_HASH_API void PHP_GOSTUpdate(PHP_GOST_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_GOSTFinal(unsigned char[64], PHP_GOST_CTX *); - -#endif diff --git a/include/php/ext/hash/php_hash_haval.h b/include/php/ext/hash/php_hash_haval.h deleted file mode 100644 index 1188b79..0000000 --- a/include/php/ext/hash/php_hash_haval.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sara Golemon | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_HAVAL_H -#define PHP_HASH_HAVAL_H - -#include "ext/standard/basic_functions.h" -/* HAVAL context. */ -typedef struct { - uint32_t state[8]; - uint32_t count[2]; - unsigned char buffer[128]; - - char passes; - short output; - void (*Transform)(uint32_t state[8], const unsigned char block[128]); -} PHP_HAVAL_CTX; - -#define PHP_HASH_HAVAL_INIT_DECL(p,b) PHP_HASH_API void PHP_##p##HAVAL##b##Init(PHP_HAVAL_CTX *); \ - PHP_HASH_API void PHP_HAVAL##b##Final(unsigned char*, PHP_HAVAL_CTX *); - -PHP_HASH_API void PHP_HAVALUpdate(PHP_HAVAL_CTX *, const unsigned char *, unsigned int); - -PHP_HASH_HAVAL_INIT_DECL(3,128) -PHP_HASH_HAVAL_INIT_DECL(3,160) -PHP_HASH_HAVAL_INIT_DECL(3,192) -PHP_HASH_HAVAL_INIT_DECL(3,224) -PHP_HASH_HAVAL_INIT_DECL(3,256) - -PHP_HASH_HAVAL_INIT_DECL(4,128) -PHP_HASH_HAVAL_INIT_DECL(4,160) -PHP_HASH_HAVAL_INIT_DECL(4,192) -PHP_HASH_HAVAL_INIT_DECL(4,224) -PHP_HASH_HAVAL_INIT_DECL(4,256) - -PHP_HASH_HAVAL_INIT_DECL(5,128) -PHP_HASH_HAVAL_INIT_DECL(5,160) -PHP_HASH_HAVAL_INIT_DECL(5,192) -PHP_HASH_HAVAL_INIT_DECL(5,224) -PHP_HASH_HAVAL_INIT_DECL(5,256) - -#endif diff --git a/include/php/ext/hash/php_hash_joaat.h b/include/php/ext/hash/php_hash_joaat.h deleted file mode 100644 index b9e7e7a..0000000 --- a/include/php/ext/hash/php_hash_joaat.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Martin Jansen | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_JOAAT_H -#define PHP_HASH_JOAAT_H - -typedef struct { - uint32_t state; -} PHP_JOAAT_CTX; - -PHP_HASH_API void PHP_JOAATInit(PHP_JOAAT_CTX *context); -PHP_HASH_API void PHP_JOAATUpdate(PHP_JOAAT_CTX *context, const unsigned char *input, size_t inputLen); -PHP_HASH_API void PHP_JOAATFinal(unsigned char digest[16], PHP_JOAAT_CTX * context); - -static uint32_t joaat_buf(void *buf, size_t len, uint32_t hval); - -#endif diff --git a/include/php/ext/hash/php_hash_md.h b/include/php/ext/hash/php_hash_md.h deleted file mode 100644 index 0073488..0000000 --- a/include/php/ext/hash/php_hash_md.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Original Author: Rasmus Lerdorf | - | Modified for pHASH by: Sara Golemon - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_MD_H -#define PHP_HASH_MD_H - -/* When SHA is removed from Core, - the ext/standard/sha1.c file can be removed - and the ext/standard/sha1.h file can be reduced to: - #define PHP_HASH_SHA1_NOT_IN_CORE - #include "ext/hash/php_hash_sha.h" - Don't forget to remove md5() and md5_file() entries from basic_functions.c - */ - -#include "ext/standard/md5.h" - -#ifdef PHP_HASH_MD5_NOT_IN_CORE -/* MD5.H - header file for MD5C.C - */ - -/* 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. - */ - -/* MD5 context. */ -typedef struct { - uint32_t state[4]; /* state (ABCD) */ - uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} PHP_MD5_CTX; - -PHP_HASH_API void make_digest(char *md5str, unsigned char *digest); -PHP_HASH_API void PHP_MD5Init(PHP_MD5_CTX *); -PHP_HASH_API void PHP_MD5Update(PHP_MD5_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_MD5Final(unsigned char[16], PHP_MD5_CTX *); - -PHP_NAMED_FUNCTION(php_if_md5); -PHP_NAMED_FUNCTION(php_if_md5_file); -#endif /* PHP_HASH_MD5_NOT_IN_CORE */ - -/* MD4 context */ -typedef struct { - uint32_t state[4]; - uint32_t count[2]; - unsigned char buffer[64]; -} PHP_MD4_CTX; - -PHP_HASH_API void PHP_MD4Init(PHP_MD4_CTX *); -PHP_HASH_API void PHP_MD4Update(PHP_MD4_CTX *context, const unsigned char *, size_t); -PHP_HASH_API void PHP_MD4Final(unsigned char[16], PHP_MD4_CTX *); - -/* MD2 context */ -typedef struct { - unsigned char state[48]; - unsigned char checksum[16]; - unsigned char buffer[16]; - char in_buffer; -} PHP_MD2_CTX; - -PHP_HASH_API void PHP_MD2Init(PHP_MD2_CTX *context); -PHP_HASH_API void PHP_MD2Update(PHP_MD2_CTX *context, const unsigned char *, size_t); -PHP_HASH_API void PHP_MD2Final(unsigned char[16], PHP_MD2_CTX *); - -#endif diff --git a/include/php/ext/hash/php_hash_ripemd.h b/include/php/ext/hash/php_hash_ripemd.h deleted file mode 100644 index e8f1678..0000000 --- a/include/php/ext/hash/php_hash_ripemd.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sara Golemon | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_RIPEMD_H -#define PHP_HASH_RIPEMD_H -#include "ext/standard/basic_functions.h" - -/* RIPEMD context. */ -typedef struct { - uint32_t state[4]; /* state (ABCD) */ - uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} PHP_RIPEMD128_CTX; - -typedef struct { - uint32_t state[5]; /* state (ABCD) */ - uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} PHP_RIPEMD160_CTX; - -typedef struct { - uint32_t state[8]; /* state (ABCD) */ - uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} PHP_RIPEMD256_CTX; - -typedef struct { - uint32_t state[10]; /* state (ABCD) */ - uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} PHP_RIPEMD320_CTX; - -PHP_HASH_API void PHP_RIPEMD128Init(PHP_RIPEMD128_CTX *); -PHP_HASH_API void PHP_RIPEMD128Update(PHP_RIPEMD128_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_RIPEMD128Final(unsigned char[16], PHP_RIPEMD128_CTX *); - -PHP_HASH_API void PHP_RIPEMD160Init(PHP_RIPEMD160_CTX *); -PHP_HASH_API void PHP_RIPEMD160Update(PHP_RIPEMD160_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_RIPEMD160Final(unsigned char[20], PHP_RIPEMD160_CTX *); - -PHP_HASH_API void PHP_RIPEMD256Init(PHP_RIPEMD256_CTX *); -PHP_HASH_API void PHP_RIPEMD256Update(PHP_RIPEMD256_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_RIPEMD256Final(unsigned char[32], PHP_RIPEMD256_CTX *); - -PHP_HASH_API void PHP_RIPEMD320Init(PHP_RIPEMD320_CTX *); -PHP_HASH_API void PHP_RIPEMD320Update(PHP_RIPEMD320_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_RIPEMD320Final(unsigned char[40], PHP_RIPEMD320_CTX *); - -#endif /* PHP_HASH_RIPEMD_H */ diff --git a/include/php/ext/hash/php_hash_sha.h b/include/php/ext/hash/php_hash_sha.h deleted file mode 100644 index 4903f8d..0000000 --- a/include/php/ext/hash/php_hash_sha.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | SHA1 Author: Stefan Esser | - | SHA256 Author: Sara Golemon | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_SHA_H -#define PHP_HASH_SHA_H - -/* When SHA is removed from Core, - the ext/standard/sha1.c file can be removed - and the ext/standard/sha1.h file can be reduced to: - #define PHP_HASH_SHA1_NOT_IN_CORE - #include "ext/hash/php_hash_sha.h" - Don't forget to remove sha1() and sha1_file() from basic_functions.c - */ -#include "ext/standard/sha1.h" -#include "ext/standard/basic_functions.h" - -#ifdef PHP_HASH_SHA1_NOT_IN_CORE - -/* SHA1 context. */ -typedef struct { - uint32_t state[5]; /* state (ABCD) */ - uint32_t count[2]; /* number of bits, modulo 2^64 */ - unsigned char buffer[64]; /* input buffer */ -} PHP_SHA1_CTX; - -PHP_HASH_API void PHP_SHA1Init(PHP_SHA1_CTX *); -PHP_HASH_API void PHP_SHA1Update(PHP_SHA1_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_SHA1Final(unsigned char[20], PHP_SHA1_CTX *); - -PHP_FUNCTION(sha1); -PHP_FUNCTION(sha1_file); - -#endif /* PHP_HASH_SHA1_NOT_IN_CORE */ - -/* SHA224 context. */ -typedef struct { - uint32_t state[8]; /* state */ - uint32_t count[2]; /* number of bits, modulo 2^64 */ - unsigned char buffer[64]; /* input buffer */ -} PHP_SHA224_CTX; - -PHP_HASH_API void PHP_SHA224Init(PHP_SHA224_CTX *); -PHP_HASH_API void PHP_SHA224Update(PHP_SHA224_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_SHA224Final(unsigned char[28], PHP_SHA224_CTX *); - -/* SHA256 context. */ -typedef struct { - uint32_t state[8]; /* state */ - uint32_t count[2]; /* number of bits, modulo 2^64 */ - unsigned char buffer[64]; /* input buffer */ -} PHP_SHA256_CTX; - -PHP_HASH_API void PHP_SHA256Init(PHP_SHA256_CTX *); -PHP_HASH_API void PHP_SHA256Update(PHP_SHA256_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_SHA256Final(unsigned char[32], PHP_SHA256_CTX *); - -/* SHA384 context */ -typedef struct { - uint64_t state[8]; /* state */ - uint64_t count[2]; /* number of bits, modulo 2^128 */ - unsigned char buffer[128]; /* input buffer */ -} PHP_SHA384_CTX; - -PHP_HASH_API void PHP_SHA384Init(PHP_SHA384_CTX *); -PHP_HASH_API void PHP_SHA384Update(PHP_SHA384_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_SHA384Final(unsigned char[48], PHP_SHA384_CTX *); - -/* SHA512 context */ -typedef struct { - uint64_t state[8]; /* state */ - uint64_t count[2]; /* number of bits, modulo 2^128 */ - unsigned char buffer[128]; /* input buffer */ -} PHP_SHA512_CTX; - -PHP_HASH_API void PHP_SHA512Init(PHP_SHA512_CTX *); -PHP_HASH_API void PHP_SHA512Update(PHP_SHA512_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_SHA512Final(unsigned char[64], PHP_SHA512_CTX *); - -PHP_HASH_API void PHP_SHA512_256Init(PHP_SHA512_CTX *); -#define PHP_SHA512_256Update PHP_SHA512Update -PHP_HASH_API void PHP_SHA512_256Final(unsigned char[32], PHP_SHA512_CTX *); - -PHP_HASH_API void PHP_SHA512_224Init(PHP_SHA512_CTX *); -#define PHP_SHA512_224Update PHP_SHA512Update -PHP_HASH_API void PHP_SHA512_224Final(unsigned char[28], PHP_SHA512_CTX *); - -#endif /* PHP_HASH_SHA_H */ diff --git a/include/php/ext/hash/php_hash_sha3.h b/include/php/ext/hash/php_hash_sha3.h deleted file mode 100644 index 0608f40..0000000 --- a/include/php/ext/hash/php_hash_sha3.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sara Golemon | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_SHA3_H -#define PHP_HASH_SHA3_H - -#include "php.h" - -typedef struct { -#ifdef HAVE_SLOW_HASH3 - unsigned char state[200]; // 5 * 5 * sizeof(uint64) - uint32_t pos; -#else - void *hashinstance; -#endif -} PHP_SHA3_CTX; - -typedef PHP_SHA3_CTX PHP_SHA3_224_CTX; -typedef PHP_SHA3_CTX PHP_SHA3_256_CTX; -typedef PHP_SHA3_CTX PHP_SHA3_384_CTX; -typedef PHP_SHA3_CTX PHP_SHA3_512_CTX; - -PHP_HASH_API void PHP_SHA3224Init(PHP_SHA3_224_CTX*); -PHP_HASH_API void PHP_SHA3224Update(PHP_SHA3_224_CTX*, const unsigned char*, size_t); -PHP_HASH_API void PHP_SAH3224Final(unsigned char[32], PHP_SHA3_224_CTX*); - -PHP_HASH_API void PHP_SHA3256Init(PHP_SHA3_256_CTX*); -PHP_HASH_API void PHP_SHA3256Update(PHP_SHA3_256_CTX*, const unsigned char*, size_t); -PHP_HASH_API void PHP_SAH3256Final(unsigned char[32], PHP_SHA3_256_CTX*); - -PHP_HASH_API void PHP_SHA3384Init(PHP_SHA3_384_CTX*); -PHP_HASH_API void PHP_SHA3384Update(PHP_SHA3_384_CTX*, const unsigned char*, size_t); -PHP_HASH_API void PHP_SAH3384Final(unsigned char[32], PHP_SHA3_384_CTX*); - -PHP_HASH_API void PHP_SHA3512Init(PHP_SHA3_512_CTX*); -PHP_HASH_API void PHP_SHA3512Update(PHP_SHA3_512_CTX*, const unsigned char*, size_t); -PHP_HASH_API void PHP_SAH3512Final(unsigned char[32], PHP_SHA3_512_CTX*); - -#endif diff --git a/include/php/ext/hash/php_hash_snefru.h b/include/php/ext/hash/php_hash_snefru.h deleted file mode 100644 index 2040fbf..0000000 --- a/include/php/ext/hash/php_hash_snefru.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_SNEFRU_H -#define PHP_HASH_SNEFRU_H - -/* SNEFRU-2.5a with 8 passes and 256 bit hash output - * AKA "Xerox Secure Hash Function" - */ - -#include "ext/standard/basic_functions.h" - -/* SNEFRU context */ -typedef struct { - uint32_t state[16]; - uint32_t count[2]; - unsigned char length; - unsigned char buffer[32]; -} PHP_SNEFRU_CTX; - -PHP_HASH_API void PHP_SNEFRUInit(PHP_SNEFRU_CTX *); -PHP_HASH_API void PHP_SNEFRUUpdate(PHP_SNEFRU_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_SNEFRUFinal(unsigned char[32], PHP_SNEFRU_CTX *); - -#endif diff --git a/include/php/ext/hash/php_hash_tiger.h b/include/php/ext/hash/php_hash_tiger.h deleted file mode 100644 index b80e4e3..0000000 --- a/include/php/ext/hash/php_hash_tiger.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_TIGER_H -#define PHP_HASH_TIGER_H - -/* TIGER context */ -typedef struct { - uint64_t state[3]; - uint64_t passed; - unsigned char buffer[64]; - unsigned int passes:1; - size_t length; -} PHP_TIGER_CTX; - -PHP_HASH_API void PHP_3TIGERInit(PHP_TIGER_CTX *context); -PHP_HASH_API void PHP_4TIGERInit(PHP_TIGER_CTX *context); -PHP_HASH_API void PHP_TIGERUpdate(PHP_TIGER_CTX *context, const unsigned char *input, size_t len); -PHP_HASH_API void PHP_TIGER128Final(unsigned char digest[16], PHP_TIGER_CTX *context); -PHP_HASH_API void PHP_TIGER160Final(unsigned char digest[20], PHP_TIGER_CTX *context); -PHP_HASH_API void PHP_TIGER192Final(unsigned char digest[24], PHP_TIGER_CTX *context); - -#endif diff --git a/include/php/ext/hash/php_hash_whirlpool.h b/include/php/ext/hash/php_hash_whirlpool.h deleted file mode 100644 index 3a2e98c..0000000 --- a/include/php/ext/hash/php_hash_whirlpool.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HASH_WHIRLPOOL_H -#define PHP_HASH_WHIRLPOOL_H - -/* WHIRLPOOL context */ -typedef struct { - uint64_t state[8]; - unsigned char bitlength[32]; - struct { - int pos; - int bits; - unsigned char data[64]; - } buffer; -} PHP_WHIRLPOOL_CTX; - -PHP_HASH_API void PHP_WHIRLPOOLInit(PHP_WHIRLPOOL_CTX *); -PHP_HASH_API void PHP_WHIRLPOOLUpdate(PHP_WHIRLPOOL_CTX *, const unsigned char *, size_t); -PHP_HASH_API void PHP_WHIRLPOOLFinal(unsigned char[64], PHP_WHIRLPOOL_CTX *); - -#endif diff --git a/include/php/ext/json/php_json.h b/include/php/ext/json/php_json.h deleted file mode 100644 index 99afe8d..0000000 --- a/include/php/ext/json/php_json.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Omar Kilani | - | Jakub Zelenka | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_JSON_H -#define PHP_JSON_H - -#include "php_version.h" -#include "zend_smart_str_public.h" - -#define PHP_JSON_VERSION PHP_VERSION - -extern zend_module_entry json_module_entry; -#define phpext_json_ptr &json_module_entry - -#if defined(PHP_WIN32) && defined(JSON_EXPORTS) -#define PHP_JSON_API __declspec(dllexport) -#else -#define PHP_JSON_API PHPAPI -#endif - -#ifdef ZTS -#include "TSRM.h" -#endif - -extern PHP_JSON_API zend_class_entry *php_json_serializable_ce; - -/* error codes */ -typedef enum { - PHP_JSON_ERROR_NONE = 0, - PHP_JSON_ERROR_DEPTH, - PHP_JSON_ERROR_STATE_MISMATCH, - PHP_JSON_ERROR_CTRL_CHAR, - PHP_JSON_ERROR_SYNTAX, - PHP_JSON_ERROR_UTF8, - PHP_JSON_ERROR_RECURSION, - PHP_JSON_ERROR_INF_OR_NAN, - PHP_JSON_ERROR_UNSUPPORTED_TYPE, - PHP_JSON_ERROR_INVALID_PROPERTY_NAME, - PHP_JSON_ERROR_UTF16 -} php_json_error_code; - -/* json_decode() options */ -#define PHP_JSON_OBJECT_AS_ARRAY (1<<0) -#define PHP_JSON_BIGINT_AS_STRING (1<<1) - -/* json_encode() options */ -#define PHP_JSON_HEX_TAG (1<<0) -#define PHP_JSON_HEX_AMP (1<<1) -#define PHP_JSON_HEX_APOS (1<<2) -#define PHP_JSON_HEX_QUOT (1<<3) -#define PHP_JSON_FORCE_OBJECT (1<<4) -#define PHP_JSON_NUMERIC_CHECK (1<<5) -#define PHP_JSON_UNESCAPED_SLASHES (1<<6) -#define PHP_JSON_PRETTY_PRINT (1<<7) -#define PHP_JSON_UNESCAPED_UNICODE (1<<8) -#define PHP_JSON_PARTIAL_OUTPUT_ON_ERROR (1<<9) -#define PHP_JSON_PRESERVE_ZERO_FRACTION (1<<10) -#define PHP_JSON_UNESCAPED_LINE_TERMINATORS (1<<11) - -/* json_decode() and json_encode() common options */ -#define PHP_JSON_INVALID_UTF8_IGNORE (1<<20) -#define PHP_JSON_INVALID_UTF8_SUBSTITUTE (1<<21) -#define PHP_JSON_THROW_ON_ERROR (1<<22) - -/* Internal flags */ -#define PHP_JSON_OUTPUT_ARRAY 0 -#define PHP_JSON_OUTPUT_OBJECT 1 - -/* default depth */ -#define PHP_JSON_PARSER_DEFAULT_DEPTH 512 - -ZEND_BEGIN_MODULE_GLOBALS(json) - int encoder_depth; - int encode_max_depth; - php_json_error_code error_code; -ZEND_END_MODULE_GLOBALS(json) - -PHP_JSON_API ZEND_EXTERN_MODULE_GLOBALS(json) -#define JSON_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(json, v) - -#if defined(ZTS) && defined(COMPILE_DL_JSON) -ZEND_TSRMLS_CACHE_EXTERN() -#endif - -PHP_JSON_API int php_json_encode_ex(smart_str *buf, zval *val, int options, zend_long depth); -PHP_JSON_API int php_json_encode(smart_str *buf, zval *val, int options); -PHP_JSON_API int php_json_decode_ex(zval *return_value, char *str, size_t str_len, zend_long options, zend_long depth); - -static inline int php_json_decode(zval *return_value, char *str, int str_len, zend_bool assoc, zend_long depth) -{ - return php_json_decode_ex(return_value, str, str_len, assoc ? PHP_JSON_OBJECT_AS_ARRAY : 0, depth); -} - -#endif /* PHP_JSON_H */ diff --git a/include/php/ext/json/php_json_parser.h b/include/php/ext/json/php_json_parser.h deleted file mode 100644 index 8b6393d..0000000 --- a/include/php/ext/json/php_json_parser.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jakub Zelenka | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_JSON_PARSER_H -#define PHP_JSON_PARSER_H - -#include "php.h" -#include "php_json_scanner.h" - -typedef struct _php_json_parser php_json_parser; - -typedef int (*php_json_parser_func_array_create_t)( - php_json_parser *parser, zval *array); -typedef int (*php_json_parser_func_array_append_t)( - php_json_parser *parser, zval *array, zval *zvalue); -typedef int (*php_json_parser_func_array_start_t)( - php_json_parser *parser); -typedef int (*php_json_parser_func_array_end_t)( - php_json_parser *parser, zval *object); -typedef int (*php_json_parser_func_object_create_t)( - php_json_parser *parser, zval *object); -typedef int (*php_json_parser_func_object_update_t)( - php_json_parser *parser, zval *object, zend_string *key, zval *zvalue); -typedef int (*php_json_parser_func_object_start_t)( - php_json_parser *parser); -typedef int (*php_json_parser_func_object_end_t)( - php_json_parser *parser, zval *object); - -typedef struct _php_json_parser_methods { - php_json_parser_func_array_create_t array_create; - php_json_parser_func_array_append_t array_append; - php_json_parser_func_array_start_t array_start; - php_json_parser_func_array_end_t array_end; - php_json_parser_func_object_create_t object_create; - php_json_parser_func_object_update_t object_update; - php_json_parser_func_object_start_t object_start; - php_json_parser_func_object_end_t object_end; -} php_json_parser_methods; - -struct _php_json_parser { - php_json_scanner scanner; - zval *return_value; - int depth; - int max_depth; - php_json_parser_methods methods; -}; - -PHP_JSON_API void php_json_parser_init_ex( - php_json_parser *parser, - zval *return_value, - char *str, - size_t str_len, - int options, - int max_depth, - const php_json_parser_methods *methods); - -PHP_JSON_API void php_json_parser_init( - php_json_parser *parser, - zval *return_value, - char *str, - size_t str_len, - int options, - int max_depth); - -PHP_JSON_API php_json_error_code php_json_parser_error_code(const php_json_parser *parser); - -PHP_JSON_API int php_json_parse(php_json_parser *parser); - -int php_json_yyparse(php_json_parser *parser); - -#endif /* PHP_JSON_PARSER_H */ diff --git a/include/php/ext/json/php_json_scanner.h b/include/php/ext/json/php_json_scanner.h deleted file mode 100644 index 7a93561..0000000 --- a/include/php/ext/json/php_json_scanner.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jakub Zelenka | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_JSON_SCANNER_H -#define PHP_JSON_SCANNER_H - -#include "php.h" -#include "php_json.h" - -typedef unsigned char php_json_ctype; - -typedef struct _php_json_scanner { - php_json_ctype *cursor; /* cursor position */ - php_json_ctype *token; /* token position */ - php_json_ctype *limit; /* the last read character + 1 position */ - php_json_ctype *marker; /* marker position for backtracking */ - php_json_ctype *ctxmarker; /* marker position for context backtracking */ - php_json_ctype *str_start; /* start position of the string */ - php_json_ctype *pstr; /* string pointer for escapes conversion */ - zval value; /* value */ - int str_esc; /* number of extra characters for escaping */ - int state; /* condition state */ - int options; /* options */ - php_json_error_code errcode; /* error type if there is an error */ - int utf8_invalid; /* whether utf8 is invalid */ - int utf8_invalid_count; /* number of extra character for invalid utf8 */ -} php_json_scanner; - - -void php_json_scanner_init(php_json_scanner *scanner, char *str, size_t str_len, int options); -int php_json_scan(php_json_scanner *s); - -#endif /* PHP_JSON_SCANNER_H */ diff --git a/include/php/ext/libxml/php_libxml.h b/include/php/ext/libxml/php_libxml.h deleted file mode 100644 index cf936e9..0000000 --- a/include/php/ext/libxml/php_libxml.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Shane Caraveo | - | Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_LIBXML_H -#define PHP_LIBXML_H - -#if HAVE_LIBXML -extern zend_module_entry libxml_module_entry; -#define libxml_module_ptr &libxml_module_entry - -#include "php_version.h" -#define PHP_LIBXML_VERSION PHP_VERSION - -#ifdef PHP_WIN32 -# define PHP_LIBXML_API __declspec(dllexport) -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define PHP_LIBXML_API __attribute__ ((visibility("default"))) -#else -# define PHP_LIBXML_API -#endif - -#include "zend_smart_str.h" -#include - -#define LIBXML_SAVE_NOEMPTYTAG 1<<2 - -ZEND_BEGIN_MODULE_GLOBALS(libxml) - zval stream_context; - smart_str error_buffer; - zend_llist *error_list; - struct _php_libxml_entity_resolver { - zval object; - zend_fcall_info fci; - zend_fcall_info_cache fcc; - } entity_loader; - zend_bool entity_loader_disabled; -ZEND_END_MODULE_GLOBALS(libxml) - -typedef struct _libxml_doc_props { - int formatoutput; - int validateonparse; - int resolveexternals; - int preservewhitespace; - int substituteentities; - int stricterror; - int recover; - HashTable *classmap; -} libxml_doc_props; - -typedef struct _php_libxml_ref_obj { - void *ptr; - int refcount; - libxml_doc_props *doc_props; -} php_libxml_ref_obj; - -typedef struct _php_libxml_node_ptr { - xmlNodePtr node; - int refcount; - void *_private; -} php_libxml_node_ptr; - -typedef struct _php_libxml_node_object { - php_libxml_node_ptr *node; - php_libxml_ref_obj *document; - HashTable *properties; - zend_object std; -} php_libxml_node_object; - - -static inline php_libxml_node_object *php_libxml_node_fetch_object(zend_object *obj) { - return (php_libxml_node_object *)((char*)(obj) - obj->handlers->offset); -} - -#define Z_LIBXML_NODE_P(zv) php_libxml_node_fetch_object(Z_OBJ_P((zv))) - -typedef void * (*php_libxml_export_node) (zval *object); - -PHP_LIBXML_API int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr node, void *private_data); -PHP_LIBXML_API int php_libxml_decrement_node_ptr(php_libxml_node_object *object); -PHP_LIBXML_API int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr docp); -PHP_LIBXML_API int php_libxml_decrement_doc_ref(php_libxml_node_object *object); -PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object); -PHP_LIBXML_API zval *php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function); -/* When an explicit freeing of node and children is required */ -PHP_LIBXML_API void php_libxml_node_free_list(xmlNodePtr node); -PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node); -/* When object dtor is called as node may still be referenced */ -PHP_LIBXML_API void php_libxml_node_decrement_resource(php_libxml_node_object *object); -PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...); -PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...); -PHP_LIBXML_API void php_libxml_ctx_error(void *ctx, const char *msg, ...); -PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s); -PHP_LIBXML_API void php_libxml_switch_context(zval *context, zval *oldcontext); -PHP_LIBXML_API void php_libxml_issue_error(int level, const char *msg); -PHP_LIBXML_API zend_bool php_libxml_disable_entity_loader(zend_bool disable); - -/* Init/shutdown functions*/ -PHP_LIBXML_API void php_libxml_initialize(void); -PHP_LIBXML_API void php_libxml_shutdown(void); - -#define LIBXML(v) ZEND_MODULE_GLOBALS_ACCESSOR(libxml, v) - -#if defined(ZTS) && defined(COMPILE_DL_LIBXML) -ZEND_TSRMLS_CACHE_EXTERN() -#endif - -#else /* HAVE_LIBXML */ -#define libxml_module_ptr NULL -#endif - -#define phpext_libxml_ptr libxml_module_ptr - -#endif /* PHP_LIBXML_H */ diff --git a/include/php/ext/mbstring/libmbfl/config.h b/include/php/ext/mbstring/libmbfl/config.h deleted file mode 100644 index f1038d8..0000000 --- a/include/php/ext/mbstring/libmbfl/config.h +++ /dev/null @@ -1 +0,0 @@ -#include "php_config.h" diff --git a/include/php/ext/mbstring/libmbfl/mbfl/eaw_table.h b/include/php/ext/mbstring/libmbfl/mbfl/eaw_table.h deleted file mode 100644 index 834b134..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/eaw_table.h +++ /dev/null @@ -1,44 +0,0 @@ -static const struct { - int begin; - int end; -} mbfl_eaw_table[] = { - { 0x1100, 0x115f }, - { 0x11a3, 0x11a7 }, - { 0x11fa, 0x11ff }, - { 0x2329, 0x232a }, - { 0x2e80, 0x2e99 }, - { 0x2e9b, 0x2ef3 }, - { 0x2f00, 0x2fd5 }, - { 0x2ff0, 0x2ffb }, - { 0x3000, 0x303e }, - { 0x3041, 0x3096 }, - { 0x3099, 0x30ff }, - { 0x3105, 0x312d }, - { 0x3131, 0x318e }, - { 0x3190, 0x31ba }, - { 0x31c0, 0x31e3 }, - { 0x31f0, 0x321e }, - { 0x3220, 0x3247 }, - { 0x3250, 0x32fe }, - { 0x3300, 0x4dbf }, - { 0x4e00, 0xa48c }, - { 0xa490, 0xa4c6 }, - { 0xa960, 0xa97c }, - { 0xac00, 0xd7a3 }, - { 0xd7b0, 0xd7c6 }, - { 0xd7cb, 0xd7fb }, - { 0xf900, 0xfaff }, - { 0xfe10, 0xfe19 }, - { 0xfe30, 0xfe52 }, - { 0xfe54, 0xfe66 }, - { 0xfe68, 0xfe6b }, - { 0xff01, 0xff60 }, - { 0xffe0, 0xffe6 }, - { 0x1b000, 0x1b001 }, - { 0x1f200, 0x1f202 }, - { 0x1f210, 0x1f23a }, - { 0x1f240, 0x1f248 }, - { 0x1f250, 0x1f251 }, - { 0x20000, 0x2fffd }, - { 0x30000, 0x3fffd } -}; diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfilter.h deleted file mode 100644 index 0966e2d..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter.h +++ /dev/null @@ -1,308 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * - * Copyright (c) 1998,1999,2000,2001 HappySize, Inc. All rights reserved. - * - * This software is released under the GNU Lesser General Public License. - * (Version 2.1, February 1999) - * Please read the following detail of the licence (in japanese). - * - * ◆使用許諾条件◆ - * - * このソフトウェアは株式会社ハッピーサイズによって開発されました。株式会社ハッ - * ピーサイズは、著作権法および万国著作権条約の定めにより、このソフトウェアに関 - * するすべての権利を留保する権利を持ち、ここに行使します。株式会社ハッピーサイ - * ズは以下に明記した条件に従って、このソフトウェアを使用する排他的ではない権利 - * をお客様に許諾します。何人たりとも、以下の条件に反してこのソフトウェアを使用 - * することはできません。 - * - * このソフトウェアを「GNU Lesser General Public License (Version 2.1, February - * 1999)」に示された条件で使用することを、全ての方に許諾します。「GNU Lesser - * General Public License」を満たさない使用には、株式会社ハッピーサイズから書面 - * による許諾を得る必要があります。 - * - * 「GNU Lesser General Public License」の全文は以下のウェブページから取得でき - * ます。「GNU Lesser General Public License」とは、これまでLibrary General - * Public Licenseと呼ばれていたものです。 - * http://www.gnu.org/ --- GNUウェブサイト - * http://www.gnu.org/copyleft/lesser.html --- ライセンス文面 - * このライセンスの内容がわからない方、守れない方には使用を許諾しません。 - * - * しかしながら、当社とGNUプロジェクトとの特定の関係を示唆または主張するもので - * はありません。 - * - * ◆保証内容◆ - * - * このソフトウェアは、期待された動作・機能・性能を持つことを目標として設計され - * 開発されていますが、これを保証するものではありません。このソフトウェアは「こ - * のまま」の状態で提供されており、たとえばこのソフトウェアの有用性ないし特定の - * 目的に合致することといった、何らかの保証内容が、明示されたり暗黙に示されてい - * る場合であっても、その保証は無効です。このソフトウェアを使用した結果ないし使 - * 用しなかった結果によって、直接あるいは間接に受けた身体的な傷害、財産上の損害 - * 、データの損失あるいはその他の全ての損害については、その損害の可能性が使用者 - * 、当社あるいは第三者によって警告されていた場合であっても、当社はその損害の賠 - * 償および補填を行いません。この規定は他の全ての、書面上または書面に無い保証・ - * 契約・規定に優先します。 - * - * ◆著作権者の連絡先および使用条件についての問い合わせ先◆ - * - * 〒102-0073 - * 東京都千代田区九段北1-13-5日本地所第一ビル4F - * 株式会社ハッピーサイズ - * Phone: 03-3512-3655, Fax: 03-3512-3656 - * Email: sales@happysize.co.jp - * Web: http://happysize.com/ - * - * ◆著者◆ - * - * 金本 茂 - * - * ◆履歴◆ - * - * 1998/11/10 sgk implementation in C++ - * 1999/4/25 sgk Cで書きなおし。 - * 1999/4/26 sgk 入力フィルタを実装。漢字コードを推定しながらフィルタを追加。 - * 1999/6/?? Unicodeサポート。 - * 1999/6/22 sgk ライセンスをLGPLに変更。 - * - */ - -/* - * Unicode support - * - * Portions copyright (c) 1999,2000,2001 by the PHP3 internationalization team. - * All rights reserved. - * - */ - -/* - * - * streamable kanji code filter and converter - * mbfl : Multi Byte FiLter Liblary - * - */ - -#ifndef MBFL_MBFILTER_H -#define MBFL_MBFILTER_H - -#include "mbfl_defs.h" -#include "mbfl_consts.h" -#include "mbfl_allocators.h" -#include "mbfl_encoding.h" -#include "mbfl_language.h" -#include "mbfl_string.h" -#include "mbfl_convert.h" -#include "mbfl_ident.h" - -/* Prefer local fix, otherwise need to include too much. */ -#ifndef ssize_t -#if defined(_WIN64) -#define ssize_t __int64 -#elif defined(_WIN32) -#define ssize_t __int32 -#elif defined(__GNUC__) && __GNUC__ >= 4 -#define ssize_t long -#endif -#endif - -/* - * version information - */ -#define MBFL_VERSION_MAJOR 1 -#define MBFL_VERSION_MINOR 3 -#define MBFL_VERSION_TEENY 2 - -/* - * convert filter - */ -#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE 0 -#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR 1 -#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG 2 -#define MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY 3 - -/* - * convenience macros - */ -#ifndef MIN -#define MIN(a,b) ((a)<(b)?(a):(b)) -#endif - -/* - * buffering converter - */ -typedef struct _mbfl_buffer_converter mbfl_buffer_converter; - -struct _mbfl_buffer_converter { - mbfl_convert_filter *filter1; - mbfl_convert_filter *filter2; - mbfl_memory_device device; - const mbfl_encoding *from; - const mbfl_encoding *to; -}; - -MBFLAPI extern mbfl_buffer_converter * mbfl_buffer_converter_new(const mbfl_encoding *from, const mbfl_encoding *to, size_t buf_initsz); -MBFLAPI extern void mbfl_buffer_converter_delete(mbfl_buffer_converter *convd); -MBFLAPI extern void mbfl_buffer_converter_reset(mbfl_buffer_converter *convd); -MBFLAPI extern int mbfl_buffer_converter_illegal_mode(mbfl_buffer_converter *convd, int mode); -MBFLAPI extern int mbfl_buffer_converter_illegal_substchar(mbfl_buffer_converter *convd, int substchar); -MBFLAPI extern int mbfl_buffer_converter_strncat(mbfl_buffer_converter *convd, const unsigned char *p, size_t n); -MBFLAPI extern int mbfl_buffer_converter_feed(mbfl_buffer_converter *convd, mbfl_string *string); -MBFLAPI extern int mbfl_buffer_converter_feed2(mbfl_buffer_converter *convd, mbfl_string *string, size_t *loc); -MBFLAPI extern int mbfl_buffer_converter_flush(mbfl_buffer_converter *convd); -MBFLAPI extern mbfl_string * mbfl_buffer_converter_getbuffer(mbfl_buffer_converter *convd, mbfl_string *result); -MBFLAPI extern mbfl_string * mbfl_buffer_converter_result(mbfl_buffer_converter *convd, mbfl_string *result); -MBFLAPI extern mbfl_string * mbfl_buffer_converter_feed_result(mbfl_buffer_converter *convd, mbfl_string *string, mbfl_string *result); -MBFLAPI extern size_t mbfl_buffer_illegalchars(mbfl_buffer_converter *convd); - -/* - * encoding detector - */ -typedef struct _mbfl_encoding_detector mbfl_encoding_detector; - -struct _mbfl_encoding_detector { - mbfl_identify_filter **filter_list; - int filter_list_size; - int strict; -}; - -MBFLAPI extern mbfl_encoding_detector * mbfl_encoding_detector_new(const mbfl_encoding **elist, int elistsz, int strict); -MBFLAPI extern void mbfl_encoding_detector_delete(mbfl_encoding_detector *identd); -MBFLAPI extern int mbfl_encoding_detector_feed(mbfl_encoding_detector *identd, mbfl_string *string); -MBFLAPI extern const mbfl_encoding *mbfl_encoding_detector_judge(mbfl_encoding_detector *identd); - - -/* - * encoding converter - */ -MBFLAPI extern mbfl_string * -mbfl_convert_encoding(mbfl_string *string, mbfl_string *result, const mbfl_encoding *toenc); - - -/* - * identify encoding - */ -MBFLAPI extern const mbfl_encoding * -mbfl_identify_encoding(mbfl_string *string, const mbfl_encoding **elist, int elistsz, int strict); - -/* Lengths -1 through -16 are reserved for error return values */ -static inline int mbfl_is_error(size_t len) { - return len >= (size_t) -16; -} - -/* - * strlen - */ -MBFLAPI extern size_t -mbfl_strlen(mbfl_string *string); - -/* - * oddlen - */ -MBFLAPI extern size_t -mbfl_oddlen(mbfl_string *string); - -/* - * strpos - */ -MBFLAPI extern size_t -mbfl_strpos(mbfl_string *haystack, mbfl_string *needle, ssize_t offset, int reverse); - -/* - * substr_count - */ -MBFLAPI extern size_t -mbfl_substr_count(mbfl_string *haystack, mbfl_string *needle); - -/* - * If specified as length, the substr until the end of the string is taken. - */ -#define MBFL_SUBSTR_UNTIL_END ((size_t) -1) - -/* - * substr - */ -MBFLAPI extern mbfl_string * -mbfl_substr(mbfl_string *string, mbfl_string *result, size_t from, size_t length); - -/* - * strcut - */ -MBFLAPI extern mbfl_string * -mbfl_strcut(mbfl_string *string, mbfl_string *result, size_t from, size_t length); - -/* - * strwidth - */ -MBFLAPI extern size_t -mbfl_strwidth(mbfl_string *string); - -/* - * strimwidth - */ -MBFLAPI extern mbfl_string * -mbfl_strimwidth(mbfl_string *string, mbfl_string *marker, mbfl_string *result, size_t from, size_t width); - -/* - * MIME header encode - */ -struct mime_header_encoder_data; /* forward declaration */ - -MBFLAPI extern struct mime_header_encoder_data * -mime_header_encoder_new( - const mbfl_encoding *incode, - const mbfl_encoding *outcode, - const mbfl_encoding *encoding); - -MBFLAPI extern void -mime_header_encoder_delete(struct mime_header_encoder_data *pe); - -MBFLAPI extern int -mime_header_encoder_feed(int c, struct mime_header_encoder_data *pe); - -MBFLAPI extern mbfl_string * -mime_header_encoder_result(struct mime_header_encoder_data *pe, mbfl_string *result); - -MBFLAPI extern mbfl_string * -mbfl_mime_header_encode( - mbfl_string *string, mbfl_string *result, - const mbfl_encoding *outcode, - const mbfl_encoding *encoding, - const char *linefeed, - int indent); - -/* - * MIME header decode - */ -struct mime_header_decoder_data; /* forward declaration */ - -MBFLAPI extern struct mime_header_decoder_data * -mime_header_decoder_new(const mbfl_encoding *outcode); - -MBFLAPI extern void -mime_header_decoder_delete(struct mime_header_decoder_data *pd); - -MBFLAPI extern int -mime_header_decoder_feed(int c, struct mime_header_decoder_data *pd); - -MBFLAPI extern mbfl_string * -mime_header_decoder_result(struct mime_header_decoder_data *pd, mbfl_string *result); - -MBFLAPI extern mbfl_string * -mbfl_mime_header_decode( - mbfl_string *string, - mbfl_string *result, - const mbfl_encoding *outcode); - -/* - * convert HTML numeric entity - */ -MBFLAPI extern mbfl_string * -mbfl_html_numeric_entity(mbfl_string *string, mbfl_string *result, int *convmap, int mapsize, int type); - -/* - * convert of harfwidth and fullwidth for japanese - */ -MBFLAPI extern mbfl_string * -mbfl_ja_jp_hantozen(mbfl_string *string, mbfl_string *result, int mode); - -#endif /* MBFL_MBFILTER_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h deleted file mode 100644 index acdf640..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.c - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.c is included in this package . - * - */ - -#ifndef MBFL_MBFILTER_8BIT_H -#define MBFL_MBFILTER_8BIT_H - -#include "mbfl_defs.h" -#include "mbfilter.h" - -MBFLAPI extern const mbfl_encoding mbfl_encoding_8bit; - -#endif /* MBFL_MBFILTER_8BIT_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h deleted file mode 100644 index a1064b8..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.c - * by moriyoshi koizumi on 4 dec 2002. - * - */ - -#ifndef MBFL_MBFILTER_PASS_H -#define MBFL_MBFILTER_PASS_H - -#include "mbfl_defs.h" -#include "mbfilter.h" - -MBFLAPI extern const mbfl_encoding mbfl_encoding_pass; -MBFLAPI extern const struct mbfl_convert_vtbl vtbl_pass; - -MBFLAPI extern int mbfl_filt_conv_pass(int c, mbfl_convert_filter *filter); - -#endif /* MBFL_MBFILTER_PASS_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h deleted file mode 100644 index b412f4c..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.c - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.c is included in this package . - * - */ - -#ifndef MBFL_MBFILTER_WCHAR_H -#define MBFL_MBFILTER_WCHAR_H - -#include "mbfl_defs.h" -#include "mbfilter.h" - -MBFLAPI extern const mbfl_encoding mbfl_encoding_wchar; - -#endif /* MBFL_MBFILTER_WCHAR_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h deleted file mode 100644 index 08fc275..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_ALLOCATORS_H -#define MBFL_ALLOCATORS_H - -#include -#include "mbfl_defs.h" - -typedef struct _mbfl_allocators { - void *(*malloc)(size_t); - void *(*realloc)(void *, size_t); - void *(*calloc)(size_t, size_t); - void (*free)(void *); - void *(*pmalloc)(size_t); - void *(*prealloc)(void *, size_t); - void (*pfree)(void *); -} mbfl_allocators; - -MBFLAPI extern mbfl_allocators *__mbfl_allocators; - -#define mbfl_malloc (__mbfl_allocators->malloc) -#define mbfl_realloc (__mbfl_allocators->realloc) -#define mbfl_calloc (__mbfl_allocators->calloc) -#define mbfl_free (__mbfl_allocators->free) -#define mbfl_pmalloc (__mbfl_allocators->pmalloc) -#define mbfl_prealloc (__mbfl_allocators->preallloc) -#define mbfl_pfree (__mbfl_allocators->pfree) - -#endif /* MBFL_ALLOCATORS_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_consts.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_consts.h deleted file mode 100644 index cad99b0..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_consts.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_CONSTS_H -#define MBFL_CONSTS_H - -#define MBFL_ENCTYPE_SBCS 0x00000001 -#define MBFL_ENCTYPE_MBCS 0x00000002 -#define MBFL_ENCTYPE_WCS2BE 0x00000010 -#define MBFL_ENCTYPE_WCS2LE 0x00000020 -#define MBFL_ENCTYPE_MWC2BE 0x00000040 -#define MBFL_ENCTYPE_MWC2LE 0x00000080 -#define MBFL_ENCTYPE_WCS4BE 0x00000100 -#define MBFL_ENCTYPE_WCS4LE 0x00000200 -#define MBFL_ENCTYPE_MWC4BE 0x00000400 -#define MBFL_ENCTYPE_MWC4LE 0x00000800 -#define MBFL_ENCTYPE_SHFTCODE 0x00001000 -#define MBFL_ENCTYPE_ENC_STRM 0x00002000 -#define MBFL_ENCTYPE_GL_UNSAFE 0x00004000 - -/* wchar plane, special character */ -#define MBFL_WCSPLANE_MASK 0xffff -#define MBFL_WCSPLANE_UCS2MAX 0x00010000 -#define MBFL_WCSPLANE_UTF32MAX 0x00110000 -#define MBFL_WCSPLANE_SUPMIN 0x00010000 -#define MBFL_WCSPLANE_SUPMAX 0x00200000 -#define MBFL_WCSPLANE_JIS0213 0x70e00000 /* JIS HEX : 2121h - 7E7Eh */ -#define MBFL_WCSPLANE_JIS0208 0x70e10000 /* JIS HEX : 2121h - 7E7Eh */ -#define MBFL_WCSPLANE_JIS0212 0x70e20000 /* JIS HEX : 2121h - 7E7Eh */ -#define MBFL_WCSPLANE_WINCP932 0x70e30000 /* JIS HEX : 2121h - 9898h */ -#define MBFL_WCSPLANE_8859_1 0x70e40000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_2 0x70e50000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_3 0x70e60000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_4 0x70e70000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_5 0x70e80000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_6 0x70e90000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_7 0x70ea0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_8 0x70eb0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_9 0x70ec0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_10 0x70ed0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_13 0x70ee0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_14 0x70ef0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_8859_15 0x70f00000 /* 00h - FFh */ -#define MBFL_WCSPLANE_KSC5601 0x70f10000 /* 2121h - 7E7Eh */ -#define MBFL_WCSPLANE_GB2312 0x70f20000 /* 2121h - 7E7Eh */ -#define MBFL_WCSPLANE_WINCP936 0x70f30000 /* 2121h - 9898h */ -#define MBFL_WCSPLANE_BIG5 0x70f40000 /* 2121h - 9898h */ -#define MBFL_WCSPLANE_CNS11643 0x70f50000 /* 2121h - 9898h */ -#define MBFL_WCSPLANE_UHC 0x70f60000 /* 8141h - fefeh */ -#define MBFL_WCSPLANE_CP1251 0x70f70000 -#define MBFL_WCSPLANE_CP866 0x70f80000 -#define MBFL_WCSPLANE_KOI8R 0x70f90000 -#define MBFL_WCSPLANE_8859_16 0x70fa0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_ARMSCII8 0x70fb0000 -#define MBFL_WCSPLANE_KOI8U 0x70fc0000 -#define MBFL_WCSPLANE_CP1254 0x70fd0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_CP850 0x70fe0000 /* 00h - FFh */ -#define MBFL_WCSPLANE_GB18030 0x70ff0000 /* a1a1h-e3329a35h */ -#define MBFL_WCSGROUP_MASK 0xffffff -#define MBFL_WCSGROUP_UCS4MAX 0x70000000 -#define MBFL_WCSGROUP_WCHARMAX 0x78000000 -#define MBFL_WCSGROUP_THROUGH 0x78000000 /* 000000h - FFFFFFh */ - -#define MBFL_QPRINT_STS_MIME_HEADER 0x1000000 -#define MBFL_BASE64_STS_MIME_HEADER 0x1000000 - -#endif /* MBFL_CONSTS_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_convert.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_convert.h deleted file mode 100644 index 31e54c6..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_convert.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_CONVERT_H -#define MBFL_CONVERT_H - -#include "mbfl_defs.h" -#include "mbfl_encoding.h" -#include "mbfl_memory_device.h" - -typedef struct _mbfl_convert_filter mbfl_convert_filter; - -struct _mbfl_convert_filter { - void (*filter_ctor)(mbfl_convert_filter *filter); - void (*filter_dtor)(mbfl_convert_filter *filter); - void (*filter_copy)(mbfl_convert_filter *src, mbfl_convert_filter *dest); - int (*filter_function)(int c, mbfl_convert_filter *filter); - int (*filter_flush)(mbfl_convert_filter *filter); - int (*output_function)(int c, void *data); - int (*flush_function)(void *data); - void *data; - int status; - int cache; - const mbfl_encoding *from; - const mbfl_encoding *to; - int illegal_mode; - int illegal_substchar; - size_t num_illegalchar; - void *opaque; -}; - -MBFLAPI extern mbfl_convert_filter *mbfl_convert_filter_new( - const mbfl_encoding *from, - const mbfl_encoding *to, - int (*output_function)(int, void *), - int (*flush_function)(void *), - void *data ); -MBFLAPI extern mbfl_convert_filter *mbfl_convert_filter_new2( - const struct mbfl_convert_vtbl *vtbl, - int (*output_function)(int, void *), - int (*flush_function)(void *), - void *data ); -MBFLAPI extern void mbfl_convert_filter_delete(mbfl_convert_filter *filter); -MBFLAPI extern int mbfl_convert_filter_feed(int c, mbfl_convert_filter *filter); -MBFLAPI extern int mbfl_convert_filter_feed_string(mbfl_convert_filter *filter, const unsigned char *p, size_t len); -MBFLAPI extern int mbfl_convert_filter_flush(mbfl_convert_filter *filter); -MBFLAPI extern void mbfl_convert_filter_reset(mbfl_convert_filter *filter, const mbfl_encoding *from, const mbfl_encoding *to); -MBFLAPI extern void mbfl_convert_filter_copy(mbfl_convert_filter *src, mbfl_convert_filter *dist); -MBFLAPI extern int mbfl_filt_conv_illegal_output(int c, mbfl_convert_filter *filter); -MBFLAPI extern const struct mbfl_convert_vtbl * mbfl_convert_filter_get_vtbl(const mbfl_encoding *from, const mbfl_encoding *to); - -MBFLAPI extern void mbfl_filt_conv_common_ctor(mbfl_convert_filter *filter); -MBFLAPI extern int mbfl_filt_conv_common_flush(mbfl_convert_filter *filter); -MBFLAPI extern void mbfl_filt_conv_common_dtor(mbfl_convert_filter *filter); - -MBFLAPI extern int mbfl_convert_filter_devcat(mbfl_convert_filter *filter, mbfl_memory_device *src); -MBFLAPI extern int mbfl_convert_filter_strcat(mbfl_convert_filter *filter, const unsigned char *p); - -#endif /* MBFL_CONVERT_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_defs.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_defs.h deleted file mode 100644 index 8b18e5e..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_defs.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_DEFS_H -#define MBFL_DEFS_H - -#ifndef NULL -#ifdef __cplusplus -#define NULL (0L) -#else -#define NULL (void *)(0L) -#endif -#endif - -#ifndef SIZE_MAX -#define SIZE_MAX ((size_t)~0) -#endif - -#ifdef WIN32 -#ifdef MBFL_DLL_EXPORT -#define MBFLAPI __declspec(dllexport) -#else -#define MBFLAPI __declspec(dllimport) -#endif /* MBFL_DLL_EXPORT */ -#else -#if defined(__GNUC__) && __GNUC__ >= 4 -#define MBFLAPI __attribute__((visibility("default"))) -#else -#define MBFLAPI -#endif /* defined(__GNUC__) && __GNUC__ >= 4 */ -#endif /* WIN32 */ - -#endif /* MBFL_DEFS_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h deleted file mode 100644 index c3a9c0a..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_ENCODING_H -#define MBFL_ENCODING_H - -#include "mbfl_defs.h" - -enum mbfl_no_encoding { - mbfl_no_encoding_invalid = -1, - mbfl_no_encoding_pass, - mbfl_no_encoding_wchar, - mbfl_no_encoding_byte2be, - mbfl_no_encoding_byte2le, - mbfl_no_encoding_byte4be, - mbfl_no_encoding_byte4le, - mbfl_no_encoding_base64, - mbfl_no_encoding_uuencode, - mbfl_no_encoding_html_ent, - mbfl_no_encoding_qprint, - mbfl_no_encoding_7bit, - mbfl_no_encoding_8bit, - mbfl_no_encoding_charset_min, - mbfl_no_encoding_ucs4, - mbfl_no_encoding_ucs4be, - mbfl_no_encoding_ucs4le, - mbfl_no_encoding_ucs2, - mbfl_no_encoding_ucs2be, - mbfl_no_encoding_ucs2le, - mbfl_no_encoding_utf32, - mbfl_no_encoding_utf32be, - mbfl_no_encoding_utf32le, - mbfl_no_encoding_utf16, - mbfl_no_encoding_utf16be, - mbfl_no_encoding_utf16le, - mbfl_no_encoding_utf8, - mbfl_no_encoding_utf8_docomo, - mbfl_no_encoding_utf8_kddi_a, - mbfl_no_encoding_utf8_kddi_b, - mbfl_no_encoding_utf8_sb, - mbfl_no_encoding_utf7, - mbfl_no_encoding_utf7imap, - mbfl_no_encoding_ascii, - mbfl_no_encoding_euc_jp, - mbfl_no_encoding_eucjp2004, - mbfl_no_encoding_sjis, - mbfl_no_encoding_eucjp_win, - mbfl_no_encoding_sjis_open, - mbfl_no_encoding_sjis_docomo, - mbfl_no_encoding_sjis_kddi, - mbfl_no_encoding_sjis_sb, - mbfl_no_encoding_sjis_mac, - mbfl_no_encoding_sjis2004, - mbfl_no_encoding_cp932, - mbfl_no_encoding_cp51932, - mbfl_no_encoding_jis, - mbfl_no_encoding_2022jp, - mbfl_no_encoding_2022jp_2004, - mbfl_no_encoding_2022jp_kddi, - mbfl_no_encoding_2022jpms, - mbfl_no_encoding_gb18030, - mbfl_no_encoding_cp1252, - mbfl_no_encoding_cp1254, - mbfl_no_encoding_8859_1, - mbfl_no_encoding_8859_2, - mbfl_no_encoding_8859_3, - mbfl_no_encoding_8859_4, - mbfl_no_encoding_8859_5, - mbfl_no_encoding_8859_6, - mbfl_no_encoding_8859_7, - mbfl_no_encoding_8859_8, - mbfl_no_encoding_8859_9, - mbfl_no_encoding_8859_10, - mbfl_no_encoding_8859_13, - mbfl_no_encoding_8859_14, - mbfl_no_encoding_8859_15, - mbfl_no_encoding_euc_cn, - mbfl_no_encoding_cp936, - mbfl_no_encoding_euc_tw, - mbfl_no_encoding_big5, - mbfl_no_encoding_cp950, - mbfl_no_encoding_euc_kr, - mbfl_no_encoding_2022kr, - mbfl_no_encoding_uhc, - mbfl_no_encoding_hz, - mbfl_no_encoding_cp1251, - mbfl_no_encoding_cp866, - mbfl_no_encoding_koi8r, - mbfl_no_encoding_koi8u, - mbfl_no_encoding_8859_16, - mbfl_no_encoding_armscii8, - mbfl_no_encoding_cp850, - mbfl_no_encoding_jis_ms, - mbfl_no_encoding_cp50220, - mbfl_no_encoding_cp50220raw, - mbfl_no_encoding_cp50221, - mbfl_no_encoding_cp50222, - mbfl_no_encoding_charset_max -}; - -typedef enum mbfl_no_encoding mbfl_encoding_id; - -struct _mbfl_convert_filter; -struct mbfl_convert_vtbl { - enum mbfl_no_encoding from; - enum mbfl_no_encoding to; - void (*filter_ctor)(struct _mbfl_convert_filter *filter); - void (*filter_dtor)(struct _mbfl_convert_filter *filter); - int (*filter_function)(int c, struct _mbfl_convert_filter *filter); - int (*filter_flush)(struct _mbfl_convert_filter *filter); - void (*filter_copy)(struct _mbfl_convert_filter *src, struct _mbfl_convert_filter *dest); -}; - -/* - * encoding - */ -typedef struct _mbfl_encoding { - enum mbfl_no_encoding no_encoding; - const char *name; - const char *mime_name; - const char *(*aliases)[]; - const unsigned char *mblen_table; - unsigned int flag; - const struct mbfl_convert_vtbl *input_filter; - const struct mbfl_convert_vtbl *output_filter; -} mbfl_encoding; - -MBFLAPI extern const mbfl_encoding * mbfl_name2encoding(const char *name); -MBFLAPI extern const mbfl_encoding * mbfl_no2encoding(enum mbfl_no_encoding no_encoding); -MBFLAPI extern enum mbfl_no_encoding mbfl_name2no_encoding(const char *name); -MBFLAPI extern const mbfl_encoding ** mbfl_get_supported_encodings(); -MBFLAPI extern const char * mbfl_no_encoding2name(enum mbfl_no_encoding no_encoding); -MBFLAPI extern const char * mbfl_no2preferred_mime_name(enum mbfl_no_encoding no_encoding); -MBFLAPI extern int mbfl_is_support_encoding(const char *name); - - -#endif /* MBFL_ENCODING_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h deleted file mode 100644 index eeae05a..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_FILTER_OUTPUT_H -#define MBFL_FILTER_OUTPUT_H - -MBFLAPI extern int mbfl_filter_output_pipe(int c, void* data); -MBFLAPI extern int mbfl_filter_output_pipe_flush(void* data); -MBFLAPI extern int mbfl_filter_output_null(int c, void* data); - -#endif /* MBFL_FILTER_OUTPUT_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_ident.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_ident.h deleted file mode 100644 index 238132f..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_ident.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_IDENT_H -#define MBFL_IDENT_H - -#include "mbfl_defs.h" -#include "mbfl_encoding.h" - -/* - * identify filter - */ -typedef struct _mbfl_identify_filter mbfl_identify_filter; - -struct _mbfl_identify_filter { - void (*filter_ctor)(mbfl_identify_filter *filter); - void (*filter_dtor)(mbfl_identify_filter *filter); - int (*filter_function)(int c, mbfl_identify_filter *filter); - int status; - int flag; - int score; - const mbfl_encoding *encoding; -}; - -struct mbfl_identify_vtbl { - enum mbfl_no_encoding encoding; - void (*filter_ctor)(mbfl_identify_filter *filter); - void (*filter_dtor)(mbfl_identify_filter *filter); - int (*filter_function)(int c, mbfl_identify_filter *filter); -}; - -MBFLAPI extern const struct mbfl_identify_vtbl * mbfl_identify_filter_get_vtbl(enum mbfl_no_encoding encoding); -MBFLAPI extern mbfl_identify_filter * mbfl_identify_filter_new(enum mbfl_no_encoding encoding); -MBFLAPI extern mbfl_identify_filter * mbfl_identify_filter_new2(const mbfl_encoding *encoding); -MBFLAPI extern void mbfl_identify_filter_delete(mbfl_identify_filter *filter); -MBFLAPI extern int mbfl_identify_filter_init(mbfl_identify_filter *filter, enum mbfl_no_encoding encoding); -MBFLAPI extern int mbfl_identify_filter_init2(mbfl_identify_filter *filter, const mbfl_encoding *encoding); -MBFLAPI void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter); - -MBFLAPI extern void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter); -MBFLAPI extern void mbfl_filt_ident_common_dtor(mbfl_identify_filter *filter); -MBFLAPI extern void mbfl_filt_ident_false_ctor(mbfl_identify_filter *filter); - -MBFLAPI extern int mbfl_filt_ident_false(int c, mbfl_identify_filter *filter); -MBFLAPI extern int mbfl_filt_ident_true(int c, mbfl_identify_filter *filter); - -#endif /* MBFL_IDENT_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_language.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_language.h deleted file mode 100644 index a0a7389..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_language.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_LANGUAGE_H -#define MBFL_LANGUAGE_H - -#include "mbfl_defs.h" -#include "mbfl_encoding.h" - -enum mbfl_no_language { - mbfl_no_language_invalid = -1, - mbfl_no_language_neutral, - mbfl_no_language_uni, - mbfl_no_language_min, - mbfl_no_language_catalan, /* ca */ - mbfl_no_language_danish, /* da */ - mbfl_no_language_german, /* de */ - mbfl_no_language_english, /* en */ - mbfl_no_language_estonian, /* et */ - mbfl_no_language_greek, /* el */ - mbfl_no_language_spanish, /* es */ - mbfl_no_language_french, /* fr */ - mbfl_no_language_italian, /* it */ - mbfl_no_language_japanese, /* ja */ - mbfl_no_language_korean, /* ko */ - mbfl_no_language_dutch, /* nl */ - mbfl_no_language_polish, /* pl */ - mbfl_no_language_portuguese, /* pt */ - mbfl_no_language_swedish, /* sv */ - mbfl_no_language_simplified_chinese, /* zh-cn */ - mbfl_no_language_traditional_chinese, /* zh-tw */ - mbfl_no_language_russian, /* ru */ - mbfl_no_language_ukrainian, /* ua */ - mbfl_no_language_armenian, /* hy */ - mbfl_no_language_turkish, /* tr */ - mbfl_no_language_max -}; - -typedef enum mbfl_no_language mbfl_language_id; - -/* - * language - */ -typedef struct _mbfl_language { - enum mbfl_no_language no_language; - const char *name; - const char *short_name; - const char *(*aliases)[]; - enum mbfl_no_encoding mail_charset; - enum mbfl_no_encoding mail_header_encoding; - enum mbfl_no_encoding mail_body_encoding; -} mbfl_language; - -MBFLAPI extern const mbfl_language * mbfl_name2language(const char *name); -MBFLAPI extern const mbfl_language * mbfl_no2language(enum mbfl_no_language no_language); -MBFLAPI extern enum mbfl_no_language mbfl_name2no_language(const char *name); -MBFLAPI extern const char * mbfl_no_language2name(enum mbfl_no_language no_language); - - -#endif /* MBFL_LANGUAGE_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h deleted file mode 100644 index d85a10f..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_MEMORY_DEVICE_H -#define MBFL_MEMORY_DEVICE_H - -#include "mbfl_defs.h" -#include "mbfl_string.h" - -#define MBFL_MEMORY_DEVICE_ALLOC_SIZE 64 - -typedef struct _mbfl_memory_device { - unsigned char *buffer; - size_t length; - size_t pos; - size_t allocsz; -} mbfl_memory_device; - -typedef struct _mbfl_wchar_device { - unsigned int *buffer; - size_t length; - size_t pos; - size_t allocsz; -} mbfl_wchar_device; - -MBFLAPI extern void mbfl_memory_device_init( - mbfl_memory_device *device, size_t initsz, size_t allocsz); -MBFLAPI extern void mbfl_memory_device_realloc( - mbfl_memory_device *device, size_t initsz, size_t allocsz); -MBFLAPI extern void mbfl_memory_device_clear(mbfl_memory_device *device); -MBFLAPI extern void mbfl_memory_device_reset(mbfl_memory_device *device); -MBFLAPI extern mbfl_string * mbfl_memory_device_result( - mbfl_memory_device *device, mbfl_string *result); -MBFLAPI extern void mbfl_memory_device_unput(mbfl_memory_device *device); -MBFLAPI extern int mbfl_memory_device_output(int c, void *data); -MBFLAPI extern int mbfl_memory_device_output2(int c, void *data); -MBFLAPI extern int mbfl_memory_device_output4(int c, void *data); -MBFLAPI extern int mbfl_memory_device_strcat(mbfl_memory_device *device, const char *psrc); -MBFLAPI extern int mbfl_memory_device_strncat( - mbfl_memory_device *device, const char *psrc, size_t len); -MBFLAPI extern int mbfl_memory_device_devcat(mbfl_memory_device *dest, mbfl_memory_device *src); - -MBFLAPI extern void mbfl_wchar_device_init(mbfl_wchar_device *device); -MBFLAPI extern int mbfl_wchar_device_output(int c, void *data); -MBFLAPI extern void mbfl_wchar_device_clear(mbfl_wchar_device *device); - - - -#endif /* MBFL_MEMORY_DEVICE_H */ diff --git a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_string.h b/include/php/ext/mbstring/libmbfl/mbfl/mbfl_string.h deleted file mode 100644 index 43f4a5f..0000000 --- a/include/php/ext/mbstring/libmbfl/mbfl/mbfl_string.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * "streamable kanji code filter and converter" - * Copyright (c) 1998-2002 HappySize, Inc. All rights reserved. - * - * LICENSE NOTICES - * - * This file is part of "streamable kanji code filter and converter", - * which is distributed under the terms of GNU Lesser General Public - * License (version 2) as published by the Free Software Foundation. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with "streamable kanji code filter and converter"; - * if not, write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * - * The author of this file: - * - */ -/* - * The source code included in this files was separated from mbfilter.h - * by Moriyoshi Koizumi on 20 Dec 2002. The file - * mbfilter.h is included in this package . - * - */ - -#ifndef MBFL_STRING_H -#define MBFL_STRING_H - -#include -#include "mbfl_defs.h" -#include "mbfl_encoding.h" -#include "mbfl_language.h" - -/* - * string object - */ -typedef struct _mbfl_string { - enum mbfl_no_language no_language; - const mbfl_encoding *encoding; - unsigned char *val; - size_t len; -} mbfl_string; - -MBFLAPI extern void mbfl_string_init(mbfl_string *string); -MBFLAPI extern void mbfl_string_init_set(mbfl_string *string, mbfl_language_id no_language, const mbfl_encoding *encoding); -MBFLAPI extern void mbfl_string_clear(mbfl_string *string); - -#ifndef NULL -#define NULL 0 -#endif - -#endif /* MBFL_STRING_H */ diff --git a/include/php/ext/mbstring/mbstring.h b/include/php/ext/mbstring/mbstring.h deleted file mode 100644 index eb2d0bc..0000000 --- a/include/php/ext/mbstring/mbstring.h +++ /dev/null @@ -1,203 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Tsukada Takuya | - | Hironori Sato | - | Shigeru Kanemoto | - +----------------------------------------------------------------------+ - */ - -#ifndef _MBSTRING_H -#define _MBSTRING_H - -#ifdef COMPILE_DL_MBSTRING -#undef HAVE_MBSTRING -#define HAVE_MBSTRING 1 -#endif - -#include "php_version.h" -#define PHP_MBSTRING_VERSION PHP_VERSION - -#ifdef PHP_WIN32 -# undef MBSTRING_API -# ifdef MBSTRING_EXPORTS -# define MBSTRING_API __declspec(dllexport) -# elif defined(COMPILE_DL_MBSTRING) -# define MBSTRING_API __declspec(dllimport) -# else -# define MBSTRING_API /* nothing special */ -# endif -#elif defined(__GNUC__) && __GNUC__ >= 4 -# undef MBSTRING_API -# define MBSTRING_API __attribute__ ((visibility("default"))) -#else -# undef MBSTRING_API -# define MBSTRING_API /* nothing special */ -#endif - - -#if HAVE_MBSTRING - -#include "libmbfl/mbfl/mbfilter.h" -#include "SAPI.h" - -#define PHP_MBSTRING_API 20021024 - -extern zend_module_entry mbstring_module_entry; -#define mbstring_module_ptr &mbstring_module_entry - -PHP_MINIT_FUNCTION(mbstring); -PHP_MSHUTDOWN_FUNCTION(mbstring); -PHP_RINIT_FUNCTION(mbstring); -PHP_RSHUTDOWN_FUNCTION(mbstring); -PHP_MINFO_FUNCTION(mbstring); - -/* functions in php_unicode.c */ -PHP_FUNCTION(mb_convert_case); -PHP_FUNCTION(mb_strtoupper); -PHP_FUNCTION(mb_strtolower); - -/* php function registration */ -PHP_FUNCTION(mb_language); -PHP_FUNCTION(mb_internal_encoding); -PHP_FUNCTION(mb_http_input); -PHP_FUNCTION(mb_http_output); -PHP_FUNCTION(mb_detect_order); -PHP_FUNCTION(mb_substitute_character); -PHP_FUNCTION(mb_preferred_mime_name); -PHP_FUNCTION(mb_parse_str); -PHP_FUNCTION(mb_output_handler); -PHP_FUNCTION(mb_str_split); -PHP_FUNCTION(mb_strlen); -PHP_FUNCTION(mb_strpos); -PHP_FUNCTION(mb_strrpos); -PHP_FUNCTION(mb_stripos); -PHP_FUNCTION(mb_strripos); -PHP_FUNCTION(mb_strstr); -PHP_FUNCTION(mb_strrchr); -PHP_FUNCTION(mb_stristr); -PHP_FUNCTION(mb_strrichr); -PHP_FUNCTION(mb_substr_count); -PHP_FUNCTION(mb_substr); -PHP_FUNCTION(mb_strcut); -PHP_FUNCTION(mb_strwidth); -PHP_FUNCTION(mb_strimwidth); -PHP_FUNCTION(mb_convert_encoding); -PHP_FUNCTION(mb_detect_encoding); -PHP_FUNCTION(mb_list_encodings); -PHP_FUNCTION(mb_encoding_aliases); -PHP_FUNCTION(mb_convert_kana); -PHP_FUNCTION(mb_encode_mimeheader); -PHP_FUNCTION(mb_decode_mimeheader); -PHP_FUNCTION(mb_convert_variables); -PHP_FUNCTION(mb_encode_numericentity); -PHP_FUNCTION(mb_decode_numericentity); -PHP_FUNCTION(mb_send_mail); -PHP_FUNCTION(mb_get_info); -PHP_FUNCTION(mb_check_encoding); -PHP_FUNCTION(mb_ord); -PHP_FUNCTION(mb_chr); -PHP_FUNCTION(mb_scrub); - - -MBSTRING_API char *php_mb_safe_strrchr_ex(const char *s, unsigned int c, - size_t nbytes, const mbfl_encoding *enc); -MBSTRING_API char *php_mb_safe_strrchr(const char *s, unsigned int c, - size_t nbytes); - -MBSTRING_API char *php_mb_convert_encoding_ex( - const char *input, size_t length, - const mbfl_encoding *to_encoding, const mbfl_encoding *from_encoding, size_t *output_len); -MBSTRING_API char * php_mb_convert_encoding(const char *input, size_t length, - const char *_to_encoding, - const char *_from_encodings, - size_t *output_len); - -MBSTRING_API size_t php_mb_mbchar_bytes_ex(const char *s, const mbfl_encoding *enc); -MBSTRING_API size_t php_mb_mbchar_bytes(const char *s); - -MBSTRING_API size_t php_mb_stripos(int mode, const char *old_haystack, size_t old_haystack_len, const char *old_needle, size_t old_needle_len, zend_long offset, zend_string *from_encoding); -MBSTRING_API int php_mb_check_encoding(const char *input, size_t length, const char *enc); - -ZEND_BEGIN_MODULE_GLOBALS(mbstring) - char *internal_encoding_name; - const mbfl_encoding *internal_encoding; - const mbfl_encoding *current_internal_encoding; - const mbfl_encoding *http_output_encoding; - const mbfl_encoding *current_http_output_encoding; - const mbfl_encoding *http_input_identify; - const mbfl_encoding *http_input_identify_get; - const mbfl_encoding *http_input_identify_post; - const mbfl_encoding *http_input_identify_cookie; - const mbfl_encoding *http_input_identify_string; - const mbfl_encoding **http_input_list; - size_t http_input_list_size; - const mbfl_encoding **detect_order_list; - size_t detect_order_list_size; - const mbfl_encoding **current_detect_order_list; - size_t current_detect_order_list_size; - enum mbfl_no_encoding *default_detect_order_list; - size_t default_detect_order_list_size; - int filter_illegal_mode; - int filter_illegal_substchar; - int current_filter_illegal_mode; - int current_filter_illegal_substchar; - zend_long func_overload; - enum mbfl_no_language language; - zend_bool encoding_translation; - zend_bool strict_detection; - size_t illegalchars; - mbfl_buffer_converter *outconv; - void *http_output_conv_mimetypes; -#if HAVE_MBREGEX - struct _zend_mb_regex_globals *mb_regex_globals; - zend_long regex_stack_limit; -#endif - zend_string *last_used_encoding_name; - const mbfl_encoding *last_used_encoding; - /* Whether an explicit internal_encoding / http_output / http_input encoding was set. */ - zend_bool internal_encoding_set; - zend_bool http_output_set; - zend_bool http_input_set; -#if HAVE_MBREGEX - zend_long regex_retry_limit; -#endif -ZEND_END_MODULE_GLOBALS(mbstring) - -#define MB_OVERLOAD_MAIL 1 -#define MB_OVERLOAD_STRING 2 -#define MB_OVERLOAD_REGEX 4 - -struct mb_overload_def { - int type; - char *orig_func; - char *ovld_func; - char *save_func; -}; - -#define MBSTRG(v) ZEND_MODULE_GLOBALS_ACCESSOR(mbstring, v) - -#if defined(ZTS) && defined(COMPILE_DL_MBSTRING) -ZEND_TSRMLS_CACHE_EXTERN() -#endif - -#else /* HAVE_MBSTRING */ - -#define mbstring_module_ptr NULL - -#endif /* HAVE_MBSTRING */ - -#define phpext_mbstring_ptr mbstring_module_ptr - -#endif /* _MBSTRING_H */ diff --git a/include/php/ext/mbstring/php_mbregex.h b/include/php/ext/mbstring/php_mbregex.h deleted file mode 100644 index 497458e..0000000 --- a/include/php/ext/mbstring/php_mbregex.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Moriyoshi Koizumi | - +----------------------------------------------------------------------+ - */ - -#ifndef _PHP_MBREGEX_H -#define _PHP_MBREGEX_H - -#if HAVE_MBREGEX - -#include "php.h" -#include "zend.h" - -/* {{{ PHP_MBREGEX_FUNCTION_ENTRIES */ -#define PHP_MBREGEX_FUNCTION_ENTRIES \ - PHP_FE(mb_regex_encoding, arginfo_mb_regex_encoding) \ - PHP_FE(mb_regex_set_options, arginfo_mb_regex_set_options) \ - PHP_FE(mb_ereg, arginfo_mb_ereg) \ - PHP_FE(mb_eregi, arginfo_mb_eregi) \ - PHP_FE(mb_ereg_replace, arginfo_mb_ereg_replace) \ - PHP_FE(mb_eregi_replace, arginfo_mb_eregi_replace) \ - PHP_FE(mb_ereg_replace_callback, arginfo_mb_ereg_replace_callback) \ - PHP_FE(mb_split, arginfo_mb_split) \ - PHP_FE(mb_ereg_match, arginfo_mb_ereg_match) \ - PHP_FE(mb_ereg_search, arginfo_mb_ereg_search) \ - PHP_FE(mb_ereg_search_pos, arginfo_mb_ereg_search_pos) \ - PHP_FE(mb_ereg_search_regs, arginfo_mb_ereg_search_regs) \ - PHP_FE(mb_ereg_search_init, arginfo_mb_ereg_search_init) \ - PHP_FE(mb_ereg_search_getregs, arginfo_mb_ereg_search_getregs) \ - PHP_FE(mb_ereg_search_getpos, arginfo_mb_ereg_search_getpos) \ - PHP_FE(mb_ereg_search_setpos, arginfo_mb_ereg_search_setpos) \ - PHP_DEP_FALIAS(mbregex_encoding, mb_regex_encoding, arginfo_mb_regex_encoding) \ - PHP_DEP_FALIAS(mbereg, mb_ereg, arginfo_mb_ereg) \ - PHP_DEP_FALIAS(mberegi, mb_eregi, arginfo_mb_eregi) \ - PHP_DEP_FALIAS(mbereg_replace, mb_ereg_replace, arginfo_mb_ereg_replace) \ - PHP_DEP_FALIAS(mberegi_replace, mb_eregi_replace, arginfo_mb_eregi_replace) \ - PHP_DEP_FALIAS(mbsplit, mb_split, arginfo_mb_split) \ - PHP_DEP_FALIAS(mbereg_match, mb_ereg_match, arginfo_mb_ereg_match) \ - PHP_DEP_FALIAS(mbereg_search, mb_ereg_search, arginfo_mb_ereg_search) \ - PHP_DEP_FALIAS(mbereg_search_pos, mb_ereg_search_pos, arginfo_mb_ereg_search_pos) \ - PHP_DEP_FALIAS(mbereg_search_regs, mb_ereg_search_regs, arginfo_mb_ereg_search_regs) \ - PHP_DEP_FALIAS(mbereg_search_init, mb_ereg_search_init, arginfo_mb_ereg_search_init) \ - PHP_DEP_FALIAS(mbereg_search_getregs, mb_ereg_search_getregs, arginfo_mb_ereg_search_getregs) \ - PHP_DEP_FALIAS(mbereg_search_getpos, mb_ereg_search_getpos, arginfo_mb_ereg_search_getpos) \ - PHP_DEP_FALIAS(mbereg_search_setpos, mb_ereg_search_setpos, arginfo_mb_ereg_search_setpos) -/* }}} */ - -#define PHP_MBREGEX_MAXCACHE 50 - -PHP_MINIT_FUNCTION(mb_regex); -PHP_MSHUTDOWN_FUNCTION(mb_regex); -PHP_RINIT_FUNCTION(mb_regex); -PHP_RSHUTDOWN_FUNCTION(mb_regex); -PHP_MINFO_FUNCTION(mb_regex); - -typedef struct _zend_mb_regex_globals zend_mb_regex_globals; - -zend_mb_regex_globals *php_mb_regex_globals_alloc(void); -void php_mb_regex_globals_free(zend_mb_regex_globals *pglobals); -int php_mb_regex_set_mbctype(const char *enc); -int php_mb_regex_set_default_mbctype(const char *encname); -const char *php_mb_regex_get_mbctype(void); -const char *php_mb_regex_get_default_mbctype(void); - -PHP_FUNCTION(mb_regex_encoding); -PHP_FUNCTION(mb_ereg); -PHP_FUNCTION(mb_eregi); -PHP_FUNCTION(mb_ereg_replace); -PHP_FUNCTION(mb_eregi_replace); -PHP_FUNCTION(mb_ereg_replace_callback); -PHP_FUNCTION(mb_split); -PHP_FUNCTION(mb_ereg_match); -PHP_FUNCTION(mb_ereg_search); -PHP_FUNCTION(mb_ereg_search_pos); -PHP_FUNCTION(mb_ereg_search_regs); -PHP_FUNCTION(mb_ereg_search_init); -PHP_FUNCTION(mb_ereg_search_getregs); -PHP_FUNCTION(mb_ereg_search_getpos); -PHP_FUNCTION(mb_ereg_search_setpos); -PHP_FUNCTION(mb_regex_set_options); - -#endif /* HAVE_MBREGEX */ - -#endif /* _PHP_MBREGEX_H */ diff --git a/include/php/ext/mbstring/php_onig_compat.h b/include/php/ext/mbstring/php_onig_compat.h deleted file mode 100644 index c97ba0c..0000000 --- a/include/php/ext/mbstring/php_onig_compat.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _PHP_ONIG_COMPAT_H -#define _PHP_ONIG_COMPAT_H - -#define re_pattern_buffer php_mb_re_pattern_buffer -#define regex_t php_mb_regex_t -#define re_registers php_mb_re_registers - -#endif /* _PHP_ONIG_COMPAT_H */ diff --git a/include/php/ext/msgpack/php_msgpack.h b/include/php/ext/msgpack/php_msgpack.h deleted file mode 100644 index 01f979b..0000000 --- a/include/php/ext/msgpack/php_msgpack.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef PHP_MSGPACK_H -#define PHP_MSGPACK_H - -#include "Zend/zend_smart_str.h" /* for smart_string */ - -#define PHP_MSGPACK_VERSION "2.2.0" - -extern zend_module_entry msgpack_module_entry; -#define phpext_msgpack_ptr &msgpack_module_entry - -#ifdef PHP_WIN32 -# define PHP_MSGPACK_API __declspec(dllexport) -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define PHP_MSGPACK_API __attribute__ ((visibility("default"))) -#else -# define PHP_MSGPACK_API -#endif - -#ifdef ZTS -#include "TSRM.h" -#endif - -ZEND_BEGIN_MODULE_GLOBALS(msgpack) - zend_bool error_display; - zend_bool php_only; - zend_bool illegal_key_insert; - zend_bool use_str8_serialization; - struct { - void *var_hash; - unsigned level; - } serialize; -ZEND_END_MODULE_GLOBALS(msgpack) - -ZEND_EXTERN_MODULE_GLOBALS(msgpack) - -#ifdef ZTS -#define MSGPACK_G(v) TSRMG(msgpack_globals_id, zend_msgpack_globals *, v) -#else -#define MSGPACK_G(v) (msgpack_globals.v) -#endif - -PHP_MSGPACK_API void php_msgpack_serialize( - smart_str *buf, zval *val); -PHP_MSGPACK_API int php_msgpack_unserialize( - zval *return_value, char *str, size_t str_len); - -#ifdef WORDS_BIGENDIAN -# define MSGPACK_ENDIAN_BIG_BYTE 1 -# define MSGPACK_ENDIAN_LITTLE_BYTE 0 -#else -# define MSGPACK_ENDIAN_LITTLE_BYTE 1 -# define MSGPACK_ENDIAN_BIG_BYTE 0 -#endif - -#if PHP_VERSION_ID < 80000 -# define OBJ_FOR_PROP(zv) (zv) -#else -# define OBJ_FOR_PROP(zv) Z_OBJ_P(zv) -#endif - -#if PHP_VERSION_ID >= 80000 -# define IS_MAGIC_SERIALIZABLE(ce) (ce && ce->__serialize) -# define CALL_MAGIC_SERIALIZE(cep, zop, rvp) zend_call_known_instance_method_with_0_params((cep)->__serialize, zop, rvp) -# define CALL_MAGIC_UNSERIALIZE(cep, zop, rvp, zsdap) zend_call_known_instance_method_with_1_params((cep)->__unserialize, zop, rvp, zsdap) -#elif PHP_VERSION_ID >= 70400 -# define IS_MAGIC_SERIALIZABLE(ce) (ce && zend_hash_str_exists(&ce->function_table, ZEND_STRL("__serialize"))) -# define CALL_MAGIC_SERIALIZE(cep, zop, rvp) call_magic_serialize_fn(cep, zop, rvp, ZEND_STRL("__serialize"), 0, NULL) -# define CALL_MAGIC_UNSERIALIZE(cep, zop, rvp, zsdap) call_magic_serialize_fn(cep, zop, rvp, ZEND_STRL("__unserialize"), 1, zsdap) -static inline void call_magic_serialize_fn(zend_class_entry *ce, zend_object *object, zval *retval_ptr, const char *fn_str, size_t fn_len, int param_count, zval *params) { - zval retval; - zend_fcall_info fci; - zend_fcall_info_cache fcic; - - fci.size = sizeof(fci); - fci.object = object; - fci.retval = retval_ptr ? retval_ptr : &retval; - fci.param_count = param_count; - fci.params = params; - ZVAL_UNDEF(&fci.function_name); /* Unused */ - - fcic.function_handler = zend_hash_str_find_ptr(&ce->function_table, fn_str, fn_len); - fcic.object = object; - fcic.called_scope = ce; - - int result = zend_call_function(&fci, &fcic); - if (UNEXPECTED(result == FAILURE)) { - if (!EG(exception)) { - zend_error_noreturn(E_CORE_ERROR, "Couldn't execute method %s%s%s", - fcic.function_handler->common.scope ? ZSTR_VAL(fcic.function_handler->common.scope->name) : "", - fcic.function_handler->common.scope ? "::" : "", ZSTR_VAL(fcic.function_handler->common.function_name)); - } - } - - if (!retval_ptr) { - zval_ptr_dtor(&retval); - } -} -#endif - -#endif /* PHP_MSGPACK_H */ diff --git a/include/php/ext/mysqli/mysqli_mysqlnd.h b/include/php/ext/mysqli/mysqli_mysqlnd.h deleted file mode 100644 index 4c6872c..0000000 --- a/include/php/ext/mysqli/mysqli_mysqlnd.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Georg Richter | - | Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ - -*/ - -#ifndef MYSQLI_MYSQLND_H -#define MYSQLI_MYSQLND_H - -#include "ext/mysqlnd/mysqlnd_libmysql_compat.h" -#include "ext/mysqlnd/mysqlnd_portability.h" - -/* Here comes non-libmysql API to have less ifdefs in mysqli*/ -#define MYSQLI_CLOSE_EXPLICIT MYSQLND_CLOSE_EXPLICIT -#define MYSQLI_CLOSE_IMPLICIT MYSQLND_CLOSE_IMPLICIT -#define MYSQLI_CLOSE_DISCONNECTED MYSQLND_CLOSE_DISCONNECTED - -#define mysqli_result_is_unbuffered(r) ((r)->unbuf) -#define mysqli_result_is_unbuffered_and_not_everything_is_fetched(r) ((r)->unbuf && !(r)->unbuf->eof_reached) -#define mysqli_server_status(c) mysqlnd_get_server_status((c)) -#define mysqli_stmt_get_id(s) ((s)->data->stmt_id) -#define mysqli_stmt_warning_count(s) mysqlnd_stmt_warning_count((s)) -#define mysqli_stmt_server_status(s) mysqlnd_stmt_server_status((s)) -#define mysqli_stmt_get_connection(s) (s)->data->conn -#define mysqli_close(c, how) mysqlnd_close((c), (how)) -#define mysqli_stmt_close(c, implicit) mysqlnd_stmt_close((c), (implicit)) -#define mysqli_free_result(r, implicit) mysqlnd_free_result((r), (implicit)) -#define mysqli_async_query(c, q, l) mysqlnd_async_query((c), (q), (l)) -#define mysqli_change_user_silent(c, u, p, d, p_len) mysqlnd_change_user_ex((c), (u), (p), (d), TRUE, (size_t)(p_len)) - -#define HAVE_STMT_NEXT_RESULT - -#endif diff --git a/include/php/ext/mysqli/php_mysqli_structs.h b/include/php/ext/mysqli/php_mysqli_structs.h deleted file mode 100644 index 8afef87..0000000 --- a/include/php/ext/mysqli/php_mysqli_structs.h +++ /dev/null @@ -1,333 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Georg Richter | - | Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_MYSQLI_STRUCTS_H -#define PHP_MYSQLI_STRUCTS_H - -/* A little hack to prevent build break, when mysql is used together with - * c-client, which also defines LIST. - */ -#ifdef LIST -#undef LIST -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifdef MYSQLI_USE_MYSQLND -#include "ext/mysqlnd/mysqlnd.h" -#include "mysqli_mysqlnd.h" -#else - -/* - The libmysql headers (a PITA) also define it and there will be an warning. - Undef it and later we might need to define it again. -*/ -#ifdef HAVE_MBRLEN -#undef HAVE_MBRLEN -#define WE_HAD_MBRLEN -#endif -#ifdef HAVE_MBSTATE_T -#undef HAVE_MBSTATE_T -#define WE_HAD_MBSTATE_T -#endif - -#if !defined(HAVE_MBRLEN) && defined(WE_HAD_MBRLEN) -#define HAVE_MBRLEN 1 -#endif - -#if !defined(HAVE_MBSTATE_T) && defined(WE_HAD_MBSTATE_T) -#define HAVE_MBSTATE_T 1 -#endif - -#include -#if MYSQL_VERSION_ID >= 80000 && MYSQL_VERSION_ID < 100000 -typedef _Bool my_bool; -#endif -#include -#include -#include "mysqli_libmysql.h" -#endif /* MYSQLI_USE_MYSQLND */ - - -#define MYSQLI_VERSION_ID 101009 - -enum mysqli_status { - MYSQLI_STATUS_UNKNOWN=0, - MYSQLI_STATUS_CLEARED, - MYSQLI_STATUS_INITIALIZED, - MYSQLI_STATUS_VALID -}; - -typedef struct { - char *val; - zend_ulong buflen; - zend_ulong output_len; - zend_ulong type; -} VAR_BUFFER; - -typedef struct { - unsigned int var_cnt; - VAR_BUFFER *buf; - zval *vars; - char *is_null; -} BIND_BUFFER; - -typedef struct { - MYSQL_STMT *stmt; - BIND_BUFFER param; - BIND_BUFFER result; - char *query; -#ifndef MYSQLI_USE_MYSQLND - /* used to manage refcount with libmysql (already implement in mysqlnd) */ - zval link_handle; -#endif -} MY_STMT; - -typedef struct { - MYSQL *mysql; - zend_string *hash_key; - zval li_read; - php_stream *li_stream; - unsigned int multi_query; - zend_bool persistent; -#if defined(MYSQLI_USE_MYSQLND) - int async_result_fetch_type; -#endif -} MY_MYSQL; - -typedef struct { - void *ptr; /* resource: (mysql, result, stmt) */ - void *info; /* additional buffer */ - enum mysqli_status status; /* object status */ -} MYSQLI_RESOURCE; - -typedef struct _mysqli_object { - void *ptr; - HashTable *prop_handler; - zend_object zo; -} mysqli_object; /* extends zend_object */ - -static inline mysqli_object *php_mysqli_fetch_object(zend_object *obj) { - return (mysqli_object *)((char*)(obj) - XtOffsetOf(mysqli_object, zo)); -} - -#define Z_MYSQLI_P(zv) php_mysqli_fetch_object(Z_OBJ_P((zv))) - -typedef struct st_mysqli_warning MYSQLI_WARNING; - -struct st_mysqli_warning { - zval reason; - zval sqlstate; - int errorno; - MYSQLI_WARNING *next; -}; - -typedef struct _mysqli_property_entry { - const char *pname; - size_t pname_length; - int (*r_func)(mysqli_object *obj, zval *retval, zend_bool quiet); - int (*w_func)(mysqli_object *obj, zval *value); -} mysqli_property_entry; - -typedef struct { - zend_ptr_stack free_links; -} mysqli_plist_entry; - -#ifdef PHP_WIN32 -#define PHP_MYSQLI_API __declspec(dllexport) -#define MYSQLI_LLU_SPEC "%I64u" -#define MYSQLI_LL_SPEC "%I64d" -#ifndef L64 -#define L64(x) x##i64 -#endif -typedef __int64 my_longlong; -#else -# if defined(__GNUC__) && __GNUC__ >= 4 -# define PHP_MYSQLI_API __attribute__ ((visibility("default"))) -# else -# define PHP_MYSQLI_API -# endif -/* we need this for PRIu64 and PRId64 */ -#include -#define MYSQLI_LLU_SPEC "%" PRIu64 -#define MYSQLI_LL_SPEC "%" PRId64 -#ifndef L64 -#define L64(x) x##LL -#endif -typedef int64_t my_longlong; -#endif - -#ifdef ZTS -#include "TSRM.h" -#endif - -extern zend_class_entry *mysqli_link_class_entry; -extern zend_class_entry *mysqli_stmt_class_entry; -extern zend_class_entry *mysqli_result_class_entry; -extern zend_class_entry *mysqli_driver_class_entry; -extern zend_class_entry *mysqli_warning_class_entry; -extern zend_class_entry *mysqli_exception_class_entry; -extern int php_le_pmysqli(void); -extern void php_mysqli_dtor_p_elements(void *data); - -extern void php_mysqli_close(MY_MYSQL * mysql, int close_type, int resource_status); - -extern const zend_object_iterator_funcs php_mysqli_result_iterator_funcs; -extern zend_object_iterator *php_mysqli_result_get_iterator(zend_class_entry *ce, zval *object, int by_ref); - -extern void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * result, zend_long fetchtype); - -#define MYSQLI_DISABLE_MQ if (mysql->multi_query) { \ - mysql_set_server_option(mysql->mysql, MYSQL_OPTION_MULTI_STATEMENTS_OFF); \ - mysql->multi_query = 0; \ -} - -#define MYSQLI_ENABLE_MQ if (!mysql->multi_query) { \ - mysql_set_server_option(mysql->mysql, MYSQL_OPTION_MULTI_STATEMENTS_ON); \ - mysql->multi_query = 1; \ -} - -#define REGISTER_MYSQLI_CLASS_ENTRY(name, mysqli_entry, class_functions) { \ - zend_class_entry ce; \ - INIT_CLASS_ENTRY(ce, name,class_functions); \ - ce.create_object = mysqli_objects_new; \ - mysqli_entry = zend_register_internal_class(&ce); \ -} \ - -#define MYSQLI_REGISTER_RESOURCE_EX(__ptr, __zval) \ - (Z_MYSQLI_P(__zval))->ptr = __ptr; - -#define MYSQLI_RETURN_RESOURCE(__ptr, __ce) \ - RETVAL_OBJ(mysqli_objects_new(__ce)); \ - MYSQLI_REGISTER_RESOURCE_EX(__ptr, return_value) - -#define MYSQLI_REGISTER_RESOURCE(__ptr, __ce) \ -{\ - zval *object = getThis(); \ - if (!object || !instanceof_function(Z_OBJCE_P(object), mysqli_link_class_entry)) { \ - object = return_value; \ - ZVAL_OBJ(object, mysqli_objects_new(__ce)); \ - } \ - MYSQLI_REGISTER_RESOURCE_EX(__ptr, object)\ -} - -#define MYSQLI_FETCH_RESOURCE(__ptr, __type, __id, __name, __check) \ -{ \ - MYSQLI_RESOURCE *my_res; \ - mysqli_object *intern = Z_MYSQLI_P(__id); \ - if (!(my_res = (MYSQLI_RESOURCE *)intern->ptr)) {\ - php_error_docref(NULL, E_WARNING, "Couldn't fetch %s", ZSTR_VAL(intern->zo.ce->name));\ - RETURN_FALSE;\ - }\ - __ptr = (__type)my_res->ptr; \ - if (__check && my_res->status < __check) { \ - php_error_docref(NULL, E_WARNING, "invalid object or resource %s\n", ZSTR_VAL(intern->zo.ce->name)); \ - RETURN_FALSE;\ - }\ -} - -#define MYSQLI_FETCH_RESOURCE_BY_OBJ(__ptr, __type, __obj, __name, __check) \ -{ \ - MYSQLI_RESOURCE *my_res; \ - if (!(my_res = (MYSQLI_RESOURCE *)(__obj->ptr))) {\ - php_error_docref(NULL, E_WARNING, "Couldn't fetch %s", ZSTR_VAL(intern->zo.ce->name));\ - return;\ - }\ - __ptr = (__type)my_res->ptr; \ - if (__check && my_res->status < __check) { \ - php_error_docref(NULL, E_WARNING, "invalid object or resource %s\n", ZSTR_VAL(intern->zo.ce->name)); \ - return;\ - }\ -} - -#define MYSQLI_FETCH_RESOURCE_CONN(__ptr, __id, __check) \ -{ \ - MYSQLI_FETCH_RESOURCE((__ptr), MY_MYSQL *, (__id), "mysqli_link", (__check)); \ - if (!(__ptr)->mysql) { \ - mysqli_object *intern = Z_MYSQLI_P(__id); \ - php_error_docref(NULL, E_WARNING, "invalid object or resource %s\n", ZSTR_VAL(intern->zo.ce->name)); \ - RETURN_NULL(); \ - } \ -} - -#define MYSQLI_FETCH_RESOURCE_STMT(__ptr, __id, __check) \ -{ \ - MYSQLI_FETCH_RESOURCE((__ptr), MY_STMT *, (__id), "mysqli_stmt", (__check)); \ - if (!(__ptr)->stmt) { \ - mysqli_object *intern = Z_MYSQLI_P(__id); \ - php_error_docref(NULL, E_WARNING, "invalid object or resource %s\n", ZSTR_VAL(intern->zo.ce->name)); \ - RETURN_NULL();\ - } \ -} - -#define MYSQLI_SET_STATUS(__id, __value) \ -{ \ - mysqli_object *intern = Z_MYSQLI_P(__id); \ - ((MYSQLI_RESOURCE *)intern->ptr)->status = __value; \ -} \ - -#define MYSQLI_CLEAR_RESOURCE(__id) \ -{ \ - mysqli_object *intern = Z_MYSQLI_P(__id); \ - efree(intern->ptr); \ - intern->ptr = NULL; \ -} - - -ZEND_BEGIN_MODULE_GLOBALS(mysqli) - zend_long default_link; - zend_long num_links; - zend_long max_links; - zend_long num_active_persistent; - zend_long num_inactive_persistent; - zend_long max_persistent; - zend_long allow_persistent; - zend_ulong default_port; - char *default_host; - char *default_user; - char *default_socket; - char *default_pw; - zend_long reconnect; - zend_long allow_local_infile; - zend_long strict; - zend_long error_no; - char *error_msg; - zend_long report_mode; - HashTable *report_ht; - zend_ulong multi_query; - zend_ulong embedded; - zend_bool rollback_on_cached_plink; -ZEND_END_MODULE_GLOBALS(mysqli) - -#define MyG(v) ZEND_MODULE_GLOBALS_ACCESSOR(mysqli, v) - -#if defined(ZTS) && defined(COMPILE_DL_MYSQLI) -ZEND_TSRMLS_CACHE_EXTERN() -#endif - -ZEND_EXTERN_MODULE_GLOBALS(mysqli) - -#endif /* PHP_MYSQLI_STRUCTS.H */ diff --git a/include/php/ext/mysqlnd/config-win.h b/include/php/ext/mysqlnd/config-win.h deleted file mode 100644 index 1047664..0000000 --- a/include/php/ext/mysqlnd/config-win.h +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB -This file is public domain and comes with NO WARRANTY of any kind */ - -/* Defines for Win32 to make it compatible for MySQL */ - -#ifndef _MYSQLND_CONFIG_WIN_H -#define _MYSQLND_CONFIG_WIN_H - -#include -#include -#include /* Because of rint() */ -#include -#include -#include - -#include - -#ifndef HAVE_INT8_T -#define HAVE_INT8_T -#endif -#ifndef HAVE_UINT8_T -#define HAVE_UINT8_T -#endif -#ifndef HAVE_INT16_T -#define HAVE_INT16_T -#endif -#ifndef HAVE_UINT16_T -#define HAVE_UINT16_T -#endif -#ifndef HAVE_INT32_T -#define HAVE_INT32_T -#endif -#ifndef HAVE_UINT32_T -#define HAVE_UINT32_T -#endif -#ifndef HAVE_INT64_T -#define HAVE_INT64_T -#endif -#ifndef HAVE_UINT64_T -#define HAVE_UINT64_T -#endif - - -#ifndef _WIN64 -#ifndef _WIN32 -#define _WIN32 /* Compatible with old source */ -#endif -#ifndef __WIN32__ -#define __WIN32__ -#endif -#endif /* _WIN64 */ -#ifndef __WIN__ -#define __WIN__ /* To make it easier in VC++ */ -#endif - -/* Type information */ - -#define SIZEOF_LONG 4 -#define SIZEOF_LONG_LONG 8 - - -#ifndef _WIN64 -/* Optimized store functions for Intel x86 */ - -#define sint2korr(A) (*((int16_t *) (A))) -#define sint3korr(A) ((int32_t) ((((zend_uchar) (A)[2]) & 128) ? \ - (((uint32_t) 255L << 24) | \ - (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ - (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ - ((uint32_t) (zend_uchar) (A)[0])) : \ - (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ - (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ - ((uint32_t) (zend_uchar) (A)[0]))) -#define sint4korr(A) (*((int32_t *) (A))) -#define uint2korr(A) (*((uint16_t *) (A))) -#define uint3korr(A) (int32_t) (*((uint32_t *) (A)) & 0xFFFFFF) -#define uint4korr(A) (*((uint32_t *) (A))) -#define uint5korr(A) ((uint64_t)(((uint32_t) ((zend_uchar) (A)[0])) +\ - (((uint32_t) ((zend_uchar) (A)[1])) << 8) +\ - (((uint32_t) ((zend_uchar) (A)[2])) << 16) +\ - (((uint32_t) ((zend_uchar) (A)[3])) << 24)) +\ - (((uint64_t) ((zend_uchar) (A)[4])) << 32)) -#define uint8korr(A) (*((uint64_t *) (A))) -#define sint8korr(A) (*((int64_t *) (A))) -#define int2store(T,A) *((uint16_t*) (T))= (uint16_t) (A) -#define int3store(T,A) { *(T)= (zend_uchar) ((A));\ - *(T+1)=(zend_uchar) (((uint32_t) (A) >> 8));\ - *(T+2)=(zend_uchar) (((A) >> 16)); } -#define int4store(T,A) *((int32_t *) (T))= (int32_t) (A) -#define int5store(T,A) { *(T)= (zend_uchar)((A));\ - *((T)+1)=(zend_uchar) (((A) >> 8));\ - *((T)+2)=(zend_uchar) (((A) >> 16));\ - *((T)+3)=(zend_uchar) (((A) >> 24)); \ - *((T)+4)=(zend_uchar) (((A) >> 32)); } -#define int8store(T,A) *((uint64_t *) (T))= (uint64_t) (A) - -#define float8get(V,M) { *((int32_t *) &V) = *((int32_t*) M); \ - *(((int32_t *) &V)+1) = *(((int32_t*) M)+1); } -#define float8store(T,V) { *((int32_t *) T) = *((int32_t*) &V); \ - *(((int32_t *) T)+1) = *(((int32_t*) &V)+1); } -#define float4get(V,M) { *((int32_t *) &(V)) = *((int32_t*) (M)); } - -#endif /* _WIN64 */ - -#endif /* _MYSQLND_CONFIG_WIN_H */ diff --git a/include/php/ext/mysqlnd/mysql_float_to_double.h b/include/php/ext/mysqlnd/mysql_float_to_double.h deleted file mode 100644 index f9048d8..0000000 --- a/include/php/ext/mysqlnd/mysql_float_to_double.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Keyur Govande | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQL_FLOAT_TO_DOUBLE_H -#define MYSQL_FLOAT_TO_DOUBLE_H - -#include "main/php.h" -#include -#include "main/snprintf.h" - -#define MAX_CHAR_BUF_LEN 255 - -#ifndef FLT_DIG -# define FLT_DIG 6 -#endif - -/* - * Convert from a 4-byte float to a 8-byte decimal by first converting - * the float to a string (ignoring localization), and then the string to a double. - * The decimals argument specifies the precision of the output. If decimals - * is less than zero, then a gcvt(3) like logic is used with the significant - * digits set to FLT_DIG i.e. 6. - */ -static inline double mysql_float_to_double(float fp4, int decimals) { - char num_buf[MAX_CHAR_BUF_LEN]; /* Over allocated */ - - if (decimals < 0) { - php_gcvt(fp4, FLT_DIG, '.', 'e', num_buf); - } else { - snprintf(num_buf, MAX_CHAR_BUF_LEN, "%.*F", decimals, fp4); - } - - return zend_strtod(num_buf, NULL); -} - -#endif /* MYSQL_FLOAT_TO_DOUBLE_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd.h b/include/php/ext/mysqlnd/mysqlnd.h deleted file mode 100644 index f5c4cf6..0000000 --- a/include/php/ext/mysqlnd/mysqlnd.h +++ /dev/null @@ -1,340 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - | Georg Richter | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_H -#define MYSQLND_H - -#define PHP_MYSQLND_VERSION "mysqlnd " PHP_VERSION -#define MYSQLND_VERSION_ID PHP_VERSION_ID - -#define MYSQLND_PLUGIN_API_VERSION 2 - -#define MYSQLND_STRING_TO_INT_CONVERSION -/* - This force mysqlnd to do a single (or more depending on amount of data) - non-blocking read() calls before sending a command to the server. Useful - for debugging, if previous function hasn't consumed all the output sent - to it - like stmt_send_long_data() error because the data was larger that - max_allowed_packet_size, and COM_STMT_SEND_LONG_DATA by protocol doesn't - use response packets, thus letting the next command to fail miserably, if - the connector implementor is not aware of this deficiency. Should be off - on production systems, if of course measured performance degradation is not - minimal. -*/ -#if A0 && PHP_DEBUG -#define MYSQLND_DO_WIRE_CHECK_BEFORE_COMMAND 1 -#endif - -#if PHP_DEBUG -#define MYSQLND_DBG_ENABLED 1 -#else -#define MYSQLND_DBG_ENABLED 0 -#endif - -#if defined(MYSQLND_COMPRESSION_WANTED) -#define MYSQLND_COMPRESSION_ENABLED 1 -#endif - -#ifdef ZTS -#include "TSRM.h" -#endif - -#include "mysqlnd_portability.h" -#include "mysqlnd_enum_n_def.h" -#include "mysqlnd_structs.h" - -#define MYSQLND_STR_W_LEN(str) str, (sizeof(str) - 1) - -/* Library related */ -PHPAPI void mysqlnd_library_init(void); -PHPAPI void mysqlnd_library_end(void); - -PHPAPI unsigned int mysqlnd_plugin_register(); -PHPAPI unsigned int mysqlnd_plugin_register_ex(struct st_mysqlnd_plugin_header * plugin); -PHPAPI unsigned int mysqlnd_plugin_count(); -PHPAPI void * mysqlnd_plugin_find(const char * const name); - -PHPAPI void mysqlnd_plugin_apply_with_argument(apply_func_arg_t apply_func, void * argument); - -#define mysqlnd_restart_psession(conn) ((conn)->data)->m->restart_psession((conn)->data) -#define mysqlnd_end_psession(conn) ((conn)->data)->m->end_psession((conn)->data) -PHPAPI void mysqlnd_minfo_print_hash(zval *values); -#define mysqlnd_thread_safe() TRUE - -PHPAPI const MYSQLND_CHARSET * mysqlnd_find_charset_nr(const unsigned int charsetno); -PHPAPI const MYSQLND_CHARSET * mysqlnd_find_charset_name(const char * const charsetname); - - -/* Connect */ -#define mysqlnd_init(flags, persistent) mysqlnd_connection_init((flags), (persistent), NULL /*use default factory*/) -#define mysqlnd_connect(conn, host, user, pass, pass_len, db, db_len, port, socket, mysql_flags, client_api_flags) \ - mysqlnd_connection_connect((conn), (host), (user), (pass), (pass_len), (db), (db_len), (port), (socket), (mysql_flags), (client_api_flags)) - -PHPAPI MYSQLND * mysqlnd_connection_init(const size_t client_flags, const zend_bool persistent, MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *object_factory); -PHPAPI MYSQLND * mysqlnd_connection_connect(MYSQLND * conn, - const char * const host, - const char * const user, - const char * const passwd, unsigned int passwd_len, - const char * const db, unsigned int db_len, - unsigned int port, - const char * const socket_or_pipe, - unsigned int mysql_flags, - unsigned int client_api_flags - ); - -#define mysqlnd_change_user(conn, user, passwd, db, silent) ((conn)->data)->m->change_user((conn)->data, (user), (passwd), (db), (silent), strlen((passwd))) -#define mysqlnd_change_user_ex(conn, user, passwd, db, silent, passwd_len) ((conn)->data)->m->change_user((conn)->data, (user), (passwd), (db), (silent), (passwd_len)) - -PHPAPI void mysqlnd_debug(const char *mode); - -/* Query */ -#define mysqlnd_fetch_into(result, flags, ret_val, ext) (result)->m.fetch_into((result), (flags), (ret_val), (ext) ZEND_FILE_LINE_CC) -#define mysqlnd_fetch_row_c(result) (result)->m.fetch_row_c((result)) -#define mysqlnd_fetch_all(result, flags, return_value) (result)->m.fetch_all((result), (flags), (return_value) ZEND_FILE_LINE_CC) -#define mysqlnd_result_fetch_field_data(res,offset,ret) (res)->m.fetch_field_data((res), (offset), (ret)) -#define mysqlnd_get_connection_stats(conn, values) ((conn)->data)->m->get_statistics((conn)->data, (values) ZEND_FILE_LINE_CC) -#define mysqlnd_get_client_stats(values) _mysqlnd_get_client_stats(mysqlnd_global_stats, (values) ZEND_FILE_LINE_CC) - -#define mysqlnd_close(conn,is_forced) (conn)->m->close((conn), (is_forced)) -#define mysqlnd_query(conn, query_str, query_len) ((conn)->data)->m->query((conn)->data, (query_str), (query_len)) -#define mysqlnd_async_query(conn, query_str, query_len) ((conn)->data)->m->send_query((conn)->data, (query_str), (query_len), MYSQLND_SEND_QUERY_EXPLICIT, NULL, NULL) -#define mysqlnd_reap_async_query(conn) ((conn)->data)->m->reap_query((conn)->data, MYSQLND_REAP_RESULT_EXPLICIT) -#define mysqlnd_unbuffered_skip_result(result) (result)->m.skip_result((result)) - -PHPAPI enum_func_status mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQLND ***dont_poll, long sec, long usec, int * desc_num); - -#define mysqlnd_use_result(conn) ((conn)->data)->m->use_result((conn)->data, 0) -#define mysqlnd_store_result(conn) ((conn)->data)->m->store_result((conn)->data, MYSQLND_STORE_NO_COPY) -#define mysqlnd_store_result_ofs(conn) ((conn)->data)->m->store_result((conn)->data, MYSQLND_STORE_COPY) -#define mysqlnd_next_result(conn) ((conn)->data)->m->next_result((conn)->data) -#define mysqlnd_more_results(conn) ((conn)->data)->m->more_results((conn)->data) -#define mysqlnd_free_result(r,e_or_i) ((MYSQLND_RES*)r)->m.free_result(((MYSQLND_RES*)(r)), (e_or_i)) -#define mysqlnd_data_seek(result, row) (result)->m.seek_data((result), (row)) - -/* Errors */ -#define mysqlnd_errno(conn) ((conn)->data)->m->get_error_no((conn)->data) -#define mysqlnd_error(conn) ((conn)->data)->m->get_error_str((conn)->data) -#define mysqlnd_sqlstate(conn) ((conn)->data)->m->get_sqlstate((conn)->data) - -/* Charset */ -#define mysqlnd_character_set_name(conn) ((conn)->data)->m->charset_name((conn)->data) - -/* Simple metadata */ -#define mysqlnd_field_count(conn) ((conn)->data)->m->get_field_count((conn)->data) -#define mysqlnd_insert_id(conn) ((conn)->data)->m->get_last_insert_id((conn)->data) -#define mysqlnd_affected_rows(conn) ((conn)->data)->m->get_affected_rows((conn)->data) -#define mysqlnd_warning_count(conn) ((conn)->data)->m->get_warning_count((conn)->data) -#define mysqlnd_info(conn) ((conn)->data)->m->get_last_message((conn)->data) -#define mysqlnd_get_server_info(conn) ((conn)->data)->m->get_server_information((conn)->data) -#define mysqlnd_get_server_version(conn) ((conn)->data)->m->get_server_version((conn)->data) -#define mysqlnd_get_host_info(conn) ((conn)->data)->m->get_host_information((conn)->data) -#define mysqlnd_get_proto_info(conn) ((conn)->data)->m->get_protocol_information((conn)->data) -#define mysqlnd_thread_id(conn) ((conn)->data)->m->get_thread_id((conn)->data) -#define mysqlnd_get_server_status(conn) ((conn)->data)->m->get_server_status((conn)->data) - -#define mysqlnd_num_rows(result) (result)->m.num_rows((result)) -#define mysqlnd_num_fields(result) (result)->m.num_fields((result)) - -#define mysqlnd_fetch_lengths(result) (result)->m.fetch_lengths((result)) - -#define mysqlnd_field_seek(result, ofs) (result)->m.seek_field((result), (ofs)) -#define mysqlnd_field_tell(result) (result)->m.field_tell((result)) -#define mysqlnd_fetch_field(result) (result)->m.fetch_field((result)) -#define mysqlnd_fetch_field_direct(result,fnr) (result)->m.fetch_field_direct((result), (fnr)) -#define mysqlnd_fetch_fields(result) (result)->m.fetch_fields((result)) - -/* mysqlnd metadata */ -PHPAPI const char * mysqlnd_get_client_info(); -PHPAPI unsigned long mysqlnd_get_client_version(); - -#define mysqlnd_ssl_set(conn, key, cert, ca, capath, cipher) ((conn)->data)->m->ssl_set((conn)->data, (key), (cert), (ca), (capath), (cipher)) - -/* PS */ -#define mysqlnd_stmt_insert_id(stmt) (stmt)->m->get_last_insert_id((stmt)) -#define mysqlnd_stmt_affected_rows(stmt) (stmt)->m->get_affected_rows((stmt)) -#define mysqlnd_stmt_num_rows(stmt) (stmt)->m->get_num_rows((stmt)) -#define mysqlnd_stmt_param_count(stmt) (stmt)->m->get_param_count((stmt)) -#define mysqlnd_stmt_field_count(stmt) (stmt)->m->get_field_count((stmt)) -#define mysqlnd_stmt_warning_count(stmt) (stmt)->m->get_warning_count((stmt)) -#define mysqlnd_stmt_server_status(stmt) (stmt)->m->get_server_status((stmt)) -#define mysqlnd_stmt_errno(stmt) (stmt)->m->get_error_no((stmt)) -#define mysqlnd_stmt_error(stmt) (stmt)->m->get_error_str((stmt)) -#define mysqlnd_stmt_sqlstate(stmt) (stmt)->m->get_sqlstate((stmt)) - - -PHPAPI void mysqlnd_efree_param_bind_dtor(MYSQLND_PARAM_BIND * param_bind); -PHPAPI void mysqlnd_efree_result_bind_dtor(MYSQLND_RESULT_BIND * result_bind); -PHPAPI void mysqlnd_free_param_bind_dtor(MYSQLND_PARAM_BIND * param_bind); -PHPAPI void mysqlnd_free_result_bind_dtor(MYSQLND_RESULT_BIND * result_bind); - - -PHPAPI const char * mysqlnd_field_type_name(const enum mysqlnd_field_types field_type); - -/* LOAD DATA LOCAL */ -PHPAPI void mysqlnd_local_infile_default(MYSQLND_CONN_DATA * conn); - -/* Simple commands */ -#define mysqlnd_autocommit(conn, mode) ((conn)->data)->m->set_autocommit((conn)->data, (mode)) -#define mysqlnd_begin_transaction(conn,flags,name) ((conn)->data)->m->tx_begin((conn)->data, (flags), (name)) -#define mysqlnd_commit(conn, flags, name) ((conn)->data)->m->tx_commit_or_rollback((conn)->data, TRUE, (flags), (name)) -#define mysqlnd_rollback(conn, flags, name) ((conn)->data)->m->tx_commit_or_rollback((conn)->data, FALSE, (flags), (name)) -#define mysqlnd_savepoint(conn, name) ((conn)->data)->m->tx_savepoint((conn)->data, (name)) -#define mysqlnd_release_savepoint(conn, name) ((conn)->data)->m->tx_savepoint_release((conn)->data, (name)) -#define mysqlnd_list_dbs(conn, wild) ((conn)->data)->m->list_method((conn)->data, wild? "SHOW DATABASES LIKE %s":"SHOW DATABASES", (wild), NULL) -#define mysqlnd_list_processes(conn) ((conn)->data)->m->list_method((conn)->data, "SHOW PROCESSLIST", NULL, NULL) -#define mysqlnd_list_tables(conn, wild) ((conn)->data)->m->list_method((conn)->data, wild? "SHOW TABLES LIKE %s":"SHOW TABLES", (wild), NULL) -#define mysqlnd_dump_debug_info(conn) ((conn)->data)->m->server_dump_debug_information((conn)->data) -#define mysqlnd_select_db(conn, db, db_len) ((conn)->data)->m->select_db((conn)->data, (db), (db_len)) -#define mysqlnd_ping(conn) ((conn)->data)->m->ping((conn)->data) -#define mysqlnd_kill(conn, pid) ((conn)->data)->m->kill_connection((conn)->data, (pid)) -#define mysqlnd_refresh(conn, options) ((conn)->data)->m->refresh_server((conn)->data, (options)) -#define mysqlnd_shutdown(conn, level) ((conn)->data)->m->shutdown_server((conn)->data, (level)) -#define mysqlnd_set_character_set(conn, cs) ((conn)->data)->m->set_charset((conn)->data, (cs)) -#define mysqlnd_stat(conn, msg) ((conn)->data)->m->get_server_statistics(((conn)->data), (msg)) -#define mysqlnd_options(conn, opt, value) ((conn)->data)->m->set_client_option((conn)->data, (opt), (value)) -#define mysqlnd_options4(conn, opt, k, v) ((conn)->data)->m->set_client_option_2d((conn)->data, (opt), (k), (v)) -#define mysqlnd_set_server_option(conn, op) ((conn)->data)->m->set_server_option((conn)->data, (op)) - -/* Escaping */ -#define mysqlnd_real_escape_string(conn, newstr, escapestr, escapestr_len) \ - ((conn)->data)->m->escape_string((conn)->data, (newstr), (escapestr), (escapestr_len)) -#define mysqlnd_escape_string(newstr, escapestr, escapestr_len) \ - mysqlnd_old_escape_string((newstr), (escapestr), (escapestr_len)) - -PHPAPI zend_ulong mysqlnd_old_escape_string(char * newstr, const char * escapestr, size_t escapestr_len); - - -/* PS */ -#define mysqlnd_stmt_init(conn) ((conn)->data)->m->stmt_init(((conn)->data)) -#define mysqlnd_stmt_store_result(stmt) (!mysqlnd_stmt_field_count((stmt)) ? PASS:((stmt)->m->store_result((stmt))? PASS:FAIL)) -#define mysqlnd_stmt_get_result(stmt) (stmt)->m->get_result((stmt)) -#define mysqlnd_stmt_more_results(stmt) (stmt)->m->more_results((stmt)) -#define mysqlnd_stmt_next_result(stmt) (stmt)->m->next_result((stmt)) -#define mysqlnd_stmt_data_seek(stmt, row) (stmt)->m->seek_data((stmt), (row)) -#define mysqlnd_stmt_prepare(stmt, q, qlen) (stmt)->m->prepare((stmt), (q), (qlen)) -#define mysqlnd_stmt_execute(stmt) (stmt)->m->execute((stmt)) -#define mysqlnd_stmt_send_long_data(stmt,p,d,l) (stmt)->m->send_long_data((stmt), (p), (d), (l)) -#define mysqlnd_stmt_alloc_param_bind(stmt) (stmt)->m->alloc_parameter_bind((stmt)) -#define mysqlnd_stmt_free_param_bind(stmt,bind) (stmt)->m->free_parameter_bind((stmt), (bind)) -#define mysqlnd_stmt_bind_param(stmt,bind) (stmt)->m->bind_parameters((stmt), (bind)) -#define mysqlnd_stmt_bind_one_param(stmt,n,z,t) (stmt)->m->bind_one_parameter((stmt), (n), (z), (t)) -#define mysqlnd_stmt_refresh_bind_param(s) (s)->m->refresh_bind_param((s)) -#define mysqlnd_stmt_alloc_result_bind(stmt) (stmt)->m->alloc_result_bind((stmt)) -#define mysqlnd_stmt_free_result_bind(stmt,bind) (stmt)->m->free_result_bind((stmt), (bind)) -#define mysqlnd_stmt_bind_result(stmt,bind) (stmt)->m->bind_result((stmt), (bind)) -#define mysqlnd_stmt_bind_one_result(s,no) (s)->m->bind_one_result((s), (no)) -#define mysqlnd_stmt_param_metadata(stmt) (stmt)->m->get_parameter_metadata((stmt)) -#define mysqlnd_stmt_result_metadata(stmt) (stmt)->m->get_result_metadata((stmt)) - -#define mysqlnd_stmt_free_result(stmt) (stmt)->m->free_result((stmt)) -#define mysqlnd_stmt_close(stmt, implicit) (stmt)->m->dtor((stmt), (implicit)) -#define mysqlnd_stmt_reset(stmt) (stmt)->m->reset((stmt)) -#define mysqlnd_stmt_flush(stmt) (stmt)->m->flush((stmt)) - - -#define mysqlnd_stmt_attr_get(stmt, attr, value) (stmt)->m->get_attribute((stmt), (attr), (value)) -#define mysqlnd_stmt_attr_set(stmt, attr, value) (stmt)->m->set_attribute((stmt), (attr), (value)) - -#define mysqlnd_stmt_fetch(stmt, fetched) (stmt)->m->fetch((stmt), (fetched)) - - -/* Performance statistics */ -PHPAPI extern MYSQLND_STATS * mysqlnd_global_stats; -PHPAPI extern const MYSQLND_STRING mysqlnd_stats_values_names[]; -PHPAPI void _mysqlnd_get_client_stats(MYSQLND_STATS * stats, zval *return_value ZEND_FILE_LINE_DC); - - -#ifndef MYSQLND_CORE_STATISTICS_DISABLED - -#define MYSQLND_INC_GLOBAL_STATISTIC(statistic) \ - MYSQLND_INC_STATISTIC(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic)) - -#define MYSQLND_DEC_GLOBAL_STATISTIC(statistic) \ - MYSQLND_DEC_STATISTIC(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic)) - -#define MYSQLND_INC_GLOBAL_STATISTIC_W_VALUE2(statistic1, value1, statistic2, value2) \ - MYSQLND_INC_STATISTIC_W_VALUE2(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic1), (value1), (statistic2), (value2)) - -#define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) \ - MYSQLND_INC_STATISTIC(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic)); \ - MYSQLND_INC_STATISTIC(MYSQLND_G(collect_statistics), (conn_stats), (statistic)); - -#define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \ - MYSQLND_INC_STATISTIC_W_VALUE(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic), (value)); \ - MYSQLND_INC_STATISTIC_W_VALUE(MYSQLND_G(collect_statistics), (conn_stats), (statistic), (value)); - -#define MYSQLND_INC_CONN_STATISTIC_W_VALUE2(conn_stats, statistic1, value1, statistic2, value2) \ - MYSQLND_INC_STATISTIC_W_VALUE2(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic1), (value1), (statistic2), (value2)); \ - MYSQLND_INC_STATISTIC_W_VALUE2(MYSQLND_G(collect_statistics), (conn_stats), (statistic1), (value1), (statistic2), (value2)); - -#define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2, value2, statistic3, value3) \ - MYSQLND_INC_STATISTIC_W_VALUE3(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic1), (value1), (statistic2), (value2), (statistic3), (value3)); \ - MYSQLND_INC_STATISTIC_W_VALUE3(MYSQLND_G(collect_statistics), (conn_stats), (statistic1), (value1), (statistic2), (value2), (statistic3), (value3)); - -#else - -#define MYSQLND_INC_GLOBAL_STATISTIC(statistic) -#define MYSQLND_DEC_GLOBAL_STATISTIC(statistic) -#define MYSQLND_INC_GLOBAL_STATISTIC_W_VALUE2(statistic1, value1, statistic2, value2) -#define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) -#define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) -#define MYSQLND_INC_CONN_STATISTIC_W_VALUE2(conn_stats, statistic1, value1, statistic2, value2) -#define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2, value2, statistic3, value3) - -#endif /* MYSQLND_CORE_STATISTICS_DISABLED */ - - -/* double check the class name to avoid naming conflicts when using these: */ -#define MYSQLND_METHOD(class, method) mysqlnd_##class##_##method##_pub -#define MYSQLND_METHOD_PRIVATE(class, method) mysqlnd_##class##_##method##_priv - -ZEND_BEGIN_MODULE_GLOBALS(mysqlnd) - char * debug; /* The actual string */ - char * trace_alloc_settings; /* The actual string */ - MYSQLND_DEBUG * dbg; /* The DBG object for standard tracing */ - MYSQLND_DEBUG * trace_alloc; /* The DBG object for allocation tracing */ - zend_long net_cmd_buffer_size; - zend_long net_read_buffer_size; - zend_long log_mask; - zend_long net_read_timeout; - zend_long mempool_default_size; - zend_long debug_emalloc_fail_threshold; - zend_long debug_ecalloc_fail_threshold; - zend_long debug_erealloc_fail_threshold; - zend_long debug_malloc_fail_threshold; - zend_long debug_calloc_fail_threshold; - zend_long debug_realloc_fail_threshold; - char * sha256_server_public_key; - zend_bool fetch_data_copy; - zend_bool collect_statistics; - zend_bool collect_memory_statistics; -ZEND_END_MODULE_GLOBALS(mysqlnd) - -PHPAPI ZEND_EXTERN_MODULE_GLOBALS(mysqlnd) -#define MYSQLND_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(mysqlnd, v) - -#if defined(ZTS) && defined(COMPILE_DL_MYSQLND) -ZEND_TSRMLS_CACHE_EXTERN() -#endif - - -PHPAPI void mysqlnd_minfo_print_hash(zval *values); - -#endif /* MYSQLND_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_alloc.h b/include/php/ext/mysqlnd/mysqlnd_alloc.h deleted file mode 100644 index 5764063..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_alloc.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_ALLOC_H -#define MYSQLND_ALLOC_H - -PHPAPI extern const char * mysqlnd_debug_std_no_trace_funcs[]; - -#define MYSQLND_MEM_D ZEND_FILE_LINE_DC -#define MYSQLND_MEM_C ZEND_FILE_LINE_CC - -struct st_mysqlnd_allocator_methods -{ - void * (*m_emalloc)(size_t size MYSQLND_MEM_D); - void * (*m_pemalloc)(size_t size, zend_bool persistent MYSQLND_MEM_D); - void * (*m_ecalloc)(unsigned int nmemb, size_t size MYSQLND_MEM_D); - void * (*m_pecalloc)(unsigned int nmemb, size_t size, zend_bool persistent MYSQLND_MEM_D); - void * (*m_erealloc)(void *ptr, size_t new_size MYSQLND_MEM_D); - void * (*m_perealloc)(void *ptr, size_t new_size, zend_bool persistent MYSQLND_MEM_D); - void (*m_efree)(void *ptr MYSQLND_MEM_D); - void (*m_pefree)(void *ptr, zend_bool persistent MYSQLND_MEM_D); - void * (*m_malloc)(size_t size MYSQLND_MEM_D); - void * (*m_calloc)(unsigned int nmemb, size_t size MYSQLND_MEM_D); - void * (*m_realloc)(void *ptr, size_t new_size MYSQLND_MEM_D); - void (*m_free)(void *ptr MYSQLND_MEM_D); - char * (*m_pememdup)(const char * const ptr, size_t size, zend_bool persistent MYSQLND_MEM_D); - char * (*m_pestrndup)(const char * const ptr, size_t size, zend_bool persistent MYSQLND_MEM_D); - char * (*m_pestrdup)(const char * const ptr, zend_bool persistent MYSQLND_MEM_D); - int (*m_sprintf)(char **pbuf, size_t max_len, const char *format, ...); - int (*m_vsprintf)(char **pbuf, size_t max_len, const char *format, va_list ap); - void (*m_sprintf_free)(char * p); -}; - -PHPAPI extern struct st_mysqlnd_allocator_methods mysqlnd_allocator; - -#define mnd_emalloc(size) mysqlnd_allocator.m_emalloc((size) MYSQLND_MEM_C) -#define mnd_pemalloc(size, pers) mysqlnd_allocator.m_pemalloc((size), (pers) MYSQLND_MEM_C) -#define mnd_ecalloc(nmemb, size) mysqlnd_allocator.m_ecalloc((nmemb), (size) MYSQLND_MEM_C) -#define mnd_pecalloc(nmemb, size, p) mysqlnd_allocator.m_pecalloc((nmemb), (size), (p) MYSQLND_MEM_C) -#define mnd_erealloc(ptr, new_size) mysqlnd_allocator.m_erealloc((ptr), (new_size) MYSQLND_MEM_C) -#define mnd_perealloc(ptr, new_size, p) mysqlnd_allocator.m_perealloc((ptr), (new_size), (p) MYSQLND_MEM_C) -#define mnd_efree(ptr) mysqlnd_allocator.m_efree((ptr) MYSQLND_MEM_C) -#define mnd_pefree(ptr, pers) mysqlnd_allocator.m_pefree((ptr), (pers) MYSQLND_MEM_C) -#define mnd_malloc(size) mysqlnd_allocator.m_malloc((size) MYSQLND_MEM_C) -#define mnd_calloc(nmemb, size) mysqlnd_allocator.m_calloc((nmemb), (size) MYSQLND_MEM_C) -#define mnd_realloc(ptr, new_size) mysqlnd_allocator.m_realloc((ptr), (new_size) MYSQLND_MEM_C) -#define mnd_free(ptr) mysqlnd_allocator.m_free((ptr) MYSQLND_MEM_C) -#define mnd_pememdup(ptr, size, pers) mysqlnd_allocator.m_pememdup((ptr), (size), (pers) MYSQLND_MEM_C) -#define mnd_pestrndup(ptr, size, pers) mysqlnd_allocator.m_pestrndup((ptr), (size), (pers) MYSQLND_MEM_C) -#define mnd_pestrdup(ptr, pers) mysqlnd_allocator.m_pestrdup((ptr), (pers) MYSQLND_MEM_C) -#define mnd_sprintf(p, mx_len, fmt,...) mysqlnd_allocator.m_sprintf((p), (mx_len), (fmt), __VA_ARGS__) -#define mnd_vsprintf(p, mx_len, fmt,ap) mysqlnd_allocator.m_vsprintf((p), (mx_len), (fmt), (ap)) -#define mnd_sprintf_free(p) mysqlnd_allocator.m_sprintf_free((p)) - -static inline MYSQLND_STRING mnd_dup_cstring(const MYSQLND_CSTRING str, const zend_bool persistent) -{ - const MYSQLND_STRING ret = {(char*) mnd_pemalloc(str.l + 1, persistent), str.l}; - if (ret.s) { - memcpy(ret.s, str.s, str.l); - ret.s[str.l] = '\0'; - } - return ret; -} - -static inline MYSQLND_CSTRING mnd_str2c(const MYSQLND_STRING str) -{ - const MYSQLND_CSTRING ret = {str.s, str.l}; - return ret; -} - -#endif /* MYSQLND_ALLOC_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_auth.h b/include/php/ext/mysqlnd/mysqlnd_auth.h deleted file mode 100644 index 54fac21..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_auth.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_AUTH_H -#define MYSQLND_AUTH_H -enum_func_status -mysqlnd_auth_handshake(MYSQLND_CONN_DATA * conn, - const char * const user, - const char * const passwd, - const size_t passwd_len, - const char * const db, - const size_t db_len, - const MYSQLND_SESSION_OPTIONS * const session_options, - const zend_ulong mysql_flags, - const unsigned int server_charset_no, - const zend_bool use_full_blown_auth_packet, - const char * const auth_protocol, - struct st_mysqlnd_authentication_plugin * auth_plugin, - const zend_uchar * const orig_auth_plugin_data, - const size_t orig_auth_plugin_data_len, - const zend_uchar * const auth_plugin_data, - const size_t auth_plugin_data_len, - char ** switch_to_auth_protocol, - size_t * const switch_to_auth_protocol_len, - zend_uchar ** switch_to_auth_protocol_data, - size_t * const switch_to_auth_protocol_data_len - ); - -enum_func_status -mysqlnd_auth_change_user(MYSQLND_CONN_DATA * const conn, - const char * const user, - const size_t user_len, - const char * const passwd, - const size_t passwd_len, - const char * const db, - const size_t db_len, - const zend_bool silent, - const zend_bool use_full_blown_auth_packet, - const char * const auth_protocol, - struct st_mysqlnd_authentication_plugin * auth_plugin, - const zend_uchar * const orig_auth_plugin_data, - const size_t orig_auth_plugin_data_len, - const zend_uchar * auth_plugin_data, - const size_t auth_plugin_data_len, - char ** switch_to_auth_protocol, - size_t * const switch_to_auth_protocol_len, - zend_uchar ** switch_to_auth_protocol_data, - size_t * const switch_to_auth_protocol_data_len - ); - - -enum_func_status -mysqlnd_connect_run_authentication( - MYSQLND_CONN_DATA * const conn, - const char * const user, - const char * const passwd, - const char * const db, - const size_t db_len, - const size_t passwd_len, - const MYSQLND_STRING authentication_plugin_data, - const char * const authentication_protocol, - const unsigned int charset_no, - const size_t server_capabilities, - const MYSQLND_SESSION_OPTIONS * const session_options, - const zend_ulong mysql_flags - ); - -enum_func_status -mysqlnd_run_authentication( - MYSQLND_CONN_DATA * const conn, - const char * const user, - const char * const passwd, - const size_t passwd_len, - const char * const db, - const size_t db_len, - const MYSQLND_STRING auth_plugin_data, - const char * const auth_protocol, - const unsigned int charset_no, - const MYSQLND_SESSION_OPTIONS * const session_options, - const zend_ulong mysql_flags, - const zend_bool silent, - const zend_bool is_change_user - ); - -PHPAPI void php_mysqlnd_scramble(zend_uchar * const buffer, const zend_uchar * const scramble, const zend_uchar * const pass, const size_t pass_len); - -#endif /* MYSQLND_AUTH_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_block_alloc.h b/include/php/ext/mysqlnd/mysqlnd_block_alloc.h deleted file mode 100644 index 1adf899..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_block_alloc.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_BLOCK_ALLOC_H -#define MYSQLND_BLOCK_ALLOC_H - -PHPAPI MYSQLND_MEMORY_POOL * mysqlnd_mempool_create(size_t arena_size); -PHPAPI void mysqlnd_mempool_destroy(MYSQLND_MEMORY_POOL * pool); -PHPAPI void mysqlnd_mempool_save_state(MYSQLND_MEMORY_POOL * pool); -PHPAPI void mysqlnd_mempool_restore_state(MYSQLND_MEMORY_POOL * pool); - -#endif /* MYSQLND_BLOCK_ALLOC_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_charset.h b/include/php/ext/mysqlnd/mysqlnd_charset.h deleted file mode 100644 index a87891c..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_charset.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - | Georg Richter | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_CHARSET_H -#define MYSQLND_CHARSET_H - -PHPAPI zend_ulong mysqlnd_cset_escape_quotes(const MYSQLND_CHARSET * const charset, char * newstr, - const char * escapestr, const size_t escapestr_len); - -PHPAPI zend_ulong mysqlnd_cset_escape_slashes(const MYSQLND_CHARSET * const cset, char * newstr, - const char * escapestr, const size_t escapestr_len); - -struct st_mysqlnd_plugin_charsets -{ - const struct st_mysqlnd_plugin_header plugin_header; - struct - { - const MYSQLND_CHARSET * (*const find_charset_by_nr)(unsigned int charsetnr); - const MYSQLND_CHARSET * (*const find_charset_by_name)(const char * const name); - zend_ulong (*const escape_quotes)(const MYSQLND_CHARSET * const cset, char * newstr, const char * escapestr, const size_t escapestr_len); - zend_ulong (*const escape_slashes)(const MYSQLND_CHARSET * const cset, char * newstr, const char * escapestr, const size_t escapestr_len); - } methods; -}; - -void mysqlnd_charsets_plugin_register(void); - -#endif /* MYSQLND_CHARSET_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_commands.h b/include/php/ext/mysqlnd/mysqlnd_commands.h deleted file mode 100644 index f043910..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_commands.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_COMMANDS_H -#define MYSQLND_COMMANDS_H - -//extern func_mysqlnd__run_command mysqlnd_run_command; - -#endif /* MYSQLND_COMMANDS_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_connection.h b/include/php/ext/mysqlnd/mysqlnd_connection.h deleted file mode 100644 index 5887327..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_connection.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_CONNECTION_H -#define MYSQLND_CONNECTION_H - -PHPAPI extern const char * const mysqlnd_out_of_sync; -PHPAPI extern const char * const mysqlnd_server_gone; -PHPAPI extern const char * const mysqlnd_out_of_memory; - - -void mysqlnd_upsert_status_init(MYSQLND_UPSERT_STATUS * const upsert_status); - -#define UPSERT_STATUS_RESET(status) (status)->m->reset((status)) - -#define UPSERT_STATUS_GET_SERVER_STATUS(status) (status)->server_status -#define UPSERT_STATUS_SET_SERVER_STATUS(status, server_st) (status)->server_status = (server_st) - -#define UPSERT_STATUS_GET_WARNINGS(status) (status)->warning_count -#define UPSERT_STATUS_SET_WARNINGS(status, warnings) (status)->warning_count = (warnings) - -#define UPSERT_STATUS_GET_AFFECTED_ROWS(status) (status)->affected_rows -#define UPSERT_STATUS_SET_AFFECTED_ROWS(status, rows) (status)->affected_rows = (rows) -#define UPSERT_STATUS_SET_AFFECTED_ROWS_TO_ERROR(status) (status)->m->set_affected_rows_to_error((status)) - -#define UPSERT_STATUS_GET_LAST_INSERT_ID(status) (status)->last_insert_id -#define UPSERT_STATUS_SET_LAST_INSERT_ID(status, id) (status)->last_insert_id = (id) - - -/* Error handling */ -#define SET_NEW_MESSAGE(buf, buf_len, message, len) \ - {\ - if ((buf)) { \ - mnd_efree((buf)); \ - } \ - if ((message)) { \ - (buf) = mnd_pestrndup((message), (len), 0); \ - } else { \ - (buf) = NULL; \ - } \ - (buf_len) = (len); \ - } - -#define SET_EMPTY_MESSAGE(buf, buf_len) \ - {\ - if ((buf)) { \ - mnd_efree((buf)); \ - (buf) = NULL; \ - } \ - (buf_len) = 0; \ - } - - -PHPAPI enum_func_status mysqlnd_error_info_init(MYSQLND_ERROR_INFO * const info, const zend_bool persistent); -PHPAPI void mysqlnd_error_info_free_contents(MYSQLND_ERROR_INFO * const info); - -#define GET_CONNECTION_STATE(state_struct) (state_struct)->m->get((state_struct)) -#define SET_CONNECTION_STATE(state_struct, s) (state_struct)->m->set((state_struct), (s)) - -PHPAPI void mysqlnd_connection_state_init(struct st_mysqlnd_connection_state * const state); - -#endif /* MYSQLND_CONNECTION_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_debug.h b/include/php/ext/mysqlnd/mysqlnd_debug.h deleted file mode 100644 index 32dc731..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_debug.h +++ /dev/null @@ -1,230 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_DEBUG_H -#define MYSQLND_DEBUG_H - -#include "mysqlnd_alloc.h" -#include "zend_stack.h" - -struct st_mysqlnd_debug_methods -{ - enum_func_status (*open)(MYSQLND_DEBUG * self, zend_bool reopen); - void (*set_mode)(MYSQLND_DEBUG * self, const char * const mode); - enum_func_status (*log)(MYSQLND_DEBUG * self, unsigned int line, const char * const file, - unsigned int level, const char * type, const char *message); - enum_func_status (*log_va)(MYSQLND_DEBUG * self, unsigned int line, const char * const file, - unsigned int level, const char * type, const char *format, ...); - zend_bool (*func_enter)(MYSQLND_DEBUG * self, unsigned int line, const char * const file, - const char * const func_name, unsigned int func_name_len); - enum_func_status (*func_leave)(MYSQLND_DEBUG * self, unsigned int line, const char * const file, uint64_t call_time); - enum_func_status (*close)(MYSQLND_DEBUG * self); - enum_func_status (*free_handle)(MYSQLND_DEBUG * self); -}; - - -struct st_mysqlnd_debug -{ - php_stream *stream; - unsigned int flags; - unsigned int nest_level_limit; - int pid; - char * file_name; - zend_stack call_stack; - zend_stack call_time_stack; - HashTable not_filtered_functions; - HashTable function_profiles; - struct st_mysqlnd_debug_methods *m; - const char ** skip_functions; -}; - -struct st_mysqlnd_plugin_trace_log -{ - struct st_mysqlnd_plugin_header plugin_header; - struct - { - MYSQLND_DEBUG * (*trace_instance_init)(const char * skip_functions[]); - } methods; -}; - -void mysqlnd_debug_trace_plugin_register(void); - -PHPAPI MYSQLND_DEBUG * mysqlnd_debug_init(const char * skip_functions[]); - -#define MYSQLND_DEBUG_DUMP_TIME 1 -#define MYSQLND_DEBUG_DUMP_TRACE 2 -#define MYSQLND_DEBUG_DUMP_PID 4 -#define MYSQLND_DEBUG_DUMP_LINE 8 -#define MYSQLND_DEBUG_DUMP_FILE 16 -#define MYSQLND_DEBUG_DUMP_LEVEL 32 -#define MYSQLND_DEBUG_APPEND 64 -#define MYSQLND_DEBUG_FLUSH 128 -#define MYSQLND_DEBUG_TRACE_MEMORY_CALLS 256 -#define MYSQLND_DEBUG_PROFILE_CALLS 512 - - -#if defined(__GNUC__) || defined(PHP_WIN32) -#ifdef PHP_WIN32 -#include "win32/time.h" -#else -#include -#endif - -#ifndef MYSQLND_PROFILING_DISABLED -#define DBG_PROFILE_TIMEVAL_TO_DOUBLE(tp) ((tp.tv_sec * 1000000LL)+ tp.tv_usec) -#define DBG_PROFILE_START_TIME() gettimeofday(&__dbg_prof_tp, NULL); __dbg_prof_start = DBG_PROFILE_TIMEVAL_TO_DOUBLE(__dbg_prof_tp); -#define DBG_PROFILE_END_TIME(duration) gettimeofday(&__dbg_prof_tp, NULL); (duration) = (DBG_PROFILE_TIMEVAL_TO_DOUBLE(__dbg_prof_tp) - __dbg_prof_start); -#else -#define DBG_PROFILE_TIMEVAL_TO_DOUBLE(tp) -#define DBG_PROFILE_START_TIME() -#define DBG_PROFILE_END_TIME(duration) -#endif - -#define DBG_INF_EX(dbg_obj, msg) do { if (dbg_skip_trace == FALSE && (dbg_obj)) (dbg_obj)->m->log((dbg_obj), __LINE__, __FILE__, -1, "info : ", (msg)); } while (0) -#define DBG_ERR_EX(dbg_obj, msg) do { if (dbg_skip_trace == FALSE && (dbg_obj)) (dbg_obj)->m->log((dbg_obj), __LINE__, __FILE__, -1, "error: ", (msg)); } while (0) -#define DBG_INF_FMT_EX(dbg_obj, ...) do { if (dbg_skip_trace == FALSE && (dbg_obj)) (dbg_obj)->m->log_va((dbg_obj), __LINE__, __FILE__, -1, "info : ", __VA_ARGS__); } while (0) -#define DBG_ERR_FMT_EX(dbg_obj, ...) do { if (dbg_skip_trace == FALSE && (dbg_obj)) (dbg_obj)->m->log_va((dbg_obj), __LINE__, __FILE__, -1, "error: ", __VA_ARGS__); } while (0) - -#define DBG_BLOCK_ENTER_EX(dbg_obj, block_name) DBG_BLOCK_ENTER_EX2((dbg_obj), (MYSQLND_DEBUG *) NULL, (block_name)) -#define DBG_BLOCK_LEAVE_EX(dbg_obj) DBG_BLOCK_LEAVE_EX2((dbg_obj), (MYSQLND_DEBUG *) NULL) - -#define DBG_BLOCK_ENTER_EX2(dbg_obj1, dbg_obj2, block_name) \ - { \ - DBG_ENTER_EX2((dbg_obj1), (dbg_obj2), (block_name)); - -#define DBG_BLOCK_LEAVE_EX2(dbg_obj1, dbg_obj2) \ - DBG_LEAVE_EX2((dbg_obj1), (dbg_obj2), ;) \ - } \ - - -#define DBG_ENTER_EX(dbg_obj, func_name) DBG_ENTER_EX2((dbg_obj), (MYSQLND_DEBUG *) NULL, (func_name)) -#define DBG_LEAVE_EX(dbg_obj, leave) DBG_LEAVE_EX2((dbg_obj), (MYSQLND_DEBUG *) NULL, leave) - -#define DBG_ENTER_EX2(dbg_obj1, dbg_obj2, func_name) \ - struct timeval __dbg_prof_tp = {0}; \ - uint64_t __dbg_prof_start = 0; /* initialization is needed */ \ - zend_bool dbg_skip_trace = TRUE; \ - ((void)__dbg_prof_start); \ - if ((dbg_obj1)) { \ - dbg_skip_trace = !(dbg_obj1)->m->func_enter((dbg_obj1), __LINE__, __FILE__, func_name, strlen(func_name)); \ - } \ - if ((dbg_obj2)) { \ - dbg_skip_trace |= !(dbg_obj2)->m->func_enter((dbg_obj2), __LINE__, __FILE__, func_name, strlen(func_name)); \ - } \ - if (dbg_skip_trace) { \ - /* EMPTY */ ; /* shut compiler's mouth */ \ - } \ - do { \ - if (((dbg_obj1) && (dbg_obj1)->flags & MYSQLND_DEBUG_PROFILE_CALLS) || \ - ((dbg_obj2) && (dbg_obj2)->flags & MYSQLND_DEBUG_PROFILE_CALLS)) \ - { \ - DBG_PROFILE_START_TIME(); \ - } \ - } while (0); - -#define DBG_LEAVE_EX2(dbg_obj1, dbg_obj2, leave) \ - do {\ - uint64_t this_call_duration = 0; \ - if (((dbg_obj1) && (dbg_obj1)->flags & MYSQLND_DEBUG_PROFILE_CALLS) || \ - ((dbg_obj2) && (dbg_obj2)->flags & MYSQLND_DEBUG_PROFILE_CALLS)) \ - { \ - DBG_PROFILE_END_TIME(this_call_duration); \ - } \ - if ((dbg_obj1)) { \ - (dbg_obj1)->m->func_leave((dbg_obj1), __LINE__, __FILE__, this_call_duration); \ - } \ - if ((dbg_obj2)) { \ - (dbg_obj2)->m->func_leave((dbg_obj2), __LINE__, __FILE__, this_call_duration); \ - } \ - leave \ - } while (0); - - -#define DBG_RETURN_EX(dbg_obj, value) DBG_LEAVE_EX((dbg_obj), return (value);) -#define DBG_VOID_RETURN_EX(dbg_obj) DBG_LEAVE_EX((dbg_obj), return;) - -#define DBG_RETURN_EX2(dbg_obj1, dbg_obj2, value) DBG_LEAVE_EX2((dbg_obj1), (dbg_obj2), return (value);) -#define DBG_VOID_RETURN_EX2(dbg_obj1, dbg_obj2) DBG_LEAVE_EX2((dbg_obj1), (dbg_obj2), return;) - - - -#else /* defined(__GNUC__) || defined(PHP_WIN32) */ -static inline void DBG_INF_EX(MYSQLND_DEBUG * dbg_obj, const char * const msg) {} -static inline void DBG_ERR_EX(MYSQLND_DEBUG * dbg_obj, const char * const msg) {} -static inline void DBG_INF_FMT_EX(MYSQLND_DEBUG * dbg_obj, ...) {} -static inline void DBG_ERR_FMT_EX(MYSQLND_DEBUG * dbg_obj, ...) {} -static inline void DBG_ENTER_EX(MYSQLND_DEBUG * dbg_obj, const char * const func_name) {} -#define DBG_BLOCK_ENTER(bname) { -#define DBG_RETURN_EX(dbg_obj, value) return (value) -#define DBG_VOID_RETURN_EX(dbg_obj) return -#define DBG_BLOCK_LEAVE_EX(dbg_obj) } - -#endif - -#if MYSQLND_DBG_ENABLED == 1 - -#define DBG_INF(msg) DBG_INF_EX(MYSQLND_G(dbg), (msg)) -#define DBG_ERR(msg) DBG_ERR_EX(MYSQLND_G(dbg), (msg)) -#define DBG_INF_FMT(...) DBG_INF_FMT_EX(MYSQLND_G(dbg), __VA_ARGS__) -#define DBG_ERR_FMT(...) DBG_ERR_FMT_EX(MYSQLND_G(dbg), __VA_ARGS__) - -#define DBG_ENTER(func_name) DBG_ENTER_EX(MYSQLND_G(dbg), (func_name)) -#define DBG_BLOCK_ENTER(bname) DBG_BLOCK_ENTER_EX(MYSQLND_G(dbg), (bname)) -#define DBG_RETURN(value) DBG_RETURN_EX(MYSQLND_G(dbg), (value)) -#define DBG_VOID_RETURN DBG_VOID_RETURN_EX(MYSQLND_G(dbg)) -#define DBG_BLOCK_LEAVE DBG_BLOCK_LEAVE_EX(MYSQLND_G(dbg)) - - -#define TRACE_ALLOC_INF(msg) DBG_INF_EX(MYSQLND_G(trace_alloc), (msg)) -#define TRACE_ALLOC_ERR(msg) DBG_ERR_EX(MYSQLND_G(trace_alloc), (msg)) -#define TRACE_ALLOC_INF_FMT(...) DBG_INF_FMT_EX(MYSQLND_G(trace_alloc), __VA_ARGS__) -#define TRACE_ALLOC_ERR_FMT(...) DBG_ERR_FMT_EX(MYSQLND_G(trace_alloc), __VA_ARGS__) - -#define TRACE_ALLOC_ENTER(func_name) DBG_ENTER_EX2(MYSQLND_G(dbg), MYSQLND_G(trace_alloc), (func_name)) -#define TRACE_ALLOC_BLOCK_ENTER(bname) DBG_BLOCK_ENTER_EX2(MYSQLND_G(dbg), MYSQLND_G(trace_alloc), (bname)) -#define TRACE_ALLOC_RETURN(value) DBG_RETURN_EX2(MYSQLND_G(dbg), MYSQLND_G(trace_alloc), (value)) -#define TRACE_ALLOC_VOID_RETURN DBG_VOID_RETURN_EX2(MYSQLND_G(dbg), MYSQLND_G(trace_alloc)) -#define TRACE_ALLOC_BLOCK_LEAVE DBG_BLOCK_LEAVE_EX2(MYSQLND_G(dbg), MYSQLND_G(trace_alloc)) - -#elif MYSQLND_DBG_ENABLED == 0 - -static inline void DBG_INF(const char * const msg) {} -static inline void DBG_ERR(const char * const msg) {} -static inline void DBG_INF_FMT(const char * const format, ...) {} -static inline void DBG_ERR_FMT(const char * const format, ...) {} -static inline void DBG_ENTER(const char * const func_name) {} -#define DBG_BLOCK_ENTER(bname) { -#define DBG_RETURN(value) return (value) -#define DBG_VOID_RETURN return -#define DBG_BLOCK_LEAVE } - - -static inline void TRACE_ALLOC_INF(const char * const msg) {} -static inline void TRACE_ALLOC_ERR(const char * const msg) {} -static inline void TRACE_ALLOC_INF_FMT(const char * const format, ...) {} -static inline void TRACE_ALLOC_ERR_FMT(const char * const format, ...) {} -static inline void TRACE_ALLOC_ENTER(const char * const func_name) {} -#define TRACE_ALLOC_BLOCK_ENTER(bname) { -#define TRACE_ALLOC_RETURN(value) return (value) -#define TRACE_ALLOC_VOID_RETURN return -#define TRACE_ALLOC_BLOCK_LEAVE } - -#endif - -#endif /* MYSQLND_DEBUG_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_enum_n_def.h b/include/php/ext/mysqlnd/mysqlnd_enum_n_def.h deleted file mode 100644 index 8eaf682..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_enum_n_def.h +++ /dev/null @@ -1,713 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - | Georg Richter | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_ENUM_N_DEF_H -#define MYSQLND_ENUM_N_DEF_H - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - - -#define MYSQLND_MIN_COMPRESS_LEN 0 - -#define MYSQLND_MAX_PACKET_SIZE (256L*256L*256L-1) - -#define MYSQLND_ASSEMBLED_PACKET_MAX_SIZE 3UL*1024UL*1024UL*1024UL - -#define MYSQLND_DEFAULT_AUTH_PROTOCOL "mysql_native_password" - -#define MYSQLND_ERRMSG_SIZE 512 -#define MYSQLND_SQLSTATE_LENGTH 5 -#define MYSQLND_SQLSTATE_NULL "00000" - -#define MYSQLND_MAX_ALLOWED_USER_LEN 252 /* 63 char * 4byte . MySQL supports now only 16 char, but let it be forward compatible */ -#define MYSQLND_MAX_ALLOWED_DB_LEN 1024 /* 256 char * 4byte. MySQL supports now only 64 char in the tables, but on the FS could be different. Forward compatible. */ - -#define MYSQLND_NET_CMD_BUFFER_MIN_SIZE 4096 -#define MYSQLND_NET_CMD_BUFFER_MIN_SIZE_STR "4096" - -#define MYSQLND_STMT_ID_LENGTH 4 - - -#define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */ -#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ -#define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ -#define SERVER_QUERY_NO_GOOD_INDEX_USED 16 -#define SERVER_QUERY_NO_INDEX_USED 32 -/* - The server was able to fulfill the clients request and opened a - read-only non-scrollable cursor for a query. This flag comes - in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. -*/ -#define SERVER_STATUS_CURSOR_EXISTS 64 -/* - This flag is sent when a read-only cursor is exhausted, in reply to - COM_STMT_FETCH command. -*/ -#define SERVER_STATUS_LAST_ROW_SENT 128 -#define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */ -#define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512 -#define SERVER_QUERY_WAS_SLOW 2048 -#define SERVER_PS_OUT_PARAMS 4096 - -#define MYSQLND_NO_DATA 100 -#define MYSQLND_DATA_TRUNCATED 101 - -#define SHA1_MAX_LENGTH 20 -#define SCRAMBLE_LENGTH 20 -#define SCRAMBLE_LENGTH_323 8 - -#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */ -#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ -#define CLIENT_LONG_FLAG 4 /* Get all column flags */ -#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ -#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ -#define CLIENT_COMPRESS 32 /* Can use compression protocol */ -#define CLIENT_ODBC 64 /* Odbc client */ -#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ -#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ -#define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */ -#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ -#define CLIENT_SSL 2048 /* Switch to SSL after handshake */ -#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ -#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ -#define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ -#define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */ -#define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */ -#define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */ -#define CLIENT_PS_MULTI_RESULTS (1UL << 18) /* Multi-results in PS-protocol */ -#define CLIENT_PLUGIN_AUTH (1UL << 19) /* Client supports plugin authentication */ -#define CLIENT_CONNECT_ATTRS (1UL << 20) /* Client supports connection attributes */ -#define CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA (1UL << 21) /* Enable authentication response packet to be larger than 255 bytes. */ -#define CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS (1UL << 22) /* Don't close the connection for a connection with expired password. */ -#define CLIENT_SESSION_TRACK (1UL << 23) /* Extended OK */ -/* - This is a mysqlnd extension. CLIENT_ODBC is not used anyway. We will reuse it for our case and translate it to not using SSL peer verification -*/ -#define CLIENT_SSL_DONT_VERIFY_SERVER_CERT CLIENT_ODBC -#define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30) -#define CLIENT_REMEMBER_OPTIONS (1UL << 31) - -#define MYSQLND_CAPABILITIES (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | CLIENT_TRANSACTIONS | \ - CLIENT_PROTOCOL_41 | CLIENT_SECURE_CONNECTION | \ - CLIENT_MULTI_RESULTS | CLIENT_LOCAL_FILES | CLIENT_PLUGIN_AUTH) - -#define MYSQLND_PROTOCOL_FLAG_USE_COMPRESSION 1 - - -/* Client Error codes */ -#define CR_UNKNOWN_ERROR 2000 -#define CR_CONNECTION_ERROR 2002 -#define CR_SERVER_GONE_ERROR 2006 -#define CR_OUT_OF_MEMORY 2008 -#define CR_SERVER_LOST 2013 -#define CR_COMMANDS_OUT_OF_SYNC 2014 -#define CR_CANT_FIND_CHARSET 2019 -#define CR_MALFORMED_PACKET 2027 -#define CR_NOT_IMPLEMENTED 2054 -#define CR_NO_PREPARE_STMT 2030 -#define CR_PARAMS_NOT_BOUND 2031 -#define CR_INVALID_PARAMETER_NO 2034 -#define CR_INVALID_BUFFER_USE 2035 - -#define MYSQLND_EE_FILENOTFOUND 7890 - -#define UNKNOWN_SQLSTATE "HY000" - -#define MAX_CHARSET_LEN 32 - - -#define TRANS_START_NO_OPT 0 -#define TRANS_START_WITH_CONSISTENT_SNAPSHOT 1 -#define TRANS_START_READ_WRITE 2 -#define TRANS_START_READ_ONLY 4 - -#define TRANS_COR_NO_OPT 0 -#define TRANS_COR_AND_CHAIN 1 -#define TRANS_COR_AND_NO_CHAIN 2 -#define TRANS_COR_RELEASE 4 -#define TRANS_COR_NO_RELEASE 8 - -typedef enum mysqlnd_extension -{ - MYSQLND_MYSQL = 0, - MYSQLND_MYSQLI -} enum_mysqlnd_extension; - -enum -{ - MYSQLND_FETCH_ASSOC = 1, - MYSQLND_FETCH_NUM = 2, - MYSQLND_FETCH_BOTH = 1|2 -}; - -/* Follow libmysql convention */ -typedef enum func_status -{ - PASS = 0, - FAIL = 1 -} enum_func_status; - -typedef enum mysqlnd_query_type -{ - QUERY_UPSERT, - QUERY_SELECT, - QUERY_LOAD_LOCAL -} enum_mysqlnd_query_type; - -typedef enum mysqlnd_res_type -{ - MYSQLND_RES_NORMAL = 1, - MYSQLND_RES_PS_BUF, - MYSQLND_RES_PS_UNBUF -} enum_mysqlnd_res_type; - -typedef enum mysqlnd_send_query_type -{ - MYSQLND_SEND_QUERY_IMPLICIT = 0, - MYSQLND_SEND_QUERY_EXPLICIT -} enum_mysqlnd_send_query_type; - -typedef enum mysqlnd_reap_result_type -{ - MYSQLND_REAP_RESULT_IMPLICIT = 0, - MYSQLND_REAP_RESULT_EXPLICIT -} enum_mysqlnd_reap_result_type; - -typedef enum mysqlnd_send_execute_type -{ - MYSQLND_SEND_EXECUTE_IMPLICIT = 0, - MYSQLND_SEND_EXECUTE_EXPLICIT -} enum_mysqlnd_send_execute_type; - -typedef enum mysqlnd_parse_exec_response_type -{ - MYSQLND_PARSE_EXEC_RESPONSE_IMPLICIT = 0, - MYSQLND_PARSE_EXEC_RESPONSE_IMPLICIT_NEXT_RESULT, - MYSQLND_PARSE_EXEC_RESPONSE_IMPLICIT_OUT_VARIABLES, - MYSQLND_PARSE_EXEC_RESPONSE_EXPLICIT, -} enum_mysqlnd_parse_exec_response_type; - -typedef enum mysqlnd_client_option -{ - MYSQL_OPT_CONNECT_TIMEOUT, - MYSQL_OPT_COMPRESS, - MYSQL_OPT_NAMED_PIPE, - MYSQL_INIT_COMMAND, - MYSQL_READ_DEFAULT_FILE, - MYSQL_READ_DEFAULT_GROUP, - MYSQL_SET_CHARSET_DIR, - MYSQL_SET_CHARSET_NAME, - MYSQL_OPT_LOCAL_INFILE, - MYSQL_OPT_PROTOCOL, - MYSQL_SHARED_MEMORY_BASE_NAME, - MYSQL_OPT_READ_TIMEOUT, - MYSQL_OPT_WRITE_TIMEOUT, - MYSQL_OPT_USE_RESULT, - MYSQL_OPT_USE_REMOTE_CONNECTION, - MYSQL_OPT_USE_EMBEDDED_CONNECTION, - MYSQL_OPT_GUESS_CONNECTION, - MYSQL_SET_CLIENT_IP, - MYSQL_SECURE_AUTH, - MYSQL_REPORT_DATA_TRUNCATION, - MYSQL_OPT_RECONNECT, - MYSQL_OPT_SSL_VERIFY_SERVER_CERT, - MYSQL_PLUGIN_DIR, - MYSQL_DEFAULT_AUTH, - MYSQL_OPT_BIND, - MYSQL_OPT_SSL_KEY, - MYSQL_OPT_SSL_CERT, - MYSQL_OPT_SSL_CA, - MYSQL_OPT_SSL_CAPATH, - MYSQL_OPT_SSL_CIPHER, - MYSQL_OPT_SSL_CRL, - MYSQL_OPT_SSL_CRLPATH, - MYSQL_OPT_CONNECT_ATTR_RESET, - MYSQL_OPT_CONNECT_ATTR_ADD, - MYSQL_OPT_CONNECT_ATTR_DELETE, - MYSQL_SERVER_PUBLIC_KEY, - MYSQL_ENABLE_CLEARTEXT_PLUGIN, - MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, - MYSQL_OPT_SSL_ENFORCE, - MYSQL_OPT_MAX_ALLOWED_PACKET, - MYSQL_OPT_NET_BUFFER_LENGTH, - MYSQL_OPT_TLS_VERSION, - MYSQL_OPT_SSL_MODE, - MYSQLND_DEPRECATED_ENUM1 = 200, -#ifdef MYSQLND_STRING_TO_INT_CONVERSION - MYSQLND_OPT_INT_AND_FLOAT_NATIVE = 201, -#endif - MYSQLND_OPT_NET_CMD_BUFFER_SIZE = 202, - MYSQLND_OPT_NET_READ_BUFFER_SIZE = 203, - MYSQLND_OPT_SSL_KEY = 204, - MYSQLND_OPT_SSL_CERT = 205, - MYSQLND_OPT_SSL_CA = 206, - MYSQLND_OPT_SSL_CAPATH = 207, - MYSQLND_OPT_SSL_CIPHER = 208, - MYSQLND_OPT_SSL_PASSPHRASE = 209, - MYSQLND_OPT_MAX_ALLOWED_PACKET = 210, - MYSQLND_OPT_AUTH_PROTOCOL = 211 -} enum_mysqlnd_client_option; - -typedef enum mysqlnd_session_protocol_type -{ - MYSQL_PROTOCOL_DEFAULT = 0, - MYSQL_PROTOCOL_TCP, /* all, supported */ - MYSQL_PROTOCOL_SOCKET, /* unix, supported */ - MYSQL_PROTOCOL_PIPE, /* win32, not-supported */ - MYSQL_PROTOCOL_MEMORY, /* win32, not-supported */ - MYSQL_PROTOCOL_LAST -} enum_mysqlnd_session_protocol_type; - -typedef enum mysqlnd_field_types -{ - MYSQL_TYPE_DECIMAL = 0, - MYSQL_TYPE_TINY = 1, - MYSQL_TYPE_SHORT = 2, - MYSQL_TYPE_LONG = 3, - MYSQL_TYPE_FLOAT = 4, - MYSQL_TYPE_DOUBLE = 5, - MYSQL_TYPE_NULL = 6, - MYSQL_TYPE_TIMESTAMP= 7, - MYSQL_TYPE_LONGLONG = 8, - MYSQL_TYPE_INT24 = 9, - MYSQL_TYPE_DATE = 10, - MYSQL_TYPE_TIME = 11, - MYSQL_TYPE_DATETIME = 12, - MYSQL_TYPE_YEAR = 13, - MYSQL_TYPE_NEWDATE = 14, - MYSQL_TYPE_VARCHAR = 15, - MYSQL_TYPE_BIT = 16, - MYSQL_TYPE_JSON=245, - MYSQL_TYPE_NEWDECIMAL=246, - MYSQL_TYPE_ENUM=247, - MYSQL_TYPE_SET=248, - MYSQL_TYPE_TINY_BLOB=249, - MYSQL_TYPE_MEDIUM_BLOB=250, - MYSQL_TYPE_LONG_BLOB=251, - MYSQL_TYPE_BLOB=252, - MYSQL_TYPE_VAR_STRING=253, - MYSQL_TYPE_STRING=254, - MYSQL_TYPE_GEOMETRY=255 -} enum_mysqlnd_field_types; - -/* Please update this if there is a new type after MYSQL_TYPE_GEOMETRY */ -#define MYSQL_TYPE_LAST MYSQL_TYPE_GEOMETRY - - -typedef enum mysqlnd_server_option -{ - MYSQL_OPTION_MULTI_STATEMENTS_ON, - MYSQL_OPTION_MULTI_STATEMENTS_OFF -} enum_mysqlnd_server_option; - - -#define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL -#define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL -#define FIELD_TYPE_TINY MYSQL_TYPE_TINY -#define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT -#define FIELD_TYPE_LONG MYSQL_TYPE_LONG -#define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT -#define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE -#define FIELD_TYPE_NULL MYSQL_TYPE_NULL -#define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP -#define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG -#define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 -#define FIELD_TYPE_DATE MYSQL_TYPE_DATE -#define FIELD_TYPE_TIME MYSQL_TYPE_TIME -#define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME -#define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR -#define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE -#define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM -#define FIELD_TYPE_SET MYSQL_TYPE_SET -#define FIELD_TYPE_JSON MYSQL_TYPE_JSON -#define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB -#define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB -#define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB -#define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB -#define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING -#define FIELD_TYPE_STRING MYSQL_TYPE_STRING -#define FIELD_TYPE_CHAR MYSQL_TYPE_TINY -#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM -#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY -#define FIELD_TYPE_BIT MYSQL_TYPE_BIT - -#define NOT_NULL_FLAG 1 -#define PRI_KEY_FLAG 2 -#define UNIQUE_KEY_FLAG 4 -#define MULTIPLE_KEY_FLAG 8 -#define BLOB_FLAG 16 -#define UNSIGNED_FLAG 32 -#define ZEROFILL_FLAG 64 -#define BINARY_FLAG 128 -#define ENUM_FLAG 256 -#define AUTO_INCREMENT_FLAG 512 -#define TIMESTAMP_FLAG 1024 -#define SET_FLAG 2048 -#define NO_DEFAULT_VALUE_FLAG 4096 -#define ON_UPDATE_NOW_FLAG 8192 -#define PART_KEY_FLAG 16384 -#define GROUP_FLAG 32768 -#define NUM_FLAG 32768 - -#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) -#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) -#define IS_BLOB(n) ((n) & BLOB_FLAG) -#define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) == FIELD_TYPE_NEWDECIMAL) - - -/* see mysqlnd_charset.c for more information */ -#define MYSQLND_BINARY_CHARSET_NR 63 - - -/* - /-----> CONN_CLOSE <---------------\ - | ^ \ - | | \ - CONN_READY -> CONN_QUERY_SENT -> CONN_FETCHING_DATA - ^ | - \-------------------------------------/ -*/ -typedef enum mysqlnd_connection_state -{ - CONN_ALLOCED = 0, - CONN_READY = 1, - CONN_QUERY_SENT = 2, - CONN_SENDING_LOAD_DATA = 3, - CONN_FETCHING_DATA = 4, - CONN_NEXT_RESULT_PENDING = 5, - CONN_QUIT_SENT = 6 /* object is "destroyed" at this stage */ -} enum_mysqlnd_connection_state; - - -typedef enum mysqlnd_stmt_state -{ - MYSQLND_STMT_INITTED = 0, - MYSQLND_STMT_PREPARED = 1, - MYSQLND_STMT_EXECUTED = 2, - MYSQLND_STMT_WAITING_USE_OR_STORE = 3, - MYSQLND_STMT_USE_OR_STORE_CALLED = 4, - MYSQLND_STMT_USER_FETCHING = 5/* fetch_row_buff or fetch_row_unbuf */ -} enum_mysqlnd_stmt_state; - - -typedef enum param_bind_flags -{ - MYSQLND_PARAM_BIND_BLOB_USED = 1 -} enum_param_bind_flags; - - -/* PS */ -enum mysqlnd_stmt_attr -{ - STMT_ATTR_UPDATE_MAX_LENGTH, - STMT_ATTR_CURSOR_TYPE, - STMT_ATTR_PREFETCH_ROWS -}; - -enum myslqnd_cursor_type -{ - CURSOR_TYPE_NO_CURSOR= 0, - CURSOR_TYPE_READ_ONLY= 1, - CURSOR_TYPE_FOR_UPDATE= 2, - CURSOR_TYPE_SCROLLABLE= 4 -}; - -typedef enum mysqlnd_connection_close_type -{ - MYSQLND_CLOSE_EXPLICIT = 0, - MYSQLND_CLOSE_IMPLICIT, - MYSQLND_CLOSE_DISCONNECTED, - MYSQLND_CLOSE_LAST /* for checking, should always be last */ -} enum_connection_close_type; - - -typedef enum mysqlnd_collected_stats -{ - STAT_BYTES_SENT, - STAT_BYTES_RECEIVED, - STAT_PACKETS_SENT, - STAT_PACKETS_RECEIVED, - STAT_PROTOCOL_OVERHEAD_IN, - STAT_PROTOCOL_OVERHEAD_OUT, - STAT_BYTES_RECEIVED_OK, - STAT_BYTES_RECEIVED_EOF, - STAT_BYTES_RECEIVED_RSET_HEADER, - STAT_BYTES_RECEIVED_RSET_FIELD_META, - STAT_BYTES_RECEIVED_RSET_ROW, - STAT_BYTES_RECEIVED_PREPARE_RESPONSE, - STAT_BYTES_RECEIVED_CHANGE_USER, - STAT_PACKETS_SENT_CMD, - STAT_PACKETS_RECEIVED_OK, - STAT_PACKETS_RECEIVED_EOF, - STAT_PACKETS_RECEIVED_RSET_HEADER, - STAT_PACKETS_RECEIVED_RSET_FIELD_META, - STAT_PACKETS_RECEIVED_RSET_ROW, - STAT_PACKETS_RECEIVED_PREPARE_RESPONSE, - STAT_PACKETS_RECEIVED_CHANGE_USER, - STAT_RSET_QUERY, - STAT_NON_RSET_QUERY, - STAT_NO_INDEX_USED, - STAT_BAD_INDEX_USED, - STAT_QUERY_WAS_SLOW, - STAT_BUFFERED_SETS, - STAT_UNBUFFERED_SETS, - STAT_PS_BUFFERED_SETS, - STAT_PS_UNBUFFERED_SETS, - STAT_FLUSHED_NORMAL_SETS, - STAT_FLUSHED_PS_SETS, - STAT_PS_PREPARED_NEVER_EXECUTED, - STAT_PS_PREPARED_ONCE_USED, - STAT_ROWS_FETCHED_FROM_SERVER_NORMAL, - STAT_ROWS_FETCHED_FROM_SERVER_PS, - STAT_ROWS_BUFFERED_FROM_CLIENT_NORMAL, - STAT_ROWS_BUFFERED_FROM_CLIENT_PS, - STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF, - STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_UNBUF, - STAT_ROWS_FETCHED_FROM_CLIENT_PS_BUF, - STAT_ROWS_FETCHED_FROM_CLIENT_PS_UNBUF, - STAT_ROWS_FETCHED_FROM_CLIENT_PS_CURSOR, - STAT_ROWS_AFFECTED_NORMAL, - STAT_ROWS_AFFECTED_PS, - STAT_ROWS_SKIPPED_NORMAL, - STAT_ROWS_SKIPPED_PS, - STAT_COPY_ON_WRITE_SAVED, - STAT_COPY_ON_WRITE_PERFORMED, - STAT_CMD_BUFFER_TOO_SMALL, - STAT_CONNECT_SUCCESS, - STAT_CONNECT_FAILURE, - STAT_CONNECT_REUSED, - STAT_RECONNECT, - STAT_PCONNECT_SUCCESS, - STAT_OPENED_CONNECTIONS, - STAT_OPENED_PERSISTENT_CONNECTIONS, - STAT_CLOSE_EXPLICIT, - STAT_CLOSE_IMPLICIT, - STAT_CLOSE_DISCONNECT, - STAT_CLOSE_IN_MIDDLE, - STAT_FREE_RESULT_EXPLICIT, - STAT_FREE_RESULT_IMPLICIT, - STAT_STMT_CLOSE_EXPLICIT, - STAT_STMT_CLOSE_IMPLICIT, - STAT_MEM_EMALLOC_COUNT, - STAT_MEM_EMALLOC_AMOUNT, - STAT_MEM_ECALLOC_COUNT, - STAT_MEM_ECALLOC_AMOUNT, - STAT_MEM_EREALLOC_COUNT, - STAT_MEM_EREALLOC_AMOUNT, - STAT_MEM_EFREE_COUNT, - STAT_MEM_EFREE_AMOUNT, - STAT_MEM_MALLOC_COUNT, - STAT_MEM_MALLOC_AMOUNT, - STAT_MEM_CALLOC_COUNT, - STAT_MEM_CALLOC_AMOUNT, - STAT_MEM_REALLOC_COUNT, - STAT_MEM_REALLOC_AMOUNT, - STAT_MEM_FREE_COUNT, - STAT_MEM_FREE_AMOUNT, - STAT_MEM_ESTRNDUP_COUNT, - STAT_MEM_STRNDUP_COUNT, - STAT_MEM_ESTRDUP_COUNT, - STAT_MEM_STRDUP_COUNT, - STAT_MEM_EDUP_COUNT, - STAT_MEM_DUP_COUNT, - STAT_TEXT_TYPE_FETCHED_NULL, - STAT_TEXT_TYPE_FETCHED_BIT, - STAT_TEXT_TYPE_FETCHED_INT8, - STAT_TEXT_TYPE_FETCHED_INT16, - STAT_TEXT_TYPE_FETCHED_INT24, - STAT_TEXT_TYPE_FETCHED_INT32, - STAT_TEXT_TYPE_FETCHED_INT64, - STAT_TEXT_TYPE_FETCHED_DECIMAL, - STAT_TEXT_TYPE_FETCHED_FLOAT, - STAT_TEXT_TYPE_FETCHED_DOUBLE, - STAT_TEXT_TYPE_FETCHED_DATE, - STAT_TEXT_TYPE_FETCHED_YEAR, - STAT_TEXT_TYPE_FETCHED_TIME, - STAT_TEXT_TYPE_FETCHED_DATETIME, - STAT_TEXT_TYPE_FETCHED_TIMESTAMP, - STAT_TEXT_TYPE_FETCHED_STRING, - STAT_TEXT_TYPE_FETCHED_JSON, - STAT_TEXT_TYPE_FETCHED_BLOB, - STAT_TEXT_TYPE_FETCHED_ENUM, - STAT_TEXT_TYPE_FETCHED_SET, - STAT_TEXT_TYPE_FETCHED_GEOMETRY, - STAT_TEXT_TYPE_FETCHED_OTHER, - STAT_BINARY_TYPE_FETCHED_NULL, - STAT_BINARY_TYPE_FETCHED_BIT, - STAT_BINARY_TYPE_FETCHED_INT8, - STAT_BINARY_TYPE_FETCHED_INT16, - STAT_BINARY_TYPE_FETCHED_INT24, - STAT_BINARY_TYPE_FETCHED_INT32, - STAT_BINARY_TYPE_FETCHED_INT64, - STAT_BINARY_TYPE_FETCHED_DECIMAL, - STAT_BINARY_TYPE_FETCHED_FLOAT, - STAT_BINARY_TYPE_FETCHED_DOUBLE, - STAT_BINARY_TYPE_FETCHED_DATE, - STAT_BINARY_TYPE_FETCHED_YEAR, - STAT_BINARY_TYPE_FETCHED_TIME, - STAT_BINARY_TYPE_FETCHED_DATETIME, - STAT_BINARY_TYPE_FETCHED_TIMESTAMP, - STAT_BINARY_TYPE_FETCHED_STRING, - STAT_BINARY_TYPE_FETCHED_BLOB, - STAT_BINARY_TYPE_FETCHED_ENUM, - STAT_BINARY_TYPE_FETCHED_SET, - STAT_BINARY_TYPE_FETCHED_GEOMETRY, - STAT_BINARY_TYPE_FETCHED_OTHER, - STAT_INIT_COMMAND_EXECUTED_COUNT, - STAT_INIT_COMMAND_FAILED_COUNT, - STAT_COM_QUIT, - STAT_COM_INIT_DB, - STAT_COM_QUERY, - STAT_COM_FIELD_LIST, - STAT_COM_CREATE_DB, - STAT_COM_DROP_DB, - STAT_COM_REFRESH, - STAT_COM_SHUTDOWN, - STAT_COM_STATISTICS, - STAT_COM_PROCESS_INFO, - STAT_COM_CONNECT, - STAT_COM_PROCESS_KILL, - STAT_COM_DEBUG, - STAT_COM_PING, - STAT_COM_TIME, - STAT_COM_DELAYED_INSERT, - STAT_COM_CHANGE_USER, - STAT_COM_BINLOG_DUMP, - STAT_COM_TABLE_DUMP, - STAT_COM_CONNECT_OUT, - STAT_COM_REGISTER_SLAVE, - STAT_COM_STMT_PREPARE, - STAT_COM_STMT_EXECUTE, - STAT_COM_STMT_SEND_LONG_DATA, - STAT_COM_STMT_CLOSE, - STAT_COM_STMT_RESET, - STAT_COM_SET_OPTION, - STAT_COM_STMT_FETCH, - STAT_COM_DAEMON, - STAT_BYTES_RECEIVED_PURE_DATA_TEXT, - STAT_BYTES_RECEIVED_PURE_DATA_PS, - STAT_LAST /* Should be always the last */ -} enum_mysqlnd_collected_stats; - - -/* Enums */ -enum mysqlnd_packet_type -{ - PROT_GREET_PACKET= 0, - PROT_AUTH_PACKET, - PROT_AUTH_RESP_PACKET, - PROT_CHANGE_AUTH_RESP_PACKET, - PROT_OK_PACKET, - PROT_EOF_PACKET, - PROT_CMD_PACKET, - PROT_RSET_HEADER_PACKET, - PROT_RSET_FLD_PACKET, - PROT_ROW_PACKET, - PROT_STATS_PACKET, - PROT_PREPARE_RESP_PACKET, - PROT_CHG_USER_RESP_PACKET, - PROT_SHA256_PK_REQUEST_PACKET, - PROT_SHA256_PK_REQUEST_RESPONSE_PACKET, - PROT_CACHED_SHA2_RESULT_PACKET, - PROT_LAST /* should always be last */ -}; - - -/* - After adding new elements please update - `mysqlnd_command_to_text` in mysqlnd_wireprotocol.c -*/ -enum php_mysqlnd_server_command -{ - COM_SLEEP = 0, - COM_QUIT, - COM_INIT_DB, - COM_QUERY, - COM_FIELD_LIST, - COM_CREATE_DB, - COM_DROP_DB, - COM_REFRESH, - COM_SHUTDOWN, - COM_STATISTICS, - COM_PROCESS_INFO, - COM_CONNECT, - COM_PROCESS_KILL, - COM_DEBUG, - COM_PING, - COM_TIME = 15, - COM_DELAYED_INSERT, - COM_CHANGE_USER, - COM_BINLOG_DUMP, - COM_TABLE_DUMP, - COM_CONNECT_OUT = 20, - COM_REGISTER_SLAVE, - COM_STMT_PREPARE = 22, - COM_STMT_EXECUTE = 23, - COM_STMT_SEND_LONG_DATA = 24, - COM_STMT_CLOSE = 25, - COM_STMT_RESET = 26, - COM_SET_OPTION = 27, - COM_STMT_FETCH = 28, - COM_DAEMON = 29, - COM_BINLOG_DUMP_GTID = 30, - COM_RESET_CONNECTION = 31, - COM_STMT_EXECUTE_BATCH = 32, - COM_END, - /* Here follow own, non-protocol, commands */ - COM_REAP_RESULT=240, /* own command */ - COM_ENABLE_SSL, /* own command */ - COM_HANDSHAKE, /* own command */ -}; - - -#define MYSQLND_DEFAULT_PREFETCH_ROWS (zend_ulong) 1 - -#define MYSQLND_REFRESH_GRANT 1 /* Refresh grant tables */ -#define MYSQLND_REFRESH_LOG 2 /* Start on new log file */ -#define MYSQLND_REFRESH_TABLES 4 /* close all tables */ -#define MYSQLND_REFRESH_HOSTS 8 /* Flush host cache */ -#define MYSQLND_REFRESH_STATUS 16 /* Flush status variables */ -#define MYSQLND_REFRESH_THREADS 32 /* Flush thread cache */ -#define MYSQLND_REFRESH_SLAVE 64 /* Reset master info and restart slave */ -#define MYSQLND_REFRESH_MASTER 128 /* Remove all bin logs in the index */ -#define MYSQLND_REFRESH_BACKUP_LOG 0x200000L - - -#define MYSQLND_STORE_PS 1 -#define MYSQLND_STORE_NO_COPY 2 -#define MYSQLND_STORE_COPY 4 - -enum mysqlnd_buffered_type -{ - MYSQLND_BUFFERED_TYPE_ZVAL = 1, - MYSQLND_BUFFERED_TYPE_C -}; - - -#define MYSQLND_CLIENT_NO_FLAG 0 -#define MYSQLND_CLIENT_KNOWS_RSET_COPY_DATA 1 - -#endif /* MYSQLND_ENUM_N_DEF_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_ext_plugin.h b/include/php/ext/mysqlnd/mysqlnd_ext_plugin.h deleted file mode 100644 index 1d4d963..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_ext_plugin.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Johannes Schlüter | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_EXT_PLUGIN_H -#define MYSQLND_EXT_PLUGIN_H - -struct st_mysqlnd_plugin__plugin_area_getters -{ - void ** (*get_connection_area)(const MYSQLND * conn, const unsigned int plugin_id); - void ** (*get_connection_data_area)(const MYSQLND_CONN_DATA * conn, const unsigned int plugin_id); - void ** (*get_result_area)(const MYSQLND_RES * result, const unsigned int plugin_id); - void ** (*get_unbuffered_area)(const MYSQLND_RES_UNBUFFERED * result, const unsigned int plugin_id); - void ** (*get_result_buffered_area)(const MYSQLND_RES_BUFFERED_ZVAL * result, const unsigned int plugin_id); - void ** (*get_result_buffered_aread_c)(const MYSQLND_RES_BUFFERED_C * result, const unsigned int plugin_id); - void ** (*get_stmt_area)(const MYSQLND_STMT * stmt, const unsigned int plugin_id); - void ** (*get_protocol_decoder_area)(const MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * factory, const unsigned int plugin_id); - void ** (*get_pfc_area)(const MYSQLND_PFC * pfc, const unsigned int plugin_id); - void ** (*get_vio_area)(const MYSQLND_VIO * vio, const unsigned int plugin_id); -}; - -PHPAPI extern struct st_mysqlnd_plugin__plugin_area_getters mysqlnd_plugin_area_getters; - -#define mysqlnd_plugin_get_plugin_connection_data(c, p_id) mysqlnd_plugin_area_getters.get_connection_area((c), (p_id)) -#define mysqlnd_plugin_get_plugin_connection_data_data(c, p_id) mysqlnd_plugin_area_getters.get_connection_data_area((c), (p_id)) -#define mysqlnd_plugin_get_plugin_result_data(res, p_id) mysqlnd_plugin_area_getters.get_result_area((res), (p_id)) -#define mysqlnd_plugin_get_plugin_result_unbuffered_data(res, p_id) mysqlnd_plugin_area_getters.get_unbuffered_area((res), (p_id)) -#define mysqlnd_plugin_get_plugin_result_buffered_data_zval(res, p_id) mysqlnd_plugin_area_getters.get_result_buffered_area((res), (p_id)) -#define mysqlnd_plugin_get_plugin_result_buffered_data_c(res, p_id) mysqlnd_plugin_area_getters.get_result_buffered_aread_c((res), (p_id)) -#define mysqlnd_plugin_get_plugin_stmt_data(stmt, p_id) mysqlnd_plugin_area_getters.get_stmt_area((stmt), (p_id)) -#define mysqlnd_plugin_get_plugin_protocol_data(proto, p_id) mysqlnd_plugin_area_getters.get_protocol_decoder_area((proto), (p_id)) -#define mysqlnd_plugin_get_plugin_pfc_data(pfc, p_id) mysqlnd_plugin_area_getters.get_pfc_area((pfc), (p_id)) -#define mysqlnd_plugin_get_plugin_vio_data(vio, p_id) mysqlnd_plugin_area_getters.get_pfc_area((vio), (p_id)) - - -struct st_mysqlnd_plugin_methods_xetters -{ - struct st_mnd_object_factory_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *methods); - } object_factory; - - struct st_mnd_connection_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn) *methods); - } connection; - - struct st_mnd_connection_data_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data) *methods); - } connection_data; - - struct st_mnd_result_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) *methods); - } result; - - struct st_mnd_unbuffered_result_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_unbuffered) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_unbuffered) *methods); - } unbuffered_result; - - struct st_mnd_buffered_result_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_buffered)* (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_buffered) *methods); - } buffered_result; - - struct st_mnd_stmt_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_stmt) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_stmt) * methods); - } statement; - - struct st_mnd_protocol_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_payload_decoder_factory)* (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_payload_decoder_factory) *methods); - } protocol; - - struct st_mnd_pfc_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_packet_frame_codec) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_packet_frame_codec) * methods); - } pfc; - - struct st_mnd_vio_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_vio) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_vio) * methods); - } vio; - - struct st_mnd_error_info_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_error_info) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_error_info) * methods); - } error_info; - - struct st_mnd_command_xetters - { - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_command) * (*get)(); - void (*set)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_command) * methods); - } command; -}; - -PHPAPI extern struct st_mysqlnd_plugin_methods_xetters mysqlnd_plugin_methods_xetters; - - -#define mysqlnd_object_factory_get_methods() mysqlnd_plugin_methods_xetters.object_factory.get() -#define mysqlnd_object_factory_set_methods(m) mysqlnd_plugin_methods_xetters.object_factory.set((m)) - -#define mysqlnd_conn_get_methods() mysqlnd_plugin_methods_xetters.connection.get() -#define mysqlnd_conn_set_methods(m) mysqlnd_plugin_methods_xetters.connection.set((m)) - -#define mysqlnd_conn_data_get_methods() mysqlnd_plugin_methods_xetters.connection_data.get() -#define mysqlnd_conn_data_set_methods(m) mysqlnd_plugin_methods_xetters.connection_data.set((m)) - -#define mysqlnd_result_get_methods() mysqlnd_plugin_methods_xetters.result.get() -#define mysqlnd_result_set_methods(m) mysqlnd_plugin_methods_xetters.result.set((m)) - -#define mysqlnd_result_unbuffered_get_methods() mysqlnd_plugin_methods_xetters.unbuffered_result.get() -#define mysqlnd_result_unbuffered_set_methods(m) mysqlnd_plugin_methods_xetters.unbuffered_result.set((m)) - -#define mysqlnd_result_buffered_get_methods() mysqlnd_plugin_methods_xetters.buffered_result.get() -#define mysqlnd_result_buffered_set_methods(m) mysqlnd_plugin_methods_xetters.buffered_result.set((m)) - -#define mysqlnd_stmt_get_methods() mysqlnd_plugin_methods_xetters.statement.get() -#define mysqlnd_stmt_set_methods(m) mysqlnd_plugin_methods_xetters.statement.set((m)) - -#define mysqlnd_protocol_get_methods() mysqlnd_plugin_methods_xetters.protocol.get() -#define mysqlnd_protocol_set_methods(m) mysqlnd_plugin_methods_xetters.protocol.set((m)) - -#define mysqlnd_pfc_get_methods() mysqlnd_plugin_methods_xetters.pfc.get() -#define mysqlnd_pfc_set_methods(m) mysqlnd_plugin_methods_xetters.pfc.set((m)) - -#define mysqlnd_vio_get_methods() mysqlnd_plugin_methods_xetters.vio.get() -#define mysqlnd_vio_set_methods(m) mysqlnd_plugin_methods_xetters.vio.set((m)) - -#define mysqlnd_command_get_methods() mysqlnd_plugin_methods_xetters.command.get() -#define mysqlnd_command_set_methods(m) mysqlnd_plugin_methods_xetters.command.set((m)) - -#define mysqlnd_error_info_get_methods() mysqlnd_plugin_methods_xetters.error_info.get() -#define mysqlnd_error_info_set_methods(m) mysqlnd_plugin_methods_xetters.error_info.set((m)) - -#endif /* MYSQLND_EXT_PLUGIN_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h b/include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h deleted file mode 100644 index e737537..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_libmysql_compat.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - | Georg Richter | - +----------------------------------------------------------------------+ -*/ -#ifndef MYSQLND_LIBMYSQL_COMPAT_H -#define MYSQLND_LIBMYSQL_COMPAT_H - -/* Global types and definitions*/ -#define MYSQL_NO_DATA MYSQLND_NO_DATA -#define MYSQL_DATA_TRUNCATED MYSQLND_DATA_TRUNCATED -#define MYSQL_STMT MYSQLND_STMT -#define MYSQL_FIELD MYSQLND_FIELD -#define MYSQL_RES MYSQLND_RES -#define MYSQL_ROW MYSQLND_ROW_C -#define MYSQL MYSQLND -#define my_bool zend_bool -#define my_ulonglong uint64_t - -#define MYSQL_VERSION_ID MYSQLND_VERSION_ID -#define MYSQL_SERVER_VERSION PHP_MYSQLND_VERSION -#define MYSQL_ERRMSG_SIZE MYSQLND_ERRMSG_SIZE -#define SQLSTATE_LENGTH MYSQLND_SQLSTATE_LENGTH - -/* functions */ -#define mysql_affected_rows(r) mysqlnd_affected_rows((r)) -#define mysql_autocommit(r,m) mysqlnd_autocommit((r),(m)) -#define mysql_change_user(r,a,b,c) mysqlnd_change_user((r), (a), (b), (c), FALSE) -#define mysql_character_set_name(c) mysqlnd_character_set_name((c)) -#define mysql_close(r) mysqlnd_close((r), MYSQLND_CLOSE_EXPLICIT) -#define mysql_commit(r) mysqlnd_commit((r), TRANS_COR_NO_OPT, NULL) -#define mysql_data_seek(r,o) mysqlnd_data_seek((r),(o)) -#define mysql_debug(x) mysqlnd_debug((x)) -#define mysql_dump_debug_info(r) mysqlnd_dump_debug_info((r)) -#define mysql_errno(r) mysqlnd_errno((r)) -#define mysql_error(r) mysqlnd_error((r)) -#define mysql_escape_string(a,b,c) mysqlnd_escape_string((a), (b), (c)) -#define mysql_fetch_field(r) mysqlnd_fetch_field((r)) -#define mysql_fetch_field_direct(r,o) mysqlnd_fetch_field_direct((r), (o)) -#define mysql_fetch_fields(r) mysqlnd_fetch_fields((r)) -#define mysql_fetch_lengths(r) mysqlnd_fetch_lengths((r)) -#define mysql_fetch_row(r) mysqlnd_fetch_row_c((r)) -#define mysql_field_count(r) mysqlnd_field_count((r)) -#define mysql_field_seek(r,o) mysqlnd_field_seek((r), (o)) -#define mysql_field_tell(r) mysqlnd_field_tell((r)) -#define mysql_init(a) mysqlnd_connection_init((a), false) -#define mysql_insert_id(r) mysqlnd_insert_id((r)) -#define mysql_kill(r,n) mysqlnd_kill((r), (n)) -#define mysql_list_dbs(c, wild) mysqlnd_list_dbs((c), (wild)) -#define mysql_list_processes(c) mysqlnd_list_processes((c)) -#define mysql_list_tables(c, wild) mysqlnd_list_tables((c), (wild)) -#define mysql_more_results(r) mysqlnd_more_results((r)) -#define mysql_next_result(r) mysqlnd_next_result((r)) -#define mysql_num_fields(r) mysqlnd_num_fields((r)) -#define mysql_num_rows(r) mysqlnd_num_rows((r)) -#define mysql_ping(r) mysqlnd_ping((r)) -#define mysql_real_escape_string(r,a,b,c) mysqlnd_real_escape_string((r), (a), (b), (c)) -#define mysql_real_query(r,a,b) mysqlnd_query((r), (a), (b)) -#define mysql_refresh(conn, options) mysqlnd_refresh((conn), (options)) -#define mysql_rollback(r) mysqlnd_rollback((r), TRANS_COR_NO_OPT, NULL) -#define mysql_select_db(r,a) mysqlnd_select_db((r), (a) ,strlen((a))) -#define mysql_set_server_option(r,o) mysqlnd_set_server_option((r), (o)) -#define mysql_set_character_set(r,a) mysqlnd_set_character_set((r), (a)) -#define mysql_sqlstate(r) mysqlnd_sqlstate((r)) -#define mysql_ssl_set(c,key,cert,ca,capath,cipher) mysqlnd_ssl_set((c), (key), (cert), (ca), (capath), (cipher)) -#define mysql_stmt_affected_rows(s) mysqlnd_stmt_affected_rows((s)) -#define mysql_stmt_field_count(s) mysqlnd_stmt_field_count((s)) -#define mysql_stmt_param_count(s) mysqlnd_stmt_param_count((s)) -#define mysql_stmt_num_rows(s) mysqlnd_stmt_num_rows((s)) -#define mysql_stmt_insert_id(s) mysqlnd_stmt_insert_id((s)) -#define mysql_stmt_close(s) mysqlnd_stmt_close((s), 0) -#define mysql_stmt_bind_param(s,b) mysqlnd_stmt_bind_param((s), (b)) -#define mysql_stmt_bind_result(s,b) mysqlnd_stmt_bind_result((s), (b)) -#define mysql_stmt_errno(s) mysqlnd_stmt_errno((s)) -#define mysql_stmt_error(s) mysqlnd_stmt_error((s)) -#define mysql_stmt_sqlstate(s) mysqlnd_stmt_sqlstate((s)) -#define mysql_stmt_prepare(s,q,l) mysqlnd_stmt_prepare((s), (q), (l)) -#define mysql_stmt_execute(s) mysqlnd_stmt_execute((s)) -#define mysql_stmt_reset(s) mysqlnd_stmt_reset((s)) -#define mysql_stmt_store_result(s) mysqlnd_stmt_store_result((s)) -#define mysql_stmt_free_result(s) mysqlnd_stmt_free_result((s)) -#define mysql_stmt_data_seek(s,r) mysqlnd_stmt_data_seek((s), (r)) -#define mysql_stmt_send_long_data(s,p,d,l) mysqlnd_stmt_send_long_data((s), (p), (d), (l)) -#define mysql_stmt_attr_get(s,a,v) mysqlnd_stmt_attr_get((s), (a), (v)) -#define mysql_stmt_attr_set(s,a,v) mysqlnd_stmt_attr_set((s), (a), (v)) -#define mysql_stmt_param_metadata(s) mysqlnd_stmt_param_metadata((s)) -#define mysql_stmt_result_metadata(s) mysqlnd_stmt_result_metadata((s)) -#define mysql_stmt_next_result(s) mysqlnd_stmt_next_result((s)) -#define mysql_stmt_more_results(s) mysqlnd_stmt_more_results((s)) -#define mysql_thread_safe() mysqlnd_thread_safe() -#define mysql_info(r) mysqlnd_info((r)) -#define mysql_options(c,a,v) mysqlnd_options((c), (a), (v)) -#define mysql_options4(c,a,k,v) mysqlnd_options4((c), (a), (k), (v)) -#define mysql_stmt_init(r) mysqlnd_stmt_init((r)) -#define mysql_free_result(r) mysqlnd_free_result((r), FALSE) -#define mysql_store_result(r) mysqlnd_store_result((r)) -#define mysql_use_result(r) mysqlnd_use_result((r)) -#define mysql_async_store_result(r) mysqlnd_async_store_result((r)) -#define mysql_thread_id(r) mysqlnd_thread_id((r)) -#define mysql_get_client_info() mysqlnd_get_client_info() -#define mysql_get_client_version() mysqlnd_get_client_version() -#define mysql_get_host_info(r) mysqlnd_get_host_info((r)) -#define mysql_get_proto_info(r) mysqlnd_get_proto_info((r)) -#define mysql_get_server_info(r) mysqlnd_get_server_info((r)) -#define mysql_get_server_version(r) mysqlnd_get_server_version((r)) -#define mysql_warning_count(r) mysqlnd_warning_count((r)) -#define mysql_eof(r) (((r)->unbuf && (r)->unbuf->eof_reached) || (r)->stored_data) - -#define REFRESH_GRANT MYSQLND_REFRESH_GRANT -#define REFRESH_LOG MYSQLND_REFRESH_LOG -#define REFRESH_TABLES MYSQLND_REFRESH_TABLES -#define REFRESH_HOSTS MYSQLND_REFRESH_HOSTS -#define REFRESH_STATUS MYSQLND_REFRESH_STATUS -#define REFRESH_THREADS MYSQLND_REFRESH_THREADS -#define REFRESH_SLAVE MYSQLND_REFRESH_SLAVE -#define REFRESH_MASTER MYSQLND_REFRESH_MASTER -#define REFRESH_BACKUP_LOG MYSQLND_REFRESH_BACKUP_LOG - -#endif /* MYSQLND_LIBMYSQL_COMPAT_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_plugin.h b/include/php/ext/mysqlnd/mysqlnd_plugin.h deleted file mode 100644 index 863bb5a..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_plugin.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_PLUGIN_H -#define MYSQLND_PLUGIN_H - - -void mysqlnd_plugin_subsystem_init(void); -void mysqlnd_plugin_subsystem_end(void); - -void mysqlnd_register_builtin_authentication_plugins(void); - -void mysqlnd_example_plugin_register(void); - -#endif /* MYSQLND_PLUGIN_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_portability.h b/include/php/ext/mysqlnd/mysqlnd_portability.h deleted file mode 100644 index 2064906..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_portability.h +++ /dev/null @@ -1,326 +0,0 @@ -/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB -This file is public domain and comes with NO WARRANTY of any kind */ - -/* - Parts of the original, which are not applicable to mysqlnd have been removed. - - With small modifications, mostly casting but adding few more macros by - Andrey Hristov . The additions are in the public domain and - were added to improve the header file, to get it more consistent. -*/ - -#ifndef MYSQLND_PORTABILITY_H -#define MYSQLND_PORTABILITY_H - - - -/* Comes from global.h as OFFSET, renamed to STRUCT_OFFSET */ -#define STRUCT_OFFSET(t, f) XtOffsetOf(t, f) - -#ifndef __attribute -#if !defined(__GNUC__) -#define __attribute(A) -#endif -#endif - -#ifdef __CYGWIN__ -/* We use a Unix API, so pretend it's not Windows */ -#undef WIN -#undef WIN32 -#undef _WIN -#undef _WIN32 -#undef _WIN64 -#undef __WIN__ -#undef __WIN32__ -#endif /* __CYGWIN__ */ - -#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32) -# include "ext/mysqlnd/config-win.h" -#endif /* _WIN32... */ - -#if __STDC_VERSION__ < 199901L && !defined(atoll) - /* "inline" is a keyword */ - #define atoll atol -#endif - -#include "php_stdint.h" - -#if SIZEOF_LONG_LONG > 4 && !defined(_LONG_LONG) -#define _LONG_LONG 1 /* For AIX string library */ -#endif - -/* Go around some bugs in different OS and compilers */ - -#if SIZEOF_LONG_LONG > 4 -#define HAVE_LONG_LONG 1 -#endif - -#ifdef PHP_WIN32 -#define MYSQLND_SZ_T_SPEC "%Id" -#ifndef L64 -#define L64(x) x##i64 -#endif -#else - -#define MYSQLND_SZ_T_SPEC "%zd" -#ifndef L64 -#define L64(x) x##LL -#endif -#endif - - -#define int1store(T,A) do { *((int8_t*) (T)) = (A); } while(0) -#define uint1korr(A) (*(((uint8_t*)(A)))) - -/* Bit values are sent in reverted order of bytes, compared to normal !!! */ -#define bit_uint2korr(A) ((uint16_t) (((uint16_t) (((unsigned char*) (A))[1])) +\ - ((uint16_t) (((unsigned char*) (A))[0]) << 8))) -#define bit_uint3korr(A) ((uint32_t) (((uint32_t) (((unsigned char*) (A))[2])) +\ - (((uint32_t) (((unsigned char*) (A))[1])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[0])) << 16))) -#define bit_uint4korr(A) ((uint32_t) (((uint32_t) (((unsigned char*) (A))[3])) +\ - (((uint32_t) (((unsigned char*) (A))[2])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[1])) << 16) +\ - (((uint32_t) (((unsigned char*) (A))[0])) << 24))) -#define bit_uint5korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[4])) +\ - (((uint32_t) (((unsigned char*) (A))[3])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[2])) << 16) +\ - (((uint32_t) (((unsigned char*) (A))[1])) << 24)) +\ - (((uint64_t) (((unsigned char*) (A))[0])) << 32)) -#define bit_uint6korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[5])) +\ - (((uint32_t) (((unsigned char*) (A))[4])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[3])) << 16) +\ - (((uint32_t) (((unsigned char*) (A))[2])) << 24)) +\ - (((uint64_t) (((uint32_t) (((unsigned char*) (A))[1])) +\ - (((uint32_t) (((unsigned char*) (A))[0]) << 8)))) <<\ - 32)) -#define bit_uint7korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[6])) +\ - (((uint32_t) (((unsigned char*) (A))[5])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[4])) << 16) +\ - (((uint32_t) (((unsigned char*) (A))[3])) << 24)) +\ - (((uint64_t) (((uint32_t) (((unsigned char*) (A))[2])) +\ - (((uint32_t) (((unsigned char*) (A))[1])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[0])) << 16))) <<\ - 32)) -#define bit_uint8korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[7])) +\ - (((uint32_t) (((unsigned char*) (A))[6])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[5])) << 16) +\ - (((uint32_t) (((unsigned char*) (A))[4])) << 24)) +\ - (((uint64_t) (((uint32_t) (((unsigned char*) (A))[3])) +\ - (((uint32_t) (((unsigned char*) (A))[2])) << 8) +\ - (((uint32_t) (((unsigned char*) (A))[1])) << 16) +\ - (((uint32_t) (((unsigned char*) (A))[0])) << 24))) <<\ - 32)) - - -/* -** Define-funktions for reading and storing in machine independent format -** (low byte first) -*/ - -/* Optimized store functions for Intel x86, non-valid for WIN64. __i386__ is GCC */ -#if defined(__i386__) && !defined(_WIN64) -#define sint2korr(A) (*((int16_t *) (A))) -#define sint3korr(A) ((int32_t) ((((zend_uchar) (A)[2]) & 128) ? \ - (((uint32_t) 255L << 24) | \ - (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ - (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ - ((uint32_t) (zend_uchar) (A)[0])) : \ - (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ - (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ - ((uint32_t) (zend_uchar) (A)[0]))) -#define sint4korr(A) (*((zend_long *) (A))) - -#define uint2korr(A) (*((uint16_t *) (A))) -#define uint3korr(A) (uint32_t) (((uint32_t) ((zend_uchar) (A)[0])) +\ - (((uint32_t) ((zend_uchar) (A)[1])) << 8) +\ - (((uint32_t) ((zend_uchar) (A)[2])) << 16)) -#define uint4korr(A) (*((zend_ulong *) (A))) - - - -#define uint8korr(A) (*((uint64_t *) (A))) -#define sint8korr(A) (*((int64_t *) (A))) -#define int2store(T,A) *((uint16_t*) (T))= (uint16_t) (A) -#define int3store(T,A) { \ - *(T)= (zend_uchar) ((A));\ - *(T+1)=(zend_uchar) (((uint32_t) (A) >> 8));\ - *(T+2)=(zend_uchar) (((A) >> 16)); } -#define int4store(T,A) *((zend_long *) (T))= (zend_long) (A) -#define int5store(T,A) { \ - *((zend_uchar *)(T))= (zend_uchar)((A));\ - *(((zend_uchar *)(T))+1)=(zend_uchar) (((A) >> 8));\ - *(((zend_uchar *)(T))+2)=(zend_uchar) (((A) >> 16));\ - *(((zend_uchar *)(T))+3)=(zend_uchar) (((A) >> 24)); \ - *(((zend_uchar *)(T))+4)=(zend_uchar) (((A) >> 32)); } - -/* From Andrey Hristov, based on int5store() */ -#define int6store(T,A) { \ - *(((zend_uchar *)(T)))= (zend_uchar)((A));\ - *(((zend_uchar *)(T))+1))=(zend_uchar) (((A) >> 8));\ - *(((zend_uchar *)(T))+2))=(zend_uchar) (((A) >> 16));\ - *(((zend_uchar *)(T))+3))=(zend_uchar) (((A) >> 24)); \ - *(((zend_uchar *)(T))+4))=(zend_uchar) (((A) >> 32)); \ - *(((zend_uchar *)(T))+5))=(zend_uchar) (((A) >> 40)); } - -#define int8store(T,A) *((uint64_t *) (T))= (uint64_t) (A) - -typedef union { - double v; - zend_long m[2]; -} float8get_union; -#define float8get(V,M) { ((float8get_union *)&(V))->m[0] = *((zend_long*) (M)); \ - ((float8get_union *)&(V))->m[1] = *(((zend_long*) (M))+1); } -#define float8store(T,V) { *((zend_long *) (T)) = ((float8get_union *)&(V))->m[0]; \ - *(((zend_long *) (T))+1) = ((float8get_union *)&(V))->m[1]; } -#define float4get(V,M) { *((float *) &(V)) = *((float*) (M)); } -/* From Andrey Hristov based on float8get */ -#define floatget(V,M) memcpy((char*) &(V),(char*) (M),sizeof(float)) -#endif /* __i386__ */ - - -/* If we haven't defined sint2korr, which is because the platform is not x86 or it's WIN64 */ -#ifndef sint2korr -#define sint2korr(A) (int16_t) (((int16_t) ((zend_uchar) (A)[0])) +\ - ((int16_t) ((int16_t) (A)[1]) << 8)) -#define sint3korr(A) ((int32_t) ((((zend_uchar) (A)[2]) & 128) ? \ - (((uint32_t) 255L << 24) | \ - (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ - (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ - ((uint32_t) (zend_uchar) (A)[0])) : \ - (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ - (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ - ((uint32_t) (zend_uchar) (A)[0]))) -#define sint4korr(A) (int32_t) (((uint32_t) ((A)[0])) +\ - (((uint32_t) ((A)[1]) << 8)) +\ - (((uint32_t) ((A)[2]) << 16)) +\ - (((uint32_t) ((A)[3]) << 24))) - -#define sint8korr(A) (int64_t) uint8korr(A) -#define uint2korr(A) (uint16_t) (((uint16_t) ((zend_uchar) (A)[0])) +\ - ((uint16_t) ((zend_uchar) (A)[1]) << 8)) -#define uint3korr(A) (uint32_t) (((uint32_t) ((zend_uchar) (A)[0])) +\ - (((uint32_t) ((zend_uchar) (A)[1])) << 8) +\ - (((uint32_t) ((zend_uchar) (A)[2])) << 16)) -#define uint4korr(A) (uint32_t) (((uint32_t) ((zend_uchar) (A)[0])) +\ - (((uint32_t) ((zend_uchar) (A)[1])) << 8) +\ - (((uint32_t) ((zend_uchar) (A)[2])) << 16) +\ - (((uint32_t) ((zend_uchar) (A)[3])) << 24)) - -#define uint8korr(A) ((uint64_t)(((uint32_t) ((zend_uchar) (A)[0])) +\ - (((uint32_t) ((zend_uchar) (A)[1])) << 8) +\ - (((uint32_t) ((zend_uchar) (A)[2])) << 16) +\ - (((uint32_t) ((zend_uchar) (A)[3])) << 24)) +\ - (((uint64_t) (((uint32_t) ((zend_uchar) (A)[4])) +\ - (((uint32_t) ((zend_uchar) (A)[5])) << 8) +\ - (((uint32_t) ((zend_uchar) (A)[6])) << 16) +\ - (((uint32_t) ((zend_uchar) (A)[7])) << 24))) << 32)) - - -#define int2store(T,A) do { uint32_t def_temp= (uint32_t) (A) ;\ - *((zend_uchar*) (T)) = (zend_uchar)(def_temp); \ - *((zend_uchar*) (T+1)) = (zend_uchar)((def_temp >> 8)); } while (0) -#define int3store(T,A) do { /*lint -save -e734 */\ - *(((char *)(T))) = (char) ((A));\ - *(((char *)(T))+1) = (char) (((A) >> 8));\ - *(((char *)(T))+2) = (char) (((A) >> 16)); \ - /*lint -restore */} while (0) -#define int4store(T,A) do { \ - *(((char *)(T))) = (char) ((A));\ - *(((char *)(T))+1) = (char) (((A) >> 8));\ - *(((char *)(T))+2) = (char) (((A) >> 16));\ - *(((char *)(T))+3) = (char) (((A) >> 24)); } while (0) -#define int5store(T,A) do { \ - *(((char *)(T))) = (char)((A));\ - *(((char *)(T))+1) = (char)(((A) >> 8));\ - *(((char *)(T))+2) = (char)(((A) >> 16));\ - *(((char *)(T))+3) = (char)(((A) >> 24)); \ - *(((char *)(T))+4) = (char)(((A) >> 32)); } while (0) -/* Based on int5store() from Andrey Hristov */ -#define int6store(T,A) do { \ - *(((char *)(T))) = (char)((A));\ - *(((char *)(T))+1) = (char)(((A) >> 8));\ - *(((char *)(T))+2) = (char)(((A) >> 16));\ - *(((char *)(T))+3) = (char)(((A) >> 24)); \ - *(((char *)(T))+4) = (char)(((A) >> 32)); \ - *(((char *)(T))+5) = (char)(((A) >> 40)); } while (0) -#define int8store(T,A) { uint32_t def_temp= (uint32_t) (A), def_temp2= (uint32_t) ((A) >> 32); \ - int4store((T),def_temp); \ - int4store((T+4),def_temp2); \ - } -#ifdef WORDS_BIGENDIAN -#define float4get(V,M) do { float def_temp;\ - ((char*) &def_temp)[0] = (M)[3];\ - ((char*) &def_temp)[1] = (M)[2];\ - ((char*) &def_temp)[2] = (M)[1];\ - ((char*) &def_temp)[3] = (M)[0];\ - (V)=def_temp; } while (0) -#define float8store(T,V) do { \ - *(((char *)(T))) = (char) ((char *) &(V))[7];\ - *(((char *)(T))+1) = (char) ((char *) &(V))[6];\ - *(((char *)(T))+2) = (char) ((char *) &(V))[5];\ - *(((char *)(T))+3) = (char) ((char *) &(V))[4];\ - *(((char *)(T))+4) = (char) ((char *) &(V))[3];\ - *(((char *)(T))+5) = (char) ((char *) &(V))[2];\ - *(((char *)(T))+6) = (char) ((char *) &(V))[1];\ - *(((char *)(T))+7) = (char) ((char *) &(V))[0]; } while (0) - -#define float8get(V,M) do { double def_temp;\ - ((char*) &def_temp)[0] = (M)[7];\ - ((char*) &def_temp)[1] = (M)[6];\ - ((char*) &def_temp)[2] = (M)[5];\ - ((char*) &def_temp)[3] = (M)[4];\ - ((char*) &def_temp)[4] = (M)[3];\ - ((char*) &def_temp)[5] = (M)[2];\ - ((char*) &def_temp)[6] = (M)[1];\ - ((char*) &def_temp)[7] = (M)[0];\ - (V) = def_temp; \ - } while (0) -#else -#define float4get(V,M) memcpy((char*) &(V),(char*) (M),sizeof(float)) - -#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) -#define float8store(T,V) do { \ - *(((char *)(T)))= ((char *) &(V))[4];\ - *(((char *)(T))+1)=(char) ((char *) &(V))[5];\ - *(((char *)(T))+2)=(char) ((char *) &(V))[6];\ - *(((char *)(T))+3)=(char) ((char *) &(V))[7];\ - *(((char *)(T))+4)=(char) ((char *) &(V))[0];\ - *(((char *)(T))+5)=(char) ((char *) &(V))[1];\ - *(((char *)(T))+6)=(char) ((char *) &(V))[2];\ - *(((char *)(T))+7)=(char) ((char *) &(V))[3];} while (0) -#define float8get(V,M) do { double def_temp;\ - ((char*) &def_temp)[0]=(M)[4];\ - ((char*) &def_temp)[1]=(M)[5];\ - ((char*) &def_temp)[2]=(M)[6];\ - ((char*) &def_temp)[3]=(M)[7];\ - ((char*) &def_temp)[4]=(M)[0];\ - ((char*) &def_temp)[5]=(M)[1];\ - ((char*) &def_temp)[6]=(M)[2];\ - ((char*) &def_temp)[7]=(M)[3];\ - (V) = def_temp; } while (0) -#endif /* __FLOAT_WORD_ORDER */ - -#endif /* WORDS_BIGENDIAN */ - -#endif /* sint2korr */ -/* To here if the platform is not x86 or it's WIN64 */ - - -/* Define-funktions for reading and storing in machine format from/to - short/long to/from some place in memory V should be a (not - register) variable, M is a pointer to byte */ - -#ifndef float8get - -#ifdef WORDS_BIGENDIAN -#define float8get(V,M) memcpy((char*) &(V),(char*) (M), sizeof(double)) -#define float8store(T,V) memcpy((char*) (T),(char*) &(V), sizeof(double)) -#else -#define float8get(V,M) memcpy((char*) &(V),(char*) (M),sizeof(double)) -#define float8store(T,V) memcpy((char*) (T),(char*) &(V),sizeof(double)) -#endif /* WORDS_BIGENDIAN */ - -#endif /* float8get */ - -#endif /* MYSQLND_PORTABILITY_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_priv.h b/include/php/ext/mysqlnd/mysqlnd_priv.h deleted file mode 100644 index eeec53c..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_priv.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_PRIV_H -#define MYSQLND_PRIV_H -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_object_factory); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_conn); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_conn_data); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_res); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_result_unbuffered); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_result_buffered); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_protocol_payload_decoder_factory); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_protocol_packet_frame_codec); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_vio); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_upsert_status); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_error_info); -PHPAPI extern MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(mysqlnd_command); - -enum_func_status mysqlnd_handle_local_infile(MYSQLND_CONN_DATA * conn, const char * const filename, zend_bool * is_warning); -#endif /* MYSQLND_PRIV_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h b/include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h deleted file mode 100644 index abd65da..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_protocol_frame_codec.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_PROTOCOL_FRAME_CODEC_H -#define MYSQLND_PROTOCOL_FRAME_CODEC_H - -PHPAPI MYSQLND_PFC * mysqlnd_pfc_init(const zend_bool persistent, MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *object_factory, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info); -PHPAPI void mysqlnd_pfc_free(MYSQLND_PFC * const pfc, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info); - -#endif /* MYSQLND_PROTOCOL_FRAME_CODEC_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_ps.h b/include/php/ext/mysqlnd/mysqlnd_ps.h deleted file mode 100644 index fbc3d51..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_ps.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_PS_H -#define MYSQLND_PS_H - -/* PS stuff */ -typedef void (*ps_field_fetch_func)(zval * zv, const MYSQLND_FIELD * const field, const unsigned int pack_len, const zend_uchar ** row); - -struct st_mysqlnd_perm_bind { - ps_field_fetch_func func; - /* should be signed int */ - int pack_len; - unsigned int php_type; - zend_bool is_possibly_blob; - zend_bool can_ret_as_str_in_uni; -}; - -extern struct st_mysqlnd_perm_bind mysqlnd_ps_fetch_functions[MYSQL_TYPE_LAST + 1]; - -enum_func_status mysqlnd_stmt_fetch_row_buffered(MYSQLND_RES * result, void * param, const unsigned int flags, zend_bool * fetched_anything); -enum_func_status mysqlnd_fetch_stmt_row_cursor(MYSQLND_RES * result, void * param, const unsigned int flags, zend_bool * fetched_anything); - -void _mysqlnd_init_ps_subsystem();/* This one is private, mysqlnd_library_init() will call it */ -void _mysqlnd_init_ps_fetch_subsystem(); - -void ps_fetch_from_1_to_8_bytes(zval * zv, const MYSQLND_FIELD * const field, const unsigned int pack_len, const zend_uchar ** row, unsigned int byte_count); - -#endif /* MYSQLND_PS_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_read_buffer.h b/include/php/ext/mysqlnd/mysqlnd_read_buffer.h deleted file mode 100644 index d033d7b..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_read_buffer.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_READ_BUFFER_H -#define MYSQLND_READ_BUFFER_H - -PHPAPI MYSQLND_READ_BUFFER * mysqlnd_create_read_buffer(const size_t count); - -#endif /* MYSQLND_READ_BUFFER_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_result.h b/include/php/ext/mysqlnd/mysqlnd_result.h deleted file mode 100644 index 9df7027..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_result.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_RESULT_H -#define MYSQLND_RESULT_H - -PHPAPI MYSQLND_RES * mysqlnd_result_init(const unsigned int field_count); -PHPAPI MYSQLND_RES_UNBUFFERED * mysqlnd_result_unbuffered_init(MYSQLND_RES * result, const unsigned int field_count, const zend_bool ps); -PHPAPI MYSQLND_RES_BUFFERED_ZVAL * mysqlnd_result_buffered_zval_init(MYSQLND_RES * result, const unsigned int field_count, const zend_bool ps); -PHPAPI MYSQLND_RES_BUFFERED_C * mysqlnd_result_buffered_c_init(MYSQLND_RES * result, const unsigned int field_count, const zend_bool ps); - -enum_func_status mysqlnd_query_read_result_set_header(MYSQLND_CONN_DATA * conn, MYSQLND_STMT * stmt); - -#endif /* MYSQLND_RESULT_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_result_meta.h b/include/php/ext/mysqlnd/mysqlnd_result_meta.h deleted file mode 100644 index f35b6c8..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_result_meta.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Johannes Schlüter | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_RESULT_META_H -#define MYSQLND_RESULT_META_H - -PHPAPI MYSQLND_RES_METADATA * mysqlnd_result_meta_init(MYSQLND_RES * result, unsigned int field_count); -PHPAPI struct st_mysqlnd_res_meta_methods * mysqlnd_result_metadata_get_methods(); -PHPAPI void ** _mysqlnd_plugin_get_plugin_result_metadata_data(const MYSQLND_RES_METADATA * meta, unsigned int plugin_id); - -#endif /* MYSQLND_RESULT_META_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_reverse_api.h b/include/php/ext/mysqlnd/mysqlnd_reverse_api.h deleted file mode 100644 index 3311086..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_reverse_api.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - | Georg Richter | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_REVERSE_API_H -#define MYSQLND_REVERSE_API_H -typedef struct st_mysqlnd_reverse_api -{ - zend_module_entry * module; - MYSQLND *(*conversion_cb)(zval * zv); -} MYSQLND_REVERSE_API; - - -PHPAPI void mysqlnd_reverse_api_init(void); -PHPAPI void mysqlnd_reverse_api_end(void); - -PHPAPI HashTable * mysqlnd_reverse_api_get_api_list(void); - -PHPAPI void mysqlnd_reverse_api_register_api(const MYSQLND_REVERSE_API * apiext); -PHPAPI MYSQLND * zval_to_mysqlnd(zval * zv, const unsigned int client_api_capabilities, unsigned int * save_client_api_capabilities); - -#endif /* MYSQLND_REVERSE_API_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_statistics.h b/include/php/ext/mysqlnd/mysqlnd_statistics.h deleted file mode 100644 index 5626fbf..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_statistics.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_STATISTICS_H -#define MYSQLND_STATISTICS_H - -#ifdef ZTS -#define MYSQLND_STATS_LOCK(stats) tsrm_mutex_lock((stats)->LOCK_access) -#define MYSQLND_STATS_UNLOCK(stats) tsrm_mutex_unlock((stats)->LOCK_access) -#else -#define MYSQLND_STATS_LOCK(stats) -#define MYSQLND_STATS_UNLOCK(stats) -#endif - -#ifndef MYSQLND_CORE_STATISTICS_TRIGGERS_DISABLED -#define MYSQLND_STAT_CALL_TRIGGER(s_array, statistic, val) \ - if ((s_array)->triggers[(statistic)] && (s_array)->in_trigger == FALSE) { \ - (s_array)->in_trigger = TRUE; \ - MYSQLND_STATS_UNLOCK((s_array)); \ - \ - (s_array)->triggers[(statistic)]((s_array), (statistic), (val)); \ - \ - MYSQLND_STATS_LOCK((s_array)); \ - (s_array)->in_trigger = FALSE; \ - } -#else -#define MYSQLND_STAT_CALL_TRIGGER(s_array, statistic, val) -#endif /* MYSQLND_CORE_STATISTICS_TRIGGERS_DISABLED */ - -#define MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(stats, statistic, value) \ - { \ - MYSQLND_STATS_LOCK(stats); \ - (stats)->values[(statistic)] += (value); \ - MYSQLND_STAT_CALL_TRIGGER((stats), (statistic), (value)); \ - MYSQLND_STATS_UNLOCK(_p_s); \ - } - -#define MYSQLND_DEC_STATISTIC(enabler, stats, statistic) \ - { \ - enum_mysqlnd_collected_stats _s = (statistic);\ - MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ - if ((enabler) && _p_s && _s != _p_s->count) { \ - MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, -1); \ - }\ - } - -#define MYSQLND_INC_STATISTIC(enabler, stats, statistic) \ - { \ - enum_mysqlnd_collected_stats _s = (statistic);\ - MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ - if ((enabler) && _p_s && _s != _p_s->count) { \ - MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, 1); \ - }\ - } - -#define MYSQLND_INC_STATISTIC_W_VALUE(enabler, stats, statistic, value) \ - { \ - enum_mysqlnd_collected_stats _s = (statistic);\ - MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ - if ((enabler) && _p_s && _s != _p_s->count) { \ - uint64_t v = (uint64_t) (value); \ - MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, v); \ - }\ - } - -#define MYSQLND_INC_STATISTIC_W_VALUE2(enabler, stats, statistic1, value1, statistic2, value2) \ - { \ - MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ - if ((enabler) && _p_s) { \ - uint64_t v1 = (uint64_t) (value1); \ - uint64_t v2 = (uint64_t) (value2); \ - enum_mysqlnd_collected_stats _s1 = (statistic1);\ - enum_mysqlnd_collected_stats _s2 = (statistic2);\ - if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \ - if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \ - }\ - } - -#define MYSQLND_INC_STATISTIC_W_VALUE3(enabler, stats, statistic1, value1, statistic2, value2, statistic3, value3) \ - { \ - MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \ - if ((enabler) && _p_s) { \ - uint64_t v1 = (uint64_t) (value1); \ - uint64_t v2 = (uint64_t) (value2); \ - uint64_t v3 = (uint64_t) (value3); \ - enum_mysqlnd_collected_stats _s1 = (statistic1);\ - enum_mysqlnd_collected_stats _s2 = (statistic2);\ - enum_mysqlnd_collected_stats _s3 = (statistic3);\ - if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \ - if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \ - if (_s3 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s3, v3); \ - }\ - } - - - -PHPAPI void mysqlnd_stats_init(MYSQLND_STATS ** stats, const size_t statistic_count, const zend_bool persistent); -PHPAPI void mysqlnd_stats_end(MYSQLND_STATS * stats, const zend_bool persistent); - -PHPAPI void mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, const MYSQLND_STRING * names, zval *return_value ZEND_FILE_LINE_DC); - -PHPAPI mysqlnd_stat_trigger mysqlnd_stats_set_trigger(MYSQLND_STATS * const stats, enum_mysqlnd_collected_stats stat, mysqlnd_stat_trigger trigger); -PHPAPI mysqlnd_stat_trigger mysqlnd_stats_reset_triggers(MYSQLND_STATS * const stats); - -#endif /* MYSQLND_STATISTICS_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_structs.h b/include/php/ext/mysqlnd/mysqlnd_structs.h deleted file mode 100644 index fcd3bc2..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_structs.h +++ /dev/null @@ -1,1404 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_STRUCTS_H -#define MYSQLND_STRUCTS_H - -#include "zend_smart_str_public.h" - -#define MYSQLND_TYPEDEFED_METHODS - -#define MYSQLND_CLASS_METHOD_TABLE_NAME(class) mysqlnd_##class##_methods -#define MYSQLND_CLASS_METHODS_TYPE(class) struct st_##class##_methods -#define MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(class) MYSQLND_CLASS_METHODS_TYPE(class) MYSQLND_CLASS_METHOD_TABLE_NAME(class) - -#define MYSQLND_CLASS_METHODS_START(class) MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(class) = { -#define MYSQLND_CLASS_METHODS_END } - -#define MYSQLND_CLASS_METHODS_INSTANCE_NAME(class) mysqlnd_##class##_methods_ptr -#define MYSQLND_CLASS_METHODS_INSTANCE_DECLARE(class) extern const MYSQLND_CLASS_METHODS_TYPE(class) * MYSQLND_CLASS_METHODS_INSTANCE_NAME(class) -#define MYSQLND_CLASS_METHODS_INSTANCE_DEFINE(class) const MYSQLND_CLASS_METHODS_TYPE(class) * MYSQLND_CLASS_METHODS_INSTANCE_NAME(class) = & MYSQLND_CLASS_METHOD_TABLE_NAME(class) - -typedef struct st_mysqlnd_string -{ - char *s; - size_t l; -} MYSQLND_STRING; - -typedef struct st_mysqlnd_const_string -{ - const char *s; - size_t l; -} MYSQLND_CSTRING; - - -typedef struct st_mysqlnd_memory_pool MYSQLND_MEMORY_POOL; - -struct st_mysqlnd_memory_pool -{ - zend_arena *arena; - void *last; - void *checkpoint; - - void* (*get_chunk)(MYSQLND_MEMORY_POOL * pool, size_t size); - void* (*resize_chunk)(MYSQLND_MEMORY_POOL * pool, void * ptr, size_t old_size, size_t size); - void (*free_chunk)(MYSQLND_MEMORY_POOL * pool, void * ptr); -}; - - -typedef struct st_mysqlnd_row_buffer MYSQLND_ROW_BUFFER; - -struct st_mysqlnd_row_buffer -{ - void *ptr; - size_t size; -}; - - -typedef struct st_mysqlnd_cmd_buffer -{ - zend_uchar *buffer; - size_t length; -} MYSQLND_CMD_BUFFER; - - -typedef struct st_mysqlnd_field -{ - zend_string *sname; /* Name of column */ - zend_bool is_numeric; - zend_ulong num_key; - const char *name; /* Name of column in C string */ - const char *org_name; /* Original column name, if an alias */ - const char *table; /* Table of column if column was a field */ - const char *org_table; /* Org table name, if table was an alias */ - const char *db; /* Database for table */ - const char *catalog; /* Catalog for table */ - char *def; /* Default value */ - zend_ulong length; /* Width of column (create length) */ - zend_ulong max_length; /* Max width for selected set */ - unsigned int name_length; - unsigned int org_name_length; - unsigned int table_length; - unsigned int org_table_length; - unsigned int db_length; - unsigned int catalog_length; - unsigned int def_length; - unsigned int flags; /* Diverse flags */ - unsigned int decimals; /* Number of decimals in field */ - unsigned int charsetnr; /* Character set */ - enum mysqlnd_field_types type; /* Type of field. See mysql_com.h for types */ - char *root; - size_t root_len; -} MYSQLND_FIELD; - - -typedef struct st_mysqlnd_upsert_status MYSQLND_UPSERT_STATUS; -typedef void (*func_mysqlnd_upsert_status__reset)(MYSQLND_UPSERT_STATUS * const upsert_status); -typedef void (*func_mysqlnd_upsert_status__set_affected_rows_to_error)(MYSQLND_UPSERT_STATUS * const upsert_status); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_upsert_status) -{ - func_mysqlnd_upsert_status__reset reset; - func_mysqlnd_upsert_status__set_affected_rows_to_error set_affected_rows_to_error; -}; - -struct st_mysqlnd_upsert_status -{ - unsigned int warning_count; - unsigned int server_status; - uint64_t affected_rows; - uint64_t last_insert_id; - - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_upsert_status) *m; -}; - -#define SET_EMPTY_ERROR(info) (info)->m->reset((info)) -#define SET_CLIENT_ERROR(info, err_no, sqlstate, error) (err_no)? (info)->m->set_client_error((info), (err_no), (sqlstate), (error)) : (info)->m->reset((info)) -#define SET_OOM_ERROR(info) SET_CLIENT_ERROR((info), CR_OUT_OF_MEMORY, UNKNOWN_SQLSTATE, mysqlnd_out_of_memory) -#define COPY_CLIENT_ERROR(dest, source) SET_CLIENT_ERROR((dest), (source).error_no, (source).sqlstate, (source).error) - - -typedef struct st_mysqlnd_error_info MYSQLND_ERROR_INFO; -typedef void (*func_mysqlnd_error_info__reset)(MYSQLND_ERROR_INFO * const info); -typedef void (*func_mysqlnd_error_info__set_client_error)(MYSQLND_ERROR_INFO * const info, const unsigned int err_no, const char * const sqlstate, const char * const error); - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_error_info) -{ - func_mysqlnd_error_info__reset reset; - func_mysqlnd_error_info__set_client_error set_client_error; -}; - -struct st_mysqlnd_error_info -{ - char error[MYSQLND_ERRMSG_SIZE+1]; - char sqlstate[MYSQLND_SQLSTATE_LENGTH + 1]; - unsigned int error_no; - zend_llist error_list; - - zend_bool persistent; - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_error_info) *m; -}; - - -typedef struct st_mysqlnd_error_list_element -{ - char * error; - char sqlstate[MYSQLND_SQLSTATE_LENGTH + 1]; - unsigned int error_no; -} MYSQLND_ERROR_LIST_ELEMENT; - - -typedef struct st_mysqlnd_infile_info -{ - php_stream *fd; - int error_no; - char error_msg[MYSQLND_ERRMSG_SIZE + 1]; - const char *filename; -} MYSQLND_INFILE_INFO; - - -typedef int (*func_mysqlnd_local_infile__init)(void ** ptr, const char * const filename); -typedef int (*func_mysqlnd_local_infile__read)(void * ptr, zend_uchar * buf, unsigned int buf_len); -typedef int (*func_mysqlnd_local_infile__error)(void * ptr, char * error_msg, unsigned int error_msg_len); -typedef void (*func_mysqlnd_local_infile__end)(void * ptr); - - -/* character set information */ -typedef struct st_mysqlnd_charset -{ - unsigned int nr; - const char *name; - const char *collation; - unsigned int char_minlen; - unsigned int char_maxlen; - const char *comment; - unsigned int (*mb_charlen)(const unsigned int c); - unsigned int (*mb_valid)(const char * const start, const char * const end); -} MYSQLND_CHARSET; - - -/* local infile handler */ -typedef struct st_mysqlnd_infile -{ - func_mysqlnd_local_infile__init local_infile_init; - func_mysqlnd_local_infile__read local_infile_read; - func_mysqlnd_local_infile__error local_infile_error; - func_mysqlnd_local_infile__end local_infile_end; -} MYSQLND_INFILE; - - -typedef struct st_mysqlnd_session_options -{ - unsigned int flags; - - /* init commands - we need to send them to server directly after connect */ - unsigned int num_commands; - char **init_commands; - - /* configuration file information */ - char *cfg_file; - char *cfg_section; - - char *auth_protocol; - /* - We need to keep these because otherwise st_mysqlnd_conn will be changed. - The ABI will be broken and the methods structure will be somewhere else - in the memory which can crash external code. Feel free to reuse these. - */ - HashTable * connect_attr; - char * unused1; - char * unused2; - char * unused3; - - enum_mysqlnd_session_protocol_type protocol; - - char *charset_name; - /* maximum allowed packet size for communication */ - unsigned int max_allowed_packet; - -#ifdef MYSQLND_STRING_TO_INT_CONVERSION - zend_bool int_and_float_native; -#endif -} MYSQLND_SESSION_OPTIONS; - - -typedef struct st_mysqlnd_vio_options -{ - /* timeouts */ - unsigned int timeout_connect; - unsigned int timeout_read; - unsigned int timeout_write; - - size_t net_read_buffer_size; - - /* SSL information */ - char *ssl_key; - char *ssl_cert; - char *ssl_ca; - char *ssl_capath; - char *ssl_cipher; - char *ssl_passphrase; - enum mysqlnd_ssl_peer { - MYSQLND_SSL_PEER_DEFAULT = 0, - MYSQLND_SSL_PEER_VERIFY = 1, - MYSQLND_SSL_PEER_DONT_VERIFY = 2, - -#define MYSQLND_SSL_PEER_DEFAULT_ACTION MYSQLND_SSL_PEER_VERIFY - } ssl_verify_peer; -} MYSQLND_VIO_OPTIONS; - - - -typedef struct st_mysqlnd_connection MYSQLND; -typedef struct st_mysqlnd_connection_data MYSQLND_CONN_DATA; -typedef struct st_mysqlnd_protocol_frame_codec MYSQLND_PFC; -typedef struct st_mysqlnd_protocol_frame_codec_data MYSQLND_PFC_DATA; -typedef struct st_mysqlnd_vio MYSQLND_VIO; -typedef struct st_mysqlnd_vio_data MYSQLND_VIO_DATA; -typedef struct st_mysqlnd_protocol_payload_decoder_factory MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY; -typedef struct st_mysqlnd_res MYSQLND_RES; -typedef char** MYSQLND_ROW_C; /* return data as array of strings */ -typedef struct st_mysqlnd_stmt_data MYSQLND_STMT_DATA; -typedef struct st_mysqlnd_stmt MYSQLND_STMT; -typedef unsigned int MYSQLND_FIELD_OFFSET; - -typedef struct st_mysqlnd_param_bind MYSQLND_PARAM_BIND; - -typedef struct st_mysqlnd_result_bind MYSQLND_RESULT_BIND; - -typedef struct st_mysqlnd_result_metadata MYSQLND_RES_METADATA; -typedef struct st_mysqlnd_buffered_result_parent MYSQLND_RES_BUFFERED; -typedef struct st_mysqlnd_buffered_result_zval MYSQLND_RES_BUFFERED_ZVAL; -typedef struct st_mysqlnd_buffered_result_c MYSQLND_RES_BUFFERED_C; -typedef struct st_mysqlnd_unbuffered_result MYSQLND_RES_UNBUFFERED; - -typedef struct st_mysqlnd_debug MYSQLND_DEBUG; - - -typedef MYSQLND_RES* (*mysqlnd_stmt_use_or_store_func)(MYSQLND_STMT * const); -typedef enum_func_status (*mysqlnd_fetch_row_func)(MYSQLND_RES *result, - void * param, - const unsigned int flags, - zend_bool * fetched_anything - ); - - -typedef struct st_mysqlnd_stats MYSQLND_STATS; - -typedef void (*mysqlnd_stat_trigger)(MYSQLND_STATS * stats, enum_mysqlnd_collected_stats stat, int64_t change); - -struct st_mysqlnd_stats -{ - uint64_t *values; - mysqlnd_stat_trigger *triggers; - size_t count; - zend_bool in_trigger; -#ifdef ZTS - MUTEX_T LOCK_access; -#endif -}; - - -typedef enum_func_status (*func_mysqlnd_execute_com_set_option)(MYSQLND_CONN_DATA * const conn, const enum_mysqlnd_server_option option); -typedef enum_func_status (*func_mysqlnd_execute_com_debug)(MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_execute_com_init_db)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING db); -typedef enum_func_status (*func_mysqlnd_execute_com_ping)(MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_execute_com_statistics)(MYSQLND_CONN_DATA * const conn, zend_string ** message); -typedef enum_func_status (*func_mysqlnd_execute_com_process_kill)(MYSQLND_CONN_DATA * const conn, const unsigned int process_id, const zend_bool read_response); -typedef enum_func_status (*func_mysqlnd_execute_com_refresh)(MYSQLND_CONN_DATA * const conn, const uint8_t options); -typedef enum_func_status (*func_mysqlnd_execute_com_shutdown)(MYSQLND_CONN_DATA * const conn, const uint8_t level); -typedef enum_func_status (*func_mysqlnd_execute_com_quit)(MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_execute_com_query)(MYSQLND_CONN_DATA * const conn, MYSQLND_CSTRING query); -typedef enum_func_status (*func_mysqlnd_execute_com_change_user)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING payload, const zend_bool silent); -typedef enum_func_status (*func_mysqlnd_execute_com_reap_result)(MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_execute_com_stmt_prepare)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING query); -typedef enum_func_status (*func_mysqlnd_execute_com_stmt_execute)(MYSQLND_CONN_DATA * conn, const MYSQLND_CSTRING payload); -typedef enum_func_status (*func_mysqlnd_execute_com_stmt_fetch)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING payload); -typedef enum_func_status (*func_mysqlnd_execute_com_stmt_reset)(MYSQLND_CONN_DATA * const conn, const zend_ulong stmt_id); -typedef enum_func_status (*func_mysqlnd_execute_com_stmt_send_long_data)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING payload); -typedef enum_func_status (*func_mysqlnd_execute_com_stmt_close)(MYSQLND_CONN_DATA * const conn, const zend_ulong stmt_id); -typedef enum_func_status (*func_mysqlnd_execute_com_enable_ssl)(MYSQLND_CONN_DATA * const conn, const size_t client_capabilities, const size_t server_capabilities, const unsigned int charset_no); -typedef enum_func_status (*func_mysqlnd_execute_com_handshake)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, const size_t client_flags); - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_command) -{ - func_mysqlnd_execute_com_set_option set_option; - func_mysqlnd_execute_com_debug debug; - func_mysqlnd_execute_com_init_db init_db; - func_mysqlnd_execute_com_ping ping; - func_mysqlnd_execute_com_statistics statistics; - func_mysqlnd_execute_com_process_kill process_kill; - func_mysqlnd_execute_com_refresh refresh; - func_mysqlnd_execute_com_shutdown shutdown; - func_mysqlnd_execute_com_quit quit; - func_mysqlnd_execute_com_query query; - func_mysqlnd_execute_com_change_user change_user; - func_mysqlnd_execute_com_reap_result reap_result; - func_mysqlnd_execute_com_stmt_prepare stmt_prepare; - func_mysqlnd_execute_com_stmt_execute stmt_execute; - func_mysqlnd_execute_com_stmt_fetch stmt_fetch; - func_mysqlnd_execute_com_stmt_reset stmt_reset; - func_mysqlnd_execute_com_stmt_send_long_data stmt_send_long_data; - func_mysqlnd_execute_com_stmt_close stmt_close; - func_mysqlnd_execute_com_enable_ssl enable_ssl; - func_mysqlnd_execute_com_handshake handshake; -}; - - - -typedef enum_func_status (*func_mysqlnd_vio__init)(MYSQLND_VIO * const vio, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info); -typedef void (*func_mysqlnd_vio__dtor)(MYSQLND_VIO * const vio, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); - -typedef enum_func_status (*func_mysqlnd_vio__connect)(MYSQLND_VIO * const vio, const MYSQLND_CSTRING scheme, const zend_bool persistent, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); - -typedef void (*func_mysqlnd_vio__close_stream)(MYSQLND_VIO * const vio, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); -typedef php_stream * (*func_mysqlnd_vio__open_stream)(MYSQLND_VIO * const vio, const MYSQLND_CSTRING scheme, const zend_bool persistent, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); -typedef php_stream * (*func_mysqlnd_vio__get_stream)(const MYSQLND_VIO * const vio); -typedef enum_func_status (*func_mysqlnd_vio__set_stream)(MYSQLND_VIO * const vio, php_stream * vio_stream); -typedef zend_bool (*func_mysqlnd_vio__has_valid_stream)(const MYSQLND_VIO * const vio); -typedef func_mysqlnd_vio__open_stream (*func_mysqlnd_vio__get_open_stream)(MYSQLND_VIO * const vio, const MYSQLND_CSTRING scheme, MYSQLND_ERROR_INFO * const error_info); - -typedef enum_func_status (*func_mysqlnd_vio__set_client_option)(MYSQLND_VIO * const vio, enum_mysqlnd_client_option option, const char * const value); -typedef void (*func_mysqlnd_vio__post_connect_set_opt)(MYSQLND_VIO * const vio, const MYSQLND_CSTRING scheme, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); - -typedef enum_func_status (*func_mysqlnd_vio__enable_ssl)(MYSQLND_VIO * const vio); -typedef enum_func_status (*func_mysqlnd_vio__disable_ssl)(MYSQLND_VIO * const vio); -typedef enum_func_status (*func_mysqlnd_vio__network_read)(MYSQLND_VIO * const vio, zend_uchar * const buffer, const size_t count, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info); -typedef ssize_t (*func_mysqlnd_vio__network_write)(MYSQLND_VIO * const vio, const zend_uchar * const buf, const size_t count, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info); - -typedef size_t (*func_mysqlnd_vio__consume_uneaten_data)(MYSQLND_VIO * const vio, enum php_mysqlnd_server_command cmd); - -typedef void (*func_mysqlnd_vio__free_contents)(MYSQLND_VIO * vio); - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_vio) -{ - func_mysqlnd_vio__init init; - func_mysqlnd_vio__dtor dtor; - func_mysqlnd_vio__connect connect; - - func_mysqlnd_vio__close_stream close_stream; - func_mysqlnd_vio__open_stream open_pipe; - func_mysqlnd_vio__open_stream open_tcp_or_unix; - - func_mysqlnd_vio__get_stream get_stream; - func_mysqlnd_vio__set_stream set_stream; - func_mysqlnd_vio__has_valid_stream has_valid_stream; - func_mysqlnd_vio__get_open_stream get_open_stream; - - func_mysqlnd_vio__set_client_option set_client_option; - func_mysqlnd_vio__post_connect_set_opt post_connect_set_opt; - - func_mysqlnd_vio__enable_ssl enable_ssl; - func_mysqlnd_vio__disable_ssl disable_ssl; - - func_mysqlnd_vio__network_read network_read; - func_mysqlnd_vio__network_write network_write; - - func_mysqlnd_vio__consume_uneaten_data consume_uneaten_data; - - func_mysqlnd_vio__free_contents free_contents; -}; - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory); - -typedef MYSQLND * (*func_mysqlnd_object_factory__get_connection)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) * factory, const zend_bool persistent); -typedef MYSQLND * (*func_mysqlnd_object_factory__clone_connection_object)(MYSQLND * conn); -typedef MYSQLND_STMT * (*func_mysqlnd_object_factory__get_prepared_statement)(MYSQLND_CONN_DATA * conn); -typedef MYSQLND_PFC * (*func_mysqlnd_object_factory__get_pfc)(const zend_bool persistent, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info); -typedef MYSQLND_VIO * (*func_mysqlnd_object_factory__get_vio)(const zend_bool persistent, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info); -typedef MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * (*func_mysqlnd_object_factory__get_protocol_payload_decoder_factory)(MYSQLND_CONN_DATA * conn, const zend_bool persistent); - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) -{ - func_mysqlnd_object_factory__get_connection get_connection; - func_mysqlnd_object_factory__clone_connection_object clone_connection_object; - func_mysqlnd_object_factory__get_prepared_statement get_prepared_statement; - func_mysqlnd_object_factory__get_pfc get_protocol_frame_codec; - func_mysqlnd_object_factory__get_vio get_vio; - func_mysqlnd_object_factory__get_protocol_payload_decoder_factory get_protocol_payload_decoder_factory; -}; - - -typedef enum_func_status (*func_mysqlnd_conn_data__connect)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING username, MYSQLND_CSTRING password, MYSQLND_CSTRING database, unsigned int port, MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags); -typedef zend_ulong (*func_mysqlnd_conn_data__escape_string)(MYSQLND_CONN_DATA * const conn, char *newstr, const char *escapestr, size_t escapestr_len); -typedef enum_func_status (*func_mysqlnd_conn_data__set_charset)(MYSQLND_CONN_DATA * const conn, const char * const charset); -typedef enum_func_status (*func_mysqlnd_conn_data__query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len); -typedef enum_func_status (*func_mysqlnd_conn_data__send_query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len, enum_mysqlnd_send_query_type type, zval *read_cb, zval *err_cb); -typedef enum_func_status (*func_mysqlnd_conn_data__reap_query)(MYSQLND_CONN_DATA * conn, enum_mysqlnd_reap_result_type type); -typedef MYSQLND_RES * (*func_mysqlnd_conn_data__use_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags); -typedef MYSQLND_RES * (*func_mysqlnd_conn_data__store_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags); -typedef enum_func_status (*func_mysqlnd_conn_data__next_result)(MYSQLND_CONN_DATA * const conn); -typedef zend_bool (*func_mysqlnd_conn_data__more_results)(const MYSQLND_CONN_DATA * const conn); - -typedef MYSQLND_STMT * (*func_mysqlnd_conn_data__stmt_init)(MYSQLND_CONN_DATA * const conn); - -typedef enum_func_status (*func_mysqlnd_conn_data__shutdown_server)(MYSQLND_CONN_DATA * const conn, uint8_t level); -typedef enum_func_status (*func_mysqlnd_conn_data__refresh_server)(MYSQLND_CONN_DATA * const conn, uint8_t options); - -typedef enum_func_status (*func_mysqlnd_conn_data__ping)(MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_conn_data__kill_connection)(MYSQLND_CONN_DATA * conn, unsigned int pid); -typedef enum_func_status (*func_mysqlnd_conn_data__select_db)(MYSQLND_CONN_DATA * const conn, const char * const db, const size_t db_len); -typedef enum_func_status (*func_mysqlnd_conn_data__server_dump_debug_information)(MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_conn_data__change_user)(MYSQLND_CONN_DATA * const conn, const char * user, const char * passwd, const char * db, zend_bool silent, size_t passwd_len); - -typedef unsigned int (*func_mysqlnd_conn_data__get_error_no)(const MYSQLND_CONN_DATA * const conn); -typedef const char * (*func_mysqlnd_conn_data__get_error_str)(const MYSQLND_CONN_DATA * const conn); -typedef const char * (*func_mysqlnd_conn_data__get_sqlstate)(const MYSQLND_CONN_DATA * const conn); -typedef uint64_t (*func_mysqlnd_conn_data__get_thread_id)(const MYSQLND_CONN_DATA * const conn); -typedef void (*func_mysqlnd_conn_data__get_statistics)(const MYSQLND_CONN_DATA * const conn, zval *return_value ZEND_FILE_LINE_DC); - -typedef zend_ulong (*func_mysqlnd_conn_data__get_server_version)(const MYSQLND_CONN_DATA * const conn); -typedef const char * (*func_mysqlnd_conn_data__get_server_information)(const MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_conn_data__get_server_statistics)(MYSQLND_CONN_DATA * conn, zend_string **message); -typedef const char * (*func_mysqlnd_conn_data__get_host_information)(const MYSQLND_CONN_DATA * const conn); -typedef unsigned int (*func_mysqlnd_conn_data__get_protocol_information)(const MYSQLND_CONN_DATA * const conn); -typedef const char * (*func_mysqlnd_conn_data__get_last_message)(const MYSQLND_CONN_DATA * const conn); -typedef const char * (*func_mysqlnd_conn_data__charset_name)(const MYSQLND_CONN_DATA * const conn); -typedef MYSQLND_RES * (*func_mysqlnd_conn_data__list_method)(MYSQLND_CONN_DATA * conn, const char * const query, const char * const achtung_wild, const char * const par1); - -typedef uint64_t (*func_mysqlnd_conn_data__get_last_insert_id)(const MYSQLND_CONN_DATA * const conn); -typedef uint64_t (*func_mysqlnd_conn_data__get_affected_rows)(const MYSQLND_CONN_DATA * const conn); -typedef unsigned int (*func_mysqlnd_conn_data__get_warning_count)(const MYSQLND_CONN_DATA * const conn); - -typedef unsigned int (*func_mysqlnd_conn_data__get_field_count)(const MYSQLND_CONN_DATA * const conn); - -typedef unsigned int (*func_mysqlnd_conn_data__get_server_status)(const MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_conn_data__set_server_option)(MYSQLND_CONN_DATA * const conn, enum_mysqlnd_server_option option); -typedef enum_func_status (*func_mysqlnd_conn_data__set_client_option)(MYSQLND_CONN_DATA * const conn, enum_mysqlnd_client_option option, const char * const value); -typedef void (*func_mysqlnd_conn_data__free_contents)(MYSQLND_CONN_DATA * conn);/* private */ -typedef void (*func_mysqlnd_conn_data__free_options)(MYSQLND_CONN_DATA * conn); /* private */ -typedef void (*func_mysqlnd_conn_data__dtor)(MYSQLND_CONN_DATA * conn); /* private */ - -typedef enum_func_status (*func_mysqlnd_conn_data__query_read_result_set_header)(MYSQLND_CONN_DATA * conn, MYSQLND_STMT * stmt); - -typedef MYSQLND_CONN_DATA * (*func_mysqlnd_conn_data__get_reference)(MYSQLND_CONN_DATA * const conn); -typedef enum_func_status (*func_mysqlnd_conn_data__free_reference)(MYSQLND_CONN_DATA * const conn); - -typedef enum_func_status (*func_mysqlnd_conn_data__send_command_do_request)(MYSQLND_CONN_DATA * const conn, const enum php_mysqlnd_server_command command, const zend_uchar * const arg, const size_t arg_len, const zend_bool silent, const zend_bool ignore_upsert_status); -typedef enum_func_status (*func_mysqlnd_conn_data__send_command_handle_response)(MYSQLND_CONN_DATA * const conn, const enum mysqlnd_packet_type ok_packet, const zend_bool silent, const enum php_mysqlnd_server_command command, const zend_bool ignore_upsert_status); - -typedef enum_func_status (*func_mysqlnd_conn_data__restart_psession)(MYSQLND_CONN_DATA * conn); -typedef enum_func_status (*func_mysqlnd_conn_data__end_psession)(MYSQLND_CONN_DATA * conn); -typedef enum_func_status (*func_mysqlnd_conn_data__send_close)(MYSQLND_CONN_DATA * conn); - -typedef enum_func_status (*func_mysqlnd_conn_data__ssl_set)(MYSQLND_CONN_DATA * const conn, const char * key, const char * const cert, const char * const ca, const char * const capath, const char * const cipher); - -typedef MYSQLND_RES * (*func_mysqlnd_conn_data__result_init)(unsigned int field_count); - -typedef enum_func_status (*func_mysqlnd_conn_data__set_autocommit)(MYSQLND_CONN_DATA * conn, unsigned int mode); -typedef enum_func_status (*func_mysqlnd_conn_data__tx_commit)(MYSQLND_CONN_DATA * conn); -typedef enum_func_status (*func_mysqlnd_conn_data__tx_rollback)(MYSQLND_CONN_DATA * conn); -typedef enum_func_status (*func_mysqlnd_conn_data__tx_begin)(MYSQLND_CONN_DATA * conn, const unsigned int mode, const char * const name); -typedef enum_func_status (*func_mysqlnd_conn_data__tx_commit_or_rollback)(MYSQLND_CONN_DATA * conn, const zend_bool commit, const unsigned int flags, const char * const name); -typedef void (*func_mysqlnd_conn_data__tx_cor_options_to_string)(const MYSQLND_CONN_DATA * const conn, smart_str * tmp_str, const unsigned int mode); -typedef enum_func_status (*func_mysqlnd_conn_data__tx_savepoint)(MYSQLND_CONN_DATA * conn, const char * const name); -typedef enum_func_status (*func_mysqlnd_conn_data__tx_savepoint_release)(MYSQLND_CONN_DATA * conn, const char * const name); - -typedef enum_func_status (*func_mysqlnd_conn_data__local_tx_start)(MYSQLND_CONN_DATA * conn, const size_t this_func); -typedef enum_func_status (*func_mysqlnd_conn_data__local_tx_end)(MYSQLND_CONN_DATA * conn, const size_t this_func, const enum_func_status status); -typedef enum_func_status (*func_mysqlnd_conn_data__execute_init_commands)(MYSQLND_CONN_DATA * conn); -typedef unsigned int (*func_mysqlnd_conn_data__get_updated_connect_flags)(MYSQLND_CONN_DATA * conn, unsigned int mysql_flags); -typedef enum_func_status (*func_mysqlnd_conn_data__connect_handshake)(MYSQLND_CONN_DATA * conn, const MYSQLND_CSTRING * const scheme, const MYSQLND_CSTRING * const username, const MYSQLND_CSTRING * const password, const MYSQLND_CSTRING * const database, const unsigned int mysql_flags); -typedef struct st_mysqlnd_authentication_plugin * (*func_mysqlnd_conn_data__fetch_auth_plugin_by_name)(const char * const requested_protocol); - -typedef enum_func_status (*func_mysqlnd_conn_data__set_client_option_2d)(MYSQLND_CONN_DATA * const conn, const enum_mysqlnd_client_option option, const char * const key, const char * const value); - - -typedef size_t (*func_mysqlnd_conn_data__negotiate_client_api_capabilities)(MYSQLND_CONN_DATA * const conn, const size_t flags); -typedef size_t (*func_mysqlnd_conn_data__get_client_api_capabilities)(const MYSQLND_CONN_DATA * const conn); - -typedef MYSQLND_STRING (*func_mysqlnd_conn_data__get_scheme)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING *socket_or_pipe, unsigned int port, zend_bool * unix_socket, zend_bool * named_pipe); - - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data) -{ - func_mysqlnd_conn_data__connect connect; - func_mysqlnd_conn_data__escape_string escape_string; - func_mysqlnd_conn_data__set_charset set_charset; - func_mysqlnd_conn_data__query query; - func_mysqlnd_conn_data__send_query send_query; - func_mysqlnd_conn_data__reap_query reap_query; - func_mysqlnd_conn_data__use_result use_result; - func_mysqlnd_conn_data__store_result store_result; - func_mysqlnd_conn_data__next_result next_result; - func_mysqlnd_conn_data__more_results more_results; - - func_mysqlnd_conn_data__stmt_init stmt_init; - - func_mysqlnd_conn_data__shutdown_server shutdown_server; - func_mysqlnd_conn_data__refresh_server refresh_server; - - func_mysqlnd_conn_data__ping ping; - func_mysqlnd_conn_data__kill_connection kill_connection; - func_mysqlnd_conn_data__select_db select_db; - func_mysqlnd_conn_data__server_dump_debug_information server_dump_debug_information; - func_mysqlnd_conn_data__change_user change_user; - - func_mysqlnd_conn_data__get_error_no get_error_no; - func_mysqlnd_conn_data__get_error_str get_error_str; - func_mysqlnd_conn_data__get_sqlstate get_sqlstate; - func_mysqlnd_conn_data__get_thread_id get_thread_id; - func_mysqlnd_conn_data__get_statistics get_statistics; - - func_mysqlnd_conn_data__get_server_version get_server_version; - func_mysqlnd_conn_data__get_server_information get_server_information; - func_mysqlnd_conn_data__get_server_statistics get_server_statistics; - func_mysqlnd_conn_data__get_host_information get_host_information; - func_mysqlnd_conn_data__get_protocol_information get_protocol_information; - func_mysqlnd_conn_data__get_last_message get_last_message; - func_mysqlnd_conn_data__charset_name charset_name; - func_mysqlnd_conn_data__list_method list_method; - - func_mysqlnd_conn_data__get_last_insert_id get_last_insert_id; - func_mysqlnd_conn_data__get_affected_rows get_affected_rows; - func_mysqlnd_conn_data__get_warning_count get_warning_count; - - func_mysqlnd_conn_data__get_field_count get_field_count; - - func_mysqlnd_conn_data__get_server_status get_server_status; - - func_mysqlnd_conn_data__set_server_option set_server_option; - func_mysqlnd_conn_data__set_client_option set_client_option; - func_mysqlnd_conn_data__free_contents free_contents; - func_mysqlnd_conn_data__free_options free_options; - func_mysqlnd_conn_data__dtor dtor; - - func_mysqlnd_conn_data__query_read_result_set_header query_read_result_set_header; - - func_mysqlnd_conn_data__get_reference get_reference; - func_mysqlnd_conn_data__free_reference free_reference; - - func_mysqlnd_conn_data__restart_psession restart_psession; - func_mysqlnd_conn_data__end_psession end_psession; - func_mysqlnd_conn_data__send_close send_close; - - func_mysqlnd_conn_data__ssl_set ssl_set; - - func_mysqlnd_conn_data__result_init result_init; - func_mysqlnd_conn_data__set_autocommit set_autocommit; - func_mysqlnd_conn_data__tx_commit tx_commit; - func_mysqlnd_conn_data__tx_rollback tx_rollback; - func_mysqlnd_conn_data__tx_begin tx_begin; - func_mysqlnd_conn_data__tx_commit_or_rollback tx_commit_or_rollback; - func_mysqlnd_conn_data__tx_cor_options_to_string tx_cor_options_to_string; - func_mysqlnd_conn_data__tx_savepoint tx_savepoint; - func_mysqlnd_conn_data__tx_savepoint_release tx_savepoint_release; - - func_mysqlnd_conn_data__local_tx_start local_tx_start; - func_mysqlnd_conn_data__local_tx_end local_tx_end; - - func_mysqlnd_conn_data__execute_init_commands execute_init_commands; - func_mysqlnd_conn_data__get_updated_connect_flags get_updated_connect_flags; - func_mysqlnd_conn_data__connect_handshake connect_handshake; - func_mysqlnd_conn_data__fetch_auth_plugin_by_name fetch_auth_plugin_by_name; - - func_mysqlnd_conn_data__set_client_option_2d set_client_option_2d; - - func_mysqlnd_conn_data__negotiate_client_api_capabilities negotiate_client_api_capabilities; - func_mysqlnd_conn_data__get_client_api_capabilities get_client_api_capabilities; - - func_mysqlnd_conn_data__get_scheme get_scheme; -}; - - -typedef enum_func_status (*func_mysqlnd_data__connect)(MYSQLND * conn, const MYSQLND_CSTRING hostname, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, unsigned int port, const MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags); -typedef MYSQLND * (*func_mysqlnd_conn__clone_object)(MYSQLND * const conn); -typedef void (*func_mysqlnd_conn__dtor)(MYSQLND * conn); -typedef enum_func_status (*func_mysqlnd_conn__close)(MYSQLND * conn, const enum_connection_close_type close_type); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn) -{ - func_mysqlnd_data__connect connect; - func_mysqlnd_conn__clone_object clone_object; - func_mysqlnd_conn__dtor dtor; - func_mysqlnd_conn__close close; -}; - - - /* for decoding - binary or text protocol */ -typedef enum_func_status (*func_mysqlnd_res__row_decoder)(MYSQLND_ROW_BUFFER * row_buffer, zval * fields, - const unsigned int field_count, const MYSQLND_FIELD * const fields_metadata, - const zend_bool as_int_or_float, MYSQLND_STATS * const stats); - - -typedef MYSQLND_RES * (*func_mysqlnd_res__use_result)(MYSQLND_RES * const result, const zend_bool ps_protocol); -typedef MYSQLND_RES * (*func_mysqlnd_res__store_result)(MYSQLND_RES * result, MYSQLND_CONN_DATA * const conn, const unsigned int flags); -typedef void (*func_mysqlnd_res__fetch_into)(MYSQLND_RES *result, const unsigned int flags, zval *return_value, enum_mysqlnd_extension ext ZEND_FILE_LINE_DC); -typedef MYSQLND_ROW_C (*func_mysqlnd_res__fetch_row_c)(MYSQLND_RES *result); -typedef void (*func_mysqlnd_res__fetch_all)(MYSQLND_RES *result, const unsigned int flags, zval *return_value ZEND_FILE_LINE_DC); -typedef void (*func_mysqlnd_res__fetch_field_data)(MYSQLND_RES *result, const unsigned int offset, zval *return_value); -typedef uint64_t (*func_mysqlnd_res__num_rows)(const MYSQLND_RES * const result); -typedef unsigned int (*func_mysqlnd_res__num_fields)(const MYSQLND_RES * const result); -typedef enum_func_status (*func_mysqlnd_res__skip_result)(MYSQLND_RES * const result); -typedef enum_func_status (*func_mysqlnd_res__seek_data)(MYSQLND_RES * const result, const uint64_t row); -typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res__seek_field)(MYSQLND_RES * const result, const MYSQLND_FIELD_OFFSET field_offset); -typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res__field_tell)(const MYSQLND_RES * const result); -typedef const MYSQLND_FIELD *(*func_mysqlnd_res__fetch_field)(MYSQLND_RES * const result); -typedef const MYSQLND_FIELD *(*func_mysqlnd_res__fetch_field_direct)(MYSQLND_RES * const result, const MYSQLND_FIELD_OFFSET fieldnr); -typedef const MYSQLND_FIELD *(*func_mysqlnd_res__fetch_fields)(MYSQLND_RES * const result); - -typedef enum_func_status (*func_mysqlnd_res__read_result_metadata)(MYSQLND_RES * result, MYSQLND_CONN_DATA * conn); -typedef const size_t * (*func_mysqlnd_res__fetch_lengths)(const MYSQLND_RES * const result); -typedef enum_func_status (*func_mysqlnd_res__store_result_fetch_data)(MYSQLND_CONN_DATA * const conn, MYSQLND_RES * result, MYSQLND_RES_METADATA * meta, MYSQLND_ROW_BUFFER ** row_buffers, zend_bool binary_protocol); - -typedef void (*func_mysqlnd_res__free_result_buffers)(MYSQLND_RES * result); /* private */ -typedef enum_func_status (*func_mysqlnd_res__free_result)(MYSQLND_RES * result, const zend_bool implicit); -typedef void (*func_mysqlnd_res__free_result_internal)(MYSQLND_RES *result); -typedef void (*func_mysqlnd_res__free_result_contents)(MYSQLND_RES *result); -typedef void (*func_mysqlnd_res__free_buffered_data)(MYSQLND_RES *result); -typedef void (*func_mysqlnd_res__unbuffered_free_last_data)(MYSQLND_RES *result); - - -typedef MYSQLND_RES_METADATA * (*func_mysqlnd_res__result_meta_init)(MYSQLND_RES *result, unsigned int field_count); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) -{ - mysqlnd_fetch_row_func fetch_row; - - func_mysqlnd_res__use_result use_result; - func_mysqlnd_res__store_result store_result; - func_mysqlnd_res__fetch_into fetch_into; - func_mysqlnd_res__fetch_row_c fetch_row_c; - func_mysqlnd_res__fetch_all fetch_all; - func_mysqlnd_res__fetch_field_data fetch_field_data; - func_mysqlnd_res__num_rows num_rows; - func_mysqlnd_res__num_fields num_fields; - func_mysqlnd_res__skip_result skip_result; - func_mysqlnd_res__seek_data seek_data; - func_mysqlnd_res__seek_field seek_field; - func_mysqlnd_res__field_tell field_tell; - func_mysqlnd_res__fetch_field fetch_field; - func_mysqlnd_res__fetch_field_direct fetch_field_direct; - func_mysqlnd_res__fetch_fields fetch_fields; - func_mysqlnd_res__read_result_metadata read_result_metadata; - func_mysqlnd_res__fetch_lengths fetch_lengths; - func_mysqlnd_res__store_result_fetch_data store_result_fetch_data; - func_mysqlnd_res__free_result_buffers free_result_buffers; - func_mysqlnd_res__free_result free_result; - func_mysqlnd_res__free_result_internal free_result_internal; - func_mysqlnd_res__free_result_contents free_result_contents; - - func_mysqlnd_res__result_meta_init result_meta_init; - - void * unused1; - void * unused2; - void * unused3; - void * unused4; - void * unused5; -}; - - -typedef uint64_t (*func_mysqlnd_result_unbuffered__num_rows)(const MYSQLND_RES_UNBUFFERED * const result); -typedef const size_t * (*func_mysqlnd_result_unbuffered__fetch_lengths)(const MYSQLND_RES_UNBUFFERED * const result); -typedef void (*func_mysqlnd_result_unbuffered__free_last_data)(MYSQLND_RES_UNBUFFERED * result, MYSQLND_STATS * const global_stats); -typedef void (*func_mysqlnd_result_unbuffered__free_result)(MYSQLND_RES_UNBUFFERED * const result, MYSQLND_STATS * const global_stats); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_unbuffered) -{ - mysqlnd_fetch_row_func fetch_row; - func_mysqlnd_res__row_decoder row_decoder; - func_mysqlnd_result_unbuffered__num_rows num_rows; - func_mysqlnd_result_unbuffered__fetch_lengths fetch_lengths; - func_mysqlnd_result_unbuffered__free_last_data free_last_data; - func_mysqlnd_result_unbuffered__free_result free_result; -}; - -typedef uint64_t (*func_mysqlnd_result_buffered__num_rows)(const MYSQLND_RES_BUFFERED * const result); -typedef enum_func_status (*func_mysqlnd_result_buffered__initialize_result_set_rest)(MYSQLND_RES_BUFFERED * const result, MYSQLND_RES_METADATA * const meta, - MYSQLND_STATS * stats, const zend_bool int_and_float_native); -typedef const size_t * (*func_mysqlnd_result_buffered__fetch_lengths)(const MYSQLND_RES_BUFFERED * const result); -typedef enum_func_status (*func_mysqlnd_result_buffered__data_seek)(MYSQLND_RES_BUFFERED * const result, const uint64_t row); -typedef void (*func_mysqlnd_result_buffered__free_result)(MYSQLND_RES_BUFFERED * const result); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_buffered) -{ - mysqlnd_fetch_row_func fetch_row; - func_mysqlnd_res__row_decoder row_decoder; - func_mysqlnd_result_buffered__num_rows num_rows; - func_mysqlnd_result_buffered__fetch_lengths fetch_lengths; - func_mysqlnd_result_buffered__data_seek data_seek; - func_mysqlnd_result_buffered__initialize_result_set_rest initialize_result_set_rest; - func_mysqlnd_result_buffered__free_result free_result; -}; - - -typedef const MYSQLND_FIELD * (*func_mysqlnd_res_meta__fetch_field)(MYSQLND_RES_METADATA * const meta); -typedef const MYSQLND_FIELD * (*func_mysqlnd_res_meta__fetch_field_direct)(const MYSQLND_RES_METADATA * const meta, const MYSQLND_FIELD_OFFSET fieldnr); -typedef const MYSQLND_FIELD * (*func_mysqlnd_res_meta__fetch_fields)(MYSQLND_RES_METADATA * const meta); -typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res_meta__field_tell)(const MYSQLND_RES_METADATA * const meta); -typedef MYSQLND_FIELD_OFFSET (*func_mysqlnd_res_meta__field_seek)(MYSQLND_RES_METADATA * const meta, const MYSQLND_FIELD_OFFSET field_offset); -typedef enum_func_status (*func_mysqlnd_res_meta__read_metadata)(MYSQLND_RES_METADATA * const meta, MYSQLND_CONN_DATA * conn, MYSQLND_RES * result); -typedef MYSQLND_RES_METADATA * (*func_mysqlnd_res_meta__clone_metadata)(MYSQLND_RES *result, const MYSQLND_RES_METADATA * const meta); -typedef void (*func_mysqlnd_res_meta__free_metadata)(MYSQLND_RES_METADATA * meta); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res_meta) -{ - func_mysqlnd_res_meta__fetch_field fetch_field; - func_mysqlnd_res_meta__fetch_field_direct fetch_field_direct; - func_mysqlnd_res_meta__fetch_fields fetch_fields; - func_mysqlnd_res_meta__field_tell field_tell; - func_mysqlnd_res_meta__field_seek field_seek; - func_mysqlnd_res_meta__read_metadata read_metadata; - func_mysqlnd_res_meta__clone_metadata clone_metadata; - func_mysqlnd_res_meta__free_metadata free_metadata; -}; - - -typedef enum_func_status (*func_mysqlnd_stmt__prepare)(MYSQLND_STMT * const stmt, const char * const query, const size_t query_len); -typedef enum_func_status (*func_mysqlnd_stmt__send_execute)(MYSQLND_STMT * const s, const enum_mysqlnd_send_execute_type type, zval * read_cb, zval * err_cb); -typedef enum_func_status (*func_mysqlnd_stmt__execute)(MYSQLND_STMT * const stmt); -typedef MYSQLND_RES * (*func_mysqlnd_stmt__use_result)(MYSQLND_STMT * const stmt); -typedef MYSQLND_RES * (*func_mysqlnd_stmt__store_result)(MYSQLND_STMT * const stmt); -typedef MYSQLND_RES * (*func_mysqlnd_stmt__get_result)(MYSQLND_STMT * const stmt); -typedef zend_bool (*func_mysqlnd_stmt__more_results)(const MYSQLND_STMT * const stmt); -typedef enum_func_status (*func_mysqlnd_stmt__next_result)(MYSQLND_STMT * const stmt); -typedef enum_func_status (*func_mysqlnd_stmt__free_result)(MYSQLND_STMT * const stmt); -typedef enum_func_status (*func_mysqlnd_stmt__seek_data)(const MYSQLND_STMT * const stmt, uint64_t row); -typedef enum_func_status (*func_mysqlnd_stmt__reset)(MYSQLND_STMT * const stmt); -typedef enum_func_status (*func_mysqlnd_stmt__close_on_server)(MYSQLND_STMT * const stmt, zend_bool implicit); /* private */ -typedef enum_func_status (*func_mysqlnd_stmt__dtor)(MYSQLND_STMT * const stmt, zend_bool implicit); /* use this for mysqlnd_stmt_close */ -typedef enum_func_status (*func_mysqlnd_stmt__fetch)(MYSQLND_STMT * const stmt, zend_bool * const fetched_anything); -typedef enum_func_status (*func_mysqlnd_stmt__bind_parameters)(MYSQLND_STMT * const stmt, MYSQLND_PARAM_BIND * const param_bind); -typedef enum_func_status (*func_mysqlnd_stmt__bind_one_parameter)(MYSQLND_STMT * const stmt, unsigned int param_no, zval * const zv, zend_uchar type); -typedef enum_func_status (*func_mysqlnd_stmt__refresh_bind_param)(MYSQLND_STMT * const stmt); -typedef enum_func_status (*func_mysqlnd_stmt__bind_result)(MYSQLND_STMT * const stmt, MYSQLND_RESULT_BIND * const result_bind); -typedef enum_func_status (*func_mysqlnd_stmt__bind_one_result)(MYSQLND_STMT * const stmt, unsigned int param_no); -typedef enum_func_status (*func_mysqlnd_stmt__send_long_data)(MYSQLND_STMT * const stmt, unsigned int param_num, const char * const data, zend_ulong length); -typedef MYSQLND_RES * (*func_mysqlnd_stmt__get_parameter_metadata)(MYSQLND_STMT * const stmt); -typedef MYSQLND_RES * (*func_mysqlnd_stmt__get_result_metadata)(MYSQLND_STMT * const stmt); -typedef uint64_t (*func_mysqlnd_stmt__get_last_insert_id)(const MYSQLND_STMT * const stmt); -typedef uint64_t (*func_mysqlnd_stmt__get_affected_rows)(const MYSQLND_STMT * const stmt); -typedef uint64_t (*func_mysqlnd_stmt__get_num_rows)(const MYSQLND_STMT * const stmt); -typedef unsigned int (*func_mysqlnd_stmt__get_param_count)(const MYSQLND_STMT * const stmt); -typedef unsigned int (*func_mysqlnd_stmt__get_field_count)(const MYSQLND_STMT * const stmt); -typedef unsigned int (*func_mysqlnd_stmt__get_warning_count)(const MYSQLND_STMT * const stmt); -typedef unsigned int (*func_mysqlnd_stmt__get_error_no)(const MYSQLND_STMT * const stmt); -typedef const char * (*func_mysqlnd_stmt__get_error_str)(const MYSQLND_STMT * const stmt); -typedef const char * (*func_mysqlnd_stmt__get_sqlstate)(const MYSQLND_STMT * const stmt); -typedef enum_func_status (*func_mysqlnd_stmt__get_attribute)(const MYSQLND_STMT * const stmt, enum mysqlnd_stmt_attr attr_type, void * const value); -typedef enum_func_status (*func_mysqlnd_stmt__set_attribute)(MYSQLND_STMT * const stmt, enum mysqlnd_stmt_attr attr_type, const void * const value); -typedef MYSQLND_PARAM_BIND *(*func_mysqlnd_stmt__alloc_param_bind)(MYSQLND_STMT * const stmt); -typedef MYSQLND_RESULT_BIND*(*func_mysqlnd_stmt__alloc_result_bind)(MYSQLND_STMT * const stmt); -typedef void (*func_mysqlnd_stmt__free_parameter_bind)(MYSQLND_STMT * const stmt, MYSQLND_PARAM_BIND *); -typedef void (*func_mysqlnd_stmt__free_result_bind)(MYSQLND_STMT * const stmt, MYSQLND_RESULT_BIND *); -typedef unsigned int (*func_mysqlnd_stmt__server_status)(const MYSQLND_STMT * const stmt); -typedef enum_func_status (*func_mysqlnd_stmt__generate_execute_request)(MYSQLND_STMT * const s, zend_uchar ** request, size_t *request_len, zend_bool * free_buffer); -typedef enum_func_status (*func_mysqlnd_stmt__parse_execute_response)(MYSQLND_STMT * const s, enum_mysqlnd_parse_exec_response_type type); -typedef void (*func_mysqlnd_stmt__free_stmt_content)(MYSQLND_STMT * const s); -typedef enum_func_status (*func_mysqlnd_stmt__flush)(MYSQLND_STMT * const stmt); -typedef void (*func_mysqlnd_stmt__free_stmt_result)(MYSQLND_STMT * const s); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_stmt) -{ - func_mysqlnd_stmt__prepare prepare; - func_mysqlnd_stmt__send_execute send_execute; - func_mysqlnd_stmt__execute execute; - func_mysqlnd_stmt__use_result use_result; - func_mysqlnd_stmt__store_result store_result; - func_mysqlnd_stmt__get_result get_result; - func_mysqlnd_stmt__more_results more_results; - func_mysqlnd_stmt__next_result next_result; - func_mysqlnd_stmt__free_result free_result; - func_mysqlnd_stmt__seek_data seek_data; - func_mysqlnd_stmt__reset reset; - func_mysqlnd_stmt__close_on_server close_on_server; - func_mysqlnd_stmt__dtor dtor; - func_mysqlnd_stmt__fetch fetch; - - func_mysqlnd_stmt__bind_parameters bind_parameters; - func_mysqlnd_stmt__bind_one_parameter bind_one_parameter; - func_mysqlnd_stmt__refresh_bind_param refresh_bind_param; - func_mysqlnd_stmt__bind_result bind_result; - func_mysqlnd_stmt__bind_one_result bind_one_result; - func_mysqlnd_stmt__send_long_data send_long_data; - func_mysqlnd_stmt__get_parameter_metadata get_parameter_metadata; - func_mysqlnd_stmt__get_result_metadata get_result_metadata; - - func_mysqlnd_stmt__get_last_insert_id get_last_insert_id; - func_mysqlnd_stmt__get_affected_rows get_affected_rows; - func_mysqlnd_stmt__get_num_rows get_num_rows; - - func_mysqlnd_stmt__get_param_count get_param_count; - func_mysqlnd_stmt__get_field_count get_field_count; - func_mysqlnd_stmt__get_warning_count get_warning_count; - - func_mysqlnd_stmt__get_error_no get_error_no; - func_mysqlnd_stmt__get_error_str get_error_str; - func_mysqlnd_stmt__get_sqlstate get_sqlstate; - - func_mysqlnd_stmt__get_attribute get_attribute; - func_mysqlnd_stmt__set_attribute set_attribute; - - func_mysqlnd_stmt__alloc_param_bind alloc_parameter_bind; - func_mysqlnd_stmt__alloc_result_bind alloc_result_bind; - - func_mysqlnd_stmt__free_parameter_bind free_parameter_bind; - func_mysqlnd_stmt__free_result_bind free_result_bind; - - func_mysqlnd_stmt__server_status get_server_status; - - func_mysqlnd_stmt__generate_execute_request generate_execute_request; - func_mysqlnd_stmt__parse_execute_response parse_execute_response; - - func_mysqlnd_stmt__free_stmt_content free_stmt_content; - - func_mysqlnd_stmt__flush flush; - - func_mysqlnd_stmt__free_stmt_result free_stmt_result; -}; - - -struct st_mysqlnd_vio_data -{ - php_stream *stream; - zend_bool ssl; - MYSQLND_VIO_OPTIONS options; -#ifdef MYSQLND_DO_WIRE_CHECK_BEFORE_COMMAND - zend_uchar last_command; -#else - zend_uchar unused_pad1; -#endif - - zend_bool persistent; - - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_vio) m; -}; - - -struct st_mysqlnd_vio -{ - struct st_mysqlnd_vio_data * data; - - zend_bool persistent; -}; - - - -typedef struct st_mysqlnd_connection_state MYSQLND_CONNECTION_STATE; -typedef enum mysqlnd_connection_state (*func_mysqlnd_connection_state__get)(const MYSQLND_CONNECTION_STATE * const state_struct); -typedef void (*func_mysqlnd_connection_state__set)(MYSQLND_CONNECTION_STATE * const state_struct, const enum mysqlnd_connection_state state); - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_connection_state) -{ - func_mysqlnd_connection_state__get get; - func_mysqlnd_connection_state__set set; -}; - -struct st_mysqlnd_connection_state -{ - enum mysqlnd_connection_state state; - - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_connection_state) *m; -}; - -struct st_mysqlnd_connection_data -{ -/* Operation related */ - MYSQLND_PFC * protocol_frame_codec; - MYSQLND_VIO * vio; - MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory; - -/* Information related */ - MYSQLND_STRING hostname; - MYSQLND_STRING unix_socket; - MYSQLND_STRING username; - MYSQLND_STRING password; - MYSQLND_STRING scheme; - uint64_t thread_id; - char *server_version; - char *host_info; - MYSQLND_STRING authentication_plugin_data; - const MYSQLND_CHARSET *charset; - const MYSQLND_CHARSET *greet_charset; - MYSQLND_STRING connect_or_select_db; - MYSQLND_INFILE infile; - unsigned int protocol_version; - unsigned int port; - zend_ulong server_capabilities; - - /* For UPSERT queries */ - MYSQLND_UPSERT_STATUS * upsert_status; - MYSQLND_UPSERT_STATUS upsert_status_impl; - MYSQLND_STRING last_message; - - /* If error packet, we use these */ - MYSQLND_ERROR_INFO * error_info; - MYSQLND_ERROR_INFO error_info_impl; - - MYSQLND_CONNECTION_STATE state; - enum_mysqlnd_query_type last_query_type; - /* Temporary storage between query and (use|store)_result() call */ - MYSQLND_RES *current_result; - - /* - How many result sets reference this connection. - It won't be freed until this number reaches 0. - The last one, please close the door! :-) - The result set objects can determine by inspecting - 'quit_sent' whether the connection is still valid. - */ - unsigned int refcount; - - /* Temporal storage for mysql_query */ - unsigned int field_count; - - /* options */ - MYSQLND_SESSION_OPTIONS * options; - MYSQLND_SESSION_OPTIONS options_impl; - - /* stats */ - MYSQLND_STATS * stats; - - size_t client_api_capabilities; - - zval async_read_cb; - zval async_err_cb; - zend_bool in_async_read_cb; - zend_bool in_async_err_cb; - - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) object_factory; - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_command) * command; - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data) * m; - - /* persistent connection */ - zend_bool persistent; -}; - - -struct st_mysqlnd_connection -{ - MYSQLND_CONN_DATA * data; - zend_bool persistent; - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn) * m; -}; - - - -struct st_mysqlnd_packet_greet; -struct st_mysqlnd_packet_auth; -struct st_mysqlnd_packet_auth_response; -struct st_mysqlnd_packet_change_auth_response; -struct st_mysqlnd_packet_ok; -struct st_mysqlnd_packet_command; -struct st_mysqlnd_packet_eof; -struct st_mysqlnd_packet_rset_header; -struct st_mysqlnd_packet_res_field; -struct st_mysqlnd_packet_row; -struct st_mysqlnd_packet_stats; -struct st_mysqlnd_packet_prepare_response; -struct st_mysqlnd_packet_chg_user_resp; -struct st_mysqlnd_packet_auth_pam; -struct st_mysqlnd_packet_sha256_pk_request; -struct st_mysqlnd_packet_sha256_pk_request_response; -struct st_mysqlnd_packet_cached_sha2_result; - -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_greet_packet)(struct st_mysqlnd_packet_greet *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_auth_packet)(struct st_mysqlnd_packet_auth *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_auth_response_packet)(struct st_mysqlnd_packet_auth_response *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_change_auth_response_packet)(struct st_mysqlnd_packet_change_auth_response *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_ok_packet)(struct st_mysqlnd_packet_ok *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_command_packet)(struct st_mysqlnd_packet_command *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_eof_packet)(struct st_mysqlnd_packet_eof *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_rset_header_packet)(struct st_mysqlnd_packet_rset_header *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_result_field_packet)(struct st_mysqlnd_packet_res_field *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_row_packet)(struct st_mysqlnd_packet_row *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_stats_packet)(struct st_mysqlnd_packet_stats *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_prepare_response_packet)(struct st_mysqlnd_packet_prepare_response *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_change_user_response_packet)(struct st_mysqlnd_packet_chg_user_resp *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_sha256_pk_request_packet)(struct st_mysqlnd_packet_sha256_pk_request *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_sha256_pk_request_response_packet)(struct st_mysqlnd_packet_sha256_pk_request_response *packet); -typedef void (*func_mysqlnd_protocol_payload_decoder_factory__init_cached_sha2_result_packet)(struct st_mysqlnd_packet_cached_sha2_result *packet); - -typedef enum_func_status (*func_mysqlnd_protocol_payload_decoder_factory__send_command)( - MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory, - const enum php_mysqlnd_server_command command, - const zend_uchar * const arg, const size_t arg_len, - const zend_bool silent, - - MYSQLND_CONNECTION_STATE * connection_state, - MYSQLND_ERROR_INFO * error_info, - MYSQLND_UPSERT_STATUS * upsert_status, - MYSQLND_STATS * stats, - func_mysqlnd_conn_data__send_close send_close, - void * send_close_ctx); - -typedef enum_func_status (*func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_OK)( - MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const payload_decoder_factory, - MYSQLND_ERROR_INFO * const error_info, - MYSQLND_UPSERT_STATUS * const upsert_status, - const zend_bool ignore_upsert_status, /* actually used only by LOAD DATA. COM_QUERY and COM_EXECUTE handle the responses themselves */ - MYSQLND_STRING * const last_message); - -typedef enum_func_status (*func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_EOF)( - MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const payload_decoder_factory, - MYSQLND_ERROR_INFO * const error_info, - MYSQLND_UPSERT_STATUS * const upsert_status); - -typedef enum_func_status (*func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_response)( - MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory, - const enum mysqlnd_packet_type ok_packet, - const zend_bool silent, - const enum php_mysqlnd_server_command command, - const zend_bool ignore_upsert_status, /* actually used only by LOAD DATA. COM_QUERY and COM_EXECUTE handle the responses themselves */ - - MYSQLND_ERROR_INFO * error_info, - MYSQLND_UPSERT_STATUS * upsert_status, - MYSQLND_STRING * last_message); - - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_payload_decoder_factory) -{ - func_mysqlnd_protocol_payload_decoder_factory__init_greet_packet init_greet_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_auth_packet init_auth_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_auth_response_packet init_auth_response_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_change_auth_response_packet init_change_auth_response_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_ok_packet init_ok_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_command_packet init_command_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_eof_packet init_eof_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_rset_header_packet init_rset_header_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_result_field_packet init_result_field_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_row_packet init_row_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_stats_packet init_stats_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_prepare_response_packet init_prepare_response_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_change_user_response_packet init_change_user_response_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_sha256_pk_request_packet init_sha256_pk_request_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_sha256_pk_request_response_packet init_sha256_pk_request_response_packet; - func_mysqlnd_protocol_payload_decoder_factory__init_cached_sha2_result_packet init_cached_sha2_result_packet; - - func_mysqlnd_protocol_payload_decoder_factory__send_command send_command; - func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_response send_command_handle_response; - func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_OK send_command_handle_OK; - func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_EOF send_command_handle_EOF; -}; - -struct st_mysqlnd_protocol_payload_decoder_factory -{ - MYSQLND_CONN_DATA * conn; - zend_bool persistent; - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_payload_decoder_factory) m; -}; - - -typedef struct st_mysqlnd_read_buffer { - zend_uchar * data; - size_t offset; - size_t size; - size_t len; - zend_bool (*is_empty)(const struct st_mysqlnd_read_buffer *); - void (*read)(struct st_mysqlnd_read_buffer *, size_t count, zend_uchar * dest); - size_t (*bytes_left)(const struct st_mysqlnd_read_buffer *); - void (*free_buffer)(struct st_mysqlnd_read_buffer **); -} MYSQLND_READ_BUFFER; - - - -typedef enum_func_status (*func_mysqlnd_pfc__init)(MYSQLND_PFC * const pfc, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info); -typedef void (*func_mysqlnd_pfc__dtor)(MYSQLND_PFC * const pfc, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); -typedef enum_func_status (*func_mysqlnd_pfc__reset)(MYSQLND_PFC * const pfc, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); -typedef enum_func_status (*func_mysqlnd_pfc__set_client_option)(MYSQLND_PFC * const pfc, enum_mysqlnd_client_option option, const char * const value); -typedef enum_func_status (*func_mysqlnd_pfc__decode)(zend_uchar * uncompressed_data, const size_t uncompressed_data_len, const zend_uchar * const compressed_data, const size_t compressed_data_len); -typedef enum_func_status (*func_mysqlnd_pfc__encode)(zend_uchar * compress_buffer, size_t * compress_buffer_len, const zend_uchar * const uncompressed_data, const size_t uncompressed_data_len); -typedef size_t (*func_mysqlnd_pfc__send)(MYSQLND_PFC * const pfc, MYSQLND_VIO * const vio, zend_uchar * const buffer, const size_t count, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); -typedef enum_func_status (*func_mysqlnd_pfc__receive)(MYSQLND_PFC * const pfc, MYSQLND_VIO * const vio, zend_uchar * const buffer, const size_t count, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info); -typedef enum_func_status (*func_mysqlnd_pfc__read_compressed_packet_from_stream_and_fill_read_buffer)(MYSQLND_PFC * pfc, MYSQLND_VIO * const vio, size_t net_payload_size, MYSQLND_STATS * conn_stats, MYSQLND_ERROR_INFO * error_info); -typedef void (*func_mysqlnd_pfc__free_contents)(MYSQLND_PFC * pfc); - -MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_packet_frame_codec) -{ - func_mysqlnd_pfc__init init; - func_mysqlnd_pfc__dtor dtor; - func_mysqlnd_pfc__reset reset; - func_mysqlnd_pfc__set_client_option set_client_option; - - func_mysqlnd_pfc__decode decode; - func_mysqlnd_pfc__encode encode; - - func_mysqlnd_pfc__send send; - func_mysqlnd_pfc__receive receive; - - func_mysqlnd_pfc__read_compressed_packet_from_stream_and_fill_read_buffer read_compressed_packet_from_stream_and_fill_read_buffer; - - func_mysqlnd_pfc__free_contents free_contents; -}; - - -struct st_mysqlnd_protocol_frame_codec_data -{ - php_stream *stream; - zend_bool compressed; - zend_bool ssl; - uint64_t flags; - char * sha256_server_public_key; - -#ifdef MYSQLND_COMPRESSION_ENABLED - MYSQLND_READ_BUFFER * uncompressed_data; -#else - void * unused_pad1; -#endif - - /* sequence for simple checking of correct packets */ - zend_uchar packet_no; - zend_uchar compressed_envelope_packet_no; - - zend_bool persistent; - - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_packet_frame_codec) m; -}; - - -struct st_mysqlnd_protocol_frame_codec -{ - MYSQLND_CMD_BUFFER cmd_buffer; - - struct st_mysqlnd_protocol_frame_codec_data * data; - - zend_bool persistent; -}; - - -struct st_mysqlnd_result_metadata -{ - MYSQLND_FIELD *fields; - - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res_meta) * m; - - unsigned int current_field; - unsigned int field_count; -}; - - -#define def_mysqlnd_buffered_result_parent \ - MYSQLND_ROW_BUFFER *row_buffers; \ - uint64_t row_count; \ - uint64_t initialized_rows; \ - \ - /* Column lengths of current row - both buffered and unbuffered. For buffered results it duplicates the data found in **data */ \ - size_t *lengths; \ - \ - MYSQLND_MEMORY_POOL *result_set_memory_pool; \ - \ - unsigned int references; \ - \ - MYSQLND_ERROR_INFO error_info; \ - \ - unsigned int field_count; \ - zend_bool ps; \ - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_buffered) m; \ - enum mysqlnd_buffered_type type; \ - void * unused1; \ - void * unused2; \ - void * unused3 - - -struct st_mysqlnd_buffered_result_parent -{ - def_mysqlnd_buffered_result_parent; -}; - - -struct st_mysqlnd_buffered_result_zval -{ - def_mysqlnd_buffered_result_parent; - - zval *data; - zval *data_cursor; -}; - - -struct st_mysqlnd_buffered_result_c -{ - def_mysqlnd_buffered_result_parent; - - zend_uchar *initialized; /* every row is a single bit */ - uint64_t current_row; -}; - - -struct st_mysqlnd_unbuffered_result -{ - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_unbuffered) m; - uint64_t row_count; - - /* For unbuffered (both normal and PS) */ - zval *last_row_data; - MYSQLND_ROW_BUFFER last_row_buffer; - - /* - Column lengths of current row - both buffered and unbuffered. - For buffered results it duplicates the data found in **data - */ - size_t *lengths; - - MYSQLND_MEMORY_POOL *result_set_memory_pool; - - struct st_mysqlnd_packet_row *row_packet; - - unsigned int field_count; - - zend_bool eof_reached; - - zend_bool ps; -}; - - -struct st_mysqlnd_res -{ - MYSQLND_CONN_DATA *conn; - enum_mysqlnd_res_type type; - unsigned int field_count; - - /* For metadata functions */ - MYSQLND_RES_METADATA *meta; - - /* To be used with store_result() - both normal and PS */ - MYSQLND_RES_BUFFERED *stored_data; - MYSQLND_RES_UNBUFFERED *unbuf; - - MYSQLND_MEMORY_POOL *memory_pool; - - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) m; -}; - - -struct st_mysqlnd_param_bind -{ - zval zv; - zend_uchar type; - enum_param_bind_flags flags; -}; - -struct st_mysqlnd_result_bind -{ - zval zv; - zend_bool bound; -}; - - -struct st_mysqlnd_stmt_data -{ - MYSQLND_CONN_DATA *conn; - zend_ulong stmt_id; - zend_ulong flags;/* cursor is set here */ - enum_mysqlnd_stmt_state state; - MYSQLND_RES *result; - unsigned int field_count; - unsigned int param_count; - unsigned char send_types_to_server; - MYSQLND_PARAM_BIND *param_bind; - MYSQLND_RESULT_BIND *result_bind; - - MYSQLND_UPSERT_STATUS * upsert_status; - MYSQLND_UPSERT_STATUS upsert_status_impl; - - MYSQLND_ERROR_INFO * error_info; - MYSQLND_ERROR_INFO error_info_impl; - - zend_bool update_max_length; - zend_ulong prefetch_rows; - - zend_bool cursor_exists; - mysqlnd_stmt_use_or_store_func default_rset_handler; - - zval execute_read_cb; - zval execute_err_cb; - zend_bool in_execute_read_cb; - zend_bool in_execute_err_cb; - - MYSQLND_CMD_BUFFER execute_cmd_buffer; - unsigned int execute_count;/* count how many times the stmt was executed */ -}; - - -struct st_mysqlnd_stmt -{ - MYSQLND_STMT_DATA * data; - MYSQLND_CLASS_METHODS_TYPE(mysqlnd_stmt) * m; -}; - - -struct st_mysqlnd_plugin_header -{ - unsigned int plugin_api_version; - const char * plugin_name; - zend_ulong plugin_version; - const char * plugin_string_version; - const char * plugin_license; - const char * plugin_author; - struct - { - MYSQLND_STATS * values; - const MYSQLND_STRING * names; - } plugin_stats; - - struct - { - enum_func_status (*plugin_shutdown)(void * plugin); - } m; -}; - - -struct st_mysqlnd_plugin_core -{ - struct st_mysqlnd_plugin_header plugin_header; -}; - - -struct st_mysqlnd_typeii_plugin_example -{ - struct st_mysqlnd_plugin_header plugin_header; - void * methods; - unsigned int counter; -}; - -struct st_mysqlnd_authentication_plugin; - -typedef zend_uchar * (*func_auth_plugin__get_auth_data)(struct st_mysqlnd_authentication_plugin * self, - size_t * auth_data_len, - MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd, - const size_t passwd_len, zend_uchar * auth_plugin_data, size_t auth_plugin_data_len, - const MYSQLND_SESSION_OPTIONS * const session_options, - const MYSQLND_PFC_DATA * const pfc_data, const zend_ulong mysql_flags - ); - -typedef enum_func_status (*func_auth_plugin__handle_server_response)(struct st_mysqlnd_authentication_plugin * self, - MYSQLND_CONN_DATA * conn, - const zend_uchar * auth_plugin_data, size_t auth_plugin_data_len, - const char * const passwd, - const size_t passwd_len, - char **new_auth_protocol, size_t *new_auth_protocol_len, - zend_uchar **new_auth_protocol_data, size_t *new_auth_protocol_data_len - ); - -struct st_mysqlnd_authentication_plugin -{ - struct st_mysqlnd_plugin_header plugin_header; - struct { - func_auth_plugin__get_auth_data get_auth_data; - func_auth_plugin__handle_server_response handle_server_response; - } methods; -}; - -#endif /* MYSQLND_STRUCTS_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_vio.h b/include/php/ext/mysqlnd/mysqlnd_vio.h deleted file mode 100644 index 93038bd..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_vio.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_VIO_H -#define MYSQLND_VIO_H - -PHPAPI MYSQLND_VIO * mysqlnd_vio_init(zend_bool persistent, MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *object_factory, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info); -PHPAPI void mysqlnd_vio_free(MYSQLND_VIO * const vio, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info); - -#endif /* MYSQLND_VIO_H */ diff --git a/include/php/ext/mysqlnd/mysqlnd_wireprotocol.h b/include/php/ext/mysqlnd/mysqlnd_wireprotocol.h deleted file mode 100644 index c4ef4c3..0000000 --- a/include/php/ext/mysqlnd/mysqlnd_wireprotocol.h +++ /dev/null @@ -1,327 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef MYSQLND_WIREPROTOCOL_H -#define MYSQLND_WIREPROTOCOL_H - -#define MYSQLND_HEADER_SIZE 4 -#define COMPRESSED_HEADER_SIZE 3 - -#define MYSQLND_NULL_LENGTH (zend_ulong) ~0 - -/* Used in mysqlnd_debug.c */ -PHPAPI extern const char mysqlnd_read_header_name[]; -PHPAPI extern const char mysqlnd_read_body_name[]; - - -/* Packet handling */ -#define PACKET_WRITE(conn, packet) ((packet)->header.m->write_to_net((conn), (packet))) -#define PACKET_READ(conn, packet) ((packet)->header.m->read_from_net((conn), (packet))) -#define PACKET_FREE(packet) \ - do { \ - DBG_INF_FMT("PACKET_FREE(%p)", packet); \ - if ((packet)->header.m->free_mem) { \ - ((packet)->header.m->free_mem((packet))); \ - } \ - } while (0); - -PHPAPI extern const char * const mysqlnd_command_to_text[COM_END]; - -/* Low-level extraction functionality */ -typedef struct st_mysqlnd_packet_methods { - enum_func_status (*read_from_net)(MYSQLND_CONN_DATA * conn, void * packet); - size_t (*write_to_net)(MYSQLND_CONN_DATA * conn, void * packet); - void (*free_mem)(void *packet); -} mysqlnd_packet_methods; - - -typedef struct st_mysqlnd_packet_header { - size_t size; - zend_uchar packet_no; - - mysqlnd_packet_methods *m; -} MYSQLND_PACKET_HEADER; - -/* Server greets the client */ -typedef struct st_mysqlnd_packet_greet { - MYSQLND_PACKET_HEADER header; - uint8_t protocol_version; - char *server_version; - uint32_t thread_id; - char intern_auth_plugin_data[SCRAMBLE_LENGTH]; - MYSQLND_STRING authentication_plugin_data; - /* 1 byte pad */ - uint32_t server_capabilities; - uint8_t charset_no; - uint16_t server_status; - /* 13 byte pad, in 5.5 first 2 bytes are more capabilities followed by 1 byte scramble_length */ - zend_bool pre41; - /* If error packet, we use these */ - char error[MYSQLND_ERRMSG_SIZE+1]; - char sqlstate[MYSQLND_SQLSTATE_LENGTH + 1]; - unsigned int error_no; - char *auth_protocol; -} MYSQLND_PACKET_GREET; - - -/* Client authenticates */ -typedef struct st_mysqlnd_packet_auth { - MYSQLND_PACKET_HEADER header; - const char *user; - const zend_uchar *auth_data; - size_t auth_data_len; - const char *db; - const char *auth_plugin_name; - uint32_t client_flags; - uint32_t max_packet_size; - uint8_t charset_no; - /* Here the packet ends. This is user supplied data */ - zend_bool send_auth_data; - zend_bool is_change_user_packet; - zend_bool silent; - HashTable *connect_attr; - size_t db_len; -} MYSQLND_PACKET_AUTH; - -/* Auth response packet */ -typedef struct st_mysqlnd_packet_auth_response { - MYSQLND_PACKET_HEADER header; - uint8_t response_code; - uint64_t affected_rows; - uint64_t last_insert_id; - uint16_t server_status; - uint16_t warning_count; - char *message; - size_t message_len; - /* If error packet, we use these */ - char error[MYSQLND_ERRMSG_SIZE+1]; - char sqlstate[MYSQLND_SQLSTATE_LENGTH + 1]; - unsigned int error_no; - - char *new_auth_protocol; - size_t new_auth_protocol_len; - zend_uchar *new_auth_protocol_data; - size_t new_auth_protocol_data_len; -} MYSQLND_PACKET_AUTH_RESPONSE; - - -/* Auth response packet */ -typedef struct st_mysqlnd_packet_change_auth_response { - MYSQLND_PACKET_HEADER header; - const zend_uchar *auth_data; - size_t auth_data_len; -} MYSQLND_PACKET_CHANGE_AUTH_RESPONSE; - - -/* OK packet */ -typedef struct st_mysqlnd_packet_ok { - MYSQLND_PACKET_HEADER header; - uint8_t field_count; /* always 0x0 */ - uint64_t affected_rows; - uint64_t last_insert_id; - uint16_t server_status; - uint16_t warning_count; - char *message; - size_t message_len; - /* If error packet, we use these */ - char error[MYSQLND_ERRMSG_SIZE+1]; - char sqlstate[MYSQLND_SQLSTATE_LENGTH + 1]; - unsigned int error_no; -} MYSQLND_PACKET_OK; - - -/* Command packet */ -typedef struct st_mysqlnd_packet_command { - MYSQLND_PACKET_HEADER header; - enum php_mysqlnd_server_command command; - MYSQLND_CSTRING argument; -} MYSQLND_PACKET_COMMAND; - - -/* EOF packet */ -typedef struct st_mysqlnd_packet_eof { - MYSQLND_PACKET_HEADER header; - uint8_t field_count; /* 0xFE */ - uint16_t warning_count; - uint16_t server_status; - /* If error packet, we use these */ - char error[MYSQLND_ERRMSG_SIZE+1]; - char sqlstate[MYSQLND_SQLSTATE_LENGTH + 1]; - unsigned int error_no; -} MYSQLND_PACKET_EOF; -/* EOF packet */ - - -/* Result Set header*/ -typedef struct st_mysqlnd_packet_rset_header { - MYSQLND_PACKET_HEADER header; - /* - 0x00 => ok - ~0 => LOAD DATA LOCAL - error_no != 0 => error - others => result set -> Read res_field packets up to field_count - */ - zend_ulong field_count; - /* - These are filled if no SELECT query. For SELECT warning_count - and server status are in the last row packet, the EOF packet. - */ - uint16_t warning_count; - uint16_t server_status; - uint64_t affected_rows; - uint64_t last_insert_id; - /* This is for both LOAD DATA or info, when no result set */ - MYSQLND_STRING info_or_local_file; - /* If error packet, we use these */ - MYSQLND_ERROR_INFO error_info; -} MYSQLND_PACKET_RSET_HEADER; - - -/* Result set field packet */ -typedef struct st_mysqlnd_packet_res_field { - MYSQLND_PACKET_HEADER header; - MYSQLND_MEMORY_POOL *memory_pool; - MYSQLND_FIELD *metadata; - /* For table definitions, empty for result sets */ - zend_bool skip_parsing; - - MYSQLND_ERROR_INFO error_info; -} MYSQLND_PACKET_RES_FIELD; - - -/* Row packet */ -typedef struct st_mysqlnd_packet_row { - MYSQLND_PACKET_HEADER header; - zval *fields; - uint32_t field_count; - zend_bool eof; - /* - These are, of course, only for SELECT in the EOF packet, - which is detected by this packet - */ - uint16_t warning_count; - uint16_t server_status; - - MYSQLND_ROW_BUFFER row_buffer; - MYSQLND_MEMORY_POOL * result_set_memory_pool; - - zend_bool skip_extraction; - zend_bool binary_protocol; - MYSQLND_FIELD *fields_metadata; - - /* If error packet, we use these */ - MYSQLND_ERROR_INFO error_info; -} MYSQLND_PACKET_ROW; - - -/* Statistics packet */ -typedef struct st_mysqlnd_packet_stats { - MYSQLND_PACKET_HEADER header; - MYSQLND_STRING message; -} MYSQLND_PACKET_STATS; - - -/* COM_PREPARE response packet */ -typedef struct st_mysqlnd_packet_prepare_response { - MYSQLND_PACKET_HEADER header; - /* also known as field_count 0x00=OK , 0xFF=error */ - unsigned char error_code; - zend_ulong stmt_id; - unsigned int field_count; - unsigned int param_count; - unsigned int warning_count; - - /* present in case of error */ - MYSQLND_ERROR_INFO error_info; -} MYSQLND_PACKET_PREPARE_RESPONSE; - - -/* Statistics packet */ -typedef struct st_mysqlnd_packet_chg_user_resp { - MYSQLND_PACKET_HEADER header; - uint32_t response_code; - - /* message_len is not part of the packet*/ - uint16_t server_capabilities; - /* If error packet, we use these */ - MYSQLND_ERROR_INFO error_info; - zend_bool server_asked_323_auth; - - char *new_auth_protocol; - size_t new_auth_protocol_len; - zend_uchar *new_auth_protocol_data; - size_t new_auth_protocol_data_len; -} MYSQLND_PACKET_CHG_USER_RESPONSE; - - -/* Command packet */ -typedef struct st_mysqlnd_packet_sha256_pk_request { - MYSQLND_PACKET_HEADER header; -} MYSQLND_PACKET_SHA256_PK_REQUEST; - -typedef struct st_mysqlnd_packet_sha256_pk_request_response { - MYSQLND_PACKET_HEADER header; - zend_uchar *public_key; - size_t public_key_len; -} MYSQLND_PACKET_SHA256_PK_REQUEST_RESPONSE; - -typedef struct st_mysqlnd_packet_cached_sha2_result { - MYSQLND_PACKET_HEADER header; - uint8_t response_code; - uint8_t result; - uint8_t request; - zend_uchar * password; - size_t password_len; - /* Used for auth switch request */ - char *new_auth_protocol; - size_t new_auth_protocol_len; - zend_uchar *new_auth_protocol_data; - size_t new_auth_protocol_data_len; - /* Used for error result */ - char error[MYSQLND_ERRMSG_SIZE+1]; - char sqlstate[MYSQLND_SQLSTATE_LENGTH + 1]; - unsigned int error_no; -} MYSQLND_PACKET_CACHED_SHA2_RESULT; - - - -zend_ulong php_mysqlnd_net_field_length(const zend_uchar **packet); -zend_uchar * php_mysqlnd_net_store_length(zend_uchar *packet, const uint64_t length); -size_t php_mysqlnd_net_store_length_size(uint64_t length); - -PHPAPI extern const char * const mysqlnd_empty_string; - -enum_func_status php_mysqlnd_rowp_read_binary_protocol(MYSQLND_ROW_BUFFER * row_buffer, zval * fields, - unsigned int field_count, const MYSQLND_FIELD * fields_metadata, - zend_bool as_int_or_float, MYSQLND_STATS * stats); - - -enum_func_status php_mysqlnd_rowp_read_text_protocol_zval(MYSQLND_ROW_BUFFER * row_buffer, zval * fields, - unsigned int field_count, const MYSQLND_FIELD * fields_metadata, - zend_bool as_int_or_float, MYSQLND_STATS * stats); - -enum_func_status php_mysqlnd_rowp_read_text_protocol_c(MYSQLND_ROW_BUFFER * row_buffer, zval * fields, - unsigned int field_count, const MYSQLND_FIELD * fields_metadata, - zend_bool as_int_or_float, MYSQLND_STATS * stats); - - -PHPAPI MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * mysqlnd_protocol_payload_decoder_factory_init(MYSQLND_CONN_DATA * conn, const zend_bool persistent); -PHPAPI void mysqlnd_protocol_payload_decoder_factory_free(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const payload_decoder_factory); - -#endif /* MYSQLND_WIREPROTOCOL_H */ diff --git a/include/php/ext/mysqlnd/php_mysqlnd.h b/include/php/ext/mysqlnd/php_mysqlnd.h deleted file mode 100644 index f202d03..0000000 --- a/include/php/ext/mysqlnd/php_mysqlnd.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andrey Hristov | - | Ulf Wendel | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_MYSQLND_H -#define PHP_MYSQLND_H - -#define phpext_mysqlnd_ptr &mysqlnd_module_entry -extern zend_module_entry mysqlnd_module_entry; - -#endif /* PHP_MYSQLND_H */ diff --git a/include/php/ext/pcre/pcre2lib/config.h b/include/php/ext/pcre/pcre2lib/config.h deleted file mode 100644 index 7864897..0000000 --- a/include/php/ext/pcre/pcre2lib/config.h +++ /dev/null @@ -1,100 +0,0 @@ - -#include - -#ifdef PHP_WIN32 -# include -#else -# include -#endif - -#define SUPPORT_UNICODE 1 -#define SUPPORT_PCRE2_8 1 - -#if defined(__GNUC__) && __GNUC__ >= 4 -# ifdef __cplusplus -# define PCRE2_EXP_DECL extern "C" __attribute__ ((visibility("default"))) -# else -# define PCRE2_EXP_DECL extern __attribute__ ((visibility("default"))) -# endif -# define PCRE2_EXP_DEFN __attribute__ ((visibility("default"))) -#endif - -/* Define to any value for valgrind support to find invalid memory reads. */ -#if HAVE_PCRE_VALGRIND_SUPPORT -#define SUPPORT_VALGRIND 1 -#endif - -/* Define to any value to enable support for Just-In-Time compiling. */ -#if HAVE_PCRE_JIT_SUPPORT -#define SUPPORT_JIT -#endif - -/* This limits the amount of memory that pcre2_match() may use while matching - a pattern. The value is in kilobytes. */ -#ifndef HEAP_LIMIT -#define HEAP_LIMIT 20000000 -#endif - -/* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested - parentheses (of any kind) in a pattern. This limits the amount of system - stack that is used while compiling a pattern. */ -#ifndef PARENS_NEST_LIMIT -#define PARENS_NEST_LIMIT 250 -#endif - -/* The value of MATCH_LIMIT determines the default number of times the - pcre2_match() function can record a backtrack position during a single - matching attempt. There is a runtime interface for setting a different - limit. The limit exists in order to catch runaway regular expressions that - take for ever to determine that they do not match. The default is set very - large so that it does not accidentally catch legitimate cases. */ -#ifndef MATCH_LIMIT -#define MATCH_LIMIT 10000000 -#endif - -/* The above limit applies to all backtracks, whether or not they are nested. - In some environments it is desirable to limit the nesting of backtracking - (that is, the depth of tree that is searched) more strictly, in order to - restrict the maximum amount of heap memory that is used. The value of - MATCH_LIMIT_DEPTH provides this facility. To have any useful effect, it - must be less than the value of MATCH_LIMIT. The default is to use the same - value as MATCH_LIMIT. There is a runtime method for setting a different - limit. */ -#ifndef MATCH_LIMIT_DEPTH -#define MATCH_LIMIT_DEPTH MATCH_LIMIT -#endif - -/* This limit is parameterized just in case anybody ever wants to change it. - Care must be taken if it is increased, because it guards against integer - overflow caused by enormously large patterns. */ -#ifndef MAX_NAME_COUNT -#define MAX_NAME_COUNT 10000 -#endif - -/* This limit is parameterized just in case anybody ever wants to change it. - Care must be taken if it is increased, because it guards against integer - overflow caused by enormously large patterns. */ -#ifndef MAX_NAME_SIZE -#define MAX_NAME_SIZE 32 -#endif - -/* Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns. */ -/* #undef NEVER_BACKSLASH_C */ - -/* The value of NEWLINE_DEFAULT determines the default newline character - sequence. PCRE2 client programs can override this by selecting other values - at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY), 5 - (ANYCRLF), and 6 (NUL). */ -#ifndef NEWLINE_DEFAULT -#define NEWLINE_DEFAULT 2 -#endif - -/* The value of LINK_SIZE determines the number of bytes used to store links - as offsets within the compiled regex. The default is 2, which allows for - compiled patterns up to 64K long. This covers the vast majority of cases. - However, PCRE2 can also be compiled to use 3 or 4 bytes instead. This - allows for longer patterns in extreme cases. */ -#ifndef LINK_SIZE -#define LINK_SIZE 2 -#endif - diff --git a/include/php/ext/pcre/pcre2lib/pcre2.h b/include/php/ext/pcre/pcre2lib/pcre2.h deleted file mode 100644 index 4a42a79..0000000 --- a/include/php/ext/pcre/pcre2lib/pcre2.h +++ /dev/null @@ -1,991 +0,0 @@ -/************************************************* -* Perl-Compatible Regular Expressions * -*************************************************/ - -/* This is the public header file for the PCRE library, second API, to be -#included by applications that call PCRE2 functions. - - Copyright (c) 2016-2020 University of Cambridge - ------------------------------------------------------------------------------ -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 the University of Cambridge 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. ------------------------------------------------------------------------------ -*/ - -#ifndef PCRE2_H_IDEMPOTENT_GUARD -#define PCRE2_H_IDEMPOTENT_GUARD - -/* The current PCRE version information. */ - -#define PCRE2_MAJOR 10 -#define PCRE2_MINOR 35 -#define PCRE2_PRERELEASE -#define PCRE2_DATE 2020-05-09 - -/* When an application links to a PCRE DLL in Windows, the symbols that are -imported have to be identified as such. When building PCRE2, the appropriate -export setting is defined in pcre2_internal.h, which includes this file. So we -don't change existing definitions of PCRE2_EXP_DECL. */ - -#if defined(_WIN32) && !defined(PCRE2_STATIC) -# ifndef PCRE2_EXP_DECL -# define PCRE2_EXP_DECL extern __declspec(dllimport) -# endif -#endif - -/* By default, we use the standard "extern" declarations. */ - -#ifndef PCRE2_EXP_DECL -# ifdef __cplusplus -# define PCRE2_EXP_DECL extern "C" -# else -# define PCRE2_EXP_DECL extern -# endif -#endif - -/* When compiling with the MSVC compiler, it is sometimes necessary to include -a "calling convention" before exported function names. (This is secondhand -information; I know nothing about MSVC myself). For example, something like - - void __cdecl function(....) - -might be needed. In order so make this easy, all the exported functions have -PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not -set, we ensure here that it has no effect. */ - -#ifndef PCRE2_CALL_CONVENTION -#define PCRE2_CALL_CONVENTION -#endif - -/* Have to include limits.h, stdlib.h, and inttypes.h to ensure that size_t and -uint8_t, UCHAR_MAX, etc are defined. Some systems that do have inttypes.h do -not have stdint.h, which is why we use inttypes.h, which according to the C -standard is a superset of stdint.h. If none of these headers are available, -the relevant values must be provided by some other means. */ - -#include -#include -#include - -/* Allow for C++ users compiling this directly. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* The following option bits can be passed to pcre2_compile(), pcre2_match(), -or pcre2_dfa_match(). PCRE2_NO_UTF_CHECK affects only the function to which it -is passed. Put these bits at the most significant end of the options word so -others can be added next to them */ - -#define PCRE2_ANCHORED 0x80000000u -#define PCRE2_NO_UTF_CHECK 0x40000000u -#define PCRE2_ENDANCHORED 0x20000000u - -/* The following option bits can be passed only to pcre2_compile(). However, -they may affect compilation, JIT compilation, and/or interpretive execution. -The following tags indicate which: - -C alters what is compiled by pcre2_compile() -J alters what is compiled by pcre2_jit_compile() -M is inspected during pcre2_match() execution -D is inspected during pcre2_dfa_match() execution -*/ - -#define PCRE2_ALLOW_EMPTY_CLASS 0x00000001u /* C */ -#define PCRE2_ALT_BSUX 0x00000002u /* C */ -#define PCRE2_AUTO_CALLOUT 0x00000004u /* C */ -#define PCRE2_CASELESS 0x00000008u /* C */ -#define PCRE2_DOLLAR_ENDONLY 0x00000010u /* J M D */ -#define PCRE2_DOTALL 0x00000020u /* C */ -#define PCRE2_DUPNAMES 0x00000040u /* C */ -#define PCRE2_EXTENDED 0x00000080u /* C */ -#define PCRE2_FIRSTLINE 0x00000100u /* J M D */ -#define PCRE2_MATCH_UNSET_BACKREF 0x00000200u /* C J M */ -#define PCRE2_MULTILINE 0x00000400u /* C */ -#define PCRE2_NEVER_UCP 0x00000800u /* C */ -#define PCRE2_NEVER_UTF 0x00001000u /* C */ -#define PCRE2_NO_AUTO_CAPTURE 0x00002000u /* C */ -#define PCRE2_NO_AUTO_POSSESS 0x00004000u /* C */ -#define PCRE2_NO_DOTSTAR_ANCHOR 0x00008000u /* C */ -#define PCRE2_NO_START_OPTIMIZE 0x00010000u /* J M D */ -#define PCRE2_UCP 0x00020000u /* C J M D */ -#define PCRE2_UNGREEDY 0x00040000u /* C */ -#define PCRE2_UTF 0x00080000u /* C J M D */ -#define PCRE2_NEVER_BACKSLASH_C 0x00100000u /* C */ -#define PCRE2_ALT_CIRCUMFLEX 0x00200000u /* J M D */ -#define PCRE2_ALT_VERBNAMES 0x00400000u /* C */ -#define PCRE2_USE_OFFSET_LIMIT 0x00800000u /* J M D */ -#define PCRE2_EXTENDED_MORE 0x01000000u /* C */ -#define PCRE2_LITERAL 0x02000000u /* C */ -#define PCRE2_MATCH_INVALID_UTF 0x04000000u /* J M D */ - -/* An additional compile options word is available in the compile context. */ - -#define PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES 0x00000001u /* C */ -#define PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL 0x00000002u /* C */ -#define PCRE2_EXTRA_MATCH_WORD 0x00000004u /* C */ -#define PCRE2_EXTRA_MATCH_LINE 0x00000008u /* C */ -#define PCRE2_EXTRA_ESCAPED_CR_IS_LF 0x00000010u /* C */ -#define PCRE2_EXTRA_ALT_BSUX 0x00000020u /* C */ - -/* These are for pcre2_jit_compile(). */ - -#define PCRE2_JIT_COMPLETE 0x00000001u /* For full matching */ -#define PCRE2_JIT_PARTIAL_SOFT 0x00000002u -#define PCRE2_JIT_PARTIAL_HARD 0x00000004u -#define PCRE2_JIT_INVALID_UTF 0x00000100u - -/* These are for pcre2_match(), pcre2_dfa_match(), pcre2_jit_match(), and -pcre2_substitute(). Some are allowed only for one of the functions, and in -these cases it is noted below. Note that PCRE2_ANCHORED, PCRE2_ENDANCHORED and -PCRE2_NO_UTF_CHECK can also be passed to these functions (though -pcre2_jit_match() ignores the latter since it bypasses all sanity checks). */ - -#define PCRE2_NOTBOL 0x00000001u -#define PCRE2_NOTEOL 0x00000002u -#define PCRE2_NOTEMPTY 0x00000004u /* ) These two must be kept */ -#define PCRE2_NOTEMPTY_ATSTART 0x00000008u /* ) adjacent to each other. */ -#define PCRE2_PARTIAL_SOFT 0x00000010u -#define PCRE2_PARTIAL_HARD 0x00000020u -#define PCRE2_DFA_RESTART 0x00000040u /* pcre2_dfa_match() only */ -#define PCRE2_DFA_SHORTEST 0x00000080u /* pcre2_dfa_match() only */ -#define PCRE2_SUBSTITUTE_GLOBAL 0x00000100u /* pcre2_substitute() only */ -#define PCRE2_SUBSTITUTE_EXTENDED 0x00000200u /* pcre2_substitute() only */ -#define PCRE2_SUBSTITUTE_UNSET_EMPTY 0x00000400u /* pcre2_substitute() only */ -#define PCRE2_SUBSTITUTE_UNKNOWN_UNSET 0x00000800u /* pcre2_substitute() only */ -#define PCRE2_SUBSTITUTE_OVERFLOW_LENGTH 0x00001000u /* pcre2_substitute() only */ -#define PCRE2_NO_JIT 0x00002000u /* Not for pcre2_dfa_match() */ -#define PCRE2_COPY_MATCHED_SUBJECT 0x00004000u -#define PCRE2_SUBSTITUTE_LITERAL 0x00008000u /* pcre2_substitute() only */ -#define PCRE2_SUBSTITUTE_MATCHED 0x00010000u /* pcre2_substitute() only */ -#define PCRE2_SUBSTITUTE_REPLACEMENT_ONLY 0x00020000u /* pcre2_substitute() only */ - -/* Options for pcre2_pattern_convert(). */ - -#define PCRE2_CONVERT_UTF 0x00000001u -#define PCRE2_CONVERT_NO_UTF_CHECK 0x00000002u -#define PCRE2_CONVERT_POSIX_BASIC 0x00000004u -#define PCRE2_CONVERT_POSIX_EXTENDED 0x00000008u -#define PCRE2_CONVERT_GLOB 0x00000010u -#define PCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR 0x00000030u -#define PCRE2_CONVERT_GLOB_NO_STARSTAR 0x00000050u - -/* Newline and \R settings, for use in compile contexts. The newline values -must be kept in step with values set in config.h and both sets must all be -greater than zero. */ - -#define PCRE2_NEWLINE_CR 1 -#define PCRE2_NEWLINE_LF 2 -#define PCRE2_NEWLINE_CRLF 3 -#define PCRE2_NEWLINE_ANY 4 -#define PCRE2_NEWLINE_ANYCRLF 5 -#define PCRE2_NEWLINE_NUL 6 - -#define PCRE2_BSR_UNICODE 1 -#define PCRE2_BSR_ANYCRLF 2 - -/* Error codes for pcre2_compile(). Some of these are also used by -pcre2_pattern_convert(). */ - -#define PCRE2_ERROR_END_BACKSLASH 101 -#define PCRE2_ERROR_END_BACKSLASH_C 102 -#define PCRE2_ERROR_UNKNOWN_ESCAPE 103 -#define PCRE2_ERROR_QUANTIFIER_OUT_OF_ORDER 104 -#define PCRE2_ERROR_QUANTIFIER_TOO_BIG 105 -#define PCRE2_ERROR_MISSING_SQUARE_BRACKET 106 -#define PCRE2_ERROR_ESCAPE_INVALID_IN_CLASS 107 -#define PCRE2_ERROR_CLASS_RANGE_ORDER 108 -#define PCRE2_ERROR_QUANTIFIER_INVALID 109 -#define PCRE2_ERROR_INTERNAL_UNEXPECTED_REPEAT 110 -#define PCRE2_ERROR_INVALID_AFTER_PARENS_QUERY 111 -#define PCRE2_ERROR_POSIX_CLASS_NOT_IN_CLASS 112 -#define PCRE2_ERROR_POSIX_NO_SUPPORT_COLLATING 113 -#define PCRE2_ERROR_MISSING_CLOSING_PARENTHESIS 114 -#define PCRE2_ERROR_BAD_SUBPATTERN_REFERENCE 115 -#define PCRE2_ERROR_NULL_PATTERN 116 -#define PCRE2_ERROR_BAD_OPTIONS 117 -#define PCRE2_ERROR_MISSING_COMMENT_CLOSING 118 -#define PCRE2_ERROR_PARENTHESES_NEST_TOO_DEEP 119 -#define PCRE2_ERROR_PATTERN_TOO_LARGE 120 -#define PCRE2_ERROR_HEAP_FAILED 121 -#define PCRE2_ERROR_UNMATCHED_CLOSING_PARENTHESIS 122 -#define PCRE2_ERROR_INTERNAL_CODE_OVERFLOW 123 -#define PCRE2_ERROR_MISSING_CONDITION_CLOSING 124 -#define PCRE2_ERROR_LOOKBEHIND_NOT_FIXED_LENGTH 125 -#define PCRE2_ERROR_ZERO_RELATIVE_REFERENCE 126 -#define PCRE2_ERROR_TOO_MANY_CONDITION_BRANCHES 127 -#define PCRE2_ERROR_CONDITION_ASSERTION_EXPECTED 128 -#define PCRE2_ERROR_BAD_RELATIVE_REFERENCE 129 -#define PCRE2_ERROR_UNKNOWN_POSIX_CLASS 130 -#define PCRE2_ERROR_INTERNAL_STUDY_ERROR 131 -#define PCRE2_ERROR_UNICODE_NOT_SUPPORTED 132 -#define PCRE2_ERROR_PARENTHESES_STACK_CHECK 133 -#define PCRE2_ERROR_CODE_POINT_TOO_BIG 134 -#define PCRE2_ERROR_LOOKBEHIND_TOO_COMPLICATED 135 -#define PCRE2_ERROR_LOOKBEHIND_INVALID_BACKSLASH_C 136 -#define PCRE2_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE 137 -#define PCRE2_ERROR_CALLOUT_NUMBER_TOO_BIG 138 -#define PCRE2_ERROR_MISSING_CALLOUT_CLOSING 139 -#define PCRE2_ERROR_ESCAPE_INVALID_IN_VERB 140 -#define PCRE2_ERROR_UNRECOGNIZED_AFTER_QUERY_P 141 -#define PCRE2_ERROR_MISSING_NAME_TERMINATOR 142 -#define PCRE2_ERROR_DUPLICATE_SUBPATTERN_NAME 143 -#define PCRE2_ERROR_INVALID_SUBPATTERN_NAME 144 -#define PCRE2_ERROR_UNICODE_PROPERTIES_UNAVAILABLE 145 -#define PCRE2_ERROR_MALFORMED_UNICODE_PROPERTY 146 -#define PCRE2_ERROR_UNKNOWN_UNICODE_PROPERTY 147 -#define PCRE2_ERROR_SUBPATTERN_NAME_TOO_LONG 148 -#define PCRE2_ERROR_TOO_MANY_NAMED_SUBPATTERNS 149 -#define PCRE2_ERROR_CLASS_INVALID_RANGE 150 -#define PCRE2_ERROR_OCTAL_BYTE_TOO_BIG 151 -#define PCRE2_ERROR_INTERNAL_OVERRAN_WORKSPACE 152 -#define PCRE2_ERROR_INTERNAL_MISSING_SUBPATTERN 153 -#define PCRE2_ERROR_DEFINE_TOO_MANY_BRANCHES 154 -#define PCRE2_ERROR_BACKSLASH_O_MISSING_BRACE 155 -#define PCRE2_ERROR_INTERNAL_UNKNOWN_NEWLINE 156 -#define PCRE2_ERROR_BACKSLASH_G_SYNTAX 157 -#define PCRE2_ERROR_PARENS_QUERY_R_MISSING_CLOSING 158 -/* Error 159 is obsolete and should now never occur */ -#define PCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED 159 -#define PCRE2_ERROR_VERB_UNKNOWN 160 -#define PCRE2_ERROR_SUBPATTERN_NUMBER_TOO_BIG 161 -#define PCRE2_ERROR_SUBPATTERN_NAME_EXPECTED 162 -#define PCRE2_ERROR_INTERNAL_PARSED_OVERFLOW 163 -#define PCRE2_ERROR_INVALID_OCTAL 164 -#define PCRE2_ERROR_SUBPATTERN_NAMES_MISMATCH 165 -#define PCRE2_ERROR_MARK_MISSING_ARGUMENT 166 -#define PCRE2_ERROR_INVALID_HEXADECIMAL 167 -#define PCRE2_ERROR_BACKSLASH_C_SYNTAX 168 -#define PCRE2_ERROR_BACKSLASH_K_SYNTAX 169 -#define PCRE2_ERROR_INTERNAL_BAD_CODE_LOOKBEHINDS 170 -#define PCRE2_ERROR_BACKSLASH_N_IN_CLASS 171 -#define PCRE2_ERROR_CALLOUT_STRING_TOO_LONG 172 -#define PCRE2_ERROR_UNICODE_DISALLOWED_CODE_POINT 173 -#define PCRE2_ERROR_UTF_IS_DISABLED 174 -#define PCRE2_ERROR_UCP_IS_DISABLED 175 -#define PCRE2_ERROR_VERB_NAME_TOO_LONG 176 -#define PCRE2_ERROR_BACKSLASH_U_CODE_POINT_TOO_BIG 177 -#define PCRE2_ERROR_MISSING_OCTAL_OR_HEX_DIGITS 178 -#define PCRE2_ERROR_VERSION_CONDITION_SYNTAX 179 -#define PCRE2_ERROR_INTERNAL_BAD_CODE_AUTO_POSSESS 180 -#define PCRE2_ERROR_CALLOUT_NO_STRING_DELIMITER 181 -#define PCRE2_ERROR_CALLOUT_BAD_STRING_DELIMITER 182 -#define PCRE2_ERROR_BACKSLASH_C_CALLER_DISABLED 183 -#define PCRE2_ERROR_QUERY_BARJX_NEST_TOO_DEEP 184 -#define PCRE2_ERROR_BACKSLASH_C_LIBRARY_DISABLED 185 -#define PCRE2_ERROR_PATTERN_TOO_COMPLICATED 186 -#define PCRE2_ERROR_LOOKBEHIND_TOO_LONG 187 -#define PCRE2_ERROR_PATTERN_STRING_TOO_LONG 188 -#define PCRE2_ERROR_INTERNAL_BAD_CODE 189 -#define PCRE2_ERROR_INTERNAL_BAD_CODE_IN_SKIP 190 -#define PCRE2_ERROR_NO_SURROGATES_IN_UTF16 191 -#define PCRE2_ERROR_BAD_LITERAL_OPTIONS 192 -#define PCRE2_ERROR_SUPPORTED_ONLY_IN_UNICODE 193 -#define PCRE2_ERROR_INVALID_HYPHEN_IN_OPTIONS 194 -#define PCRE2_ERROR_ALPHA_ASSERTION_UNKNOWN 195 -#define PCRE2_ERROR_SCRIPT_RUN_NOT_AVAILABLE 196 -#define PCRE2_ERROR_TOO_MANY_CAPTURES 197 -#define PCRE2_ERROR_CONDITION_ATOMIC_ASSERTION_EXPECTED 198 - - -/* "Expected" matching error codes: no match and partial match. */ - -#define PCRE2_ERROR_NOMATCH (-1) -#define PCRE2_ERROR_PARTIAL (-2) - -/* Error codes for UTF-8 validity checks */ - -#define PCRE2_ERROR_UTF8_ERR1 (-3) -#define PCRE2_ERROR_UTF8_ERR2 (-4) -#define PCRE2_ERROR_UTF8_ERR3 (-5) -#define PCRE2_ERROR_UTF8_ERR4 (-6) -#define PCRE2_ERROR_UTF8_ERR5 (-7) -#define PCRE2_ERROR_UTF8_ERR6 (-8) -#define PCRE2_ERROR_UTF8_ERR7 (-9) -#define PCRE2_ERROR_UTF8_ERR8 (-10) -#define PCRE2_ERROR_UTF8_ERR9 (-11) -#define PCRE2_ERROR_UTF8_ERR10 (-12) -#define PCRE2_ERROR_UTF8_ERR11 (-13) -#define PCRE2_ERROR_UTF8_ERR12 (-14) -#define PCRE2_ERROR_UTF8_ERR13 (-15) -#define PCRE2_ERROR_UTF8_ERR14 (-16) -#define PCRE2_ERROR_UTF8_ERR15 (-17) -#define PCRE2_ERROR_UTF8_ERR16 (-18) -#define PCRE2_ERROR_UTF8_ERR17 (-19) -#define PCRE2_ERROR_UTF8_ERR18 (-20) -#define PCRE2_ERROR_UTF8_ERR19 (-21) -#define PCRE2_ERROR_UTF8_ERR20 (-22) -#define PCRE2_ERROR_UTF8_ERR21 (-23) - -/* Error codes for UTF-16 validity checks */ - -#define PCRE2_ERROR_UTF16_ERR1 (-24) -#define PCRE2_ERROR_UTF16_ERR2 (-25) -#define PCRE2_ERROR_UTF16_ERR3 (-26) - -/* Error codes for UTF-32 validity checks */ - -#define PCRE2_ERROR_UTF32_ERR1 (-27) -#define PCRE2_ERROR_UTF32_ERR2 (-28) - -/* Miscellaneous error codes for pcre2[_dfa]_match(), substring extraction -functions, context functions, and serializing functions. They are in numerical -order. Originally they were in alphabetical order too, but now that PCRE2 is -released, the numbers must not be changed. */ - -#define PCRE2_ERROR_BADDATA (-29) -#define PCRE2_ERROR_MIXEDTABLES (-30) /* Name was changed */ -#define PCRE2_ERROR_BADMAGIC (-31) -#define PCRE2_ERROR_BADMODE (-32) -#define PCRE2_ERROR_BADOFFSET (-33) -#define PCRE2_ERROR_BADOPTION (-34) -#define PCRE2_ERROR_BADREPLACEMENT (-35) -#define PCRE2_ERROR_BADUTFOFFSET (-36) -#define PCRE2_ERROR_CALLOUT (-37) /* Never used by PCRE2 itself */ -#define PCRE2_ERROR_DFA_BADRESTART (-38) -#define PCRE2_ERROR_DFA_RECURSE (-39) -#define PCRE2_ERROR_DFA_UCOND (-40) -#define PCRE2_ERROR_DFA_UFUNC (-41) -#define PCRE2_ERROR_DFA_UITEM (-42) -#define PCRE2_ERROR_DFA_WSSIZE (-43) -#define PCRE2_ERROR_INTERNAL (-44) -#define PCRE2_ERROR_JIT_BADOPTION (-45) -#define PCRE2_ERROR_JIT_STACKLIMIT (-46) -#define PCRE2_ERROR_MATCHLIMIT (-47) -#define PCRE2_ERROR_NOMEMORY (-48) -#define PCRE2_ERROR_NOSUBSTRING (-49) -#define PCRE2_ERROR_NOUNIQUESUBSTRING (-50) -#define PCRE2_ERROR_NULL (-51) -#define PCRE2_ERROR_RECURSELOOP (-52) -#define PCRE2_ERROR_DEPTHLIMIT (-53) -#define PCRE2_ERROR_RECURSIONLIMIT (-53) /* Obsolete synonym */ -#define PCRE2_ERROR_UNAVAILABLE (-54) -#define PCRE2_ERROR_UNSET (-55) -#define PCRE2_ERROR_BADOFFSETLIMIT (-56) -#define PCRE2_ERROR_BADREPESCAPE (-57) -#define PCRE2_ERROR_REPMISSINGBRACE (-58) -#define PCRE2_ERROR_BADSUBSTITUTION (-59) -#define PCRE2_ERROR_BADSUBSPATTERN (-60) -#define PCRE2_ERROR_TOOMANYREPLACE (-61) -#define PCRE2_ERROR_BADSERIALIZEDDATA (-62) -#define PCRE2_ERROR_HEAPLIMIT (-63) -#define PCRE2_ERROR_CONVERT_SYNTAX (-64) -#define PCRE2_ERROR_INTERNAL_DUPMATCH (-65) -#define PCRE2_ERROR_DFA_UINVALID_UTF (-66) - - -/* Request types for pcre2_pattern_info() */ - -#define PCRE2_INFO_ALLOPTIONS 0 -#define PCRE2_INFO_ARGOPTIONS 1 -#define PCRE2_INFO_BACKREFMAX 2 -#define PCRE2_INFO_BSR 3 -#define PCRE2_INFO_CAPTURECOUNT 4 -#define PCRE2_INFO_FIRSTCODEUNIT 5 -#define PCRE2_INFO_FIRSTCODETYPE 6 -#define PCRE2_INFO_FIRSTBITMAP 7 -#define PCRE2_INFO_HASCRORLF 8 -#define PCRE2_INFO_JCHANGED 9 -#define PCRE2_INFO_JITSIZE 10 -#define PCRE2_INFO_LASTCODEUNIT 11 -#define PCRE2_INFO_LASTCODETYPE 12 -#define PCRE2_INFO_MATCHEMPTY 13 -#define PCRE2_INFO_MATCHLIMIT 14 -#define PCRE2_INFO_MAXLOOKBEHIND 15 -#define PCRE2_INFO_MINLENGTH 16 -#define PCRE2_INFO_NAMECOUNT 17 -#define PCRE2_INFO_NAMEENTRYSIZE 18 -#define PCRE2_INFO_NAMETABLE 19 -#define PCRE2_INFO_NEWLINE 20 -#define PCRE2_INFO_DEPTHLIMIT 21 -#define PCRE2_INFO_RECURSIONLIMIT 21 /* Obsolete synonym */ -#define PCRE2_INFO_SIZE 22 -#define PCRE2_INFO_HASBACKSLASHC 23 -#define PCRE2_INFO_FRAMESIZE 24 -#define PCRE2_INFO_HEAPLIMIT 25 -#define PCRE2_INFO_EXTRAOPTIONS 26 - -/* Request types for pcre2_config(). */ - -#define PCRE2_CONFIG_BSR 0 -#define PCRE2_CONFIG_JIT 1 -#define PCRE2_CONFIG_JITTARGET 2 -#define PCRE2_CONFIG_LINKSIZE 3 -#define PCRE2_CONFIG_MATCHLIMIT 4 -#define PCRE2_CONFIG_NEWLINE 5 -#define PCRE2_CONFIG_PARENSLIMIT 6 -#define PCRE2_CONFIG_DEPTHLIMIT 7 -#define PCRE2_CONFIG_RECURSIONLIMIT 7 /* Obsolete synonym */ -#define PCRE2_CONFIG_STACKRECURSE 8 /* Obsolete */ -#define PCRE2_CONFIG_UNICODE 9 -#define PCRE2_CONFIG_UNICODE_VERSION 10 -#define PCRE2_CONFIG_VERSION 11 -#define PCRE2_CONFIG_HEAPLIMIT 12 -#define PCRE2_CONFIG_NEVER_BACKSLASH_C 13 -#define PCRE2_CONFIG_COMPILED_WIDTHS 14 -#define PCRE2_CONFIG_TABLES_LENGTH 15 - - -/* Types for code units in patterns and subject strings. */ - -typedef uint8_t PCRE2_UCHAR8; -typedef uint16_t PCRE2_UCHAR16; -typedef uint32_t PCRE2_UCHAR32; - -typedef const PCRE2_UCHAR8 *PCRE2_SPTR8; -typedef const PCRE2_UCHAR16 *PCRE2_SPTR16; -typedef const PCRE2_UCHAR32 *PCRE2_SPTR32; - -/* The PCRE2_SIZE type is used for all string lengths and offsets in PCRE2, -including pattern offsets for errors and subject offsets after a match. We -define special values to indicate zero-terminated strings and unset offsets in -the offset vector (ovector). */ - -#define PCRE2_SIZE size_t -#define PCRE2_SIZE_MAX SIZE_MAX -#define PCRE2_ZERO_TERMINATED (~(PCRE2_SIZE)0) -#define PCRE2_UNSET (~(PCRE2_SIZE)0) - -/* Generic types for opaque structures and JIT callback functions. These -declarations are defined in a macro that is expanded for each width later. */ - -#define PCRE2_TYPES_LIST \ -struct pcre2_real_general_context; \ -typedef struct pcre2_real_general_context pcre2_general_context; \ -\ -struct pcre2_real_compile_context; \ -typedef struct pcre2_real_compile_context pcre2_compile_context; \ -\ -struct pcre2_real_match_context; \ -typedef struct pcre2_real_match_context pcre2_match_context; \ -\ -struct pcre2_real_convert_context; \ -typedef struct pcre2_real_convert_context pcre2_convert_context; \ -\ -struct pcre2_real_code; \ -typedef struct pcre2_real_code pcre2_code; \ -\ -struct pcre2_real_match_data; \ -typedef struct pcre2_real_match_data pcre2_match_data; \ -\ -struct pcre2_real_jit_stack; \ -typedef struct pcre2_real_jit_stack pcre2_jit_stack; \ -\ -typedef pcre2_jit_stack *(*pcre2_jit_callback)(void *); - - -/* The structures for passing out data via callout functions. We use structures -so that new fields can be added on the end in future versions, without changing -the API of the function, thereby allowing old clients to work without -modification. Define the generic versions in a macro; the width-specific -versions are generated from this macro below. */ - -/* Flags for the callout_flags field. These are cleared after a callout. */ - -#define PCRE2_CALLOUT_STARTMATCH 0x00000001u /* Set for each bumpalong */ -#define PCRE2_CALLOUT_BACKTRACK 0x00000002u /* Set after a backtrack */ - -#define PCRE2_STRUCTURE_LIST \ -typedef struct pcre2_callout_block { \ - uint32_t version; /* Identifies version of block */ \ - /* ------------------------ Version 0 ------------------------------- */ \ - uint32_t callout_number; /* Number compiled into pattern */ \ - uint32_t capture_top; /* Max current capture */ \ - uint32_t capture_last; /* Most recently closed capture */ \ - PCRE2_SIZE *offset_vector; /* The offset vector */ \ - PCRE2_SPTR mark; /* Pointer to current mark or NULL */ \ - PCRE2_SPTR subject; /* The subject being matched */ \ - PCRE2_SIZE subject_length; /* The length of the subject */ \ - PCRE2_SIZE start_match; /* Offset to start of this match attempt */ \ - PCRE2_SIZE current_position; /* Where we currently are in the subject */ \ - PCRE2_SIZE pattern_position; /* Offset to next item in the pattern */ \ - PCRE2_SIZE next_item_length; /* Length of next item in the pattern */ \ - /* ------------------- Added for Version 1 -------------------------- */ \ - PCRE2_SIZE callout_string_offset; /* Offset to string within pattern */ \ - PCRE2_SIZE callout_string_length; /* Length of string compiled into pattern */ \ - PCRE2_SPTR callout_string; /* String compiled into pattern */ \ - /* ------------------- Added for Version 2 -------------------------- */ \ - uint32_t callout_flags; /* See above for list */ \ - /* ------------------------------------------------------------------ */ \ -} pcre2_callout_block; \ -\ -typedef struct pcre2_callout_enumerate_block { \ - uint32_t version; /* Identifies version of block */ \ - /* ------------------------ Version 0 ------------------------------- */ \ - PCRE2_SIZE pattern_position; /* Offset to next item in the pattern */ \ - PCRE2_SIZE next_item_length; /* Length of next item in the pattern */ \ - uint32_t callout_number; /* Number compiled into pattern */ \ - PCRE2_SIZE callout_string_offset; /* Offset to string within pattern */ \ - PCRE2_SIZE callout_string_length; /* Length of string compiled into pattern */ \ - PCRE2_SPTR callout_string; /* String compiled into pattern */ \ - /* ------------------------------------------------------------------ */ \ -} pcre2_callout_enumerate_block; \ -\ -typedef struct pcre2_substitute_callout_block { \ - uint32_t version; /* Identifies version of block */ \ - /* ------------------------ Version 0 ------------------------------- */ \ - PCRE2_SPTR input; /* Pointer to input subject string */ \ - PCRE2_SPTR output; /* Pointer to output buffer */ \ - PCRE2_SIZE output_offsets[2]; /* Changed portion of the output */ \ - PCRE2_SIZE *ovector; /* Pointer to current ovector */ \ - uint32_t oveccount; /* Count of pairs set in ovector */ \ - uint32_t subscount; /* Substitution number */ \ - /* ------------------------------------------------------------------ */ \ -} pcre2_substitute_callout_block; - - -/* List the generic forms of all other functions in macros, which will be -expanded for each width below. Start with functions that give general -information. */ - -#define PCRE2_GENERAL_INFO_FUNCTIONS \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION pcre2_config(uint32_t, void *); - - -/* Functions for manipulating contexts. */ - -#define PCRE2_GENERAL_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_general_context PCRE2_CALL_CONVENTION \ - *pcre2_general_context_copy(pcre2_general_context *); \ -PCRE2_EXP_DECL pcre2_general_context PCRE2_CALL_CONVENTION \ - *pcre2_general_context_create(void *(*)(PCRE2_SIZE, void *), \ - void (*)(void *, void *), void *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_general_context_free(pcre2_general_context *); - -#define PCRE2_COMPILE_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_compile_context PCRE2_CALL_CONVENTION \ - *pcre2_compile_context_copy(pcre2_compile_context *); \ -PCRE2_EXP_DECL pcre2_compile_context PCRE2_CALL_CONVENTION \ - *pcre2_compile_context_create(pcre2_general_context *);\ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_compile_context_free(pcre2_compile_context *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_bsr(pcre2_compile_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_character_tables(pcre2_compile_context *, const uint8_t *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_compile_extra_options(pcre2_compile_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_max_pattern_length(pcre2_compile_context *, PCRE2_SIZE); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_newline(pcre2_compile_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_parens_nest_limit(pcre2_compile_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_compile_recursion_guard(pcre2_compile_context *, \ - int (*)(uint32_t, void *), void *); - -#define PCRE2_MATCH_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_match_context PCRE2_CALL_CONVENTION \ - *pcre2_match_context_copy(pcre2_match_context *); \ -PCRE2_EXP_DECL pcre2_match_context PCRE2_CALL_CONVENTION \ - *pcre2_match_context_create(pcre2_general_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_match_context_free(pcre2_match_context *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_callout(pcre2_match_context *, \ - int (*)(pcre2_callout_block *, void *), void *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_substitute_callout(pcre2_match_context *, \ - int (*)(pcre2_substitute_callout_block *, void *), void *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_depth_limit(pcre2_match_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_heap_limit(pcre2_match_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_match_limit(pcre2_match_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_offset_limit(pcre2_match_context *, PCRE2_SIZE); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_recursion_limit(pcre2_match_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_recursion_memory_management(pcre2_match_context *, \ - void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *); - -#define PCRE2_CONVERT_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_convert_context PCRE2_CALL_CONVENTION \ - *pcre2_convert_context_copy(pcre2_convert_context *); \ -PCRE2_EXP_DECL pcre2_convert_context PCRE2_CALL_CONVENTION \ - *pcre2_convert_context_create(pcre2_general_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_convert_context_free(pcre2_convert_context *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_glob_escape(pcre2_convert_context *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_set_glob_separator(pcre2_convert_context *, uint32_t); - - -/* Functions concerned with compiling a pattern to PCRE internal code. */ - -#define PCRE2_COMPILE_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \ - *pcre2_compile(PCRE2_SPTR, PCRE2_SIZE, uint32_t, int *, PCRE2_SIZE *, \ - pcre2_compile_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_code_free(pcre2_code *); \ -PCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \ - *pcre2_code_copy(const pcre2_code *); \ -PCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \ - *pcre2_code_copy_with_tables(const pcre2_code *); - - -/* Functions that give information about a compiled pattern. */ - -#define PCRE2_PATTERN_INFO_FUNCTIONS \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_pattern_info(const pcre2_code *, uint32_t, void *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_callout_enumerate(const pcre2_code *, \ - int (*)(pcre2_callout_enumerate_block *, void *), void *); - - -/* Functions for running a match and inspecting the result. */ - -#define PCRE2_MATCH_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_match_data PCRE2_CALL_CONVENTION \ - *pcre2_match_data_create(uint32_t, pcre2_general_context *); \ -PCRE2_EXP_DECL pcre2_match_data PCRE2_CALL_CONVENTION \ - *pcre2_match_data_create_from_pattern(const pcre2_code *, \ - pcre2_general_context *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_dfa_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ - uint32_t, pcre2_match_data *, pcre2_match_context *, int *, PCRE2_SIZE); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ - uint32_t, pcre2_match_data *, pcre2_match_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_match_data_free(pcre2_match_data *); \ -PCRE2_EXP_DECL PCRE2_SPTR PCRE2_CALL_CONVENTION \ - pcre2_get_mark(pcre2_match_data *); \ -PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ - pcre2_get_match_data_size(pcre2_match_data *); \ -PCRE2_EXP_DECL uint32_t PCRE2_CALL_CONVENTION \ - pcre2_get_ovector_count(pcre2_match_data *); \ -PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ - *pcre2_get_ovector_pointer(pcre2_match_data *); \ -PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ - pcre2_get_startchar(pcre2_match_data *); - - -/* Convenience functions for handling matched substrings. */ - -#define PCRE2_SUBSTRING_FUNCTIONS \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_copy_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_UCHAR *, \ - PCRE2_SIZE *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_copy_bynumber(pcre2_match_data *, uint32_t, PCRE2_UCHAR *, \ - PCRE2_SIZE *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_substring_free(PCRE2_UCHAR *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_get_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_UCHAR **, \ - PCRE2_SIZE *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_get_bynumber(pcre2_match_data *, uint32_t, PCRE2_UCHAR **, \ - PCRE2_SIZE *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_length_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_SIZE *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_length_bynumber(pcre2_match_data *, uint32_t, PCRE2_SIZE *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_nametable_scan(const pcre2_code *, PCRE2_SPTR, PCRE2_SPTR *, \ - PCRE2_SPTR *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_number_from_name(const pcre2_code *, PCRE2_SPTR); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_substring_list_free(PCRE2_SPTR *); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substring_list_get(pcre2_match_data *, PCRE2_UCHAR ***, PCRE2_SIZE **); - -/* Functions for serializing / deserializing compiled patterns. */ - -#define PCRE2_SERIALIZE_FUNCTIONS \ -PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ - pcre2_serialize_encode(const pcre2_code **, int32_t, uint8_t **, \ - PCRE2_SIZE *, pcre2_general_context *); \ -PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ - pcre2_serialize_decode(pcre2_code **, int32_t, const uint8_t *, \ - pcre2_general_context *); \ -PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ - pcre2_serialize_get_number_of_codes(const uint8_t *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_serialize_free(uint8_t *); - - -/* Convenience function for match + substitute. */ - -#define PCRE2_SUBSTITUTE_FUNCTION \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_substitute(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ - uint32_t, pcre2_match_data *, pcre2_match_context *, PCRE2_SPTR, \ - PCRE2_SIZE, PCRE2_UCHAR *, PCRE2_SIZE *); - - -/* Functions for converting pattern source strings. */ - -#define PCRE2_CONVERT_FUNCTIONS \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_pattern_convert(PCRE2_SPTR, PCRE2_SIZE, uint32_t, PCRE2_UCHAR **, \ - PCRE2_SIZE *, pcre2_convert_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_converted_pattern_free(PCRE2_UCHAR *); - - -/* Functions for JIT processing */ - -#define PCRE2_JIT_FUNCTIONS \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_jit_compile(pcre2_code *, uint32_t); \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_jit_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ - uint32_t, pcre2_match_data *, pcre2_match_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_jit_free_unused_memory(pcre2_general_context *); \ -PCRE2_EXP_DECL pcre2_jit_stack PCRE2_CALL_CONVENTION \ - *pcre2_jit_stack_create(PCRE2_SIZE, PCRE2_SIZE, pcre2_general_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_jit_stack_assign(pcre2_match_context *, pcre2_jit_callback, void *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_jit_stack_free(pcre2_jit_stack *); - - -/* Other miscellaneous functions. */ - -#define PCRE2_OTHER_FUNCTIONS \ -PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ - pcre2_get_error_message(int, PCRE2_UCHAR *, PCRE2_SIZE); \ -PCRE2_EXP_DECL const uint8_t PCRE2_CALL_CONVENTION \ - *pcre2_maketables(pcre2_general_context *); \ -PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ - pcre2_maketables_free(pcre2_general_context *, const uint8_t *); - -/* Define macros that generate width-specific names from generic versions. The -three-level macro scheme is necessary to get the macros expanded when we want -them to be. First we get the width from PCRE2_LOCAL_WIDTH, which is used for -generating three versions of everything below. After that, PCRE2_SUFFIX will be -re-defined to use PCRE2_CODE_UNIT_WIDTH, for use when macros such as -pcre2_compile are called by application code. */ - -#define PCRE2_JOIN(a,b) a ## b -#define PCRE2_GLUE(a,b) PCRE2_JOIN(a,b) -#define PCRE2_SUFFIX(a) PCRE2_GLUE(a,PCRE2_LOCAL_WIDTH) - - -/* Data types */ - -#define PCRE2_UCHAR PCRE2_SUFFIX(PCRE2_UCHAR) -#define PCRE2_SPTR PCRE2_SUFFIX(PCRE2_SPTR) - -#define pcre2_code PCRE2_SUFFIX(pcre2_code_) -#define pcre2_jit_callback PCRE2_SUFFIX(pcre2_jit_callback_) -#define pcre2_jit_stack PCRE2_SUFFIX(pcre2_jit_stack_) - -#define pcre2_real_code PCRE2_SUFFIX(pcre2_real_code_) -#define pcre2_real_general_context PCRE2_SUFFIX(pcre2_real_general_context_) -#define pcre2_real_compile_context PCRE2_SUFFIX(pcre2_real_compile_context_) -#define pcre2_real_convert_context PCRE2_SUFFIX(pcre2_real_convert_context_) -#define pcre2_real_match_context PCRE2_SUFFIX(pcre2_real_match_context_) -#define pcre2_real_jit_stack PCRE2_SUFFIX(pcre2_real_jit_stack_) -#define pcre2_real_match_data PCRE2_SUFFIX(pcre2_real_match_data_) - - -/* Data blocks */ - -#define pcre2_callout_block PCRE2_SUFFIX(pcre2_callout_block_) -#define pcre2_callout_enumerate_block PCRE2_SUFFIX(pcre2_callout_enumerate_block_) -#define pcre2_substitute_callout_block PCRE2_SUFFIX(pcre2_substitute_callout_block_) -#define pcre2_general_context PCRE2_SUFFIX(pcre2_general_context_) -#define pcre2_compile_context PCRE2_SUFFIX(pcre2_compile_context_) -#define pcre2_convert_context PCRE2_SUFFIX(pcre2_convert_context_) -#define pcre2_match_context PCRE2_SUFFIX(pcre2_match_context_) -#define pcre2_match_data PCRE2_SUFFIX(pcre2_match_data_) - - -/* Functions: the complete list in alphabetical order */ - -#define pcre2_callout_enumerate PCRE2_SUFFIX(pcre2_callout_enumerate_) -#define pcre2_code_copy PCRE2_SUFFIX(pcre2_code_copy_) -#define pcre2_code_copy_with_tables PCRE2_SUFFIX(pcre2_code_copy_with_tables_) -#define pcre2_code_free PCRE2_SUFFIX(pcre2_code_free_) -#define pcre2_compile PCRE2_SUFFIX(pcre2_compile_) -#define pcre2_compile_context_copy PCRE2_SUFFIX(pcre2_compile_context_copy_) -#define pcre2_compile_context_create PCRE2_SUFFIX(pcre2_compile_context_create_) -#define pcre2_compile_context_free PCRE2_SUFFIX(pcre2_compile_context_free_) -#define pcre2_config PCRE2_SUFFIX(pcre2_config_) -#define pcre2_convert_context_copy PCRE2_SUFFIX(pcre2_convert_context_copy_) -#define pcre2_convert_context_create PCRE2_SUFFIX(pcre2_convert_context_create_) -#define pcre2_convert_context_free PCRE2_SUFFIX(pcre2_convert_context_free_) -#define pcre2_converted_pattern_free PCRE2_SUFFIX(pcre2_converted_pattern_free_) -#define pcre2_dfa_match PCRE2_SUFFIX(pcre2_dfa_match_) -#define pcre2_general_context_copy PCRE2_SUFFIX(pcre2_general_context_copy_) -#define pcre2_general_context_create PCRE2_SUFFIX(pcre2_general_context_create_) -#define pcre2_general_context_free PCRE2_SUFFIX(pcre2_general_context_free_) -#define pcre2_get_error_message PCRE2_SUFFIX(pcre2_get_error_message_) -#define pcre2_get_mark PCRE2_SUFFIX(pcre2_get_mark_) -#define pcre2_get_match_data_size PCRE2_SUFFIX(pcre2_get_match_data_size_) -#define pcre2_get_ovector_pointer PCRE2_SUFFIX(pcre2_get_ovector_pointer_) -#define pcre2_get_ovector_count PCRE2_SUFFIX(pcre2_get_ovector_count_) -#define pcre2_get_startchar PCRE2_SUFFIX(pcre2_get_startchar_) -#define pcre2_jit_compile PCRE2_SUFFIX(pcre2_jit_compile_) -#define pcre2_jit_match PCRE2_SUFFIX(pcre2_jit_match_) -#define pcre2_jit_free_unused_memory PCRE2_SUFFIX(pcre2_jit_free_unused_memory_) -#define pcre2_jit_stack_assign PCRE2_SUFFIX(pcre2_jit_stack_assign_) -#define pcre2_jit_stack_create PCRE2_SUFFIX(pcre2_jit_stack_create_) -#define pcre2_jit_stack_free PCRE2_SUFFIX(pcre2_jit_stack_free_) -#define pcre2_maketables PCRE2_SUFFIX(pcre2_maketables_) -#define pcre2_maketables_free PCRE2_SUFFIX(pcre2_maketables_free_) -#define pcre2_match PCRE2_SUFFIX(pcre2_match_) -#define pcre2_match_context_copy PCRE2_SUFFIX(pcre2_match_context_copy_) -#define pcre2_match_context_create PCRE2_SUFFIX(pcre2_match_context_create_) -#define pcre2_match_context_free PCRE2_SUFFIX(pcre2_match_context_free_) -#define pcre2_match_data_create PCRE2_SUFFIX(pcre2_match_data_create_) -#define pcre2_match_data_create_from_pattern PCRE2_SUFFIX(pcre2_match_data_create_from_pattern_) -#define pcre2_match_data_free PCRE2_SUFFIX(pcre2_match_data_free_) -#define pcre2_pattern_convert PCRE2_SUFFIX(pcre2_pattern_convert_) -#define pcre2_pattern_info PCRE2_SUFFIX(pcre2_pattern_info_) -#define pcre2_serialize_decode PCRE2_SUFFIX(pcre2_serialize_decode_) -#define pcre2_serialize_encode PCRE2_SUFFIX(pcre2_serialize_encode_) -#define pcre2_serialize_free PCRE2_SUFFIX(pcre2_serialize_free_) -#define pcre2_serialize_get_number_of_codes PCRE2_SUFFIX(pcre2_serialize_get_number_of_codes_) -#define pcre2_set_bsr PCRE2_SUFFIX(pcre2_set_bsr_) -#define pcre2_set_callout PCRE2_SUFFIX(pcre2_set_callout_) -#define pcre2_set_character_tables PCRE2_SUFFIX(pcre2_set_character_tables_) -#define pcre2_set_compile_extra_options PCRE2_SUFFIX(pcre2_set_compile_extra_options_) -#define pcre2_set_compile_recursion_guard PCRE2_SUFFIX(pcre2_set_compile_recursion_guard_) -#define pcre2_set_depth_limit PCRE2_SUFFIX(pcre2_set_depth_limit_) -#define pcre2_set_glob_escape PCRE2_SUFFIX(pcre2_set_glob_escape_) -#define pcre2_set_glob_separator PCRE2_SUFFIX(pcre2_set_glob_separator_) -#define pcre2_set_heap_limit PCRE2_SUFFIX(pcre2_set_heap_limit_) -#define pcre2_set_match_limit PCRE2_SUFFIX(pcre2_set_match_limit_) -#define pcre2_set_max_pattern_length PCRE2_SUFFIX(pcre2_set_max_pattern_length_) -#define pcre2_set_newline PCRE2_SUFFIX(pcre2_set_newline_) -#define pcre2_set_parens_nest_limit PCRE2_SUFFIX(pcre2_set_parens_nest_limit_) -#define pcre2_set_offset_limit PCRE2_SUFFIX(pcre2_set_offset_limit_) -#define pcre2_set_substitute_callout PCRE2_SUFFIX(pcre2_set_substitute_callout_) -#define pcre2_substitute PCRE2_SUFFIX(pcre2_substitute_) -#define pcre2_substring_copy_byname PCRE2_SUFFIX(pcre2_substring_copy_byname_) -#define pcre2_substring_copy_bynumber PCRE2_SUFFIX(pcre2_substring_copy_bynumber_) -#define pcre2_substring_free PCRE2_SUFFIX(pcre2_substring_free_) -#define pcre2_substring_get_byname PCRE2_SUFFIX(pcre2_substring_get_byname_) -#define pcre2_substring_get_bynumber PCRE2_SUFFIX(pcre2_substring_get_bynumber_) -#define pcre2_substring_length_byname PCRE2_SUFFIX(pcre2_substring_length_byname_) -#define pcre2_substring_length_bynumber PCRE2_SUFFIX(pcre2_substring_length_bynumber_) -#define pcre2_substring_list_get PCRE2_SUFFIX(pcre2_substring_list_get_) -#define pcre2_substring_list_free PCRE2_SUFFIX(pcre2_substring_list_free_) -#define pcre2_substring_nametable_scan PCRE2_SUFFIX(pcre2_substring_nametable_scan_) -#define pcre2_substring_number_from_name PCRE2_SUFFIX(pcre2_substring_number_from_name_) - -/* Keep this old function name for backwards compatibility */ -#define pcre2_set_recursion_limit PCRE2_SUFFIX(pcre2_set_recursion_limit_) - -/* Keep this obsolete function for backwards compatibility: it is now a noop. */ -#define pcre2_set_recursion_memory_management PCRE2_SUFFIX(pcre2_set_recursion_memory_management_) - -/* Now generate all three sets of width-specific structures and function -prototypes. */ - -#define PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS \ -PCRE2_TYPES_LIST \ -PCRE2_STRUCTURE_LIST \ -PCRE2_GENERAL_INFO_FUNCTIONS \ -PCRE2_GENERAL_CONTEXT_FUNCTIONS \ -PCRE2_COMPILE_CONTEXT_FUNCTIONS \ -PCRE2_CONVERT_CONTEXT_FUNCTIONS \ -PCRE2_CONVERT_FUNCTIONS \ -PCRE2_MATCH_CONTEXT_FUNCTIONS \ -PCRE2_COMPILE_FUNCTIONS \ -PCRE2_PATTERN_INFO_FUNCTIONS \ -PCRE2_MATCH_FUNCTIONS \ -PCRE2_SUBSTRING_FUNCTIONS \ -PCRE2_SERIALIZE_FUNCTIONS \ -PCRE2_SUBSTITUTE_FUNCTION \ -PCRE2_JIT_FUNCTIONS \ -PCRE2_OTHER_FUNCTIONS - -#define PCRE2_LOCAL_WIDTH 8 -PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS -#undef PCRE2_LOCAL_WIDTH - -#define PCRE2_LOCAL_WIDTH 16 -PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS -#undef PCRE2_LOCAL_WIDTH - -#define PCRE2_LOCAL_WIDTH 32 -PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS -#undef PCRE2_LOCAL_WIDTH - -/* Undefine the list macros; they are no longer needed. */ - -#undef PCRE2_TYPES_LIST -#undef PCRE2_STRUCTURE_LIST -#undef PCRE2_GENERAL_INFO_FUNCTIONS -#undef PCRE2_GENERAL_CONTEXT_FUNCTIONS -#undef PCRE2_COMPILE_CONTEXT_FUNCTIONS -#undef PCRE2_CONVERT_CONTEXT_FUNCTIONS -#undef PCRE2_MATCH_CONTEXT_FUNCTIONS -#undef PCRE2_COMPILE_FUNCTIONS -#undef PCRE2_PATTERN_INFO_FUNCTIONS -#undef PCRE2_MATCH_FUNCTIONS -#undef PCRE2_SUBSTRING_FUNCTIONS -#undef PCRE2_SERIALIZE_FUNCTIONS -#undef PCRE2_SUBSTITUTE_FUNCTION -#undef PCRE2_JIT_FUNCTIONS -#undef PCRE2_OTHER_FUNCTIONS -#undef PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS - -/* PCRE2_CODE_UNIT_WIDTH must be defined. If it is 8, 16, or 32, redefine -PCRE2_SUFFIX to use it. If it is 0, undefine the other macros and make -PCRE2_SUFFIX a no-op. Otherwise, generate an error. */ - -#undef PCRE2_SUFFIX -#ifndef PCRE2_CODE_UNIT_WIDTH -#error PCRE2_CODE_UNIT_WIDTH must be defined before including pcre2.h. -#error Use 8, 16, or 32; or 0 for a multi-width application. -#else /* PCRE2_CODE_UNIT_WIDTH is defined */ -#if PCRE2_CODE_UNIT_WIDTH == 8 || \ - PCRE2_CODE_UNIT_WIDTH == 16 || \ - PCRE2_CODE_UNIT_WIDTH == 32 -#define PCRE2_SUFFIX(a) PCRE2_GLUE(a, PCRE2_CODE_UNIT_WIDTH) -#elif PCRE2_CODE_UNIT_WIDTH == 0 -#undef PCRE2_JOIN -#undef PCRE2_GLUE -#define PCRE2_SUFFIX(a) a -#else -#error PCRE2_CODE_UNIT_WIDTH must be 0, 8, 16, or 32. -#endif -#endif /* PCRE2_CODE_UNIT_WIDTH is defined */ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* PCRE2_H_IDEMPOTENT_GUARD */ - -/* End of pcre2.h */ diff --git a/include/php/ext/pcre/pcre2lib/pcre2_internal.h b/include/php/ext/pcre/pcre2lib/pcre2_internal.h deleted file mode 100644 index d8fad1e..0000000 --- a/include/php/ext/pcre/pcre2lib/pcre2_internal.h +++ /dev/null @@ -1,2004 +0,0 @@ -/************************************************* -* Perl-Compatible Regular Expressions * -*************************************************/ - -/* PCRE2 is a library of functions to support regular expressions whose syntax -and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel - Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2020 University of Cambridge - ------------------------------------------------------------------------------ -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 the University of Cambridge 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. ------------------------------------------------------------------------------ -*/ - -#ifndef PCRE2_INTERNAL_H_IDEMPOTENT_GUARD -#define PCRE2_INTERNAL_H_IDEMPOTENT_GUARD - -/* We do not support both EBCDIC and Unicode at the same time. The "configure" -script prevents both being selected, but not everybody uses "configure". EBCDIC -is only supported for the 8-bit library, but the check for this has to be later -in this file, because the first part is not width-dependent, and is included by -pcre2test.c with CODE_UNIT_WIDTH == 0. */ - -#if defined EBCDIC && defined SUPPORT_UNICODE -#error The use of both EBCDIC and SUPPORT_UNICODE is not supported. -#endif - -/* Standard C headers */ - -#include -#include -#include -#include -#include -#include - -/* Macros to make boolean values more obvious. The #ifndef is to pacify -compiler warnings in environments where these macros are defined elsewhere. -Unfortunately, there is no way to do the same for the typedef. */ - -typedef int BOOL; -#ifndef FALSE -#define FALSE 0 -#define TRUE 1 -#endif - -/* Valgrind (memcheck) support */ - -#ifdef SUPPORT_VALGRIND -#include -#endif - -/* -ftrivial-auto-var-init support supports initializing all local variables -to avoid some classes of bug, but this can cause an unacceptable slowdown -for large on-stack arrays in hot functions. This macro lets us annotate -such arrays. */ - -#ifdef HAVE_ATTRIBUTE_UNINITIALIZED -#define PCRE2_KEEP_UNINITIALIZED __attribute__((uninitialized)) -#else -#define PCRE2_KEEP_UNINITIALIZED -#endif - -/* Older versions of MSVC lack snprintf(). This define allows for -warning/error-free compilation and testing with MSVC compilers back to at least -MSVC 10/2010. Except for VC6 (which is missing some fundamentals and fails). */ - -#if defined(_MSC_VER) && (_MSC_VER < 1900) -#define snprintf _snprintf -#endif - -/* When compiling a DLL for Windows, the exported symbols have to be declared -using some MS magic. I found some useful information on this web page: -http://msdn2.microsoft.com/en-us/library/y4h7bcy6(VS.80).aspx. According to the -information there, using __declspec(dllexport) without "extern" we have a -definition; with "extern" we have a declaration. The settings here override the -setting in pcre2.h (which is included below); it defines only PCRE2_EXP_DECL, -which is all that is needed for applications (they just import the symbols). We -use: - - PCRE2_EXP_DECL for declarations - PCRE2_EXP_DEFN for definitions - -The reason for wrapping this in #ifndef PCRE2_EXP_DECL is so that pcre2test, -which is an application, but needs to import this file in order to "peek" at -internals, can #include pcre2.h first to get an application's-eye view. - -In principle, people compiling for non-Windows, non-Unix-like (i.e. uncommon, -special-purpose environments) might want to stick other stuff in front of -exported symbols. That's why, in the non-Windows case, we set PCRE2_EXP_DEFN -only if it is not already set. */ - -#ifndef PCRE2_EXP_DECL -# ifdef _WIN32 -# ifndef PCRE2_STATIC -# define PCRE2_EXP_DECL extern __declspec(dllexport) -# define PCRE2_EXP_DEFN __declspec(dllexport) -# else -# define PCRE2_EXP_DECL extern -# define PCRE2_EXP_DEFN -# endif -# else -# ifdef __cplusplus -# define PCRE2_EXP_DECL extern "C" -# else -# define PCRE2_EXP_DECL extern -# endif -# ifndef PCRE2_EXP_DEFN -# define PCRE2_EXP_DEFN PCRE2_EXP_DECL -# endif -# endif -#endif - -/* Include the public PCRE2 header and the definitions of UCP character -property values. This must follow the setting of PCRE2_EXP_DECL above. */ - -#include "pcre2.h" -#include "pcre2_ucp.h" - -/* When PCRE2 is compiled as a C++ library, the subject pointer can be replaced -with a custom type. This makes it possible, for example, to allow pcre2_match() -to process subject strings that are discontinuous by using a smart pointer -class. It must always be possible to inspect all of the subject string in -pcre2_match() because of the way it backtracks. */ - -/* WARNING: This is as yet untested for PCRE2. */ - -#ifdef CUSTOM_SUBJECT_PTR -#undef PCRE2_SPTR -#define PCRE2_SPTR CUSTOM_SUBJECT_PTR -#endif - -/* When checking for integer overflow in pcre2_compile(), we need to handle -large integers. If a 64-bit integer type is available, we can use that. -Otherwise we have to cast to double, which of course requires floating point -arithmetic. Handle this by defining a macro for the appropriate type. */ - -#if defined INT64_MAX || defined int64_t -#define INT64_OR_DOUBLE int64_t -#else -#define INT64_OR_DOUBLE double -#endif - -/* External (in the C sense) functions and tables that are private to the -libraries are always referenced using the PRIV macro. This makes it possible -for pcre2test.c to include some of the source files from the libraries using a -different PRIV definition to avoid name clashes. It also makes it clear in the -code that a non-static object is being referenced. */ - -#ifndef PRIV -#define PRIV(name) _pcre2_##name -#endif - -/* When compiling for use with the Virtual Pascal compiler, these functions -need to have their names changed. PCRE2 must be compiled with the -DVPCOMPAT -option on the command line. */ - -#ifdef VPCOMPAT -#define strlen(s) _strlen(s) -#define strncmp(s1,s2,m) _strncmp(s1,s2,m) -#define memcmp(s,c,n) _memcmp(s,c,n) -#define memcpy(d,s,n) _memcpy(d,s,n) -#define memmove(d,s,n) _memmove(d,s,n) -#define memset(s,c,n) _memset(s,c,n) -#else /* VPCOMPAT */ - -/* Otherwise, to cope with SunOS4 and other systems that lack memmove(), define -a macro that calls an emulating function. */ - -#ifndef HAVE_MEMMOVE -#undef memmove /* Some systems may have a macro */ -#define memmove(a, b, c) PRIV(memmove)(a, b, c) -#endif /* not HAVE_MEMMOVE */ -#endif /* not VPCOMPAT */ - -/* This is an unsigned int value that no UTF character can ever have, as -Unicode doesn't go beyond 0x0010ffff. */ - -#define NOTACHAR 0xffffffff - -/* This is the largest valid UTF/Unicode code point. */ - -#define MAX_UTF_CODE_POINT 0x10ffff - -/* Compile-time positive error numbers (all except UTF errors, which are -negative) start at this value. It should probably never be changed, in case -some application is checking for specific numbers. There is a copy of this -#define in pcre2posix.c (which now no longer includes this file). Ideally, a -way of having a single definition should be found, but as the number is -unlikely to change, this is not a pressing issue. The original reason for -having a base other than 0 was to keep the absolute values of compile-time and -run-time error numbers numerically different, but in the event the code does -not rely on this. */ - -#define COMPILE_ERROR_BASE 100 - -/* The initial frames vector for remembering backtracking points in -pcre2_match() is allocated on the system stack, of this size (bytes). The size -must be a multiple of sizeof(PCRE2_SPTR) in all environments, so making it a -multiple of 8 is best. Typical frame sizes are a few hundred bytes (it depends -on the number of capturing parentheses) so 20KiB handles quite a few frames. A -larger vector on the heap is obtained for patterns that need more frames. The -maximum size of this can be limited. */ - -#define START_FRAMES_SIZE 20480 - -/* Similarly, for DFA matching, an initial internal workspace vector is -allocated on the stack. */ - -#define DFA_START_RWS_SIZE 30720 - -/* Define the default BSR convention. */ - -#ifdef BSR_ANYCRLF -#define BSR_DEFAULT PCRE2_BSR_ANYCRLF -#else -#define BSR_DEFAULT PCRE2_BSR_UNICODE -#endif - - -/* ---------------- Basic UTF-8 macros ---------------- */ - -/* These UTF-8 macros are always defined because they are used in pcre2test for -handling wide characters in 16-bit and 32-bit modes, even if an 8-bit library -is not supported. */ - -/* Tests whether a UTF-8 code point needs extra bytes to decode. */ - -#define HASUTF8EXTRALEN(c) ((c) >= 0xc0) - -/* The following macros were originally written in the form of loops that used -data from the tables whose names start with PRIV(utf8_table). They were -rewritten by a user so as not to use loops, because in some environments this -gives a significant performance advantage, and it seems never to do any harm. -*/ - -/* Base macro to pick up the remaining bytes of a UTF-8 character, not -advancing the pointer. */ - -#define GETUTF8(c, eptr) \ - { \ - if ((c & 0x20u) == 0) \ - c = ((c & 0x1fu) << 6) | (eptr[1] & 0x3fu); \ - else if ((c & 0x10u) == 0) \ - c = ((c & 0x0fu) << 12) | ((eptr[1] & 0x3fu) << 6) | (eptr[2] & 0x3fu); \ - else if ((c & 0x08u) == 0) \ - c = ((c & 0x07u) << 18) | ((eptr[1] & 0x3fu) << 12) | \ - ((eptr[2] & 0x3fu) << 6) | (eptr[3] & 0x3fu); \ - else if ((c & 0x04u) == 0) \ - c = ((c & 0x03u) << 24) | ((eptr[1] & 0x3fu) << 18) | \ - ((eptr[2] & 0x3fu) << 12) | ((eptr[3] & 0x3fu) << 6) | \ - (eptr[4] & 0x3fu); \ - else \ - c = ((c & 0x01u) << 30) | ((eptr[1] & 0x3fu) << 24) | \ - ((eptr[2] & 0x3fu) << 18) | ((eptr[3] & 0x3fu) << 12) | \ - ((eptr[4] & 0x3fu) << 6) | (eptr[5] & 0x3fu); \ - } - -/* Base macro to pick up the remaining bytes of a UTF-8 character, advancing -the pointer. */ - -#define GETUTF8INC(c, eptr) \ - { \ - if ((c & 0x20u) == 0) \ - c = ((c & 0x1fu) << 6) | (*eptr++ & 0x3fu); \ - else if ((c & 0x10u) == 0) \ - { \ - c = ((c & 0x0fu) << 12) | ((*eptr & 0x3fu) << 6) | (eptr[1] & 0x3fu); \ - eptr += 2; \ - } \ - else if ((c & 0x08u) == 0) \ - { \ - c = ((c & 0x07u) << 18) | ((*eptr & 0x3fu) << 12) | \ - ((eptr[1] & 0x3fu) << 6) | (eptr[2] & 0x3fu); \ - eptr += 3; \ - } \ - else if ((c & 0x04u) == 0) \ - { \ - c = ((c & 0x03u) << 24) | ((*eptr & 0x3fu) << 18) | \ - ((eptr[1] & 0x3fu) << 12) | ((eptr[2] & 0x3fu) << 6) | \ - (eptr[3] & 0x3fu); \ - eptr += 4; \ - } \ - else \ - { \ - c = ((c & 0x01u) << 30) | ((*eptr & 0x3fu) << 24) | \ - ((eptr[1] & 0x3fu) << 18) | ((eptr[2] & 0x3fu) << 12) | \ - ((eptr[3] & 0x3fu) << 6) | (eptr[4] & 0x3fu); \ - eptr += 5; \ - } \ - } - -/* Base macro to pick up the remaining bytes of a UTF-8 character, not -advancing the pointer, incrementing the length. */ - -#define GETUTF8LEN(c, eptr, len) \ - { \ - if ((c & 0x20u) == 0) \ - { \ - c = ((c & 0x1fu) << 6) | (eptr[1] & 0x3fu); \ - len++; \ - } \ - else if ((c & 0x10u) == 0) \ - { \ - c = ((c & 0x0fu) << 12) | ((eptr[1] & 0x3fu) << 6) | (eptr[2] & 0x3fu); \ - len += 2; \ - } \ - else if ((c & 0x08u) == 0) \ - {\ - c = ((c & 0x07u) << 18) | ((eptr[1] & 0x3fu) << 12) | \ - ((eptr[2] & 0x3fu) << 6) | (eptr[3] & 0x3fu); \ - len += 3; \ - } \ - else if ((c & 0x04u) == 0) \ - { \ - c = ((c & 0x03u) << 24) | ((eptr[1] & 0x3fu) << 18) | \ - ((eptr[2] & 0x3fu) << 12) | ((eptr[3] & 0x3fu) << 6) | \ - (eptr[4] & 0x3fu); \ - len += 4; \ - } \ - else \ - {\ - c = ((c & 0x01u) << 30) | ((eptr[1] & 0x3fu) << 24) | \ - ((eptr[2] & 0x3fu) << 18) | ((eptr[3] & 0x3fu) << 12) | \ - ((eptr[4] & 0x3fu) << 6) | (eptr[5] & 0x3fu); \ - len += 5; \ - } \ - } - -/* --------------- Whitespace macros ---------------- */ - -/* Tests for Unicode horizontal and vertical whitespace characters must check a -number of different values. Using a switch statement for this generates the -fastest code (no loop, no memory access), and there are several places in the -interpreter code where this happens. In order to ensure that all the case lists -remain in step, we use macros so that there is only one place where the lists -are defined. - -These values are also required as lists in pcre2_compile.c when processing \h, -\H, \v and \V in a character class. The lists are defined in pcre2_tables.c, -but macros that define the values are here so that all the definitions are -together. The lists must be in ascending character order, terminated by -NOTACHAR (which is 0xffffffff). - -Any changes should ensure that the various macros are kept in step with each -other. NOTE: The values also appear in pcre2_jit_compile.c. */ - -/* -------------- ASCII/Unicode environments -------------- */ - -#ifndef EBCDIC - -/* Character U+180E (Mongolian Vowel Separator) is not included in the list of -spaces in the Unicode file PropList.txt, and Perl does not recognize it as a -space. However, in many other sources it is listed as a space and has been in -PCRE (both APIs) for a long time. */ - -#define HSPACE_LIST \ - CHAR_HT, CHAR_SPACE, CHAR_NBSP, \ - 0x1680, 0x180e, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, \ - 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202f, 0x205f, 0x3000, \ - NOTACHAR - -#define HSPACE_MULTIBYTE_CASES \ - case 0x1680: /* OGHAM SPACE MARK */ \ - case 0x180e: /* MONGOLIAN VOWEL SEPARATOR */ \ - case 0x2000: /* EN QUAD */ \ - case 0x2001: /* EM QUAD */ \ - case 0x2002: /* EN SPACE */ \ - case 0x2003: /* EM SPACE */ \ - case 0x2004: /* THREE-PER-EM SPACE */ \ - case 0x2005: /* FOUR-PER-EM SPACE */ \ - case 0x2006: /* SIX-PER-EM SPACE */ \ - case 0x2007: /* FIGURE SPACE */ \ - case 0x2008: /* PUNCTUATION SPACE */ \ - case 0x2009: /* THIN SPACE */ \ - case 0x200A: /* HAIR SPACE */ \ - case 0x202f: /* NARROW NO-BREAK SPACE */ \ - case 0x205f: /* MEDIUM MATHEMATICAL SPACE */ \ - case 0x3000 /* IDEOGRAPHIC SPACE */ - -#define HSPACE_BYTE_CASES \ - case CHAR_HT: \ - case CHAR_SPACE: \ - case CHAR_NBSP - -#define HSPACE_CASES \ - HSPACE_BYTE_CASES: \ - HSPACE_MULTIBYTE_CASES - -#define VSPACE_LIST \ - CHAR_LF, CHAR_VT, CHAR_FF, CHAR_CR, CHAR_NEL, 0x2028, 0x2029, NOTACHAR - -#define VSPACE_MULTIBYTE_CASES \ - case 0x2028: /* LINE SEPARATOR */ \ - case 0x2029 /* PARAGRAPH SEPARATOR */ - -#define VSPACE_BYTE_CASES \ - case CHAR_LF: \ - case CHAR_VT: \ - case CHAR_FF: \ - case CHAR_CR: \ - case CHAR_NEL - -#define VSPACE_CASES \ - VSPACE_BYTE_CASES: \ - VSPACE_MULTIBYTE_CASES - -/* -------------- EBCDIC environments -------------- */ - -#else -#define HSPACE_LIST CHAR_HT, CHAR_SPACE, CHAR_NBSP, NOTACHAR - -#define HSPACE_BYTE_CASES \ - case CHAR_HT: \ - case CHAR_SPACE: \ - case CHAR_NBSP - -#define HSPACE_CASES HSPACE_BYTE_CASES - -#ifdef EBCDIC_NL25 -#define VSPACE_LIST \ - CHAR_VT, CHAR_FF, CHAR_CR, CHAR_NEL, CHAR_LF, NOTACHAR -#else -#define VSPACE_LIST \ - CHAR_VT, CHAR_FF, CHAR_CR, CHAR_LF, CHAR_NEL, NOTACHAR -#endif - -#define VSPACE_BYTE_CASES \ - case CHAR_LF: \ - case CHAR_VT: \ - case CHAR_FF: \ - case CHAR_CR: \ - case CHAR_NEL - -#define VSPACE_CASES VSPACE_BYTE_CASES -#endif /* EBCDIC */ - -/* -------------- End of whitespace macros -------------- */ - - -/* PCRE2 is able to support several different kinds of newline (CR, LF, CRLF, -"any" and "anycrlf" at present). The following macros are used to package up -testing for newlines. NLBLOCK, PSSTART, and PSEND are defined in the various -modules to indicate in which datablock the parameters exist, and what the -start/end of string field names are. */ - -#define NLTYPE_FIXED 0 /* Newline is a fixed length string */ -#define NLTYPE_ANY 1 /* Newline is any Unicode line ending */ -#define NLTYPE_ANYCRLF 2 /* Newline is CR, LF, or CRLF */ - -/* This macro checks for a newline at the given position */ - -#define IS_NEWLINE(p) \ - ((NLBLOCK->nltype != NLTYPE_FIXED)? \ - ((p) < NLBLOCK->PSEND && \ - PRIV(is_newline)((p), NLBLOCK->nltype, NLBLOCK->PSEND, \ - &(NLBLOCK->nllen), utf)) \ - : \ - ((p) <= NLBLOCK->PSEND - NLBLOCK->nllen && \ - UCHAR21TEST(p) == NLBLOCK->nl[0] && \ - (NLBLOCK->nllen == 1 || UCHAR21TEST(p+1) == NLBLOCK->nl[1]) \ - ) \ - ) - -/* This macro checks for a newline immediately preceding the given position */ - -#define WAS_NEWLINE(p) \ - ((NLBLOCK->nltype != NLTYPE_FIXED)? \ - ((p) > NLBLOCK->PSSTART && \ - PRIV(was_newline)((p), NLBLOCK->nltype, NLBLOCK->PSSTART, \ - &(NLBLOCK->nllen), utf)) \ - : \ - ((p) >= NLBLOCK->PSSTART + NLBLOCK->nllen && \ - UCHAR21TEST(p - NLBLOCK->nllen) == NLBLOCK->nl[0] && \ - (NLBLOCK->nllen == 1 || UCHAR21TEST(p - NLBLOCK->nllen + 1) == NLBLOCK->nl[1]) \ - ) \ - ) - -/* Private flags containing information about the compiled pattern. The first -three must not be changed, because whichever is set is actually the number of -bytes in a code unit in that mode. */ - -#define PCRE2_MODE8 0x00000001 /* compiled in 8 bit mode */ -#define PCRE2_MODE16 0x00000002 /* compiled in 16 bit mode */ -#define PCRE2_MODE32 0x00000004 /* compiled in 32 bit mode */ -#define PCRE2_FIRSTSET 0x00000010 /* first_code unit is set */ -#define PCRE2_FIRSTCASELESS 0x00000020 /* caseless first code unit */ -#define PCRE2_FIRSTMAPSET 0x00000040 /* bitmap of first code units is set */ -#define PCRE2_LASTSET 0x00000080 /* last code unit is set */ -#define PCRE2_LASTCASELESS 0x00000100 /* caseless last code unit */ -#define PCRE2_STARTLINE 0x00000200 /* start after \n for multiline */ -#define PCRE2_JCHANGED 0x00000400 /* j option used in pattern */ -#define PCRE2_HASCRORLF 0x00000800 /* explicit \r or \n in pattern */ -#define PCRE2_HASTHEN 0x00001000 /* pattern contains (*THEN) */ -#define PCRE2_MATCH_EMPTY 0x00002000 /* pattern can match empty string */ -#define PCRE2_BSR_SET 0x00004000 /* BSR was set in the pattern */ -#define PCRE2_NL_SET 0x00008000 /* newline was set in the pattern */ -#define PCRE2_NOTEMPTY_SET 0x00010000 /* (*NOTEMPTY) used ) keep */ -#define PCRE2_NE_ATST_SET 0x00020000 /* (*NOTEMPTY_ATSTART) used) together */ -#define PCRE2_DEREF_TABLES 0x00040000 /* release character tables */ -#define PCRE2_NOJIT 0x00080000 /* (*NOJIT) used */ -#define PCRE2_HASBKPORX 0x00100000 /* contains \P, \p, or \X */ -#define PCRE2_DUPCAPUSED 0x00200000 /* contains (?| */ -#define PCRE2_HASBKC 0x00400000 /* contains \C */ -#define PCRE2_HASACCEPT 0x00800000 /* contains (*ACCEPT) */ - -#define PCRE2_MODE_MASK (PCRE2_MODE8 | PCRE2_MODE16 | PCRE2_MODE32) - -/* Values for the matchedby field in a match data block. */ - -enum { PCRE2_MATCHEDBY_INTERPRETER, /* pcre2_match() */ - PCRE2_MATCHEDBY_DFA_INTERPRETER, /* pcre2_dfa_match() */ - PCRE2_MATCHEDBY_JIT }; /* pcre2_jit_match() */ - -/* Values for the flags field in a match data block. */ - -#define PCRE2_MD_COPIED_SUBJECT 0x01u - -/* Magic number to provide a small check against being handed junk. */ - -#define MAGIC_NUMBER 0x50435245UL /* 'PCRE' */ - -/* The maximum remaining length of subject we are prepared to search for a -req_unit match from an anchored pattern. In 8-bit mode, memchr() is used and is -much faster than the search loop that has to be used in 16-bit and 32-bit -modes. */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 -#define REQ_CU_MAX 5000 -#else -#define REQ_CU_MAX 2000 -#endif - -/* Offsets for the bitmap tables in the cbits set of tables. Each table -contains a set of bits for a class map. Some classes are built by combining -these tables. */ - -#define cbit_space 0 /* [:space:] or \s */ -#define cbit_xdigit 32 /* [:xdigit:] */ -#define cbit_digit 64 /* [:digit:] or \d */ -#define cbit_upper 96 /* [:upper:] */ -#define cbit_lower 128 /* [:lower:] */ -#define cbit_word 160 /* [:word:] or \w */ -#define cbit_graph 192 /* [:graph:] */ -#define cbit_print 224 /* [:print:] */ -#define cbit_punct 256 /* [:punct:] */ -#define cbit_cntrl 288 /* [:cntrl:] */ -#define cbit_length 320 /* Length of the cbits table */ - -/* Bit definitions for entries in the ctypes table. Do not change these values -without checking pcre2_jit_compile.c, which has an assertion to ensure that -ctype_word has the value 16. */ - -#define ctype_space 0x01 -#define ctype_letter 0x02 -#define ctype_lcletter 0x04 -#define ctype_digit 0x08 -#define ctype_word 0x10 /* alphanumeric or '_' */ - -/* Offsets of the various tables from the base tables pointer, and -total length of the tables. */ - -#define lcc_offset 0 /* Lower case */ -#define fcc_offset 256 /* Flip case */ -#define cbits_offset 512 /* Character classes */ -#define ctypes_offset (cbits_offset + cbit_length) /* Character types */ -#define TABLES_LENGTH (ctypes_offset + 256) - - -/* -------------------- Character and string names ------------------------ */ - -/* If PCRE2 is to support UTF-8 on EBCDIC platforms, we cannot use normal -character constants like '*' because the compiler would emit their EBCDIC code, -which is different from their ASCII/UTF-8 code. Instead we define macros for -the characters so that they always use the ASCII/UTF-8 code when UTF-8 support -is enabled. When UTF-8 support is not enabled, the definitions use character -literals. Both character and string versions of each character are needed, and -there are some longer strings as well. - -This means that, on EBCDIC platforms, the PCRE2 library can handle either -EBCDIC, or UTF-8, but not both. To support both in the same compiled library -would need different lookups depending on whether PCRE2_UTF was set or not. -This would make it impossible to use characters in switch/case statements, -which would reduce performance. For a theoretical use (which nobody has asked -for) in a minority area (EBCDIC platforms), this is not sensible. Any -application that did need both could compile two versions of the library, using -macros to give the functions distinct names. */ - -#ifndef SUPPORT_UNICODE - -/* UTF-8 support is not enabled; use the platform-dependent character literals -so that PCRE2 works in both ASCII and EBCDIC environments, but only in non-UTF -mode. Newline characters are problematic in EBCDIC. Though it has CR and LF -characters, a common practice has been to use its NL (0x15) character as the -line terminator in C-like processing environments. However, sometimes the LF -(0x25) character is used instead, according to this Unicode document: - -http://unicode.org/standard/reports/tr13/tr13-5.html - -PCRE2 defaults EBCDIC NL to 0x15, but has a build-time option to select 0x25 -instead. Whichever is *not* chosen is defined as NEL. - -In both ASCII and EBCDIC environments, CHAR_NL and CHAR_LF are synonyms for the -same code point. */ - -#ifdef EBCDIC - -#ifndef EBCDIC_NL25 -#define CHAR_NL '\x15' -#define CHAR_NEL '\x25' -#define STR_NL "\x15" -#define STR_NEL "\x25" -#else -#define CHAR_NL '\x25' -#define CHAR_NEL '\x15' -#define STR_NL "\x25" -#define STR_NEL "\x15" -#endif - -#define CHAR_LF CHAR_NL -#define STR_LF STR_NL - -#define CHAR_ESC '\047' -#define CHAR_DEL '\007' -#define CHAR_NBSP ((unsigned char)'\x41') -#define STR_ESC "\047" -#define STR_DEL "\007" - -#else /* Not EBCDIC */ - -/* In ASCII/Unicode, linefeed is '\n' and we equate this to NL for -compatibility. NEL is the Unicode newline character; make sure it is -a positive value. */ - -#define CHAR_LF '\n' -#define CHAR_NL CHAR_LF -#define CHAR_NEL ((unsigned char)'\x85') -#define CHAR_ESC '\033' -#define CHAR_DEL '\177' -#define CHAR_NBSP ((unsigned char)'\xa0') - -#define STR_LF "\n" -#define STR_NL STR_LF -#define STR_NEL "\x85" -#define STR_ESC "\033" -#define STR_DEL "\177" - -#endif /* EBCDIC */ - -/* The remaining definitions work in both environments. */ - -#define CHAR_NUL '\0' -#define CHAR_HT '\t' -#define CHAR_VT '\v' -#define CHAR_FF '\f' -#define CHAR_CR '\r' -#define CHAR_BS '\b' -#define CHAR_BEL '\a' - -#define CHAR_SPACE ' ' -#define CHAR_EXCLAMATION_MARK '!' -#define CHAR_QUOTATION_MARK '"' -#define CHAR_NUMBER_SIGN '#' -#define CHAR_DOLLAR_SIGN '$' -#define CHAR_PERCENT_SIGN '%' -#define CHAR_AMPERSAND '&' -#define CHAR_APOSTROPHE '\'' -#define CHAR_LEFT_PARENTHESIS '(' -#define CHAR_RIGHT_PARENTHESIS ')' -#define CHAR_ASTERISK '*' -#define CHAR_PLUS '+' -#define CHAR_COMMA ',' -#define CHAR_MINUS '-' -#define CHAR_DOT '.' -#define CHAR_SLASH '/' -#define CHAR_0 '0' -#define CHAR_1 '1' -#define CHAR_2 '2' -#define CHAR_3 '3' -#define CHAR_4 '4' -#define CHAR_5 '5' -#define CHAR_6 '6' -#define CHAR_7 '7' -#define CHAR_8 '8' -#define CHAR_9 '9' -#define CHAR_COLON ':' -#define CHAR_SEMICOLON ';' -#define CHAR_LESS_THAN_SIGN '<' -#define CHAR_EQUALS_SIGN '=' -#define CHAR_GREATER_THAN_SIGN '>' -#define CHAR_QUESTION_MARK '?' -#define CHAR_COMMERCIAL_AT '@' -#define CHAR_A 'A' -#define CHAR_B 'B' -#define CHAR_C 'C' -#define CHAR_D 'D' -#define CHAR_E 'E' -#define CHAR_F 'F' -#define CHAR_G 'G' -#define CHAR_H 'H' -#define CHAR_I 'I' -#define CHAR_J 'J' -#define CHAR_K 'K' -#define CHAR_L 'L' -#define CHAR_M 'M' -#define CHAR_N 'N' -#define CHAR_O 'O' -#define CHAR_P 'P' -#define CHAR_Q 'Q' -#define CHAR_R 'R' -#define CHAR_S 'S' -#define CHAR_T 'T' -#define CHAR_U 'U' -#define CHAR_V 'V' -#define CHAR_W 'W' -#define CHAR_X 'X' -#define CHAR_Y 'Y' -#define CHAR_Z 'Z' -#define CHAR_LEFT_SQUARE_BRACKET '[' -#define CHAR_BACKSLASH '\\' -#define CHAR_RIGHT_SQUARE_BRACKET ']' -#define CHAR_CIRCUMFLEX_ACCENT '^' -#define CHAR_UNDERSCORE '_' -#define CHAR_GRAVE_ACCENT '`' -#define CHAR_a 'a' -#define CHAR_b 'b' -#define CHAR_c 'c' -#define CHAR_d 'd' -#define CHAR_e 'e' -#define CHAR_f 'f' -#define CHAR_g 'g' -#define CHAR_h 'h' -#define CHAR_i 'i' -#define CHAR_j 'j' -#define CHAR_k 'k' -#define CHAR_l 'l' -#define CHAR_m 'm' -#define CHAR_n 'n' -#define CHAR_o 'o' -#define CHAR_p 'p' -#define CHAR_q 'q' -#define CHAR_r 'r' -#define CHAR_s 's' -#define CHAR_t 't' -#define CHAR_u 'u' -#define CHAR_v 'v' -#define CHAR_w 'w' -#define CHAR_x 'x' -#define CHAR_y 'y' -#define CHAR_z 'z' -#define CHAR_LEFT_CURLY_BRACKET '{' -#define CHAR_VERTICAL_LINE '|' -#define CHAR_RIGHT_CURLY_BRACKET '}' -#define CHAR_TILDE '~' - -#define STR_HT "\t" -#define STR_VT "\v" -#define STR_FF "\f" -#define STR_CR "\r" -#define STR_BS "\b" -#define STR_BEL "\a" - -#define STR_SPACE " " -#define STR_EXCLAMATION_MARK "!" -#define STR_QUOTATION_MARK "\"" -#define STR_NUMBER_SIGN "#" -#define STR_DOLLAR_SIGN "$" -#define STR_PERCENT_SIGN "%" -#define STR_AMPERSAND "&" -#define STR_APOSTROPHE "'" -#define STR_LEFT_PARENTHESIS "(" -#define STR_RIGHT_PARENTHESIS ")" -#define STR_ASTERISK "*" -#define STR_PLUS "+" -#define STR_COMMA "," -#define STR_MINUS "-" -#define STR_DOT "." -#define STR_SLASH "/" -#define STR_0 "0" -#define STR_1 "1" -#define STR_2 "2" -#define STR_3 "3" -#define STR_4 "4" -#define STR_5 "5" -#define STR_6 "6" -#define STR_7 "7" -#define STR_8 "8" -#define STR_9 "9" -#define STR_COLON ":" -#define STR_SEMICOLON ";" -#define STR_LESS_THAN_SIGN "<" -#define STR_EQUALS_SIGN "=" -#define STR_GREATER_THAN_SIGN ">" -#define STR_QUESTION_MARK "?" -#define STR_COMMERCIAL_AT "@" -#define STR_A "A" -#define STR_B "B" -#define STR_C "C" -#define STR_D "D" -#define STR_E "E" -#define STR_F "F" -#define STR_G "G" -#define STR_H "H" -#define STR_I "I" -#define STR_J "J" -#define STR_K "K" -#define STR_L "L" -#define STR_M "M" -#define STR_N "N" -#define STR_O "O" -#define STR_P "P" -#define STR_Q "Q" -#define STR_R "R" -#define STR_S "S" -#define STR_T "T" -#define STR_U "U" -#define STR_V "V" -#define STR_W "W" -#define STR_X "X" -#define STR_Y "Y" -#define STR_Z "Z" -#define STR_LEFT_SQUARE_BRACKET "[" -#define STR_BACKSLASH "\\" -#define STR_RIGHT_SQUARE_BRACKET "]" -#define STR_CIRCUMFLEX_ACCENT "^" -#define STR_UNDERSCORE "_" -#define STR_GRAVE_ACCENT "`" -#define STR_a "a" -#define STR_b "b" -#define STR_c "c" -#define STR_d "d" -#define STR_e "e" -#define STR_f "f" -#define STR_g "g" -#define STR_h "h" -#define STR_i "i" -#define STR_j "j" -#define STR_k "k" -#define STR_l "l" -#define STR_m "m" -#define STR_n "n" -#define STR_o "o" -#define STR_p "p" -#define STR_q "q" -#define STR_r "r" -#define STR_s "s" -#define STR_t "t" -#define STR_u "u" -#define STR_v "v" -#define STR_w "w" -#define STR_x "x" -#define STR_y "y" -#define STR_z "z" -#define STR_LEFT_CURLY_BRACKET "{" -#define STR_VERTICAL_LINE "|" -#define STR_RIGHT_CURLY_BRACKET "}" -#define STR_TILDE "~" - -#define STRING_ACCEPT0 "ACCEPT\0" -#define STRING_COMMIT0 "COMMIT\0" -#define STRING_F0 "F\0" -#define STRING_FAIL0 "FAIL\0" -#define STRING_MARK0 "MARK\0" -#define STRING_PRUNE0 "PRUNE\0" -#define STRING_SKIP0 "SKIP\0" -#define STRING_THEN "THEN" - -#define STRING_atomic0 "atomic\0" -#define STRING_pla0 "pla\0" -#define STRING_plb0 "plb\0" -#define STRING_napla0 "napla\0" -#define STRING_naplb0 "naplb\0" -#define STRING_nla0 "nla\0" -#define STRING_nlb0 "nlb\0" -#define STRING_sr0 "sr\0" -#define STRING_asr0 "asr\0" -#define STRING_positive_lookahead0 "positive_lookahead\0" -#define STRING_positive_lookbehind0 "positive_lookbehind\0" -#define STRING_non_atomic_positive_lookahead0 "non_atomic_positive_lookahead\0" -#define STRING_non_atomic_positive_lookbehind0 "non_atomic_positive_lookbehind\0" -#define STRING_negative_lookahead0 "negative_lookahead\0" -#define STRING_negative_lookbehind0 "negative_lookbehind\0" -#define STRING_script_run0 "script_run\0" -#define STRING_atomic_script_run "atomic_script_run" - -#define STRING_alpha0 "alpha\0" -#define STRING_lower0 "lower\0" -#define STRING_upper0 "upper\0" -#define STRING_alnum0 "alnum\0" -#define STRING_ascii0 "ascii\0" -#define STRING_blank0 "blank\0" -#define STRING_cntrl0 "cntrl\0" -#define STRING_digit0 "digit\0" -#define STRING_graph0 "graph\0" -#define STRING_print0 "print\0" -#define STRING_punct0 "punct\0" -#define STRING_space0 "space\0" -#define STRING_word0 "word\0" -#define STRING_xdigit "xdigit" - -#define STRING_DEFINE "DEFINE" -#define STRING_VERSION "VERSION" -#define STRING_WEIRD_STARTWORD "[:<:]]" -#define STRING_WEIRD_ENDWORD "[:>:]]" - -#define STRING_CR_RIGHTPAR "CR)" -#define STRING_LF_RIGHTPAR "LF)" -#define STRING_CRLF_RIGHTPAR "CRLF)" -#define STRING_ANY_RIGHTPAR "ANY)" -#define STRING_ANYCRLF_RIGHTPAR "ANYCRLF)" -#define STRING_NUL_RIGHTPAR "NUL)" -#define STRING_BSR_ANYCRLF_RIGHTPAR "BSR_ANYCRLF)" -#define STRING_BSR_UNICODE_RIGHTPAR "BSR_UNICODE)" -#define STRING_UTF8_RIGHTPAR "UTF8)" -#define STRING_UTF16_RIGHTPAR "UTF16)" -#define STRING_UTF32_RIGHTPAR "UTF32)" -#define STRING_UTF_RIGHTPAR "UTF)" -#define STRING_UCP_RIGHTPAR "UCP)" -#define STRING_NO_AUTO_POSSESS_RIGHTPAR "NO_AUTO_POSSESS)" -#define STRING_NO_DOTSTAR_ANCHOR_RIGHTPAR "NO_DOTSTAR_ANCHOR)" -#define STRING_NO_JIT_RIGHTPAR "NO_JIT)" -#define STRING_NO_START_OPT_RIGHTPAR "NO_START_OPT)" -#define STRING_NOTEMPTY_RIGHTPAR "NOTEMPTY)" -#define STRING_NOTEMPTY_ATSTART_RIGHTPAR "NOTEMPTY_ATSTART)" -#define STRING_LIMIT_HEAP_EQ "LIMIT_HEAP=" -#define STRING_LIMIT_MATCH_EQ "LIMIT_MATCH=" -#define STRING_LIMIT_DEPTH_EQ "LIMIT_DEPTH=" -#define STRING_LIMIT_RECURSION_EQ "LIMIT_RECURSION=" -#define STRING_MARK "MARK" - -#else /* SUPPORT_UNICODE */ - -/* UTF-8 support is enabled; always use UTF-8 (=ASCII) character codes. This -works in both modes non-EBCDIC platforms, and on EBCDIC platforms in UTF-8 mode -only. */ - -#define CHAR_HT '\011' -#define CHAR_VT '\013' -#define CHAR_FF '\014' -#define CHAR_CR '\015' -#define CHAR_LF '\012' -#define CHAR_NL CHAR_LF -#define CHAR_NEL ((unsigned char)'\x85') -#define CHAR_BS '\010' -#define CHAR_BEL '\007' -#define CHAR_ESC '\033' -#define CHAR_DEL '\177' - -#define CHAR_NUL '\0' -#define CHAR_SPACE '\040' -#define CHAR_EXCLAMATION_MARK '\041' -#define CHAR_QUOTATION_MARK '\042' -#define CHAR_NUMBER_SIGN '\043' -#define CHAR_DOLLAR_SIGN '\044' -#define CHAR_PERCENT_SIGN '\045' -#define CHAR_AMPERSAND '\046' -#define CHAR_APOSTROPHE '\047' -#define CHAR_LEFT_PARENTHESIS '\050' -#define CHAR_RIGHT_PARENTHESIS '\051' -#define CHAR_ASTERISK '\052' -#define CHAR_PLUS '\053' -#define CHAR_COMMA '\054' -#define CHAR_MINUS '\055' -#define CHAR_DOT '\056' -#define CHAR_SLASH '\057' -#define CHAR_0 '\060' -#define CHAR_1 '\061' -#define CHAR_2 '\062' -#define CHAR_3 '\063' -#define CHAR_4 '\064' -#define CHAR_5 '\065' -#define CHAR_6 '\066' -#define CHAR_7 '\067' -#define CHAR_8 '\070' -#define CHAR_9 '\071' -#define CHAR_COLON '\072' -#define CHAR_SEMICOLON '\073' -#define CHAR_LESS_THAN_SIGN '\074' -#define CHAR_EQUALS_SIGN '\075' -#define CHAR_GREATER_THAN_SIGN '\076' -#define CHAR_QUESTION_MARK '\077' -#define CHAR_COMMERCIAL_AT '\100' -#define CHAR_A '\101' -#define CHAR_B '\102' -#define CHAR_C '\103' -#define CHAR_D '\104' -#define CHAR_E '\105' -#define CHAR_F '\106' -#define CHAR_G '\107' -#define CHAR_H '\110' -#define CHAR_I '\111' -#define CHAR_J '\112' -#define CHAR_K '\113' -#define CHAR_L '\114' -#define CHAR_M '\115' -#define CHAR_N '\116' -#define CHAR_O '\117' -#define CHAR_P '\120' -#define CHAR_Q '\121' -#define CHAR_R '\122' -#define CHAR_S '\123' -#define CHAR_T '\124' -#define CHAR_U '\125' -#define CHAR_V '\126' -#define CHAR_W '\127' -#define CHAR_X '\130' -#define CHAR_Y '\131' -#define CHAR_Z '\132' -#define CHAR_LEFT_SQUARE_BRACKET '\133' -#define CHAR_BACKSLASH '\134' -#define CHAR_RIGHT_SQUARE_BRACKET '\135' -#define CHAR_CIRCUMFLEX_ACCENT '\136' -#define CHAR_UNDERSCORE '\137' -#define CHAR_GRAVE_ACCENT '\140' -#define CHAR_a '\141' -#define CHAR_b '\142' -#define CHAR_c '\143' -#define CHAR_d '\144' -#define CHAR_e '\145' -#define CHAR_f '\146' -#define CHAR_g '\147' -#define CHAR_h '\150' -#define CHAR_i '\151' -#define CHAR_j '\152' -#define CHAR_k '\153' -#define CHAR_l '\154' -#define CHAR_m '\155' -#define CHAR_n '\156' -#define CHAR_o '\157' -#define CHAR_p '\160' -#define CHAR_q '\161' -#define CHAR_r '\162' -#define CHAR_s '\163' -#define CHAR_t '\164' -#define CHAR_u '\165' -#define CHAR_v '\166' -#define CHAR_w '\167' -#define CHAR_x '\170' -#define CHAR_y '\171' -#define CHAR_z '\172' -#define CHAR_LEFT_CURLY_BRACKET '\173' -#define CHAR_VERTICAL_LINE '\174' -#define CHAR_RIGHT_CURLY_BRACKET '\175' -#define CHAR_TILDE '\176' -#define CHAR_NBSP ((unsigned char)'\xa0') - -#define STR_HT "\011" -#define STR_VT "\013" -#define STR_FF "\014" -#define STR_CR "\015" -#define STR_NL "\012" -#define STR_BS "\010" -#define STR_BEL "\007" -#define STR_ESC "\033" -#define STR_DEL "\177" - -#define STR_SPACE "\040" -#define STR_EXCLAMATION_MARK "\041" -#define STR_QUOTATION_MARK "\042" -#define STR_NUMBER_SIGN "\043" -#define STR_DOLLAR_SIGN "\044" -#define STR_PERCENT_SIGN "\045" -#define STR_AMPERSAND "\046" -#define STR_APOSTROPHE "\047" -#define STR_LEFT_PARENTHESIS "\050" -#define STR_RIGHT_PARENTHESIS "\051" -#define STR_ASTERISK "\052" -#define STR_PLUS "\053" -#define STR_COMMA "\054" -#define STR_MINUS "\055" -#define STR_DOT "\056" -#define STR_SLASH "\057" -#define STR_0 "\060" -#define STR_1 "\061" -#define STR_2 "\062" -#define STR_3 "\063" -#define STR_4 "\064" -#define STR_5 "\065" -#define STR_6 "\066" -#define STR_7 "\067" -#define STR_8 "\070" -#define STR_9 "\071" -#define STR_COLON "\072" -#define STR_SEMICOLON "\073" -#define STR_LESS_THAN_SIGN "\074" -#define STR_EQUALS_SIGN "\075" -#define STR_GREATER_THAN_SIGN "\076" -#define STR_QUESTION_MARK "\077" -#define STR_COMMERCIAL_AT "\100" -#define STR_A "\101" -#define STR_B "\102" -#define STR_C "\103" -#define STR_D "\104" -#define STR_E "\105" -#define STR_F "\106" -#define STR_G "\107" -#define STR_H "\110" -#define STR_I "\111" -#define STR_J "\112" -#define STR_K "\113" -#define STR_L "\114" -#define STR_M "\115" -#define STR_N "\116" -#define STR_O "\117" -#define STR_P "\120" -#define STR_Q "\121" -#define STR_R "\122" -#define STR_S "\123" -#define STR_T "\124" -#define STR_U "\125" -#define STR_V "\126" -#define STR_W "\127" -#define STR_X "\130" -#define STR_Y "\131" -#define STR_Z "\132" -#define STR_LEFT_SQUARE_BRACKET "\133" -#define STR_BACKSLASH "\134" -#define STR_RIGHT_SQUARE_BRACKET "\135" -#define STR_CIRCUMFLEX_ACCENT "\136" -#define STR_UNDERSCORE "\137" -#define STR_GRAVE_ACCENT "\140" -#define STR_a "\141" -#define STR_b "\142" -#define STR_c "\143" -#define STR_d "\144" -#define STR_e "\145" -#define STR_f "\146" -#define STR_g "\147" -#define STR_h "\150" -#define STR_i "\151" -#define STR_j "\152" -#define STR_k "\153" -#define STR_l "\154" -#define STR_m "\155" -#define STR_n "\156" -#define STR_o "\157" -#define STR_p "\160" -#define STR_q "\161" -#define STR_r "\162" -#define STR_s "\163" -#define STR_t "\164" -#define STR_u "\165" -#define STR_v "\166" -#define STR_w "\167" -#define STR_x "\170" -#define STR_y "\171" -#define STR_z "\172" -#define STR_LEFT_CURLY_BRACKET "\173" -#define STR_VERTICAL_LINE "\174" -#define STR_RIGHT_CURLY_BRACKET "\175" -#define STR_TILDE "\176" - -#define STRING_ACCEPT0 STR_A STR_C STR_C STR_E STR_P STR_T "\0" -#define STRING_COMMIT0 STR_C STR_O STR_M STR_M STR_I STR_T "\0" -#define STRING_F0 STR_F "\0" -#define STRING_FAIL0 STR_F STR_A STR_I STR_L "\0" -#define STRING_MARK0 STR_M STR_A STR_R STR_K "\0" -#define STRING_PRUNE0 STR_P STR_R STR_U STR_N STR_E "\0" -#define STRING_SKIP0 STR_S STR_K STR_I STR_P "\0" -#define STRING_THEN STR_T STR_H STR_E STR_N - -#define STRING_atomic0 STR_a STR_t STR_o STR_m STR_i STR_c "\0" -#define STRING_pla0 STR_p STR_l STR_a "\0" -#define STRING_plb0 STR_p STR_l STR_b "\0" -#define STRING_napla0 STR_n STR_a STR_p STR_l STR_a "\0" -#define STRING_naplb0 STR_n STR_a STR_p STR_l STR_b "\0" -#define STRING_nla0 STR_n STR_l STR_a "\0" -#define STRING_nlb0 STR_n STR_l STR_b "\0" -#define STRING_sr0 STR_s STR_r "\0" -#define STRING_asr0 STR_a STR_s STR_r "\0" -#define STRING_positive_lookahead0 STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE STR_l STR_o STR_o STR_k STR_a STR_h STR_e STR_a STR_d "\0" -#define STRING_positive_lookbehind0 STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE STR_l STR_o STR_o STR_k STR_b STR_e STR_h STR_i STR_n STR_d "\0" -#define STRING_non_atomic_positive_lookahead0 STR_n STR_o STR_n STR_UNDERSCORE STR_a STR_t STR_o STR_m STR_i STR_c STR_UNDERSCORE STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE STR_l STR_o STR_o STR_k STR_a STR_h STR_e STR_a STR_d "\0" -#define STRING_non_atomic_positive_lookbehind0 STR_n STR_o STR_n STR_UNDERSCORE STR_a STR_t STR_o STR_m STR_i STR_c STR_UNDERSCORE STR_p STR_o STR_s STR_i STR_t STR_i STR_v STR_e STR_UNDERSCORE STR_l STR_o STR_o STR_k STR_b STR_e STR_h STR_i STR_n STR_d "\0" -#define STRING_negative_lookahead0 STR_n STR_e STR_g STR_a STR_t STR_i STR_v STR_e STR_UNDERSCORE STR_l STR_o STR_o STR_k STR_a STR_h STR_e STR_a STR_d "\0" -#define STRING_negative_lookbehind0 STR_n STR_e STR_g STR_a STR_t STR_i STR_v STR_e STR_UNDERSCORE STR_l STR_o STR_o STR_k STR_b STR_e STR_h STR_i STR_n STR_d "\0" -#define STRING_script_run0 STR_s STR_c STR_r STR_i STR_p STR_t STR_UNDERSCORE STR_r STR_u STR_n "\0" -#define STRING_atomic_script_run STR_a STR_t STR_o STR_m STR_i STR_c STR_UNDERSCORE STR_s STR_c STR_r STR_i STR_p STR_t STR_UNDERSCORE STR_r STR_u STR_n - -#define STRING_alpha0 STR_a STR_l STR_p STR_h STR_a "\0" -#define STRING_lower0 STR_l STR_o STR_w STR_e STR_r "\0" -#define STRING_upper0 STR_u STR_p STR_p STR_e STR_r "\0" -#define STRING_alnum0 STR_a STR_l STR_n STR_u STR_m "\0" -#define STRING_ascii0 STR_a STR_s STR_c STR_i STR_i "\0" -#define STRING_blank0 STR_b STR_l STR_a STR_n STR_k "\0" -#define STRING_cntrl0 STR_c STR_n STR_t STR_r STR_l "\0" -#define STRING_digit0 STR_d STR_i STR_g STR_i STR_t "\0" -#define STRING_graph0 STR_g STR_r STR_a STR_p STR_h "\0" -#define STRING_print0 STR_p STR_r STR_i STR_n STR_t "\0" -#define STRING_punct0 STR_p STR_u STR_n STR_c STR_t "\0" -#define STRING_space0 STR_s STR_p STR_a STR_c STR_e "\0" -#define STRING_word0 STR_w STR_o STR_r STR_d "\0" -#define STRING_xdigit STR_x STR_d STR_i STR_g STR_i STR_t - -#define STRING_DEFINE STR_D STR_E STR_F STR_I STR_N STR_E -#define STRING_VERSION STR_V STR_E STR_R STR_S STR_I STR_O STR_N -#define STRING_WEIRD_STARTWORD STR_LEFT_SQUARE_BRACKET STR_COLON STR_LESS_THAN_SIGN STR_COLON STR_RIGHT_SQUARE_BRACKET STR_RIGHT_SQUARE_BRACKET -#define STRING_WEIRD_ENDWORD STR_LEFT_SQUARE_BRACKET STR_COLON STR_GREATER_THAN_SIGN STR_COLON STR_RIGHT_SQUARE_BRACKET STR_RIGHT_SQUARE_BRACKET - -#define STRING_CR_RIGHTPAR STR_C STR_R STR_RIGHT_PARENTHESIS -#define STRING_LF_RIGHTPAR STR_L STR_F STR_RIGHT_PARENTHESIS -#define STRING_CRLF_RIGHTPAR STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS -#define STRING_ANY_RIGHTPAR STR_A STR_N STR_Y STR_RIGHT_PARENTHESIS -#define STRING_ANYCRLF_RIGHTPAR STR_A STR_N STR_Y STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS -#define STRING_NUL_RIGHTPAR STR_N STR_U STR_L STR_RIGHT_PARENTHESIS -#define STRING_BSR_ANYCRLF_RIGHTPAR STR_B STR_S STR_R STR_UNDERSCORE STR_A STR_N STR_Y STR_C STR_R STR_L STR_F STR_RIGHT_PARENTHESIS -#define STRING_BSR_UNICODE_RIGHTPAR STR_B STR_S STR_R STR_UNDERSCORE STR_U STR_N STR_I STR_C STR_O STR_D STR_E STR_RIGHT_PARENTHESIS -#define STRING_UTF8_RIGHTPAR STR_U STR_T STR_F STR_8 STR_RIGHT_PARENTHESIS -#define STRING_UTF16_RIGHTPAR STR_U STR_T STR_F STR_1 STR_6 STR_RIGHT_PARENTHESIS -#define STRING_UTF32_RIGHTPAR STR_U STR_T STR_F STR_3 STR_2 STR_RIGHT_PARENTHESIS -#define STRING_UTF_RIGHTPAR STR_U STR_T STR_F STR_RIGHT_PARENTHESIS -#define STRING_UCP_RIGHTPAR STR_U STR_C STR_P STR_RIGHT_PARENTHESIS -#define STRING_NO_AUTO_POSSESS_RIGHTPAR STR_N STR_O STR_UNDERSCORE STR_A STR_U STR_T STR_O STR_UNDERSCORE STR_P STR_O STR_S STR_S STR_E STR_S STR_S STR_RIGHT_PARENTHESIS -#define STRING_NO_DOTSTAR_ANCHOR_RIGHTPAR STR_N STR_O STR_UNDERSCORE STR_D STR_O STR_T STR_S STR_T STR_A STR_R STR_UNDERSCORE STR_A STR_N STR_C STR_H STR_O STR_R STR_RIGHT_PARENTHESIS -#define STRING_NO_JIT_RIGHTPAR STR_N STR_O STR_UNDERSCORE STR_J STR_I STR_T STR_RIGHT_PARENTHESIS -#define STRING_NO_START_OPT_RIGHTPAR STR_N STR_O STR_UNDERSCORE STR_S STR_T STR_A STR_R STR_T STR_UNDERSCORE STR_O STR_P STR_T STR_RIGHT_PARENTHESIS -#define STRING_NOTEMPTY_RIGHTPAR STR_N STR_O STR_T STR_E STR_M STR_P STR_T STR_Y STR_RIGHT_PARENTHESIS -#define STRING_NOTEMPTY_ATSTART_RIGHTPAR STR_N STR_O STR_T STR_E STR_M STR_P STR_T STR_Y STR_UNDERSCORE STR_A STR_T STR_S STR_T STR_A STR_R STR_T STR_RIGHT_PARENTHESIS -#define STRING_LIMIT_HEAP_EQ STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_H STR_E STR_A STR_P STR_EQUALS_SIGN -#define STRING_LIMIT_MATCH_EQ STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_M STR_A STR_T STR_C STR_H STR_EQUALS_SIGN -#define STRING_LIMIT_DEPTH_EQ STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_D STR_E STR_P STR_T STR_H STR_EQUALS_SIGN -#define STRING_LIMIT_RECURSION_EQ STR_L STR_I STR_M STR_I STR_T STR_UNDERSCORE STR_R STR_E STR_C STR_U STR_R STR_S STR_I STR_O STR_N STR_EQUALS_SIGN -#define STRING_MARK STR_M STR_A STR_R STR_K - -#endif /* SUPPORT_UNICODE */ - -/* -------------------- End of character and string names -------------------*/ - -/* -------------------- Definitions for compiled patterns -------------------*/ - -/* Codes for different types of Unicode property */ - -#define PT_ANY 0 /* Any property - matches all chars */ -#define PT_LAMP 1 /* L& - the union of Lu, Ll, Lt */ -#define PT_GC 2 /* Specified general characteristic (e.g. L) */ -#define PT_PC 3 /* Specified particular characteristic (e.g. Lu) */ -#define PT_SC 4 /* Script (e.g. Han) */ -#define PT_ALNUM 5 /* Alphanumeric - the union of L and N */ -#define PT_SPACE 6 /* Perl space - Z plus 9,10,12,13 */ -#define PT_PXSPACE 7 /* POSIX space - Z plus 9,10,11,12,13 */ -#define PT_WORD 8 /* Word - L plus N plus underscore */ -#define PT_CLIST 9 /* Pseudo-property: match character list */ -#define PT_UCNC 10 /* Universal Character nameable character */ -#define PT_TABSIZE 11 /* Size of square table for autopossessify tests */ - -/* The following special properties are used only in XCLASS items, when POSIX -classes are specified and PCRE2_UCP is set - in other words, for Unicode -handling of these classes. They are not available via the \p or \P escapes like -those in the above list, and so they do not take part in the autopossessifying -table. */ - -#define PT_PXGRAPH 11 /* [:graph:] - characters that mark the paper */ -#define PT_PXPRINT 12 /* [:print:] - [:graph:] plus non-control spaces */ -#define PT_PXPUNCT 13 /* [:punct:] - punctuation characters */ - -/* Flag bits and data types for the extended class (OP_XCLASS) for classes that -contain characters with values greater than 255. */ - -#define XCL_NOT 0x01 /* Flag: this is a negative class */ -#define XCL_MAP 0x02 /* Flag: a 32-byte map is present */ -#define XCL_HASPROP 0x04 /* Flag: property checks are present. */ - -#define XCL_END 0 /* Marks end of individual items */ -#define XCL_SINGLE 1 /* Single item (one multibyte char) follows */ -#define XCL_RANGE 2 /* A range (two multibyte chars) follows */ -#define XCL_PROP 3 /* Unicode property (2-byte property code follows) */ -#define XCL_NOTPROP 4 /* Unicode inverted property (ditto) */ - -/* These are escaped items that aren't just an encoding of a particular data -value such as \n. They must have non-zero values, as check_escape() returns 0 -for a data character. In the escapes[] table in pcre2_compile.c their values -are negated in order to distinguish them from data values. - -They must appear here in the same order as in the opcode definitions below, up -to ESC_z. There's a dummy for OP_ALLANY because it corresponds to "." in DOTALL -mode rather than an escape sequence. It is also used for [^] in JavaScript -compatibility mode, and for \C in non-utf mode. In non-DOTALL mode, "." behaves -like \N. - -Negative numbers are used to encode a backreference (\1, \2, \3, etc.) in -check_escape(). There are tests in the code for an escape greater than ESC_b -and less than ESC_Z to detect the types that may be repeated. These are the -types that consume characters. If any new escapes are put in between that don't -consume a character, that code will have to change. */ - -enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, ESC_b, ESC_D, ESC_d, ESC_S, ESC_s, - ESC_W, ESC_w, ESC_N, ESC_dum, ESC_C, ESC_P, ESC_p, ESC_R, ESC_H, - ESC_h, ESC_V, ESC_v, ESC_X, ESC_Z, ESC_z, - ESC_E, ESC_Q, ESC_g, ESC_k }; - - -/********************** Opcode definitions ******************/ - -/****** NOTE NOTE NOTE ****** - -Starting from 1 (i.e. after OP_END), the values up to OP_EOD must correspond in -order to the list of escapes immediately above. Furthermore, values up to -OP_DOLLM must not be changed without adjusting the table called autoposstab in -pcre2_auto_possess.c. - -Whenever this list is updated, the two macro definitions that follow must be -updated to match. The possessification table called "opcode_possessify" in -pcre2_compile.c must also be updated, and also the tables called "coptable" -and "poptable" in pcre2_dfa_match.c. - -****** NOTE NOTE NOTE ******/ - - -/* The values between FIRST_AUTOTAB_OP and LAST_AUTOTAB_RIGHT_OP, inclusive, -are used in a table for deciding whether a repeated character type can be -auto-possessified. */ - -#define FIRST_AUTOTAB_OP OP_NOT_DIGIT -#define LAST_AUTOTAB_LEFT_OP OP_EXTUNI -#define LAST_AUTOTAB_RIGHT_OP OP_DOLLM - -enum { - OP_END, /* 0 End of pattern */ - - /* Values corresponding to backslashed metacharacters */ - - OP_SOD, /* 1 Start of data: \A */ - OP_SOM, /* 2 Start of match (subject + offset): \G */ - OP_SET_SOM, /* 3 Set start of match (\K) */ - OP_NOT_WORD_BOUNDARY, /* 4 \B */ - OP_WORD_BOUNDARY, /* 5 \b */ - OP_NOT_DIGIT, /* 6 \D */ - OP_DIGIT, /* 7 \d */ - OP_NOT_WHITESPACE, /* 8 \S */ - OP_WHITESPACE, /* 9 \s */ - OP_NOT_WORDCHAR, /* 10 \W */ - OP_WORDCHAR, /* 11 \w */ - - OP_ANY, /* 12 Match any character except newline (\N) */ - OP_ALLANY, /* 13 Match any character */ - OP_ANYBYTE, /* 14 Match any byte (\C); different to OP_ANY for UTF-8 */ - OP_NOTPROP, /* 15 \P (not Unicode property) */ - OP_PROP, /* 16 \p (Unicode property) */ - OP_ANYNL, /* 17 \R (any newline sequence) */ - OP_NOT_HSPACE, /* 18 \H (not horizontal whitespace) */ - OP_HSPACE, /* 19 \h (horizontal whitespace) */ - OP_NOT_VSPACE, /* 20 \V (not vertical whitespace) */ - OP_VSPACE, /* 21 \v (vertical whitespace) */ - OP_EXTUNI, /* 22 \X (extended Unicode sequence */ - OP_EODN, /* 23 End of data or \n at end of data (\Z) */ - OP_EOD, /* 24 End of data (\z) */ - - /* Line end assertions */ - - OP_DOLL, /* 25 End of line - not multiline */ - OP_DOLLM, /* 26 End of line - multiline */ - OP_CIRC, /* 27 Start of line - not multiline */ - OP_CIRCM, /* 28 Start of line - multiline */ - - /* Single characters; caseful must precede the caseless ones, and these - must remain in this order, and adjacent. */ - - OP_CHAR, /* 29 Match one character, casefully */ - OP_CHARI, /* 30 Match one character, caselessly */ - OP_NOT, /* 31 Match one character, not the given one, casefully */ - OP_NOTI, /* 32 Match one character, not the given one, caselessly */ - - /* The following sets of 13 opcodes must always be kept in step because - the offset from the first one is used to generate the others. */ - - /* Repeated characters; caseful must precede the caseless ones */ - - OP_STAR, /* 33 The maximizing and minimizing versions of */ - OP_MINSTAR, /* 34 these six opcodes must come in pairs, with */ - OP_PLUS, /* 35 the minimizing one second. */ - OP_MINPLUS, /* 36 */ - OP_QUERY, /* 37 */ - OP_MINQUERY, /* 38 */ - - OP_UPTO, /* 39 From 0 to n matches of one character, caseful*/ - OP_MINUPTO, /* 40 */ - OP_EXACT, /* 41 Exactly n matches */ - - OP_POSSTAR, /* 42 Possessified star, caseful */ - OP_POSPLUS, /* 43 Possessified plus, caseful */ - OP_POSQUERY, /* 44 Posesssified query, caseful */ - OP_POSUPTO, /* 45 Possessified upto, caseful */ - - /* Repeated characters; caseless must follow the caseful ones */ - - OP_STARI, /* 46 */ - OP_MINSTARI, /* 47 */ - OP_PLUSI, /* 48 */ - OP_MINPLUSI, /* 49 */ - OP_QUERYI, /* 50 */ - OP_MINQUERYI, /* 51 */ - - OP_UPTOI, /* 52 From 0 to n matches of one character, caseless */ - OP_MINUPTOI, /* 53 */ - OP_EXACTI, /* 54 */ - - OP_POSSTARI, /* 55 Possessified star, caseless */ - OP_POSPLUSI, /* 56 Possessified plus, caseless */ - OP_POSQUERYI, /* 57 Posesssified query, caseless */ - OP_POSUPTOI, /* 58 Possessified upto, caseless */ - - /* The negated ones must follow the non-negated ones, and match them */ - /* Negated repeated character, caseful; must precede the caseless ones */ - - OP_NOTSTAR, /* 59 The maximizing and minimizing versions of */ - OP_NOTMINSTAR, /* 60 these six opcodes must come in pairs, with */ - OP_NOTPLUS, /* 61 the minimizing one second. They must be in */ - OP_NOTMINPLUS, /* 62 exactly the same order as those above. */ - OP_NOTQUERY, /* 63 */ - OP_NOTMINQUERY, /* 64 */ - - OP_NOTUPTO, /* 65 From 0 to n matches, caseful */ - OP_NOTMINUPTO, /* 66 */ - OP_NOTEXACT, /* 67 Exactly n matches */ - - OP_NOTPOSSTAR, /* 68 Possessified versions, caseful */ - OP_NOTPOSPLUS, /* 69 */ - OP_NOTPOSQUERY, /* 70 */ - OP_NOTPOSUPTO, /* 71 */ - - /* Negated repeated character, caseless; must follow the caseful ones */ - - OP_NOTSTARI, /* 72 */ - OP_NOTMINSTARI, /* 73 */ - OP_NOTPLUSI, /* 74 */ - OP_NOTMINPLUSI, /* 75 */ - OP_NOTQUERYI, /* 76 */ - OP_NOTMINQUERYI, /* 77 */ - - OP_NOTUPTOI, /* 78 From 0 to n matches, caseless */ - OP_NOTMINUPTOI, /* 79 */ - OP_NOTEXACTI, /* 80 Exactly n matches */ - - OP_NOTPOSSTARI, /* 81 Possessified versions, caseless */ - OP_NOTPOSPLUSI, /* 82 */ - OP_NOTPOSQUERYI, /* 83 */ - OP_NOTPOSUPTOI, /* 84 */ - - /* Character types */ - - OP_TYPESTAR, /* 85 The maximizing and minimizing versions of */ - OP_TYPEMINSTAR, /* 86 these six opcodes must come in pairs, with */ - OP_TYPEPLUS, /* 87 the minimizing one second. These codes must */ - OP_TYPEMINPLUS, /* 88 be in exactly the same order as those above. */ - OP_TYPEQUERY, /* 89 */ - OP_TYPEMINQUERY, /* 90 */ - - OP_TYPEUPTO, /* 91 From 0 to n matches */ - OP_TYPEMINUPTO, /* 92 */ - OP_TYPEEXACT, /* 93 Exactly n matches */ - - OP_TYPEPOSSTAR, /* 94 Possessified versions */ - OP_TYPEPOSPLUS, /* 95 */ - OP_TYPEPOSQUERY, /* 96 */ - OP_TYPEPOSUPTO, /* 97 */ - - /* These are used for character classes and back references; only the - first six are the same as the sets above. */ - - OP_CRSTAR, /* 98 The maximizing and minimizing versions of */ - OP_CRMINSTAR, /* 99 all these opcodes must come in pairs, with */ - OP_CRPLUS, /* 100 the minimizing one second. These codes must */ - OP_CRMINPLUS, /* 101 be in exactly the same order as those above. */ - OP_CRQUERY, /* 102 */ - OP_CRMINQUERY, /* 103 */ - - OP_CRRANGE, /* 104 These are different to the three sets above. */ - OP_CRMINRANGE, /* 105 */ - - OP_CRPOSSTAR, /* 106 Possessified versions */ - OP_CRPOSPLUS, /* 107 */ - OP_CRPOSQUERY, /* 108 */ - OP_CRPOSRANGE, /* 109 */ - - /* End of quantifier opcodes */ - - OP_CLASS, /* 110 Match a character class, chars < 256 only */ - OP_NCLASS, /* 111 Same, but the bitmap was created from a negative - class - the difference is relevant only when a - character > 255 is encountered. */ - OP_XCLASS, /* 112 Extended class for handling > 255 chars within the - class. This does both positive and negative. */ - OP_REF, /* 113 Match a back reference, casefully */ - OP_REFI, /* 114 Match a back reference, caselessly */ - OP_DNREF, /* 115 Match a duplicate name backref, casefully */ - OP_DNREFI, /* 116 Match a duplicate name backref, caselessly */ - OP_RECURSE, /* 117 Match a numbered subpattern (possibly recursive) */ - OP_CALLOUT, /* 118 Call out to external function if provided */ - OP_CALLOUT_STR, /* 119 Call out with string argument */ - - OP_ALT, /* 120 Start of alternation */ - OP_KET, /* 121 End of group that doesn't have an unbounded repeat */ - OP_KETRMAX, /* 122 These two must remain together and in this */ - OP_KETRMIN, /* 123 order. They are for groups the repeat for ever. */ - OP_KETRPOS, /* 124 Possessive unlimited repeat. */ - - /* The assertions must come before BRA, CBRA, ONCE, and COND. */ - - OP_REVERSE, /* 125 Move pointer back - used in lookbehind assertions */ - OP_ASSERT, /* 126 Positive lookahead */ - OP_ASSERT_NOT, /* 127 Negative lookahead */ - OP_ASSERTBACK, /* 128 Positive lookbehind */ - OP_ASSERTBACK_NOT, /* 129 Negative lookbehind */ - OP_ASSERT_NA, /* 130 Positive non-atomic lookahead */ - OP_ASSERTBACK_NA, /* 131 Positive non-atomic lookbehind */ - - /* ONCE, SCRIPT_RUN, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come - immediately after the assertions, with ONCE first, as there's a test for >= - ONCE for a subpattern that isn't an assertion. The POS versions must - immediately follow the non-POS versions in each case. */ - - OP_ONCE, /* 132 Atomic group, contains captures */ - OP_SCRIPT_RUN, /* 133 Non-capture, but check characters' scripts */ - OP_BRA, /* 134 Start of non-capturing bracket */ - OP_BRAPOS, /* 135 Ditto, with unlimited, possessive repeat */ - OP_CBRA, /* 136 Start of capturing bracket */ - OP_CBRAPOS, /* 137 Ditto, with unlimited, possessive repeat */ - OP_COND, /* 138 Conditional group */ - - /* These five must follow the previous five, in the same order. There's a - check for >= SBRA to distinguish the two sets. */ - - OP_SBRA, /* 139 Start of non-capturing bracket, check empty */ - OP_SBRAPOS, /* 149 Ditto, with unlimited, possessive repeat */ - OP_SCBRA, /* 141 Start of capturing bracket, check empty */ - OP_SCBRAPOS, /* 142 Ditto, with unlimited, possessive repeat */ - OP_SCOND, /* 143 Conditional group, check empty */ - - /* The next two pairs must (respectively) be kept together. */ - - OP_CREF, /* 144 Used to hold a capture number as condition */ - OP_DNCREF, /* 145 Used to point to duplicate names as a condition */ - OP_RREF, /* 146 Used to hold a recursion number as condition */ - OP_DNRREF, /* 147 Used to point to duplicate names as a condition */ - OP_FALSE, /* 148 Always false (used by DEFINE and VERSION) */ - OP_TRUE, /* 149 Always true (used by VERSION) */ - - OP_BRAZERO, /* 150 These two must remain together and in this */ - OP_BRAMINZERO, /* 151 order. */ - OP_BRAPOSZERO, /* 152 */ - - /* These are backtracking control verbs */ - - OP_MARK, /* 153 always has an argument */ - OP_PRUNE, /* 154 */ - OP_PRUNE_ARG, /* 155 same, but with argument */ - OP_SKIP, /* 156 */ - OP_SKIP_ARG, /* 157 same, but with argument */ - OP_THEN, /* 158 */ - OP_THEN_ARG, /* 159 same, but with argument */ - OP_COMMIT, /* 160 */ - OP_COMMIT_ARG, /* 161 same, but with argument */ - - /* These are forced failure and success verbs. FAIL and ACCEPT do accept an - argument, but these cases can be compiled as, for example, (*MARK:X)(*FAIL) - without the need for a special opcode. */ - - OP_FAIL, /* 162 */ - OP_ACCEPT, /* 163 */ - OP_ASSERT_ACCEPT, /* 164 Used inside assertions */ - OP_CLOSE, /* 165 Used before OP_ACCEPT to close open captures */ - - /* This is used to skip a subpattern with a {0} quantifier */ - - OP_SKIPZERO, /* 166 */ - - /* This is used to identify a DEFINE group during compilation so that it can - be checked for having only one branch. It is changed to OP_FALSE before - compilation finishes. */ - - OP_DEFINE, /* 167 */ - - /* This is not an opcode, but is used to check that tables indexed by opcode - are the correct length, in order to catch updating errors - there have been - some in the past. */ - - OP_TABLE_LENGTH - -}; - -/* *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro -definitions that follow must also be updated to match. There are also tables -called "opcode_possessify" in pcre2_compile.c and "coptable" and "poptable" in -pcre2_dfa_match.c that must be updated. */ - - -/* This macro defines textual names for all the opcodes. These are used only -for debugging, and some of them are only partial names. The macro is referenced -only in pcre2_printint.c, which fills out the full names in many cases (and in -some cases doesn't actually use these names at all). */ - -#define OP_NAME_LIST \ - "End", "\\A", "\\G", "\\K", "\\B", "\\b", "\\D", "\\d", \ - "\\S", "\\s", "\\W", "\\w", "Any", "AllAny", "Anybyte", \ - "notprop", "prop", "\\R", "\\H", "\\h", "\\V", "\\v", \ - "extuni", "\\Z", "\\z", \ - "$", "$", "^", "^", "char", "chari", "not", "noti", \ - "*", "*?", "+", "+?", "?", "??", \ - "{", "{", "{", \ - "*+","++", "?+", "{", \ - "*", "*?", "+", "+?", "?", "??", \ - "{", "{", "{", \ - "*+","++", "?+", "{", \ - "*", "*?", "+", "+?", "?", "??", \ - "{", "{", "{", \ - "*+","++", "?+", "{", \ - "*", "*?", "+", "+?", "?", "??", \ - "{", "{", "{", \ - "*+","++", "?+", "{", \ - "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ - "*+","++", "?+", "{", \ - "*", "*?", "+", "+?", "?", "??", "{", "{", \ - "*+","++", "?+", "{", \ - "class", "nclass", "xclass", "Ref", "Refi", "DnRef", "DnRefi", \ - "Recurse", "Callout", "CalloutStr", \ - "Alt", "Ket", "KetRmax", "KetRmin", "KetRpos", \ - "Reverse", "Assert", "Assert not", \ - "Assert back", "Assert back not", \ - "Non-atomic assert", "Non-atomic assert back", \ - "Once", \ - "Script run", \ - "Bra", "BraPos", "CBra", "CBraPos", \ - "Cond", \ - "SBra", "SBraPos", "SCBra", "SCBraPos", \ - "SCond", \ - "Cond ref", "Cond dnref", "Cond rec", "Cond dnrec", \ - "Cond false", "Cond true", \ - "Brazero", "Braminzero", "Braposzero", \ - "*MARK", "*PRUNE", "*PRUNE", "*SKIP", "*SKIP", \ - "*THEN", "*THEN", "*COMMIT", "*COMMIT", "*FAIL", \ - "*ACCEPT", "*ASSERT_ACCEPT", \ - "Close", "Skip zero", "Define" - - -/* This macro defines the length of fixed length operations in the compiled -regex. The lengths are used when searching for specific things, and also in the -debugging printing of a compiled regex. We use a macro so that it can be -defined close to the definitions of the opcodes themselves. - -As things have been extended, some of these are no longer fixed lenths, but are -minima instead. For example, the length of a single-character repeat may vary -in UTF-8 mode. The code that uses this table must know about such things. */ - -#define OP_LENGTHS \ - 1, /* End */ \ - 1, 1, 1, 1, 1, /* \A, \G, \K, \B, \b */ \ - 1, 1, 1, 1, 1, 1, /* \D, \d, \S, \s, \W, \w */ \ - 1, 1, 1, /* Any, AllAny, Anybyte */ \ - 3, 3, /* \P, \p */ \ - 1, 1, 1, 1, 1, /* \R, \H, \h, \V, \v */ \ - 1, /* \X */ \ - 1, 1, 1, 1, 1, 1, /* \Z, \z, $, $M ^, ^M */ \ - 2, /* Char - the minimum length */ \ - 2, /* Chari - the minimum length */ \ - 2, /* not */ \ - 2, /* noti */ \ - /* Positive single-char repeats ** These are */ \ - 2, 2, 2, 2, 2, 2, /* *, *?, +, +?, ?, ?? ** minima in */ \ - 2+IMM2_SIZE, 2+IMM2_SIZE, /* upto, minupto ** mode */ \ - 2+IMM2_SIZE, /* exact */ \ - 2, 2, 2, 2+IMM2_SIZE, /* *+, ++, ?+, upto+ */ \ - 2, 2, 2, 2, 2, 2, /* *I, *?I, +I, +?I, ?I, ??I ** UTF-8 */ \ - 2+IMM2_SIZE, 2+IMM2_SIZE, /* upto I, minupto I */ \ - 2+IMM2_SIZE, /* exact I */ \ - 2, 2, 2, 2+IMM2_SIZE, /* *+I, ++I, ?+I, upto+I */ \ - /* Negative single-char repeats - only for chars < 256 */ \ - 2, 2, 2, 2, 2, 2, /* NOT *, *?, +, +?, ?, ?? */ \ - 2+IMM2_SIZE, 2+IMM2_SIZE, /* NOT upto, minupto */ \ - 2+IMM2_SIZE, /* NOT exact */ \ - 2, 2, 2, 2+IMM2_SIZE, /* Possessive NOT *, +, ?, upto */ \ - 2, 2, 2, 2, 2, 2, /* NOT *I, *?I, +I, +?I, ?I, ??I */ \ - 2+IMM2_SIZE, 2+IMM2_SIZE, /* NOT upto I, minupto I */ \ - 2+IMM2_SIZE, /* NOT exact I */ \ - 2, 2, 2, 2+IMM2_SIZE, /* Possessive NOT *I, +I, ?I, upto I */ \ - /* Positive type repeats */ \ - 2, 2, 2, 2, 2, 2, /* Type *, *?, +, +?, ?, ?? */ \ - 2+IMM2_SIZE, 2+IMM2_SIZE, /* Type upto, minupto */ \ - 2+IMM2_SIZE, /* Type exact */ \ - 2, 2, 2, 2+IMM2_SIZE, /* Possessive *+, ++, ?+, upto+ */ \ - /* Character class & ref repeats */ \ - 1, 1, 1, 1, 1, 1, /* *, *?, +, +?, ?, ?? */ \ - 1+2*IMM2_SIZE, 1+2*IMM2_SIZE, /* CRRANGE, CRMINRANGE */ \ - 1, 1, 1, 1+2*IMM2_SIZE, /* Possessive *+, ++, ?+, CRPOSRANGE */ \ - 1+(32/sizeof(PCRE2_UCHAR)), /* CLASS */ \ - 1+(32/sizeof(PCRE2_UCHAR)), /* NCLASS */ \ - 0, /* XCLASS - variable length */ \ - 1+IMM2_SIZE, /* REF */ \ - 1+IMM2_SIZE, /* REFI */ \ - 1+2*IMM2_SIZE, /* DNREF */ \ - 1+2*IMM2_SIZE, /* DNREFI */ \ - 1+LINK_SIZE, /* RECURSE */ \ - 1+2*LINK_SIZE+1, /* CALLOUT */ \ - 0, /* CALLOUT_STR - variable length */ \ - 1+LINK_SIZE, /* Alt */ \ - 1+LINK_SIZE, /* Ket */ \ - 1+LINK_SIZE, /* KetRmax */ \ - 1+LINK_SIZE, /* KetRmin */ \ - 1+LINK_SIZE, /* KetRpos */ \ - 1+LINK_SIZE, /* Reverse */ \ - 1+LINK_SIZE, /* Assert */ \ - 1+LINK_SIZE, /* Assert not */ \ - 1+LINK_SIZE, /* Assert behind */ \ - 1+LINK_SIZE, /* Assert behind not */ \ - 1+LINK_SIZE, /* NA Assert */ \ - 1+LINK_SIZE, /* NA Assert behind */ \ - 1+LINK_SIZE, /* ONCE */ \ - 1+LINK_SIZE, /* SCRIPT_RUN */ \ - 1+LINK_SIZE, /* BRA */ \ - 1+LINK_SIZE, /* BRAPOS */ \ - 1+LINK_SIZE+IMM2_SIZE, /* CBRA */ \ - 1+LINK_SIZE+IMM2_SIZE, /* CBRAPOS */ \ - 1+LINK_SIZE, /* COND */ \ - 1+LINK_SIZE, /* SBRA */ \ - 1+LINK_SIZE, /* SBRAPOS */ \ - 1+LINK_SIZE+IMM2_SIZE, /* SCBRA */ \ - 1+LINK_SIZE+IMM2_SIZE, /* SCBRAPOS */ \ - 1+LINK_SIZE, /* SCOND */ \ - 1+IMM2_SIZE, 1+2*IMM2_SIZE, /* CREF, DNCREF */ \ - 1+IMM2_SIZE, 1+2*IMM2_SIZE, /* RREF, DNRREF */ \ - 1, 1, /* FALSE, TRUE */ \ - 1, 1, 1, /* BRAZERO, BRAMINZERO, BRAPOSZERO */ \ - 3, 1, 3, /* MARK, PRUNE, PRUNE_ARG */ \ - 1, 3, /* SKIP, SKIP_ARG */ \ - 1, 3, /* THEN, THEN_ARG */ \ - 1, 3, /* COMMIT, COMMIT_ARG */ \ - 1, 1, 1, /* FAIL, ACCEPT, ASSERT_ACCEPT */ \ - 1+IMM2_SIZE, 1, /* CLOSE, SKIPZERO */ \ - 1 /* DEFINE */ - -/* A magic value for OP_RREF to indicate the "any recursion" condition. */ - -#define RREF_ANY 0xffff - - -/* ---------- Private structures that are mode-independent. ---------- */ - -/* Structure to hold data for custom memory management. */ - -typedef struct pcre2_memctl { - void * (*malloc)(size_t, void *); - void (*free)(void *, void *); - void *memory_data; -} pcre2_memctl; - -/* Structure for building a chain of open capturing subpatterns during -compiling, so that instructions to close them can be compiled when (*ACCEPT) is -encountered. */ - -typedef struct open_capitem { - struct open_capitem *next; /* Chain link */ - uint16_t number; /* Capture number */ - uint16_t assert_depth; /* Assertion depth when opened */ -} open_capitem; - -/* Layout of the UCP type table that translates property names into types and -codes. Each entry used to point directly to a name, but to reduce the number of -relocations in shared libraries, it now has an offset into a single string -instead. */ - -typedef struct { - uint16_t name_offset; - uint16_t type; - uint16_t value; -} ucp_type_table; - -/* Unicode character database (UCD) record format */ - -typedef struct { - uint8_t script; /* ucp_Arabic, etc. */ - uint8_t chartype; /* ucp_Cc, etc. (general categories) */ - uint8_t gbprop; /* ucp_gbControl, etc. (grapheme break property) */ - uint8_t caseset; /* offset to multichar other cases or zero */ - int32_t other_case; /* offset to other case, or zero if none */ - int16_t scriptx; /* script extension value */ - int16_t dummy; /* spare - to round to multiple of 4 bytes */ -} ucd_record; - -/* UCD access macros */ - -#define UCD_BLOCK_SIZE 128 -#define REAL_GET_UCD(ch) (PRIV(ucd_records) + \ - PRIV(ucd_stage2)[PRIV(ucd_stage1)[(int)(ch) / UCD_BLOCK_SIZE] * \ - UCD_BLOCK_SIZE + (int)(ch) % UCD_BLOCK_SIZE]) - -#if PCRE2_CODE_UNIT_WIDTH == 32 -#define GET_UCD(ch) ((ch > MAX_UTF_CODE_POINT)? \ - PRIV(dummy_ucd_record) : REAL_GET_UCD(ch)) -#else -#define GET_UCD(ch) REAL_GET_UCD(ch) -#endif - -#define UCD_CHARTYPE(ch) GET_UCD(ch)->chartype -#define UCD_SCRIPT(ch) GET_UCD(ch)->script -#define UCD_CATEGORY(ch) PRIV(ucp_gentype)[UCD_CHARTYPE(ch)] -#define UCD_GRAPHBREAK(ch) GET_UCD(ch)->gbprop -#define UCD_CASESET(ch) GET_UCD(ch)->caseset -#define UCD_OTHERCASE(ch) ((uint32_t)((int)ch + (int)(GET_UCD(ch)->other_case))) -#define UCD_SCRIPTX(ch) GET_UCD(ch)->scriptx - -/* Header for serialized pcre2 codes. */ - -typedef struct pcre2_serialized_data { - uint32_t magic; - uint32_t version; - uint32_t config; - int32_t number_of_codes; -} pcre2_serialized_data; - - - -/* ----------------- Items that need PCRE2_CODE_UNIT_WIDTH ----------------- */ - -/* When this file is included by pcre2test, PCRE2_CODE_UNIT_WIDTH is defined as -0, so the following items are omitted. */ - -#if defined PCRE2_CODE_UNIT_WIDTH && PCRE2_CODE_UNIT_WIDTH != 0 - -/* EBCDIC is supported only for the 8-bit library. */ - -#if defined EBCDIC && PCRE2_CODE_UNIT_WIDTH != 8 -#error EBCDIC is not supported for the 16-bit or 32-bit libraries -#endif - -/* This is the largest non-UTF code point. */ - -#define MAX_NON_UTF_CHAR (0xffffffffU >> (32 - PCRE2_CODE_UNIT_WIDTH)) - -/* Internal shared data tables and variables. These are used by more than one -of the exported public functions. They have to be "external" in the C sense, -but are not part of the PCRE2 public API. Although the data for some of them is -identical in all libraries, they must have different names so that multiple -libraries can be simultaneously linked to a single application. However, UTF-8 -tables are needed only when compiling the 8-bit library. */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 -extern const int PRIV(utf8_table1)[]; -extern const int PRIV(utf8_table1_size); -extern const int PRIV(utf8_table2)[]; -extern const int PRIV(utf8_table3)[]; -extern const uint8_t PRIV(utf8_table4)[]; -#endif - -#define _pcre2_OP_lengths PCRE2_SUFFIX(_pcre2_OP_lengths_) -#define _pcre2_callout_end_delims PCRE2_SUFFIX(_pcre2_callout_end_delims_) -#define _pcre2_callout_start_delims PCRE2_SUFFIX(_pcre2_callout_start_delims_) -#define _pcre2_default_compile_context PCRE2_SUFFIX(_pcre2_default_compile_context_) -#define _pcre2_default_convert_context PCRE2_SUFFIX(_pcre2_default_convert_context_) -#define _pcre2_default_match_context PCRE2_SUFFIX(_pcre2_default_match_context_) -#define _pcre2_default_tables PCRE2_SUFFIX(_pcre2_default_tables_) -#if PCRE2_CODE_UNIT_WIDTH == 32 -#define _pcre2_dummy_ucd_record PCRE2_SUFFIX(_pcre2_dummy_ucd_record_) -#endif -#define _pcre2_hspace_list PCRE2_SUFFIX(_pcre2_hspace_list_) -#define _pcre2_vspace_list PCRE2_SUFFIX(_pcre2_vspace_list_) -#define _pcre2_ucd_caseless_sets PCRE2_SUFFIX(_pcre2_ucd_caseless_sets_) -#define _pcre2_ucd_digit_sets PCRE2_SUFFIX(_pcre2_ucd_digit_sets_) -#define _pcre2_ucd_script_sets PCRE2_SUFFIX(_pcre2_ucd_script_sets_) -#define _pcre2_ucd_records PCRE2_SUFFIX(_pcre2_ucd_records_) -#define _pcre2_ucd_stage1 PCRE2_SUFFIX(_pcre2_ucd_stage1_) -#define _pcre2_ucd_stage2 PCRE2_SUFFIX(_pcre2_ucd_stage2_) -#define _pcre2_ucp_gbtable PCRE2_SUFFIX(_pcre2_ucp_gbtable_) -#define _pcre2_ucp_gentype PCRE2_SUFFIX(_pcre2_ucp_gentype_) -#define _pcre2_ucp_typerange PCRE2_SUFFIX(_pcre2_ucp_typerange_) -#define _pcre2_unicode_version PCRE2_SUFFIX(_pcre2_unicode_version_) -#define _pcre2_utt PCRE2_SUFFIX(_pcre2_utt_) -#define _pcre2_utt_names PCRE2_SUFFIX(_pcre2_utt_names_) -#define _pcre2_utt_size PCRE2_SUFFIX(_pcre2_utt_size_) - -extern const uint8_t PRIV(OP_lengths)[]; -extern const uint32_t PRIV(callout_end_delims)[]; -extern const uint32_t PRIV(callout_start_delims)[]; -extern const pcre2_compile_context PRIV(default_compile_context); -extern const pcre2_convert_context PRIV(default_convert_context); -extern const pcre2_match_context PRIV(default_match_context); -extern const uint8_t PRIV(default_tables)[]; -extern const uint32_t PRIV(hspace_list)[]; -extern const uint32_t PRIV(vspace_list)[]; -extern const uint32_t PRIV(ucd_caseless_sets)[]; -extern const uint32_t PRIV(ucd_digit_sets)[]; -extern const uint8_t PRIV(ucd_script_sets)[]; -extern const ucd_record PRIV(ucd_records)[]; -#if PCRE2_CODE_UNIT_WIDTH == 32 -extern const ucd_record PRIV(dummy_ucd_record)[]; -#endif -extern const uint16_t PRIV(ucd_stage1)[]; -extern const uint16_t PRIV(ucd_stage2)[]; -extern const uint32_t PRIV(ucp_gbtable)[]; -extern const uint32_t PRIV(ucp_gentype)[]; -#ifdef SUPPORT_JIT -extern const int PRIV(ucp_typerange)[]; -#endif -extern const char *PRIV(unicode_version); -extern const ucp_type_table PRIV(utt)[]; -extern const char PRIV(utt_names)[]; -extern const size_t PRIV(utt_size); - -/* Mode-dependent macros and hidden and private structures are defined in a -separate file so that pcre2test can include them at all supported widths. When -compiling the library, PCRE2_CODE_UNIT_WIDTH will be defined, and we can -include them at the appropriate width, after setting up suffix macros for the -private structures. */ - -#define branch_chain PCRE2_SUFFIX(branch_chain_) -#define compile_block PCRE2_SUFFIX(compile_block_) -#define dfa_match_block PCRE2_SUFFIX(dfa_match_block_) -#define match_block PCRE2_SUFFIX(match_block_) -#define named_group PCRE2_SUFFIX(named_group_) - -#include "pcre2_intmodedep.h" - -/* Private "external" functions. These are internal functions that are called -from modules other than the one in which they are defined. They have to be -"external" in the C sense, but are not part of the PCRE2 public API. They are -not referenced from pcre2test, and must not be defined when no code unit width -is available. */ - -#define _pcre2_auto_possessify PCRE2_SUFFIX(_pcre2_auto_possessify_) -#define _pcre2_check_escape PCRE2_SUFFIX(_pcre2_check_escape_) -#define _pcre2_extuni PCRE2_SUFFIX(_pcre2_extuni_) -#define _pcre2_find_bracket PCRE2_SUFFIX(_pcre2_find_bracket_) -#define _pcre2_is_newline PCRE2_SUFFIX(_pcre2_is_newline_) -#define _pcre2_jit_free_rodata PCRE2_SUFFIX(_pcre2_jit_free_rodata_) -#define _pcre2_jit_free PCRE2_SUFFIX(_pcre2_jit_free_) -#define _pcre2_jit_get_size PCRE2_SUFFIX(_pcre2_jit_get_size_) -#define _pcre2_jit_get_target PCRE2_SUFFIX(_pcre2_jit_get_target_) -#define _pcre2_memctl_malloc PCRE2_SUFFIX(_pcre2_memctl_malloc_) -#define _pcre2_ord2utf PCRE2_SUFFIX(_pcre2_ord2utf_) -#define _pcre2_script_run PCRE2_SUFFIX(_pcre2_script_run_) -#define _pcre2_strcmp PCRE2_SUFFIX(_pcre2_strcmp_) -#define _pcre2_strcmp_c8 PCRE2_SUFFIX(_pcre2_strcmp_c8_) -#define _pcre2_strcpy_c8 PCRE2_SUFFIX(_pcre2_strcpy_c8_) -#define _pcre2_strlen PCRE2_SUFFIX(_pcre2_strlen_) -#define _pcre2_strncmp PCRE2_SUFFIX(_pcre2_strncmp_) -#define _pcre2_strncmp_c8 PCRE2_SUFFIX(_pcre2_strncmp_c8_) -#define _pcre2_study PCRE2_SUFFIX(_pcre2_study_) -#define _pcre2_valid_utf PCRE2_SUFFIX(_pcre2_valid_utf_) -#define _pcre2_was_newline PCRE2_SUFFIX(_pcre2_was_newline_) -#define _pcre2_xclass PCRE2_SUFFIX(_pcre2_xclass_) - -extern int _pcre2_auto_possessify(PCRE2_UCHAR *, - const compile_block *); -extern int _pcre2_check_escape(PCRE2_SPTR *, PCRE2_SPTR, uint32_t *, - int *, uint32_t, uint32_t, BOOL, compile_block *); -extern PCRE2_SPTR _pcre2_extuni(uint32_t, PCRE2_SPTR, PCRE2_SPTR, PCRE2_SPTR, - BOOL, int *); -extern PCRE2_SPTR _pcre2_find_bracket(PCRE2_SPTR, BOOL, int); -extern BOOL _pcre2_is_newline(PCRE2_SPTR, uint32_t, PCRE2_SPTR, - uint32_t *, BOOL); -extern void _pcre2_jit_free_rodata(void *, void *); -extern void _pcre2_jit_free(void *, pcre2_memctl *); -extern size_t _pcre2_jit_get_size(void *); -const char * _pcre2_jit_get_target(void); -extern void * _pcre2_memctl_malloc(size_t, pcre2_memctl *); -extern unsigned int _pcre2_ord2utf(uint32_t, PCRE2_UCHAR *); -extern BOOL _pcre2_script_run(PCRE2_SPTR, PCRE2_SPTR, BOOL); -extern int _pcre2_strcmp(PCRE2_SPTR, PCRE2_SPTR); -extern int _pcre2_strcmp_c8(PCRE2_SPTR, const char *); -extern PCRE2_SIZE _pcre2_strcpy_c8(PCRE2_UCHAR *, const char *); -extern PCRE2_SIZE _pcre2_strlen(PCRE2_SPTR); -extern int _pcre2_strncmp(PCRE2_SPTR, PCRE2_SPTR, size_t); -extern int _pcre2_strncmp_c8(PCRE2_SPTR, const char *, size_t); -extern int _pcre2_study(pcre2_real_code *); -extern int _pcre2_valid_utf(PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE *); -extern BOOL _pcre2_was_newline(PCRE2_SPTR, uint32_t, PCRE2_SPTR, - uint32_t *, BOOL); -extern BOOL _pcre2_xclass(uint32_t, PCRE2_SPTR, BOOL); - -/* This function is needed only when memmove() is not available. */ - -#if !defined(VPCOMPAT) && !defined(HAVE_MEMMOVE) -#define _pcre2_memmove PCRE2_SUFFIX(_pcre2_memmove) -extern void * _pcre2_memmove(void *, const void *, size_t); -#endif - -#endif /* PCRE2_CODE_UNIT_WIDTH */ -#endif /* PCRE2_INTERNAL_H_IDEMPOTENT_GUARD */ - -/* End of pcre2_internal.h */ diff --git a/include/php/ext/pcre/pcre2lib/pcre2_intmodedep.h b/include/php/ext/pcre/pcre2lib/pcre2_intmodedep.h deleted file mode 100644 index ea3b3ec..0000000 --- a/include/php/ext/pcre/pcre2lib/pcre2_intmodedep.h +++ /dev/null @@ -1,923 +0,0 @@ -/************************************************* -* Perl-Compatible Regular Expressions * -*************************************************/ - -/* PCRE is a library of functions to support regular expressions whose syntax -and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel - Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2018 University of Cambridge - ------------------------------------------------------------------------------ -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 the University of Cambridge 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. ------------------------------------------------------------------------------ -*/ - - -/* This module contains mode-dependent macro and structure definitions. The -file is #included by pcre2_internal.h if PCRE2_CODE_UNIT_WIDTH is defined. -These mode-dependent items are kept in a separate file so that they can also be -#included multiple times for different code unit widths by pcre2test in order -to have access to the hidden structures at all supported widths. - -Some of the mode-dependent macros are required at different widths for -different parts of the pcre2test code (in particular, the included -pcre_printint.c file). We undefine them here so that they can be re-defined for -multiple inclusions. Not all of these are used in pcre2test, but it's easier -just to undefine them all. */ - -#undef ACROSSCHAR -#undef BACKCHAR -#undef BYTES2CU -#undef CHMAX_255 -#undef CU2BYTES -#undef FORWARDCHAR -#undef FORWARDCHARTEST -#undef GET -#undef GET2 -#undef GETCHAR -#undef GETCHARINC -#undef GETCHARINCTEST -#undef GETCHARLEN -#undef GETCHARLENTEST -#undef GETCHARTEST -#undef GET_EXTRALEN -#undef HAS_EXTRALEN -#undef IMM2_SIZE -#undef MAX_255 -#undef MAX_MARK -#undef MAX_PATTERN_SIZE -#undef MAX_UTF_SINGLE_CU -#undef NOT_FIRSTCU -#undef PUT -#undef PUT2 -#undef PUT2INC -#undef PUTCHAR -#undef PUTINC -#undef TABLE_GET - - - -/* -------------------------- MACROS ----------------------------- */ - -/* PCRE keeps offsets in its compiled code as at least 16-bit quantities -(always stored in big-endian order in 8-bit mode) by default. These are used, -for example, to link from the start of a subpattern to its alternatives and its -end. The use of 16 bits per offset limits the size of an 8-bit compiled regex -to around 64K, which is big enough for almost everybody. However, I received a -request for an even bigger limit. For this reason, and also to make the code -easier to maintain, the storing and loading of offsets from the compiled code -unit string is now handled by the macros that are defined here. - -The macros are controlled by the value of LINK_SIZE. This defaults to 2, but -values of 3 or 4 are also supported. */ - -/* ------------------- 8-bit support ------------------ */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 - -#if LINK_SIZE == 2 -#define PUT(a,n,d) \ - (a[n] = (PCRE2_UCHAR)((d) >> 8)), \ - (a[(n)+1] = (PCRE2_UCHAR)((d) & 255)) -#define GET(a,n) \ - (unsigned int)(((a)[n] << 8) | (a)[(n)+1]) -#define MAX_PATTERN_SIZE (1 << 16) - -#elif LINK_SIZE == 3 -#define PUT(a,n,d) \ - (a[n] = (PCRE2_UCHAR)((d) >> 16)), \ - (a[(n)+1] = (PCRE2_UCHAR)((d) >> 8)), \ - (a[(n)+2] = (PCRE2_UCHAR)((d) & 255)) -#define GET(a,n) \ - (unsigned int)(((a)[n] << 16) | ((a)[(n)+1] << 8) | (a)[(n)+2]) -#define MAX_PATTERN_SIZE (1 << 24) - -#elif LINK_SIZE == 4 -#define PUT(a,n,d) \ - (a[n] = (PCRE2_UCHAR)((d) >> 24)), \ - (a[(n)+1] = (PCRE2_UCHAR)((d) >> 16)), \ - (a[(n)+2] = (PCRE2_UCHAR)((d) >> 8)), \ - (a[(n)+3] = (PCRE2_UCHAR)((d) & 255)) -#define GET(a,n) \ - (unsigned int)(((a)[n] << 24) | ((a)[(n)+1] << 16) | ((a)[(n)+2] << 8) | (a)[(n)+3]) -#define MAX_PATTERN_SIZE (1 << 30) /* Keep it positive */ - -#else -#error LINK_SIZE must be 2, 3, or 4 -#endif - - -/* ------------------- 16-bit support ------------------ */ - -#elif PCRE2_CODE_UNIT_WIDTH == 16 - -#if LINK_SIZE == 2 -#undef LINK_SIZE -#define LINK_SIZE 1 -#define PUT(a,n,d) \ - (a[n] = (PCRE2_UCHAR)(d)) -#define GET(a,n) \ - (a[n]) -#define MAX_PATTERN_SIZE (1 << 16) - -#elif LINK_SIZE == 3 || LINK_SIZE == 4 -#undef LINK_SIZE -#define LINK_SIZE 2 -#define PUT(a,n,d) \ - (a[n] = (PCRE2_UCHAR)((d) >> 16)), \ - (a[(n)+1] = (PCRE2_UCHAR)((d) & 65535)) -#define GET(a,n) \ - (unsigned int)(((a)[n] << 16) | (a)[(n)+1]) -#define MAX_PATTERN_SIZE (1 << 30) /* Keep it positive */ - -#else -#error LINK_SIZE must be 2, 3, or 4 -#endif - - -/* ------------------- 32-bit support ------------------ */ - -#elif PCRE2_CODE_UNIT_WIDTH == 32 -#undef LINK_SIZE -#define LINK_SIZE 1 -#define PUT(a,n,d) \ - (a[n] = (d)) -#define GET(a,n) \ - (a[n]) -#define MAX_PATTERN_SIZE (1 << 30) /* Keep it positive */ - -#else -#error Unsupported compiling mode -#endif - - -/* --------------- Other mode-specific macros ----------------- */ - -/* PCRE uses some other (at least) 16-bit quantities that do not change when -the size of offsets changes. There are used for repeat counts and for other -things such as capturing parenthesis numbers in back references. - -Define the number of code units required to hold a 16-bit count/offset, and -macros to load and store such a value. For reasons that I do not understand, -the expression in the 8-bit GET2 macro is treated by gcc as a signed -expression, even when a is declared as unsigned. It seems that any kind of -arithmetic results in a signed value. Hence the cast. */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 -#define IMM2_SIZE 2 -#define GET2(a,n) (unsigned int)(((a)[n] << 8) | (a)[(n)+1]) -#define PUT2(a,n,d) a[n] = (d) >> 8, a[(n)+1] = (d) & 255 - -#else /* Code units are 16 or 32 bits */ -#define IMM2_SIZE 1 -#define GET2(a,n) a[n] -#define PUT2(a,n,d) a[n] = d -#endif - -/* Other macros that are different for 8-bit mode. The MAX_255 macro checks -whether its argument, which is assumed to be one code unit, is less than 256. -The CHMAX_255 macro does not assume one code unit. The maximum length of a MARK -name must fit in one code unit; currently it is set to 255 or 65535. The -TABLE_GET macro is used to access elements of tables containing exactly 256 -items. Its argument is a code unit. When code points can be greater than 255, a -check is needed before accessing these tables. */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 -#define MAX_255(c) TRUE -#define MAX_MARK ((1u << 8) - 1) -#define TABLE_GET(c, table, default) ((table)[c]) -#ifdef SUPPORT_UNICODE -#define SUPPORT_WIDE_CHARS -#define CHMAX_255(c) ((c) <= 255u) -#else -#define CHMAX_255(c) TRUE -#endif /* SUPPORT_UNICODE */ - -#else /* Code units are 16 or 32 bits */ -#define CHMAX_255(c) ((c) <= 255u) -#define MAX_255(c) ((c) <= 255u) -#define MAX_MARK ((1u << 16) - 1) -#define SUPPORT_WIDE_CHARS -#define TABLE_GET(c, table, default) (MAX_255(c)? ((table)[c]):(default)) -#endif - - -/* ----------------- Character-handling macros ----------------- */ - -/* There is a proposed future special "UTF-21" mode, in which only the lowest -21 bits of a 32-bit character are interpreted as UTF, with the remaining 11 -high-order bits available to the application for other uses. In preparation for -the future implementation of this mode, there are macros that load a data item -and, if in this special mode, mask it to 21 bits. These macros all have names -starting with UCHAR21. In all other modes, including the normal 32-bit -library, the macros all have the same simple definitions. When the new mode is -implemented, it is expected that these definitions will be varied appropriately -using #ifdef when compiling the library that supports the special mode. */ - -#define UCHAR21(eptr) (*(eptr)) -#define UCHAR21TEST(eptr) (*(eptr)) -#define UCHAR21INC(eptr) (*(eptr)++) -#define UCHAR21INCTEST(eptr) (*(eptr)++) - -/* When UTF encoding is being used, a character is no longer just a single -byte in 8-bit mode or a single short in 16-bit mode. The macros for character -handling generate simple sequences when used in the basic mode, and more -complicated ones for UTF characters. GETCHARLENTEST and other macros are not -used when UTF is not supported. To make sure they can never even appear when -UTF support is omitted, we don't even define them. */ - -#ifndef SUPPORT_UNICODE - -/* #define MAX_UTF_SINGLE_CU */ -/* #define HAS_EXTRALEN(c) */ -/* #define GET_EXTRALEN(c) */ -/* #define NOT_FIRSTCU(c) */ -#define GETCHAR(c, eptr) c = *eptr; -#define GETCHARTEST(c, eptr) c = *eptr; -#define GETCHARINC(c, eptr) c = *eptr++; -#define GETCHARINCTEST(c, eptr) c = *eptr++; -#define GETCHARLEN(c, eptr, len) c = *eptr; -#define PUTCHAR(c, p) (*p = c, 1) -/* #define GETCHARLENTEST(c, eptr, len) */ -/* #define BACKCHAR(eptr) */ -/* #define FORWARDCHAR(eptr) */ -/* #define FORWARCCHARTEST(eptr,end) */ -/* #define ACROSSCHAR(condition, eptr, action) */ - -#else /* SUPPORT_UNICODE */ - -/* ------------------- 8-bit support ------------------ */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 -#define MAYBE_UTF_MULTI /* UTF chars may use multiple code units */ - -/* The largest UTF code point that can be encoded as a single code unit. */ - -#define MAX_UTF_SINGLE_CU 127 - -/* Tests whether the code point needs extra characters to decode. */ - -#define HAS_EXTRALEN(c) HASUTF8EXTRALEN(c) - -/* Returns with the additional number of characters if IS_MULTICHAR(c) is TRUE. -Otherwise it has an undefined behaviour. */ - -#define GET_EXTRALEN(c) (PRIV(utf8_table4)[(c) & 0x3fu]) - -/* Returns TRUE, if the given value is not the first code unit of a UTF -sequence. */ - -#define NOT_FIRSTCU(c) (((c) & 0xc0u) == 0x80u) - -/* Get the next UTF-8 character, not advancing the pointer. This is called when -we know we are in UTF-8 mode. */ - -#define GETCHAR(c, eptr) \ - c = *eptr; \ - if (c >= 0xc0u) GETUTF8(c, eptr); - -/* Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the -pointer. */ - -#define GETCHARTEST(c, eptr) \ - c = *eptr; \ - if (utf && c >= 0xc0u) GETUTF8(c, eptr); - -/* Get the next UTF-8 character, advancing the pointer. This is called when we -know we are in UTF-8 mode. */ - -#define GETCHARINC(c, eptr) \ - c = *eptr++; \ - if (c >= 0xc0u) GETUTF8INC(c, eptr); - -/* Get the next character, testing for UTF-8 mode, and advancing the pointer. -This is called when we don't know if we are in UTF-8 mode. */ - -#define GETCHARINCTEST(c, eptr) \ - c = *eptr++; \ - if (utf && c >= 0xc0u) GETUTF8INC(c, eptr); - -/* Get the next UTF-8 character, not advancing the pointer, incrementing length -if there are extra bytes. This is called when we know we are in UTF-8 mode. */ - -#define GETCHARLEN(c, eptr, len) \ - c = *eptr; \ - if (c >= 0xc0u) GETUTF8LEN(c, eptr, len); - -/* Get the next UTF-8 character, testing for UTF-8 mode, not advancing the -pointer, incrementing length if there are extra bytes. This is called when we -do not know if we are in UTF-8 mode. */ - -#define GETCHARLENTEST(c, eptr, len) \ - c = *eptr; \ - if (utf && c >= 0xc0u) GETUTF8LEN(c, eptr, len); - -/* If the pointer is not at the start of a character, move it back until -it is. This is called only in UTF-8 mode - we don't put a test within the macro -because almost all calls are already within a block of UTF-8 only code. */ - -#define BACKCHAR(eptr) while((*eptr & 0xc0u) == 0x80u) eptr-- - -/* Same as above, just in the other direction. */ -#define FORWARDCHAR(eptr) while((*eptr & 0xc0u) == 0x80u) eptr++ -#define FORWARDCHARTEST(eptr,end) while(eptr < end && (*eptr & 0xc0u) == 0x80u) eptr++ - -/* Same as above, but it allows a fully customizable form. */ -#define ACROSSCHAR(condition, eptr, action) \ - while((condition) && ((*eptr) & 0xc0u) == 0x80u) action - -/* Deposit a character into memory, returning the number of code units. */ - -#define PUTCHAR(c, p) ((utf && c > MAX_UTF_SINGLE_CU)? \ - PRIV(ord2utf)(c,p) : (*p = c, 1)) - - -/* ------------------- 16-bit support ------------------ */ - -#elif PCRE2_CODE_UNIT_WIDTH == 16 -#define MAYBE_UTF_MULTI /* UTF chars may use multiple code units */ - -/* The largest UTF code point that can be encoded as a single code unit. */ - -#define MAX_UTF_SINGLE_CU 65535 - -/* Tests whether the code point needs extra characters to decode. */ - -#define HAS_EXTRALEN(c) (((c) & 0xfc00u) == 0xd800u) - -/* Returns with the additional number of characters if IS_MULTICHAR(c) is TRUE. -Otherwise it has an undefined behaviour. */ - -#define GET_EXTRALEN(c) 1 - -/* Returns TRUE, if the given value is not the first code unit of a UTF -sequence. */ - -#define NOT_FIRSTCU(c) (((c) & 0xfc00u) == 0xdc00u) - -/* Base macro to pick up the low surrogate of a UTF-16 character, not -advancing the pointer. */ - -#define GETUTF16(c, eptr) \ - { c = (((c & 0x3ffu) << 10) | (eptr[1] & 0x3ffu)) + 0x10000u; } - -/* Get the next UTF-16 character, not advancing the pointer. This is called when -we know we are in UTF-16 mode. */ - -#define GETCHAR(c, eptr) \ - c = *eptr; \ - if ((c & 0xfc00u) == 0xd800u) GETUTF16(c, eptr); - -/* Get the next UTF-16 character, testing for UTF-16 mode, and not advancing the -pointer. */ - -#define GETCHARTEST(c, eptr) \ - c = *eptr; \ - if (utf && (c & 0xfc00u) == 0xd800u) GETUTF16(c, eptr); - -/* Base macro to pick up the low surrogate of a UTF-16 character, advancing -the pointer. */ - -#define GETUTF16INC(c, eptr) \ - { c = (((c & 0x3ffu) << 10) | (*eptr++ & 0x3ffu)) + 0x10000u; } - -/* Get the next UTF-16 character, advancing the pointer. This is called when we -know we are in UTF-16 mode. */ - -#define GETCHARINC(c, eptr) \ - c = *eptr++; \ - if ((c & 0xfc00u) == 0xd800u) GETUTF16INC(c, eptr); - -/* Get the next character, testing for UTF-16 mode, and advancing the pointer. -This is called when we don't know if we are in UTF-16 mode. */ - -#define GETCHARINCTEST(c, eptr) \ - c = *eptr++; \ - if (utf && (c & 0xfc00u) == 0xd800u) GETUTF16INC(c, eptr); - -/* Base macro to pick up the low surrogate of a UTF-16 character, not -advancing the pointer, incrementing the length. */ - -#define GETUTF16LEN(c, eptr, len) \ - { c = (((c & 0x3ffu) << 10) | (eptr[1] & 0x3ffu)) + 0x10000u; len++; } - -/* Get the next UTF-16 character, not advancing the pointer, incrementing -length if there is a low surrogate. This is called when we know we are in -UTF-16 mode. */ - -#define GETCHARLEN(c, eptr, len) \ - c = *eptr; \ - if ((c & 0xfc00u) == 0xd800u) GETUTF16LEN(c, eptr, len); - -/* Get the next UTF-816character, testing for UTF-16 mode, not advancing the -pointer, incrementing length if there is a low surrogate. This is called when -we do not know if we are in UTF-16 mode. */ - -#define GETCHARLENTEST(c, eptr, len) \ - c = *eptr; \ - if (utf && (c & 0xfc00u) == 0xd800u) GETUTF16LEN(c, eptr, len); - -/* If the pointer is not at the start of a character, move it back until -it is. This is called only in UTF-16 mode - we don't put a test within the -macro because almost all calls are already within a block of UTF-16 only -code. */ - -#define BACKCHAR(eptr) if ((*eptr & 0xfc00u) == 0xdc00u) eptr-- - -/* Same as above, just in the other direction. */ -#define FORWARDCHAR(eptr) if ((*eptr & 0xfc00u) == 0xdc00u) eptr++ -#define FORWARDCHARTEST(eptr,end) if (eptr < end && (*eptr & 0xfc00u) == 0xdc00u) eptr++ - -/* Same as above, but it allows a fully customizable form. */ -#define ACROSSCHAR(condition, eptr, action) \ - if ((condition) && ((*eptr) & 0xfc00u) == 0xdc00u) action - -/* Deposit a character into memory, returning the number of code units. */ - -#define PUTCHAR(c, p) ((utf && c > MAX_UTF_SINGLE_CU)? \ - PRIV(ord2utf)(c,p) : (*p = c, 1)) - - -/* ------------------- 32-bit support ------------------ */ - -#else - -/* These are trivial for the 32-bit library, since all UTF-32 characters fit -into one PCRE2_UCHAR unit. */ - -#define MAX_UTF_SINGLE_CU (0x10ffffu) -#define HAS_EXTRALEN(c) (0) -#define GET_EXTRALEN(c) (0) -#define NOT_FIRSTCU(c) (0) - -/* Get the next UTF-32 character, not advancing the pointer. This is called when -we know we are in UTF-32 mode. */ - -#define GETCHAR(c, eptr) \ - c = *(eptr); - -/* Get the next UTF-32 character, testing for UTF-32 mode, and not advancing the -pointer. */ - -#define GETCHARTEST(c, eptr) \ - c = *(eptr); - -/* Get the next UTF-32 character, advancing the pointer. This is called when we -know we are in UTF-32 mode. */ - -#define GETCHARINC(c, eptr) \ - c = *((eptr)++); - -/* Get the next character, testing for UTF-32 mode, and advancing the pointer. -This is called when we don't know if we are in UTF-32 mode. */ - -#define GETCHARINCTEST(c, eptr) \ - c = *((eptr)++); - -/* Get the next UTF-32 character, not advancing the pointer, not incrementing -length (since all UTF-32 is of length 1). This is called when we know we are in -UTF-32 mode. */ - -#define GETCHARLEN(c, eptr, len) \ - GETCHAR(c, eptr) - -/* Get the next UTF-32character, testing for UTF-32 mode, not advancing the -pointer, not incrementing the length (since all UTF-32 is of length 1). -This is called when we do not know if we are in UTF-32 mode. */ - -#define GETCHARLENTEST(c, eptr, len) \ - GETCHARTEST(c, eptr) - -/* If the pointer is not at the start of a character, move it back until -it is. This is called only in UTF-32 mode - we don't put a test within the -macro because almost all calls are already within a block of UTF-32 only -code. - -These are all no-ops since all UTF-32 characters fit into one pcre_uchar. */ - -#define BACKCHAR(eptr) do { } while (0) - -/* Same as above, just in the other direction. */ - -#define FORWARDCHAR(eptr) do { } while (0) -#define FORWARDCHARTEST(eptr,end) do { } while (0) - -/* Same as above, but it allows a fully customizable form. */ - -#define ACROSSCHAR(condition, eptr, action) do { } while (0) - -/* Deposit a character into memory, returning the number of code units. */ - -#define PUTCHAR(c, p) (*p = c, 1) - -#endif /* UTF-32 character handling */ -#endif /* SUPPORT_UNICODE */ - - -/* Mode-dependent macros that have the same definition in all modes. */ - -#define CU2BYTES(x) ((x)*((PCRE2_CODE_UNIT_WIDTH/8))) -#define BYTES2CU(x) ((x)/((PCRE2_CODE_UNIT_WIDTH/8))) -#define PUTINC(a,n,d) PUT(a,n,d), a += LINK_SIZE -#define PUT2INC(a,n,d) PUT2(a,n,d), a += IMM2_SIZE - - -/* ----------------------- HIDDEN STRUCTURES ----------------------------- */ - -/* NOTE: All these structures *must* start with a pcre2_memctl structure. The -code that uses them is simpler because it assumes this. */ - -/* The real general context structure. At present it holds only data for custom -memory control. */ - -typedef struct pcre2_real_general_context { - pcre2_memctl memctl; -} pcre2_real_general_context; - -/* The real compile context structure */ - -typedef struct pcre2_real_compile_context { - pcre2_memctl memctl; - int (*stack_guard)(uint32_t, void *); - void *stack_guard_data; - const uint8_t *tables; - PCRE2_SIZE max_pattern_length; - uint16_t bsr_convention; - uint16_t newline_convention; - uint32_t parens_nest_limit; - uint32_t extra_options; -} pcre2_real_compile_context; - -/* The real match context structure. */ - -typedef struct pcre2_real_match_context { - pcre2_memctl memctl; -#ifdef SUPPORT_JIT - pcre2_jit_callback jit_callback; - void *jit_callback_data; -#endif - int (*callout)(pcre2_callout_block *, void *); - void *callout_data; - int (*substitute_callout)(pcre2_substitute_callout_block *, void *); - void *substitute_callout_data; - PCRE2_SIZE offset_limit; - uint32_t heap_limit; - uint32_t match_limit; - uint32_t depth_limit; -} pcre2_real_match_context; - -/* The real convert context structure. */ - -typedef struct pcre2_real_convert_context { - pcre2_memctl memctl; - uint32_t glob_separator; - uint32_t glob_escape; -} pcre2_real_convert_context; - -/* The real compiled code structure. The type for the blocksize field is -defined specially because it is required in pcre2_serialize_decode() when -copying the size from possibly unaligned memory into a variable of the same -type. Use a macro rather than a typedef to avoid compiler warnings when this -file is included multiple times by pcre2test. LOOKBEHIND_MAX specifies the -largest lookbehind that is supported. (OP_REVERSE in a pattern has a 16-bit -argument in 8-bit and 16-bit modes, so we need no more than a 16-bit field -here.) */ - -#undef CODE_BLOCKSIZE_TYPE -#define CODE_BLOCKSIZE_TYPE size_t - -#undef LOOKBEHIND_MAX -#define LOOKBEHIND_MAX UINT16_MAX - -typedef struct pcre2_real_code { - pcre2_memctl memctl; /* Memory control fields */ - const uint8_t *tables; /* The character tables */ - void *executable_jit; /* Pointer to JIT code */ - uint8_t start_bitmap[32]; /* Bitmap for starting code unit < 256 */ - CODE_BLOCKSIZE_TYPE blocksize; /* Total (bytes) that was malloc-ed */ - uint32_t magic_number; /* Paranoid and endianness check */ - uint32_t compile_options; /* Options passed to pcre2_compile() */ - uint32_t overall_options; /* Options after processing the pattern */ - uint32_t extra_options; /* Taken from compile_context */ - uint32_t flags; /* Various state flags */ - uint32_t limit_heap; /* Limit set in the pattern */ - uint32_t limit_match; /* Limit set in the pattern */ - uint32_t limit_depth; /* Limit set in the pattern */ - uint32_t first_codeunit; /* Starting code unit */ - uint32_t last_codeunit; /* This codeunit must be seen */ - uint16_t bsr_convention; /* What \R matches */ - uint16_t newline_convention; /* What is a newline? */ - uint16_t max_lookbehind; /* Longest lookbehind (characters) */ - uint16_t minlength; /* Minimum length of match */ - uint16_t top_bracket; /* Highest numbered group */ - uint16_t top_backref; /* Highest numbered back reference */ - uint16_t name_entry_size; /* Size (code units) of table entries */ - uint16_t name_count; /* Number of name entries in the table */ -} pcre2_real_code; - -/* The real match data structure. Define ovector as large as it can ever -actually be so that array bound checkers don't grumble. Memory for this -structure is obtained by calling pcre2_match_data_create(), which sets the size -as the offset of ovector plus a pair of elements for each capturable string, so -the size varies from call to call. As the maximum number of capturing -subpatterns is 65535 we must allow for 65536 strings to include the overall -match. (See also the heapframe structure below.) */ - -typedef struct pcre2_real_match_data { - pcre2_memctl memctl; - const pcre2_real_code *code; /* The pattern used for the match */ - PCRE2_SPTR subject; /* The subject that was matched */ - PCRE2_SPTR mark; /* Pointer to last mark */ - PCRE2_SIZE leftchar; /* Offset to leftmost code unit */ - PCRE2_SIZE rightchar; /* Offset to rightmost code unit */ - PCRE2_SIZE startchar; /* Offset to starting code unit */ - uint8_t matchedby; /* Type of match (normal, JIT, DFA) */ - uint8_t flags; /* Various flags */ - uint16_t oveccount; /* Number of pairs */ - int rc; /* The return code from the match */ - PCRE2_SIZE ovector[131072]; /* Must be last in the structure */ -} pcre2_real_match_data; - - -/* ----------------------- PRIVATE STRUCTURES ----------------------------- */ - -/* These structures are not needed for pcre2test. */ - -#ifndef PCRE2_PCRE2TEST - -/* Structures for checking for mutual recursion when scanning compiled or -parsed code. */ - -typedef struct recurse_check { - struct recurse_check *prev; - PCRE2_SPTR group; -} recurse_check; - -typedef struct parsed_recurse_check { - struct parsed_recurse_check *prev; - uint32_t *groupptr; -} parsed_recurse_check; - -/* Structure for building a cache when filling in recursion offsets. */ - -typedef struct recurse_cache { - PCRE2_SPTR group; - int groupnumber; -} recurse_cache; - -/* Structure for maintaining a chain of pointers to the currently incomplete -branches, for testing for left recursion while compiling. */ - -typedef struct branch_chain { - struct branch_chain *outer; - PCRE2_UCHAR *current_branch; -} branch_chain; - -/* Structure for building a list of named groups during the first pass of -compiling. */ - -typedef struct named_group { - PCRE2_SPTR name; /* Points to the name in the pattern */ - uint32_t number; /* Group number */ - uint16_t length; /* Length of the name */ - uint16_t isdup; /* TRUE if a duplicate */ -} named_group; - -/* Structure for passing "static" information around between the functions -doing the compiling, so that they are thread-safe. */ - -typedef struct compile_block { - pcre2_real_compile_context *cx; /* Points to the compile context */ - const uint8_t *lcc; /* Points to lower casing table */ - const uint8_t *fcc; /* Points to case-flipping table */ - const uint8_t *cbits; /* Points to character type table */ - const uint8_t *ctypes; /* Points to table of type maps */ - PCRE2_SPTR start_workspace; /* The start of working space */ - PCRE2_SPTR start_code; /* The start of the compiled code */ - PCRE2_SPTR start_pattern; /* The start of the pattern */ - PCRE2_SPTR end_pattern; /* The end of the pattern */ - PCRE2_UCHAR *name_table; /* The name/number table */ - PCRE2_SIZE workspace_size; /* Size of workspace */ - PCRE2_SIZE small_ref_offset[10]; /* Offsets for \1 to \9 */ - PCRE2_SIZE erroroffset; /* Offset of error in pattern */ - uint16_t names_found; /* Number of entries so far */ - uint16_t name_entry_size; /* Size of each entry */ - uint16_t parens_depth; /* Depth of nested parentheses */ - uint16_t assert_depth; /* Depth of nested assertions */ - open_capitem *open_caps; /* Chain of open capture items */ - named_group *named_groups; /* Points to vector in pre-compile */ - uint32_t named_group_list_size; /* Number of entries in the list */ - uint32_t external_options; /* External (initial) options */ - uint32_t external_flags; /* External flag bits to be set */ - uint32_t bracount; /* Count of capturing parentheses */ - uint32_t lastcapture; /* Last capture encountered */ - uint32_t *parsed_pattern; /* Parsed pattern buffer */ - uint32_t *parsed_pattern_end; /* Parsed pattern should not get here */ - uint32_t *groupinfo; /* Group info vector */ - uint32_t top_backref; /* Maximum back reference */ - uint32_t backref_map; /* Bitmap of low back refs */ - uint32_t nltype; /* Newline type */ - uint32_t nllen; /* Newline string length */ - uint32_t class_range_start; /* Overall class range start */ - uint32_t class_range_end; /* Overall class range end */ - PCRE2_UCHAR nl[4]; /* Newline string when fixed length */ - int max_lookbehind; /* Maximum lookbehind (characters) */ - int req_varyopt; /* "After variable item" flag for reqbyte */ - BOOL had_accept; /* (*ACCEPT) encountered */ - BOOL had_pruneorskip; /* (*PRUNE) or (*SKIP) encountered */ - BOOL had_recurse; /* Had a recursion or subroutine call */ - BOOL dupnames; /* Duplicate names exist */ -} compile_block; - -/* Structure for keeping the properties of the in-memory stack used -by the JIT matcher. */ - -typedef struct pcre2_real_jit_stack { - pcre2_memctl memctl; - void* stack; -} pcre2_real_jit_stack; - -/* Structure for items in a linked list that represents an explicit recursive -call within the pattern when running pcre_dfa_match(). */ - -typedef struct dfa_recursion_info { - struct dfa_recursion_info *prevrec; - PCRE2_SPTR subject_position; - uint32_t group_num; -} dfa_recursion_info; - -/* Structure for "stack" frames that are used for remembering backtracking -positions during matching. As these are used in a vector, with the ovector item -being extended, the size of the structure must be a multiple of PCRE2_SIZE. The -only way to check this at compile time is to force an error by generating an -array with a negative size. By putting this in a typedef (which is never used), -we don't generate any code when all is well. */ - -typedef struct heapframe { - - /* The first set of fields are variables that have to be preserved over calls - to RRMATCH(), but which do not need to be copied to new frames. */ - - PCRE2_SPTR ecode; /* The current position in the pattern */ - PCRE2_SPTR temp_sptr[2]; /* Used for short-term PCRE_SPTR values */ - PCRE2_SIZE length; /* Used for character, string, or code lengths */ - PCRE2_SIZE back_frame; /* Amount to subtract on RRETURN */ - PCRE2_SIZE temp_size; /* Used for short-term PCRE2_SIZE values */ - uint32_t rdepth; /* "Recursion" depth */ - uint32_t group_frame_type; /* Type information for group frames */ - uint32_t temp_32[4]; /* Used for short-term 32-bit or BOOL values */ - uint8_t return_id; /* Where to go on in internal "return" */ - uint8_t op; /* Processing opcode */ - - /* At this point, the structure is 16-bit aligned. On most architectures - the alignment requirement for a pointer will ensure that the eptr field below - is 32-bit or 64-bit aligned. However, on m68k it is fine to have a pointer - that is 16-bit aligned. We must therefore ensure that what comes between here - and eptr is an odd multiple of 16 bits so as to get back into 32-bit - alignment. This happens naturally when PCRE2_UCHAR is 8 bits wide, but needs - fudges in the other cases. In the 32-bit case the padding comes first so that - the occu field itself is 32-bit aligned. Without the padding, this structure - is no longer a multiple of PCRE2_SIZE on m68k, and the check below fails. */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 - PCRE2_UCHAR occu[6]; /* Used for other case code units */ -#elif PCRE2_CODE_UNIT_WIDTH == 16 - PCRE2_UCHAR occu[2]; /* Used for other case code units */ - uint8_t unused[2]; /* Ensure 32-bit alignment (see above) */ -#else - uint8_t unused[2]; /* Ensure 32-bit alignment (see above) */ - PCRE2_UCHAR occu[1]; /* Used for other case code units */ -#endif - - /* The rest have to be copied from the previous frame whenever a new frame - becomes current. The final field is specified as a large vector so that - runtime array bound checks don't catch references to it. However, for any - specific call to pcre2_match() the memory allocated for each frame structure - allows for exactly the right size ovector for the number of capturing - parentheses. (See also the comment for pcre2_real_match_data above.) */ - - PCRE2_SPTR eptr; /* MUST BE FIRST */ - PCRE2_SPTR start_match; /* Can be adjusted by \K */ - PCRE2_SPTR mark; /* Most recent mark on the success path */ - uint32_t current_recurse; /* Current (deepest) recursion number */ - uint32_t capture_last; /* Most recent capture */ - PCRE2_SIZE last_group_offset; /* Saved offset to most recent group frame */ - PCRE2_SIZE offset_top; /* Offset after highest capture */ - PCRE2_SIZE ovector[131072]; /* Must be last in the structure */ -} heapframe; - -/* This typedef is a check that the size of the heapframe structure is a -multiple of PCRE2_SIZE. See various comments above. */ - -typedef char check_heapframe_size[ - ((sizeof(heapframe) % sizeof(PCRE2_SIZE)) == 0)? (+1):(-1)]; - -/* Structure for passing "static" information around between the functions -doing traditional NFA matching (pcre2_match() and friends). */ - -typedef struct match_block { - pcre2_memctl memctl; /* For general use */ - PCRE2_SIZE frame_vector_size; /* Size of a backtracking frame */ - heapframe *match_frames; /* Points to vector of frames */ - heapframe *match_frames_top; /* Points after the end of the vector */ - heapframe *stack_frames; /* The original vector on the stack */ - PCRE2_SIZE heap_limit; /* As it says */ - uint32_t match_limit; /* As it says */ - uint32_t match_limit_depth; /* As it says */ - uint32_t match_call_count; /* Number of times a new frame is created */ - BOOL hitend; /* Hit the end of the subject at some point */ - BOOL hasthen; /* Pattern contains (*THEN) */ - BOOL allowemptypartial; /* Allow empty hard partial */ - const uint8_t *lcc; /* Points to lower casing table */ - const uint8_t *fcc; /* Points to case-flipping table */ - const uint8_t *ctypes; /* Points to table of type maps */ - PCRE2_SIZE start_offset; /* The start offset value */ - PCRE2_SIZE end_offset_top; /* Highwater mark at end of match */ - uint16_t partial; /* PARTIAL options */ - uint16_t bsr_convention; /* \R interpretation */ - uint16_t name_count; /* Number of names in name table */ - uint16_t name_entry_size; /* Size of entry in names table */ - PCRE2_SPTR name_table; /* Table of group names */ - PCRE2_SPTR start_code; /* For use when recursing */ - PCRE2_SPTR start_subject; /* Start of the subject string */ - PCRE2_SPTR check_subject; /* Where UTF-checked from */ - PCRE2_SPTR end_subject; /* End of the subject string */ - PCRE2_SPTR end_match_ptr; /* Subject position at end match */ - PCRE2_SPTR start_used_ptr; /* Earliest consulted character */ - PCRE2_SPTR last_used_ptr; /* Latest consulted character */ - PCRE2_SPTR mark; /* Mark pointer to pass back on success */ - PCRE2_SPTR nomatch_mark; /* Mark pointer to pass back on failure */ - PCRE2_SPTR verb_ecode_ptr; /* For passing back info */ - PCRE2_SPTR verb_skip_ptr; /* For passing back a (*SKIP) name */ - uint32_t verb_current_recurse; /* Current recurse when (*VERB) happens */ - uint32_t moptions; /* Match options */ - uint32_t poptions; /* Pattern options */ - uint32_t skip_arg_count; /* For counting SKIP_ARGs */ - uint32_t ignore_skip_arg; /* For re-run when SKIP arg name not found */ - uint32_t nltype; /* Newline type */ - uint32_t nllen; /* Newline string length */ - PCRE2_UCHAR nl[4]; /* Newline string when fixed */ - pcre2_callout_block *cb; /* Points to a callout block */ - void *callout_data; /* To pass back to callouts */ - int (*callout)(pcre2_callout_block *,void *); /* Callout function or NULL */ -} match_block; - -/* A similar structure is used for the same purpose by the DFA matching -functions. */ - -typedef struct dfa_match_block { - pcre2_memctl memctl; /* For general use */ - PCRE2_SPTR start_code; /* Start of the compiled pattern */ - PCRE2_SPTR start_subject ; /* Start of the subject string */ - PCRE2_SPTR end_subject; /* End of subject string */ - PCRE2_SPTR start_used_ptr; /* Earliest consulted character */ - PCRE2_SPTR last_used_ptr; /* Latest consulted character */ - const uint8_t *tables; /* Character tables */ - PCRE2_SIZE start_offset; /* The start offset value */ - PCRE2_SIZE heap_limit; /* As it says */ - PCRE2_SIZE heap_used; /* As it says */ - uint32_t match_limit; /* As it says */ - uint32_t match_limit_depth; /* As it says */ - uint32_t match_call_count; /* Number of calls of internal function */ - uint32_t moptions; /* Match options */ - uint32_t poptions; /* Pattern options */ - uint32_t nltype; /* Newline type */ - uint32_t nllen; /* Newline string length */ - BOOL allowemptypartial; /* Allow empty hard partial */ - PCRE2_UCHAR nl[4]; /* Newline string when fixed */ - uint16_t bsr_convention; /* \R interpretation */ - pcre2_callout_block *cb; /* Points to a callout block */ - void *callout_data; /* To pass back to callouts */ - int (*callout)(pcre2_callout_block *,void *); /* Callout function or NULL */ - dfa_recursion_info *recursive; /* Linked list of recursion data */ -} dfa_match_block; - -#endif /* PCRE2_PCRE2TEST */ - -/* End of pcre2_intmodedep.h */ diff --git a/include/php/ext/pcre/pcre2lib/pcre2_jit_neon_inc.h b/include/php/ext/pcre/pcre2lib/pcre2_jit_neon_inc.h deleted file mode 100644 index 66373b6..0000000 --- a/include/php/ext/pcre/pcre2lib/pcre2_jit_neon_inc.h +++ /dev/null @@ -1,343 +0,0 @@ -/************************************************* -* Perl-Compatible Regular Expressions * -*************************************************/ - -/* PCRE is a library of functions to support regular expressions whose syntax -and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel - This module by Zoltan Herczeg and Sebastian Pop - Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2019 University of Cambridge - ------------------------------------------------------------------------------ -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 the University of Cambridge 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. ------------------------------------------------------------------------------ -*/ - -# if defined(FFCS) -# if defined(FF_UTF) -# define FF_FUN ffcs_utf -# else -# define FF_FUN ffcs -# endif - -# elif defined(FFCS_2) -# if defined(FF_UTF) -# define FF_FUN ffcs_2_utf -# else -# define FF_FUN ffcs_2 -# endif - -# elif defined(FFCS_MASK) -# if defined(FF_UTF) -# define FF_FUN ffcs_mask_utf -# else -# define FF_FUN ffcs_mask -# endif - -# elif defined(FFCPS_0) -# if defined (FF_UTF) -# define FF_FUN ffcps_0_utf -# else -# define FF_FUN ffcps_0 -# endif - -# elif defined (FFCPS_1) -# if defined (FF_UTF) -# define FF_FUN ffcps_1_utf -# else -# define FF_FUN ffcps_1 -# endif - -# elif defined (FFCPS_DEFAULT) -# if defined (FF_UTF) -# define FF_FUN ffcps_default_utf -# else -# define FF_FUN ffcps_default -# endif -# endif - -static sljit_u8* SLJIT_FUNC FF_FUN(sljit_u8 *str_end, sljit_u8 *str_ptr, sljit_uw offs1, sljit_uw offs2, sljit_uw chars) -#undef FF_FUN -{ -quad_word qw; -int_char ic; -ic.x = chars; - -#if defined(FFCS) -sljit_u8 c1 = ic.c.c1; -vect_t vc1 = VDUPQ(c1); - -#elif defined(FFCS_2) -sljit_u8 c1 = ic.c.c1; -vect_t vc1 = VDUPQ(c1); -sljit_u8 c2 = ic.c.c2; -vect_t vc2 = VDUPQ(c2); - -#elif defined(FFCS_MASK) -sljit_u8 c1 = ic.c.c1; -vect_t vc1 = VDUPQ(c1); -sljit_u8 mask = ic.c.c2; -vect_t vmask = VDUPQ(mask); -#endif - -#if defined(FFCPS) -compare_type compare1_type = compare_match1; -compare_type compare2_type = compare_match1; -vect_t cmp1a, cmp1b, cmp2a, cmp2b; -const sljit_u32 diff = IN_UCHARS(offs1 - offs2); -PCRE2_UCHAR char1a = ic.c.c1; -PCRE2_UCHAR char2a = ic.c.c3; - -# ifdef FFCPS_CHAR1A2A -cmp1a = VDUPQ(char1a); -cmp2a = VDUPQ(char2a); -cmp1b = VDUPQ(0); /* to avoid errors on older compilers -Werror=maybe-uninitialized */ -cmp2b = VDUPQ(0); /* to avoid errors on older compilers -Werror=maybe-uninitialized */ -# else -PCRE2_UCHAR char1b = ic.c.c2; -PCRE2_UCHAR char2b = ic.c.c4; -if (char1a == char1b) - { - cmp1a = VDUPQ(char1a); - cmp1b = VDUPQ(0); /* to avoid errors on older compilers -Werror=maybe-uninitialized */ - } -else - { - sljit_u32 bit1 = char1a ^ char1b; - if (is_powerof2(bit1)) - { - compare1_type = compare_match1i; - cmp1a = VDUPQ(char1a | bit1); - cmp1b = VDUPQ(bit1); - } - else - { - compare1_type = compare_match2; - cmp1a = VDUPQ(char1a); - cmp1b = VDUPQ(char1b); - } - } - -if (char2a == char2b) - { - cmp2a = VDUPQ(char2a); - cmp2b = VDUPQ(0); /* to avoid errors on older compilers -Werror=maybe-uninitialized */ - } -else - { - sljit_u32 bit2 = char2a ^ char2b; - if (is_powerof2(bit2)) - { - compare2_type = compare_match1i; - cmp2a = VDUPQ(char2a | bit2); - cmp2b = VDUPQ(bit2); - } - else - { - compare2_type = compare_match2; - cmp2a = VDUPQ(char2a); - cmp2b = VDUPQ(char2b); - } - } -# endif - -str_ptr += IN_UCHARS(offs1); -#endif - -#if PCRE2_CODE_UNIT_WIDTH != 8 -vect_t char_mask = VDUPQ(0xff); -#endif - -#if defined(FF_UTF) -restart:; -#endif - -#if defined(FFCPS) -sljit_u8 *p1 = str_ptr - diff; -#endif -sljit_s32 align_offset = ((uint64_t)str_ptr & 0xf); -str_ptr = (sljit_u8 *) ((uint64_t)str_ptr & ~0xf); -vect_t data = VLD1Q(str_ptr); -#if PCRE2_CODE_UNIT_WIDTH != 8 -data = VANDQ(data, char_mask); -#endif - -#if defined(FFCS) -vect_t eq = VCEQQ(data, vc1); - -#elif defined(FFCS_2) -vect_t eq1 = VCEQQ(data, vc1); -vect_t eq2 = VCEQQ(data, vc2); -vect_t eq = VORRQ(eq1, eq2); - -#elif defined(FFCS_MASK) -vect_t eq = VORRQ(data, vmask); -eq = VCEQQ(eq, vc1); - -#elif defined(FFCPS) -# if defined(FFCPS_DIFF1) -vect_t prev_data = data; -# endif - -vect_t data2; -if (p1 < str_ptr) - { - data2 = VLD1Q(str_ptr - diff); -#if PCRE2_CODE_UNIT_WIDTH != 8 - data2 = VANDQ(data2, char_mask); -#endif - } -else - data2 = shift_left_n_lanes(data, offs1 - offs2); - -if (compare1_type == compare_match1) - data = VCEQQ(data, cmp1a); -else - data = fast_forward_char_pair_compare(compare1_type, data, cmp1a, cmp1b); - -if (compare2_type == compare_match1) - data2 = VCEQQ(data2, cmp2a); -else - data2 = fast_forward_char_pair_compare(compare2_type, data2, cmp2a, cmp2b); - -vect_t eq = VANDQ(data, data2); -#endif - -VST1Q(qw.mem, eq); -/* Ignore matches before the first STR_PTR. */ -if (align_offset < 8) - { - qw.dw[0] >>= align_offset * 8; - if (qw.dw[0]) - { - str_ptr += align_offset + __builtin_ctzll(qw.dw[0]) / 8; - goto match; - } - if (qw.dw[1]) - { - str_ptr += 8 + __builtin_ctzll(qw.dw[1]) / 8; - goto match; - } - } -else - { - qw.dw[1] >>= (align_offset - 8) * 8; - if (qw.dw[1]) - { - str_ptr += align_offset + __builtin_ctzll(qw.dw[1]) / 8; - goto match; - } - } -str_ptr += 16; - -while (str_ptr < str_end) - { - vect_t orig_data = VLD1Q(str_ptr); -#if PCRE2_CODE_UNIT_WIDTH != 8 - orig_data = VANDQ(orig_data, char_mask); -#endif - data = orig_data; - -#if defined(FFCS) - eq = VCEQQ(data, vc1); - -#elif defined(FFCS_2) - eq1 = VCEQQ(data, vc1); - eq2 = VCEQQ(data, vc2); - eq = VORRQ(eq1, eq2); - -#elif defined(FFCS_MASK) - eq = VORRQ(data, vmask); - eq = VCEQQ(eq, vc1); -#endif - -#if defined(FFCPS) -# if defined (FFCPS_DIFF1) - data2 = VEXTQ(prev_data, data, VECTOR_FACTOR - 1); -# else - data2 = VLD1Q(str_ptr - diff); -# if PCRE2_CODE_UNIT_WIDTH != 8 - data2 = VANDQ(data2, char_mask); -# endif -# endif - -# ifdef FFCPS_CHAR1A2A - data = VCEQQ(data, cmp1a); - data2 = VCEQQ(data2, cmp2a); -# else - if (compare1_type == compare_match1) - data = VCEQQ(data, cmp1a); - else - data = fast_forward_char_pair_compare(compare1_type, data, cmp1a, cmp1b); - if (compare2_type == compare_match1) - data2 = VCEQQ(data2, cmp2a); - else - data2 = fast_forward_char_pair_compare(compare2_type, data2, cmp2a, cmp2b); -# endif - - eq = VANDQ(data, data2); -#endif - - VST1Q(qw.mem, eq); - if (qw.dw[0]) - str_ptr += __builtin_ctzll(qw.dw[0]) / 8; - else if (qw.dw[1]) - str_ptr += 8 + __builtin_ctzll(qw.dw[1]) / 8; - else { - str_ptr += 16; -#if defined (FFCPS_DIFF1) - prev_data = orig_data; -#endif - continue; - } - -match:; - if (str_ptr >= str_end) - /* Failed match. */ - return NULL; - -#if defined(FF_UTF) - if (utf_continue(str_ptr + IN_UCHARS(-offs1))) - { - /* Not a match. */ - str_ptr += IN_UCHARS(1); - goto restart; - } -#endif - - /* Match. */ -#if defined (FFCPS) - str_ptr -= IN_UCHARS(offs1); -#endif - return str_ptr; - } - -/* Failed match. */ -return NULL; -} diff --git a/include/php/ext/pcre/pcre2lib/pcre2_jit_simd_inc.h b/include/php/ext/pcre/pcre2lib/pcre2_jit_simd_inc.h deleted file mode 100644 index 5673d33..0000000 --- a/include/php/ext/pcre/pcre2lib/pcre2_jit_simd_inc.h +++ /dev/null @@ -1,1123 +0,0 @@ -/************************************************* -* Perl-Compatible Regular Expressions * -*************************************************/ - -/* PCRE is a library of functions to support regular expressions whose syntax -and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel - This module by Zoltan Herczeg - Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2019 University of Cambridge - ------------------------------------------------------------------------------ -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 the University of Cambridge 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. ------------------------------------------------------------------------------ -*/ - -#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) && !(defined SUPPORT_VALGRIND) - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -static struct sljit_jump *jump_if_utf_char_start(struct sljit_compiler *compiler, sljit_s32 reg) -{ -#if PCRE2_CODE_UNIT_WIDTH == 8 -OP2(SLJIT_AND, reg, 0, reg, 0, SLJIT_IMM, 0xc0); -return CMP(SLJIT_NOT_EQUAL, reg, 0, SLJIT_IMM, 0x80); -#elif PCRE2_CODE_UNIT_WIDTH == 16 -OP2(SLJIT_AND, reg, 0, reg, 0, SLJIT_IMM, 0xfc00); -return CMP(SLJIT_NOT_EQUAL, reg, 0, SLJIT_IMM, 0xdc00); -#else -#error "Unknown code width" -#endif -} -#endif - -static sljit_s32 character_to_int32(PCRE2_UCHAR chr) -{ -sljit_u32 value = chr; -#if PCRE2_CODE_UNIT_WIDTH == 8 -#define SSE2_COMPARE_TYPE_INDEX 0 -return (sljit_s32)((value << 24) | (value << 16) | (value << 8) | value); -#elif PCRE2_CODE_UNIT_WIDTH == 16 -#define SSE2_COMPARE_TYPE_INDEX 1 -return (sljit_s32)((value << 16) | value); -#elif PCRE2_CODE_UNIT_WIDTH == 32 -#define SSE2_COMPARE_TYPE_INDEX 2 -return (sljit_s32)(value); -#else -#error "Unsupported unit width" -#endif -} - -static void load_from_mem_sse2(struct sljit_compiler *compiler, sljit_s32 dst_xmm_reg, sljit_s32 src_general_reg, sljit_s8 offset) -{ -sljit_u8 instruction[5]; - -SLJIT_ASSERT(dst_xmm_reg < 8); -SLJIT_ASSERT(src_general_reg < 8); - -/* MOVDQA xmm1, xmm2/m128 */ -instruction[0] = ((sljit_u8)offset & 0xf) == 0 ? 0x66 : 0xf3; -instruction[1] = 0x0f; -instruction[2] = 0x6f; - -if (offset == 0) - { - instruction[3] = (dst_xmm_reg << 3) | src_general_reg; - sljit_emit_op_custom(compiler, instruction, 4); - return; - } - -instruction[3] = 0x40 | (dst_xmm_reg << 3) | src_general_reg; -instruction[4] = (sljit_u8)offset; -sljit_emit_op_custom(compiler, instruction, 5); -} - -typedef enum { - sse2_compare_match1, - sse2_compare_match1i, - sse2_compare_match2, -} sse2_compare_type; - -static void fast_forward_char_pair_sse2_compare(struct sljit_compiler *compiler, sse2_compare_type compare_type, - int step, sljit_s32 dst_ind, sljit_s32 cmp1_ind, sljit_s32 cmp2_ind, sljit_s32 tmp_ind) -{ -sljit_u8 instruction[4]; -instruction[0] = 0x66; -instruction[1] = 0x0f; - -SLJIT_ASSERT(step >= 0 && step <= 3); - -if (compare_type != sse2_compare_match2) - { - if (step == 0) - { - if (compare_type == sse2_compare_match1i) - { - /* POR xmm1, xmm2/m128 */ - /* instruction[0] = 0x66; */ - /* instruction[1] = 0x0f; */ - instruction[2] = 0xeb; - instruction[3] = 0xc0 | (dst_ind << 3) | cmp2_ind; - sljit_emit_op_custom(compiler, instruction, 4); - } - return; - } - - if (step != 2) - return; - - /* PCMPEQB/W/D xmm1, xmm2/m128 */ - /* instruction[0] = 0x66; */ - /* instruction[1] = 0x0f; */ - instruction[2] = 0x74 + SSE2_COMPARE_TYPE_INDEX; - instruction[3] = 0xc0 | (dst_ind << 3) | cmp1_ind; - sljit_emit_op_custom(compiler, instruction, 4); - return; - } - -switch (step) - { - case 0: - /* MOVDQA xmm1, xmm2/m128 */ - /* instruction[0] = 0x66; */ - /* instruction[1] = 0x0f; */ - instruction[2] = 0x6f; - instruction[3] = 0xc0 | (tmp_ind << 3) | dst_ind; - sljit_emit_op_custom(compiler, instruction, 4); - return; - - case 1: - /* PCMPEQB/W/D xmm1, xmm2/m128 */ - /* instruction[0] = 0x66; */ - /* instruction[1] = 0x0f; */ - instruction[2] = 0x74 + SSE2_COMPARE_TYPE_INDEX; - instruction[3] = 0xc0 | (dst_ind << 3) | cmp1_ind; - sljit_emit_op_custom(compiler, instruction, 4); - return; - - case 2: - /* PCMPEQB/W/D xmm1, xmm2/m128 */ - /* instruction[0] = 0x66; */ - /* instruction[1] = 0x0f; */ - instruction[2] = 0x74 + SSE2_COMPARE_TYPE_INDEX; - instruction[3] = 0xc0 | (tmp_ind << 3) | cmp2_ind; - sljit_emit_op_custom(compiler, instruction, 4); - return; - - case 3: - /* POR xmm1, xmm2/m128 */ - /* instruction[0] = 0x66; */ - /* instruction[1] = 0x0f; */ - instruction[2] = 0xeb; - instruction[3] = 0xc0 | (dst_ind << 3) | tmp_ind; - sljit_emit_op_custom(compiler, instruction, 4); - return; - } -} - -#define JIT_HAS_FAST_FORWARD_CHAR_SIMD (sljit_has_cpu_feature(SLJIT_HAS_SSE2)) - -static void fast_forward_char_simd(compiler_common *common, PCRE2_UCHAR char1, PCRE2_UCHAR char2, sljit_s32 offset) -{ -DEFINE_COMPILER; -struct sljit_label *start; -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -struct sljit_label *restart; -#endif -struct sljit_jump *quit; -struct sljit_jump *partial_quit[2]; -sse2_compare_type compare_type = sse2_compare_match1; -sljit_u8 instruction[8]; -sljit_s32 tmp1_reg_ind = sljit_get_register_index(TMP1); -sljit_s32 str_ptr_reg_ind = sljit_get_register_index(STR_PTR); -sljit_s32 data_ind = 0; -sljit_s32 tmp_ind = 1; -sljit_s32 cmp1_ind = 2; -sljit_s32 cmp2_ind = 3; -sljit_u32 bit = 0; -int i; - -SLJIT_UNUSED_ARG(offset); - -if (char1 != char2) - { - bit = char1 ^ char2; - compare_type = sse2_compare_match1i; - - if (!is_powerof2(bit)) - { - bit = 0; - compare_type = sse2_compare_match2; - } - } - -partial_quit[0] = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0); -if (common->mode == PCRE2_JIT_COMPLETE) - add_jump(compiler, &common->failed_match, partial_quit[0]); - -/* First part (unaligned start) */ - -OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char1 | bit)); - -SLJIT_ASSERT(tmp1_reg_ind < 8); - -/* MOVD xmm, r/m32 */ -instruction[0] = 0x66; -instruction[1] = 0x0f; -instruction[2] = 0x6e; -instruction[3] = 0xc0 | (cmp1_ind << 3) | tmp1_reg_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -if (char1 != char2) - { - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(bit != 0 ? bit : char2)); - - /* MOVD xmm, r/m32 */ - instruction[3] = 0xc0 | (cmp2_ind << 3) | tmp1_reg_ind; - sljit_emit_op_custom(compiler, instruction, 4); - } - -OP1(SLJIT_MOV, TMP2, 0, STR_PTR, 0); - -/* PSHUFD xmm1, xmm2/m128, imm8 */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0x70; -instruction[3] = 0xc0 | (cmp1_ind << 3) | cmp1_ind; -instruction[4] = 0; -sljit_emit_op_custom(compiler, instruction, 5); - -if (char1 != char2) - { - /* PSHUFD xmm1, xmm2/m128, imm8 */ - instruction[3] = 0xc0 | (cmp2_ind << 3) | cmp2_ind; - sljit_emit_op_custom(compiler, instruction, 5); - } - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -restart = LABEL(); -#endif -OP2(SLJIT_AND, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, ~0xf); -OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0xf); - -load_from_mem_sse2(compiler, data_ind, str_ptr_reg_ind, 0); -for (i = 0; i < 4; i++) - fast_forward_char_pair_sse2_compare(compiler, compare_type, i, data_ind, cmp1_ind, cmp2_ind, tmp_ind); - -/* PMOVMSKB reg, xmm */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xd7; -instruction[3] = 0xc0 | (tmp1_reg_ind << 3) | data_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0); -OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, TMP2, 0); - -quit = CMP(SLJIT_NOT_ZERO, TMP1, 0, SLJIT_IMM, 0); - -OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0); - -/* Second part (aligned) */ -start = LABEL(); - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, 16); - -partial_quit[1] = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0); -if (common->mode == PCRE2_JIT_COMPLETE) - add_jump(compiler, &common->failed_match, partial_quit[1]); - -load_from_mem_sse2(compiler, data_ind, str_ptr_reg_ind, 0); -for (i = 0; i < 4; i++) - fast_forward_char_pair_sse2_compare(compiler, compare_type, i, data_ind, cmp1_ind, cmp2_ind, tmp_ind); - -/* PMOVMSKB reg, xmm */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xd7; -instruction[3] = 0xc0 | (tmp1_reg_ind << 3) | data_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -CMPTO(SLJIT_ZERO, TMP1, 0, SLJIT_IMM, 0, start); - -JUMPHERE(quit); - -/* BSF r32, r/m32 */ -instruction[0] = 0x0f; -instruction[1] = 0xbc; -instruction[2] = 0xc0 | (tmp1_reg_ind << 3) | tmp1_reg_ind; -sljit_emit_op_custom(compiler, instruction, 3); - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); - -if (common->mode != PCRE2_JIT_COMPLETE) - { - JUMPHERE(partial_quit[0]); - JUMPHERE(partial_quit[1]); - OP2(SLJIT_SUB | SLJIT_SET_GREATER, SLJIT_UNUSED, 0, STR_PTR, 0, STR_END, 0); - CMOV(SLJIT_GREATER, STR_PTR, STR_END, 0); - } -else - add_jump(compiler, &common->failed_match, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -if (common->utf && offset > 0) - { - SLJIT_ASSERT(common->mode == PCRE2_JIT_COMPLETE); - - OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-offset)); - - quit = jump_if_utf_char_start(compiler, TMP1); - - OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); - add_jump(compiler, &common->failed_match, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); - OP1(SLJIT_MOV, TMP2, 0, STR_PTR, 0); - JUMPTO(SLJIT_JUMP, restart); - - JUMPHERE(quit); - } -#endif -} - -#define JIT_HAS_FAST_REQUESTED_CHAR_SIMD (sljit_has_cpu_feature(SLJIT_HAS_SSE2)) - -static jump_list *fast_requested_char_simd(compiler_common *common, PCRE2_UCHAR char1, PCRE2_UCHAR char2) -{ -DEFINE_COMPILER; -struct sljit_label *start; -struct sljit_jump *quit; -jump_list *not_found = NULL; -sse2_compare_type compare_type = sse2_compare_match1; -sljit_u8 instruction[8]; -sljit_s32 tmp1_reg_ind = sljit_get_register_index(TMP1); -sljit_s32 str_ptr_reg_ind = sljit_get_register_index(STR_PTR); -sljit_s32 data_ind = 0; -sljit_s32 tmp_ind = 1; -sljit_s32 cmp1_ind = 2; -sljit_s32 cmp2_ind = 3; -sljit_u32 bit = 0; -int i; - -if (char1 != char2) - { - bit = char1 ^ char2; - compare_type = sse2_compare_match1i; - - if (!is_powerof2(bit)) - { - bit = 0; - compare_type = sse2_compare_match2; - } - } - -add_jump(compiler, ¬_found, CMP(SLJIT_GREATER_EQUAL, TMP1, 0, STR_END, 0)); -OP1(SLJIT_MOV, TMP2, 0, TMP1, 0); -OP1(SLJIT_MOV, TMP3, 0, STR_PTR, 0); - -/* First part (unaligned start) */ - -OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char1 | bit)); - -SLJIT_ASSERT(tmp1_reg_ind < 8); - -/* MOVD xmm, r/m32 */ -instruction[0] = 0x66; -instruction[1] = 0x0f; -instruction[2] = 0x6e; -instruction[3] = 0xc0 | (cmp1_ind << 3) | tmp1_reg_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -if (char1 != char2) - { - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(bit != 0 ? bit : char2)); - - /* MOVD xmm, r/m32 */ - instruction[3] = 0xc0 | (cmp2_ind << 3) | tmp1_reg_ind; - sljit_emit_op_custom(compiler, instruction, 4); - } - -OP1(SLJIT_MOV, STR_PTR, 0, TMP2, 0); - -/* PSHUFD xmm1, xmm2/m128, imm8 */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0x70; -instruction[3] = 0xc0 | (cmp1_ind << 3) | cmp1_ind; -instruction[4] = 0; -sljit_emit_op_custom(compiler, instruction, 5); - -if (char1 != char2) - { - /* PSHUFD xmm1, xmm2/m128, imm8 */ - instruction[3] = 0xc0 | (cmp2_ind << 3) | cmp2_ind; - sljit_emit_op_custom(compiler, instruction, 5); - } - -OP2(SLJIT_AND, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, ~0xf); -OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0xf); - -load_from_mem_sse2(compiler, data_ind, str_ptr_reg_ind, 0); -for (i = 0; i < 4; i++) - fast_forward_char_pair_sse2_compare(compiler, compare_type, i, data_ind, cmp1_ind, cmp2_ind, tmp_ind); - -/* PMOVMSKB reg, xmm */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xd7; -instruction[3] = 0xc0 | (tmp1_reg_ind << 3) | data_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0); -OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, TMP2, 0); - -quit = CMP(SLJIT_NOT_ZERO, TMP1, 0, SLJIT_IMM, 0); - -OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0); - -/* Second part (aligned) */ -start = LABEL(); - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, 16); - -add_jump(compiler, ¬_found, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); - -load_from_mem_sse2(compiler, data_ind, str_ptr_reg_ind, 0); -for (i = 0; i < 4; i++) - fast_forward_char_pair_sse2_compare(compiler, compare_type, i, data_ind, cmp1_ind, cmp2_ind, tmp_ind); - -/* PMOVMSKB reg, xmm */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xd7; -instruction[3] = 0xc0 | (tmp1_reg_ind << 3) | data_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -CMPTO(SLJIT_ZERO, TMP1, 0, SLJIT_IMM, 0, start); - -JUMPHERE(quit); - -/* BSF r32, r/m32 */ -instruction[0] = 0x0f; -instruction[1] = 0xbc; -instruction[2] = 0xc0 | (tmp1_reg_ind << 3) | tmp1_reg_ind; -sljit_emit_op_custom(compiler, instruction, 3); - -OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, STR_PTR, 0); -add_jump(compiler, ¬_found, CMP(SLJIT_GREATER_EQUAL, TMP1, 0, STR_END, 0)); - -OP1(SLJIT_MOV, STR_PTR, 0, TMP3, 0); -return not_found; -} - -#ifndef _WIN64 - -static SLJIT_INLINE sljit_u32 max_fast_forward_char_pair_offset(void) -{ -#if PCRE2_CODE_UNIT_WIDTH == 8 -return 15; -#elif PCRE2_CODE_UNIT_WIDTH == 16 -return 7; -#elif PCRE2_CODE_UNIT_WIDTH == 32 -return 3; -#else -#error "Unsupported unit width" -#endif -} - -#define JIT_HAS_FAST_FORWARD_CHAR_PAIR_SIMD (sljit_has_cpu_feature(SLJIT_HAS_SSE2)) - -static void fast_forward_char_pair_simd(compiler_common *common, sljit_s32 offs1, - PCRE2_UCHAR char1a, PCRE2_UCHAR char1b, sljit_s32 offs2, PCRE2_UCHAR char2a, PCRE2_UCHAR char2b) -{ -DEFINE_COMPILER; -sse2_compare_type compare1_type = sse2_compare_match1; -sse2_compare_type compare2_type = sse2_compare_match1; -sljit_u32 bit1 = 0; -sljit_u32 bit2 = 0; -sljit_u32 diff = IN_UCHARS(offs1 - offs2); -sljit_s32 tmp1_reg_ind = sljit_get_register_index(TMP1); -sljit_s32 tmp2_reg_ind = sljit_get_register_index(TMP2); -sljit_s32 str_ptr_reg_ind = sljit_get_register_index(STR_PTR); -sljit_s32 data1_ind = 0; -sljit_s32 data2_ind = 1; -sljit_s32 tmp1_ind = 2; -sljit_s32 tmp2_ind = 3; -sljit_s32 cmp1a_ind = 4; -sljit_s32 cmp1b_ind = 5; -sljit_s32 cmp2a_ind = 6; -sljit_s32 cmp2b_ind = 7; -struct sljit_label *start; -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -struct sljit_label *restart; -#endif -struct sljit_jump *jump[2]; -sljit_u8 instruction[8]; -int i; - -SLJIT_ASSERT(common->mode == PCRE2_JIT_COMPLETE && offs1 > offs2); -SLJIT_ASSERT(diff <= IN_UCHARS(max_fast_forward_char_pair_offset())); -SLJIT_ASSERT(tmp1_reg_ind < 8 && tmp2_reg_ind == 1); - -/* Initialize. */ -if (common->match_end_ptr != 0) - { - OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->match_end_ptr); - OP1(SLJIT_MOV, TMP3, 0, STR_END, 0); - OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(offs1 + 1)); - - OP2(SLJIT_SUB | SLJIT_SET_LESS, SLJIT_UNUSED, 0, TMP1, 0, STR_END, 0); - CMOV(SLJIT_LESS, STR_END, TMP1, 0); - } - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(offs1)); -add_jump(compiler, &common->failed_match, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); - -/* MOVD xmm, r/m32 */ -instruction[0] = 0x66; -instruction[1] = 0x0f; -instruction[2] = 0x6e; - -if (char1a == char1b) - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char1a)); -else - { - bit1 = char1a ^ char1b; - if (is_powerof2(bit1)) - { - compare1_type = sse2_compare_match1i; - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char1a | bit1)); - OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, character_to_int32(bit1)); - } - else - { - compare1_type = sse2_compare_match2; - bit1 = 0; - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char1a)); - OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, character_to_int32(char1b)); - } - } - -instruction[3] = 0xc0 | (cmp1a_ind << 3) | tmp1_reg_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -if (char1a != char1b) - { - instruction[3] = 0xc0 | (cmp1b_ind << 3) | tmp2_reg_ind; - sljit_emit_op_custom(compiler, instruction, 4); - } - -if (char2a == char2b) - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char2a)); -else - { - bit2 = char2a ^ char2b; - if (is_powerof2(bit2)) - { - compare2_type = sse2_compare_match1i; - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char2a | bit2)); - OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, character_to_int32(bit2)); - } - else - { - compare2_type = sse2_compare_match2; - bit2 = 0; - OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, character_to_int32(char2a)); - OP1(SLJIT_MOV, TMP2, 0, SLJIT_IMM, character_to_int32(char2b)); - } - } - -instruction[3] = 0xc0 | (cmp2a_ind << 3) | tmp1_reg_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -if (char2a != char2b) - { - instruction[3] = 0xc0 | (cmp2b_ind << 3) | tmp2_reg_ind; - sljit_emit_op_custom(compiler, instruction, 4); - } - -/* PSHUFD xmm1, xmm2/m128, imm8 */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0x70; -instruction[4] = 0; - -instruction[3] = 0xc0 | (cmp1a_ind << 3) | cmp1a_ind; -sljit_emit_op_custom(compiler, instruction, 5); - -if (char1a != char1b) - { - instruction[3] = 0xc0 | (cmp1b_ind << 3) | cmp1b_ind; - sljit_emit_op_custom(compiler, instruction, 5); - } - -instruction[3] = 0xc0 | (cmp2a_ind << 3) | cmp2a_ind; -sljit_emit_op_custom(compiler, instruction, 5); - -if (char2a != char2b) - { - instruction[3] = 0xc0 | (cmp2b_ind << 3) | cmp2b_ind; - sljit_emit_op_custom(compiler, instruction, 5); - } - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -restart = LABEL(); -#endif - -OP2(SLJIT_SUB, TMP1, 0, STR_PTR, 0, SLJIT_IMM, diff); -OP1(SLJIT_MOV, TMP2, 0, STR_PTR, 0); -OP2(SLJIT_AND, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, ~0xf); - -load_from_mem_sse2(compiler, data1_ind, str_ptr_reg_ind, 0); - -jump[0] = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, STR_PTR, 0); - -load_from_mem_sse2(compiler, data2_ind, str_ptr_reg_ind, -(sljit_s8)diff); -jump[1] = JUMP(SLJIT_JUMP); - -JUMPHERE(jump[0]); - -/* MOVDQA xmm1, xmm2/m128 */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0x6f; -instruction[3] = 0xc0 | (data2_ind << 3) | data1_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -/* PSLLDQ xmm1, imm8 */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0x73; -instruction[3] = 0xc0 | (7 << 3) | data2_ind; -instruction[4] = diff; -sljit_emit_op_custom(compiler, instruction, 5); - -JUMPHERE(jump[1]); - -OP2(SLJIT_AND, TMP2, 0, TMP2, 0, SLJIT_IMM, 0xf); - -for (i = 0; i < 4; i++) - { - fast_forward_char_pair_sse2_compare(compiler, compare2_type, i, data2_ind, cmp2a_ind, cmp2b_ind, tmp2_ind); - fast_forward_char_pair_sse2_compare(compiler, compare1_type, i, data1_ind, cmp1a_ind, cmp1b_ind, tmp1_ind); - } - -/* PAND xmm1, xmm2/m128 */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xdb; -instruction[3] = 0xc0 | (data1_ind << 3) | data2_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -/* PMOVMSKB reg, xmm */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xd7; -instruction[3] = 0xc0 | (tmp1_reg_ind << 3) | 0; -sljit_emit_op_custom(compiler, instruction, 4); - -/* Ignore matches before the first STR_PTR. */ -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP2, 0); -OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, TMP2, 0); - -jump[0] = CMP(SLJIT_NOT_ZERO, TMP1, 0, SLJIT_IMM, 0); - -OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, TMP2, 0); - -/* Main loop. */ -start = LABEL(); - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, 16); -add_jump(compiler, &common->failed_match, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); - -load_from_mem_sse2(compiler, data1_ind, str_ptr_reg_ind, 0); -load_from_mem_sse2(compiler, data2_ind, str_ptr_reg_ind, -(sljit_s8)diff); - -for (i = 0; i < 4; i++) - { - fast_forward_char_pair_sse2_compare(compiler, compare1_type, i, data1_ind, cmp1a_ind, cmp1b_ind, tmp2_ind); - fast_forward_char_pair_sse2_compare(compiler, compare2_type, i, data2_ind, cmp2a_ind, cmp2b_ind, tmp1_ind); - } - -/* PAND xmm1, xmm2/m128 */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xdb; -instruction[3] = 0xc0 | (data1_ind << 3) | data2_ind; -sljit_emit_op_custom(compiler, instruction, 4); - -/* PMOVMSKB reg, xmm */ -/* instruction[0] = 0x66; */ -/* instruction[1] = 0x0f; */ -instruction[2] = 0xd7; -instruction[3] = 0xc0 | (tmp1_reg_ind << 3) | 0; -sljit_emit_op_custom(compiler, instruction, 4); - -CMPTO(SLJIT_ZERO, TMP1, 0, SLJIT_IMM, 0, start); - -JUMPHERE(jump[0]); - -/* BSF r32, r/m32 */ -instruction[0] = 0x0f; -instruction[1] = 0xbc; -instruction[2] = 0xc0 | (tmp1_reg_ind << 3) | tmp1_reg_ind; -sljit_emit_op_custom(compiler, instruction, 3); - -OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, TMP1, 0); - -add_jump(compiler, &common->failed_match, CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0)); - -if (common->match_end_ptr != 0) - OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_SP), common->match_end_ptr); - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -if (common->utf) - { - OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(-offs1)); - - jump[0] = jump_if_utf_char_start(compiler, TMP1); - - OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); - CMPTO(SLJIT_LESS, STR_PTR, 0, STR_END, 0, restart); - - add_jump(compiler, &common->failed_match, JUMP(SLJIT_JUMP)); - - JUMPHERE(jump[0]); - } -#endif - -OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(offs1)); - -if (common->match_end_ptr != 0) - OP1(SLJIT_MOV, STR_END, 0, TMP3, 0); -} - -#endif /* !_WIN64 */ - -#undef SSE2_COMPARE_TYPE_INDEX - -#endif /* SLJIT_CONFIG_X86 && !SUPPORT_VALGRIND */ - -#if (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64 && (defined __ARM_NEON || defined __ARM_NEON__)) - -#include - -typedef union { - unsigned int x; - struct { unsigned char c1, c2, c3, c4; } c; -} int_char; - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -static SLJIT_INLINE int utf_continue(sljit_u8 *s) -{ -#if PCRE2_CODE_UNIT_WIDTH == 8 -return (*s & 0xc0) == 0x80; -#elif PCRE2_CODE_UNIT_WIDTH == 16 -return (*s & 0xfc00) == 0xdc00; -#else -#error "Unknown code width" -#endif -} -#endif /* SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 */ - -#if PCRE2_CODE_UNIT_WIDTH == 8 -# define VECTOR_FACTOR 16 -# define vect_t uint8x16_t -# define VLD1Q(X) vld1q_u8((sljit_u8 *)(X)) -# define VCEQQ vceqq_u8 -# define VORRQ vorrq_u8 -# define VST1Q vst1q_u8 -# define VDUPQ vdupq_n_u8 -# define VEXTQ vextq_u8 -# define VANDQ vandq_u8 -typedef union { - uint8_t mem[16]; - uint64_t dw[2]; -} quad_word; -#elif PCRE2_CODE_UNIT_WIDTH == 16 -# define VECTOR_FACTOR 8 -# define vect_t uint16x8_t -# define VLD1Q(X) vld1q_u16((sljit_u16 *)(X)) -# define VCEQQ vceqq_u16 -# define VORRQ vorrq_u16 -# define VST1Q vst1q_u16 -# define VDUPQ vdupq_n_u16 -# define VEXTQ vextq_u16 -# define VANDQ vandq_u16 -typedef union { - uint16_t mem[8]; - uint64_t dw[2]; -} quad_word; -#else -# define VECTOR_FACTOR 4 -# define vect_t uint32x4_t -# define VLD1Q(X) vld1q_u32((sljit_u32 *)(X)) -# define VCEQQ vceqq_u32 -# define VORRQ vorrq_u32 -# define VST1Q vst1q_u32 -# define VDUPQ vdupq_n_u32 -# define VEXTQ vextq_u32 -# define VANDQ vandq_u32 -typedef union { - uint32_t mem[4]; - uint64_t dw[2]; -} quad_word; -#endif - -#define FFCS -#include "pcre2_jit_neon_inc.h" -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -# define FF_UTF -# include "pcre2_jit_neon_inc.h" -# undef FF_UTF -#endif -#undef FFCS - -#define FFCS_2 -#include "pcre2_jit_neon_inc.h" -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -# define FF_UTF -# include "pcre2_jit_neon_inc.h" -# undef FF_UTF -#endif -#undef FFCS_2 - -#define FFCS_MASK -#include "pcre2_jit_neon_inc.h" -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -# define FF_UTF -# include "pcre2_jit_neon_inc.h" -# undef FF_UTF -#endif -#undef FFCS_MASK - -#define JIT_HAS_FAST_FORWARD_CHAR_SIMD 1 - -static void fast_forward_char_simd(compiler_common *common, PCRE2_UCHAR char1, PCRE2_UCHAR char2, sljit_s32 offset) -{ -DEFINE_COMPILER; -int_char ic; -struct sljit_jump *partial_quit; -/* Save temporary registers. */ -OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STR_PTR, 0); -OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS1, TMP3, 0); - -/* Prepare function arguments */ -OP1(SLJIT_MOV, SLJIT_R0, 0, STR_END, 0); -OP1(SLJIT_MOV, SLJIT_R1, 0, STR_PTR, 0); -OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_IMM, offset); - -if (char1 == char2) - { - ic.c.c1 = char1; - ic.c.c2 = char2; - OP1(SLJIT_MOV, SLJIT_R4, 0, SLJIT_IMM, ic.x); - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 - if (common->utf && offset > 0) - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs_utf)); - else - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs)); -#else - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs)); -#endif - } -else - { - PCRE2_UCHAR mask = char1 ^ char2; - if (is_powerof2(mask)) - { - ic.c.c1 = char1 | mask; - ic.c.c2 = mask; - OP1(SLJIT_MOV, SLJIT_R4, 0, SLJIT_IMM, ic.x); - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 - if (common->utf && offset > 0) - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs_mask_utf)); - else - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs_mask)); -#else - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs_mask)); -#endif - } - else - { - ic.c.c1 = char1; - ic.c.c2 = char2; - OP1(SLJIT_MOV, SLJIT_R4, 0, SLJIT_IMM, ic.x); - -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 - if (common->utf && offset > 0) - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs_2_utf)); - else - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs_2)); -#else - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(UW) | SLJIT_ARG3(UW) | SLJIT_ARG4(UW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcs_2)); -#endif - } - } -/* Restore registers. */ -OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); -OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(SLJIT_SP), LOCALS1); - -/* Check return value. */ -partial_quit = CMP(SLJIT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0); -if (common->mode == PCRE2_JIT_COMPLETE) - add_jump(compiler, &common->failed_match, partial_quit); - -/* Fast forward STR_PTR to the result of memchr. */ -OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_RETURN_REG, 0); - -if (common->mode != PCRE2_JIT_COMPLETE) - JUMPHERE(partial_quit); -} - -typedef enum { - compare_match1, - compare_match1i, - compare_match2, -} compare_type; - -static inline vect_t fast_forward_char_pair_compare(compare_type ctype, vect_t dst, vect_t cmp1, vect_t cmp2) -{ -if (ctype == compare_match2) - { - vect_t tmp = dst; - dst = VCEQQ(dst, cmp1); - tmp = VCEQQ(tmp, cmp2); - dst = VORRQ(dst, tmp); - return dst; - } - -if (ctype == compare_match1i) - dst = VORRQ(dst, cmp2); -dst = VCEQQ(dst, cmp1); -return dst; -} - -static SLJIT_INLINE sljit_u32 max_fast_forward_char_pair_offset(void) -{ -#if PCRE2_CODE_UNIT_WIDTH == 8 -return 15; -#elif PCRE2_CODE_UNIT_WIDTH == 16 -return 7; -#elif PCRE2_CODE_UNIT_WIDTH == 32 -return 3; -#else -#error "Unsupported unit width" -#endif -} - -/* ARM doesn't have a shift left across lanes. */ -static SLJIT_INLINE vect_t shift_left_n_lanes(vect_t a, sljit_u8 n) -{ -vect_t zero = VDUPQ(0); -SLJIT_ASSERT(0 < n && n < VECTOR_FACTOR); -/* VEXTQ takes an immediate as last argument. */ -#define C(X) case X: return VEXTQ(zero, a, VECTOR_FACTOR - X); -switch (n) - { - C(1); C(2); C(3); -#if PCRE2_CODE_UNIT_WIDTH != 32 - C(4); C(5); C(6); C(7); -# if PCRE2_CODE_UNIT_WIDTH != 16 - C(8); C(9); C(10); C(11); C(12); C(13); C(14); C(15); -# endif -#endif - default: - /* Based on the ASSERT(0 < n && n < VECTOR_FACTOR) above, this won't - happen. The return is still here for compilers to not warn. */ - return a; - } -} - -#define FFCPS -#define FFCPS_DIFF1 -#define FFCPS_CHAR1A2A - -#define FFCPS_0 -#include "pcre2_jit_neon_inc.h" -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -# define FF_UTF -# include "pcre2_jit_neon_inc.h" -# undef FF_UTF -#endif -#undef FFCPS_0 - -#undef FFCPS_CHAR1A2A - -#define FFCPS_1 -#include "pcre2_jit_neon_inc.h" -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -# define FF_UTF -# include "pcre2_jit_neon_inc.h" -# undef FF_UTF -#endif -#undef FFCPS_1 - -#undef FFCPS_DIFF1 - -#define FFCPS_DEFAULT -#include "pcre2_jit_neon_inc.h" -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -# define FF_UTF -# include "pcre2_jit_neon_inc.h" -# undef FF_UTF -#endif -#undef FFCPS - -#define JIT_HAS_FAST_FORWARD_CHAR_PAIR_SIMD 1 - -static void fast_forward_char_pair_simd(compiler_common *common, sljit_s32 offs1, - PCRE2_UCHAR char1a, PCRE2_UCHAR char1b, sljit_s32 offs2, PCRE2_UCHAR char2a, PCRE2_UCHAR char2b) -{ -DEFINE_COMPILER; -sljit_u32 diff = IN_UCHARS(offs1 - offs2); -struct sljit_jump *partial_quit; -int_char ic; -SLJIT_ASSERT(common->mode == PCRE2_JIT_COMPLETE && offs1 > offs2); -SLJIT_ASSERT(diff <= IN_UCHARS(max_fast_forward_char_pair_offset())); -SLJIT_ASSERT(compiler->scratches == 5); - -/* Save temporary register STR_PTR. */ -OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STR_PTR, 0); - -/* Prepare arguments for the function call. */ -if (common->match_end_ptr == 0) - OP1(SLJIT_MOV, SLJIT_R0, 0, STR_END, 0); -else - { - OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_SP), common->match_end_ptr); - OP2(SLJIT_ADD, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, IN_UCHARS(offs1 + 1)); - - OP2(SLJIT_SUB | SLJIT_SET_LESS, SLJIT_UNUSED, 0, STR_END, 0, SLJIT_R0, 0); - CMOV(SLJIT_LESS, SLJIT_R0, STR_END, 0); - } - -OP1(SLJIT_MOV, SLJIT_R1, 0, STR_PTR, 0); -OP1(SLJIT_MOV_S32, SLJIT_R2, 0, SLJIT_IMM, offs1); -OP1(SLJIT_MOV_S32, SLJIT_R3, 0, SLJIT_IMM, offs2); -ic.c.c1 = char1a; -ic.c.c2 = char1b; -ic.c.c3 = char2a; -ic.c.c4 = char2b; -OP1(SLJIT_MOV_U32, SLJIT_R4, 0, SLJIT_IMM, ic.x); - -if (diff == 1) { - if (char1a == char1b && char2a == char2b) { -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 - if (common->utf) - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW) | SLJIT_ARG4(SW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcps_0_utf)); - else -#endif - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW) | SLJIT_ARG4(SW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcps_0)); - } else { -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 - if (common->utf) - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW) | SLJIT_ARG4(SW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcps_1_utf)); - else -#endif - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW) | SLJIT_ARG4(SW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcps_1)); - } -} else { -#if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 - if (common->utf) - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW) | SLJIT_ARG4(SW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcps_default_utf)); - else -#endif - sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_RET(SW) | SLJIT_ARG1(SW) | SLJIT_ARG2(SW) | SLJIT_ARG3(SW) | SLJIT_ARG4(SW), - SLJIT_IMM, SLJIT_FUNC_OFFSET(ffcps_default)); -} - -/* Restore STR_PTR register. */ -OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); - -/* Check return value. */ -partial_quit = CMP(SLJIT_EQUAL, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0); -add_jump(compiler, &common->failed_match, partial_quit); - -/* Fast forward STR_PTR to the result of memchr. */ -OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_RETURN_REG, 0); - -JUMPHERE(partial_quit); -} - -#endif /* SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64 */ diff --git a/include/php/ext/pcre/pcre2lib/pcre2_ucp.h b/include/php/ext/pcre/pcre2lib/pcre2_ucp.h deleted file mode 100644 index 9538062..0000000 --- a/include/php/ext/pcre/pcre2lib/pcre2_ucp.h +++ /dev/null @@ -1,299 +0,0 @@ -/************************************************* -* Perl-Compatible Regular Expressions * -*************************************************/ - -/* PCRE is a library of functions to support regular expressions whose syntax -and semantics are as close as possible to those of the Perl 5 language. - - Written by Philip Hazel - Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2018 University of Cambridge - ------------------------------------------------------------------------------ -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 the University of Cambridge 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. ------------------------------------------------------------------------------ -*/ - - -#ifndef PCRE2_UCP_H_IDEMPOTENT_GUARD -#define PCRE2_UCP_H_IDEMPOTENT_GUARD - -/* This file contains definitions of the property values that are returned by -the UCD access macros. New values that are added for new releases of Unicode -should always be at the end of each enum, for backwards compatibility. - -IMPORTANT: Note also that the specific numeric values of the enums have to be -the same as the values that are generated by the maint/MultiStage2.py script, -where the equivalent property descriptive names are listed in vectors. - -ALSO: The specific values of the first two enums are assumed for the table -called catposstab in pcre2_compile.c. */ - -/* These are the general character categories. */ - -enum { - ucp_C, /* Other */ - ucp_L, /* Letter */ - ucp_M, /* Mark */ - ucp_N, /* Number */ - ucp_P, /* Punctuation */ - ucp_S, /* Symbol */ - ucp_Z /* Separator */ -}; - -/* These are the particular character categories. */ - -enum { - ucp_Cc, /* Control */ - ucp_Cf, /* Format */ - ucp_Cn, /* Unassigned */ - ucp_Co, /* Private use */ - ucp_Cs, /* Surrogate */ - ucp_Ll, /* Lower case letter */ - ucp_Lm, /* Modifier letter */ - ucp_Lo, /* Other letter */ - ucp_Lt, /* Title case letter */ - ucp_Lu, /* Upper case letter */ - ucp_Mc, /* Spacing mark */ - ucp_Me, /* Enclosing mark */ - ucp_Mn, /* Non-spacing mark */ - ucp_Nd, /* Decimal number */ - ucp_Nl, /* Letter number */ - ucp_No, /* Other number */ - ucp_Pc, /* Connector punctuation */ - ucp_Pd, /* Dash punctuation */ - ucp_Pe, /* Close punctuation */ - ucp_Pf, /* Final punctuation */ - ucp_Pi, /* Initial punctuation */ - ucp_Po, /* Other punctuation */ - ucp_Ps, /* Open punctuation */ - ucp_Sc, /* Currency symbol */ - ucp_Sk, /* Modifier symbol */ - ucp_Sm, /* Mathematical symbol */ - ucp_So, /* Other symbol */ - ucp_Zl, /* Line separator */ - ucp_Zp, /* Paragraph separator */ - ucp_Zs /* Space separator */ -}; - -/* These are grapheme break properties. The Extended Pictographic property -comes from the emoji-data.txt file. */ - -enum { - ucp_gbCR, /* 0 */ - ucp_gbLF, /* 1 */ - ucp_gbControl, /* 2 */ - ucp_gbExtend, /* 3 */ - ucp_gbPrepend, /* 4 */ - ucp_gbSpacingMark, /* 5 */ - ucp_gbL, /* 6 Hangul syllable type L */ - ucp_gbV, /* 7 Hangul syllable type V */ - ucp_gbT, /* 8 Hangul syllable type T */ - ucp_gbLV, /* 9 Hangul syllable type LV */ - ucp_gbLVT, /* 10 Hangul syllable type LVT */ - ucp_gbRegionalIndicator, /* 11 */ - ucp_gbOther, /* 12 */ - ucp_gbZWJ, /* 13 */ - ucp_gbExtended_Pictographic /* 14 */ -}; - -/* These are the script identifications. */ - -enum { - ucp_Unknown, - ucp_Arabic, - ucp_Armenian, - ucp_Bengali, - ucp_Bopomofo, - ucp_Braille, - ucp_Buginese, - ucp_Buhid, - ucp_Canadian_Aboriginal, - ucp_Cherokee, - ucp_Common, - ucp_Coptic, - ucp_Cypriot, - ucp_Cyrillic, - ucp_Deseret, - ucp_Devanagari, - ucp_Ethiopic, - ucp_Georgian, - ucp_Glagolitic, - ucp_Gothic, - ucp_Greek, - ucp_Gujarati, - ucp_Gurmukhi, - ucp_Han, - ucp_Hangul, - ucp_Hanunoo, - ucp_Hebrew, - ucp_Hiragana, - ucp_Inherited, - ucp_Kannada, - ucp_Katakana, - ucp_Kharoshthi, - ucp_Khmer, - ucp_Lao, - ucp_Latin, - ucp_Limbu, - ucp_Linear_B, - ucp_Malayalam, - ucp_Mongolian, - ucp_Myanmar, - ucp_New_Tai_Lue, - ucp_Ogham, - ucp_Old_Italic, - ucp_Old_Persian, - ucp_Oriya, - ucp_Osmanya, - ucp_Runic, - ucp_Shavian, - ucp_Sinhala, - ucp_Syloti_Nagri, - ucp_Syriac, - ucp_Tagalog, - ucp_Tagbanwa, - ucp_Tai_Le, - ucp_Tamil, - ucp_Telugu, - ucp_Thaana, - ucp_Thai, - ucp_Tibetan, - ucp_Tifinagh, - ucp_Ugaritic, - ucp_Yi, - /* New for Unicode 5.0 */ - ucp_Balinese, - ucp_Cuneiform, - ucp_Nko, - ucp_Phags_Pa, - ucp_Phoenician, - /* New for Unicode 5.1 */ - ucp_Carian, - ucp_Cham, - ucp_Kayah_Li, - ucp_Lepcha, - ucp_Lycian, - ucp_Lydian, - ucp_Ol_Chiki, - ucp_Rejang, - ucp_Saurashtra, - ucp_Sundanese, - ucp_Vai, - /* New for Unicode 5.2 */ - ucp_Avestan, - ucp_Bamum, - ucp_Egyptian_Hieroglyphs, - ucp_Imperial_Aramaic, - ucp_Inscriptional_Pahlavi, - ucp_Inscriptional_Parthian, - ucp_Javanese, - ucp_Kaithi, - ucp_Lisu, - ucp_Meetei_Mayek, - ucp_Old_South_Arabian, - ucp_Old_Turkic, - ucp_Samaritan, - ucp_Tai_Tham, - ucp_Tai_Viet, - /* New for Unicode 6.0.0 */ - ucp_Batak, - ucp_Brahmi, - ucp_Mandaic, - /* New for Unicode 6.1.0 */ - ucp_Chakma, - ucp_Meroitic_Cursive, - ucp_Meroitic_Hieroglyphs, - ucp_Miao, - ucp_Sharada, - ucp_Sora_Sompeng, - ucp_Takri, - /* New for Unicode 7.0.0 */ - ucp_Bassa_Vah, - ucp_Caucasian_Albanian, - ucp_Duployan, - ucp_Elbasan, - ucp_Grantha, - ucp_Khojki, - ucp_Khudawadi, - ucp_Linear_A, - ucp_Mahajani, - ucp_Manichaean, - ucp_Mende_Kikakui, - ucp_Modi, - ucp_Mro, - ucp_Nabataean, - ucp_Old_North_Arabian, - ucp_Old_Permic, - ucp_Pahawh_Hmong, - ucp_Palmyrene, - ucp_Psalter_Pahlavi, - ucp_Pau_Cin_Hau, - ucp_Siddham, - ucp_Tirhuta, - ucp_Warang_Citi, - /* New for Unicode 8.0.0 */ - ucp_Ahom, - ucp_Anatolian_Hieroglyphs, - ucp_Hatran, - ucp_Multani, - ucp_Old_Hungarian, - ucp_SignWriting, - /* New for Unicode 10.0.0 (no update since 8.0.0) */ - ucp_Adlam, - ucp_Bhaiksuki, - ucp_Marchen, - ucp_Newa, - ucp_Osage, - ucp_Tangut, - ucp_Masaram_Gondi, - ucp_Nushu, - ucp_Soyombo, - ucp_Zanabazar_Square, - /* New for Unicode 11.0.0 */ - ucp_Dogra, - ucp_Gunjala_Gondi, - ucp_Hanifi_Rohingya, - ucp_Makasar, - ucp_Medefaidrin, - ucp_Old_Sogdian, - ucp_Sogdian, - /* New for Unicode 12.0.0 */ - ucp_Elymaic, - ucp_Nandinagari, - ucp_Nyiakeng_Puachue_Hmong, - ucp_Wancho, - /* New for Unicode 13.0.0 */ - ucp_Chorasmian, - ucp_Dives_Akuru, - ucp_Khitan_Small_Script, - ucp_Yezidi -}; - -#endif /* PCRE2_UCP_H_IDEMPOTENT_GUARD */ - -/* End of pcre2_ucp.h */ diff --git a/include/php/ext/pcre/php_pcre.h b/include/php/ext/pcre/php_pcre.h deleted file mode 100644 index b375981..0000000 --- a/include/php/ext/pcre/php_pcre.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Andrei Zmievski | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_PCRE_H -#define PHP_PCRE_H - -#if HAVE_BUNDLED_PCRE -#include "pcre2lib/pcre2.h" -#else -#include "pcre2.h" -#endif - -#include - -PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, size_t limit, size_t *replace_count); -PHPAPI pcre2_code* pcre_get_compiled_regex(zend_string *regex, uint32_t *capture_count); -PHPAPI pcre2_code* pcre_get_compiled_regex_ex(zend_string *regex, uint32_t *capture_count, uint32_t *preg_options, uint32_t *coptions); - -extern zend_module_entry pcre_module_entry; -#define pcre_module_ptr &pcre_module_entry - -#include "php_version.h" -#define PHP_PCRE_VERSION PHP_VERSION - -typedef struct _pcre_cache_entry pcre_cache_entry; - -PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex); -PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache_ex(zend_string *regex, int locale_aware); - -PHPAPI void php_pcre_match_impl(pcre_cache_entry *pce, zend_string *subject_str, zval *return_value, - zval *subpats, int global, int use_flags, zend_long flags, zend_off_t start_offset); - -PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, - size_t limit, size_t *replace_count); - -PHPAPI void php_pcre_split_impl( pcre_cache_entry *pce, zend_string *subject_str, zval *return_value, - zend_long limit_val, zend_long flags); - -PHPAPI void php_pcre_grep_impl( pcre_cache_entry *pce, zval *input, zval *return_value, - zend_long flags); - -PHPAPI pcre2_match_context *php_pcre_mctx(void); -PHPAPI pcre2_general_context *php_pcre_gctx(void); -PHPAPI pcre2_compile_context *php_pcre_cctx(void); -PHPAPI void php_pcre_pce_incref(pcre_cache_entry *); -PHPAPI void php_pcre_pce_decref(pcre_cache_entry *); -PHPAPI pcre2_code *php_pcre_pce_re(pcre_cache_entry *); -/* capture_count can be ignored, re is required. */ -PHPAPI pcre2_match_data *php_pcre_create_match_data(uint32_t, pcre2_code *); -PHPAPI void php_pcre_free_match_data(pcre2_match_data *); - -ZEND_BEGIN_MODULE_GLOBALS(pcre) - HashTable pcre_cache; - zend_long backtrack_limit; - zend_long recursion_limit; -#ifdef HAVE_PCRE_JIT_SUPPORT - zend_bool jit; -#endif - zend_bool per_request_cache; - int error_code; - /* Used for unmatched subpatterns in OFFSET_CAPTURE mode */ - zval unmatched_null_pair; - zval unmatched_empty_pair; -ZEND_END_MODULE_GLOBALS(pcre) - -PHPAPI ZEND_EXTERN_MODULE_GLOBALS(pcre) -#define PCRE_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(pcre, v) - -#define phpext_pcre_ptr pcre_module_ptr - -#endif /* PHP_PCRE_H */ diff --git a/include/php/ext/pdo/php_pdo.h b/include/php/ext/pdo/php_pdo.h deleted file mode 100644 index 27c9c98..0000000 --- a/include/php/ext/pdo/php_pdo.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_PDO_H -#define PHP_PDO_H - -#include "zend.h" - -extern zend_module_entry pdo_module_entry; -#define phpext_pdo_ptr &pdo_module_entry - -#include "php_version.h" -#define PHP_PDO_VERSION PHP_VERSION - -#ifdef PHP_WIN32 -# if defined(PDO_EXPORTS) || (!defined(COMPILE_DL_PDO)) -# define PDO_API __declspec(dllexport) -# elif defined(COMPILE_DL_PDO) -# define PDO_API __declspec(dllimport) -# else -# define PDO_API /* nothing special */ -# endif -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define PDO_API __attribute__ ((visibility("default"))) -#else -# define PDO_API /* nothing special */ -#endif - -#ifdef ZTS -# include "TSRM.h" -#endif - -PHP_MINIT_FUNCTION(pdo); -PHP_MSHUTDOWN_FUNCTION(pdo); -PHP_MINFO_FUNCTION(pdo); - -#define REGISTER_PDO_CLASS_CONST_LONG(const_name, value) \ - zend_declare_class_constant_long(php_pdo_get_dbh_ce(), const_name, sizeof(const_name)-1, (zend_long)value); - -#define REGISTER_PDO_CLASS_CONST_STRING(const_name, value) \ - zend_declare_class_constant_stringl(php_pdo_get_dbh_ce(), const_name, sizeof(const_name)-1, value, sizeof(value)-1); - -#define PDO_CONSTRUCT_CHECK \ - if (!dbh->driver) { \ - pdo_raise_impl_error(dbh, NULL, "00000", "PDO constructor was not called"); \ - return; \ - } \ - - -#endif /* PHP_PDO_H */ diff --git a/include/php/ext/pdo/php_pdo_driver.h b/include/php/ext/pdo/php_pdo_driver.h deleted file mode 100644 index aaf3cf7..0000000 --- a/include/php/ext/pdo/php_pdo_driver.h +++ /dev/null @@ -1,698 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_PDO_DRIVER_H -#define PHP_PDO_DRIVER_H - -#include "php_pdo.h" - -/* forward declarations */ -typedef struct _pdo_dbh_t pdo_dbh_t; -typedef struct _pdo_dbh_object_t pdo_dbh_object_t; -typedef struct _pdo_stmt_t pdo_stmt_t; -typedef struct _pdo_row_t pdo_row_t; -struct pdo_bound_param_data; - -#ifdef PHP_WIN32 -typedef __int64 pdo_int64_t; -typedef unsigned __int64 pdo_uint64_t; -#else -typedef long long int pdo_int64_t; -typedef unsigned long long int pdo_uint64_t; -#endif -PDO_API char *php_pdo_int64_to_str(pdo_int64_t i64); - -#ifndef TRUE -# define TRUE 1 -#endif -#ifndef FALSE -# define FALSE 0 -#endif - -#define PDO_DRIVER_API 20170320 - -enum pdo_param_type { - PDO_PARAM_NULL, - - /* int as in long (the php native int type). - * If you mark a column as an int, PDO expects get_col to return - * a pointer to a long */ - PDO_PARAM_INT, - - /* get_col ptr should point to start of the string buffer */ - PDO_PARAM_STR, - - /* get_col: when len is 0 ptr should point to a php_stream *, - * otherwise it should behave like a string. Indicate a NULL field - * value by setting the ptr to NULL */ - PDO_PARAM_LOB, - - /* get_col: will expect the ptr to point to a new PDOStatement object handle, - * but this isn't wired up yet */ - PDO_PARAM_STMT, /* hierarchical result set */ - - /* get_col ptr should point to a zend_bool */ - PDO_PARAM_BOOL, - - /* get_col ptr should point to a zval* - and the driver is responsible for adding correct type information to get_column_meta() - */ - PDO_PARAM_ZVAL, - - /* magic flag to denote a parameter as being input/output */ - PDO_PARAM_INPUT_OUTPUT = 0x80000000, - - /* magic flag to denote a string that uses the national character set - see section 4.2.1 of SQL-92: http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt - */ - PDO_PARAM_STR_NATL = 0x40000000, - - /* magic flag to denote a string that uses the regular character set */ - PDO_PARAM_STR_CHAR = 0x20000000, -}; - -#define PDO_PARAM_FLAGS 0xFFFF0000 - -#define PDO_PARAM_TYPE(x) ((x) & ~PDO_PARAM_FLAGS) - -enum pdo_fetch_type { - PDO_FETCH_USE_DEFAULT, - PDO_FETCH_LAZY, - PDO_FETCH_ASSOC, - PDO_FETCH_NUM, - PDO_FETCH_BOTH, - PDO_FETCH_OBJ, - PDO_FETCH_BOUND, /* return true/false only; rely on bound columns */ - PDO_FETCH_COLUMN, /* fetch a numbered column only */ - PDO_FETCH_CLASS, /* create an instance of named class, call ctor and set properties */ - PDO_FETCH_INTO, /* fetch row into an existing object */ - PDO_FETCH_FUNC, /* fetch into function and return its result */ - PDO_FETCH_NAMED, /* like PDO_FETCH_ASSOC, but can handle duplicate names */ - PDO_FETCH_KEY_PAIR, /* fetch into an array where the 1st column is a key and all subsequent columns are values */ - PDO_FETCH__MAX /* must be last */ -}; - -#define PDO_FETCH_FLAGS 0xFFFF0000 /* fetchAll() modes or'd to PDO_FETCH_XYZ */ -#define PDO_FETCH_GROUP 0x00010000 /* fetch into groups */ -#define PDO_FETCH_UNIQUE 0x00030000 /* fetch into groups assuming first col is unique */ -#define PDO_FETCH_CLASSTYPE 0x00040000 /* fetch class gets its class name from 1st column */ -#define PDO_FETCH_SERIALIZE 0x00080000 /* fetch class instances by calling serialize */ -#define PDO_FETCH_PROPS_LATE 0x00100000 /* fetch props after calling ctor */ - -/* fetch orientation for scrollable cursors */ -enum pdo_fetch_orientation { - PDO_FETCH_ORI_NEXT, /* default: fetch the next available row */ - PDO_FETCH_ORI_PRIOR, /* scroll back to prior row and fetch that */ - PDO_FETCH_ORI_FIRST, /* scroll to the first row and fetch that */ - PDO_FETCH_ORI_LAST, /* scroll to the last row and fetch that */ - PDO_FETCH_ORI_ABS, /* scroll to an absolute numbered row and fetch that */ - PDO_FETCH_ORI_REL /* scroll relative to the current row, and fetch that */ -}; - -enum pdo_attribute_type { - PDO_ATTR_AUTOCOMMIT, /* use to turn on or off auto-commit mode */ - PDO_ATTR_PREFETCH, /* configure the prefetch size for drivers that support it. Size is in KB */ - PDO_ATTR_TIMEOUT, /* connection timeout in seconds */ - PDO_ATTR_ERRMODE, /* control how errors are handled */ - PDO_ATTR_SERVER_VERSION, /* database server version */ - PDO_ATTR_CLIENT_VERSION, /* client library version */ - PDO_ATTR_SERVER_INFO, /* server information */ - PDO_ATTR_CONNECTION_STATUS, /* connection status */ - PDO_ATTR_CASE, /* control case folding for portability */ - PDO_ATTR_CURSOR_NAME, /* name a cursor for use in "WHERE CURRENT OF " */ - PDO_ATTR_CURSOR, /* cursor type */ - PDO_ATTR_ORACLE_NULLS, /* convert empty strings to NULL */ - PDO_ATTR_PERSISTENT, /* pconnect style connection */ - PDO_ATTR_STATEMENT_CLASS, /* array(classname, array(ctor_args)) to specify the class of the constructed statement */ - PDO_ATTR_FETCH_TABLE_NAMES, /* include table names in the column names, where available */ - PDO_ATTR_FETCH_CATALOG_NAMES, /* include the catalog/db name names in the column names, where available */ - PDO_ATTR_DRIVER_NAME, /* name of the driver (as used in the constructor) */ - PDO_ATTR_STRINGIFY_FETCHES, /* converts integer/float types to strings during fetch */ - PDO_ATTR_MAX_COLUMN_LEN, /* make database calculate maximum length of data found in a column */ - PDO_ATTR_DEFAULT_FETCH_MODE, /* Set the default fetch mode */ - PDO_ATTR_EMULATE_PREPARES, /* use query emulation rather than native */ - PDO_ATTR_DEFAULT_STR_PARAM, /* set the default string parameter type (see the PDO::PARAM_STR_* magic flags) */ - - /* this defines the start of the range for driver specific options. - * Drivers should define their own attribute constants beginning with this - * value. */ - PDO_ATTR_DRIVER_SPECIFIC = 1000 -}; - -enum pdo_cursor_type { - PDO_CURSOR_FWDONLY, /* forward only cursor (default) */ - PDO_CURSOR_SCROLL /* scrollable cursor */ -}; - -/* SQL-92 SQLSTATE error codes. - -The character string value returned for an SQLSTATE consists of a two-character -class value followed by a three-character subclass value. A class value of 01 -indicates a warning and is accompanied by a return code of -SQL_SUCCESS_WITH_INFO. - -Class values other than '01', except for the class 'IM', -indicate an error and are accompanied by a return code of SQL_ERROR. The class -'IM' is specific to warnings and errors that derive from the implementation of -ODBC itself. - -The subclass value '000' in any class indicates that there is no -subclass for that SQLSTATE. The assignment of class and subclass values is -defined by SQL-92. -*/ - -typedef char pdo_error_type[6]; /* SQLSTATE */ - - -#define PDO_ERR_NONE "00000" - -enum pdo_error_mode { - PDO_ERRMODE_SILENT, /* just set error codes */ - PDO_ERRMODE_WARNING, /* raise E_WARNING */ - PDO_ERRMODE_EXCEPTION /* throw exceptions */ -}; - -enum pdo_case_conversion { - PDO_CASE_NATURAL, - PDO_CASE_UPPER, - PDO_CASE_LOWER -}; - -/* oracle interop settings */ -enum pdo_null_handling { - PDO_NULL_NATURAL = 0, - PDO_NULL_EMPTY_STRING = 1, - PDO_NULL_TO_STRING = 2 -}; - -/* {{{ utils for reading attributes set as driver_options */ -static inline zend_long pdo_attr_lval(zval *options, enum pdo_attribute_type option_name, zend_long defval) -{ - zval *v; - - if (options && (v = zend_hash_index_find(Z_ARRVAL_P(options), option_name))) { - return zval_get_long(v); - } - return defval; -} -static inline zend_string *pdo_attr_strval(zval *options, enum pdo_attribute_type option_name, zend_string *defval) -{ - zval *v; - - if (options && (v = zend_hash_index_find(Z_ARRVAL_P(options), option_name))) { - return zval_try_get_string(v); - } - return defval ? zend_string_copy(defval) : NULL; -} -/* }}} */ - -/* This structure is registered with PDO when a PDO driver extension is - * initialized */ -typedef struct { - const char *driver_name; - size_t driver_name_len; - zend_ulong api_version; /* needs to be compatible with PDO */ - -#define PDO_DRIVER_HEADER(name) \ - #name, sizeof(#name)-1, \ - PDO_DRIVER_API - - /* create driver specific portion of the database handle and stash it into - * the dbh. dbh contains the data source string and flags for this - * instance. You MUST respect dbh->is_persistent and pass that flag to - * pemalloc() for all allocations that are stored in the dbh or your instance - * data in the db, otherwise you will crash PHP when persistent connections - * are used. - */ - int (*db_handle_factory)(pdo_dbh_t *dbh, zval *driver_options); - -} pdo_driver_t; - -/* {{{ methods for a database handle */ - -/* close or otherwise disconnect the database */ -typedef int (*pdo_dbh_close_func)(pdo_dbh_t *dbh); - -/* prepare a statement and stash driver specific portion into stmt */ -typedef int (*pdo_dbh_prepare_func)(pdo_dbh_t *dbh, const char *sql, size_t sql_len, pdo_stmt_t *stmt, zval *driver_options); - -/* execute a statement (that does not return a result set) */ -typedef zend_long (*pdo_dbh_do_func)(pdo_dbh_t *dbh, const char *sql, size_t sql_len); - -/* quote a string */ -typedef int (*pdo_dbh_quote_func)(pdo_dbh_t *dbh, const char *unquoted, size_t unquotedlen, char **quoted, size_t *quotedlen, enum pdo_param_type paramtype); - -/* transaction related */ -typedef int (*pdo_dbh_txn_func)(pdo_dbh_t *dbh); - -/* setting of attributes */ -typedef int (*pdo_dbh_set_attr_func)(pdo_dbh_t *dbh, zend_long attr, zval *val); - -/* return last insert id. NULL indicates error condition, otherwise, the return value - * MUST be an emalloc'd NULL terminated string. */ -typedef char *(*pdo_dbh_last_id_func)(pdo_dbh_t *dbh, const char *name, size_t *len); - -/* fetch error information. if stmt is not null, fetch information pertaining - * to the statement, otherwise fetch global error information. The driver - * should add the following information to the array "info" in this order: - * - native error code - * - string representation of the error code ... any other optional driver - * specific data ... */ -typedef int (*pdo_dbh_fetch_error_func)(pdo_dbh_t *dbh, pdo_stmt_t *stmt, zval *info); - -/* fetching of attributes */ -typedef int (*pdo_dbh_get_attr_func)(pdo_dbh_t *dbh, zend_long attr, zval *val); - -/* checking/pinging persistent connections; return SUCCESS if the connection - * is still alive and ready to be used, FAILURE otherwise. - * You may set this handler to NULL, which is equivalent to returning SUCCESS. */ -typedef int (*pdo_dbh_check_liveness_func)(pdo_dbh_t *dbh); - -/* called at request end for each persistent dbh; this gives the driver - * the opportunity to safely release resources that only have per-request - * scope */ -typedef void (*pdo_dbh_request_shutdown)(pdo_dbh_t *dbh); - -/* for adding methods to the dbh or stmt objects -pointer to a list of driver specific functions. The convention is -to prefix the function names using the PDO driver name; this will -reduce the chance of collisions with future functionality in the -PDO class or in user code (they can extend the PDO object). -*/ -enum { - PDO_DBH_DRIVER_METHOD_KIND_DBH = 0, - PDO_DBH_DRIVER_METHOD_KIND_STMT, - PDO_DBH_DRIVER_METHOD_KIND__MAX -}; - -typedef const zend_function_entry *(*pdo_dbh_get_driver_methods_func)(pdo_dbh_t *dbh, int kind); - -struct pdo_dbh_methods { - pdo_dbh_close_func closer; - pdo_dbh_prepare_func preparer; - pdo_dbh_do_func doer; - pdo_dbh_quote_func quoter; - pdo_dbh_txn_func begin; - pdo_dbh_txn_func commit; - pdo_dbh_txn_func rollback; - pdo_dbh_set_attr_func set_attribute; - pdo_dbh_last_id_func last_id; - pdo_dbh_fetch_error_func fetch_err; - pdo_dbh_get_attr_func get_attribute; - pdo_dbh_check_liveness_func check_liveness; - pdo_dbh_get_driver_methods_func get_driver_methods; - pdo_dbh_request_shutdown persistent_shutdown; - pdo_dbh_txn_func in_transaction; -}; - -/* }}} */ - -/* {{{ methods for a statement handle */ - -/* free the statement handle */ -typedef int (*pdo_stmt_dtor_func)(pdo_stmt_t *stmt); - -/* start the query */ -typedef int (*pdo_stmt_execute_func)(pdo_stmt_t *stmt); - -/* causes the next row in the set to be fetched; indicates if there are no - * more rows. The ori and offset params modify which row should be returned, - * if the stmt represents a scrollable cursor */ -typedef int (*pdo_stmt_fetch_func)(pdo_stmt_t *stmt, - enum pdo_fetch_orientation ori, zend_long offset); - -/* queries information about the type of a column, by index (0 based). - * Driver should populate stmt->columns[colno] with appropriate info */ -typedef int (*pdo_stmt_describe_col_func)(pdo_stmt_t *stmt, int colno); - -/* retrieves pointer and size of the value for a column. - * Note that PDO expects the driver to manage the lifetime of this data; - * it will copy the value into a zval on behalf of the script. - * If the driver sets caller_frees, ptr should point to emalloc'd memory - * and PDO will free it as soon as it is done using it. - */ -typedef int (*pdo_stmt_get_col_data_func)(pdo_stmt_t *stmt, int colno, char **ptr, size_t *len, int *caller_frees); - -/* hook for bound params */ -enum pdo_param_event { - PDO_PARAM_EVT_ALLOC, - PDO_PARAM_EVT_FREE, - PDO_PARAM_EVT_EXEC_PRE, - PDO_PARAM_EVT_EXEC_POST, - PDO_PARAM_EVT_FETCH_PRE, - PDO_PARAM_EVT_FETCH_POST, - PDO_PARAM_EVT_NORMALIZE -}; - -typedef int (*pdo_stmt_param_hook_func)(pdo_stmt_t *stmt, struct pdo_bound_param_data *param, enum pdo_param_event event_type); - -/* setting of attributes */ -typedef int (*pdo_stmt_set_attr_func)(pdo_stmt_t *stmt, zend_long attr, zval *val); - -/* fetching of attributes */ -typedef int (*pdo_stmt_get_attr_func)(pdo_stmt_t *stmt, zend_long attr, zval *val); - -/* retrieves meta data for a numbered column. - * Returns SUCCESS/FAILURE. - * On SUCCESS, fill in return_value with an array with the following fields. - * If a particular field is not supported, then the driver simply does not add it to - * the array, so that scripts can use isset() to check for it. - * - * ### this is just a rough first cut, and subject to change ### - * - * these are added by PDO itself, based on data from the describe handler: - * name => the column name - * len => the length/size of the column - * precision => precision of the column - * pdo_type => an integer, one of the PDO_PARAM_XXX values - * - * scale => the floating point scale - * table => the table for that column - * type => a string representation of the type, mapped to the PHP equivalent type name - * native_type => a string representation of the type, native style, if different from - * the mapped name. - * flags => an array of flags including zero or more of the following: - * primary_key, not_null, unique_key, multiple_key, unsigned, auto_increment, blob - * - * Any driver specific data should be returned using a prefixed key or value. - * Eg: custom data for the mysql driver would use either - * 'mysql:foobar' => 'some data' // to add a new key to the array - * or - * 'flags' => array('not_null', 'mysql:some_flag'); // to add data to an existing key - */ -typedef int (*pdo_stmt_get_column_meta_func)(pdo_stmt_t *stmt, zend_long colno, zval *return_value); - -/* advances the statement to the next rowset of the batch. - * If it returns 1, PDO will tear down its idea of columns - * and meta data. If it returns 0, PDO will indicate an error - * to the caller. */ -typedef int (*pdo_stmt_next_rowset_func)(pdo_stmt_t *stmt); - -/* closes the active cursor on a statement, leaving the prepared - * statement ready for re-execution. Useful to explicitly state - * that you are done with a given rowset, without having to explicitly - * fetch all the rows. */ -typedef int (*pdo_stmt_cursor_closer_func)(pdo_stmt_t *stmt); - -struct pdo_stmt_methods { - pdo_stmt_dtor_func dtor; - pdo_stmt_execute_func executer; - pdo_stmt_fetch_func fetcher; - pdo_stmt_describe_col_func describer; - pdo_stmt_get_col_data_func get_col; - pdo_stmt_param_hook_func param_hook; - pdo_stmt_set_attr_func set_attribute; - pdo_stmt_get_attr_func get_attribute; - pdo_stmt_get_column_meta_func get_column_meta; - pdo_stmt_next_rowset_func next_rowset; - pdo_stmt_cursor_closer_func cursor_closer; -}; - -/* }}} */ - -enum pdo_placeholder_support { - PDO_PLACEHOLDER_NONE=0, - PDO_PLACEHOLDER_NAMED=1, - PDO_PLACEHOLDER_POSITIONAL=2 -}; - -struct _pdo_dbh_t { - /* driver specific methods */ - const struct pdo_dbh_methods *methods; - /* driver specific data */ - void *driver_data; - - /* credentials */ - char *username, *password; - - /* if true, then data stored and pointed at by this handle must all be - * persistently allocated */ - unsigned is_persistent:1; - - /* if true, driver should act as though a COMMIT were executed between - * each executed statement; otherwise, COMMIT must be carried out manually - * */ - unsigned auto_commit:1; - - /* if true, the handle has been closed and will not function anymore */ - unsigned is_closed:1; - - /* if true, the driver requires that memory be allocated explicitly for - * the columns that are returned */ - unsigned alloc_own_columns:1; - - /* if true, commit or rollBack is allowed to be called */ - unsigned in_txn:1; - - /* max length a single character can become after correct quoting */ - unsigned max_escaped_char_length:3; - - /* oracle compat; see enum pdo_null_handling */ - unsigned oracle_nulls:2; - - /* when set, convert int/floats to strings */ - unsigned stringify:1; - - /* bitmap for pdo_param_event(s) to skip in dispatch_param_event */ - unsigned skip_param_evt:7; - - /* the sum of the number of bits here and the bit fields preceding should - * equal 32 */ - unsigned _reserved_flags:14; - - /* data source string used to open this handle */ - const char *data_source; - size_t data_source_len; - - /* the global error code. */ - pdo_error_type error_code; - - enum pdo_error_mode error_mode; - - enum pdo_case_conversion native_case, desired_case; - - /* persistent hash key associated with this handle */ - const char *persistent_id; - size_t persistent_id_len; - unsigned int refcount; - - /* driver specific "class" methods for the dbh and stmt */ - HashTable *cls_methods[PDO_DBH_DRIVER_METHOD_KIND__MAX]; - - pdo_driver_t *driver; - - zend_class_entry *def_stmt_ce; - - zval def_stmt_ctor_args; - - /* when calling PDO::query(), we need to keep the error - * context from the statement around until we next clear it. - * This will allow us to report the correct error message - * when PDO::query() fails */ - pdo_stmt_t *query_stmt; - zval query_stmt_zval; - - /* defaults for fetches */ - enum pdo_fetch_type default_fetch_type; -}; - -/* represents a connection to a database */ -struct _pdo_dbh_object_t { - pdo_dbh_t *inner; - /* these items must appear in this order at the beginning of the - struct so that this can be cast as a zend_object. we need this - to allow the extending class to escape all the custom handlers - that PDO declares. - */ - zend_object std; -}; - -static inline pdo_dbh_t *php_pdo_dbh_fetch_inner(zend_object *obj) { - return (pdo_dbh_t *)(((pdo_dbh_object_t *)((char*)(obj) - XtOffsetOf(pdo_dbh_object_t, std)))->inner); -} - -static inline pdo_dbh_object_t *php_pdo_dbh_fetch_object(zend_object *obj) { - return (pdo_dbh_object_t *)((char*)(obj) - XtOffsetOf(pdo_dbh_object_t, std)); -} - -#define Z_PDO_DBH_P(zv) php_pdo_dbh_fetch_inner(Z_OBJ_P((zv))) -#define Z_PDO_OBJECT_P(zv) php_pdo_dbh_fetch_object(Z_OBJ_P((zv))) - -/* describes a column */ -struct pdo_column_data { - zend_string *name; - size_t maxlen; - zend_ulong precision; - enum pdo_param_type param_type; -}; - -/* describes a bound parameter */ -struct pdo_bound_param_data { - zval parameter; /* the variable itself */ - - zval driver_params; /* optional parameter(s) for the driver */ - - zend_long paramno; /* if -1, then it has a name, and we don't know the index *yet* */ - zend_string *name; - - zend_long max_value_len; /* as a hint for pre-allocation */ - - void *driver_data; - - pdo_stmt_t *stmt; /* for convenience in dtor */ - - enum pdo_param_type param_type; /* desired or suggested variable type */ - - int is_param; /* parameter or column ? */ -}; - -/* represents a prepared statement */ -struct _pdo_stmt_t { - /* driver specifics */ - const struct pdo_stmt_methods *methods; - void *driver_data; - - /* if true, we've already successfully executed this statement at least - * once */ - unsigned executed:1; - /* if true, the statement supports placeholders and can implement - * bindParam() for its prepared statements, if false, PDO should - * emulate prepare and bind on its behalf */ - unsigned supports_placeholders:2; - - unsigned _reserved:29; - - /* the number of columns in the result set; not valid until after - * the statement has been executed at least once. In some cases, might - * not be valid until fetch (at the driver level) has been called at least once. - * */ - int column_count; - struct pdo_column_data *columns; - - /* we want to keep the dbh alive while we live, so we own a reference */ - zval database_object_handle; - pdo_dbh_t *dbh; - - /* keep track of bound input parameters. Some drivers support - * input/output parameters, but you can't rely on that working */ - HashTable *bound_params; - /* When rewriting from named to positional, this maps positions to names */ - HashTable *bound_param_map; - /* keep track of PHP variables bound to named (or positional) columns - * in the result set */ - HashTable *bound_columns; - - /* not always meaningful */ - zend_long row_count; - - /* used to hold the statement's current query */ - char *query_string; - size_t query_stringlen; - - /* the copy of the query with expanded binds ONLY for emulated-prepare drivers */ - char *active_query_string; - size_t active_query_stringlen; - - /* the cursor specific error code. */ - pdo_error_type error_code; - - /* for lazy fetches, we always return the same lazy object handle. - * Let's keep it here. */ - zval lazy_object_ref; - zend_ulong refcount; - - /* defaults for fetches */ - enum pdo_fetch_type default_fetch_type; - union { - int column; - struct { - zval ctor_args; /* freed */ - zend_fcall_info fci; - zend_fcall_info_cache fcc; - zval retval; - zend_class_entry *ce; - } cls; - struct { - zval fetch_args; /* freed */ - zend_fcall_info fci; - zend_fcall_info_cache fcc; - zval object; - zval function; - zval *values; /* freed */ - } func; - zval into; - } fetch; - - /* used by the query parser for driver specific - * parameter naming (see pgsql driver for example) */ - const char *named_rewrite_template; - - /* these items must appear in this order at the beginning of the - struct so that this can be cast as a zend_object. we need this - to allow the extending class to escape all the custom handlers - that PDO declares. - */ - zend_object std; -}; - -static inline pdo_stmt_t *php_pdo_stmt_fetch_object(zend_object *obj) { - return (pdo_stmt_t *)((char*)(obj) - XtOffsetOf(pdo_stmt_t, std)); -} - -#define Z_PDO_STMT_P(zv) php_pdo_stmt_fetch_object(Z_OBJ_P((zv))) - -struct _pdo_row_t { - zend_object std; - pdo_stmt_t *stmt; -}; - -/* call this in MINIT to register your PDO driver */ -PDO_API int php_pdo_register_driver(const pdo_driver_t *driver); -/* call this in MSHUTDOWN to unregister your PDO driver */ -PDO_API void php_pdo_unregister_driver(const pdo_driver_t *driver); - -/* For the convenience of drivers, this function will parse a data source - * string, of the form "name=value; name2=value2" and populate variables - * according to the data you pass in and array of pdo_data_src_parser structures */ -struct pdo_data_src_parser { - const char *optname; - char *optval; - int freeme; -}; - -PDO_API int php_pdo_parse_data_source(const char *data_source, - zend_ulong data_source_len, struct pdo_data_src_parser *parsed, - int nparams); - -PDO_API zend_class_entry *php_pdo_get_dbh_ce(void); -PDO_API zend_class_entry *php_pdo_get_exception(void); - -PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, size_t inquery_len, - char **outquery, size_t *outquery_len); - -PDO_API void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, - const char *sqlstate, const char *supp); - -PDO_API void php_pdo_dbh_addref(pdo_dbh_t *dbh); -PDO_API void php_pdo_dbh_delref(pdo_dbh_t *dbh); - -PDO_API void php_pdo_free_statement(pdo_stmt_t *stmt); - - -PDO_API void pdo_throw_exception(unsigned int driver_errcode, char *driver_errmsg, pdo_error_type *pdo_error); -#endif /* PHP_PDO_DRIVER_H */ diff --git a/include/php/ext/pdo/php_pdo_error.h b/include/php/ext/pdo/php_pdo_error.h deleted file mode 100644 index b970283..0000000 --- a/include/php/ext/pdo/php_pdo_error.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_PDO_ERROR_H -#define PHP_PDO_ERROR_H - -#include "php_pdo_driver.h" - -PDO_API void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt); - -#define PDO_DBH_CLEAR_ERR() do { \ - strlcpy(dbh->error_code, PDO_ERR_NONE, sizeof(PDO_ERR_NONE)); \ - if (dbh->query_stmt) { \ - dbh->query_stmt = NULL; \ - zval_ptr_dtor(&dbh->query_stmt_zval); \ - } \ -} while (0) -#define PDO_STMT_CLEAR_ERR() strcpy(stmt->error_code, PDO_ERR_NONE) -#define PDO_HANDLE_DBH_ERR() if (strcmp(dbh->error_code, PDO_ERR_NONE)) { pdo_handle_error(dbh, NULL); } -#define PDO_HANDLE_STMT_ERR() if (strcmp(stmt->error_code, PDO_ERR_NONE)) { pdo_handle_error(stmt->dbh, stmt); } - -#endif /* PHP_PDO_ERROR_H */ diff --git a/include/php/ext/phar/php_phar.h b/include/php/ext/phar/php_phar.h deleted file mode 100644 index c2220a7..0000000 --- a/include/php/ext/phar/php_phar.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | phar php single-file executable PHP extension | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Gregory Beaver | - | Marcus Boerger | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_PHAR_H -#define PHP_PHAR_H - -#define PHP_PHAR_VERSION PHP_VERSION - -#include "ext/standard/basic_functions.h" -extern zend_module_entry phar_module_entry; -#define phpext_phar_ptr &phar_module_entry - -#ifdef PHP_WIN32 -#define PHP_PHAR_API __declspec(dllexport) -#else -#define PHP_PHAR_API PHPAPI -#endif - -PHP_PHAR_API int phar_resolve_alias(char *alias, size_t alias_len, char **filename, size_t *filename_len); - -#endif /* PHP_PHAR_H */ diff --git a/include/php/ext/session/mod_files.h b/include/php/ext/session/mod_files.h deleted file mode 100644 index fc12f6d..0000000 --- a/include/php/ext/session/mod_files.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ - */ - -#ifndef MOD_FILES_H -#define MOD_FILES_H - -extern const ps_module ps_mod_files; -#define ps_files_ptr &ps_mod_files - -PS_FUNCS_UPDATE_TIMESTAMP(files); - -#endif diff --git a/include/php/ext/session/mod_user.h b/include/php/ext/session/mod_user.h deleted file mode 100644 index af002c0..0000000 --- a/include/php/ext/session/mod_user.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ - */ - -#ifndef MOD_USER_H -#define MOD_USER_H - -extern const ps_module ps_mod_user; -#define ps_user_ptr &ps_mod_user - -PS_FUNCS_UPDATE_TIMESTAMP(user); - -#endif diff --git a/include/php/ext/session/php_session.h b/include/php/ext/session/php_session.h deleted file mode 100644 index 4c795fd..0000000 --- a/include/php/ext/session/php_session.h +++ /dev/null @@ -1,333 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_SESSION_H -#define PHP_SESSION_H - -#include "ext/standard/php_var.h" -#include "ext/hash/php_hash.h" - -#define PHP_SESSION_API 20161017 - -#include "php_version.h" -#define PHP_SESSION_VERSION PHP_VERSION - -/* save handler macros */ -#define PS_NUM_APIS 9 -#define PS_OPEN_ARGS void **mod_data, const char *save_path, const char *session_name -#define PS_CLOSE_ARGS void **mod_data -#define PS_READ_ARGS void **mod_data, zend_string *key, zend_string **val, zend_long maxlifetime -#define PS_WRITE_ARGS void **mod_data, zend_string *key, zend_string *val, zend_long maxlifetime -#define PS_DESTROY_ARGS void **mod_data, zend_string *key -#define PS_GC_ARGS void **mod_data, zend_long maxlifetime, zend_long *nrdels -#define PS_CREATE_SID_ARGS void **mod_data -#define PS_VALIDATE_SID_ARGS void **mod_data, zend_string *key -#define PS_UPDATE_TIMESTAMP_ARGS void **mod_data, zend_string *key, zend_string *val, zend_long maxlifetime - -typedef struct ps_module_struct { - const char *s_name; - int (*s_open)(PS_OPEN_ARGS); - int (*s_close)(PS_CLOSE_ARGS); - int (*s_read)(PS_READ_ARGS); - int (*s_write)(PS_WRITE_ARGS); - int (*s_destroy)(PS_DESTROY_ARGS); - zend_long (*s_gc)(PS_GC_ARGS); - zend_string *(*s_create_sid)(PS_CREATE_SID_ARGS); - int (*s_validate_sid)(PS_VALIDATE_SID_ARGS); - int (*s_update_timestamp)(PS_UPDATE_TIMESTAMP_ARGS); -} ps_module; - -#define PS_GET_MOD_DATA() *mod_data -#define PS_SET_MOD_DATA(a) *mod_data = (a) - -#define PS_OPEN_FUNC(x) int ps_open_##x(PS_OPEN_ARGS) -#define PS_CLOSE_FUNC(x) int ps_close_##x(PS_CLOSE_ARGS) -#define PS_READ_FUNC(x) int ps_read_##x(PS_READ_ARGS) -#define PS_WRITE_FUNC(x) int ps_write_##x(PS_WRITE_ARGS) -#define PS_DESTROY_FUNC(x) int ps_delete_##x(PS_DESTROY_ARGS) -#define PS_GC_FUNC(x) zend_long ps_gc_##x(PS_GC_ARGS) -#define PS_CREATE_SID_FUNC(x) zend_string *ps_create_sid_##x(PS_CREATE_SID_ARGS) -#define PS_VALIDATE_SID_FUNC(x) int ps_validate_sid_##x(PS_VALIDATE_SID_ARGS) -#define PS_UPDATE_TIMESTAMP_FUNC(x) int ps_update_timestamp_##x(PS_UPDATE_TIMESTAMP_ARGS) - -/* Legacy save handler module definitions */ -#define PS_FUNCS(x) \ - PS_OPEN_FUNC(x); \ - PS_CLOSE_FUNC(x); \ - PS_READ_FUNC(x); \ - PS_WRITE_FUNC(x); \ - PS_DESTROY_FUNC(x); \ - PS_GC_FUNC(x); \ - PS_CREATE_SID_FUNC(x) - -#define PS_MOD(x) \ - #x, ps_open_##x, ps_close_##x, ps_read_##x, ps_write_##x, \ - ps_delete_##x, ps_gc_##x, php_session_create_id, \ - php_session_validate_sid, php_session_update_timestamp - -/* Legacy SID creation enabled save handler module definitions */ -#define PS_FUNCS_SID(x) \ - PS_OPEN_FUNC(x); \ - PS_CLOSE_FUNC(x); \ - PS_READ_FUNC(x); \ - PS_WRITE_FUNC(x); \ - PS_DESTROY_FUNC(x); \ - PS_GC_FUNC(x); \ - PS_CREATE_SID_FUNC(x); \ - PS_VALIDATE_SID_FUNC(x); \ - PS_UPDATE_TIMESTAMP_FUNC(x); - -#define PS_MOD_SID(x) \ - #x, ps_open_##x, ps_close_##x, ps_read_##x, ps_write_##x, \ - ps_delete_##x, ps_gc_##x, ps_create_sid_##x, \ - php_session_validate_sid, php_session_update_timestamp - -/* Update timestamp enabled save handler module definitions - New save handlers should use this API */ -#define PS_FUNCS_UPDATE_TIMESTAMP(x) \ - PS_OPEN_FUNC(x); \ - PS_CLOSE_FUNC(x); \ - PS_READ_FUNC(x); \ - PS_WRITE_FUNC(x); \ - PS_DESTROY_FUNC(x); \ - PS_GC_FUNC(x); \ - PS_CREATE_SID_FUNC(x); \ - PS_VALIDATE_SID_FUNC(x); \ - PS_UPDATE_TIMESTAMP_FUNC(x); - -#define PS_MOD_UPDATE_TIMESTAMP(x) \ - #x, ps_open_##x, ps_close_##x, ps_read_##x, ps_write_##x, \ - ps_delete_##x, ps_gc_##x, ps_create_sid_##x, \ - ps_validate_sid_##x, ps_update_timestamp_##x - - -typedef enum { - php_session_disabled, - php_session_none, - php_session_active -} php_session_status; - -typedef struct _php_session_rfc1867_progress { - size_t sname_len; - zval sid; - smart_str key; - - zend_long update_step; - zend_long next_update; - double next_update_time; - zend_bool cancel_upload; - zend_bool apply_trans_sid; - size_t content_length; - - zval data; /* the array exported to session data */ - zval *post_bytes_processed; /* data["bytes_processed"] */ - zval files; /* data["files"] array */ - zval current_file; /* array of currently uploading file */ - zval *current_file_bytes_processed; -} php_session_rfc1867_progress; - -typedef struct _php_ps_globals { - char *save_path; - char *session_name; - zend_string *id; - char *extern_referer_chk; - char *cache_limiter; - zend_long cookie_lifetime; - char *cookie_path; - char *cookie_domain; - zend_bool cookie_secure; - zend_bool cookie_httponly; - char *cookie_samesite; - const ps_module *mod; - const ps_module *default_mod; - void *mod_data; - php_session_status session_status; - zend_long gc_probability; - zend_long gc_divisor; - zend_long gc_maxlifetime; - int module_number; - zend_long cache_expire; - union { - zval names[PS_NUM_APIS]; - struct { - zval ps_open; - zval ps_close; - zval ps_read; - zval ps_write; - zval ps_destroy; - zval ps_gc; - zval ps_create_sid; - zval ps_validate_sid; - zval ps_update_timestamp; - } name; - } mod_user_names; - int mod_user_implemented; - int mod_user_is_open; - const struct ps_serializer_struct *serializer; - zval http_session_vars; - zend_bool auto_start; - zend_bool use_cookies; - zend_bool use_only_cookies; - zend_bool use_trans_sid; /* contains the INI value of whether to use trans-sid */ - - zend_long sid_length; - zend_long sid_bits_per_character; - int send_cookie; - int define_sid; - - php_session_rfc1867_progress *rfc1867_progress; - zend_bool rfc1867_enabled; /* session.upload_progress.enabled */ - zend_bool rfc1867_cleanup; /* session.upload_progress.cleanup */ - char *rfc1867_prefix; /* session.upload_progress.prefix */ - char *rfc1867_name; /* session.upload_progress.name */ - zend_long rfc1867_freq; /* session.upload_progress.freq */ - double rfc1867_min_freq; /* session.upload_progress.min_freq */ - - zend_bool use_strict_mode; /* whether or not PHP accepts unknown session ids */ - zend_bool lazy_write; /* omit session write when it is possible */ - zend_bool in_save_handler; /* state if session is in save handler or not */ - zend_bool set_handler; /* state if session module i setting handler or not */ - zend_string *session_vars; /* serialized original session data */ -} php_ps_globals; - -typedef php_ps_globals zend_ps_globals; - -extern zend_module_entry session_module_entry; -#define phpext_session_ptr &session_module_entry - -#ifdef ZTS -#define PS(v) ZEND_TSRMG(ps_globals_id, php_ps_globals *, v) -#ifdef COMPILE_DL_SESSION -ZEND_TSRMLS_CACHE_EXTERN() -#endif -#else -#define PS(v) (ps_globals.v) -#endif - -#define PS_SERIALIZER_ENCODE_ARGS void -#define PS_SERIALIZER_DECODE_ARGS const char *val, size_t vallen - -typedef struct ps_serializer_struct { - const char *name; - zend_string *(*encode)(PS_SERIALIZER_ENCODE_ARGS); - int (*decode)(PS_SERIALIZER_DECODE_ARGS); -} ps_serializer; - -#define PS_SERIALIZER_ENCODE_NAME(x) ps_srlzr_encode_##x -#define PS_SERIALIZER_DECODE_NAME(x) ps_srlzr_decode_##x - -#define PS_SERIALIZER_ENCODE_FUNC(x) \ - zend_string *PS_SERIALIZER_ENCODE_NAME(x)(PS_SERIALIZER_ENCODE_ARGS) -#define PS_SERIALIZER_DECODE_FUNC(x) \ - int PS_SERIALIZER_DECODE_NAME(x)(PS_SERIALIZER_DECODE_ARGS) - -#define PS_SERIALIZER_FUNCS(x) \ - PS_SERIALIZER_ENCODE_FUNC(x); \ - PS_SERIALIZER_DECODE_FUNC(x) - -#define PS_SERIALIZER_ENTRY(x) \ - { #x, PS_SERIALIZER_ENCODE_NAME(x), PS_SERIALIZER_DECODE_NAME(x) } - -/* default create id function */ -PHPAPI zend_string *php_session_create_id(PS_CREATE_SID_ARGS); -/* Dummy PS module functions */ -PHPAPI int php_session_validate_sid(PS_VALIDATE_SID_ARGS); -PHPAPI int php_session_update_timestamp(PS_UPDATE_TIMESTAMP_ARGS); - -PHPAPI void session_adapt_url(const char *, size_t, char **, size_t *); - -PHPAPI int php_session_destroy(void); -PHPAPI void php_add_session_var(zend_string *name); -PHPAPI zval *php_set_session_var(zend_string *name, zval *state_val, php_unserialize_data_t *var_hash); -PHPAPI zval *php_get_session_var(zend_string *name); - -PHPAPI int php_session_register_module(const ps_module *); - -PHPAPI int php_session_register_serializer(const char *name, - zend_string *(*encode)(PS_SERIALIZER_ENCODE_ARGS), - int (*decode)(PS_SERIALIZER_DECODE_ARGS)); - -PHPAPI void php_session_set_id(char *id); -PHPAPI int php_session_start(void); -PHPAPI int php_session_flush(int write); - -PHPAPI const ps_module *_php_find_ps_module(char *name); -PHPAPI const ps_serializer *_php_find_ps_serializer(char *name); - -PHPAPI int php_session_valid_key(const char *key); -PHPAPI int php_session_reset_id(void); - -#define PS_ADD_VARL(name) do { \ - php_add_session_var(name); \ -} while (0) - -#define PS_ADD_VAR(name) PS_ADD_VARL(name) - -#define PS_DEL_VARL(name) do { \ - if (!Z_ISNULL(PS(http_session_vars))) { \ - zend_hash_del(Z_ARRVAL(PS(http_session_vars)), name); \ - } \ -} while (0) - - -#define PS_ENCODE_VARS \ - zend_string *key; \ - zend_ulong num_key; \ - zval *struc; - -#define PS_ENCODE_LOOP(code) do { \ - HashTable *_ht = Z_ARRVAL_P(Z_REFVAL(PS(http_session_vars))); \ - ZEND_HASH_FOREACH_KEY(_ht, num_key, key) { \ - if (key == NULL) { \ - php_error_docref(NULL, E_NOTICE, \ - "Skipping numeric key " ZEND_LONG_FMT, num_key);\ - continue; \ - } \ - if ((struc = php_get_session_var(key))) { \ - code; \ - } \ - } ZEND_HASH_FOREACH_END(); \ -} while(0) - -PHPAPI ZEND_EXTERN_MODULE_GLOBALS(ps) - -void php_session_auto_start(void *data); - -#define PS_CLASS_NAME "SessionHandler" -extern PHPAPI zend_class_entry *php_session_class_entry; - -#define PS_IFACE_NAME "SessionHandlerInterface" -extern PHPAPI zend_class_entry *php_session_iface_entry; - -#define PS_SID_IFACE_NAME "SessionIdInterface" -extern PHPAPI zend_class_entry *php_session_id_iface_entry; - -#define PS_UPDATE_TIMESTAMP_IFACE_NAME "SessionUpdateTimestampHandlerInterface" -extern PHPAPI zend_class_entry *php_session_update_timestamp_iface_entry; - -extern PHP_METHOD(SessionHandler, open); -extern PHP_METHOD(SessionHandler, close); -extern PHP_METHOD(SessionHandler, read); -extern PHP_METHOD(SessionHandler, write); -extern PHP_METHOD(SessionHandler, destroy); -extern PHP_METHOD(SessionHandler, gc); -extern PHP_METHOD(SessionHandler, create_sid); -extern PHP_METHOD(SessionHandler, validateId); -extern PHP_METHOD(SessionHandler, updateTimestamp); - -#endif diff --git a/include/php/ext/simplexml/php_simplexml.h b/include/php/ext/simplexml/php_simplexml.h deleted file mode 100644 index 0975222..0000000 --- a/include/php/ext/simplexml/php_simplexml.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sterling Hughes | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_SIMPLEXML_H -#define PHP_SIMPLEXML_H - -extern zend_module_entry simplexml_module_entry; -#define phpext_simplexml_ptr &simplexml_module_entry - -#include "php_version.h" -#define PHP_SIMPLEXML_VERSION PHP_VERSION - -#ifdef ZTS -#include "TSRM.h" -#endif - -#include "ext/libxml/php_libxml.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -PHP_MINIT_FUNCTION(simplexml); -PHP_MSHUTDOWN_FUNCTION(simplexml); -PHP_MINFO_FUNCTION(simplexml); - -typedef enum { - SXE_ITER_NONE = 0, - SXE_ITER_ELEMENT = 1, - SXE_ITER_CHILD = 2, - SXE_ITER_ATTRLIST = 3 -} SXE_ITER; - -typedef struct { - php_libxml_node_ptr *node; - php_libxml_ref_obj *document; - HashTable *properties; - xmlXPathContextPtr xpath; - struct { - xmlChar *name; - xmlChar *nsprefix; - int isprefix; - SXE_ITER type; - zval data; - } iter; - zval tmp; - zend_function *fptr_count; - zend_object zo; -} php_sxe_object; - -#ifdef PHP_WIN32 -# ifdef PHP_SIMPLEXML_EXPORTS -# define PHP_SXE_API __declspec(dllexport) -# else -# define PHP_SXE_API __declspec(dllimport) -# endif -#else -# define PHP_SXE_API ZEND_API -#endif - -PHP_SXE_API zend_class_entry *sxe_get_element_class_entry(); - -#endif diff --git a/include/php/ext/simplexml/php_simplexml_exports.h b/include/php/ext/simplexml/php_simplexml_exports.h deleted file mode 100644 index 20e9785..0000000 --- a/include/php/ext/simplexml/php_simplexml_exports.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sterling Hughes | - | Marcus Boerger | - | Rob Richards | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_SIMPLEXML_EXPORTS_H -#define PHP_SIMPLEXML_EXPORTS_H - -#include "php_simplexml.h" - -#define SKIP_TEXT(__p) \ - if ((__p)->type == XML_TEXT_NODE) { \ - goto next_iter; \ - } - -#define GET_NODE(__s, __n) { \ - if ((__s)->node && (__s)->node->node) { \ - __n = (__s)->node->node; \ - } else { \ - __n = NULL; \ - php_error_docref(NULL, E_WARNING, "Node no longer exists"); \ - } \ -} - -PHP_SXE_API zend_object *sxe_object_new(zend_class_entry *ce); - -static inline php_sxe_object *php_sxe_fetch_object(zend_object *obj) /* {{{ */ { - return (php_sxe_object *)((char*)(obj) - XtOffsetOf(php_sxe_object, zo)); -} -/* }}} */ - -#define Z_SXEOBJ_P(zv) php_sxe_fetch_object(Z_OBJ_P((zv))) - -typedef struct { - zend_object_iterator intern; - php_sxe_object *sxe; -} php_sxe_iterator; - -PHP_SXE_API void php_sxe_rewind_iterator(php_sxe_object *sxe); -PHP_SXE_API void php_sxe_move_forward_iterator(php_sxe_object *sxe); - -#endif /* PHP_SIMPLEXML_EXPORTS_H */ diff --git a/include/php/ext/sockets/php_sockets.h b/include/php/ext/sockets/php_sockets.h deleted file mode 100644 index c1aba9d..0000000 --- a/include/php/ext/sockets/php_sockets.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Chris Vandomelen | - | Sterling Hughes | - | | - | WinSock: Daniel Beulshausen | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_SOCKETS_H -#define PHP_SOCKETS_H - -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#if HAVE_SOCKETS - -#include -#ifdef PHP_WIN32 -# include "windows_common.h" -#endif - -#define PHP_SOCKETS_VERSION PHP_VERSION - -extern zend_module_entry sockets_module_entry; -#define phpext_sockets_ptr &sockets_module_entry - -#ifdef PHP_WIN32 -#include -#else -#if HAVE_SYS_SOCKET_H -#include -#endif -#endif - -#ifndef PHP_WIN32 -typedef int PHP_SOCKET; -# define PHP_SOCKETS_API PHPAPI -#else -# define PHP_SOCKETS_API __declspec(dllexport) -typedef SOCKET PHP_SOCKET; -#endif - -typedef struct { - PHP_SOCKET bsd_socket; - int type; - int error; - int blocking; - zval zstream; -} php_socket; - -#ifdef PHP_WIN32 -struct sockaddr_un { - short sun_family; - char sun_path[108]; -}; -#endif - -PHP_SOCKETS_API int php_sockets_le_socket(void); -PHP_SOCKETS_API php_socket *php_create_socket(void); -PHP_SOCKETS_API void php_destroy_socket(zend_resource *rsrc); -PHP_SOCKETS_API void php_destroy_sockaddr(zend_resource *rsrc); - -#define php_sockets_le_socket_name "Socket" -#define php_sockets_le_addrinfo_name "AddressInfo" - -#define PHP_SOCKET_ERROR(socket, msg, errn) \ - do { \ - int _err = (errn); /* save value to avoid repeated calls to WSAGetLastError() on Windows */ \ - (socket)->error = _err; \ - SOCKETS_G(last_error) = _err; \ - if (_err != EAGAIN && _err != EWOULDBLOCK && _err != EINPROGRESS) { \ - php_error_docref(NULL, E_WARNING, "%s [%d]: %s", msg, _err, sockets_strerror(_err)); \ - } \ - } while (0) - -ZEND_BEGIN_MODULE_GLOBALS(sockets) - int last_error; - char *strerror_buf; -#ifdef PHP_WIN32 - uint32_t wsa_child_count; - HashTable wsa_info; -#endif -ZEND_END_MODULE_GLOBALS(sockets) - -ZEND_EXTERN_MODULE_GLOBALS(sockets) -#define SOCKETS_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(sockets, v) - -enum sockopt_return { - SOCKOPT_ERROR, - SOCKOPT_CONTINUE, - SOCKOPT_SUCCESS -}; - -char *sockets_strerror(int error); -php_socket *socket_import_file_descriptor(PHP_SOCKET sock); - -#else -#define phpext_sockets_ptr NULL -#endif - -#if defined(_AIX) && !defined(HAVE_SA_SS_FAMILY) -# define ss_family __ss_family -#endif - -#endif diff --git a/include/php/ext/spl/php_spl.h b/include/php/ext/spl/php_spl.h deleted file mode 100644 index 69ff65f..0000000 --- a/include/php/ext/spl/php_spl.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_SPL_H -#define PHP_SPL_H - -#include "php.h" -#include - -#define PHP_SPL_VERSION PHP_VERSION - -extern zend_module_entry spl_module_entry; -#define phpext_spl_ptr &spl_module_entry - -#ifdef PHP_WIN32 -# ifdef SPL_EXPORTS -# define SPL_API __declspec(dllexport) -# elif defined(COMPILE_DL_SPL) -# define SPL_API __declspec(dllimport) -# else -# define SPL_API /* nothing */ -# endif -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define SPL_API __attribute__ ((visibility("default"))) -#else -# define SPL_API -#endif - -#if defined(PHP_WIN32) && !defined(COMPILE_DL_SPL) -#undef phpext_spl -#define phpext_spl NULL -#endif - -PHP_MINIT_FUNCTION(spl); -PHP_MSHUTDOWN_FUNCTION(spl); -PHP_RINIT_FUNCTION(spl); -PHP_RSHUTDOWN_FUNCTION(spl); -PHP_MINFO_FUNCTION(spl); - - -ZEND_BEGIN_MODULE_GLOBALS(spl) - zend_string *autoload_extensions; - HashTable *autoload_functions; - intptr_t hash_mask_handle; - intptr_t hash_mask_handlers; - int hash_mask_init; - int autoload_running; -ZEND_END_MODULE_GLOBALS(spl) - -ZEND_EXTERN_MODULE_GLOBALS(spl) -#define SPL_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(spl, v) - -PHP_FUNCTION(spl_classes); -PHP_FUNCTION(class_parents); -PHP_FUNCTION(class_implements); -PHP_FUNCTION(class_uses); - -PHPAPI zend_string *php_spl_object_hash(zval *obj); - -#endif /* PHP_SPL_H */ diff --git a/include/php/ext/spl/spl_array.h b/include/php/ext/spl/spl_array.h deleted file mode 100644 index ed5dec3..0000000 --- a/include/php/ext/spl/spl_array.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_ARRAY_H -#define SPL_ARRAY_H - -#include "php.h" -#include "php_spl.h" -#include "spl_iterators.h" - -extern PHPAPI zend_class_entry *spl_ce_ArrayObject; -extern PHPAPI zend_class_entry *spl_ce_ArrayIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveArrayIterator; - -PHP_MINIT_FUNCTION(spl_array); - -extern void spl_array_iterator_append(zval *object, zval *append_value); -extern void spl_array_iterator_key(zval *object, zval *return_value); - -#endif /* SPL_ARRAY_H */ diff --git a/include/php/ext/spl/spl_directory.h b/include/php/ext/spl/spl_directory.h deleted file mode 100644 index 90e8945..0000000 --- a/include/php/ext/spl/spl_directory.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_DIRECTORY_H -#define SPL_DIRECTORY_H - -#include "php.h" -#include "php_spl.h" - -extern PHPAPI zend_class_entry *spl_ce_SplFileInfo; -extern PHPAPI zend_class_entry *spl_ce_DirectoryIterator; -extern PHPAPI zend_class_entry *spl_ce_FilesystemIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveDirectoryIterator; -extern PHPAPI zend_class_entry *spl_ce_GlobIterator; -extern PHPAPI zend_class_entry *spl_ce_SplFileObject; -extern PHPAPI zend_class_entry *spl_ce_SplTempFileObject; - -PHP_MINIT_FUNCTION(spl_directory); - -typedef enum { - SPL_FS_INFO, /* must be 0 */ - SPL_FS_DIR, - SPL_FS_FILE -} SPL_FS_OBJ_TYPE; - -typedef struct _spl_filesystem_object spl_filesystem_object; - -typedef void (*spl_foreign_dtor_t)(spl_filesystem_object *object); -typedef void (*spl_foreign_clone_t)(spl_filesystem_object *src, spl_filesystem_object *dst); - -PHPAPI char* spl_filesystem_object_get_path(spl_filesystem_object *intern, size_t *len); - -typedef struct _spl_other_handler { - spl_foreign_dtor_t dtor; - spl_foreign_clone_t clone; -} spl_other_handler; - -/* define an overloaded iterator structure */ -typedef struct { - zend_object_iterator intern; - zval current; - void *object; -} spl_filesystem_iterator; - -struct _spl_filesystem_object { - void *oth; - const spl_other_handler *oth_handler; - char *_path; - size_t _path_len; - char *orig_path; - char *file_name; - size_t file_name_len; - SPL_FS_OBJ_TYPE type; - zend_long flags; - zend_class_entry *file_class; - zend_class_entry *info_class; - union { - struct { - php_stream *dirp; - php_stream_dirent entry; - char *sub_path; - size_t sub_path_len; - int index; - int is_recursive; - zend_function *func_rewind; - zend_function *func_next; - zend_function *func_valid; - } dir; - struct { - php_stream *stream; - php_stream_context *context; - zval *zcontext; - char *open_mode; - size_t open_mode_len; - zval current_zval; - char *current_line; - size_t current_line_len; - size_t max_line_len; - zend_long current_line_num; - zval zresource; - zend_function *func_getCurr; - char delimiter; - char enclosure; - int escape; - } file; - } u; - zend_object std; -}; - -static inline spl_filesystem_object *spl_filesystem_from_obj(zend_object *obj) /* {{{ */ { - return (spl_filesystem_object*)((char*)(obj) - XtOffsetOf(spl_filesystem_object, std)); -} -/* }}} */ - -#define Z_SPLFILESYSTEM_P(zv) spl_filesystem_from_obj(Z_OBJ_P((zv))) - -static inline spl_filesystem_iterator* spl_filesystem_object_to_iterator(spl_filesystem_object *obj) -{ - spl_filesystem_iterator *it; - - it = ecalloc(1, sizeof(spl_filesystem_iterator)); - it->object = (void *)obj; - zend_iterator_init(&it->intern); - return it; -} - -static inline spl_filesystem_object* spl_filesystem_iterator_to_object(spl_filesystem_iterator *it) -{ - return (spl_filesystem_object*)it->object; -} - -#define SPL_FILE_OBJECT_DROP_NEW_LINE 0x00000001 /* drop new lines */ -#define SPL_FILE_OBJECT_READ_AHEAD 0x00000002 /* read on rewind/next */ -#define SPL_FILE_OBJECT_SKIP_EMPTY 0x00000004 /* skip empty lines */ -#define SPL_FILE_OBJECT_READ_CSV 0x00000008 /* read via fgetcsv */ -#define SPL_FILE_OBJECT_MASK 0x0000000F /* read via fgetcsv */ - -#define SPL_FILE_DIR_CURRENT_AS_FILEINFO 0x00000000 /* make RecursiveDirectoryTree::current() return SplFileInfo */ -#define SPL_FILE_DIR_CURRENT_AS_SELF 0x00000010 /* make RecursiveDirectoryTree::current() return getSelf() */ -#define SPL_FILE_DIR_CURRENT_AS_PATHNAME 0x00000020 /* make RecursiveDirectoryTree::current() return getPathname() */ -#define SPL_FILE_DIR_CURRENT_MODE_MASK 0x000000F0 /* mask RecursiveDirectoryTree::current() */ -#define SPL_FILE_DIR_CURRENT(intern,mode) ((intern->flags&SPL_FILE_DIR_CURRENT_MODE_MASK)==mode) - -#define SPL_FILE_DIR_KEY_AS_PATHNAME 0x00000000 /* make RecursiveDirectoryTree::key() return getPathname() */ -#define SPL_FILE_DIR_KEY_AS_FILENAME 0x00000100 /* make RecursiveDirectoryTree::key() return getFilename() */ -#define SPL_FILE_DIR_FOLLOW_SYMLINKS 0x00000200 /* make RecursiveDirectoryTree::hasChildren() follow symlinks */ -#define SPL_FILE_DIR_KEY_MODE_MASK 0x00000F00 /* mask RecursiveDirectoryTree::key() */ -#define SPL_FILE_DIR_KEY(intern,mode) ((intern->flags&SPL_FILE_DIR_KEY_MODE_MASK)==mode) - -#define SPL_FILE_DIR_SKIPDOTS 0x00001000 /* Tells whether it should skip dots or not */ -#define SPL_FILE_DIR_UNIXPATHS 0x00002000 /* Whether to unixify path separators */ -#define SPL_FILE_DIR_OTHERS_MASK 0x00003000 /* mask used for get/setFlags */ - -#endif /* SPL_DIRECTORY_H */ diff --git a/include/php/ext/spl/spl_dllist.h b/include/php/ext/spl/spl_dllist.h deleted file mode 100644 index 3f53864..0000000 --- a/include/php/ext/spl/spl_dllist.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Etienne Kneuss | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_DLLIST_H -#define SPL_DLLIST_H - -#include "php.h" -#include "php_spl.h" - -extern PHPAPI zend_class_entry *spl_ce_SplDoublyLinkedList; -extern PHPAPI zend_class_entry *spl_ce_SplQueue; -extern PHPAPI zend_class_entry *spl_ce_SplStack; - -PHP_MINIT_FUNCTION(spl_dllist); - -#endif /* SPL_DLLIST_H */ diff --git a/include/php/ext/spl/spl_engine.h b/include/php/ext/spl/spl_engine.h deleted file mode 100644 index c5614a6..0000000 --- a/include/php/ext/spl/spl_engine.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_ENGINE_H -#define SPL_ENGINE_H - -#include "php.h" -#include "php_spl.h" -#include "zend_interfaces.h" - -PHPAPI void spl_instantiate(zend_class_entry *pce, zval *object); - -PHPAPI zend_long spl_offset_convert_to_long(zval *offset); - -/* {{{ spl_instantiate_arg_ex1 */ -static inline int spl_instantiate_arg_ex1(zend_class_entry *pce, zval *retval, zval *arg1) -{ - zend_function *func = pce->constructor; - spl_instantiate(pce, retval); - - zend_call_method(retval, pce, &func, ZSTR_VAL(func->common.function_name), ZSTR_LEN(func->common.function_name), NULL, 1, arg1, NULL); - return 0; -} -/* }}} */ - -/* {{{ spl_instantiate_arg_ex2 */ -static inline int spl_instantiate_arg_ex2(zend_class_entry *pce, zval *retval, zval *arg1, zval *arg2) -{ - zend_function *func = pce->constructor; - spl_instantiate(pce, retval); - - zend_call_method(retval, pce, &func, ZSTR_VAL(func->common.function_name), ZSTR_LEN(func->common.function_name), NULL, 2, arg1, arg2); - return 0; -} -/* }}} */ - -/* {{{ spl_instantiate_arg_n */ -static inline void spl_instantiate_arg_n(zend_class_entry *pce, zval *retval, int argc, zval *argv) -{ - zend_function *func = pce->constructor; - zend_fcall_info fci; - zend_fcall_info_cache fcc; - zval dummy; - - spl_instantiate(pce, retval); - - fci.size = sizeof(zend_fcall_info); - ZVAL_STR(&fci.function_name, func->common.function_name); - fci.object = Z_OBJ_P(retval); - fci.retval = &dummy; - fci.param_count = argc; - fci.params = argv; - fci.no_separation = 1; - - fcc.function_handler = func; - fcc.called_scope = pce; - fcc.object = Z_OBJ_P(retval); - - zend_call_function(&fci, &fcc); -} -/* }}} */ - -#endif /* SPL_ENGINE_H */ diff --git a/include/php/ext/spl/spl_exceptions.h b/include/php/ext/spl/spl_exceptions.h deleted file mode 100644 index 2c36287..0000000 --- a/include/php/ext/spl/spl_exceptions.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_EXCEPTIONS_H -#define SPL_EXCEPTIONS_H - -#include "php.h" -#include "php_spl.h" - -extern PHPAPI zend_class_entry *spl_ce_LogicException; -extern PHPAPI zend_class_entry *spl_ce_BadFunctionCallException; -extern PHPAPI zend_class_entry *spl_ce_BadMethodCallException; -extern PHPAPI zend_class_entry *spl_ce_DomainException; -extern PHPAPI zend_class_entry *spl_ce_InvalidArgumentException; -extern PHPAPI zend_class_entry *spl_ce_LengthException; -extern PHPAPI zend_class_entry *spl_ce_OutOfRangeException; - -extern PHPAPI zend_class_entry *spl_ce_RuntimeException; -extern PHPAPI zend_class_entry *spl_ce_OutOfBoundsException; -extern PHPAPI zend_class_entry *spl_ce_OverflowException; -extern PHPAPI zend_class_entry *spl_ce_RangeException; -extern PHPAPI zend_class_entry *spl_ce_UnderflowException; -extern PHPAPI zend_class_entry *spl_ce_UnexpectedValueException; - -PHP_MINIT_FUNCTION(spl_exceptions); - -#endif /* SPL_EXCEPTIONS_H */ diff --git a/include/php/ext/spl/spl_fixedarray.h b/include/php/ext/spl/spl_fixedarray.h deleted file mode 100644 index 9be62d4..0000000 --- a/include/php/ext/spl/spl_fixedarray.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Antony Dovgal | - | Etienne Kneuss | - +----------------------------------------------------------------------+ -*/ - -#ifndef SPL_FIXEDARRAY_H -#define SPL_FIXEDARRAY_H - -extern PHPAPI zend_class_entry *spl_ce_SplFixedArray; - -PHP_MINIT_FUNCTION(spl_fixedarray); - -#endif /* SPL_FIXEDARRAY_H */ diff --git a/include/php/ext/spl/spl_functions.h b/include/php/ext/spl/spl_functions.h deleted file mode 100644 index 2b9ff78..0000000 --- a/include/php/ext/spl/spl_functions.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_FUNCTIONS_H -#define PHP_FUNCTIONS_H - -#include "php.h" - -typedef zend_object* (*create_object_func_t)(zend_class_entry *class_type); - -#define REGISTER_SPL_STD_CLASS(class_name, obj_ctor) \ - spl_register_std_class(&spl_ce_ ## class_name, # class_name, obj_ctor, NULL); - -#define REGISTER_SPL_STD_CLASS_EX(class_name, obj_ctor, funcs) \ - spl_register_std_class(&spl_ce_ ## class_name, # class_name, obj_ctor, funcs); - -#define REGISTER_SPL_SUB_CLASS_EX(class_name, parent_class_name, obj_ctor, funcs) \ - spl_register_sub_class(&spl_ce_ ## class_name, spl_ce_ ## parent_class_name, # class_name, obj_ctor, funcs); - -#define REGISTER_SPL_INTERFACE(class_name) \ - spl_register_interface(&spl_ce_ ## class_name, # class_name, spl_funcs_ ## class_name); - -#define REGISTER_SPL_IMPLEMENTS(class_name, interface_name) \ - zend_class_implements(spl_ce_ ## class_name, 1, spl_ce_ ## interface_name); - -#define REGISTER_SPL_ITERATOR(class_name) \ - zend_class_implements(spl_ce_ ## class_name, 1, zend_ce_iterator); - -#define REGISTER_SPL_PROPERTY(class_name, prop_name, prop_flags) \ - spl_register_property(spl_ce_ ## class_name, prop_name, sizeof(prop_name)-1, prop_flags); - -#define REGISTER_SPL_CLASS_CONST_LONG(class_name, const_name, value) \ - zend_declare_class_constant_long(spl_ce_ ## class_name, const_name, sizeof(const_name)-1, (zend_long)value); - -void spl_register_std_class(zend_class_entry ** ppce, char * class_name, create_object_func_t ctor, const zend_function_entry * function_list); -void spl_register_sub_class(zend_class_entry ** ppce, zend_class_entry * parent_ce, char * class_name, create_object_func_t ctor, const zend_function_entry * function_list); -void spl_register_interface(zend_class_entry ** ppce, char * class_name, const zend_function_entry *functions); - -void spl_register_property( zend_class_entry * class_entry, char *prop_name, int prop_name_len, int prop_flags); - -/* sub: whether to allow subclasses/interfaces - allow = 0: allow all classes and interfaces - allow > 0: allow all that match and mask ce_flags - allow < 0: disallow all that match and mask ce_flags - */ -void spl_add_class_name(zval * list, zend_class_entry * pce, int allow, int ce_flags); -void spl_add_interfaces(zval * list, zend_class_entry * pce, int allow, int ce_flags); -void spl_add_traits(zval * list, zend_class_entry * pce, int allow, int ce_flags); -int spl_add_classes(zend_class_entry *pce, zval *list, int sub, int allow, int ce_flags); - -/* caller must efree(return) */ -zend_string *spl_gen_private_prop_name(zend_class_entry *ce, char *prop_name, int prop_len); - -#define SPL_ME(class_name, function_name, arg_info, flags) \ - PHP_ME( spl_ ## class_name, function_name, arg_info, flags) - -#define SPL_ABSTRACT_ME(class_name, function_name, arg_info) \ - ZEND_ABSTRACT_ME( spl_ ## class_name, function_name, arg_info) - -#define SPL_METHOD(class_name, function_name) \ - PHP_METHOD(spl_ ## class_name, function_name) - -#define SPL_MA(class_name, function_name, alias_class, alias_function, arg_info, flags) \ - PHP_MALIAS(spl_ ## alias_class, function_name, alias_function, arg_info, flags) -#endif /* PHP_FUNCTIONS_H */ diff --git a/include/php/ext/spl/spl_heap.h b/include/php/ext/spl/spl_heap.h deleted file mode 100644 index d73fca5..0000000 --- a/include/php/ext/spl/spl_heap.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Etienne Kneuss | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_HEAP_H -#define SPL_HEAP_H - -#include "php.h" -#include "php_spl.h" - -extern PHPAPI zend_class_entry *spl_ce_SplHeap; -extern PHPAPI zend_class_entry *spl_ce_SplMinHeap; -extern PHPAPI zend_class_entry *spl_ce_SplMaxHeap; - -extern PHPAPI zend_class_entry *spl_ce_SplPriorityQueue; - -PHP_MINIT_FUNCTION(spl_heap); - -#endif /* SPL_HEAP_H */ diff --git a/include/php/ext/spl/spl_iterators.h b/include/php/ext/spl/spl_iterators.h deleted file mode 100644 index af2f815..0000000 --- a/include/php/ext/spl/spl_iterators.h +++ /dev/null @@ -1,172 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_ITERATORS_H -#define SPL_ITERATORS_H - -#include "php.h" -#include "php_spl.h" -#include "ext/pcre/php_pcre.h" - -#define spl_ce_Traversable zend_ce_traversable -#define spl_ce_Iterator zend_ce_iterator -#define spl_ce_Aggregate zend_ce_aggregate -#define spl_ce_ArrayAccess zend_ce_arrayaccess -#define spl_ce_Serializable zend_ce_serializable -#define spl_ce_Countable zend_ce_countable - -extern PHPAPI zend_class_entry *spl_ce_RecursiveIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveIteratorIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveTreeIterator; -extern PHPAPI zend_class_entry *spl_ce_FilterIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveFilterIterator; -extern PHPAPI zend_class_entry *spl_ce_ParentIterator; -extern PHPAPI zend_class_entry *spl_ce_SeekableIterator; -extern PHPAPI zend_class_entry *spl_ce_LimitIterator; -extern PHPAPI zend_class_entry *spl_ce_CachingIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveCachingIterator; -extern PHPAPI zend_class_entry *spl_ce_OuterIterator; -extern PHPAPI zend_class_entry *spl_ce_IteratorIterator; -extern PHPAPI zend_class_entry *spl_ce_NoRewindIterator; -extern PHPAPI zend_class_entry *spl_ce_InfiniteIterator; -extern PHPAPI zend_class_entry *spl_ce_EmptyIterator; -extern PHPAPI zend_class_entry *spl_ce_AppendIterator; -extern PHPAPI zend_class_entry *spl_ce_RegexIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveRegexIterator; -extern PHPAPI zend_class_entry *spl_ce_CallbackFilterIterator; -extern PHPAPI zend_class_entry *spl_ce_RecursiveCallbackFilterIterator; - -PHP_MINIT_FUNCTION(spl_iterators); - -PHP_FUNCTION(iterator_to_array); -PHP_FUNCTION(iterator_count); -PHP_FUNCTION(iterator_apply); - -typedef enum { - DIT_Default = 0, - DIT_FilterIterator = DIT_Default, - DIT_RecursiveFilterIterator = DIT_Default, - DIT_ParentIterator = DIT_Default, - DIT_LimitIterator, - DIT_CachingIterator, - DIT_RecursiveCachingIterator, - DIT_IteratorIterator, - DIT_NoRewindIterator, - DIT_InfiniteIterator, - DIT_AppendIterator, - DIT_RegexIterator, - DIT_RecursiveRegexIterator, - DIT_CallbackFilterIterator, - DIT_RecursiveCallbackFilterIterator, - DIT_Unknown = ~0 -} dual_it_type; - -typedef enum { - RIT_Default = 0, - RIT_RecursiveIteratorIterator = RIT_Default, - RIT_RecursiveTreeIterator, - RIT_Unknow = ~0 -} recursive_it_it_type; - -enum { - /* public */ - CIT_CALL_TOSTRING = 0x00000001, - CIT_TOSTRING_USE_KEY = 0x00000002, - CIT_TOSTRING_USE_CURRENT = 0x00000004, - CIT_TOSTRING_USE_INNER = 0x00000008, - CIT_CATCH_GET_CHILD = 0x00000010, - CIT_FULL_CACHE = 0x00000100, - CIT_PUBLIC = 0x0000FFFF, - /* private */ - CIT_VALID = 0x00010000, - CIT_HAS_CHILDREN = 0x00020000 -}; - -enum { - /* public */ - REGIT_USE_KEY = 0x00000001, - REGIT_INVERTED = 0x00000002 -}; - -typedef enum { - REGIT_MODE_MATCH, - REGIT_MODE_GET_MATCH, - REGIT_MODE_ALL_MATCHES, - REGIT_MODE_SPLIT, - REGIT_MODE_REPLACE, - REGIT_MODE_MAX -} regex_mode; - -typedef struct _spl_cbfilter_it_intern { - zend_fcall_info fci; - zend_fcall_info_cache fcc; - zend_object *object; -} _spl_cbfilter_it_intern; - -typedef struct _spl_dual_it_object { - struct { - zval zobject; - zend_class_entry *ce; - zend_object *object; - zend_object_iterator *iterator; - } inner; - struct { - zval data; - zval key; - zend_long pos; - } current; - dual_it_type dit_type; - union { - struct { - zend_long offset; - zend_long count; - } limit; - struct { - zend_long flags; /* CIT_* */ - zval zstr; - zval zchildren; - zval zcache; - } caching; - struct { - zval zarrayit; - zend_object_iterator *iterator; - } append; - struct { - zend_long flags; - zend_long preg_flags; - pcre_cache_entry *pce; - zend_string *regex; - regex_mode mode; - int use_flags; - } regex; - _spl_cbfilter_it_intern *cbfilter; - } u; - zend_object std; -} spl_dual_it_object; - -static inline spl_dual_it_object *spl_dual_it_from_obj(zend_object *obj) /* {{{ */ { - return (spl_dual_it_object*)((char*)(obj) - XtOffsetOf(spl_dual_it_object, std)); -} /* }}} */ - -#define Z_SPLDUAL_IT_P(zv) spl_dual_it_from_obj(Z_OBJ_P((zv))) - -typedef int (*spl_iterator_apply_func_t)(zend_object_iterator *iter, void *puser); - -PHPAPI int spl_iterator_apply(zval *obj, spl_iterator_apply_func_t apply_func, void *puser); - -#endif /* SPL_ITERATORS_H */ diff --git a/include/php/ext/spl/spl_observer.h b/include/php/ext/spl/spl_observer.h deleted file mode 100644 index 50d65f6..0000000 --- a/include/php/ext/spl/spl_observer.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef SPL_OBSERVER_H -#define SPL_OBSERVER_H - -#include "php.h" -#include "php_spl.h" - -extern PHPAPI zend_class_entry *spl_ce_SplObserver; -extern PHPAPI zend_class_entry *spl_ce_SplSubject; -extern PHPAPI zend_class_entry *spl_ce_SplObjectStorage; -extern PHPAPI zend_class_entry *spl_ce_MultipleIterator; - -PHP_MINIT_FUNCTION(spl_observer); - -#endif /* SPL_OBSERVER_H */ diff --git a/include/php/ext/standard/base64.h b/include/php/ext/standard/base64.h deleted file mode 100644 index faf245c..0000000 --- a/include/php/ext/standard/base64.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jim Winstead | - | Xinchen Hui | - +----------------------------------------------------------------------+ -*/ - -#ifndef BASE64_H -#define BASE64_H - -/* - * NEON implementation is based on https://github.com/WojciechMula/base64simd - * which is copyrighted to: - * Copyright (c) 2015-2018, Wojciech Mula - * All rights reserved. - * - * SSSE3 and AVX2 implementation are based on https://github.com/aklomp/base64 - * which is copyrighted to: - * - * Copyright (c) 2005-2007, Nick Galbreath - * Copyright (c) 2013-2017, Alfred Klomp - * Copyright (c) 2015-2017, Wojciech Mula - * Copyright (c) 2016-2017, Matthieu Darbois - * 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. - * - * 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 - * HOLDER 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. - */ - -PHP_FUNCTION(base64_decode); -PHP_FUNCTION(base64_encode); - -#if (ZEND_INTRIN_AVX2_FUNC_PTR || ZEND_INTRIN_SSSE3_FUNC_PTR) && !ZEND_INTRIN_AVX2_NATIVE -PHP_MINIT_FUNCTION(base64_intrin); -#endif - -PHPAPI extern zend_string *php_base64_encode(const unsigned char *, size_t); -PHPAPI extern zend_string *php_base64_decode_ex(const unsigned char *, size_t, zend_bool); - -static inline zend_string *php_base64_encode_str(const zend_string *str) { - return php_base64_encode((const unsigned char*)(ZSTR_VAL(str)), ZSTR_LEN(str)); -} - -static inline zend_string *php_base64_decode(const unsigned char *str, size_t len) { - return php_base64_decode_ex(str, len, 0); -} -static inline zend_string *php_base64_decode_str(const zend_string *str) { - return php_base64_decode_ex((const unsigned char*)(ZSTR_VAL(str)), ZSTR_LEN(str), 0); -} - -#endif /* BASE64_H */ diff --git a/include/php/ext/standard/basic_functions.h b/include/php/ext/standard/basic_functions.h deleted file mode 100644 index 7e0fa6b..0000000 --- a/include/php/ext/standard/basic_functions.h +++ /dev/null @@ -1,274 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef BASIC_FUNCTIONS_H -#define BASIC_FUNCTIONS_H - -#include - -#ifdef HAVE_WCHAR_H -#include -#endif - -#include "php_filestat.h" - -#include "zend_highlight.h" - -#include "url_scanner_ex.h" - -#if defined(_WIN32) && !defined(__clang__) -#include -#endif - -extern zend_module_entry basic_functions_module; -#define basic_functions_module_ptr &basic_functions_module - -PHP_MINIT_FUNCTION(basic); -PHP_MSHUTDOWN_FUNCTION(basic); -PHP_RINIT_FUNCTION(basic); -PHP_RSHUTDOWN_FUNCTION(basic); -PHP_MINFO_FUNCTION(basic); - -PHP_FUNCTION(constant); -PHP_FUNCTION(sleep); -PHP_FUNCTION(usleep); -#if HAVE_NANOSLEEP -PHP_FUNCTION(time_nanosleep); -PHP_FUNCTION(time_sleep_until); -#endif -PHP_FUNCTION(flush); -#ifdef HAVE_INET_NTOP -PHP_NAMED_FUNCTION(zif_inet_ntop); -#endif -#ifdef HAVE_INET_PTON -PHP_NAMED_FUNCTION(php_inet_pton); -#endif -PHP_FUNCTION(ip2long); -PHP_FUNCTION(long2ip); - -/* system functions */ -PHP_FUNCTION(getenv); -PHP_FUNCTION(putenv); - -PHP_FUNCTION(getopt); - -PHP_FUNCTION(get_current_user); -PHP_FUNCTION(set_time_limit); - -PHP_FUNCTION(header_register_callback); - -PHP_FUNCTION(get_cfg_var); -PHP_FUNCTION(get_magic_quotes_runtime); -PHP_FUNCTION(get_magic_quotes_gpc); - -PHP_FUNCTION(error_log); -PHP_FUNCTION(error_get_last); -PHP_FUNCTION(error_clear_last); - -PHP_FUNCTION(call_user_func); -PHP_FUNCTION(call_user_func_array); -PHP_FUNCTION(forward_static_call); -PHP_FUNCTION(forward_static_call_array); - -PHP_FUNCTION(register_shutdown_function); -PHP_FUNCTION(highlight_file); -PHP_FUNCTION(highlight_string); -PHP_FUNCTION(php_strip_whitespace); -ZEND_API void php_get_highlight_struct(zend_syntax_highlighter_ini *syntax_highlighter_ini); - -PHP_FUNCTION(ini_get); -PHP_FUNCTION(ini_get_all); -PHP_FUNCTION(ini_set); -PHP_FUNCTION(ini_restore); -PHP_FUNCTION(get_include_path); -PHP_FUNCTION(set_include_path); -PHP_FUNCTION(restore_include_path); - -PHP_FUNCTION(print_r); -PHP_FUNCTION(fprintf); -PHP_FUNCTION(vfprintf); - -PHP_FUNCTION(connection_aborted); -PHP_FUNCTION(connection_status); -PHP_FUNCTION(ignore_user_abort); - -PHP_FUNCTION(getservbyname); -PHP_FUNCTION(getservbyport); -PHP_FUNCTION(getprotobyname); -PHP_FUNCTION(getprotobynumber); - -PHP_NAMED_FUNCTION(php_if_crc32); - -PHP_FUNCTION(register_tick_function); -PHP_FUNCTION(unregister_tick_function); -#ifdef HAVE_GETLOADAVG -PHP_FUNCTION(sys_getloadavg); -#endif - -PHP_FUNCTION(is_uploaded_file); -PHP_FUNCTION(move_uploaded_file); - -PHP_FUNCTION(net_get_interfaces); - -/* From the INI parser */ -PHP_FUNCTION(parse_ini_file); -PHP_FUNCTION(parse_ini_string); -#if ZEND_DEBUG -PHP_FUNCTION(config_get_hash); -#endif - -#if defined(PHP_WIN32) -PHP_FUNCTION(sapi_windows_cp_set); -PHP_FUNCTION(sapi_windows_cp_get); -PHP_FUNCTION(sapi_windows_cp_is_utf8); -PHP_FUNCTION(sapi_windows_cp_conv); -PHP_FUNCTION(sapi_windows_set_ctrl_handler); -PHP_FUNCTION(sapi_windows_generate_ctrl_event); -#endif - -PHP_FUNCTION(str_rot13); -PHP_FUNCTION(stream_get_filters); -PHP_FUNCTION(stream_filter_register); -PHP_FUNCTION(stream_bucket_make_writeable); -PHP_FUNCTION(stream_bucket_prepend); -PHP_FUNCTION(stream_bucket_append); -PHP_FUNCTION(stream_bucket_new); -PHP_MINIT_FUNCTION(user_filters); -PHP_RSHUTDOWN_FUNCTION(user_filters); -PHP_RSHUTDOWN_FUNCTION(browscap); - -/* Left for BC (not binary safe!) */ -PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers); -PHPAPI int _php_error_log_ex(int opt_err, char *message, size_t message_len, char *opt, char *headers); -PHPAPI int php_prefix_varname(zval *result, const zval *prefix, const char *var_name, size_t var_name_len, zend_bool add_underscore); - -#define MT_N (624) - -/* Deprecated type aliases -- use the standard types instead */ -typedef uint32_t php_uint32; -typedef int32_t php_int32; - -typedef struct _php_basic_globals { - HashTable *user_shutdown_function_names; - HashTable putenv_ht; - zval strtok_zval; - char *strtok_string; - zend_string *locale_string; /* current LC_CTYPE locale (or NULL for 'C') */ - zend_bool locale_changed; /* locale was changed and has to be restored */ - char *strtok_last; - char strtok_table[256]; - zend_ulong strtok_len; - char str_ebuf[40]; - zend_fcall_info array_walk_fci; - zend_fcall_info_cache array_walk_fci_cache; - zend_fcall_info user_compare_fci; - zend_fcall_info_cache user_compare_fci_cache; - zend_llist *user_tick_functions; - - zval active_ini_file_section; - - /* pageinfo.c */ - zend_long page_uid; - zend_long page_gid; - zend_long page_inode; - time_t page_mtime; - - /* filestat.c && main/streams/streams.c */ - char *CurrentStatFile, *CurrentLStatFile; - php_stream_statbuf ssb, lssb; - - /* mt_rand.c */ - uint32_t state[MT_N+1]; /* state vector + 1 extra to not violate ANSI C */ - uint32_t *next; /* next random value is computed from here */ - int left; /* can *next++ this many times before reloading */ - - zend_bool mt_rand_is_seeded; /* Whether mt_rand() has been seeded */ - zend_long mt_rand_mode; - - /* syslog.c */ - char *syslog_device; - - /* var.c */ - zend_class_entry *incomplete_class; - unsigned serialize_lock; /* whether to use the locally supplied var_hash instead (__sleep/__wakeup) */ - struct { - struct php_serialize_data *data; - unsigned level; - } serialize; - struct { - struct php_unserialize_data *data; - unsigned level; - } unserialize; - - /* url_scanner_ex.re */ - url_adapt_state_ex_t url_adapt_session_ex; - HashTable url_adapt_session_hosts_ht; - url_adapt_state_ex_t url_adapt_output_ex; - HashTable url_adapt_output_hosts_ht; - -#ifdef HAVE_MMAP - void *mmap_file; - size_t mmap_len; -#endif - - HashTable *user_filter_map; - - /* file.c */ -#if defined(_REENTRANT) && defined(HAVE_MBRLEN) && defined(HAVE_MBSTATE_T) - mbstate_t mblen_state; -#endif - - int umask; - zend_long unserialize_max_depth; -} php_basic_globals; - -#ifdef ZTS -#define BG(v) ZEND_TSRMG(basic_globals_id, php_basic_globals *, v) -PHPAPI extern int basic_globals_id; -#else -#define BG(v) (basic_globals.v) -PHPAPI extern php_basic_globals basic_globals; -#endif - -#if HAVE_PUTENV -typedef struct { - char *putenv_string; - char *previous_value; - char *key; - size_t key_len; -} putenv_entry; -#endif - -PHPAPI double php_get_nan(void); -PHPAPI double php_get_inf(void); - -typedef struct _php_shutdown_function_entry { - zval *arguments; - int arg_count; -} php_shutdown_function_entry; - -PHPAPI extern zend_bool register_user_shutdown_function(char *function_name, size_t function_len, php_shutdown_function_entry *shutdown_function_entry); -PHPAPI extern zend_bool remove_user_shutdown_function(char *function_name, size_t function_len); -PHPAPI extern zend_bool append_user_shutdown_function(php_shutdown_function_entry shutdown_function_entry); - -PHPAPI void php_call_shutdown_functions(void); -PHPAPI void php_free_shutdown_functions(void); - - -#endif /* BASIC_FUNCTIONS_H */ diff --git a/include/php/ext/standard/crc32.h b/include/php/ext/standard/crc32.h deleted file mode 100644 index 300af37..0000000 --- a/include/php/ext/standard/crc32.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -/* - * This code implements the AUTODIN II polynomial - * The variable corresponding to the macro argument "crc" should - * be an unsigned long. - * Original code by Spencer Garrett - */ - -#define CRC32(crc, ch) (crc = (crc >> 8) ^ crc32tab[(crc ^ (ch)) & 0xff]) - -/* generated using the AUTODIN II polynomial - * x^32 + x^26 + x^23 + x^22 + x^16 + - * x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1 - */ - -static const unsigned int crc32tab[256] = { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, - 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, - 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, - 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, - 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, - 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, - 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, - 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, - 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, - 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, - 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, - 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, - 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, - 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, - 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, - 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, - 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, - 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, - 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, - 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, - 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, - 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, - 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, - 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, - 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, - 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, - 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, - 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, - 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, - 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, - 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, - 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, - 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, - 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, - 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, - 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, - 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, - 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, - 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, - 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, - 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, - 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, - 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, -}; diff --git a/include/php/ext/standard/credits.h b/include/php/ext/standard/credits.h deleted file mode 100644 index dcf4669..0000000 --- a/include/php/ext/standard/credits.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef CREDITS_H -#define CREDITS_H - -#ifndef HAVE_CREDITS_DEFS -#define HAVE_CREDITS_DEFS - -#define PHP_CREDITS_GROUP (1<<0) -#define PHP_CREDITS_GENERAL (1<<1) -#define PHP_CREDITS_SAPI (1<<2) -#define PHP_CREDITS_MODULES (1<<3) -#define PHP_CREDITS_DOCS (1<<4) -#define PHP_CREDITS_FULLPAGE (1<<5) -#define PHP_CREDITS_QA (1<<6) -#define PHP_CREDITS_WEB (1<<7) -#define PHP_CREDITS_ALL 0xFFFFFFFF - -#endif /* HAVE_CREDITS_DEFS */ - -PHPAPI void php_print_credits(int flag); - -#endif diff --git a/include/php/ext/standard/credits_ext.h b/include/php/ext/standard/credits_ext.h deleted file mode 100644 index 55b12c8..0000000 --- a/include/php/ext/standard/credits_ext.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - DO NOT EDIT THIS FILE! - - it has been automatically created by scripts/dev/credits from - the information found in the various ext/.../CREDITS and - sapi/.../CREDITS files - - if you want to change an entry you have to edit the appropriate - CREDITS file instead - -*/ - -CREDIT_LINE("BC Math", "Andi Gutmans"); -CREDIT_LINE("Bzip2", "Sterling Hughes"); -CREDIT_LINE("Calendar", "Shane Caraveo, Colin Viebrock, Hartmut Holzgraefe, Wez Furlong"); -CREDIT_LINE("COM and .Net", "Wez Furlong"); -CREDIT_LINE("ctype", "Hartmut Holzgraefe"); -CREDIT_LINE("cURL", "Sterling Hughes"); -CREDIT_LINE("Date/Time Support", "Derick Rethans"); -CREDIT_LINE("DB-LIB (MS SQL, Sybase)", "Wez Furlong, Frank M. Kromann, Adam Baratz"); -CREDIT_LINE("DBA", "Sascha Schumann, Marcus Boerger"); -CREDIT_LINE("DOM", "Christian Stocker, Rob Richards, Marcus Boerger"); -CREDIT_LINE("enchant", "Pierre-Alain Joye, Ilia Alshanetsky"); -CREDIT_LINE("EXIF", "Rasmus Lerdorf, Marcus Boerger"); -CREDIT_LINE("FFI", "Dmitry Stogov"); -CREDIT_LINE("fileinfo", "Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans, Anatol Belski"); -CREDIT_LINE("Firebird driver for PDO", "Ard Biesheuvel"); -CREDIT_LINE("FTP", "Stefan Esser, Andrew Skalski"); -CREDIT_LINE("GD imaging", "Rasmus Lerdorf, Stig Bakken, Jim Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger"); -CREDIT_LINE("GetText", "Alex Plotnick"); -CREDIT_LINE("GNU GMP support", "Stanislav Malyshev"); -CREDIT_LINE("Iconv", "Rui Hirokawa, Stig Bakken, Moriyoshi Koizumi"); -CREDIT_LINE("IMAP", "Rex Logan, Mark Musone, Brian Wang, Kaj-Michael Lang, Antoni Pamies Olive, Rasmus Lerdorf, Andrew Skalski, Chuck Hagenbuch, Daniel R Kalowsky"); -CREDIT_LINE("Input Filter", "Rasmus Lerdorf, Derick Rethans, Pierre-Alain Joye, Ilia Alshanetsky"); -CREDIT_LINE("Internationalization", "Ed Batutis, Vladimir Iordanov, Dmitry Lakhtyuk, Stanislav Malyshev, Vadim Savchuk, Kirti Velankar"); -CREDIT_LINE("JSON", "Jakub Zelenka, Omar Kilani, Scott MacVicar"); -CREDIT_LINE("LDAP", "Amitay Isaacs, Eric Warnke, Rasmus Lerdorf, Gerrit Thomson, Stig Venaas"); -CREDIT_LINE("LIBXML", "Christian Stocker, Rob Richards, Marcus Boerger, Wez Furlong, Shane Caraveo"); -CREDIT_LINE("Multibyte String Functions", "Tsukada Takuya, Rui Hirokawa"); -CREDIT_LINE("MySQL driver for PDO", "George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter"); -CREDIT_LINE("MySQLi", "Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel"); -CREDIT_LINE("MySQLnd", "Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter"); -CREDIT_LINE("OCI8", "Stig Bakken, Thies C. Arntzen, Andy Sautins, David Benson, Maxim Maletsky, Harald Radi, Antony Dovgal, Andi Gutmans, Wez Furlong, Christopher Jones, Oracle Corporation"); -CREDIT_LINE("ODBC driver for PDO", "Wez Furlong"); -CREDIT_LINE("ODBC", "Stig Bakken, Andreas Karajannis, Frank M. Kromann, Daniel R. Kalowsky"); -CREDIT_LINE("Opcache", "Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui"); -CREDIT_LINE("OpenSSL", "Stig Venaas, Wez Furlong, Sascha Kettler, Scott MacVicar"); -CREDIT_LINE("Oracle (OCI) driver for PDO", "Wez Furlong"); -CREDIT_LINE("pcntl", "Jason Greene, Arnaud Le Blanc"); -CREDIT_LINE("Perl Compatible Regexps", "Andrei Zmievski"); -CREDIT_LINE("PHP Archive", "Gregory Beaver, Marcus Boerger"); -CREDIT_LINE("PHP Data Objects", "Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky"); -CREDIT_LINE("PHP hash", "Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar"); -CREDIT_LINE("Posix", "Kristian Koehntopp"); -CREDIT_LINE("PostgreSQL driver for PDO", "Edin Kadribasic, Ilia Alshanetsky"); -CREDIT_LINE("PostgreSQL", "Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne"); -CREDIT_LINE("Pspell", "Vlad Krupin"); -CREDIT_LINE("Readline", "Thies C. Arntzen"); -CREDIT_LINE("Reflection", "Marcus Boerger, Timm Friebe, George Schlossnagle, Andrei Zmievski, Johannes Schlueter"); -CREDIT_LINE("Sessions", "Sascha Schumann, Andrei Zmievski"); -CREDIT_LINE("Shared Memory Operations", "Slava Poliakov, Ilia Alshanetsky"); -CREDIT_LINE("SimpleXML", "Sterling Hughes, Marcus Boerger, Rob Richards"); -CREDIT_LINE("SNMP", "Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin"); -CREDIT_LINE("SOAP", "Brad Lafountain, Shane Caraveo, Dmitry Stogov"); -CREDIT_LINE("Sockets", "Chris Vandomelen, Sterling Hughes, Daniel Beulshausen, Jason Greene"); -CREDIT_LINE("Sodium", "Frank Denis"); -CREDIT_LINE("SPL", "Marcus Boerger, Etienne Kneuss"); -CREDIT_LINE("SQLite 3.x driver for PDO", "Wez Furlong"); -CREDIT_LINE("SQLite3", "Scott MacVicar, Ilia Alshanetsky, Brad Dewar"); -CREDIT_LINE("System V Message based IPC", "Wez Furlong"); -CREDIT_LINE("System V Semaphores", "Tom May"); -CREDIT_LINE("System V Shared Memory", "Christian Cartus"); -CREDIT_LINE("tidy", "John Coggeshall, Ilia Alshanetsky"); -CREDIT_LINE("tokenizer", "Andrei Zmievski, Johannes Schlueter"); -CREDIT_LINE("XML", "Stig Bakken, Thies C. Arntzen, Sterling Hughes"); -CREDIT_LINE("XMLReader", "Rob Richards"); -CREDIT_LINE("xmlrpc", "Dan Libby"); -CREDIT_LINE("XMLWriter", "Rob Richards, Pierre-Alain Joye"); -CREDIT_LINE("XSL", "Christian Stocker, Rob Richards"); -CREDIT_LINE("Zip", "Pierre-Alain Joye, Remi Collet"); -CREDIT_LINE("Zlib", "Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti, Michael Wallner"); diff --git a/include/php/ext/standard/credits_sapi.h b/include/php/ext/standard/credits_sapi.h deleted file mode 100644 index d6553ea..0000000 --- a/include/php/ext/standard/credits_sapi.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - DO NOT EDIT THIS FILE! - - it has been automatically created by scripts/dev/credits from - the information found in the various ext/.../CREDITS and - sapi/.../CREDITS files - - if you want to change an entry you have to edit the appropriate - CREDITS file instead - -*/ - -CREDIT_LINE("Apache 2.0 Handler", "Ian Holsman, Justin Erenkrantz (based on Apache 2.0 Filter code)"); -CREDIT_LINE("CGI / FastCGI", "Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov"); -CREDIT_LINE("CLI", "Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui"); -CREDIT_LINE("Embed", "Edin Kadribasic"); -CREDIT_LINE("FastCGI Process Manager", "Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet"); -CREDIT_LINE("litespeed", "George Wang"); -CREDIT_LINE("phpdbg", "Felipe Pena, Joe Watkins, Bob Weinand"); diff --git a/include/php/ext/standard/crypt_blowfish.h b/include/php/ext/standard/crypt_blowfish.h deleted file mode 100644 index d540990..0000000 --- a/include/php/ext/standard/crypt_blowfish.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Written by Solar Designer in 2000-2011. - * No copyright is claimed, and the software is hereby placed in the public - * domain. In case this attempt to disclaim copyright and place the software - * in the public domain is deemed null and void, then the software is - * Copyright (c) 2000-2011 Solar Designer and it is hereby released to the - * general public under the following terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted. - * - * There's ABSOLUTELY NO WARRANTY, express or implied. - * - * See crypt_blowfish.c for more information. - */ - -#ifndef _CRYPT_BLOWFISH_H -#define _CRYPT_BLOWFISH_H - -#if 0 -extern int _crypt_output_magic(const char *setting, char *output, int size); -#endif -extern char *php_crypt_blowfish_rn(const char *key, const char *setting, - char *output, int size); -#if 0 -extern char *_crypt_gensalt_blowfish_rn(const char *prefix, - unsigned long count, - const char *input, int size, char *output, int output_size); -#endif - -#endif diff --git a/include/php/ext/standard/crypt_freesec.h b/include/php/ext/standard/crypt_freesec.h deleted file mode 100644 index 69271f2..0000000 --- a/include/php/ext/standard/crypt_freesec.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef _CRYPT_FREESEC_H -#define _CRYPT_FREESEC_H - -#ifdef PHP_WIN32 -# ifndef inline -# define inline __inline -# endif -#endif - -#include "php_stdint.h" - -#define MD5_HASH_MAX_LEN 120 - -struct php_crypt_extended_data { - int initialized; - uint32_t saltbits; - uint32_t old_salt; - uint32_t en_keysl[16], en_keysr[16]; - uint32_t de_keysl[16], de_keysr[16]; - uint32_t old_rawkey0, old_rawkey1; - char output[21]; -}; - -/* - * _crypt_extended_init() must be called explicitly before first use of - * _crypt_extended_r(). - */ - -void _crypt_extended_init(void); - -char *_crypt_extended_r(const unsigned char *key, const char *setting, - struct php_crypt_extended_data *data); - -#endif diff --git a/include/php/ext/standard/css.h b/include/php/ext/standard/css.h deleted file mode 100644 index 09fbb43..0000000 --- a/include/php/ext/standard/css.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Colin Viebrock | - +----------------------------------------------------------------------+ -*/ - -#ifndef CSS_H -#define CSS_H - -PHPAPI void php_info_print_css(void); - -#endif diff --git a/include/php/ext/standard/cyr_convert.h b/include/php/ext/standard/cyr_convert.h deleted file mode 100644 index dcdc023..0000000 --- a/include/php/ext/standard/cyr_convert.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Kirill Maximov | - +----------------------------------------------------------------------+ -*/ - -#ifndef CYR_CONVERT_H -#define CYR_CONVERT_H - -PHP_FUNCTION(convert_cyr_string); - -#endif /* CYR_CONVERT_H */ diff --git a/include/php/ext/standard/datetime.h b/include/php/ext/standard/datetime.h deleted file mode 100644 index 1718aed..0000000 --- a/include/php/ext/standard/datetime.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef DATETIME_H -#define DATETIME_H - -#if HAVE_STRPTIME -PHP_FUNCTION(strptime); -#endif - -PHPAPI char *php_std_date(time_t t); - -#endif /* DATETIME_H */ diff --git a/include/php/ext/standard/dl.h b/include/php/ext/standard/dl.h deleted file mode 100644 index 0255523..0000000 --- a/include/php/ext/standard/dl.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Brian Schaffner | - | Shane Caraveo | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef DL_H -#define DL_H - -PHPAPI int php_load_extension(char *filename, int type, int start_now); -PHPAPI void php_dl(char *file, int type, zval *return_value, int start_now); -PHPAPI void *php_load_shlib(char *path, char **errp); - -/* dynamic loading functions */ -PHPAPI PHP_FUNCTION(dl); - -PHP_MINFO_FUNCTION(dl); - -#endif /* DL_H */ diff --git a/include/php/ext/standard/exec.h b/include/php/ext/standard/exec.h deleted file mode 100644 index 4849fe0..0000000 --- a/include/php/ext/standard/exec.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef EXEC_H -#define EXEC_H - -PHP_FUNCTION(system); -PHP_FUNCTION(exec); -PHP_FUNCTION(escapeshellcmd); -PHP_FUNCTION(escapeshellarg); -PHP_FUNCTION(passthru); -PHP_FUNCTION(shell_exec); -PHP_FUNCTION(proc_open); -PHP_FUNCTION(proc_get_status); -PHP_FUNCTION(proc_close); -PHP_FUNCTION(proc_terminate); -PHP_FUNCTION(proc_nice); -PHP_MINIT_FUNCTION(proc_open); -PHP_MINIT_FUNCTION(exec); - -PHPAPI zend_string *php_escape_shell_cmd(char *); -PHPAPI zend_string *php_escape_shell_arg(char *); -PHPAPI int php_exec(int type, char *cmd, zval *array, zval *return_value); - -#endif /* EXEC_H */ diff --git a/include/php/ext/standard/file.h b/include/php/ext/standard/file.h deleted file mode 100644 index a414f72..0000000 --- a/include/php/ext/standard/file.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef FILE_H -#define FILE_H - -#include "php_network.h" - -PHP_MINIT_FUNCTION(file); -PHP_MSHUTDOWN_FUNCTION(file); - -PHP_FUNCTION(tempnam); -PHP_NAMED_FUNCTION(php_if_tmpfile); -PHP_NAMED_FUNCTION(php_if_fopen); -PHPAPI PHP_FUNCTION(fclose); -PHP_FUNCTION(popen); -PHP_FUNCTION(pclose); -PHPAPI PHP_FUNCTION(feof); -PHPAPI PHP_FUNCTION(fread); -PHPAPI PHP_FUNCTION(fgetc); -PHPAPI PHP_FUNCTION(fgets); -PHP_FUNCTION(fscanf); -PHPAPI PHP_FUNCTION(fgetss); -PHP_FUNCTION(fgetcsv); -PHP_FUNCTION(fputcsv); -PHPAPI PHP_FUNCTION(fwrite); -PHPAPI PHP_FUNCTION(fflush); -PHPAPI PHP_FUNCTION(rewind); -PHPAPI PHP_FUNCTION(ftell); -PHPAPI PHP_FUNCTION(fseek); -PHP_FUNCTION(mkdir); -PHP_FUNCTION(rmdir); -PHPAPI PHP_FUNCTION(fpassthru); -PHP_FUNCTION(readfile); -PHP_FUNCTION(umask); -PHP_FUNCTION(rename); -PHP_FUNCTION(unlink); -PHP_FUNCTION(copy); -PHP_FUNCTION(file); -PHP_FUNCTION(file_get_contents); -PHP_FUNCTION(file_put_contents); -PHP_FUNCTION(get_meta_tags); -PHP_FUNCTION(flock); -PHP_FUNCTION(fd_set); -PHP_FUNCTION(fd_isset); -#if HAVE_REALPATH || defined(ZTS) -PHP_FUNCTION(realpath); -#endif -#ifdef HAVE_FNMATCH -PHP_FUNCTION(fnmatch); -#endif -PHP_NAMED_FUNCTION(php_if_ftruncate); -PHP_NAMED_FUNCTION(php_if_fstat); -PHP_FUNCTION(sys_get_temp_dir); - -PHP_MINIT_FUNCTION(user_streams); - -PHPAPI int php_le_stream_context(void); -PHPAPI int php_set_sock_blocking(php_socket_t socketd, int block); -PHPAPI int php_copy_file(const char *src, const char *dest); -PHPAPI int php_copy_file_ex(const char *src, const char *dest, int src_chk); -PHPAPI int php_copy_file_ctx(const char *src, const char *dest, int src_chk, php_stream_context *ctx); -PHPAPI int php_mkdir_ex(const char *dir, zend_long mode, int options); -PHPAPI int php_mkdir(const char *dir, zend_long mode); - -#define PHP_CSV_NO_ESCAPE EOF -PHPAPI void php_fgetcsv(php_stream *stream, char delimiter, char enclosure, int escape_char, size_t buf_len, char *buf, zval *return_value); -PHPAPI ssize_t php_fputcsv(php_stream *stream, zval *fields, char delimiter, char enclosure, int escape_char); - -#define META_DEF_BUFSIZE 8192 - -#define PHP_FILE_USE_INCLUDE_PATH 1 -#define PHP_FILE_IGNORE_NEW_LINES 2 -#define PHP_FILE_SKIP_EMPTY_LINES 4 -#define PHP_FILE_APPEND 8 -#define PHP_FILE_NO_DEFAULT_CONTEXT 16 - -typedef enum _php_meta_tags_token { - TOK_EOF = 0, - TOK_OPENTAG, - TOK_CLOSETAG, - TOK_SLASH, - TOK_EQUAL, - TOK_SPACE, - TOK_ID, - TOK_STRING, - TOK_OTHER -} php_meta_tags_token; - -typedef struct _php_meta_tags_data { - php_stream *stream; - int ulc; - int lc; - char *input_buffer; - char *token_data; - int token_len; - int in_meta; -} php_meta_tags_data; - -php_meta_tags_token php_next_meta_token(php_meta_tags_data *); - -typedef struct { - int pclose_ret; - size_t def_chunk_size; - zend_bool auto_detect_line_endings; - zend_long default_socket_timeout; - char *user_agent; /* for the http wrapper */ - char *from_address; /* for the ftp and http wrappers */ - const char *user_stream_current_filename; /* for simple recursion protection */ - php_stream_context *default_context; - HashTable *stream_wrappers; /* per-request copy of url_stream_wrappers_hash */ - HashTable *stream_filters; /* per-request copy of stream_filters_hash */ - HashTable *wrapper_errors; /* key: wrapper address; value: linked list of char* */ - int pclose_wait; -#if defined(HAVE_GETHOSTBYNAME_R) - struct hostent tmp_host_info; - char *tmp_host_buf; - size_t tmp_host_buf_len; -#endif -} php_file_globals; - -#ifdef ZTS -#define FG(v) ZEND_TSRMG(file_globals_id, php_file_globals *, v) -extern PHPAPI int file_globals_id; -#else -#define FG(v) (file_globals.v) -extern PHPAPI php_file_globals file_globals; -#endif - - -#endif /* FILE_H */ diff --git a/include/php/ext/standard/flock_compat.h b/include/php/ext/standard/flock_compat.h deleted file mode 100644 index 49a68bf..0000000 --- a/include/php/ext/standard/flock_compat.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ -*/ - -#ifndef FLOCK_COMPAT_H -#define FLOCK_COMPAT_H - -/* php_flock internally uses fcntl whether or not flock is available - * This way our php_flock even works on NFS files. - * More info: /usr/src/linux/Documentation - */ -PHPAPI int php_flock(int fd, int operation); - -#ifndef HAVE_FLOCK -# define LOCK_SH 1 -# define LOCK_EX 2 -# define LOCK_NB 4 -# define LOCK_UN 8 -PHPAPI int flock(int fd, int operation); -#endif - -/* Userland LOCK_* constants */ -#define PHP_LOCK_SH 1 -#define PHP_LOCK_EX 2 -#define PHP_LOCK_UN 3 -#define PHP_LOCK_NB 4 - -#ifdef PHP_WIN32 -# ifdef EWOULDBLOCK -# undef EWOULDBLOCK -# endif -# define EWOULDBLOCK WSAEWOULDBLOCK -# define fsync _commit -# define ftruncate(a, b) chsize(a, b) -#endif /* defined(PHP_WIN32) */ - -#if !HAVE_INET_ATON -#if HAVE_NETINET_IN_H -#include -#endif -#if HAVE_ARPA_INET_H -#include -#endif - -#ifndef PHP_WIN32 -extern int inet_aton(const char *, struct in_addr *); -#endif -#endif - -#endif /* FLOCK_COMPAT_H */ diff --git a/include/php/ext/standard/fsock.h b/include/php/ext/standard/fsock.h deleted file mode 100644 index b6fee88..0000000 --- a/include/php/ext/standard/fsock.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Paul Panotzki - Bunyip Information Systems | - | Jim Winstead | - | Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -#ifndef FSOCK_H -#define FSOCK_H - -#include "file.h" - -#include "php_network.h" - -PHP_FUNCTION(fsockopen); -PHP_FUNCTION(pfsockopen); - -#endif /* FSOCK_H */ diff --git a/include/php/ext/standard/head.h b/include/php/ext/standard/head.h deleted file mode 100644 index 824a7e8..0000000 --- a/include/php/ext/standard/head.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef HEAD_H -#define HEAD_H - -#define COOKIE_EXPIRES "; expires=" -#define COOKIE_MAX_AGE "; Max-Age=" -#define COOKIE_DOMAIN "; domain=" -#define COOKIE_PATH "; path=" -#define COOKIE_SECURE "; secure" -#define COOKIE_HTTPONLY "; HttpOnly" -#define COOKIE_SAMESITE "; SameSite=" - -extern PHP_RINIT_FUNCTION(head); -PHP_FUNCTION(header); -PHP_FUNCTION(header_remove); -PHP_FUNCTION(setcookie); -PHP_FUNCTION(setrawcookie); -PHP_FUNCTION(headers_sent); -PHP_FUNCTION(headers_list); -PHP_FUNCTION(http_response_code); - -PHPAPI int php_header(void); -PHPAPI int php_setcookie(zend_string *name, zend_string *value, time_t expires, zend_string *path, zend_string *domain, int secure, int httponly, zend_string *samesite, int url_encode); - -#endif diff --git a/include/php/ext/standard/hrtime.h b/include/php/ext/standard/hrtime.h deleted file mode 100644 index edd68aa..0000000 --- a/include/php/ext/standard/hrtime.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Niklas Keller | - | Author: Anatol Belski | - +----------------------------------------------------------------------+ -*/ - -#ifndef HRTIME_H -#define HRTIME_H - -#define PHP_HRTIME_PLATFORM_POSIX 0 -#define PHP_HRTIME_PLATFORM_WINDOWS 0 -#define PHP_HRTIME_PLATFORM_APPLE 0 -#define PHP_HRTIME_PLATFORM_HPUX 0 -#define PHP_HRTIME_PLATFORM_AIX 0 - -#if defined(_POSIX_TIMERS) && ((_POSIX_TIMERS > 0) || defined(__OpenBSD__)) && defined(_POSIX_MONOTONIC_CLOCK) && defined(CLOCK_MONOTONIC) -# undef PHP_HRTIME_PLATFORM_POSIX -# define PHP_HRTIME_PLATFORM_POSIX 1 -#elif defined(_WIN32) || defined(_WIN64) -# undef PHP_HRTIME_PLATFORM_WINDOWS -# define PHP_HRTIME_PLATFORM_WINDOWS 1 -#elif defined(__APPLE__) -# undef PHP_HRTIME_PLATFORM_APPLE -# define PHP_HRTIME_PLATFORM_APPLE 1 -#elif (defined(__hpux) || defined(hpux)) || ((defined(__sun__) || defined(__sun) || defined(sun)) && (defined(__SVR4) || defined(__svr4__))) -# undef PHP_HRTIME_PLATFORM_HPUX -# define PHP_HRTIME_PLATFORM_HPUX 1 -#elif defined(_AIX) -# undef PHP_HRTIME_PLATFORM_AIX -# define PHP_HRTIME_PLATFORM_AIX 1 -#endif - -#define HRTIME_AVAILABLE (PHP_HRTIME_PLATFORM_POSIX || PHP_HRTIME_PLATFORM_WINDOWS || PHP_HRTIME_PLATFORM_APPLE || PHP_HRTIME_PLATFORM_HPUX || PHP_HRTIME_PLATFORM_AIX) - -BEGIN_EXTERN_C() - -typedef uint64_t php_hrtime_t; - -PHPAPI php_hrtime_t php_hrtime_current(void); - -PHP_MINIT_FUNCTION(hrtime); - -PHP_FUNCTION(hrtime); - -END_EXTERN_C() - -#endif /* HRTIME_H */ diff --git a/include/php/ext/standard/html.h b/include/php/ext/standard/html.h deleted file mode 100644 index df0e9ba..0000000 --- a/include/php/ext/standard/html.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef HTML_H -#define HTML_H - -#define ENT_HTML_QUOTE_NONE 0 -#define ENT_HTML_QUOTE_SINGLE 1 -#define ENT_HTML_QUOTE_DOUBLE 2 -#define ENT_HTML_IGNORE_ERRORS 4 -#define ENT_HTML_SUBSTITUTE_ERRORS 8 -#define ENT_HTML_DOC_TYPE_MASK (16|32) -#define ENT_HTML_DOC_HTML401 0 -#define ENT_HTML_DOC_XML1 16 -#define ENT_HTML_DOC_XHTML 32 -#define ENT_HTML_DOC_HTML5 (16|32) -/* reserve bit 6 */ -#define ENT_HTML_SUBSTITUTE_DISALLOWED_CHARS 128 - - -#define ENT_COMPAT ENT_HTML_QUOTE_DOUBLE -#define ENT_QUOTES (ENT_HTML_QUOTE_DOUBLE | ENT_HTML_QUOTE_SINGLE) -#define ENT_NOQUOTES ENT_HTML_QUOTE_NONE -#define ENT_IGNORE ENT_HTML_IGNORE_ERRORS -#define ENT_SUBSTITUTE ENT_HTML_SUBSTITUTE_ERRORS -#define ENT_HTML401 0 -#define ENT_XML1 16 -#define ENT_XHTML 32 -#define ENT_HTML5 (16|32) -#define ENT_DISALLOWED 128 - -void register_html_constants(INIT_FUNC_ARGS); - -PHP_FUNCTION(htmlspecialchars); -PHP_FUNCTION(htmlentities); -PHP_FUNCTION(htmlspecialchars_decode); -PHP_FUNCTION(html_entity_decode); -PHP_FUNCTION(get_html_translation_table); - -PHPAPI zend_string *php_escape_html_entities(unsigned char *old, size_t oldlen, int all, int flags, char *hint_charset); -PHPAPI zend_string *php_escape_html_entities_ex(unsigned char *old, size_t oldlen, int all, int flags, char *hint_charset, zend_bool double_encode); -PHPAPI zend_string *php_unescape_html_entities(zend_string *str, int all, int flags, char *hint_charset); -PHPAPI unsigned int php_next_utf8_char(const unsigned char *str, size_t str_len, size_t *cursor, int *status); - -#endif /* HTML_H */ diff --git a/include/php/ext/standard/html_tables.h b/include/php/ext/standard/html_tables.h deleted file mode 100644 index b9daaf7..0000000 --- a/include/php/ext/standard/html_tables.h +++ /dev/null @@ -1,6232 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ -*/ - -#ifndef HTML_TABLES_H -#define HTML_TABLES_H - -/************************************************************************** -*************************************************************************** -** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT MODIFY IT. ** -*************************************************************************** -** Please change html_tables/html_table_gen.php instead and then ** -** run it in order to generate this file ** -*************************************************************************** -**************************************************************************/ - -enum entity_charset { cs_utf_8, cs_8859_1, cs_cp1252, cs_8859_15, cs_cp1251, - cs_8859_5, cs_cp866, cs_macroman, cs_koi8r, cs_big5, - cs_gb2312, cs_big5hkscs, cs_sjis, cs_eucjp, - cs_numelems /* used to count the number of charsets */ - }; -#define CHARSET_UNICODE_COMPAT(cs) ((cs) <= cs_8859_1) -#define CHARSET_SINGLE_BYTE(cs) ((cs) > cs_utf_8 && (cs) < cs_big5) -#define CHARSET_PARTIAL_SUPPORT(cs) ((cs) >= cs_big5) - -static const struct { - const char *codeset; - uint32_t codeset_len; - enum entity_charset charset; -} charset_map[] = { - { "ISO-8859-1", sizeof("ISO-8859-1")-1, cs_8859_1 }, - { "ISO8859-1", sizeof("ISO8859-1")-1, cs_8859_1 }, - { "ISO-8859-15", sizeof("ISO-8859-15")-1, cs_8859_15 }, - { "ISO8859-15", sizeof("ISO8859-15")-1, cs_8859_15 }, - { "utf-8", sizeof("utf-8")-1, cs_utf_8 }, - { "cp1252", sizeof("cp1252")-1, cs_cp1252 }, - { "Windows-1252", sizeof("Windows-1252")-1, cs_cp1252 }, - { "1252", sizeof("1252")-1, cs_cp1252 }, - { "BIG5", sizeof("BIG5")-1, cs_big5 }, - { "950", sizeof("950")-1, cs_big5 }, - { "GB2312", sizeof("GB2312")-1, cs_gb2312 }, - { "936", sizeof("936")-1, cs_gb2312 }, - { "BIG5-HKSCS", sizeof("BIG5-HKSCS")-1, cs_big5hkscs }, - { "Shift_JIS", sizeof("Shift_JIS")-1, cs_sjis }, - { "SJIS", sizeof("SJIS")-1, cs_sjis }, - { "932", sizeof("932")-1, cs_sjis }, - { "SJIS-win", sizeof("SJIS-win")-1, cs_sjis }, - { "CP932", sizeof("CP932")-1, cs_sjis }, - { "EUCJP", sizeof("EUCJP")-1, cs_eucjp }, - { "EUC-JP", sizeof("EUC-JP")-1, cs_eucjp }, - { "eucJP-win", sizeof("eucJP-win")-1, cs_eucjp }, - { "KOI8-R", sizeof("KOI8-R")-1, cs_koi8r }, - { "koi8-ru", sizeof("koi8-ru")-1, cs_koi8r }, - { "koi8r", sizeof("koi8r")-1, cs_koi8r }, - { "cp1251", sizeof("cp1251")-1, cs_cp1251 }, - { "Windows-1251", sizeof("Windows-1251")-1, cs_cp1251 }, - { "win-1251", sizeof("win-1251")-1, cs_cp1251 }, - { "iso8859-5", sizeof("iso8859-5")-1, cs_8859_5 }, - { "iso-8859-5", sizeof("iso-8859-5")-1, cs_8859_5 }, - { "cp866", sizeof("cp866")-1, cs_cp866 }, - { "866", sizeof("866")-1, cs_cp866 }, - { "ibm866", sizeof("ibm866")-1, cs_cp866 }, - { "MacRoman", sizeof("MacRoman")-1, cs_macroman } -}; - -/* longest entity name length excluding & and ; */ -#define LONGEST_ENTITY_LENGTH 31 - -/* Definitions for mappings *to* Unicode. - * The origin charset must have at most 256 code points. - * The multi-byte encodings are not supported */ -typedef struct { - unsigned short uni_cp[64]; -} enc_to_uni_stage2; - -typedef struct { - const enc_to_uni_stage2 *inner[4]; -} enc_to_uni; - -/* bits 7-8 bits (only single bytes encodings supported )*/ -#define ENT_ENC_TO_UNI_STAGE1(k) ((k & 0xC0) >> 6) -/* bits 1-6 */ -#define ENT_ENC_TO_UNI_STAGE2(k) ((k) & 0x3F) - -/* {{{ Mappings *to* Unicode for ISO-8859-1 */ - -/* {{{ Stage 2 tables for ISO-8859-1 */ - -static const enc_to_uni_stage2 enc_to_uni_s2_iso88591_00 = { { - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x000A, 0x000B, - 0x000C, 0x000D, 0x000E, 0x000F, 0x0010, 0x0011, - 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, - 0x001E, 0x001F, 0x0020, 0x0021, 0x0022, 0x0023, - 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, - 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, - 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, - 0x003C, 0x003D, 0x003E, 0x003F, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_iso88591_40 = { { - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, - 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, - 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, - 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, - 0x005E, 0x005F, 0x0060, 0x0061, 0x0062, 0x0063, - 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, - 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, - 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, - 0x007C, 0x007D, 0x007E, 0x007F, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_iso88591_80 = { { - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, - 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, - 0x008C, 0x008D, 0x008E, 0x008F, 0x0090, 0x0091, - 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, - 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, - 0x009E, 0x009F, 0x00A0, 0x00A1, 0x00A2, 0x00A3, - 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, - 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, - 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, - 0x00BC, 0x00BD, 0x00BE, 0x00BF, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_iso88591_C0 = { { - 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, - 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, - 0x00CC, 0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, - 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, - 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, - 0x00DE, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0x00E3, - 0x00E4, 0x00E5, 0x00E6, 0x00E7, 0x00E8, 0x00E9, - 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, - 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, - 0x00F6, 0x00F7, 0x00F8, 0x00F9, 0x00FA, 0x00FB, - 0x00FC, 0x00FD, 0x00FE, 0x00FF, -} }; - -/* end of stage 2 tables for ISO-8859-1 }}} */ - -/* {{{ Stage 1 table for ISO-8859-1 */ -static const enc_to_uni enc_to_uni_iso88591 = { { - &enc_to_uni_s2_iso88591_00, - &enc_to_uni_s2_iso88591_40, - &enc_to_uni_s2_iso88591_80, - &enc_to_uni_s2_iso88591_C0 } -}; -/* end of stage 1 table for ISO-8859-1 }}} */ - -/* {{{ Mappings *to* Unicode for ISO-8859-5 */ - -/* {{{ Stage 2 tables for ISO-8859-5 */ - -static const enc_to_uni_stage2 enc_to_uni_s2_iso88595_80 = { { - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, - 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, - 0x008C, 0x008D, 0x008E, 0x008F, 0x0090, 0x0091, - 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, - 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, - 0x009E, 0x009F, 0x00A0, 0x0401, 0x0402, 0x0403, - 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, - 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F, - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, - 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, - 0x041C, 0x041D, 0x041E, 0x041F, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_iso88595_C0 = { { - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, - 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, - 0x042C, 0x042D, 0x042E, 0x042F, 0x0430, 0x0431, - 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, - 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, - 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, - 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, - 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, - 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, - 0x045C, 0x00A7, 0x045E, 0x045F, -} }; - -/* end of stage 2 tables for ISO-8859-5 }}} */ - -/* {{{ Stage 1 table for ISO-8859-5 */ -static const enc_to_uni enc_to_uni_iso88595 = { { - &enc_to_uni_s2_iso88591_00, - &enc_to_uni_s2_iso88591_40, - &enc_to_uni_s2_iso88595_80, - &enc_to_uni_s2_iso88595_C0 } -}; -/* end of stage 1 table for ISO-8859-5 }}} */ - -/* {{{ Mappings *to* Unicode for ISO-8859-15 */ - -/* {{{ Stage 2 tables for ISO-8859-15 */ - -static const enc_to_uni_stage2 enc_to_uni_s2_iso885915_80 = { { - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, - 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, - 0x008C, 0x008D, 0x008E, 0x008F, 0x0090, 0x0091, - 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, - 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, - 0x009E, 0x009F, 0x00A0, 0x00A1, 0x00A2, 0x00A3, - 0x20AC, 0x00A5, 0x0160, 0x00A7, 0x0161, 0x00A9, - 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, - 0x00B6, 0x00B7, 0x017E, 0x00B9, 0x00BA, 0x00BB, - 0x0152, 0x0153, 0x0178, 0x00BF, -} }; - -/* end of stage 2 tables for ISO-8859-15 }}} */ - -/* {{{ Stage 1 table for ISO-8859-15 */ -static const enc_to_uni enc_to_uni_iso885915 = { { - &enc_to_uni_s2_iso88591_00, - &enc_to_uni_s2_iso88591_40, - &enc_to_uni_s2_iso885915_80, - &enc_to_uni_s2_iso88591_C0 } -}; -/* end of stage 1 table for ISO-8859-15 }}} */ - -/* {{{ Mappings *to* Unicode for Windows-1252 */ - -/* {{{ Stage 2 tables for Windows-1252 */ - -static const enc_to_uni_stage2 enc_to_uni_s2_win1252_80 = { { - 0x20AC, 0xFFFF, 0x201A, 0x0192, 0x201E, 0x2026, - 0x2020, 0x2021, 0x02C6, 0x2030, 0x0160, 0x2039, - 0x0152, 0xFFFF, 0x017D, 0xFFFF, 0xFFFF, 0x2018, - 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, - 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0xFFFF, - 0x017E, 0x0178, 0x00A0, 0x00A1, 0x00A2, 0x00A3, - 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, - 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, - 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, - 0x00BC, 0x00BD, 0x00BE, 0x00BF, -} }; - -/* end of stage 2 tables for Windows-1252 }}} */ - -/* {{{ Stage 1 table for Windows-1252 */ -static const enc_to_uni enc_to_uni_win1252 = { { - &enc_to_uni_s2_iso88591_00, - &enc_to_uni_s2_iso88591_40, - &enc_to_uni_s2_win1252_80, - &enc_to_uni_s2_iso88591_C0 } -}; -/* end of stage 1 table for Windows-1252 }}} */ - -/* {{{ Mappings *to* Unicode for Windows-1251 */ - -/* {{{ Stage 2 tables for Windows-1251 */ - -static const enc_to_uni_stage2 enc_to_uni_s2_win1251_80 = { { - 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, - 0x2020, 0x2021, 0x20AC, 0x2030, 0x0409, 0x2039, - 0x040A, 0x040C, 0x040B, 0x040F, 0x0452, 0x2018, - 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, - 0xFFFF, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, - 0x045B, 0x045F, 0x00A0, 0x040E, 0x045E, 0x0408, - 0x00A4, 0x0490, 0x00A6, 0x00A7, 0x0401, 0x00A9, - 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, - 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, - 0x00B6, 0x00B7, 0x0451, 0x2116, 0x0454, 0x00BB, - 0x0458, 0x0405, 0x0455, 0x0457, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_win1251_C0 = { { - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, - 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, - 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, - 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, - 0x042E, 0x042F, 0x0430, 0x0431, 0x0432, 0x0433, - 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, - 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, - 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, - 0x044C, 0x044D, 0x044E, 0x044F, -} }; - -/* end of stage 2 tables for Windows-1251 }}} */ - -/* {{{ Stage 1 table for Windows-1251 */ -static const enc_to_uni enc_to_uni_win1251 = { { - &enc_to_uni_s2_iso88591_00, - &enc_to_uni_s2_iso88591_40, - &enc_to_uni_s2_win1251_80, - &enc_to_uni_s2_win1251_C0 } -}; -/* end of stage 1 table for Windows-1251 }}} */ - -/* {{{ Mappings *to* Unicode for KOI8-R */ - -/* {{{ Stage 2 tables for KOI8-R */ - -static const enc_to_uni_stage2 enc_to_uni_s2_koi8r_80 = { { - 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, - 0x251C, 0x2524, 0x252C, 0x2534, 0x253C, 0x2580, - 0x2584, 0x2588, 0x258C, 0x2590, 0x2591, 0x2592, - 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, - 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, - 0x00B7, 0x00F7, 0x2550, 0x2551, 0x2552, 0x0451, - 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, - 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, - 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, - 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, - 0x256A, 0x256B, 0x256C, 0x00A9, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_koi8r_C0 = { { - 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, - 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043A, - 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x044F, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, - 0x0447, 0x044A, 0x042E, 0x0410, 0x0411, 0x0426, - 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, - 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, - 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, - 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, - 0x042D, 0x0429, 0x0427, 0x042A, -} }; - -/* end of stage 2 tables for KOI8-R }}} */ - -/* {{{ Stage 1 table for KOI8-R */ -static const enc_to_uni enc_to_uni_koi8r = { { - &enc_to_uni_s2_iso88591_00, - &enc_to_uni_s2_iso88591_40, - &enc_to_uni_s2_koi8r_80, - &enc_to_uni_s2_koi8r_C0 } -}; -/* end of stage 1 table for KOI8-R }}} */ - -/* {{{ Mappings *to* Unicode for CP-866 */ - -/* {{{ Stage 2 tables for CP-866 */ - -static const enc_to_uni_stage2 enc_to_uni_s2_cp866_80 = { { - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, - 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, - 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, - 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, - 0x042E, 0x042F, 0x0430, 0x0431, 0x0432, 0x0433, - 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, - 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, - 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, - 0x255D, 0x255C, 0x255B, 0x2510, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_cp866_C0 = { { - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, - 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, - 0x2560, 0x2550, 0x256C, 0x2567, 0x2568, 0x2564, - 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, - 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, - 0x2590, 0x2580, 0x0440, 0x0441, 0x0442, 0x0443, - 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, - 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, - 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, - 0x040E, 0x045E, 0x00B0, 0x2219, 0x00B7, 0x221A, - 0x2116, 0x00A4, 0x25A0, 0x00A0, -} }; - -/* end of stage 2 tables for CP-866 }}} */ - -/* {{{ Stage 1 table for CP-866 */ -static const enc_to_uni enc_to_uni_cp866 = { { - &enc_to_uni_s2_iso88591_00, - &enc_to_uni_s2_iso88591_40, - &enc_to_uni_s2_cp866_80, - &enc_to_uni_s2_cp866_C0 } -}; -/* end of stage 1 table for CP-866 }}} */ - -/* {{{ Mappings *to* Unicode for MacRoman */ - -/* {{{ Stage 2 tables for MacRoman */ - -static const enc_to_uni_stage2 enc_to_uni_s2_macroman_00 = { { - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, - 0xFFFF, 0xFFFF, 0x0020, 0x0021, 0x0022, 0x0023, - 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, - 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, - 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, - 0x003C, 0x003D, 0x003E, 0x003F, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_macroman_40 = { { - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, - 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, - 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, - 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, - 0x005E, 0x005F, 0x0060, 0x0061, 0x0062, 0x0063, - 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, - 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, - 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, - 0x007C, 0x007D, 0x007E, 0xFFFF, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_macroman_80 = { { - 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, - 0x00DC, 0x00E1, 0x00E0, 0x00E2, 0x00E4, 0x00E3, - 0x00E5, 0x00E7, 0x00E9, 0x00E8, 0x00EA, 0x00EB, - 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3, - 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, - 0x00FB, 0x00FC, 0x2020, 0x00B0, 0x00A2, 0x00A3, - 0x00A7, 0x2022, 0x00B6, 0x00DF, 0x00AE, 0x00A9, - 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8, - 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, - 0x2202, 0x2211, 0x220F, 0x03C0, 0x222B, 0x00AA, - 0x00BA, 0x03A9, 0x00E6, 0x00F8, -} }; - -static const enc_to_uni_stage2 enc_to_uni_s2_macroman_C0 = { { - 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, - 0x2206, 0x00AB, 0x00BB, 0x2026, 0x00A0, 0x00C0, - 0x00C3, 0x00D5, 0x0152, 0x0153, 0x2013, 0x2014, - 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA, - 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, - 0xFB01, 0xFB02, 0x2021, 0x00B7, 0x201A, 0x201E, - 0x2030, 0x00C2, 0x00CA, 0x00C1, 0x00CB, 0x00C8, - 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4, - 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, - 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9, 0x02DA, - 0x00B8, 0x02DD, 0x02DB, 0x02C7, -} }; - -/* end of stage 2 tables for MacRoman }}} */ - -/* {{{ Stage 1 table for MacRoman */ -static const enc_to_uni enc_to_uni_macroman = { { - &enc_to_uni_s2_macroman_00, - &enc_to_uni_s2_macroman_40, - &enc_to_uni_s2_macroman_80, - &enc_to_uni_s2_macroman_C0 } -}; -/* end of stage 1 table for MacRoman }}} */ - -/* {{{ Index of tables for encoding conversion */ -static const enc_to_uni *const enc_to_uni_index[cs_numelems] = { - NULL, - &enc_to_uni_iso88591, - &enc_to_uni_win1252, - &enc_to_uni_iso885915, - &enc_to_uni_win1251, - &enc_to_uni_iso88595, - &enc_to_uni_cp866, - &enc_to_uni_macroman, - &enc_to_uni_koi8r, -}; -/* }}} */ - -/* Definitions for mappings *from* Unicode */ - -typedef struct { - unsigned short un_code_point; /* we don't need bigger */ - unsigned char cs_code; /* currently, we only have maps to single-byte encodings */ -} uni_to_enc; - -/* {{{ Mappings *from* Unicode for ISO-8859-15 */ -static const uni_to_enc unimap_iso885915[] = { - { 0x00A5, 0xA5 }, /* yen sign */ - { 0x00A7, 0xA7 }, /* section sign */ - { 0x00A9, 0xA9 }, /* copyright sign */ - { 0x00AA, 0xAA }, /* feminine ordinal indicator */ - { 0x00AB, 0xAB }, /* left-pointing double angle quotation mark */ - { 0x00AC, 0xAC }, /* not sign */ - { 0x00AD, 0xAD }, /* soft hyphen */ - { 0x00AE, 0xAE }, /* registered sign */ - { 0x00AF, 0xAF }, /* macron */ - { 0x00B0, 0xB0 }, /* degree sign */ - { 0x00B1, 0xB1 }, /* plus-minus sign */ - { 0x00B2, 0xB2 }, /* superscript two */ - { 0x00B3, 0xB3 }, /* superscript three */ - { 0x00B5, 0xB5 }, /* micro sign */ - { 0x00B6, 0xB6 }, /* pilcrow sign */ - { 0x00B7, 0xB7 }, /* middle dot */ - { 0x00B9, 0xB9 }, /* superscript one */ - { 0x00BA, 0xBA }, /* masculine ordinal indicator */ - { 0x00BB, 0xBB }, /* right-pointing double angle quotation mark */ - { 0x0152, 0xBC }, /* latin capital ligature oe */ - { 0x0153, 0xBD }, /* latin small ligature oe */ - { 0x0160, 0xA6 }, /* latin capital letter s with caron */ - { 0x0161, 0xA8 }, /* latin small letter s with caron */ - { 0x0178, 0xBE }, /* latin capital letter y with diaeresis */ - { 0x017D, 0xB4 }, /* latin capital letter z with caron */ - { 0x017E, 0xB8 }, /* latin small letter z with caron */ - { 0x20AC, 0xA4 }, /* euro sign */ -}; -/* {{{ end of mappings *from* Unicode for ISO-8859-15 */ - -/* {{{ Mappings *from* Unicode for Windows-1252 */ -static const uni_to_enc unimap_win1252[] = { - { 0x0152, 0x8C }, /* latin capital ligature oe */ - { 0x0153, 0x9C }, /* latin small ligature oe */ - { 0x0160, 0x8A }, /* latin capital letter s with caron */ - { 0x0161, 0x9A }, /* latin small letter s with caron */ - { 0x0178, 0x9F }, /* latin capital letter y with diaeresis */ - { 0x017D, 0x8E }, /* latin capital letter z with caron */ - { 0x017E, 0x9E }, /* latin small letter z with caron */ - { 0x0192, 0x83 }, /* latin small letter f with hook */ - { 0x02C6, 0x88 }, /* modifier letter circumflex accent */ - { 0x02DC, 0x98 }, /* small tilde */ - { 0x2013, 0x96 }, /* en dash */ - { 0x2014, 0x97 }, /* em dash */ - { 0x2018, 0x91 }, /* left single quotation mark */ - { 0x2019, 0x92 }, /* right single quotation mark */ - { 0x201A, 0x82 }, /* single low-9 quotation mark */ - { 0x201C, 0x93 }, /* left double quotation mark */ - { 0x201D, 0x94 }, /* right double quotation mark */ - { 0x201E, 0x84 }, /* double low-9 quotation mark */ - { 0x2020, 0x86 }, /* dagger */ - { 0x2021, 0x87 }, /* double dagger */ - { 0x2022, 0x95 }, /* bullet */ - { 0x2026, 0x85 }, /* horizontal ellipsis */ - { 0x2030, 0x89 }, /* per mille sign */ - { 0x2039, 0x8B }, /* single left-pointing angle quotation mark */ - { 0x203A, 0x9B }, /* single right-pointing angle quotation mark */ - { 0x20AC, 0x80 }, /* euro sign */ - { 0x2122, 0x99 }, /* trade mark sign */ -}; -/* {{{ end of mappings *from* Unicode for Windows-1252 */ - -/* {{{ Mappings *from* Unicode for Windows-1251 */ -static const uni_to_enc unimap_win1251[] = { - { 0x00A0, 0xA0 }, /* no-break space */ - { 0x00A4, 0xA4 }, /* currency sign */ - { 0x00A6, 0xA6 }, /* broken bar */ - { 0x00A7, 0xA7 }, /* section sign */ - { 0x00A9, 0xA9 }, /* copyright sign */ - { 0x00AB, 0xAB }, /* left-pointing double angle quotation mark */ - { 0x00AC, 0xAC }, /* not sign */ - { 0x00AD, 0xAD }, /* soft hyphen */ - { 0x00AE, 0xAE }, /* registered sign */ - { 0x00B0, 0xB0 }, /* degree sign */ - { 0x00B1, 0xB1 }, /* plus-minus sign */ - { 0x00B5, 0xB5 }, /* micro sign */ - { 0x00B6, 0xB6 }, /* pilcrow sign */ - { 0x00B7, 0xB7 }, /* middle dot */ - { 0x00BB, 0xBB }, /* right-pointing double angle quotation mark */ - { 0x0401, 0xA8 }, /* cyrillic capital letter io */ - { 0x0402, 0x80 }, /* cyrillic capital letter dje */ - { 0x0403, 0x81 }, /* cyrillic capital letter gje */ - { 0x0404, 0xAA }, /* cyrillic capital letter ukrainian ie */ - { 0x0405, 0xBD }, /* cyrillic capital letter dze */ - { 0x0406, 0xB2 }, /* cyrillic capital letter byelorussian-ukrainian i */ - { 0x0407, 0xAF }, /* cyrillic capital letter yi */ - { 0x0408, 0xA3 }, /* cyrillic capital letter je */ - { 0x0409, 0x8A }, /* cyrillic capital letter lje */ - { 0x040A, 0x8C }, /* cyrillic capital letter nje */ - { 0x040B, 0x8E }, /* cyrillic capital letter tshe */ - { 0x040C, 0x8D }, /* cyrillic capital letter kje */ - { 0x040E, 0xA1 }, /* cyrillic capital letter short u */ - { 0x040F, 0x8F }, /* cyrillic capital letter dzhe */ - { 0x0410, 0xC0 }, /* cyrillic capital letter a */ - { 0x0411, 0xC1 }, /* cyrillic capital letter be */ - { 0x0412, 0xC2 }, /* cyrillic capital letter ve */ - { 0x0413, 0xC3 }, /* cyrillic capital letter ghe */ - { 0x0414, 0xC4 }, /* cyrillic capital letter de */ - { 0x0415, 0xC5 }, /* cyrillic capital letter ie */ - { 0x0416, 0xC6 }, /* cyrillic capital letter zhe */ - { 0x0417, 0xC7 }, /* cyrillic capital letter ze */ - { 0x0418, 0xC8 }, /* cyrillic capital letter i */ - { 0x0419, 0xC9 }, /* cyrillic capital letter short i */ - { 0x041A, 0xCA }, /* cyrillic capital letter ka */ - { 0x041B, 0xCB }, /* cyrillic capital letter el */ - { 0x041C, 0xCC }, /* cyrillic capital letter em */ - { 0x041D, 0xCD }, /* cyrillic capital letter en */ - { 0x041E, 0xCE }, /* cyrillic capital letter o */ - { 0x041F, 0xCF }, /* cyrillic capital letter pe */ - { 0x0420, 0xD0 }, /* cyrillic capital letter er */ - { 0x0421, 0xD1 }, /* cyrillic capital letter es */ - { 0x0422, 0xD2 }, /* cyrillic capital letter te */ - { 0x0423, 0xD3 }, /* cyrillic capital letter u */ - { 0x0424, 0xD4 }, /* cyrillic capital letter ef */ - { 0x0425, 0xD5 }, /* cyrillic capital letter ha */ - { 0x0426, 0xD6 }, /* cyrillic capital letter tse */ - { 0x0427, 0xD7 }, /* cyrillic capital letter che */ - { 0x0428, 0xD8 }, /* cyrillic capital letter sha */ - { 0x0429, 0xD9 }, /* cyrillic capital letter shcha */ - { 0x042A, 0xDA }, /* cyrillic capital letter hard sign */ - { 0x042B, 0xDB }, /* cyrillic capital letter yeru */ - { 0x042C, 0xDC }, /* cyrillic capital letter soft sign */ - { 0x042D, 0xDD }, /* cyrillic capital letter e */ - { 0x042E, 0xDE }, /* cyrillic capital letter yu */ - { 0x042F, 0xDF }, /* cyrillic capital letter ya */ - { 0x0430, 0xE0 }, /* cyrillic small letter a */ - { 0x0431, 0xE1 }, /* cyrillic small letter be */ - { 0x0432, 0xE2 }, /* cyrillic small letter ve */ - { 0x0433, 0xE3 }, /* cyrillic small letter ghe */ - { 0x0434, 0xE4 }, /* cyrillic small letter de */ - { 0x0435, 0xE5 }, /* cyrillic small letter ie */ - { 0x0436, 0xE6 }, /* cyrillic small letter zhe */ - { 0x0437, 0xE7 }, /* cyrillic small letter ze */ - { 0x0438, 0xE8 }, /* cyrillic small letter i */ - { 0x0439, 0xE9 }, /* cyrillic small letter short i */ - { 0x043A, 0xEA }, /* cyrillic small letter ka */ - { 0x043B, 0xEB }, /* cyrillic small letter el */ - { 0x043C, 0xEC }, /* cyrillic small letter em */ - { 0x043D, 0xED }, /* cyrillic small letter en */ - { 0x043E, 0xEE }, /* cyrillic small letter o */ - { 0x043F, 0xEF }, /* cyrillic small letter pe */ - { 0x0440, 0xF0 }, /* cyrillic small letter er */ - { 0x0441, 0xF1 }, /* cyrillic small letter es */ - { 0x0442, 0xF2 }, /* cyrillic small letter te */ - { 0x0443, 0xF3 }, /* cyrillic small letter u */ - { 0x0444, 0xF4 }, /* cyrillic small letter ef */ - { 0x0445, 0xF5 }, /* cyrillic small letter ha */ - { 0x0446, 0xF6 }, /* cyrillic small letter tse */ - { 0x0447, 0xF7 }, /* cyrillic small letter che */ - { 0x0448, 0xF8 }, /* cyrillic small letter sha */ - { 0x0449, 0xF9 }, /* cyrillic small letter shcha */ - { 0x044A, 0xFA }, /* cyrillic small letter hard sign */ - { 0x044B, 0xFB }, /* cyrillic small letter yeru */ - { 0x044C, 0xFC }, /* cyrillic small letter soft sign */ - { 0x044D, 0xFD }, /* cyrillic small letter e */ - { 0x044E, 0xFE }, /* cyrillic small letter yu */ - { 0x044F, 0xFF }, /* cyrillic small letter ya */ - { 0x0451, 0xB8 }, /* cyrillic small letter io */ - { 0x0452, 0x90 }, /* cyrillic small letter dje */ - { 0x0453, 0x83 }, /* cyrillic small letter gje */ - { 0x0454, 0xBA }, /* cyrillic small letter ukrainian ie */ - { 0x0455, 0xBE }, /* cyrillic small letter dze */ - { 0x0456, 0xB3 }, /* cyrillic small letter byelorussian-ukrainian i */ - { 0x0457, 0xBF }, /* cyrillic small letter yi */ - { 0x0458, 0xBC }, /* cyrillic small letter je */ - { 0x0459, 0x9A }, /* cyrillic small letter lje */ - { 0x045A, 0x9C }, /* cyrillic small letter nje */ - { 0x045B, 0x9E }, /* cyrillic small letter tshe */ - { 0x045C, 0x9D }, /* cyrillic small letter kje */ - { 0x045E, 0xA2 }, /* cyrillic small letter short u */ - { 0x045F, 0x9F }, /* cyrillic small letter dzhe */ - { 0x0490, 0xA5 }, /* cyrillic capital letter ghe with upturn */ - { 0x0491, 0xB4 }, /* cyrillic small letter ghe with upturn */ - { 0x2013, 0x96 }, /* en dash */ - { 0x2014, 0x97 }, /* em dash */ - { 0x2018, 0x91 }, /* left single quotation mark */ - { 0x2019, 0x92 }, /* right single quotation mark */ - { 0x201A, 0x82 }, /* single low-9 quotation mark */ - { 0x201C, 0x93 }, /* left double quotation mark */ - { 0x201D, 0x94 }, /* right double quotation mark */ - { 0x201E, 0x84 }, /* double low-9 quotation mark */ - { 0x2020, 0x86 }, /* dagger */ - { 0x2021, 0x87 }, /* double dagger */ - { 0x2022, 0x95 }, /* bullet */ - { 0x2026, 0x85 }, /* horizontal ellipsis */ - { 0x2030, 0x89 }, /* per mille sign */ - { 0x2039, 0x8B }, /* single left-pointing angle quotation mark */ - { 0x203A, 0x9B }, /* single right-pointing angle quotation mark */ - { 0x20AC, 0x88 }, /* euro sign */ - { 0x2116, 0xB9 }, /* numero sign */ - { 0x2122, 0x99 }, /* trade mark sign */ -}; -/* {{{ end of mappings *from* Unicode for Windows-1251 */ - -/* {{{ Mappings *from* Unicode for KOI8-R */ -static const uni_to_enc unimap_koi8r[] = { - { 0x00A0, 0x9A }, /* no-break space */ - { 0x00A9, 0xBF }, /* copyright sign */ - { 0x00B0, 0x9C }, /* degree sign */ - { 0x00B2, 0x9D }, /* superscript two */ - { 0x00B7, 0x9E }, /* middle dot */ - { 0x00F7, 0x9F }, /* division sign */ - { 0x0401, 0xB3 }, /* cyrillic capital letter io */ - { 0x0410, 0xE1 }, /* cyrillic capital letter a */ - { 0x0411, 0xE2 }, /* cyrillic capital letter be */ - { 0x0412, 0xF7 }, /* cyrillic capital letter ve */ - { 0x0413, 0xE7 }, /* cyrillic capital letter ghe */ - { 0x0414, 0xE4 }, /* cyrillic capital letter de */ - { 0x0415, 0xE5 }, /* cyrillic capital letter ie */ - { 0x0416, 0xF6 }, /* cyrillic capital letter zhe */ - { 0x0417, 0xFA }, /* cyrillic capital letter ze */ - { 0x0418, 0xE9 }, /* cyrillic capital letter i */ - { 0x0419, 0xEA }, /* cyrillic capital letter short i */ - { 0x041A, 0xEB }, /* cyrillic capital letter ka */ - { 0x041B, 0xEC }, /* cyrillic capital letter el */ - { 0x041C, 0xED }, /* cyrillic capital letter em */ - { 0x041D, 0xEE }, /* cyrillic capital letter en */ - { 0x041E, 0xEF }, /* cyrillic capital letter o */ - { 0x041F, 0xF0 }, /* cyrillic capital letter pe */ - { 0x0420, 0xF2 }, /* cyrillic capital letter er */ - { 0x0421, 0xF3 }, /* cyrillic capital letter es */ - { 0x0422, 0xF4 }, /* cyrillic capital letter te */ - { 0x0423, 0xF5 }, /* cyrillic capital letter u */ - { 0x0424, 0xE6 }, /* cyrillic capital letter ef */ - { 0x0425, 0xE8 }, /* cyrillic capital letter ha */ - { 0x0426, 0xE3 }, /* cyrillic capital letter tse */ - { 0x0427, 0xFE }, /* cyrillic capital letter che */ - { 0x0428, 0xFB }, /* cyrillic capital letter sha */ - { 0x0429, 0xFD }, /* cyrillic capital letter shcha */ - { 0x042A, 0xFF }, /* cyrillic capital letter hard sign */ - { 0x042B, 0xF9 }, /* cyrillic capital letter yeru */ - { 0x042C, 0xF8 }, /* cyrillic capital letter soft sign */ - { 0x042D, 0xFC }, /* cyrillic capital letter e */ - { 0x042E, 0xE0 }, /* cyrillic capital letter yu */ - { 0x042F, 0xF1 }, /* cyrillic capital letter ya */ - { 0x0430, 0xC1 }, /* cyrillic small letter a */ - { 0x0431, 0xC2 }, /* cyrillic small letter be */ - { 0x0432, 0xD7 }, /* cyrillic small letter ve */ - { 0x0433, 0xC7 }, /* cyrillic small letter ghe */ - { 0x0434, 0xC4 }, /* cyrillic small letter de */ - { 0x0435, 0xC5 }, /* cyrillic small letter ie */ - { 0x0436, 0xD6 }, /* cyrillic small letter zhe */ - { 0x0437, 0xDA }, /* cyrillic small letter ze */ - { 0x0438, 0xC9 }, /* cyrillic small letter i */ - { 0x0439, 0xCA }, /* cyrillic small letter short i */ - { 0x043A, 0xCB }, /* cyrillic small letter ka */ - { 0x043B, 0xCC }, /* cyrillic small letter el */ - { 0x043C, 0xCD }, /* cyrillic small letter em */ - { 0x043D, 0xCE }, /* cyrillic small letter en */ - { 0x043E, 0xCF }, /* cyrillic small letter o */ - { 0x043F, 0xD0 }, /* cyrillic small letter pe */ - { 0x0440, 0xD2 }, /* cyrillic small letter er */ - { 0x0441, 0xD3 }, /* cyrillic small letter es */ - { 0x0442, 0xD4 }, /* cyrillic small letter te */ - { 0x0443, 0xD5 }, /* cyrillic small letter u */ - { 0x0444, 0xC6 }, /* cyrillic small letter ef */ - { 0x0445, 0xC8 }, /* cyrillic small letter ha */ - { 0x0446, 0xC3 }, /* cyrillic small letter tse */ - { 0x0447, 0xDE }, /* cyrillic small letter che */ - { 0x0448, 0xDB }, /* cyrillic small letter sha */ - { 0x0449, 0xDD }, /* cyrillic small letter shcha */ - { 0x044A, 0xDF }, /* cyrillic small letter hard sign */ - { 0x044B, 0xD9 }, /* cyrillic small letter yeru */ - { 0x044C, 0xD8 }, /* cyrillic small letter soft sign */ - { 0x044D, 0xDC }, /* cyrillic small letter e */ - { 0x044E, 0xC0 }, /* cyrillic small letter yu */ - { 0x044F, 0xD1 }, /* cyrillic small letter ya */ - { 0x0451, 0xA3 }, /* cyrillic small letter io */ - { 0x2219, 0x95 }, /* bullet operator */ - { 0x221A, 0x96 }, /* square root */ - { 0x2248, 0x97 }, /* almost equal to */ - { 0x2264, 0x98 }, /* less-than or equal to */ - { 0x2265, 0x99 }, /* greater-than or equal to */ - { 0x2320, 0x93 }, /* top half integral */ - { 0x2321, 0x9B }, /* bottom half integral */ - { 0x2500, 0x80 }, /* box drawings light horizontal */ - { 0x2502, 0x81 }, /* box drawings light vertical */ - { 0x250C, 0x82 }, /* box drawings light down and right */ - { 0x2510, 0x83 }, /* box drawings light down and left */ - { 0x2514, 0x84 }, /* box drawings light up and right */ - { 0x2518, 0x85 }, /* box drawings light up and left */ - { 0x251C, 0x86 }, /* box drawings light vertical and right */ - { 0x2524, 0x87 }, /* box drawings light vertical and left */ - { 0x252C, 0x88 }, /* box drawings light down and horizontal */ - { 0x2534, 0x89 }, /* box drawings light up and horizontal */ - { 0x253C, 0x8A }, /* box drawings light vertical and horizontal */ - { 0x2550, 0xA0 }, /* box drawings double horizontal */ - { 0x2551, 0xA1 }, /* box drawings double vertical */ - { 0x2552, 0xA2 }, /* box drawings down single and right double */ - { 0x2553, 0xA4 }, /* box drawings down double and right single */ - { 0x2554, 0xA5 }, /* box drawings double down and right */ - { 0x2555, 0xA6 }, /* box drawings down single and left double */ - { 0x2556, 0xA7 }, /* box drawings down double and left single */ - { 0x2557, 0xA8 }, /* box drawings double down and left */ - { 0x2558, 0xA9 }, /* box drawings up single and right double */ - { 0x2559, 0xAA }, /* box drawings up double and right single */ - { 0x255A, 0xAB }, /* box drawings double up and right */ - { 0x255B, 0xAC }, /* box drawings up single and left double */ - { 0x255C, 0xAD }, /* box drawings up double and left single */ - { 0x255D, 0xAE }, /* box drawings double up and left */ - { 0x255E, 0xAF }, /* box drawings vertical single and right double */ - { 0x255F, 0xB0 }, /* box drawings vertical double and right single */ - { 0x2560, 0xB1 }, /* box drawings double vertical and right */ - { 0x2561, 0xB2 }, /* box drawings vertical single and left double */ - { 0x2562, 0xB4 }, /* box drawings vertical double and left single */ - { 0x2563, 0xB5 }, /* box drawings double vertical and left */ - { 0x2564, 0xB6 }, /* box drawings down single and horizontal double */ - { 0x2565, 0xB7 }, /* box drawings down double and horizontal single */ - { 0x2566, 0xB8 }, /* box drawings double down and horizontal */ - { 0x2567, 0xB9 }, /* box drawings up single and horizontal double */ - { 0x2568, 0xBA }, /* box drawings up double and horizontal single */ - { 0x2569, 0xBB }, /* box drawings double up and horizontal */ - { 0x256A, 0xBC }, /* box drawings vertical single and horizontal double */ - { 0x256B, 0xBD }, /* box drawings vertical double and horizontal single */ - { 0x256C, 0xBE }, /* box drawings double vertical and horizontal */ - { 0x2580, 0x8B }, /* upper half block */ - { 0x2584, 0x8C }, /* lower half block */ - { 0x2588, 0x8D }, /* full block */ - { 0x258C, 0x8E }, /* left half block */ - { 0x2590, 0x8F }, /* right half block */ - { 0x2591, 0x90 }, /* light shade */ - { 0x2592, 0x91 }, /* medium shade */ - { 0x2593, 0x92 }, /* dark shade */ - { 0x25A0, 0x94 }, /* black square */ -}; -/* {{{ end of mappings *from* Unicode for KOI8-R */ - -/* {{{ Mappings *from* Unicode for CP-866 */ -static const uni_to_enc unimap_cp866[] = { - { 0x00A0, 0xFF }, /* no-break space */ - { 0x00A4, 0xFD }, /* currency sign */ - { 0x00B0, 0xF8 }, /* degree sign */ - { 0x00B7, 0xFA }, /* middle dot */ - { 0x0401, 0xF0 }, /* cyrillic capital letter io */ - { 0x0404, 0xF2 }, /* cyrillic capital letter ukrainian ie */ - { 0x0407, 0xF4 }, /* cyrillic capital letter yi */ - { 0x040E, 0xF6 }, /* cyrillic capital letter short u */ - { 0x0410, 0x80 }, /* cyrillic capital letter a */ - { 0x0411, 0x81 }, /* cyrillic capital letter be */ - { 0x0412, 0x82 }, /* cyrillic capital letter ve */ - { 0x0413, 0x83 }, /* cyrillic capital letter ghe */ - { 0x0414, 0x84 }, /* cyrillic capital letter de */ - { 0x0415, 0x85 }, /* cyrillic capital letter ie */ - { 0x0416, 0x86 }, /* cyrillic capital letter zhe */ - { 0x0417, 0x87 }, /* cyrillic capital letter ze */ - { 0x0418, 0x88 }, /* cyrillic capital letter i */ - { 0x0419, 0x89 }, /* cyrillic capital letter short i */ - { 0x041A, 0x8A }, /* cyrillic capital letter ka */ - { 0x041B, 0x8B }, /* cyrillic capital letter el */ - { 0x041C, 0x8C }, /* cyrillic capital letter em */ - { 0x041D, 0x8D }, /* cyrillic capital letter en */ - { 0x041E, 0x8E }, /* cyrillic capital letter o */ - { 0x041F, 0x8F }, /* cyrillic capital letter pe */ - { 0x0420, 0x90 }, /* cyrillic capital letter er */ - { 0x0421, 0x91 }, /* cyrillic capital letter es */ - { 0x0422, 0x92 }, /* cyrillic capital letter te */ - { 0x0423, 0x93 }, /* cyrillic capital letter u */ - { 0x0424, 0x94 }, /* cyrillic capital letter ef */ - { 0x0425, 0x95 }, /* cyrillic capital letter ha */ - { 0x0426, 0x96 }, /* cyrillic capital letter tse */ - { 0x0427, 0x97 }, /* cyrillic capital letter che */ - { 0x0428, 0x98 }, /* cyrillic capital letter sha */ - { 0x0429, 0x99 }, /* cyrillic capital letter shcha */ - { 0x042A, 0x9A }, /* cyrillic capital letter hard sign */ - { 0x042B, 0x9B }, /* cyrillic capital letter yeru */ - { 0x042C, 0x9C }, /* cyrillic capital letter soft sign */ - { 0x042D, 0x9D }, /* cyrillic capital letter e */ - { 0x042E, 0x9E }, /* cyrillic capital letter yu */ - { 0x042F, 0x9F }, /* cyrillic capital letter ya */ - { 0x0430, 0xA0 }, /* cyrillic small letter a */ - { 0x0431, 0xA1 }, /* cyrillic small letter be */ - { 0x0432, 0xA2 }, /* cyrillic small letter ve */ - { 0x0433, 0xA3 }, /* cyrillic small letter ghe */ - { 0x0434, 0xA4 }, /* cyrillic small letter de */ - { 0x0435, 0xA5 }, /* cyrillic small letter ie */ - { 0x0436, 0xA6 }, /* cyrillic small letter zhe */ - { 0x0437, 0xA7 }, /* cyrillic small letter ze */ - { 0x0438, 0xA8 }, /* cyrillic small letter i */ - { 0x0439, 0xA9 }, /* cyrillic small letter short i */ - { 0x043A, 0xAA }, /* cyrillic small letter ka */ - { 0x043B, 0xAB }, /* cyrillic small letter el */ - { 0x043C, 0xAC }, /* cyrillic small letter em */ - { 0x043D, 0xAD }, /* cyrillic small letter en */ - { 0x043E, 0xAE }, /* cyrillic small letter o */ - { 0x043F, 0xAF }, /* cyrillic small letter pe */ - { 0x0440, 0xE0 }, /* cyrillic small letter er */ - { 0x0441, 0xE1 }, /* cyrillic small letter es */ - { 0x0442, 0xE2 }, /* cyrillic small letter te */ - { 0x0443, 0xE3 }, /* cyrillic small letter u */ - { 0x0444, 0xE4 }, /* cyrillic small letter ef */ - { 0x0445, 0xE5 }, /* cyrillic small letter ha */ - { 0x0446, 0xE6 }, /* cyrillic small letter tse */ - { 0x0447, 0xE7 }, /* cyrillic small letter che */ - { 0x0448, 0xE8 }, /* cyrillic small letter sha */ - { 0x0449, 0xE9 }, /* cyrillic small letter shcha */ - { 0x044A, 0xEA }, /* cyrillic small letter hard sign */ - { 0x044B, 0xEB }, /* cyrillic small letter yeru */ - { 0x044C, 0xEC }, /* cyrillic small letter soft sign */ - { 0x044D, 0xED }, /* cyrillic small letter e */ - { 0x044E, 0xEE }, /* cyrillic small letter yu */ - { 0x044F, 0xEF }, /* cyrillic small letter ya */ - { 0x0451, 0xF1 }, /* cyrillic small letter io */ - { 0x0454, 0xF3 }, /* cyrillic small letter ukrainian ie */ - { 0x0457, 0xF5 }, /* cyrillic small letter yi */ - { 0x045E, 0xF7 }, /* cyrillic small letter short u */ - { 0x2116, 0xFC }, /* numero sign */ - { 0x2219, 0xF9 }, /* bullet operator */ - { 0x221A, 0xFB }, /* square root */ - { 0x2500, 0xC4 }, /* box drawings light horizontal */ - { 0x2502, 0xB3 }, /* box drawings light vertical */ - { 0x250C, 0xDA }, /* box drawings light down and right */ - { 0x2510, 0xBF }, /* box drawings light down and left */ - { 0x2514, 0xC0 }, /* box drawings light up and right */ - { 0x2518, 0xD9 }, /* box drawings light up and left */ - { 0x251C, 0xC3 }, /* box drawings light vertical and right */ - { 0x2524, 0xB4 }, /* box drawings light vertical and left */ - { 0x252C, 0xC2 }, /* box drawings light down and horizontal */ - { 0x2534, 0xC1 }, /* box drawings light up and horizontal */ - { 0x253C, 0xC5 }, /* box drawings light vertical and horizontal */ - { 0x2550, 0xCD }, /* box drawings double horizontal */ - { 0x2551, 0xBA }, /* box drawings double vertical */ - { 0x2552, 0xD5 }, /* box drawings down single and right double */ - { 0x2553, 0xD6 }, /* box drawings down double and right single */ - { 0x2554, 0xC9 }, /* box drawings double down and right */ - { 0x2555, 0xB8 }, /* box drawings down single and left double */ - { 0x2556, 0xB7 }, /* box drawings down double and left single */ - { 0x2557, 0xBB }, /* box drawings double down and left */ - { 0x2558, 0xD4 }, /* box drawings up single and right double */ - { 0x2559, 0xD3 }, /* box drawings up double and right single */ - { 0x255A, 0xC8 }, /* box drawings double up and right */ - { 0x255B, 0xBE }, /* box drawings up single and left double */ - { 0x255C, 0xBD }, /* box drawings up double and left single */ - { 0x255D, 0xBC }, /* box drawings double up and left */ - { 0x255E, 0xC6 }, /* box drawings vertical single and right double */ - { 0x255F, 0xC7 }, /* box drawings vertical double and right single */ - { 0x2560, 0xCC }, /* box drawings double vertical and right */ - { 0x2561, 0xB5 }, /* box drawings vertical single and left double */ - { 0x2562, 0xB6 }, /* box drawings vertical double and left single */ - { 0x2563, 0xB9 }, /* box drawings double vertical and left */ - { 0x2564, 0xD1 }, /* box drawings down single and horizontal double */ - { 0x2565, 0xD2 }, /* box drawings down double and horizontal single */ - { 0x2566, 0xCB }, /* box drawings double down and horizontal */ - { 0x2567, 0xCF }, /* box drawings up single and horizontal double */ - { 0x2568, 0xD0 }, /* box drawings up double and horizontal single */ - { 0x2569, 0xCA }, /* box drawings double up and horizontal */ - { 0x256A, 0xD8 }, /* box drawings vertical single and horizontal double */ - { 0x256B, 0xD7 }, /* box drawings vertical double and horizontal single */ - { 0x256C, 0xCE }, /* box drawings double vertical and horizontal */ - { 0x2580, 0xDF }, /* upper half block */ - { 0x2584, 0xDC }, /* lower half block */ - { 0x2588, 0xDB }, /* full block */ - { 0x258C, 0xDD }, /* left half block */ - { 0x2590, 0xDE }, /* right half block */ - { 0x2591, 0xB0 }, /* light shade */ - { 0x2592, 0xB1 }, /* medium shade */ - { 0x2593, 0xB2 }, /* dark shade */ - { 0x25A0, 0xFE }, /* black square */ -}; -/* {{{ end of mappings *from* Unicode for CP-866 */ - -/* {{{ Mappings *from* Unicode for MacRoman */ -static const uni_to_enc unimap_macroman[] = { - { 0x00A0, 0xCA }, /* no-break space */ - { 0x00A1, 0xC1 }, /* inverted exclamation mark */ - { 0x00A2, 0xA2 }, /* cent sign */ - { 0x00A3, 0xA3 }, /* pound sign */ - { 0x00A5, 0xB4 }, /* yen sign */ - { 0x00A7, 0xA4 }, /* section sign */ - { 0x00A8, 0xAC }, /* diaeresis */ - { 0x00A9, 0xA9 }, /* copyright sign */ - { 0x00AA, 0xBB }, /* feminine ordinal indicator */ - { 0x00AB, 0xC7 }, /* left-pointing double angle quotation mark */ - { 0x00AC, 0xC2 }, /* not sign */ - { 0x00AE, 0xA8 }, /* registered sign */ - { 0x00AF, 0xF8 }, /* macron */ - { 0x00B0, 0xA1 }, /* degree sign */ - { 0x00B1, 0xB1 }, /* plus-minus sign */ - { 0x00B4, 0xAB }, /* acute accent */ - { 0x00B5, 0xB5 }, /* micro sign */ - { 0x00B6, 0xA6 }, /* pilcrow sign */ - { 0x00B7, 0xE1 }, /* middle dot */ - { 0x00B8, 0xFC }, /* cedilla */ - { 0x00BA, 0xBC }, /* masculine ordinal indicator */ - { 0x00BB, 0xC8 }, /* right-pointing double angle quotation mark */ - { 0x00BF, 0xC0 }, /* inverted question mark */ - { 0x00C0, 0xCB }, /* latin capital letter a with grave */ - { 0x00C1, 0xE7 }, /* latin capital letter a with acute */ - { 0x00C2, 0xE5 }, /* latin capital letter a with circumflex */ - { 0x00C3, 0xCC }, /* latin capital letter a with tilde */ - { 0x00C4, 0x80 }, /* latin capital letter a with diaeresis */ - { 0x00C5, 0x81 }, /* latin capital letter a with ring above */ - { 0x00C6, 0xAE }, /* latin capital letter ae */ - { 0x00C7, 0x82 }, /* latin capital letter c with cedilla */ - { 0x00C8, 0xE9 }, /* latin capital letter e with grave */ - { 0x00C9, 0x83 }, /* latin capital letter e with acute */ - { 0x00CA, 0xE6 }, /* latin capital letter e with circumflex */ - { 0x00CB, 0xE8 }, /* latin capital letter e with diaeresis */ - { 0x00CC, 0xED }, /* latin capital letter i with grave */ - { 0x00CD, 0xEA }, /* latin capital letter i with acute */ - { 0x00CE, 0xEB }, /* latin capital letter i with circumflex */ - { 0x00CF, 0xEC }, /* latin capital letter i with diaeresis */ - { 0x00D1, 0x84 }, /* latin capital letter n with tilde */ - { 0x00D2, 0xF1 }, /* latin capital letter o with grave */ - { 0x00D3, 0xEE }, /* latin capital letter o with acute */ - { 0x00D4, 0xEF }, /* latin capital letter o with circumflex */ - { 0x00D5, 0xCD }, /* latin capital letter o with tilde */ - { 0x00D6, 0x85 }, /* latin capital letter o with diaeresis */ - { 0x00D8, 0xAF }, /* latin capital letter o with stroke */ - { 0x00D9, 0xF4 }, /* latin capital letter u with grave */ - { 0x00DA, 0xF2 }, /* latin capital letter u with acute */ - { 0x00DB, 0xF3 }, /* latin capital letter u with circumflex */ - { 0x00DC, 0x86 }, /* latin capital letter u with diaeresis */ - { 0x00DF, 0xA7 }, /* latin small letter sharp s */ - { 0x00E0, 0x88 }, /* latin small letter a with grave */ - { 0x00E1, 0x87 }, /* latin small letter a with acute */ - { 0x00E2, 0x89 }, /* latin small letter a with circumflex */ - { 0x00E3, 0x8B }, /* latin small letter a with tilde */ - { 0x00E4, 0x8A }, /* latin small letter a with diaeresis */ - { 0x00E5, 0x8C }, /* latin small letter a with ring above */ - { 0x00E6, 0xBE }, /* latin small letter ae */ - { 0x00E7, 0x8D }, /* latin small letter c with cedilla */ - { 0x00E8, 0x8F }, /* latin small letter e with grave */ - { 0x00E9, 0x8E }, /* latin small letter e with acute */ - { 0x00EA, 0x90 }, /* latin small letter e with circumflex */ - { 0x00EB, 0x91 }, /* latin small letter e with diaeresis */ - { 0x00EC, 0x93 }, /* latin small letter i with grave */ - { 0x00ED, 0x92 }, /* latin small letter i with acute */ - { 0x00EE, 0x94 }, /* latin small letter i with circumflex */ - { 0x00EF, 0x95 }, /* latin small letter i with diaeresis */ - { 0x00F1, 0x96 }, /* latin small letter n with tilde */ - { 0x00F2, 0x98 }, /* latin small letter o with grave */ - { 0x00F3, 0x97 }, /* latin small letter o with acute */ - { 0x00F4, 0x99 }, /* latin small letter o with circumflex */ - { 0x00F5, 0x9B }, /* latin small letter o with tilde */ - { 0x00F6, 0x9A }, /* latin small letter o with diaeresis */ - { 0x00F7, 0xD6 }, /* division sign */ - { 0x00F8, 0xBF }, /* latin small letter o with stroke */ - { 0x00F9, 0x9D }, /* latin small letter u with grave */ - { 0x00FA, 0x9C }, /* latin small letter u with acute */ - { 0x00FB, 0x9E }, /* latin small letter u with circumflex */ - { 0x00FC, 0x9F }, /* latin small letter u with diaeresis */ - { 0x00FF, 0xD8 }, /* latin small letter y with diaeresis */ - { 0x0131, 0xF5 }, /* latin small letter dotless i */ - { 0x0152, 0xCE }, /* latin capital ligature oe */ - { 0x0153, 0xCF }, /* latin small ligature oe */ - { 0x0178, 0xD9 }, /* latin capital letter y with diaeresis */ - { 0x0192, 0xC4 }, /* latin small letter f with hook */ - { 0x02C6, 0xF6 }, /* modifier letter circumflex accent */ - { 0x02C7, 0xFF }, /* caron */ - { 0x02D8, 0xF9 }, /* breve */ - { 0x02D9, 0xFA }, /* dot above */ - { 0x02DA, 0xFB }, /* ring above */ - { 0x02DB, 0xFE }, /* ogonek */ - { 0x02DC, 0xF7 }, /* small tilde */ - { 0x02DD, 0xFD }, /* double acute accent */ - { 0x03A9, 0xBD }, /* greek capital letter omega */ - { 0x03C0, 0xB9 }, /* greek small letter pi */ - { 0x2013, 0xD0 }, /* en dash */ - { 0x2014, 0xD1 }, /* em dash */ - { 0x2018, 0xD4 }, /* left single quotation mark */ - { 0x2019, 0xD5 }, /* right single quotation mark */ - { 0x201A, 0xE2 }, /* single low-9 quotation mark */ - { 0x201C, 0xD2 }, /* left double quotation mark */ - { 0x201D, 0xD3 }, /* right double quotation mark */ - { 0x201E, 0xE3 }, /* double low-9 quotation mark */ - { 0x2020, 0xA0 }, /* dagger */ - { 0x2021, 0xE0 }, /* double dagger */ - { 0x2022, 0xA5 }, /* bullet */ - { 0x2026, 0xC9 }, /* horizontal ellipsis */ - { 0x2030, 0xE4 }, /* per mille sign */ - { 0x2039, 0xDC }, /* single left-pointing angle quotation mark */ - { 0x203A, 0xDD }, /* single right-pointing angle quotation mark */ - { 0x2044, 0xDA }, /* fraction slash */ - { 0x20AC, 0xDB }, /* euro sign */ - { 0x2122, 0xAA }, /* trade mark sign */ - { 0x2202, 0xB6 }, /* partial differential */ - { 0x2206, 0xC6 }, /* increment */ - { 0x220F, 0xB8 }, /* n-ary product */ - { 0x2211, 0xB7 }, /* n-ary summation */ - { 0x221A, 0xC3 }, /* square root */ - { 0x221E, 0xB0 }, /* infinity */ - { 0x222B, 0xBA }, /* integral */ - { 0x2248, 0xC5 }, /* almost equal to */ - { 0x2260, 0xAD }, /* not equal to */ - { 0x2264, 0xB2 }, /* less-than or equal to */ - { 0x2265, 0xB3 }, /* greater-than or equal to */ - { 0x25CA, 0xD7 }, /* lozenge */ - { 0xF8FF, 0xF0 }, /* apple logo */ - { 0xFB01, 0xDE }, /* latin small ligature fi */ - { 0xFB02, 0xDF }, /* latin small ligature fl */ -}; -/* {{{ end of mappings *from* Unicode for MacRoman */ - -/* HTML 5 has many more named entities. - * Some of them map to two unicode code points, not one. - * We're going to use a three-stage table (with an extra one for the entities - * with two code points). */ - -#define ENT_STAGE1_INDEX(k) (((k) & 0xFFF000) >> 12) /* > 1D, we have no mapping */ -#define ENT_STAGE2_INDEX(k) (((k) & 0xFC0) >> 6) -#define ENT_STAGE3_INDEX(k) ((k) & 0x3F) -#define ENT_CODE_POINT_FROM_STAGES(i,j,k) (((i) << 12) | ((j) << 6) | (k)) - -/* The default entity may be NULL. Binary search is still possible while - is senseless as there are just two rows (see also find_entity_for_char()). */ -typedef union { - struct { - const char *default_entity; - unsigned size; /* number of remaining entries in the table */ - unsigned short default_entity_len; - } leading_entry; - struct { - const char *entity; - unsigned second_cp; /* second code point */ - unsigned short entity_len; - } normal_entry; -} entity_multicodepoint_row; - -/* blocks of these should start at code points k where k % 0xFC0 == 0 */ -typedef struct { - char ambiguous; /* if 0 look into entity */ - union { - struct { - const char *entity; /* may be NULL */ - unsigned short entity_len; - } ent; - const entity_multicodepoint_row *multicodepoint_table; - } data; -} entity_stage3_row; - -/* Calculate k & 0x3F Use as offset */ -typedef const entity_stage3_row *entity_stage2_row; /* 64 elements */ - -/* Calculate k & 0xFC0 >> 6. Use as offset */ -typedef const entity_stage3_row *const *entity_stage1_row; /* 64 elements */ - -/* For stage 1, Calculate k & 0xFFF000 >> 3*4. - * If larger than 1D, we have no mapping. Otherwise lookup that index */ - -typedef struct { - const entity_stage1_row *ms_table; - /* for tables with only basic entities, this member is to be accessed - * directly for better performance: */ - const entity_stage3_row *table; -} entity_table_opt; - -/* Replaced "GT" > "gt" and "QUOT" > "quot" for consistency's sake. */ - -/* {{{ Start of HTML5 multi-stage table for codepoint -> entity */ - -/* {{{ Start of double code point tables for HTML5 */ - -static const entity_multicodepoint_row multi_cp_html5_0003C[] = { - { {"lt", 01, 2} }, - { {"nvlt", 0x020D2, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0003D[] = { - { {"equals", 01, 6} }, - { {"bne", 0x020E5, 3} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0003E[] = { - { {"gt", 01, 2} }, - { {"nvgt", 0x020D2, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_00066[] = { - { {NULL, 01, 0} }, - { {"fjlig", 0x0006A, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0205F[] = { - { {"MediumSpace", 01, 11} }, - { {"ThickSpace", 0x0200A, 10} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0219D[] = { - { {"rarrw", 01, 5} }, - { {"nrarrw", 0x00338, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02202[] = { - { {"part", 01, 4} }, - { {"npart", 0x00338, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02220[] = { - { {"angle", 01, 5} }, - { {"nang", 0x020D2, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02229[] = { - { {"cap", 01, 3} }, - { {"caps", 0x0FE00, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0222A[] = { - { {"cup", 01, 3} }, - { {"cups", 0x0FE00, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0223C[] = { - { {"sim", 01, 3} }, - { {"nvsim", 0x020D2, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0223D[] = { - { {"bsim", 01, 4} }, - { {"race", 0x00331, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0223E[] = { - { {"ac", 01, 2} }, - { {"acE", 0x00333, 3} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02242[] = { - { {"esim", 01, 4} }, - { {"nesim", 0x00338, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0224B[] = { - { {"apid", 01, 4} }, - { {"napid", 0x00338, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0224D[] = { - { {"CupCap", 01, 6} }, - { {"nvap", 0x020D2, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0224E[] = { - { {"bump", 01, 4} }, - { {"nbump", 0x00338, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0224F[] = { - { {"HumpEqual", 01, 9} }, - { {"nbumpe", 0x00338, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02250[] = { - { {"esdot", 01, 5} }, - { {"nedot", 0x00338, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02261[] = { - { {"Congruent", 01, 9} }, - { {"bnequiv", 0x020E5, 7} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02264[] = { - { {"leq", 01, 3} }, - { {"nvle", 0x020D2, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02265[] = { - { {"ge", 01, 2} }, - { {"nvge", 0x020D2, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02266[] = { - { {"lE", 01, 2} }, - { {"nlE", 0x00338, 3} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02267[] = { - { {"geqq", 01, 4} }, - { {"NotGreaterFullEqual", 0x00338, 19} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02268[] = { - { {"lneqq", 01, 5} }, - { {"lvertneqq", 0x0FE00, 9} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02269[] = { - { {"gneqq", 01, 5} }, - { {"gvertneqq", 0x0FE00, 9} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0226A[] = { - { {"ll", 02, 2} }, - { {"nLtv", 0x00338, 4} }, - { {"nLt", 0x020D2, 3} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0226B[] = { - { {"gg", 02, 2} }, - { {"NotGreaterGreater", 0x00338, 17} }, - { {"nGt", 0x020D2, 3} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0227F[] = { - { {"SucceedsTilde", 01, 13} }, - { {"NotSucceedsTilde", 0x00338, 16} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02282[] = { - { {"sub", 01, 3} }, - { {"vnsub", 0x020D2, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02283[] = { - { {"sup", 01, 3} }, - { {"nsupset", 0x020D2, 7} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0228A[] = { - { {"subsetneq", 01, 9} }, - { {"vsubne", 0x0FE00, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0228B[] = { - { {"supsetneq", 01, 9} }, - { {"vsupne", 0x0FE00, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_0228F[] = { - { {"sqsub", 01, 5} }, - { {"NotSquareSubset", 0x00338, 15} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02290[] = { - { {"sqsupset", 01, 8} }, - { {"NotSquareSuperset", 0x00338, 17} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02293[] = { - { {"sqcap", 01, 5} }, - { {"sqcaps", 0x0FE00, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02294[] = { - { {"sqcup", 01, 5} }, - { {"sqcups", 0x0FE00, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022B4[] = { - { {"LeftTriangleEqual", 01, 17} }, - { {"nvltrie", 0x020D2, 7} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022B5[] = { - { {"RightTriangleEqual", 01, 18} }, - { {"nvrtrie", 0x020D2, 7} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022D8[] = { - { {"Ll", 01, 2} }, - { {"nLl", 0x00338, 3} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022D9[] = { - { {"Gg", 01, 2} }, - { {"nGg", 0x00338, 3} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022DA[] = { - { {"lesseqgtr", 01, 9} }, - { {"lesg", 0x0FE00, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022DB[] = { - { {"gtreqless", 01, 9} }, - { {"gesl", 0x0FE00, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022F5[] = { - { {"isindot", 01, 7} }, - { {"notindot", 0x00338, 8} }, -}; -static const entity_multicodepoint_row multi_cp_html5_022F9[] = { - { {"isinE", 01, 5} }, - { {"notinE", 0x00338, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02933[] = { - { {"rarrc", 01, 5} }, - { {"nrarrc", 0x00338, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_029CF[] = { - { {"LeftTriangleBar", 01, 15} }, - { {"NotLeftTriangleBar", 0x00338, 18} }, -}; -static const entity_multicodepoint_row multi_cp_html5_029D0[] = { - { {"RightTriangleBar", 01, 16} }, - { {"NotRightTriangleBar", 0x00338, 19} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02A6D[] = { - { {"congdot", 01, 7} }, - { {"ncongdot", 0x00338, 8} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02A70[] = { - { {"apE", 01, 3} }, - { {"napE", 0x00338, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02A7D[] = { - { {"les", 01, 3} }, - { {"nles", 0x00338, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02A7E[] = { - { {"ges", 01, 3} }, - { {"nges", 0x00338, 4} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AA1[] = { - { {"LessLess", 01, 8} }, - { {"NotNestedLessLess", 0x00338, 17} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AA2[] = { - { {"GreaterGreater", 01, 14} }, - { {"NotNestedGreaterGreater", 0x00338, 23} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AAC[] = { - { {"smte", 01, 4} }, - { {"smtes", 0x0FE00, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AAD[] = { - { {"late", 01, 4} }, - { {"lates", 0x0FE00, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AAF[] = { - { {"preceq", 01, 6} }, - { {"NotPrecedesEqual", 0x00338, 16} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AB0[] = { - { {"SucceedsEqual", 01, 13} }, - { {"NotSucceedsEqual", 0x00338, 16} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AC5[] = { - { {"subE", 01, 4} }, - { {"nsubE", 0x00338, 5} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AC6[] = { - { {"supseteqq", 01, 9} }, - { {"nsupseteqq", 0x00338, 10} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02ACB[] = { - { {"subsetneqq", 01, 10} }, - { {"vsubnE", 0x0FE00, 6} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02ACC[] = { - { {"supnE", 01, 5} }, - { {"varsupsetneqq", 0x0FE00, 13} }, -}; -static const entity_multicodepoint_row multi_cp_html5_02AFD[] = { - { {"parsl", 01, 5} }, - { {"nparsl", 0x020E5, 6} }, -}; - -/* End of double code point tables }}} */ - -/* {{{ Stage 3 Tables for HTML5 */ - -static const entity_stage3_row empty_stage3_table[] = { - /* 64 elements */ - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; -static const entity_stage3_row stage3_table_html5_00000[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"Tab", 3} } }, {0, { {"NewLine", 7} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"excl", 4} } }, {0, { {"quot", 4} } }, {0, { {"num", 3} } }, - {0, { {"dollar", 6} } }, {0, { {"percnt", 6} } }, {0, { {"amp", 3} } }, {0, { {"apos", 4} } }, - {0, { {"lpar", 4} } }, {0, { {"rpar", 4} } }, {0, { {"ast", 3} } }, {0, { {"plus", 4} } }, - {0, { {"comma", 5} } }, {0, { {NULL, 0} } }, {0, { {"period", 6} } }, {0, { {"sol", 3} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"colon", 5} } }, {0, { {"semi", 4} } }, - {1, { {(void *)multi_cp_html5_0003C, 0} } }, {1, { {(void *)multi_cp_html5_0003D, 0} } }, {1, { {(void *)multi_cp_html5_0003E, 0} } }, {0, { {"quest", 5} } }, -}; - -static const entity_stage3_row stage3_table_html5_00040[] = { - {0, { {"commat", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lbrack", 6} } }, - {0, { {"bsol", 4} } }, {0, { {"rsqb", 4} } }, {0, { {"Hat", 3} } }, {0, { {"lowbar", 6} } }, - {0, { {"grave", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_00066, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lbrace", 6} } }, - {0, { {"vert", 4} } }, {0, { {"rcub", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_00080[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"nbsp", 4} } }, {0, { {"iexcl", 5} } }, {0, { {"cent", 4} } }, {0, { {"pound", 5} } }, - {0, { {"curren", 6} } }, {0, { {"yen", 3} } }, {0, { {"brvbar", 6} } }, {0, { {"sect", 4} } }, - {0, { {"DoubleDot", 9} } }, {0, { {"copy", 4} } }, {0, { {"ordf", 4} } }, {0, { {"laquo", 5} } }, - {0, { {"not", 3} } }, {0, { {"shy", 3} } }, {0, { {"reg", 3} } }, {0, { {"macr", 4} } }, - {0, { {"deg", 3} } }, {0, { {"plusmn", 6} } }, {0, { {"sup2", 4} } }, {0, { {"sup3", 4} } }, - {0, { {"DiacriticalAcute", 16} } }, {0, { {"micro", 5} } }, {0, { {"para", 4} } }, {0, { {"CenterDot", 9} } }, - {0, { {"Cedilla", 7} } }, {0, { {"sup1", 4} } }, {0, { {"ordm", 4} } }, {0, { {"raquo", 5} } }, - {0, { {"frac14", 6} } }, {0, { {"half", 4} } }, {0, { {"frac34", 6} } }, {0, { {"iquest", 6} } }, -}; - -static const entity_stage3_row stage3_table_html5_000C0[] = { - {0, { {"Agrave", 6} } }, {0, { {"Aacute", 6} } }, {0, { {"Acirc", 5} } }, {0, { {"Atilde", 6} } }, - {0, { {"Auml", 4} } }, {0, { {"Aring", 5} } }, {0, { {"AElig", 5} } }, {0, { {"Ccedil", 6} } }, - {0, { {"Egrave", 6} } }, {0, { {"Eacute", 6} } }, {0, { {"Ecirc", 5} } }, {0, { {"Euml", 4} } }, - {0, { {"Igrave", 6} } }, {0, { {"Iacute", 6} } }, {0, { {"Icirc", 5} } }, {0, { {"Iuml", 4} } }, - {0, { {"ETH", 3} } }, {0, { {"Ntilde", 6} } }, {0, { {"Ograve", 6} } }, {0, { {"Oacute", 6} } }, - {0, { {"Ocirc", 5} } }, {0, { {"Otilde", 6} } }, {0, { {"Ouml", 4} } }, {0, { {"times", 5} } }, - {0, { {"Oslash", 6} } }, {0, { {"Ugrave", 6} } }, {0, { {"Uacute", 6} } }, {0, { {"Ucirc", 5} } }, - {0, { {"Uuml", 4} } }, {0, { {"Yacute", 6} } }, {0, { {"THORN", 5} } }, {0, { {"szlig", 5} } }, - {0, { {"agrave", 6} } }, {0, { {"aacute", 6} } }, {0, { {"acirc", 5} } }, {0, { {"atilde", 6} } }, - {0, { {"auml", 4} } }, {0, { {"aring", 5} } }, {0, { {"aelig", 5} } }, {0, { {"ccedil", 6} } }, - {0, { {"egrave", 6} } }, {0, { {"eacute", 6} } }, {0, { {"ecirc", 5} } }, {0, { {"euml", 4} } }, - {0, { {"igrave", 6} } }, {0, { {"iacute", 6} } }, {0, { {"icirc", 5} } }, {0, { {"iuml", 4} } }, - {0, { {"eth", 3} } }, {0, { {"ntilde", 6} } }, {0, { {"ograve", 6} } }, {0, { {"oacute", 6} } }, - {0, { {"ocirc", 5} } }, {0, { {"otilde", 6} } }, {0, { {"ouml", 4} } }, {0, { {"divide", 6} } }, - {0, { {"oslash", 6} } }, {0, { {"ugrave", 6} } }, {0, { {"uacute", 6} } }, {0, { {"ucirc", 5} } }, - {0, { {"uuml", 4} } }, {0, { {"yacute", 6} } }, {0, { {"thorn", 5} } }, {0, { {"yuml", 4} } }, -}; - -static const entity_stage3_row stage3_table_html5_00100[] = { - {0, { {"Amacr", 5} } }, {0, { {"amacr", 5} } }, {0, { {"Abreve", 6} } }, {0, { {"abreve", 6} } }, - {0, { {"Aogon", 5} } }, {0, { {"aogon", 5} } }, {0, { {"Cacute", 6} } }, {0, { {"cacute", 6} } }, - {0, { {"Ccirc", 5} } }, {0, { {"ccirc", 5} } }, {0, { {"Cdot", 4} } }, {0, { {"cdot", 4} } }, - {0, { {"Ccaron", 6} } }, {0, { {"ccaron", 6} } }, {0, { {"Dcaron", 6} } }, {0, { {"dcaron", 6} } }, - {0, { {"Dstrok", 6} } }, {0, { {"dstrok", 6} } }, {0, { {"Emacr", 5} } }, {0, { {"emacr", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"Edot", 4} } }, {0, { {"edot", 4} } }, - {0, { {"Eogon", 5} } }, {0, { {"eogon", 5} } }, {0, { {"Ecaron", 6} } }, {0, { {"ecaron", 6} } }, - {0, { {"Gcirc", 5} } }, {0, { {"gcirc", 5} } }, {0, { {"Gbreve", 6} } }, {0, { {"gbreve", 6} } }, - {0, { {"Gdot", 4} } }, {0, { {"gdot", 4} } }, {0, { {"Gcedil", 6} } }, {0, { {NULL, 0} } }, - {0, { {"Hcirc", 5} } }, {0, { {"hcirc", 5} } }, {0, { {"Hstrok", 6} } }, {0, { {"hstrok", 6} } }, - {0, { {"Itilde", 6} } }, {0, { {"itilde", 6} } }, {0, { {"Imacr", 5} } }, {0, { {"imacr", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"Iogon", 5} } }, {0, { {"iogon", 5} } }, - {0, { {"Idot", 4} } }, {0, { {"inodot", 6} } }, {0, { {"IJlig", 5} } }, {0, { {"ijlig", 5} } }, - {0, { {"Jcirc", 5} } }, {0, { {"jcirc", 5} } }, {0, { {"Kcedil", 6} } }, {0, { {"kcedil", 6} } }, - {0, { {"kgreen", 6} } }, {0, { {"Lacute", 6} } }, {0, { {"lacute", 6} } }, {0, { {"Lcedil", 6} } }, - {0, { {"lcedil", 6} } }, {0, { {"Lcaron", 6} } }, {0, { {"lcaron", 6} } }, {0, { {"Lmidot", 6} } }, -}; - -static const entity_stage3_row stage3_table_html5_00140[] = { - {0, { {"lmidot", 6} } }, {0, { {"Lstrok", 6} } }, {0, { {"lstrok", 6} } }, {0, { {"Nacute", 6} } }, - {0, { {"nacute", 6} } }, {0, { {"Ncedil", 6} } }, {0, { {"ncedil", 6} } }, {0, { {"Ncaron", 6} } }, - {0, { {"ncaron", 6} } }, {0, { {"napos", 5} } }, {0, { {"ENG", 3} } }, {0, { {"eng", 3} } }, - {0, { {"Omacr", 5} } }, {0, { {"omacr", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Odblac", 6} } }, {0, { {"odblac", 6} } }, {0, { {"OElig", 5} } }, {0, { {"oelig", 5} } }, - {0, { {"Racute", 6} } }, {0, { {"racute", 6} } }, {0, { {"Rcedil", 6} } }, {0, { {"rcedil", 6} } }, - {0, { {"Rcaron", 6} } }, {0, { {"rcaron", 6} } }, {0, { {"Sacute", 6} } }, {0, { {"sacute", 6} } }, - {0, { {"Scirc", 5} } }, {0, { {"scirc", 5} } }, {0, { {"Scedil", 6} } }, {0, { {"scedil", 6} } }, - {0, { {"Scaron", 6} } }, {0, { {"scaron", 6} } }, {0, { {"Tcedil", 6} } }, {0, { {"tcedil", 6} } }, - {0, { {"Tcaron", 6} } }, {0, { {"tcaron", 6} } }, {0, { {"Tstrok", 6} } }, {0, { {"tstrok", 6} } }, - {0, { {"Utilde", 6} } }, {0, { {"utilde", 6} } }, {0, { {"Umacr", 5} } }, {0, { {"umacr", 5} } }, - {0, { {"Ubreve", 6} } }, {0, { {"ubreve", 6} } }, {0, { {"Uring", 5} } }, {0, { {"uring", 5} } }, - {0, { {"Udblac", 6} } }, {0, { {"udblac", 6} } }, {0, { {"Uogon", 5} } }, {0, { {"uogon", 5} } }, - {0, { {"Wcirc", 5} } }, {0, { {"wcirc", 5} } }, {0, { {"Ycirc", 5} } }, {0, { {"ycirc", 5} } }, - {0, { {"Yuml", 4} } }, {0, { {"Zacute", 6} } }, {0, { {"zacute", 6} } }, {0, { {"Zdot", 4} } }, - {0, { {"zdot", 4} } }, {0, { {"Zcaron", 6} } }, {0, { {"zcaron", 6} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_00180[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"fnof", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"imped", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_001C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"gacute", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_00200[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"jmath", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_002C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"circ", 4} } }, {0, { {"Hacek", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Breve", 5} } }, {0, { {"dot", 3} } }, {0, { {"ring", 4} } }, {0, { {"ogon", 4} } }, - {0, { {"DiacriticalTilde", 16} } }, {0, { {"DiacriticalDoubleAcute", 22} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_00300[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"DownBreve", 9} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_00380[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"Alpha", 5} } }, {0, { {"Beta", 4} } }, {0, { {"Gamma", 5} } }, - {0, { {"Delta", 5} } }, {0, { {"Epsilon", 7} } }, {0, { {"Zeta", 4} } }, {0, { {"Eta", 3} } }, - {0, { {"Theta", 5} } }, {0, { {"Iota", 4} } }, {0, { {"Kappa", 5} } }, {0, { {"Lambda", 6} } }, - {0, { {"Mu", 2} } }, {0, { {"Nu", 2} } }, {0, { {"Xi", 2} } }, {0, { {"Omicron", 7} } }, - {0, { {"Pi", 2} } }, {0, { {"Rho", 3} } }, {0, { {NULL, 0} } }, {0, { {"Sigma", 5} } }, - {0, { {"Tau", 3} } }, {0, { {"Upsilon", 7} } }, {0, { {"Phi", 3} } }, {0, { {"Chi", 3} } }, - {0, { {"Psi", 3} } }, {0, { {"Omega", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"alpha", 5} } }, {0, { {"beta", 4} } }, {0, { {"gamma", 5} } }, - {0, { {"delta", 5} } }, {0, { {"epsi", 4} } }, {0, { {"zeta", 4} } }, {0, { {"eta", 3} } }, - {0, { {"theta", 5} } }, {0, { {"iota", 4} } }, {0, { {"kappa", 5} } }, {0, { {"lambda", 6} } }, - {0, { {"mu", 2} } }, {0, { {"nu", 2} } }, {0, { {"xi", 2} } }, {0, { {"omicron", 7} } }, -}; - -static const entity_stage3_row stage3_table_html5_003C0[] = { - {0, { {"pi", 2} } }, {0, { {"rho", 3} } }, {0, { {"sigmav", 6} } }, {0, { {"sigma", 5} } }, - {0, { {"tau", 3} } }, {0, { {"upsi", 4} } }, {0, { {"phi", 3} } }, {0, { {"chi", 3} } }, - {0, { {"psi", 3} } }, {0, { {"omega", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"thetasym", 8} } }, {0, { {"upsih", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"straightphi", 11} } }, {0, { {"piv", 3} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Gammad", 6} } }, {0, { {"gammad", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"varkappa", 8} } }, {0, { {"rhov", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"straightepsilon", 15} } }, {0, { {"backepsilon", 11} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_00400[] = { - {0, { {NULL, 0} } }, {0, { {"IOcy", 4} } }, {0, { {"DJcy", 4} } }, {0, { {"GJcy", 4} } }, - {0, { {"Jukcy", 5} } }, {0, { {"DScy", 4} } }, {0, { {"Iukcy", 5} } }, {0, { {"YIcy", 4} } }, - {0, { {"Jsercy", 6} } }, {0, { {"LJcy", 4} } }, {0, { {"NJcy", 4} } }, {0, { {"TSHcy", 5} } }, - {0, { {"KJcy", 4} } }, {0, { {NULL, 0} } }, {0, { {"Ubrcy", 5} } }, {0, { {"DZcy", 4} } }, - {0, { {"Acy", 3} } }, {0, { {"Bcy", 3} } }, {0, { {"Vcy", 3} } }, {0, { {"Gcy", 3} } }, - {0, { {"Dcy", 3} } }, {0, { {"IEcy", 4} } }, {0, { {"ZHcy", 4} } }, {0, { {"Zcy", 3} } }, - {0, { {"Icy", 3} } }, {0, { {"Jcy", 3} } }, {0, { {"Kcy", 3} } }, {0, { {"Lcy", 3} } }, - {0, { {"Mcy", 3} } }, {0, { {"Ncy", 3} } }, {0, { {"Ocy", 3} } }, {0, { {"Pcy", 3} } }, - {0, { {"Rcy", 3} } }, {0, { {"Scy", 3} } }, {0, { {"Tcy", 3} } }, {0, { {"Ucy", 3} } }, - {0, { {"Fcy", 3} } }, {0, { {"KHcy", 4} } }, {0, { {"TScy", 4} } }, {0, { {"CHcy", 4} } }, - {0, { {"SHcy", 4} } }, {0, { {"SHCHcy", 6} } }, {0, { {"HARDcy", 6} } }, {0, { {"Ycy", 3} } }, - {0, { {"SOFTcy", 6} } }, {0, { {"Ecy", 3} } }, {0, { {"YUcy", 4} } }, {0, { {"YAcy", 4} } }, - {0, { {"acy", 3} } }, {0, { {"bcy", 3} } }, {0, { {"vcy", 3} } }, {0, { {"gcy", 3} } }, - {0, { {"dcy", 3} } }, {0, { {"iecy", 4} } }, {0, { {"zhcy", 4} } }, {0, { {"zcy", 3} } }, - {0, { {"icy", 3} } }, {0, { {"jcy", 3} } }, {0, { {"kcy", 3} } }, {0, { {"lcy", 3} } }, - {0, { {"mcy", 3} } }, {0, { {"ncy", 3} } }, {0, { {"ocy", 3} } }, {0, { {"pcy", 3} } }, -}; - -static const entity_stage3_row stage3_table_html5_00440[] = { - {0, { {"rcy", 3} } }, {0, { {"scy", 3} } }, {0, { {"tcy", 3} } }, {0, { {"ucy", 3} } }, - {0, { {"fcy", 3} } }, {0, { {"khcy", 4} } }, {0, { {"tscy", 4} } }, {0, { {"chcy", 4} } }, - {0, { {"shcy", 4} } }, {0, { {"shchcy", 6} } }, {0, { {"hardcy", 6} } }, {0, { {"ycy", 3} } }, - {0, { {"softcy", 6} } }, {0, { {"ecy", 3} } }, {0, { {"yucy", 4} } }, {0, { {"yacy", 4} } }, - {0, { {NULL, 0} } }, {0, { {"iocy", 4} } }, {0, { {"djcy", 4} } }, {0, { {"gjcy", 4} } }, - {0, { {"jukcy", 5} } }, {0, { {"dscy", 4} } }, {0, { {"iukcy", 5} } }, {0, { {"yicy", 4} } }, - {0, { {"jsercy", 6} } }, {0, { {"ljcy", 4} } }, {0, { {"njcy", 4} } }, {0, { {"tshcy", 5} } }, - {0, { {"kjcy", 4} } }, {0, { {NULL, 0} } }, {0, { {"ubrcy", 5} } }, {0, { {"dzcy", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02000[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"ensp", 4} } }, {0, { {"emsp", 4} } }, - {0, { {"emsp13", 6} } }, {0, { {"emsp14", 6} } }, {0, { {NULL, 0} } }, {0, { {"numsp", 5} } }, - {0, { {"puncsp", 6} } }, {0, { {"ThinSpace", 9} } }, {0, { {"hairsp", 6} } }, {0, { {"ZeroWidthSpace", 14} } }, - {0, { {"zwnj", 4} } }, {0, { {"zwj", 3} } }, {0, { {"lrm", 3} } }, {0, { {"rlm", 3} } }, - {0, { {"hyphen", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"ndash", 5} } }, - {0, { {"mdash", 5} } }, {0, { {"horbar", 6} } }, {0, { {"Verbar", 6} } }, {0, { {NULL, 0} } }, - {0, { {"OpenCurlyQuote", 14} } }, {0, { {"rsquo", 5} } }, {0, { {"sbquo", 5} } }, {0, { {NULL, 0} } }, - {0, { {"OpenCurlyDoubleQuote", 20} } }, {0, { {"rdquo", 5} } }, {0, { {"bdquo", 5} } }, {0, { {NULL, 0} } }, - {0, { {"dagger", 6} } }, {0, { {"Dagger", 6} } }, {0, { {"bull", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"nldr", 4} } }, {0, { {"hellip", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"permil", 6} } }, {0, { {"pertenk", 7} } }, {0, { {"prime", 5} } }, {0, { {"Prime", 5} } }, - {0, { {"tprime", 6} } }, {0, { {"backprime", 9} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"lsaquo", 6} } }, {0, { {"rsaquo", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"oline", 5} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02040[] = { - {0, { {NULL, 0} } }, {0, { {"caret", 5} } }, {0, { {NULL, 0} } }, {0, { {"hybull", 6} } }, - {0, { {"frasl", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"bsemi", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"qprime", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_0205F, 0} } }, - {0, { {"NoBreak", 7} } }, {0, { {"af", 2} } }, {0, { {"InvisibleTimes", 14} } }, {0, { {"ic", 2} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02080[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"euro", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_020C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"TripleDot", 9} } }, - {0, { {"DotDot", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02100[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"complexes", 9} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"incare", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"gscr", 4} } }, {0, { {"HilbertSpace", 12} } }, - {0, { {"Hfr", 3} } }, {0, { {"Hopf", 4} } }, {0, { {"planckh", 7} } }, {0, { {"planck", 6} } }, - {0, { {"imagline", 8} } }, {0, { {"Ifr", 3} } }, {0, { {"lagran", 6} } }, {0, { {"ell", 3} } }, - {0, { {NULL, 0} } }, {0, { {"naturals", 8} } }, {0, { {"numero", 6} } }, {0, { {"copysr", 6} } }, - {0, { {"wp", 2} } }, {0, { {"primes", 6} } }, {0, { {"rationals", 9} } }, {0, { {"realine", 7} } }, - {0, { {"Rfr", 3} } }, {0, { {"Ropf", 4} } }, {0, { {"rx", 2} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"trade", 5} } }, {0, { {NULL, 0} } }, - {0, { {"Zopf", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"mho", 3} } }, - {0, { {"Zfr", 3} } }, {0, { {"iiota", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Bscr", 4} } }, {0, { {"Cfr", 3} } }, {0, { {NULL, 0} } }, {0, { {"escr", 4} } }, - {0, { {"expectation", 11} } }, {0, { {"Fouriertrf", 10} } }, {0, { {NULL, 0} } }, {0, { {"Mellintrf", 9} } }, - {0, { {"orderof", 7} } }, {0, { {"aleph", 5} } }, {0, { {"beth", 4} } }, {0, { {"gimel", 5} } }, - {0, { {"daleth", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02140[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"CapitalDifferentialD", 20} } }, {0, { {"DifferentialD", 13} } }, {0, { {"exponentiale", 12} } }, - {0, { {"ImaginaryI", 10} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"frac13", 6} } }, - {0, { {"frac23", 6} } }, {0, { {"frac15", 6} } }, {0, { {"frac25", 6} } }, {0, { {"frac35", 6} } }, - {0, { {"frac45", 6} } }, {0, { {"frac16", 6} } }, {0, { {"frac56", 6} } }, {0, { {"frac18", 6} } }, - {0, { {"frac38", 6} } }, {0, { {"frac58", 6} } }, {0, { {"frac78", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02180[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"larr", 4} } }, {0, { {"uarr", 4} } }, {0, { {"srarr", 5} } }, {0, { {"darr", 4} } }, - {0, { {"harr", 4} } }, {0, { {"UpDownArrow", 11} } }, {0, { {"nwarrow", 7} } }, {0, { {"UpperRightArrow", 15} } }, - {0, { {"LowerRightArrow", 15} } }, {0, { {"swarr", 5} } }, {0, { {"nleftarrow", 10} } }, {0, { {"nrarr", 5} } }, - {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_0219D, 0} } }, {0, { {"Larr", 4} } }, {0, { {"Uarr", 4} } }, - {0, { {"twoheadrightarrow", 17} } }, {0, { {"Darr", 4} } }, {0, { {"larrtl", 6} } }, {0, { {"rarrtl", 6} } }, - {0, { {"LeftTeeArrow", 12} } }, {0, { {"UpTeeArrow", 10} } }, {0, { {"map", 3} } }, {0, { {"DownTeeArrow", 12} } }, - {0, { {NULL, 0} } }, {0, { {"larrhk", 6} } }, {0, { {"rarrhk", 6} } }, {0, { {"larrlp", 6} } }, - {0, { {"looparrowright", 14} } }, {0, { {"harrw", 5} } }, {0, { {"nleftrightarrow", 15} } }, {0, { {NULL, 0} } }, - {0, { {"Lsh", 3} } }, {0, { {"rsh", 3} } }, {0, { {"ldsh", 4} } }, {0, { {"rdsh", 4} } }, - {0, { {NULL, 0} } }, {0, { {"crarr", 5} } }, {0, { {"curvearrowleft", 14} } }, {0, { {"curarr", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"olarr", 5} } }, {0, { {"orarr", 5} } }, - {0, { {"leftharpoonup", 13} } }, {0, { {"leftharpoondown", 15} } }, {0, { {"RightUpVector", 13} } }, {0, { {"uharl", 5} } }, -}; - -static const entity_stage3_row stage3_table_html5_021C0[] = { - {0, { {"rharu", 5} } }, {0, { {"rhard", 5} } }, {0, { {"RightDownVector", 15} } }, {0, { {"dharl", 5} } }, - {0, { {"rightleftarrows", 15} } }, {0, { {"udarr", 5} } }, {0, { {"lrarr", 5} } }, {0, { {"llarr", 5} } }, - {0, { {"upuparrows", 10} } }, {0, { {"rrarr", 5} } }, {0, { {"downdownarrows", 14} } }, {0, { {"leftrightharpoons", 17} } }, - {0, { {"rightleftharpoons", 17} } }, {0, { {"nLeftarrow", 10} } }, {0, { {"nhArr", 5} } }, {0, { {"nrArr", 5} } }, - {0, { {"DoubleLeftArrow", 15} } }, {0, { {"DoubleUpArrow", 13} } }, {0, { {"Implies", 7} } }, {0, { {"Downarrow", 9} } }, - {0, { {"hArr", 4} } }, {0, { {"Updownarrow", 11} } }, {0, { {"nwArr", 5} } }, {0, { {"neArr", 5} } }, - {0, { {"seArr", 5} } }, {0, { {"swArr", 5} } }, {0, { {"lAarr", 5} } }, {0, { {"rAarr", 5} } }, - {0, { {NULL, 0} } }, {0, { {"zigrarr", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"LeftArrowBar", 12} } }, {0, { {"RightArrowBar", 13} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"DownArrowUpArrow", 16} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"loarr", 5} } }, {0, { {"roarr", 5} } }, {0, { {"hoarr", 5} } }, -}; - -static const entity_stage3_row stage3_table_html5_02200[] = { - {0, { {"forall", 6} } }, {0, { {"comp", 4} } }, {1, { {(void *)multi_cp_html5_02202, 0} } }, {0, { {"Exists", 6} } }, - {0, { {"nexist", 6} } }, {0, { {"empty", 5} } }, {0, { {NULL, 0} } }, {0, { {"nabla", 5} } }, - {0, { {"isinv", 5} } }, {0, { {"notin", 5} } }, {0, { {NULL, 0} } }, {0, { {"ReverseElement", 14} } }, - {0, { {"notniva", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"prod", 4} } }, - {0, { {"Coproduct", 9} } }, {0, { {"sum", 3} } }, {0, { {"minus", 5} } }, {0, { {"MinusPlus", 9} } }, - {0, { {"plusdo", 6} } }, {0, { {NULL, 0} } }, {0, { {"ssetmn", 6} } }, {0, { {"lowast", 6} } }, - {0, { {"compfn", 6} } }, {0, { {NULL, 0} } }, {0, { {"Sqrt", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"prop", 4} } }, {0, { {"infin", 5} } }, {0, { {"angrt", 5} } }, - {1, { {(void *)multi_cp_html5_02220, 0} } }, {0, { {"angmsd", 6} } }, {0, { {"angsph", 6} } }, {0, { {"mid", 3} } }, - {0, { {"nshortmid", 9} } }, {0, { {"shortparallel", 13} } }, {0, { {"nparallel", 9} } }, {0, { {"and", 3} } }, - {0, { {"or", 2} } }, {1, { {(void *)multi_cp_html5_02229, 0} } }, {1, { {(void *)multi_cp_html5_0222A, 0} } }, {0, { {"Integral", 8} } }, - {0, { {"Int", 3} } }, {0, { {"tint", 4} } }, {0, { {"ContourIntegral", 15} } }, {0, { {"DoubleContourIntegral", 21} } }, - {0, { {"Cconint", 7} } }, {0, { {"cwint", 5} } }, {0, { {"cwconint", 8} } }, {0, { {"awconint", 8} } }, - {0, { {"there4", 6} } }, {0, { {"Because", 7} } }, {0, { {"ratio", 5} } }, {0, { {"Colon", 5} } }, - {0, { {"minusd", 6} } }, {0, { {NULL, 0} } }, {0, { {"mDDot", 5} } }, {0, { {"homtht", 6} } }, - {1, { {(void *)multi_cp_html5_0223C, 0} } }, {1, { {(void *)multi_cp_html5_0223D, 0} } }, {1, { {(void *)multi_cp_html5_0223E, 0} } }, {0, { {"acd", 3} } }, -}; - -static const entity_stage3_row stage3_table_html5_02240[] = { - {0, { {"wr", 2} } }, {0, { {"NotTilde", 8} } }, {1, { {(void *)multi_cp_html5_02242, 0} } }, {0, { {"simeq", 5} } }, - {0, { {"nsime", 5} } }, {0, { {"TildeFullEqual", 14} } }, {0, { {"simne", 5} } }, {0, { {"ncong", 5} } }, - {0, { {"approx", 6} } }, {0, { {"napprox", 7} } }, {0, { {"ape", 3} } }, {1, { {(void *)multi_cp_html5_0224B, 0} } }, - {0, { {"bcong", 5} } }, {1, { {(void *)multi_cp_html5_0224D, 0} } }, {1, { {(void *)multi_cp_html5_0224E, 0} } }, {1, { {(void *)multi_cp_html5_0224F, 0} } }, - {1, { {(void *)multi_cp_html5_02250, 0} } }, {0, { {"doteqdot", 8} } }, {0, { {"fallingdotseq", 13} } }, {0, { {"risingdotseq", 12} } }, - {0, { {"coloneq", 7} } }, {0, { {"eqcolon", 7} } }, {0, { {"ecir", 4} } }, {0, { {"circeq", 6} } }, - {0, { {NULL, 0} } }, {0, { {"wedgeq", 6} } }, {0, { {"veeeq", 5} } }, {0, { {NULL, 0} } }, - {0, { {"triangleq", 9} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"equest", 6} } }, - {0, { {"NotEqual", 8} } }, {1, { {(void *)multi_cp_html5_02261, 0} } }, {0, { {"NotCongruent", 12} } }, {0, { {NULL, 0} } }, - {1, { {(void *)multi_cp_html5_02264, 0} } }, {1, { {(void *)multi_cp_html5_02265, 0} } }, {1, { {(void *)multi_cp_html5_02266, 0} } }, {1, { {(void *)multi_cp_html5_02267, 0} } }, - {1, { {(void *)multi_cp_html5_02268, 0} } }, {1, { {(void *)multi_cp_html5_02269, 0} } }, {1, { {(void *)multi_cp_html5_0226A, 0} } }, {1, { {(void *)multi_cp_html5_0226B, 0} } }, - {0, { {"between", 7} } }, {0, { {"NotCupCap", 9} } }, {0, { {"NotLess", 7} } }, {0, { {"ngtr", 4} } }, - {0, { {"NotLessEqual", 12} } }, {0, { {"ngeq", 4} } }, {0, { {"LessTilde", 9} } }, {0, { {"GreaterTilde", 12} } }, - {0, { {"nlsim", 5} } }, {0, { {"ngsim", 5} } }, {0, { {"lessgtr", 7} } }, {0, { {"gl", 2} } }, - {0, { {"ntlg", 4} } }, {0, { {"NotGreaterLess", 14} } }, {0, { {"prec", 4} } }, {0, { {"succ", 4} } }, - {0, { {"PrecedesSlantEqual", 18} } }, {0, { {"succcurlyeq", 11} } }, {0, { {"precsim", 7} } }, {1, { {(void *)multi_cp_html5_0227F, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02280[] = { - {0, { {"npr", 3} } }, {0, { {"NotSucceeds", 11} } }, {1, { {(void *)multi_cp_html5_02282, 0} } }, {1, { {(void *)multi_cp_html5_02283, 0} } }, - {0, { {"nsub", 4} } }, {0, { {"nsup", 4} } }, {0, { {"SubsetEqual", 11} } }, {0, { {"supe", 4} } }, - {0, { {"NotSubsetEqual", 14} } }, {0, { {"NotSupersetEqual", 16} } }, {1, { {(void *)multi_cp_html5_0228A, 0} } }, {1, { {(void *)multi_cp_html5_0228B, 0} } }, - {0, { {NULL, 0} } }, {0, { {"cupdot", 6} } }, {0, { {"UnionPlus", 9} } }, {1, { {(void *)multi_cp_html5_0228F, 0} } }, - {1, { {(void *)multi_cp_html5_02290, 0} } }, {0, { {"SquareSubsetEqual", 17} } }, {0, { {"SquareSupersetEqual", 19} } }, {1, { {(void *)multi_cp_html5_02293, 0} } }, - {1, { {(void *)multi_cp_html5_02294, 0} } }, {0, { {"CirclePlus", 10} } }, {0, { {"ominus", 6} } }, {0, { {"CircleTimes", 11} } }, - {0, { {"osol", 4} } }, {0, { {"CircleDot", 9} } }, {0, { {"ocir", 4} } }, {0, { {"oast", 4} } }, - {0, { {NULL, 0} } }, {0, { {"odash", 5} } }, {0, { {"boxplus", 7} } }, {0, { {"boxminus", 8} } }, - {0, { {"timesb", 6} } }, {0, { {"sdotb", 5} } }, {0, { {"vdash", 5} } }, {0, { {"dashv", 5} } }, - {0, { {"DownTee", 7} } }, {0, { {"perp", 4} } }, {0, { {NULL, 0} } }, {0, { {"models", 6} } }, - {0, { {"DoubleRightTee", 14} } }, {0, { {"Vdash", 5} } }, {0, { {"Vvdash", 6} } }, {0, { {"VDash", 5} } }, - {0, { {"nvdash", 6} } }, {0, { {"nvDash", 6} } }, {0, { {"nVdash", 6} } }, {0, { {"nVDash", 6} } }, - {0, { {"prurel", 6} } }, {0, { {NULL, 0} } }, {0, { {"vartriangleleft", 15} } }, {0, { {"vrtri", 5} } }, - {1, { {(void *)multi_cp_html5_022B4, 0} } }, {1, { {(void *)multi_cp_html5_022B5, 0} } }, {0, { {"origof", 6} } }, {0, { {"imof", 4} } }, - {0, { {"mumap", 5} } }, {0, { {"hercon", 6} } }, {0, { {"intcal", 6} } }, {0, { {"veebar", 6} } }, - {0, { {NULL, 0} } }, {0, { {"barvee", 6} } }, {0, { {"angrtvb", 7} } }, {0, { {"lrtri", 5} } }, -}; - -static const entity_stage3_row stage3_table_html5_022C0[] = { - {0, { {"xwedge", 6} } }, {0, { {"xvee", 4} } }, {0, { {"bigcap", 6} } }, {0, { {"bigcup", 6} } }, - {0, { {"diamond", 7} } }, {0, { {"sdot", 4} } }, {0, { {"Star", 4} } }, {0, { {"divonx", 6} } }, - {0, { {"bowtie", 6} } }, {0, { {"ltimes", 6} } }, {0, { {"rtimes", 6} } }, {0, { {"lthree", 6} } }, - {0, { {"rthree", 6} } }, {0, { {"backsimeq", 9} } }, {0, { {"curlyvee", 8} } }, {0, { {"curlywedge", 10} } }, - {0, { {"Sub", 3} } }, {0, { {"Supset", 6} } }, {0, { {"Cap", 3} } }, {0, { {"Cup", 3} } }, - {0, { {"pitchfork", 9} } }, {0, { {"epar", 4} } }, {0, { {"lessdot", 7} } }, {0, { {"gtrdot", 6} } }, - {1, { {(void *)multi_cp_html5_022D8, 0} } }, {1, { {(void *)multi_cp_html5_022D9, 0} } }, {1, { {(void *)multi_cp_html5_022DA, 0} } }, {1, { {(void *)multi_cp_html5_022DB, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"curlyeqprec", 11} } }, {0, { {"cuesc", 5} } }, - {0, { {"NotPrecedesSlantEqual", 21} } }, {0, { {"NotSucceedsSlantEqual", 21} } }, {0, { {"NotSquareSubsetEqual", 20} } }, {0, { {"NotSquareSupersetEqual", 22} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lnsim", 5} } }, {0, { {"gnsim", 5} } }, - {0, { {"precnsim", 8} } }, {0, { {"scnsim", 6} } }, {0, { {"nltri", 5} } }, {0, { {"ntriangleright", 14} } }, - {0, { {"nltrie", 6} } }, {0, { {"NotRightTriangleEqual", 21} } }, {0, { {"vellip", 6} } }, {0, { {"ctdot", 5} } }, - {0, { {"utdot", 5} } }, {0, { {"dtdot", 5} } }, {0, { {"disin", 5} } }, {0, { {"isinsv", 6} } }, - {0, { {"isins", 5} } }, {1, { {(void *)multi_cp_html5_022F5, 0} } }, {0, { {"notinvc", 7} } }, {0, { {"notinvb", 7} } }, - {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_022F9, 0} } }, {0, { {"nisd", 4} } }, {0, { {"xnis", 4} } }, - {0, { {"nis", 3} } }, {0, { {"notnivc", 7} } }, {0, { {"notnivb", 7} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02300[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"barwed", 6} } }, {0, { {"doublebarwedge", 14} } }, {0, { {NULL, 0} } }, - {0, { {"lceil", 5} } }, {0, { {"RightCeiling", 12} } }, {0, { {"LeftFloor", 9} } }, {0, { {"RightFloor", 10} } }, - {0, { {"drcrop", 6} } }, {0, { {"dlcrop", 6} } }, {0, { {"urcrop", 6} } }, {0, { {"ulcrop", 6} } }, - {0, { {"bnot", 4} } }, {0, { {NULL, 0} } }, {0, { {"profline", 8} } }, {0, { {"profsurf", 8} } }, - {0, { {NULL, 0} } }, {0, { {"telrec", 6} } }, {0, { {"target", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"ulcorner", 8} } }, {0, { {"urcorner", 8} } }, {0, { {"llcorner", 8} } }, {0, { {"drcorn", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"frown", 5} } }, {0, { {"smile", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"cylcty", 6} } }, {0, { {"profalar", 8} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"topbot", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"ovbar", 5} } }, {0, { {NULL, 0} } }, {0, { {"solbar", 6} } }, -}; - -static const entity_stage3_row stage3_table_html5_02340[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"angzarr", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02380[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lmoust", 6} } }, {0, { {"rmoust", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"OverBracket", 11} } }, {0, { {"bbrk", 4} } }, {0, { {"bbrktbrk", 8} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_023C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"OverParenthesis", 15} } }, {0, { {"UnderParenthesis", 16} } }, {0, { {"OverBrace", 9} } }, {0, { {"UnderBrace", 10} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"trpezium", 8} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"elinters", 8} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02400[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"blank", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_024C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"oS", 2} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02500[] = { - {0, { {"HorizontalLine", 14} } }, {0, { {NULL, 0} } }, {0, { {"boxv", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxdr", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxdl", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxur", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxul", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxvr", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxvl", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxhd", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxhu", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxvh", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02540[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"boxH", 4} } }, {0, { {"boxV", 4} } }, {0, { {"boxdR", 5} } }, {0, { {"boxDr", 5} } }, - {0, { {"boxDR", 5} } }, {0, { {"boxdL", 5} } }, {0, { {"boxDl", 5} } }, {0, { {"boxDL", 5} } }, - {0, { {"boxuR", 5} } }, {0, { {"boxUr", 5} } }, {0, { {"boxUR", 5} } }, {0, { {"boxuL", 5} } }, - {0, { {"boxUl", 5} } }, {0, { {"boxUL", 5} } }, {0, { {"boxvR", 5} } }, {0, { {"boxVr", 5} } }, - {0, { {"boxVR", 5} } }, {0, { {"boxvL", 5} } }, {0, { {"boxVl", 5} } }, {0, { {"boxVL", 5} } }, - {0, { {"boxHd", 5} } }, {0, { {"boxhD", 5} } }, {0, { {"boxHD", 5} } }, {0, { {"boxHu", 5} } }, - {0, { {"boxhU", 5} } }, {0, { {"boxHU", 5} } }, {0, { {"boxvH", 5} } }, {0, { {"boxVh", 5} } }, - {0, { {"boxVH", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02580[] = { - {0, { {"uhblk", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lhblk", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"block", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"blk14", 5} } }, {0, { {"blk12", 5} } }, {0, { {"blk34", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"Square", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"squarf", 6} } }, {0, { {"EmptyVerySmallSquare", 20} } }, - {0, { {NULL, 0} } }, {0, { {"rect", 4} } }, {0, { {"marker", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"fltns", 5} } }, {0, { {NULL, 0} } }, {0, { {"bigtriangleup", 13} } }, - {0, { {"blacktriangle", 13} } }, {0, { {"triangle", 8} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"blacktriangleright", 18} } }, {0, { {"rtri", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"bigtriangledown", 15} } }, {0, { {"blacktriangledown", 17} } }, {0, { {"triangledown", 12} } }, -}; - -static const entity_stage3_row stage3_table_html5_025C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"blacktriangleleft", 17} } }, {0, { {"ltri", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lozenge", 7} } }, {0, { {"cir", 3} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"tridot", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"bigcirc", 7} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"ultri", 5} } }, {0, { {"urtri", 5} } }, {0, { {"lltri", 5} } }, {0, { {"EmptySmallSquare", 16} } }, - {0, { {"FilledSmallSquare", 17} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02600[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"starf", 5} } }, {0, { {"star", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"phone", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02640[] = { - {0, { {"female", 6} } }, {0, { {NULL, 0} } }, {0, { {"male", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"spadesuit", 9} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"clubs", 5} } }, - {0, { {NULL, 0} } }, {0, { {"hearts", 6} } }, {0, { {"diamondsuit", 11} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"sung", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"flat", 4} } }, {0, { {"natur", 5} } }, {0, { {"sharp", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02700[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"check", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"cross", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"maltese", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"sext", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02740[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"VerticalSeparator", 17} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lbbrk", 5} } }, {0, { {"rbbrk", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_027C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"bsolhsub", 8} } }, {0, { {"suphsol", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"LeftDoubleBracket", 17} } }, {0, { {"RightDoubleBracket", 18} } }, - {0, { {"langle", 6} } }, {0, { {"RightAngleBracket", 17} } }, {0, { {"Lang", 4} } }, {0, { {"Rang", 4} } }, - {0, { {"loang", 5} } }, {0, { {"roang", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"longleftarrow", 13} } }, {0, { {"LongRightArrow", 14} } }, {0, { {"LongLeftRightArrow", 18} } }, - {0, { {"xlArr", 5} } }, {0, { {"DoubleLongRightArrow", 20} } }, {0, { {"xhArr", 5} } }, {0, { {NULL, 0} } }, - {0, { {"xmap", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"dzigrarr", 8} } }, -}; - -static const entity_stage3_row stage3_table_html5_02900[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"nvlArr", 6} } }, {0, { {"nvrArr", 6} } }, - {0, { {"nvHarr", 6} } }, {0, { {"Map", 3} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lbarr", 5} } }, {0, { {"bkarow", 6} } }, {0, { {"lBarr", 5} } }, {0, { {"dbkarow", 7} } }, - {0, { {"drbkarow", 8} } }, {0, { {"DDotrahd", 8} } }, {0, { {"UpArrowBar", 10} } }, {0, { {"DownArrowBar", 12} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"Rarrtl", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"latail", 6} } }, {0, { {"ratail", 6} } }, {0, { {"lAtail", 6} } }, - {0, { {"rAtail", 6} } }, {0, { {"larrfs", 6} } }, {0, { {"rarrfs", 6} } }, {0, { {"larrbfs", 7} } }, - {0, { {"rarrbfs", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"nwarhk", 6} } }, - {0, { {"nearhk", 6} } }, {0, { {"searhk", 6} } }, {0, { {"swarhk", 6} } }, {0, { {"nwnear", 6} } }, - {0, { {"toea", 4} } }, {0, { {"seswar", 6} } }, {0, { {"swnwar", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_02933, 0} } }, - {0, { {NULL, 0} } }, {0, { {"cudarrr", 7} } }, {0, { {"ldca", 4} } }, {0, { {"rdca", 4} } }, - {0, { {"cudarrl", 7} } }, {0, { {"larrpl", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"curarrm", 7} } }, {0, { {"cularrp", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02940[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"rarrpl", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"harrcir", 7} } }, {0, { {"Uarrocir", 8} } }, {0, { {"lurdshar", 8} } }, {0, { {"ldrushar", 8} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"LeftRightVector", 15} } }, {0, { {"RightUpDownVector", 17} } }, - {0, { {"DownLeftRightVector", 19} } }, {0, { {"LeftUpDownVector", 16} } }, {0, { {"LeftVectorBar", 13} } }, {0, { {"RightVectorBar", 14} } }, - {0, { {"RightUpVectorBar", 16} } }, {0, { {"RightDownVectorBar", 18} } }, {0, { {"DownLeftVectorBar", 17} } }, {0, { {"DownRightVectorBar", 18} } }, - {0, { {"LeftUpVectorBar", 15} } }, {0, { {"LeftDownVectorBar", 17} } }, {0, { {"LeftTeeVector", 13} } }, {0, { {"RightTeeVector", 14} } }, - {0, { {"RightUpTeeVector", 16} } }, {0, { {"RightDownTeeVector", 18} } }, {0, { {"DownLeftTeeVector", 17} } }, {0, { {"DownRightTeeVector", 18} } }, - {0, { {"LeftUpTeeVector", 15} } }, {0, { {"LeftDownTeeVector", 17} } }, {0, { {"lHar", 4} } }, {0, { {"uHar", 4} } }, - {0, { {"rHar", 4} } }, {0, { {"dHar", 4} } }, {0, { {"luruhar", 7} } }, {0, { {"ldrdhar", 7} } }, - {0, { {"ruluhar", 7} } }, {0, { {"rdldhar", 7} } }, {0, { {"lharul", 6} } }, {0, { {"llhard", 6} } }, - {0, { {"rharul", 6} } }, {0, { {"lrhard", 6} } }, {0, { {"udhar", 5} } }, {0, { {"ReverseUpEquilibrium", 20} } }, - {0, { {"RoundImplies", 12} } }, {0, { {"erarr", 5} } }, {0, { {"simrarr", 7} } }, {0, { {"larrsim", 7} } }, - {0, { {"rarrsim", 7} } }, {0, { {"rarrap", 6} } }, {0, { {"ltlarr", 6} } }, {0, { {NULL, 0} } }, - {0, { {"gtrarr", 6} } }, {0, { {"subrarr", 7} } }, {0, { {NULL, 0} } }, {0, { {"suplarr", 7} } }, - {0, { {"lfisht", 6} } }, {0, { {"rfisht", 6} } }, {0, { {"ufisht", 6} } }, {0, { {"dfisht", 6} } }, -}; - -static const entity_stage3_row stage3_table_html5_02980[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"lopar", 5} } }, {0, { {"ropar", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lbrke", 5} } }, - {0, { {"rbrke", 5} } }, {0, { {"lbrkslu", 7} } }, {0, { {"rbrksld", 7} } }, {0, { {"lbrksld", 7} } }, - {0, { {"rbrkslu", 7} } }, {0, { {"langd", 5} } }, {0, { {"rangd", 5} } }, {0, { {"lparlt", 6} } }, - {0, { {"rpargt", 6} } }, {0, { {"gtlPar", 6} } }, {0, { {"ltrPar", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"vzigzag", 7} } }, {0, { {NULL, 0} } }, - {0, { {"vangrt", 6} } }, {0, { {"angrtvbd", 8} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"ange", 4} } }, {0, { {"range", 5} } }, {0, { {"dwangle", 7} } }, {0, { {"uwangle", 7} } }, - {0, { {"angmsdaa", 8} } }, {0, { {"angmsdab", 8} } }, {0, { {"angmsdac", 8} } }, {0, { {"angmsdad", 8} } }, - {0, { {"angmsdae", 8} } }, {0, { {"angmsdaf", 8} } }, {0, { {"angmsdag", 8} } }, {0, { {"angmsdah", 8} } }, - {0, { {"bemptyv", 7} } }, {0, { {"demptyv", 7} } }, {0, { {"cemptyv", 7} } }, {0, { {"raemptyv", 8} } }, - {0, { {"laemptyv", 8} } }, {0, { {"ohbar", 5} } }, {0, { {"omid", 4} } }, {0, { {"opar", 4} } }, - {0, { {NULL, 0} } }, {0, { {"operp", 5} } }, {0, { {NULL, 0} } }, {0, { {"olcross", 7} } }, - {0, { {"odsold", 6} } }, {0, { {NULL, 0} } }, {0, { {"olcir", 5} } }, {0, { {"ofcir", 5} } }, -}; - -static const entity_stage3_row stage3_table_html5_029C0[] = { - {0, { {"olt", 3} } }, {0, { {"ogt", 3} } }, {0, { {"cirscir", 7} } }, {0, { {"cirE", 4} } }, - {0, { {"solb", 4} } }, {0, { {"bsolb", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"boxbox", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"trisb", 5} } }, {0, { {"rtriltri", 8} } }, {1, { {(void *)multi_cp_html5_029CF, 0} } }, - {1, { {(void *)multi_cp_html5_029D0, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"iinfin", 6} } }, {0, { {"infintie", 8} } }, {0, { {"nvinfin", 7} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"eparsl", 6} } }, - {0, { {"smeparsl", 8} } }, {0, { {"eqvparsl", 8} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lozf", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"RuleDelayed", 11} } }, {0, { {NULL, 0} } }, {0, { {"dsol", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_02A00[] = { - {0, { {"xodot", 5} } }, {0, { {"bigoplus", 8} } }, {0, { {"bigotimes", 9} } }, {0, { {NULL, 0} } }, - {0, { {"biguplus", 8} } }, {0, { {NULL, 0} } }, {0, { {"bigsqcup", 8} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"iiiint", 6} } }, {0, { {"fpartint", 8} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"cirfnint", 8} } }, {0, { {"awint", 5} } }, {0, { {"rppolint", 8} } }, {0, { {"scpolint", 8} } }, - {0, { {"npolint", 7} } }, {0, { {"pointint", 8} } }, {0, { {"quatint", 7} } }, {0, { {"intlarhk", 8} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"pluscir", 7} } }, {0, { {"plusacir", 8} } }, - {0, { {"simplus", 7} } }, {0, { {"plusdu", 6} } }, {0, { {"plussim", 7} } }, {0, { {"plustwo", 7} } }, - {0, { {NULL, 0} } }, {0, { {"mcomma", 6} } }, {0, { {"minusdu", 7} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"loplus", 6} } }, {0, { {"roplus", 6} } }, {0, { {"Cross", 5} } }, - {0, { {"timesd", 6} } }, {0, { {"timesbar", 8} } }, {0, { {NULL, 0} } }, {0, { {"smashp", 6} } }, - {0, { {"lotimes", 7} } }, {0, { {"rotimes", 7} } }, {0, { {"otimesas", 8} } }, {0, { {"Otimes", 6} } }, - {0, { {"odiv", 4} } }, {0, { {"triplus", 7} } }, {0, { {"triminus", 8} } }, {0, { {"tritime", 7} } }, - {0, { {"iprod", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"amalg", 5} } }, -}; - -static const entity_stage3_row stage3_table_html5_02A40[] = { - {0, { {"capdot", 6} } }, {0, { {NULL, 0} } }, {0, { {"ncup", 4} } }, {0, { {"ncap", 4} } }, - {0, { {"capand", 6} } }, {0, { {"cupor", 5} } }, {0, { {"cupcap", 6} } }, {0, { {"capcup", 6} } }, - {0, { {"cupbrcap", 8} } }, {0, { {"capbrcup", 8} } }, {0, { {"cupcup", 6} } }, {0, { {"capcap", 6} } }, - {0, { {"ccups", 5} } }, {0, { {"ccaps", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"ccupssm", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"And", 3} } }, - {0, { {"Or", 2} } }, {0, { {"andand", 6} } }, {0, { {"oror", 4} } }, {0, { {"orslope", 7} } }, - {0, { {"andslope", 8} } }, {0, { {NULL, 0} } }, {0, { {"andv", 4} } }, {0, { {"orv", 3} } }, - {0, { {"andd", 4} } }, {0, { {"ord", 3} } }, {0, { {NULL, 0} } }, {0, { {"wedbar", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"sdote", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"simdot", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_02A6D, 0} } }, {0, { {"easter", 6} } }, {0, { {"apacir", 6} } }, - {1, { {(void *)multi_cp_html5_02A70, 0} } }, {0, { {"eplus", 5} } }, {0, { {"pluse", 5} } }, {0, { {"Esim", 4} } }, - {0, { {"Colone", 6} } }, {0, { {"Equal", 5} } }, {0, { {NULL, 0} } }, {0, { {"ddotseq", 7} } }, - {0, { {"equivDD", 7} } }, {0, { {"ltcir", 5} } }, {0, { {"gtcir", 5} } }, {0, { {"ltquest", 7} } }, - {0, { {"gtquest", 7} } }, {1, { {(void *)multi_cp_html5_02A7D, 0} } }, {1, { {(void *)multi_cp_html5_02A7E, 0} } }, {0, { {"lesdot", 6} } }, -}; - -static const entity_stage3_row stage3_table_html5_02A80[] = { - {0, { {"gesdot", 6} } }, {0, { {"lesdoto", 7} } }, {0, { {"gesdoto", 7} } }, {0, { {"lesdotor", 8} } }, - {0, { {"gesdotol", 8} } }, {0, { {"lap", 3} } }, {0, { {"gap", 3} } }, {0, { {"lne", 3} } }, - {0, { {"gne", 3} } }, {0, { {"lnap", 4} } }, {0, { {"gnap", 4} } }, {0, { {"lesseqqgtr", 10} } }, - {0, { {"gEl", 3} } }, {0, { {"lsime", 5} } }, {0, { {"gsime", 5} } }, {0, { {"lsimg", 5} } }, - {0, { {"gsiml", 5} } }, {0, { {"lgE", 3} } }, {0, { {"glE", 3} } }, {0, { {"lesges", 6} } }, - {0, { {"gesles", 6} } }, {0, { {"els", 3} } }, {0, { {"egs", 3} } }, {0, { {"elsdot", 6} } }, - {0, { {"egsdot", 6} } }, {0, { {"el", 2} } }, {0, { {"eg", 2} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"siml", 4} } }, {0, { {"simg", 4} } }, {0, { {"simlE", 5} } }, - {0, { {"simgE", 5} } }, {1, { {(void *)multi_cp_html5_02AA1, 0} } }, {1, { {(void *)multi_cp_html5_02AA2, 0} } }, {0, { {NULL, 0} } }, - {0, { {"glj", 3} } }, {0, { {"gla", 3} } }, {0, { {"ltcc", 4} } }, {0, { {"gtcc", 4} } }, - {0, { {"lescc", 5} } }, {0, { {"gescc", 5} } }, {0, { {"smt", 3} } }, {0, { {"lat", 3} } }, - {1, { {(void *)multi_cp_html5_02AAC, 0} } }, {1, { {(void *)multi_cp_html5_02AAD, 0} } }, {0, { {"bumpE", 5} } }, {1, { {(void *)multi_cp_html5_02AAF, 0} } }, - {1, { {(void *)multi_cp_html5_02AB0, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"prE", 3} } }, - {0, { {"scE", 3} } }, {0, { {"precneqq", 8} } }, {0, { {"scnE", 4} } }, {0, { {"precapprox", 10} } }, - {0, { {"succapprox", 10} } }, {0, { {"precnapprox", 11} } }, {0, { {"succnapprox", 11} } }, {0, { {"Pr", 2} } }, - {0, { {"Sc", 2} } }, {0, { {"subdot", 6} } }, {0, { {"supdot", 6} } }, {0, { {"subplus", 7} } }, -}; - -static const entity_stage3_row stage3_table_html5_02AC0[] = { - {0, { {"supplus", 7} } }, {0, { {"submult", 7} } }, {0, { {"supmult", 7} } }, {0, { {"subedot", 7} } }, - {0, { {"supedot", 7} } }, {1, { {(void *)multi_cp_html5_02AC5, 0} } }, {1, { {(void *)multi_cp_html5_02AC6, 0} } }, {0, { {"subsim", 6} } }, - {0, { {"supsim", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_02ACB, 0} } }, - {1, { {(void *)multi_cp_html5_02ACC, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"csub", 4} } }, - {0, { {"csup", 4} } }, {0, { {"csube", 5} } }, {0, { {"csupe", 5} } }, {0, { {"subsup", 6} } }, - {0, { {"supsub", 6} } }, {0, { {"subsub", 6} } }, {0, { {"supsup", 6} } }, {0, { {"suphsub", 7} } }, - {0, { {"supdsub", 7} } }, {0, { {"forkv", 5} } }, {0, { {"topfork", 7} } }, {0, { {"mlcp", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Dashv", 5} } }, {0, { {NULL, 0} } }, {0, { {"Vdashl", 6} } }, {0, { {"Barv", 4} } }, - {0, { {"vBar", 4} } }, {0, { {"vBarv", 5} } }, {0, { {NULL, 0} } }, {0, { {"Vbar", 4} } }, - {0, { {"Not", 3} } }, {0, { {"bNot", 4} } }, {0, { {"rnmid", 5} } }, {0, { {"cirmid", 6} } }, - {0, { {"midcir", 6} } }, {0, { {"topcir", 6} } }, {0, { {"nhpar", 5} } }, {0, { {"parsim", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {1, { {(void *)multi_cp_html5_02AFD, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_0FB00[] = { - {0, { {"fflig", 5} } }, {0, { {"filig", 5} } }, {0, { {"fllig", 5} } }, {0, { {"ffilig", 6} } }, - {0, { {"ffllig", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_1D480[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Ascr", 4} } }, {0, { {NULL, 0} } }, {0, { {"Cscr", 4} } }, {0, { {"Dscr", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"Gscr", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"Jscr", 4} } }, {0, { {"Kscr", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"Nscr", 4} } }, {0, { {"Oscr", 4} } }, {0, { {"Pscr", 4} } }, - {0, { {"Qscr", 4} } }, {0, { {NULL, 0} } }, {0, { {"Sscr", 4} } }, {0, { {"Tscr", 4} } }, - {0, { {"Uscr", 4} } }, {0, { {"Vscr", 4} } }, {0, { {"Wscr", 4} } }, {0, { {"Xscr", 4} } }, - {0, { {"Yscr", 4} } }, {0, { {"Zscr", 4} } }, {0, { {"ascr", 4} } }, {0, { {"bscr", 4} } }, - {0, { {"cscr", 4} } }, {0, { {"dscr", 4} } }, {0, { {NULL, 0} } }, {0, { {"fscr", 4} } }, - {0, { {NULL, 0} } }, {0, { {"hscr", 4} } }, {0, { {"iscr", 4} } }, {0, { {"jscr", 4} } }, -}; - -static const entity_stage3_row stage3_table_html5_1D4C0[] = { - {0, { {"kscr", 4} } }, {0, { {"lscr", 4} } }, {0, { {"mscr", 4} } }, {0, { {"nscr", 4} } }, - {0, { {NULL, 0} } }, {0, { {"pscr", 4} } }, {0, { {"qscr", 4} } }, {0, { {"rscr", 4} } }, - {0, { {"sscr", 4} } }, {0, { {"tscr", 4} } }, {0, { {"uscr", 4} } }, {0, { {"vscr", 4} } }, - {0, { {"wscr", 4} } }, {0, { {"xscr", 4} } }, {0, { {"yscr", 4} } }, {0, { {"zscr", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_1D500[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Afr", 3} } }, {0, { {"Bfr", 3} } }, {0, { {NULL, 0} } }, {0, { {"Dfr", 3} } }, - {0, { {"Efr", 3} } }, {0, { {"Ffr", 3} } }, {0, { {"Gfr", 3} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"Jfr", 3} } }, {0, { {"Kfr", 3} } }, {0, { {"Lfr", 3} } }, - {0, { {"Mfr", 3} } }, {0, { {"Nfr", 3} } }, {0, { {"Ofr", 3} } }, {0, { {"Pfr", 3} } }, - {0, { {"Qfr", 3} } }, {0, { {NULL, 0} } }, {0, { {"Sfr", 3} } }, {0, { {"Tfr", 3} } }, - {0, { {"Ufr", 3} } }, {0, { {"Vfr", 3} } }, {0, { {"Wfr", 3} } }, {0, { {"Xfr", 3} } }, - {0, { {"Yfr", 3} } }, {0, { {NULL, 0} } }, {0, { {"afr", 3} } }, {0, { {"bfr", 3} } }, - {0, { {"cfr", 3} } }, {0, { {"dfr", 3} } }, {0, { {"efr", 3} } }, {0, { {"ffr", 3} } }, - {0, { {"gfr", 3} } }, {0, { {"hfr", 3} } }, {0, { {"ifr", 3} } }, {0, { {"jfr", 3} } }, - {0, { {"kfr", 3} } }, {0, { {"lfr", 3} } }, {0, { {"mfr", 3} } }, {0, { {"nfr", 3} } }, - {0, { {"ofr", 3} } }, {0, { {"pfr", 3} } }, {0, { {"qfr", 3} } }, {0, { {"rfr", 3} } }, - {0, { {"sfr", 3} } }, {0, { {"tfr", 3} } }, {0, { {"ufr", 3} } }, {0, { {"vfr", 3} } }, - {0, { {"wfr", 3} } }, {0, { {"xfr", 3} } }, {0, { {"yfr", 3} } }, {0, { {"zfr", 3} } }, - {0, { {"Aopf", 4} } }, {0, { {"Bopf", 4} } }, {0, { {NULL, 0} } }, {0, { {"Dopf", 4} } }, - {0, { {"Eopf", 4} } }, {0, { {"Fopf", 4} } }, {0, { {"Gopf", 4} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html5_1D540[] = { - {0, { {"Iopf", 4} } }, {0, { {"Jopf", 4} } }, {0, { {"Kopf", 4} } }, {0, { {"Lopf", 4} } }, - {0, { {"Mopf", 4} } }, {0, { {NULL, 0} } }, {0, { {"Oopf", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"Sopf", 4} } }, {0, { {"Topf", 4} } }, - {0, { {"Uopf", 4} } }, {0, { {"Vopf", 4} } }, {0, { {"Wopf", 4} } }, {0, { {"Xopf", 4} } }, - {0, { {"Yopf", 4} } }, {0, { {NULL, 0} } }, {0, { {"aopf", 4} } }, {0, { {"bopf", 4} } }, - {0, { {"copf", 4} } }, {0, { {"dopf", 4} } }, {0, { {"eopf", 4} } }, {0, { {"fopf", 4} } }, - {0, { {"gopf", 4} } }, {0, { {"hopf", 4} } }, {0, { {"iopf", 4} } }, {0, { {"jopf", 4} } }, - {0, { {"kopf", 4} } }, {0, { {"lopf", 4} } }, {0, { {"mopf", 4} } }, {0, { {"nopf", 4} } }, - {0, { {"oopf", 4} } }, {0, { {"popf", 4} } }, {0, { {"qopf", 4} } }, {0, { {"ropf", 4} } }, - {0, { {"sopf", 4} } }, {0, { {"topf", 4} } }, {0, { {"uopf", 4} } }, {0, { {"vopf", 4} } }, - {0, { {"wopf", 4} } }, {0, { {"xopf", 4} } }, {0, { {"yopf", 4} } }, {0, { {"zopf", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -/* end of stage 3 Tables for HTML5 }}} */ - -/* {{{ Stage 2 Tables for HTML5 */ - -static const entity_stage2_row empty_stage2_table[] = { - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, -}; -static const entity_stage2_row stage2_table_html5_00000[] = { - stage3_table_html5_00000, stage3_table_html5_00040, stage3_table_html5_00080, stage3_table_html5_000C0, - stage3_table_html5_00100, stage3_table_html5_00140, stage3_table_html5_00180, stage3_table_html5_001C0, - stage3_table_html5_00200, empty_stage3_table, empty_stage3_table, stage3_table_html5_002C0, - stage3_table_html5_00300, empty_stage3_table, stage3_table_html5_00380, stage3_table_html5_003C0, - stage3_table_html5_00400, stage3_table_html5_00440, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, -}; - -static const entity_stage2_row stage2_table_html5_02000[] = { - stage3_table_html5_02000, stage3_table_html5_02040, stage3_table_html5_02080, stage3_table_html5_020C0, - stage3_table_html5_02100, stage3_table_html5_02140, stage3_table_html5_02180, stage3_table_html5_021C0, - stage3_table_html5_02200, stage3_table_html5_02240, stage3_table_html5_02280, stage3_table_html5_022C0, - stage3_table_html5_02300, stage3_table_html5_02340, stage3_table_html5_02380, stage3_table_html5_023C0, - stage3_table_html5_02400, empty_stage3_table, empty_stage3_table, stage3_table_html5_024C0, - stage3_table_html5_02500, stage3_table_html5_02540, stage3_table_html5_02580, stage3_table_html5_025C0, - stage3_table_html5_02600, stage3_table_html5_02640, empty_stage3_table, empty_stage3_table, - stage3_table_html5_02700, stage3_table_html5_02740, empty_stage3_table, stage3_table_html5_027C0, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - stage3_table_html5_02900, stage3_table_html5_02940, stage3_table_html5_02980, stage3_table_html5_029C0, - stage3_table_html5_02A00, stage3_table_html5_02A40, stage3_table_html5_02A80, stage3_table_html5_02AC0, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, -}; - -static const entity_stage2_row stage2_table_html5_0F000[] = { - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - stage3_table_html5_0FB00, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, -}; - -static const entity_stage2_row stage2_table_html5_1D000[] = { - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, stage3_table_html5_1D480, stage3_table_html5_1D4C0, - stage3_table_html5_1D500, stage3_table_html5_1D540, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, -}; - -/* end of stage 2 tables for HTML5 }}} */ - -static const entity_stage1_row entity_ms_table_html5[] = { - stage2_table_html5_00000, - empty_stage2_table, - stage2_table_html5_02000, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - stage2_table_html5_0F000, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - stage2_table_html5_1D000, -}; - -/* end of HTML5 multi-stage table for codepoint -> entity }}} */ - -/* {{{ HTML5 hash table for entity -> codepoint */ - -typedef struct { - const char *entity; - unsigned short entity_len; - unsigned int codepoint1; - unsigned int codepoint2; -} entity_cp_map; - -typedef const entity_cp_map *entity_ht_bucket; - -typedef struct { - unsigned num_elems; /* power of 2 */ - const entity_ht_bucket *buckets; /* .num_elems elements */ -} entity_ht; - -static const entity_cp_map ht_bucket_empty[] = { {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_000[] = { {"realpart", 8, 0x0211C, 0}, {"varr", 4, 0x02195, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_001[] = { {"angrt", 5, 0x0221F, 0}, {"iogon", 5, 0x0012F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_003[] = { {"lessdot", 7, 0x022D6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_005[] = { {"simrarr", 7, 0x02972, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_007[] = { {"Zscr", 4, 0x1D4B5, 0}, {"midast", 6, 0x0002A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_00D[] = { {"copf", 4, 0x1D554, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_00F[] = { {"female", 6, 0x02640, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_017[] = { {"NegativeThickSpace", 18, 0x0200B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_020[] = { {"copy", 4, 0x000A9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_022[] = { {"angst", 5, 0x000C5, 0}, {"searr", 5, 0x02198, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_024[] = { {"sqcups", 6, 0x02294, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_027[] = { {"Acirc", 5, 0x000C2, 0}, {"gtdot", 5, 0x022D7, 0}, {"varpi", 5, 0x003D6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_028[] = { {"UpTee", 5, 0x022A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_029[] = { {"TildeTilde", 10, 0x02248, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_02A[] = { {"mfr", 3, 0x1D52A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_02B[] = { {"RightVectorBar", 14, 0x02953, 0}, {"gesdot", 6, 0x02A80, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_02C[] = { {"Uarrocir", 8, 0x02949, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_02E[] = { {"RightTriangleBar", 16, 0x029D0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_030[] = { {"Ocy", 3, 0x0041E, 0}, {"int", 3, 0x0222B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_034[] = { {"preccurlyeq", 11, 0x0227C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_038[] = { {"sccue", 5, 0x0227D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_040[] = { {"DoubleContourIntegral", 21, 0x0222F, 0}, {"nexist", 6, 0x02204, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_047[] = { {"acirc", 5, 0x000E2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_04C[] = { {"setmn", 5, 0x02216, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_04E[] = { {"Dopf", 4, 0x1D53B, 0}, {"LeftTee", 7, 0x022A3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_051[] = { {"SquareSuperset", 14, 0x02290, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_059[] = { {"udhar", 5, 0x0296E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_05D[] = { {"Equal", 5, 0x02A75, 0}, {"pscr", 4, 0x1D4C5, 0}, {"xvee", 4, 0x022C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_05F[] = { {"approx", 6, 0x02248, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_060[] = { {"HARDcy", 6, 0x0042A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_061[] = { {"nGg", 3, 0x022D9, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_063[] = { {"yopf", 4, 0x1D56A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_064[] = { {"prcue", 5, 0x0227C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_065[] = { {"loarr", 5, 0x021FD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_069[] = { {"mho", 3, 0x02127, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_06A[] = { {"otimesas", 8, 0x02A36, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_06D[] = { {"capcap", 6, 0x02A4B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_06E[] = { {"eplus", 5, 0x02A71, 0}, {"nGt", 3, 0x0226B, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_06F[] = { {"Bumpeq", 6, 0x0224E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_071[] = { {"submult", 7, 0x02AC1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_073[] = { {"subplus", 7, 0x02ABF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_074[] = { {"auml", 4, 0x000E4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_07A[] = { {"RightDoubleBracket", 18, 0x027E7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_07B[] = { {"varkappa", 8, 0x003F0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_07C[] = { {"plusdo", 6, 0x02214, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_07F[] = { {"mid", 3, 0x02223, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_082[] = { {"plusdu", 6, 0x02A25, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_084[] = { {"notniva", 7, 0x0220C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_085[] = { {"notnivb", 7, 0x022FE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_086[] = { {"notnivc", 7, 0x022FD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_088[] = { {"varepsilon", 10, 0x003F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_089[] = { {"nspar", 5, 0x02226, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_08C[] = { {"Ofr", 3, 0x1D512, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_08E[] = { {"Omega", 5, 0x003A9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_090[] = { {"equals", 6, 0x0003D, 0}, {"harrcir", 7, 0x02948, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_094[] = { {"Succeeds", 8, 0x0227B, 0}, {"cupdot", 6, 0x0228D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_097[] = { {"lsqb", 4, 0x0005B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_09E[] = { {"Qscr", 4, 0x1D4AC, 0}, {"urcorn", 6, 0x0231D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0A4[] = { {"Zopf", 4, 0x02124, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0A6[] = { {"triangleleft", 12, 0x025C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0AB[] = { {"supdsub", 7, 0x02AD8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0AC[] = { {"chcy", 4, 0x00447, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0AD[] = { {"sqsupset", 8, 0x02290, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0AE[] = { {"omega", 5, 0x003C9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0AF[] = { {"rthree", 6, 0x022CC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0B0[] = { {"THORN", 5, 0x000DE, 0}, {"clubsuit", 8, 0x02663, 0}, {"filig", 5, 0x0FB01, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0B2[] = { {"ocir", 4, 0x0229A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0B8[] = { {"ShortDownArrow", 14, 0x02193, 0}, {"atilde", 6, 0x000E3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0B9[] = { {"DownLeftTeeVector", 17, 0x0295E, 0}, {"LeftTeeArrow", 12, 0x021A4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0BA[] = { {"GreaterFullEqual", 16, 0x02267, 0}, {"emsp", 4, 0x02003, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0C0[] = { {"lozf", 4, 0x029EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0C4[] = { {"ThinSpace", 9, 0x02009, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0CE[] = { {"fnof", 4, 0x00192, 0}, {"multimap", 8, 0x022B8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0D1[] = { {"Zacute", 6, 0x00179, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0D2[] = { {"mdash", 5, 0x02014, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0D3[] = { {"minusb", 6, 0x0229F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0D5[] = { {"minusd", 6, 0x02238, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0DF[] = { {"varsigma", 8, 0x003C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0E5[] = { {"ntilde", 6, 0x000F1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0E6[] = { {"Lambda", 6, 0x0039B, 0}, {"integers", 8, 0x02124, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0E8[] = { {"gesles", 6, 0x02A94, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0EC[] = { {"NotSubset", 9, 0x02282, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0EF[] = { {"NotLeftTriangleEqual", 20, 0x022EC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0F3[] = { {"LessLess", 8, 0x02AA1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0F4[] = { {"gscr", 4, 0x0210A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0FA[] = { {"popf", 4, 0x1D561, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0FB[] = { {"Agrave", 6, 0x000C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0FD[] = { {"nvinfin", 7, 0x029DE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_0FE[] = { {"gacute", 6, 0x001F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_100[] = { {"diam", 4, 0x022C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_101[] = { {"nesim", 5, 0x02242, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_103[] = { {"YIcy", 4, 0x00407, 0}, {"bcy", 3, 0x00431, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_105[] = { {"Exists", 6, 0x02203, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_106[] = { {"vert", 4, 0x0007C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_109[] = { {"ropar", 5, 0x02986, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_10A[] = { {"topfork", 7, 0x02ADA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_10B[] = { {"nLl", 3, 0x022D8, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_10D[] = { {"notin", 5, 0x02209, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_10E[] = { {"SucceedsSlantEqual", 18, 0x0227D, 0}, {"toea", 4, 0x02928, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_10F[] = { {"ImaginaryI", 10, 0x02148, 0}, {"srarr", 5, 0x02192, 0}, {"ulcorner", 8, 0x0231C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_110[] = { {"LeftArrowBar", 12, 0x021E4, 0}, {"ldsh", 4, 0x021B2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_111[] = { {"DownBreve", 9, 0x00311, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_113[] = { {"nLt", 3, 0x0226A, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_116[] = { {"vltri", 5, 0x022B2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_11B[] = { {"VDash", 5, 0x022AB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_11C[] = { {"Dstrok", 6, 0x00110, 0}, {"Intersection", 12, 0x022C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_11E[] = { {"lrhar", 5, 0x021CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_121[] = { {"RightTee", 8, 0x022A2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_124[] = { {"RightArrowLeftArrow", 19, 0x021C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_129[] = { {"Ccirc", 5, 0x00108, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_12A[] = { {"ntrianglelefteq", 15, 0x022EC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_12C[] = { {"leftharpoonup", 13, 0x021BC, 0}, {"scap", 4, 0x02AB8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_12E[] = { {"darr", 4, 0x02193, 0}, {"qfr", 3, 0x1D52E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_12F[] = { {"cdot", 4, 0x0010B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_130[] = { {"supseteqq", 9, 0x02AC6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_134[] = { {"Scy", 3, 0x00421, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_135[] = { {"Hscr", 4, 0x0210B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_137[] = { {"LowerRightArrow", 15, 0x02198, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_13A[] = { {"divide", 6, 0x000F7, 0}, {"tcedil", 6, 0x00163, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_13B[] = { {"LeftArrow", 9, 0x02190, 0}, {"Qopf", 4, 0x0211A, 0}, {"vDash", 5, 0x022A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_145[] = { {"dash", 4, 0x02010, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_147[] = { {"oror", 4, 0x02A56, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_149[] = { {"ccirc", 5, 0x00109, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_14B[] = { {"LongLeftArrow", 13, 0x027F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_14C[] = { {"straightphi", 11, 0x003D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_14E[] = { {"xlarr", 5, 0x027F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_14F[] = { {"DJcy", 4, 0x00402, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_158[] = { {"nbsp", 4, 0x000A0, 0}, {"succcurlyeq", 11, 0x0227D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_159[] = { {"njcy", 4, 0x0045A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_15B[] = { {"Leftarrow", 9, 0x021D0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_15E[] = { {"dtrif", 5, 0x025BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_15F[] = { {"bfr", 3, 0x1D51F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_161[] = { {"GreaterTilde", 12, 0x02273, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_164[] = { {"hamilt", 6, 0x0210B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_165[] = { {"Dcy", 3, 0x00414, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_168[] = { {"LeftUpVector", 12, 0x021BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_16A[] = { {"bigoplus", 8, 0x02A01, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_170[] = { {"nwarhk", 6, 0x02923, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_173[] = { {"diams", 5, 0x02666, 0}, {"suphsol", 7, 0x027C9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_17A[] = { {"boxminus", 8, 0x0229F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_17B[] = { {"leftarrow", 9, 0x02190, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_17C[] = { {"andd", 4, 0x02A5C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_17F[] = { {"NonBreakingSpace", 16, 0x000A0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_181[] = { {"xutri", 5, 0x025B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_189[] = { {"Longleftrightarrow", 18, 0x027FA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_18B[] = { {"Longleftarrow", 13, 0x027F8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_18C[] = { {"gtrapprox", 9, 0x02A86, 0}, {"phmmat", 6, 0x02133, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_18E[] = { {"andv", 4, 0x02A5A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_18F[] = { {"equiv", 5, 0x02261, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_190[] = { {"Sfr", 3, 0x1D516, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_191[] = { {"gopf", 4, 0x1D558, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_193[] = { {"sqsub", 5, 0x0228F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_195[] = { {"approxeq", 8, 0x0224A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_19A[] = { {"Del", 3, 0x02207, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_19C[] = { {"nrightarrow", 11, 0x0219B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_19F[] = { {"SquareUnion", 11, 0x02294, 0}, {"strns", 5, 0x000AF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1A0[] = { {"Itilde", 6, 0x00128, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1A1[] = { {"sqsup", 5, 0x02290, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1A2[] = { {"Ouml", 4, 0x000D6, 0}, {"PrecedesTilde", 13, 0x0227E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1A3[] = { {"AMP", 3, 0x00026, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1A4[] = { {"plusmn", 6, 0x000B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1A5[] = { {"xcup", 4, 0x022C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1A8[] = { {"radic", 5, 0x0221A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1AB[] = { {"longleftarrow", 13, 0x027F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1AC[] = { {"lrcorner", 8, 0x0231F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1AD[] = { {"notni", 5, 0x0220C, 0}, {"updownarrow", 11, 0x02195, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1AE[] = { {"szlig", 5, 0x000DF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1AF[] = { {"ugrave", 6, 0x000F9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1B0[] = { {"imof", 4, 0x022B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1B2[] = { {"csub", 4, 0x02ACF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1B5[] = { {"gsim", 4, 0x02273, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1B9[] = { {"leftleftarrows", 14, 0x021C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1BD[] = { {"backcong", 8, 0x0224C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1BE[] = { {"clubs", 5, 0x02663, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1C0[] = { {"csup", 4, 0x02AD0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1C1[] = { {"Dfr", 3, 0x1D507, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1C4[] = { {"profline", 8, 0x02312, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1C6[] = { {"Zdot", 4, 0x0017B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1C9[] = { {"ClockwiseContourIntegral", 24, 0x02232, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1CA[] = { {"roplus", 6, 0x02A2E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1CD[] = { {"Rang", 4, 0x027EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1CE[] = { {"bcong", 5, 0x0224C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D0[] = { {"tshcy", 5, 0x0045B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D1[] = { {"eDot", 4, 0x02251, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D2[] = { {"Hopf", 4, 0x0210D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D4[] = { {"lpar", 4, 0x00028, 0}, {"odash", 5, 0x0229D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D5[] = { {"capbrcup", 8, 0x02A49, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D6[] = { {"ucy", 3, 0x00443, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D8[] = { {"ofcir", 5, 0x029BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1D9[] = { {"Breve", 5, 0x002D8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1DA[] = { {"barvee", 6, 0x022BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1DF[] = { {"backsim", 7, 0x0223D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1E0[] = { {"ange", 4, 0x029A4, 0}, {"half", 4, 0x000BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1E1[] = { {"tscr", 4, 0x1D4C9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1E5[] = { {"realine", 7, 0x0211B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1E6[] = { {"Oacute", 6, 0x000D3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1E7[] = { {"dfisht", 6, 0x0297F, 0}, {"swnwar", 6, 0x0292A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1E8[] = { {"tscy", 4, 0x00446, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1EB[] = { {"lsquor", 6, 0x0201A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1EF[] = { {"naturals", 8, 0x02115, 0}, {"utrif", 5, 0x025B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1F0[] = { {"DiacriticalTilde", 16, 0x002DC, 0}, {"RightUpVectorBar", 16, 0x02954, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1F2[] = { {"rHar", 4, 0x02964, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1F4[] = { {"curlyeqprec", 11, 0x022DE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1F8[] = { {"dtri", 4, 0x025BF, 0}, {"euml", 4, 0x000EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1F9[] = { {"breve", 5, 0x002D8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1FA[] = { {"Barwed", 6, 0x02306, 0}, {"nvlArr", 6, 0x02902, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1FC[] = { {"dcaron", 6, 0x0010F, 0}, {"natural", 7, 0x0266E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1FE[] = { {"nsupseteqq", 10, 0x02AC6, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_1FF[] = { {"nedot", 5, 0x02250, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_205[] = { {"bigtriangledown", 15, 0x025BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_207[] = { {"fcy", 3, 0x00444, 0}, {"marker", 6, 0x025AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_20E[] = { {"Union", 5, 0x022C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_212[] = { {"varpropto", 9, 0x0221D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_213[] = { {"CloseCurlyDoubleQuote", 21, 0x0201D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_219[] = { {"DoubleLongRightArrow", 20, 0x027F9, 0}, {"GreaterGreater", 14, 0x02AA2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_21D[] = { {"Umacr", 5, 0x0016A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_220[] = { {"Colon", 5, 0x02237, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_222[] = { {"Hat", 3, 0x0005E, 0}, {"Uscr", 4, 0x1D4B0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_227[] = { {"SHCHcy", 6, 0x00429, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_229[] = { {"nLeftarrow", 10, 0x021CD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_22B[] = { {"Ecirc", 5, 0x000CA, 0}, {"Jukcy", 5, 0x00404, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_22C[] = { {"nbumpe", 6, 0x0224F, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_22D[] = { {"NotLess", 7, 0x0226E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_22F[] = { {"gtlPar", 6, 0x02995, 0}, {"suphsub", 7, 0x02AD7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_230[] = { {"gtreqqless", 10, 0x02A8C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_232[] = { {"ufr", 3, 0x1D532, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_234[] = { {"cirscir", 7, 0x029C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_239[] = { {"LeftDownTeeVector", 17, 0x02961, 0}, {"duhar", 5, 0x0296F, 0}, {"nrtrie", 6, 0x022ED, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_23C[] = { {"llhard", 6, 0x0296B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_23D[] = { {"umacr", 5, 0x0016B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_23E[] = { {"lates", 5, 0x02AAD, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_240[] = { {"colon", 5, 0x0003A, 0}, {"iacute", 6, 0x000ED, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_241[] = { {"NotPrecedes", 11, 0x02280, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_242[] = { {"cirfnint", 8, 0x02A10, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_246[] = { {"barwedge", 8, 0x02305, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_249[] = { {"nleftarrow", 10, 0x0219A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_24A[] = { {"Ubrcy", 5, 0x0040E, 0}, {"leftthreetimes", 14, 0x022CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_24B[] = { {"andand", 6, 0x02A55, 0}, {"ecirc", 5, 0x000EA, 0}, {"jukcy", 5, 0x00454, 0}, {"quatint", 7, 0x02A16, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_24D[] = { {"lharul", 6, 0x0296A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_251[] = { {"smtes", 5, 0x02AAC, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_252[] = { {"UnionPlus", 9, 0x0228E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_257[] = { {"NotLeftTriangle", 15, 0x022EA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_25A[] = { {"bne", 3, 0x0003D, 0x020E5}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_25B[] = { {"gtrsim", 6, 0x02273, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_25C[] = { {"Rarr", 4, 0x021A0, 0}, {"ldquor", 6, 0x0201E, 0}, {"phiv", 4, 0x003D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_25D[] = { {"because", 7, 0x02235, 0}, {"gEl", 3, 0x02A8C, 0}, {"setminus", 8, 0x02216, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_263[] = { {"ffr", 3, 0x1D523, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_26A[] = { {"ubrcy", 5, 0x0045E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_26B[] = { {"elinters", 8, 0x023E7, 0}, {"plusb", 5, 0x0229E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_26E[] = { {"pluse", 5, 0x02A72, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_274[] = { {"CapitalDifferentialD", 20, 0x02145, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_277[] = { {"daleth", 6, 0x02138, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_278[] = { {"kscr", 4, 0x1D4C0, 0}, {"ogon", 4, 0x002DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_27C[] = { {"SHcy", 4, 0x00428, 0}, {"equest", 6, 0x0225F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_27E[] = { {"rbarr", 5, 0x0290D, 0}, {"topf", 4, 0x1D565, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_283[] = { {"tritime", 7, 0x02A3B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_28A[] = { {"bot", 3, 0x022A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_294[] = { {"Wfr", 3, 0x1D51A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_297[] = { {"HumpEqual", 9, 0x0224F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_298[] = { {"rightleftharpoons", 17, 0x021CC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_29D[] = { {"frasl", 5, 0x02044, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_29F[] = { {"UnderBracket", 12, 0x023B5, 0}, {"ovbar", 5, 0x0233D, 0}, {"upharpoonright", 14, 0x021BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2A0[] = { {"euro", 4, 0x020AC, 0}, {"nhArr", 5, 0x021CE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2A9[] = { {"NotSupersetEqual", 16, 0x02289, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2AE[] = { {"cularr", 6, 0x021B6, 0}, {"scnE", 4, 0x02AB6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2B1[] = { {"napid", 5, 0x0224B, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2B2[] = { {"harr", 4, 0x02194, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2B3[] = { {"gdot", 4, 0x00121, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2B9[] = { {"Lscr", 4, 0x02112, 0}, {"zeta", 4, 0x003B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2BF[] = { {"ENG", 3, 0x0014A, 0}, {"Uopf", 4, 0x1D54C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2C4[] = { {"esdot", 5, 0x02250, 0}, {"scsim", 5, 0x0227F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2C5[] = { {"Hfr", 3, 0x0210C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2CE[] = { {"RightArrow", 10, 0x02192, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2CF[] = { {"Sqrt", 4, 0x0221A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2D3[] = { {"xodot", 5, 0x02A00, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2DA[] = { {"ycy", 3, 0x0044B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2DB[] = { {"hkswarow", 8, 0x02926, 0}, {"urtri", 5, 0x025F9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2DC[] = { {"roang", 5, 0x027ED, 0}, {"tosa", 4, 0x02929, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2E3[] = { {"CircleMinus", 11, 0x02296, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2E4[] = { {"Lcaron", 6, 0x0013D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2EB[] = { {"ShortLeftArrow", 14, 0x02190, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2EC[] = { {"Dot", 3, 0x000A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2EE[] = { {"Rightarrow", 10, 0x021D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2F0[] = { {"prsim", 5, 0x0227E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2F2[] = { {"notinE", 6, 0x022F9, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_2F8[] = { {"becaus", 6, 0x02235, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_300[] = { {"NotEqualTilde", 13, 0x02242, 0x00338}, {"nparallel", 9, 0x02226, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_301[] = { {"capcup", 6, 0x02A47, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_304[] = { {"simeq", 5, 0x02243, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_305[] = { {"forall", 6, 0x02200, 0}, {"straightepsilon", 15, 0x003F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_308[] = { {"ruluhar", 7, 0x02968, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_30B[] = { {"jcy", 3, 0x00439, 0}, {"ltcc", 4, 0x02AA6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_30F[] = { {"bscr", 4, 0x1D4B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_311[] = { {"ExponentialE", 12, 0x02147, 0}, {"weierp", 6, 0x02118, 0}, {"yen", 3, 0x000A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_313[] = { {"blacksquare", 11, 0x025AA, 0}, {"uml", 3, 0x000A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_315[] = { {"backsimeq", 9, 0x022CD, 0}, {"kopf", 4, 0x1D55C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_319[] = { {"NotPrecedesEqual", 16, 0x02AAF, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_31A[] = { {"simgE", 5, 0x02AA0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_31B[] = { {"tridot", 6, 0x025EC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_326[] = { {"DoubleLongLeftArrow", 19, 0x027F8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_329[] = { {"models", 6, 0x022A7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_32A[] = { {"emptyv", 6, 0x02205, 0}, {"eqslantgtr", 10, 0x02A96, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_32D[] = { {"Gcirc", 5, 0x0011C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_330[] = { {"bernou", 6, 0x0212C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_331[] = { {"HumpDownHump", 12, 0x0224E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_336[] = { {"yfr", 3, 0x1D536, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_338[] = { {"blacktriangle", 13, 0x025B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_33B[] = { {"yacy", 4, 0x0044F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_33F[] = { {"lsime", 5, 0x02A8D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_340[] = { {"NotTildeEqual", 13, 0x02244, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_341[] = { {"lsimg", 5, 0x02A8F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_347[] = { {"ncap", 4, 0x02A43, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_34D[] = { {"DD", 2, 0x02145, 0}, {"gcirc", 5, 0x0011D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_350[] = { {"Cscr", 4, 0x1D49E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_356[] = { {"Lopf", 4, 0x1D543, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_358[] = { {"lBarr", 5, 0x0290E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_359[] = { {"Leftrightarrow", 14, 0x021D4, 0}, {"gtrdot", 6, 0x022D7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_35D[] = { {"NotSquareSubset", 15, 0x0228F, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_35F[] = { {"sqsubset", 8, 0x0228F, 0}, {"subsetneq", 9, 0x0228A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_361[] = { {"doublebarwedge", 14, 0x02306, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_363[] = { {"blacktriangleleft", 17, 0x025C2, 0}, {"hellip", 6, 0x02026, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_365[] = { {"xscr", 4, 0x1D4CD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_367[] = { {"LessFullEqual", 13, 0x02266, 0}, {"jfr", 3, 0x1D527, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_369[] = { {"GreaterSlantEqual", 17, 0x02A7E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_36A[] = { {"Uring", 5, 0x0016E, 0}, {"VeryThinSpace", 13, 0x0200A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_36B[] = { {"roarr", 5, 0x021FE, 0}, {"scaron", 6, 0x00161, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_36D[] = { {"Lcy", 3, 0x0041B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_36E[] = { {"RightDownVector", 15, 0x021C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_36F[] = { {"Sub", 3, 0x022D0, 0}, {"pitchfork", 9, 0x022D4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_372[] = { {"nvsim", 5, 0x0223C, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_374[] = { {"xrArr", 5, 0x027F9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_378[] = { {"CloseCurlyQuote", 15, 0x02019, 0}, {"uwangle", 7, 0x029A7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_37A[] = { {"Sum", 3, 0x02211, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_37C[] = { {"iuml", 4, 0x000EF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_37D[] = { {"Sup", 3, 0x022D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_37E[] = { {"planck", 6, 0x0210F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_37F[] = { {"Egrave", 6, 0x000C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_380[] = { {"curlywedge", 10, 0x022CF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_382[] = { {"TildeFullEqual", 14, 0x02245, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_383[] = { {"searhk", 6, 0x02925, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_386[] = { {"ETH", 3, 0x000D0, 0}, {"napos", 5, 0x00149, 0}, {"upsi", 4, 0x003C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_387[] = { {"twoheadleftarrow", 16, 0x0219E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_38A[] = { {"Assign", 6, 0x02254, 0}, {"uring", 5, 0x0016F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_38D[] = { {"SquareIntersection", 18, 0x02293, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_38E[] = { {"lmidot", 6, 0x00140, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_391[] = { {"kcedil", 6, 0x00137, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_394[] = { {"curren", 6, 0x000A4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_397[] = { {"acute", 5, 0x000B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_398[] = { {"curlyeqsucc", 11, 0x022DF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_39C[] = { {"Omicron", 7, 0x0039F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_39F[] = { {"uarr", 4, 0x02191, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3A0[] = { {"Hstrok", 6, 0x00126, 0}, {"UnderBrace", 10, 0x023DF, 0}, {"tdot", 4, 0x020DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3A1[] = { {"qint", 4, 0x02A0C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3A4[] = { {"sfrown", 6, 0x02322, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3A5[] = { {"trpezium", 8, 0x023E2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3A6[] = { {"Yscr", 4, 0x1D4B4, 0}, {"cedil", 5, 0x000B8, 0}, {"planckh", 7, 0x0210E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3A7[] = { {"lang", 4, 0x027E8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3AC[] = { {"bopf", 4, 0x1D553, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3B2[] = { {"lbbrk", 5, 0x02772, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3B4[] = { {"khcy", 4, 0x00445, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3BF[] = { {"Epsilon", 7, 0x00395, 0}, {"simlE", 5, 0x02A9F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3C0[] = { {"GT", 2, 0x0003E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3C4[] = { {"nap", 3, 0x02249, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3C9[] = { {"Lfr", 3, 0x1D50F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3CD[] = { {"succapprox", 10, 0x02AB8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3D0[] = { {"bsim", 4, 0x0223D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3D3[] = { {"Gg", 2, 0x022D9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3D9[] = { {"angrtvb", 7, 0x022BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3DE[] = { {"xcirc", 5, 0x025EF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3E0[] = { {"Gt", 2, 0x0226B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3E1[] = { {"LeftRightVector", 15, 0x0294E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3E3[] = { {"circledast", 10, 0x0229B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3E4[] = { {"telrec", 6, 0x02315, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3E6[] = { {"SucceedsTilde", 13, 0x0227F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3E9[] = { {"nLtv", 4, 0x0226A, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3ED[] = { {"Copf", 4, 0x02102, 0}, {"napprox", 7, 0x02249, 0}, {"nsupseteq", 9, 0x02289, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3F1[] = { {"VerticalTilde", 13, 0x02240, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3F2[] = { {"parallel", 8, 0x02225, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3F7[] = { {"precnapprox", 11, 0x02AB9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3FC[] = { {"oscr", 4, 0x02134, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_3FE[] = { {"supsetneqq", 10, 0x02ACC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_402[] = { {"xopf", 4, 0x1D569, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_405[] = { {"mumap", 5, 0x022B8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_407[] = { {"varsupsetneqq", 13, 0x02ACC, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_409[] = { {"ReverseEquilibrium", 18, 0x021CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_40E[] = { {"Ubreve", 6, 0x0016C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_40F[] = { {"YUcy", 4, 0x0042E, 0}, {"ncy", 3, 0x0043D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_413[] = { {"ltimes", 6, 0x022C9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_41A[] = { {"UpperRightArrow", 15, 0x02197, 0}, {"nvap", 4, 0x0224D, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_41B[] = { {"Im", 2, 0x02111, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_421[] = { {"simne", 5, 0x02246, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_423[] = { {"ccups", 5, 0x02A4C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_424[] = { {"nlArr", 5, 0x021CD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_425[] = { {"rarrsim", 7, 0x02974, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_426[] = { {"Ncaron", 6, 0x00147, 0}, {"vsupnE", 6, 0x02ACC, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_429[] = { {"succeq", 6, 0x02AB0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_42C[] = { {"Gammad", 6, 0x003DC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_42F[] = { {"Icirc", 5, 0x000CE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_430[] = { {"backepsilon", 11, 0x003F6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_432[] = { {"ddarr", 5, 0x021CA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_436[] = { {"larr", 4, 0x02190, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_439[] = { {"divideontimes", 13, 0x022C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_43C[] = { {"succsim", 7, 0x0227F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_43D[] = { {"Pscr", 4, 0x1D4AB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_43E[] = { {"puncsp", 6, 0x02008, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_43F[] = { {"gtreqless", 9, 0x022DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_440[] = { {"intcal", 6, 0x022BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_441[] = { {"nsime", 5, 0x02244, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_443[] = { {"Yopf", 4, 0x1D550, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_446[] = { {"angsph", 6, 0x02222, 0}, {"vsupne", 6, 0x0228B, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_447[] = { {"NotNestedLessLess", 17, 0x02AA1, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_44A[] = { {"PrecedesSlantEqual", 18, 0x0227C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_44F[] = { {"icirc", 5, 0x000EE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_450[] = { {"DownLeftVectorBar", 17, 0x02956, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_454[] = { {"Auml", 4, 0x000C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_457[] = { {"LJcy", 4, 0x00409, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_458[] = { {"sqsube", 6, 0x02291, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_45D[] = { {"nprec", 5, 0x02280, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_45F[] = { {"ngE", 3, 0x02267, 0x00338}, {"smile", 5, 0x02323, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_465[] = { {"LT", 2, 0x0003C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_466[] = { {"ldrdhar", 7, 0x02967, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_469[] = { {"utri", 4, 0x025B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_46A[] = { {"Sacute", 6, 0x0015A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_46B[] = { {"late", 4, 0x02AAD, 0}, {"nfr", 3, 0x1D52B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_46D[] = { {"NotNestedGreaterGreater", 23, 0x02AA2, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_46F[] = { {"nwarr", 5, 0x02196, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_470[] = { {"biguplus", 8, 0x02A04, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_471[] = { {"Pcy", 3, 0x0041F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_472[] = { {"bigtriangleup", 13, 0x025B3, 0}, {"rationals", 9, 0x0211A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_473[] = { {"congdot", 7, 0x02A6D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_475[] = { {"PlusMinus", 9, 0x000B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_479[] = { {"IOcy", 4, 0x00401, 0}, {"Scedil", 6, 0x0015E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_47C[] = { {"eqcirc", 6, 0x02256, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_47D[] = { {"Ll", 2, 0x022D8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_47F[] = { {"Cayleys", 7, 0x0212D, 0}, {"nge", 3, 0x02271, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_480[] = { {"NotGreater", 10, 0x0226F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_485[] = { {"Lt", 2, 0x0226A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_488[] = { {"rotimes", 7, 0x02A35, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_48C[] = { {"caps", 4, 0x02229, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_48E[] = { {"ngt", 3, 0x0226F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_48F[] = { {"Cross", 5, 0x02A2F, 0}, {"bumpeq", 6, 0x0224F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_490[] = { {"VerticalSeparator", 17, 0x02758, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_491[] = { {"plankv", 6, 0x0210F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_493[] = { {"fscr", 4, 0x1D4BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_495[] = { {"bsol", 4, 0x0005C, 0}, {"sqsubseteq", 10, 0x02291, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_496[] = { {"boxH", 4, 0x02550, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_498[] = { {"rightarrowtail", 14, 0x021A3, 0}, {"ufisht", 6, 0x0297E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_499[] = { {"oopf", 4, 0x1D560, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_49F[] = { {"lobrk", 5, 0x027E6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4A2[] = { {"Acy", 3, 0x00410, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4A4[] = { {"NotSubsetEqual", 14, 0x02288, 0}, {"boxV", 4, 0x02551, 0}, {"dHar", 4, 0x02965, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4A6[] = { {"precnsim", 8, 0x022E8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4A7[] = { {"Mu", 2, 0x0039C, 0}, {"aelig", 5, 0x000E6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4AA[] = { {"gescc", 5, 0x02AA9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4AB[] = { {"origof", 6, 0x022B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4AE[] = { {"upsih", 5, 0x003D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4AF[] = { {"cross", 5, 0x02717, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4B2[] = { {"LeftFloor", 9, 0x0230A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4B6[] = { {"boxh", 4, 0x02500, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4B8[] = { {"NotGreaterEqual", 15, 0x02271, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4BC[] = { {"profalar", 8, 0x0232E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4C0[] = { {"nsmid", 5, 0x02224, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4C2[] = { {"hbar", 4, 0x0210F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4C3[] = { {"udarr", 5, 0x021C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4C4[] = { {"boxv", 4, 0x02502, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4C5[] = { {"olarr", 5, 0x021BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4C8[] = { {"Nu", 2, 0x0039D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4CB[] = { {"NotCongruent", 12, 0x02262, 0}, {"bkarow", 6, 0x0290D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4CD[] = { {"Pfr", 3, 0x1D513, 0}, {"forkv", 5, 0x02AD9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4CF[] = { {"nis", 3, 0x022FC, 0}, {"trianglerighteq", 15, 0x022B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4D0[] = { {"ngeq", 4, 0x02271, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4D2[] = { {"cudarrl", 7, 0x02938, 0}, {"nges", 4, 0x02A7E, 0x00338}, {"niv", 3, 0x0220B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4D3[] = { {"SubsetEqual", 11, 0x02286, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4D4[] = { {"Gscr", 4, 0x1D4A2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4D5[] = { {"complexes", 9, 0x02102, 0}, {"eDDot", 5, 0x02A77, 0}, {"nvge", 4, 0x02265, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4D8[] = { {"cudarrr", 7, 0x02935, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4DA[] = { {"Popf", 4, 0x02119, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4DE[] = { {"LongRightArrow", 14, 0x027F6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4DF[] = { {"supseteq", 8, 0x02287, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4E3[] = { {"dollar", 6, 0x00024, 0}, {"gnsim", 5, 0x022E7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4E4[] = { {"nvgt", 4, 0x0003E, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4E6[] = { {"Or", 2, 0x02A54, 0}, {"Vert", 4, 0x02016, 0}, {"lneqq", 5, 0x02268, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4E7[] = { {"nLeftrightarrow", 15, 0x021CE, 0}, {"nbump", 5, 0x0224E, 0x00338}, {"ntriangleright", 14, 0x022EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4E8[] = { {"ecir", 4, 0x02256, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4E9[] = { {"npolint", 7, 0x02A14, 0}, {"plus", 4, 0x0002B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4ED[] = { {"centerdot", 9, 0x000B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4F1[] = { {"zacute", 6, 0x0017A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4F7[] = { {"odiv", 4, 0x02A38, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4F9[] = { {"cap", 3, 0x02229, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4FB[] = { {"ensp", 4, 0x02002, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_4FE[] = { {"Afr", 3, 0x1D504, 0}, {"Pi", 2, 0x003A0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_500[] = { {"iquest", 6, 0x000BF, 0}, {"ltri", 4, 0x025C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_504[] = { {"nlE", 3, 0x02266, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_506[] = { {"Phi", 3, 0x003A6, 0}, {"lambda", 6, 0x003BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_507[] = { {"Pr", 2, 0x02ABB, 0}, {"Vdashl", 6, 0x02AE6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_509[] = { {"SuchThat", 8, 0x0220B, 0}, {"Supset", 6, 0x022D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_50E[] = { {"Darr", 4, 0x021A1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_50F[] = { {"Cdot", 4, 0x0010A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_513[] = { {"rcy", 3, 0x00440, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_516[] = { {"orderof", 7, 0x02134, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_518[] = { {"leqq", 4, 0x02266, 0}, {"precsim", 7, 0x0227E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_519[] = { {"RightTriangle", 13, 0x022B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_51B[] = { {"agrave", 6, 0x000E0, 0}, {"succnapprox", 11, 0x02ABA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_51C[] = { {"Tab", 3, 0x00009, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_524[] = { {"nle", 3, 0x02270, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_525[] = { {"spades", 6, 0x02660, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_526[] = { {"gtcc", 4, 0x02AA7, 0}, {"llcorner", 8, 0x0231E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_52F[] = { {"Oslash", 6, 0x000D8, 0}, {"Tau", 3, 0x003A4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_530[] = { {"fopf", 4, 0x1D557, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_532[] = { {"Mellintrf", 9, 0x02133, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_533[] = { {"nlt", 3, 0x0226E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_534[] = { {"lparlt", 6, 0x02993, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_53B[] = { {"Ccaron", 6, 0x0010C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_53C[] = { {"Re", 2, 0x0211C, 0}, {"dstrok", 6, 0x00111, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_53F[] = { {"leftharpoondown", 15, 0x021BD, 0}, {"ssetmn", 6, 0x02216, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_542[] = { {"lrhard", 6, 0x0296D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_543[] = { {"reg", 3, 0x000AE, 0}, {"sharp", 5, 0x0266F, 0}, {"yicy", 4, 0x00457, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_545[] = { {"ShortUpArrow", 12, 0x02191, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_548[] = { {"plusacir", 8, 0x02A23, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_54F[] = { {"cent", 4, 0x000A2, 0}, {"natur", 5, 0x0266E, 0}, {"varphi", 6, 0x003D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_550[] = { {"lesg", 4, 0x022DA, 0x0FE00}, {"supnE", 5, 0x02ACC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_551[] = { {"ohbar", 5, 0x029B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_557[] = { {"NotLessGreater", 14, 0x02278, 0}, {"nleqslant", 9, 0x02A7D, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_55B[] = { {"Sc", 2, 0x02ABC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_55D[] = { {"NotSucceedsEqual", 16, 0x02AB0, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_55F[] = { {"DZcy", 4, 0x0040F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_564[] = { {"vartheta", 8, 0x003D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_565[] = { {"ltrie", 5, 0x022B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_566[] = { {"Otilde", 6, 0x000D5, 0}, {"ltrif", 5, 0x025C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_56C[] = { {"Lsh", 3, 0x021B0, 0}, {"hookleftarrow", 13, 0x021A9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_56F[] = { {"rfr", 3, 0x1D52F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_570[] = { {"supne", 5, 0x0228B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_571[] = { {"Gopf", 4, 0x1D53E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_572[] = { {"UpEquilibrium", 13, 0x0296E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_575[] = { {"Tcy", 3, 0x00422, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_576[] = { {"ffilig", 6, 0x0FB03, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_577[] = { {"fork", 4, 0x022D4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_578[] = { {"oplus", 5, 0x02295, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_57A[] = { {"nvle", 4, 0x02264, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_57B[] = { {"HilbertSpace", 12, 0x0210B, 0}, {"subedot", 7, 0x02AC3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_57C[] = { {"TripleDot", 9, 0x020DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_580[] = { {"sscr", 4, 0x1D4C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_582[] = { {"osol", 4, 0x02298, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_583[] = { {"plustwo", 7, 0x02A27, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_586[] = { {"LessGreater", 11, 0x02276, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_588[] = { {"lrarr", 5, 0x021C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_589[] = { {"nvlt", 4, 0x0003C, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_58D[] = { {"questeq", 7, 0x0225F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_58E[] = { {"LessTilde", 9, 0x02272, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_58F[] = { {"djcy", 4, 0x00452, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_590[] = { {"xoplus", 6, 0x02A01, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_595[] = { {"primes", 6, 0x02119, 0}, {"solb", 4, 0x029C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_596[] = { {"not", 3, 0x000AC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_59A[] = { {"angzarr", 7, 0x0237C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_59D[] = { {"nearr", 5, 0x02197, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_59F[] = { {"lowast", 6, 0x02217, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5A0[] = { {"cfr", 3, 0x1D520, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5A3[] = { {"ltcir", 5, 0x02A79, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5A6[] = { {"Ecy", 3, 0x0042D, 0}, {"gesdotol", 8, 0x02A84, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5A9[] = { {"longleftrightarrow", 18, 0x027F7, 0}, {"para", 4, 0x000B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5AC[] = { {"Uacute", 6, 0x000DA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5AD[] = { {"blank", 5, 0x02423, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5AE[] = { {"rho", 3, 0x003C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5B0[] = { {"dharl", 5, 0x021C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5B1[] = { {"rsquor", 6, 0x02019, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5B5[] = { {"NotSquareSubsetEqual", 20, 0x022E2, 0}, {"npr", 3, 0x02280, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5B6[] = { {"dharr", 5, 0x021C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5B7[] = { {"NewLine", 7, 0x0000A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5BB[] = { {"odot", 4, 0x02299, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5BC[] = { {"part", 4, 0x02202, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5BD[] = { {"cuvee", 5, 0x022CE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5BF[] = { {"lesdoto", 7, 0x02A81, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5C0[] = { {"itilde", 6, 0x00129, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5C1[] = { {"Tscr", 4, 0x1D4AF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5C2[] = { {"nsubE", 5, 0x02AC5, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5C4[] = { {"ratio", 5, 0x02236, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5D0[] = { {"Conint", 6, 0x0222F, 0}, {"LeftDownVectorBar", 17, 0x02959, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5D1[] = { {"Tfr", 3, 0x1D517, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5D3[] = { {"fllig", 5, 0x0FB02, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5D5[] = { {"thksim", 6, 0x0223C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5D8[] = { {"Euml", 4, 0x000CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5D9[] = { {"chi", 3, 0x003C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5DB[] = { {"ncup", 4, 0x02A42, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5DD[] = { {"SOFTcy", 6, 0x0042C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5DF[] = { {"bnequiv", 7, 0x02261, 0x020E5}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5E2[] = { {"nsube", 5, 0x02288, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5E4[] = { {"mapstoleft", 10, 0x021A4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5E7[] = { {"NotLessSlantEqual", 17, 0x02A7D, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5EA[] = { {"ldrushar", 8, 0x0294B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5ED[] = { {"Equilibrium", 11, 0x021CC, 0}, {"Uogon", 5, 0x00172, 0}, {"supsetneq", 9, 0x0228B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5F0[] = { {"Vbar", 4, 0x02AEB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5F3[] = { {"vnsub", 5, 0x02282, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5F6[] = { {"Square", 6, 0x025A1, 0}, {"lessapprox", 10, 0x02A85, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5F8[] = { {"And", 3, 0x02A53, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5FA[] = { {"gesdoto", 7, 0x02A82, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_5FD[] = { {"gap", 3, 0x02A86, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_601[] = { {"nsucc", 5, 0x02281, 0}, {"thicksim", 8, 0x0223C, 0}, {"vnsup", 5, 0x02283, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_602[] = { {"Efr", 3, 0x1D508, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_603[] = { {"Igrave", 6, 0x000CC, 0}, {"cir", 3, 0x025CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_606[] = { {"Xi", 2, 0x0039E, 0}, {"oacute", 6, 0x000F3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_609[] = { {"nsc", 3, 0x02281, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_60D[] = { {"uogon", 5, 0x00173, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_613[] = { {"rharul", 6, 0x0296C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_615[] = { {"RuleDelayed", 11, 0x029F4, 0}, {"apacir", 6, 0x02A6F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_617[] = { {"jscr", 4, 0x1D4BF, 0}, {"vcy", 3, 0x00432, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_61A[] = { {"barwed", 6, 0x02305, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_61D[] = { {"sopf", 4, 0x1D564, 0}, {"thkap", 5, 0x02248, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_61F[] = { {"lesseqgtr", 9, 0x022DA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_622[] = { {"rdquor", 6, 0x0201D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_624[] = { {"Lstrok", 6, 0x00141, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_626[] = { {"Product", 7, 0x0220F, 0}, {"sqsupe", 6, 0x02292, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_628[] = { {"awconint", 8, 0x02233, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_62C[] = { {"hearts", 6, 0x02665, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_630[] = { {"rlm", 3, 0x0200F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_632[] = { {"comma", 5, 0x0002C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_636[] = { {"PartialD", 8, 0x02202, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_63A[] = { {"wedbar", 6, 0x02A5F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_63C[] = { {"oline", 5, 0x0203E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_63D[] = { {"OverBracket", 11, 0x023B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_63E[] = { {"RBarr", 5, 0x02910, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_641[] = { {"uharl", 5, 0x021BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_642[] = { {"leftrightsquigarrow", 19, 0x021AD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_645[] = { {"RightFloor", 10, 0x0230B, 0}, {"intprod", 7, 0x02A3C, 0}, {"vee", 3, 0x02228, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_646[] = { {"zigrarr", 7, 0x021DD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_647[] = { {"uharr", 5, 0x021BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_648[] = { {"gcy", 3, 0x00433, 0}, {"varsubsetneq", 12, 0x0228A, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_649[] = { {"leqslant", 8, 0x02A7D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_64A[] = { {"Odblac", 6, 0x00150, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_651[] = { {"minus", 5, 0x02212, 0}, {"scpolint", 8, 0x02A13, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_652[] = { {"lrtri", 5, 0x022BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_653[] = { {"DiacriticalGrave", 16, 0x00060, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_655[] = { {"num", 3, 0x00023, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_657[] = { {"quest", 5, 0x0003F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_658[] = { {"Kscr", 4, 0x1D4A6, 0}, {"UnderBar", 8, 0x0005F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_659[] = { {"lsquo", 5, 0x02018, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_65C[] = { {"rArr", 4, 0x021D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_65E[] = { {"Topf", 4, 0x1D54B, 0}, {"heartsuit", 9, 0x02665, 0}, {"rBarr", 5, 0x0290F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_660[] = { {"emptyset", 8, 0x02205, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_669[] = { {"UnderParenthesis", 16, 0x023DD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_670[] = { {"dotplus", 7, 0x02214, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_671[] = { {"Psi", 3, 0x003A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_672[] = { {"GJcy", 4, 0x00403, 0}, {"exist", 5, 0x02203, 0}, {"simplus", 7, 0x02A24, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_673[] = { {"vfr", 3, 0x1D533, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_676[] = { {"tprime", 6, 0x02034, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_678[] = { {"leftrightharpoons", 17, 0x021CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_679[] = { {"rbrksld", 7, 0x0298E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_67D[] = { {"Ecaron", 6, 0x0011A, 0}, {"gel", 3, 0x022DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_680[] = { {"capdot", 6, 0x02A40, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_682[] = { {"geq", 3, 0x02265, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_684[] = { {"LowerLeftArrow", 14, 0x02199, 0}, {"ges", 3, 0x02A7E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_685[] = { {"Colone", 6, 0x02A74, 0}, {"NotLessEqual", 12, 0x02270, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_68A[] = { {"nrarr", 5, 0x0219B, 0}, {"rbrkslu", 7, 0x02990, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_68C[] = { {"flat", 4, 0x0266D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_691[] = { {"there4", 6, 0x02234, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_693[] = { {"Gdot", 4, 0x00120, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_694[] = { {"ijlig", 5, 0x00133, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_696[] = { {"blacklozenge", 12, 0x029EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_699[] = { {"Zeta", 4, 0x00396, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6A3[] = { {"duarr", 5, 0x021F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6A4[] = { {"DotEqual", 8, 0x02250, 0}, {"dtdot", 5, 0x022F1, 0}, {"gfr", 3, 0x1D524, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6A8[] = { {"cirE", 4, 0x029C3, 0}, {"period", 6, 0x0002E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6A9[] = { {"lmoust", 6, 0x023B0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6AA[] = { {"Icy", 3, 0x00418, 0}, {"Rcaron", 6, 0x00158, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6AB[] = { {"LeftCeiling", 11, 0x02308, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6AE[] = { {"ascr", 4, 0x1D4B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6B0[] = { {"boxtimes", 8, 0x022A0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6B4[] = { {"jopf", 4, 0x1D55B, 0}, {"ntriangleleft", 13, 0x022EA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6B6[] = { {"eqcolon", 7, 0x02255, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6B8[] = { {"rbbrk", 5, 0x02773, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6B9[] = { {"homtht", 6, 0x0223B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6BA[] = { {"ggg", 3, 0x022D9, 0}, {"seswar", 6, 0x02929, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6BC[] = { {"perp", 4, 0x022A5, 0}, {"shcy", 4, 0x00448, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6BF[] = { {"phone", 5, 0x0260E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6C0[] = { {"NotDoubleVerticalBar", 20, 0x02226, 0}, {"ngtr", 4, 0x0226F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6C4[] = { {"ThickSpace", 10, 0x0205F, 0x0200A}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6C5[] = { {"ForAll", 6, 0x02200, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6C6[] = { {"circ", 4, 0x002C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6C7[] = { {"Verbar", 6, 0x02016, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6C8[] = { {"cire", 4, 0x02257, 0}, {"lesges", 6, 0x02A93, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6C9[] = { {"slarr", 5, 0x02190, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6CC[] = { {"RightDownTeeVector", 18, 0x0295D, 0}, {"triangleq", 9, 0x0225C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6CE[] = { {"checkmark", 9, 0x02713, 0}, {"quot", 4, 0x00022, 0}, {"suplarr", 7, 0x0297B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6D1[] = { {"Backslash", 9, 0x02216, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6D2[] = { {"fallingdotseq", 13, 0x02252, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6D4[] = { {"swArr", 5, 0x021D9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6D5[] = { {"Xfr", 3, 0x1D51B, 0}, {"lbrke", 5, 0x0298B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6D9[] = { {"jmath", 5, 0x00237, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6DA[] = { {"lmoustache", 10, 0x023B0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6DB[] = { {"DownTee", 7, 0x022A4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6DC[] = { {"reals", 5, 0x0211D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6DE[] = { {"quaternions", 11, 0x0210D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6E7[] = { {"vzigzag", 7, 0x0299A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6EB[] = { {"pound", 5, 0x000A3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6EE[] = { {"permil", 6, 0x02030, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6EF[] = { {"Bscr", 4, 0x0212C, 0}, {"lfisht", 6, 0x0297C, 0}, {"vartriangleleft", 15, 0x022B2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6F5[] = { {"Kopf", 4, 0x1D542, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6F7[] = { {"Tilde", 5, 0x0223C, 0}, {"gtrarr", 6, 0x02978, 0}, {"lAarr", 5, 0x021DA, 0}, {"opar", 4, 0x029B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_6FB[] = { {"triangle", 8, 0x025B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_704[] = { {"lcaron", 6, 0x0013E, 0}, {"wscr", 4, 0x1D4CC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_705[] = { {"asympeq", 7, 0x0224D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_706[] = { {"Ifr", 3, 0x02111, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_707[] = { {"DoubleDot", 9, 0x000A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_709[] = { {"nVdash", 6, 0x022AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_70C[] = { {"hairsp", 6, 0x0200A, 0}, {"leftrightarrows", 15, 0x021C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_70E[] = { {"lbrace", 6, 0x0007B, 0}, {"rightarrow", 10, 0x02192, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_70F[] = { {"Dagger", 6, 0x02021, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_712[] = { {"rsh", 3, 0x021B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_714[] = { {"eqslantless", 11, 0x02A95, 0}, {"gnapprox", 8, 0x02A8A, 0}, {"lbrack", 6, 0x0005B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_715[] = { {"uHar", 4, 0x02963, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_717[] = { {"tilde", 5, 0x002DC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_719[] = { {"complement", 10, 0x02201, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_71B[] = { {"zcy", 3, 0x00437, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_71E[] = { {"boxDL", 5, 0x02557, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_71F[] = { {"micro", 5, 0x000B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_723[] = { {"horbar", 6, 0x02015, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_724[] = { {"boxDR", 5, 0x02554, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_727[] = { {"bsolhsub", 8, 0x027C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_729[] = { {"ac", 2, 0x0223E, 0}, {"nvdash", 6, 0x022AC, 0}, {"precapprox", 10, 0x02AB7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_72C[] = { {"af", 2, 0x02061, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_72D[] = { {"bullet", 6, 0x02022, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_72E[] = { {"demptyv", 7, 0x029B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_733[] = { {"geqq", 4, 0x02267, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_734[] = { {"uuarr", 5, 0x021C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_735[] = { {"Ocirc", 5, 0x000D4, 0}, {"utdot", 5, 0x022F0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_736[] = { {"ap", 2, 0x02248, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_738[] = { {"bNot", 4, 0x02AED, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_73B[] = { {"CirclePlus", 10, 0x02295, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_73D[] = { {"glE", 3, 0x02A92, 0}, {"midcir", 6, 0x02AF0, 0}, {"rppolint", 8, 0x02A12, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_73E[] = { {"boxDl", 5, 0x02556, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_73F[] = { {"sdot", 4, 0x022C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_744[] = { {"boxDr", 5, 0x02553, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_745[] = { {"Xscr", 4, 0x1D4B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_749[] = { {"dlcrop", 6, 0x0230D, 0}, {"gtrless", 7, 0x02277, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_74B[] = { {"aopf", 4, 0x1D552, 0}, {"operp", 5, 0x029B9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_74C[] = { {"kcy", 3, 0x0043A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_74F[] = { {"larrfs", 6, 0x0291D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_751[] = { {"rcub", 4, 0x0007D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_754[] = { {"nrtri", 5, 0x022EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_755[] = { {"nparsl", 6, 0x02AFD, 0x020E5}, {"ocirc", 5, 0x000F4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_759[] = { {"gla", 3, 0x02AA5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_75C[] = { {"Iuml", 4, 0x000CF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_75F[] = { {"mcomma", 6, 0x02A29, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_762[] = { {"glj", 3, 0x02AA4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_763[] = { {"Map", 3, 0x02905, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_765[] = { {"copysr", 6, 0x02117, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_766[] = { {"DownTeeArrow", 12, 0x021A7, 0}, {"Upsi", 4, 0x003D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_768[] = { {"awint", 5, 0x02A11, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_76E[] = { {"DownRightVector", 15, 0x021C1, 0}, {"NotEqual", 8, 0x02260, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_770[] = { {"gesl", 4, 0x022DB, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_772[] = { {"NotCupCap", 9, 0x0226D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_776[] = { {"blacktriangleright", 18, 0x025B8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_777[] = { {"zfr", 3, 0x1D537, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_779[] = { {"leftrightarrow", 14, 0x02194, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_77A[] = { {"Abreve", 6, 0x00102, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_77F[] = { {"Uarr", 4, 0x0219F, 0}, {"gnE", 3, 0x02269, 0}, {"supmult", 7, 0x02AC2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_781[] = { {"supplus", 7, 0x02AC0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_783[] = { {"nabla", 5, 0x02207, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_787[] = { {"Lang", 4, 0x027EA, 0}, {"laquo", 5, 0x000AB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_789[] = { {"larrhk", 6, 0x021A9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_78C[] = { {"Bopf", 4, 0x1D539, 0}, {"lowbar", 6, 0x0005F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_78D[] = { {"cup", 3, 0x0222A, 0}, {"dd", 2, 0x02146, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_78E[] = { {"nsce", 4, 0x02AB0, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_790[] = { {"nshortparallel", 14, 0x02226, 0}, {"nsupE", 5, 0x02AC6, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_794[] = { {"OpenCurlyQuote", 14, 0x02018, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_797[] = { {"bsolb", 5, 0x029C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_798[] = { {"DScy", 4, 0x00405, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_79A[] = { {"boxHD", 5, 0x02566, 0}, {"ltrPar", 6, 0x02996, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_79B[] = { {"nscr", 4, 0x1D4C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_79D[] = { {"lEg", 3, 0x02A8B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_79F[] = { {"egrave", 6, 0x000E8, 0}, {"gne", 3, 0x02A88, 0}, {"larrsim", 7, 0x02973, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7A0[] = { {"COPY", 4, 0x000A9, 0}, {"bdquo", 5, 0x0201E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7A1[] = { {"wopf", 4, 0x1D568, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7A2[] = { {"NotRightTriangleEqual", 21, 0x022ED, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7A5[] = { {"robrk", 5, 0x027E7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7A8[] = { {"kfr", 3, 0x1D528, 0}, {"nlsim", 5, 0x02274, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7AA[] = { {"xhArr", 5, 0x027FA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7AB[] = { {"boxHU", 5, 0x02569, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7AC[] = { {"lHar", 4, 0x02962, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7AE[] = { {"Mcy", 3, 0x0041C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7AF[] = { {"ee", 2, 0x02147, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7B0[] = { {"nsupe", 5, 0x02289, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7B1[] = { {"eg", 2, 0x02A9A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7B5[] = { {"trade", 5, 0x02122, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7B6[] = { {"el", 2, 0x02A99, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7B7[] = { {"nsucceq", 7, 0x02AB0, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7B8[] = { {"langle", 6, 0x027E8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7BA[] = { {"boxHd", 5, 0x02564, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7BB[] = { {"Subset", 6, 0x022D0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7BD[] = { {"DownArrowBar", 12, 0x02913, 0}, {"topbot", 6, 0x02336, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7BE[] = { {"OverBrace", 9, 0x023DE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7BF[] = { {"Eta", 3, 0x00397, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7C0[] = { {"hstrok", 6, 0x00127, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7C1[] = { {"Hacek", 5, 0x002C7, 0}, {"diamond", 7, 0x022C4, 0}, {"isinsv", 6, 0x022F3, 0}, {"rtriltri", 8, 0x029CE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7C9[] = { {"nvltrie", 7, 0x022B4, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7CB[] = { {"boxHu", 5, 0x02567, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7CD[] = { {"fpartint", 8, 0x02A0D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7CE[] = { {"Proportional", 12, 0x0221D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7D1[] = { {"NotSuperset", 11, 0x02283, 0x020D2}, {"gE", 2, 0x02267, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7D2[] = { {"scnsim", 6, 0x022E9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7D5[] = { {"uparrow", 7, 0x02191, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7D6[] = { {"ltlarr", 6, 0x02976, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7D9[] = { {"rtimes", 6, 0x022CA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7DA[] = { {"ncong", 5, 0x02247, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7DC[] = { {"Oscr", 4, 0x1D4AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7E0[] = { {"vArr", 4, 0x021D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7E2[] = { {"Xopf", 4, 0x1D54F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7E4[] = { {"notinva", 7, 0x02209, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7E5[] = { {"notinvb", 7, 0x022F7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7E6[] = { {"notinvc", 7, 0x022F6, 0}, {"nsqsube", 7, 0x022E2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7EC[] = { {"Tcaron", 6, 0x00164, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7EF[] = { {"upsilon", 7, 0x003C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7F1[] = { {"ge", 2, 0x02265, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7F3[] = { {"gg", 2, 0x0226B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7F6[] = { {"KJcy", 4, 0x0040C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7F8[] = { {"gl", 2, 0x02277, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7FB[] = { {"dblac", 5, 0x002DD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_7FC[] = { {"lAtail", 6, 0x0291B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_800[] = { {"gt", 2, 0x0003E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_802[] = { {"lotimes", 7, 0x02A34, 0}, {"seArr", 5, 0x021D8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_803[] = { {"Lacute", 6, 0x00139, 0}, {"Laplacetrf", 10, 0x02112, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_808[] = { {"uuml", 4, 0x000FC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_809[] = { {"Amacr", 5, 0x00100, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_80A[] = { {"Mfr", 3, 0x1D510, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_810[] = { {"Int", 3, 0x0222C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_811[] = { {"Vvdash", 6, 0x022AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_812[] = { {"Lcedil", 6, 0x0013B, 0}, {"larrlp", 6, 0x021AB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_816[] = { {"Larr", 4, 0x0219E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_819[] = { {"CircleTimes", 11, 0x02297, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_81C[] = { {"NotReverseElement", 17, 0x0220C, 0}, {"latail", 6, 0x02919, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_81D[] = { {"ntrianglerighteq", 16, 0x022ED, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_821[] = { {"blk12", 5, 0x02592, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_822[] = { {"intlarhk", 8, 0x02A17, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_823[] = { {"blk14", 5, 0x02591, 0}, {"ccupssm", 7, 0x02A50, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_824[] = { {"hercon", 6, 0x022B9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_828[] = { {"bigotimes", 9, 0x02A02, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_829[] = { {"amacr", 5, 0x00101, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_82D[] = { {"nrarrc", 6, 0x02933, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_82E[] = { {"ubreve", 6, 0x0016D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_830[] = { {"Yacute", 6, 0x000DD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_831[] = { {"ic", 2, 0x02063, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_832[] = { {"escr", 4, 0x0212F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_837[] = { {"ii", 2, 0x02148, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_838[] = { {"DownArrowUpArrow", 16, 0x021F5, 0}, {"nopf", 4, 0x1D55F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_83C[] = { {"in", 2, 0x02208, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_83E[] = { {"bumpE", 5, 0x02AAE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_83F[] = { {"rightharpoonup", 14, 0x021C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_841[] = { {"nrarrw", 6, 0x0219D, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_842[] = { {"it", 2, 0x02062, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_846[] = { {"ncaron", 6, 0x00148, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_84A[] = { {"succnsim", 8, 0x022E9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_84C[] = { {"gammad", 6, 0x003DD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_84F[] = { {"yucy", 4, 0x0044E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_850[] = { {"ocy", 3, 0x0043E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_855[] = { {"hybull", 6, 0x02043, 0}, {"rpargt", 6, 0x02994, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_857[] = { {"csube", 5, 0x02AD1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_85B[] = { {"iiota", 5, 0x02129, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_85C[] = { {"nsim", 4, 0x02241, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_85E[] = { {"LeftTriangleEqual", 17, 0x022B4, 0}, {"bumpe", 5, 0x0224F, 0}, {"nearhk", 6, 0x02924, 0}, {"nhpar", 5, 0x02AF2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_861[] = { {"risingdotseq", 12, 0x02253, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_865[] = { {"blk34", 5, 0x02593, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_866[] = { {"LeftTriangle", 12, 0x022B2, 0}, {"vBarv", 5, 0x02AE9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_867[] = { {"AElig", 5, 0x000C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_868[] = { {"DoubleUpDownArrow", 17, 0x021D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_86A[] = { {"cwint", 5, 0x02231, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_86B[] = { {"rtrie", 5, 0x022B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_86C[] = { {"rtrif", 5, 0x025B8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_873[] = { {"Fscr", 4, 0x02131, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_876[] = { {"lE", 2, 0x02266, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_879[] = { {"Oopf", 4, 0x1D546, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_87B[] = { {"spar", 4, 0x02225, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_87E[] = { {"uplus", 5, 0x0228E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_88A[] = { {"sacute", 6, 0x0015B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_88C[] = { {"fltns", 5, 0x025B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_88E[] = { {"rrarr", 5, 0x021C9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_892[] = { {"larrpl", 6, 0x02939, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_895[] = { {"ultri", 5, 0x025F8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_896[] = { {"le", 2, 0x02264, 0}, {"xuplus", 6, 0x02A04, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_897[] = { {"ljcy", 4, 0x00459, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_898[] = { {"lg", 2, 0x02276, 0}, {"vsubnE", 6, 0x02ACB, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_899[] = { {"scedil", 6, 0x0015F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_89D[] = { {"ll", 2, 0x0226A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8A5[] = { {"lt", 2, 0x0003C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8AC[] = { {"ofr", 3, 0x1D52C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8B3[] = { {"nexists", 7, 0x02204, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8B6[] = { {"smallsetminus", 13, 0x02216, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8B7[] = { {"InvisibleComma", 14, 0x02063, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8B8[] = { {"dotminus", 8, 0x02238, 0}, {"vsubne", 6, 0x0228A, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8B9[] = { {"iocy", 4, 0x00451, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8BA[] = { {"gsime", 5, 0x02A8E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8BC[] = { {"Rarrtl", 6, 0x02916, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8BD[] = { {"cirmid", 6, 0x02AEF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8C0[] = { {"ominus", 6, 0x02296, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8C1[] = { {"gsiml", 5, 0x02A90, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8C2[] = { {"Prime", 5, 0x02033, 0}, {"mp", 2, 0x02213, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8C4[] = { {"tint", 4, 0x0222D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8C7[] = { {"mu", 2, 0x003BC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8CF[] = { {"dbkarow", 7, 0x0290F, 0}, {"eopf", 4, 0x1D556, 0}, {"ogt", 3, 0x029C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8D0[] = { {"Precedes", 8, 0x0227A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8D3[] = { {"UpTeeArrow", 10, 0x021A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8D6[] = { {"varsupsetneq", 12, 0x0228B, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8D8[] = { {"ne", 2, 0x02260, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8DC[] = { {"ni", 2, 0x0220B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8DD[] = { {"mDDot", 5, 0x0223A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8DE[] = { {"cularrp", 7, 0x0293D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8DF[] = { {"rnmid", 5, 0x02AEE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8E0[] = { {"hardcy", 6, 0x0044A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8E2[] = { {"prime", 5, 0x02032, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8E3[] = { {"Bcy", 3, 0x00411, 0}, {"REG", 3, 0x000AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8E7[] = { {"oS", 2, 0x024C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8E8[] = { {"nu", 2, 0x003BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8E9[] = { {"ohm", 3, 0x003A9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8EB[] = { {"langd", 5, 0x02991, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8F3[] = { {"backprime", 9, 0x02035, 0}, {"esim", 4, 0x02242, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8FB[] = { {"veeeq", 5, 0x0225A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8FE[] = { {"RightCeiling", 12, 0x02309, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_8FF[] = { {"crarr", 5, 0x021B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_904[] = { {"eqsim", 5, 0x02242, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_906[] = { {"or", 2, 0x02228, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_907[] = { {"OverParenthesis", 15, 0x023DC, 0}, {"UpperLeftArrow", 14, 0x02196, 0}, {"nleftrightarrow", 15, 0x021AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_909[] = { {"expectation", 11, 0x02130, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_90C[] = { {"coprod", 6, 0x02210, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_90E[] = { {"Qfr", 3, 0x1D514, 0}, {"dArr", 4, 0x021D3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_910[] = { {"Fopf", 4, 0x1D53D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_913[] = { {"Cconint", 7, 0x02230, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_916[] = { {"larrtl", 6, 0x021A2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_918[] = { {"Aacute", 6, 0x000C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_919[] = { {"DownLeftRightVector", 19, 0x02950, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_91B[] = { {"circleddash", 11, 0x0229D, 0}, {"thinsp", 6, 0x02009, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_91E[] = { {"Longrightarrow", 14, 0x027F9, 0}, {"pi", 2, 0x003C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_91F[] = { {"hookrightarrow", 14, 0x021AA, 0}, {"rscr", 4, 0x1D4C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_920[] = { {"scE", 3, 0x02AB4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_922[] = { {"pm", 2, 0x000B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_923[] = { {"ZHcy", 4, 0x00416, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_927[] = { {"pr", 2, 0x0227A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_929[] = { {"LongLeftRightArrow", 18, 0x027F7, 0}, {"supset", 6, 0x02283, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_92A[] = { {"UpArrowBar", 10, 0x02912, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_92C[] = { {"Utilde", 6, 0x00168, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_92E[] = { {"xlArr", 5, 0x027F8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_930[] = { {"DoubleUpArrow", 13, 0x021D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_936[] = { {"alefsym", 7, 0x02135, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_939[] = { {"Scirc", 5, 0x0015C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_93B[] = { {"xotime", 6, 0x02A02, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_93F[] = { {"Bfr", 3, 0x1D505, 0}, {"rdca", 4, 0x02937, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_940[] = { {"sce", 3, 0x02AB0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_945[] = { {"Nacute", 6, 0x00143, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_947[] = { {"amalg", 5, 0x02A3F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_94D[] = { {"UpDownArrow", 11, 0x02195, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_94F[] = { {"EqualTilde", 10, 0x02242, 0}, {"boxUL", 5, 0x0255D, 0}, {"oslash", 6, 0x000F8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_950[] = { {"lnap", 4, 0x02A89, 0}, {"thorn", 5, 0x000FE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_952[] = { {"ssmile", 6, 0x02323, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_953[] = { {"ndash", 5, 0x02013, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_954[] = { {"Ncedil", 6, 0x00145, 0}, {"scy", 3, 0x00441, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_955[] = { {"boxUR", 5, 0x0255A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_956[] = { {"Aring", 5, 0x000C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_959[] = { {"scirc", 5, 0x0015D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_95B[] = { {"ccaron", 6, 0x0010D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_95D[] = { {"dotsquare", 9, 0x022A1, 0}, {"nshortmid", 9, 0x02224, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_95F[] = { {"rsquo", 5, 0x02019, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_960[] = { {"Sscr", 4, 0x1D4AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_963[] = { {"bigwedge", 8, 0x022C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_964[] = { {"Bernoullis", 10, 0x0212C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_969[] = { {"harrw", 5, 0x021AD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_96C[] = { {"SquareSubset", 12, 0x0228F, 0}, {"boxVH", 5, 0x0256C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_96F[] = { {"boxUl", 5, 0x0255C, 0}, {"rx", 2, 0x0211E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_970[] = { {"boxVL", 5, 0x02563, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_974[] = { {"olt", 3, 0x029C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_975[] = { {"boxUr", 5, 0x02559, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_976[] = { {"aring", 5, 0x000E5, 0}, {"boxVR", 5, 0x02560, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_97B[] = { {"sc", 2, 0x0227B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_97C[] = { {"NestedGreaterGreater", 20, 0x0226B, 0}, {"oast", 4, 0x0229B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_97F[] = { {"star", 4, 0x02606, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_981[] = { {"LeftTeeVector", 13, 0x0295A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_983[] = { {"bigsqcup", 8, 0x02A06, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_985[] = { {"dcy", 3, 0x00434, 0}, {"preceq", 6, 0x02AAF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_986[] = { {"otilde", 6, 0x000F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_988[] = { {"luruhar", 7, 0x02966, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_98C[] = { {"boxVh", 5, 0x0256B, 0}, {"capand", 6, 0x02A44, 0}, {"yuml", 4, 0x000FF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_98D[] = { {"Updownarrow", 11, 0x021D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_98F[] = { {"TildeEqual", 10, 0x02243, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_990[] = { {"boxVl", 5, 0x02562, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_996[] = { {"boxVr", 5, 0x0255F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_997[] = { {"HorizontalLine", 14, 0x02500, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_99B[] = { {"xmap", 4, 0x027FC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_99C[] = { {"sigmaf", 6, 0x003C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_99E[] = { {"EmptySmallSquare", 16, 0x025FB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_99F[] = { {"dzcy", 4, 0x0045F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9A0[] = { {"cups", 4, 0x0222A, 0x0FE00}, {"zwj", 3, 0x0200D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9A1[] = { {"beta", 4, 0x003B2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9A6[] = { {"supsim", 6, 0x02AC8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9A8[] = { {"beth", 4, 0x02136, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9AA[] = { {"Iukcy", 5, 0x00406, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9AC[] = { {"eparsl", 6, 0x029E3, 0}, {"sigmav", 6, 0x003C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9B0[] = { {"lhard", 5, 0x021BD, 0}, {"sfr", 3, 0x1D530, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9B4[] = { {"nsqsupe", 7, 0x022E3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9B5[] = { {"Jsercy", 6, 0x00408, 0}, {"deg", 3, 0x000B0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9B6[] = { {"Ucy", 3, 0x00423, 0}, {"iscr", 4, 0x1D4BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9B7[] = { {"efDot", 5, 0x02252, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9BB[] = { {"uhblk", 5, 0x02580, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9BC[] = { {"ropf", 4, 0x1D563, 0}, {"vprop", 5, 0x0221D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9BD[] = { {"isinE", 5, 0x022F9, 0}, {"raemptyv", 8, 0x029B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9C1[] = { {"lharu", 5, 0x021BC, 0}, {"ncongdot", 8, 0x02A6D, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9C2[] = { {"subnE", 5, 0x02ACB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9C3[] = { {"ngsim", 5, 0x02275, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9C5[] = { {"starf", 5, 0x02605, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9C9[] = { {"Ograve", 6, 0x000D2, 0}, {"hksearow", 8, 0x02925, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9CA[] = { {"iukcy", 5, 0x00456, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9CC[] = { {"uacute", 6, 0x000FA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9CF[] = { {"asymp", 5, 0x02248, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9D5[] = { {"lneq", 4, 0x02A87, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9D6[] = { {"Otimes", 6, 0x02A37, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9DA[] = { {"NotTildeTilde", 13, 0x02249, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9DB[] = { {"Integral", 8, 0x0222B, 0}, {"rbrke", 5, 0x0298C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9DD[] = { {"nsub", 4, 0x02284, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9DE[] = { {"rlhar", 5, 0x021CC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9E1[] = { {"dfr", 3, 0x1D521, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9E2[] = { {"subne", 5, 0x0228A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9E5[] = { {"varnothing", 10, 0x02205, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9E7[] = { {"Fcy", 3, 0x00424, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9E9[] = { {"DoubleLeftTee", 13, 0x02AE4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9EB[] = { {"isins", 5, 0x022F4, 0}, {"nsup", 4, 0x02285, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9ED[] = { {"circlearrowleft", 15, 0x021BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9EE[] = { {"isinv", 5, 0x02208, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9EF[] = { {"IEcy", 4, 0x00415, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F0[] = { {"conint", 6, 0x0222E, 0}, {"vBar", 4, 0x02AE8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F1[] = { {"edot", 4, 0x00117, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F2[] = { {"Kappa", 5, 0x0039A, 0}, {"MediumSpace", 11, 0x0205F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F3[] = { {"lbrksld", 7, 0x0298F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F4[] = { {"sect", 4, 0x000A7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F5[] = { {"nldr", 4, 0x02025, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F7[] = { {"Jscr", 4, 0x1D4A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9F9[] = { {"shy", 3, 0x000AD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9FA[] = { {"ulcrop", 6, 0x0230F, 0}, {"veebar", 6, 0x022BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_9FD[] = { {"Sopf", 4, 0x1D54A, 0}, {"cuwed", 5, 0x022CF, 0}, {"rAarr", 5, 0x021DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A01[] = { {"erarr", 5, 0x02971, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A04[] = { {"lbrkslu", 7, 0x0298D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A05[] = { {"NotSucceeds", 11, 0x02281, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A06[] = { {"nsccue", 6, 0x022E1, 0}, {"subrarr", 7, 0x02979, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A08[] = { {"looparrowright", 14, 0x021AC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A0C[] = { {"wp", 2, 0x02118, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A0D[] = { {"Emacr", 5, 0x00112, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A0E[] = { {"sim", 3, 0x0223C, 0}, {"wr", 2, 0x02240, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A10[] = { {"Udblac", 6, 0x00170, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A12[] = { {"Ufr", 3, 0x1D518, 0}, {"kappa", 5, 0x003BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A14[] = { {"notindot", 8, 0x022F5, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A15[] = { {"nleq", 4, 0x02270, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A16[] = { {"NestedLessLess", 14, 0x0226A, 0}, {"square", 6, 0x025A1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A17[] = { {"nles", 4, 0x02A7D, 0x00338}, {"squarf", 6, 0x025AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A21[] = { {"order", 5, 0x02134, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A23[] = { {"igrave", 6, 0x000EC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A24[] = { {"precneqq", 8, 0x02AB5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A25[] = { {"csupe", 5, 0x02AD2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A26[] = { {"xi", 2, 0x003BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A28[] = { {"NotHumpEqual", 12, 0x0224F, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A2A[] = { {"ord", 3, 0x02A5D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A2D[] = { {"emacr", 5, 0x00113, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A30[] = { {"nwnear", 6, 0x02927, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A32[] = { {"nprcue", 6, 0x022E0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A36[] = { {"NotExists", 9, 0x02204, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A37[] = { {"die", 3, 0x000A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A39[] = { {"ddotseq", 7, 0x02A77, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A3B[] = { {"Dashv", 5, 0x02AE4, 0}, {"Ucirc", 5, 0x000DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A3C[] = { {"orv", 3, 0x02A5B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A3D[] = { {"Because", 7, 0x02235, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A41[] = { {"kgreen", 6, 0x00138, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A43[] = { {"Ffr", 3, 0x1D509, 0}, {"LeftVector", 10, 0x021BC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A44[] = { {"lstrok", 6, 0x00142, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A45[] = { {"twixt", 5, 0x0226C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A48[] = { {"compfn", 6, 0x02218, 0}, {"div", 3, 0x000F7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A4F[] = { {"drcrop", 6, 0x0230C, 0}, {"shortmid", 8, 0x02223, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A53[] = { {"iopf", 4, 0x1D55A, 0}, {"triangledown", 12, 0x025BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A54[] = { {"IJlig", 5, 0x00132, 0}, {"thetasym", 8, 0x003D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A56[] = { {"Sigma", 5, 0x003A3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A57[] = { {"equivDD", 7, 0x02A78, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A5A[] = { {"Cacute", 6, 0x00106, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A5B[] = { {"dashv", 5, 0x022A3, 0}, {"ucirc", 5, 0x000FB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A61[] = { {"gneqq", 5, 0x02269, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A62[] = { {"gvertneqq", 9, 0x02269, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A63[] = { {"RightDownVectorBar", 18, 0x02955, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A64[] = { {"NotLessLess", 11, 0x0226A, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A69[] = { {"Ccedil", 6, 0x000C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A6A[] = { {"odblac", 6, 0x00151, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A6B[] = { {"mstpos", 6, 0x0223E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A6D[] = { {"cemptyv", 7, 0x029B2, 0}, {"rarrap", 6, 0x02975, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A6F[] = { {"rmoust", 6, 0x023B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A70[] = { {"elsdot", 6, 0x02A97, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A76[] = { {"sigma", 5, 0x003C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A78[] = { {"Implies", 7, 0x021D2, 0}, {"isin", 4, 0x02208, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A7A[] = { {"bottom", 6, 0x022A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A7E[] = { {"ShortRightArrow", 15, 0x02192, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A81[] = { {"cupcap", 6, 0x02A46, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A82[] = { {"NotSquareSuperset", 17, 0x02290, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A84[] = { {"LeftArrowRightArrow", 19, 0x021C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A85[] = { {"FilledVerySmallSquare", 21, 0x025AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A86[] = { {"LeftUpTeeVector", 15, 0x02960, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A89[] = { {"DoubleRightArrow", 16, 0x021D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A8D[] = { {"raquo", 5, 0x000BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A8E[] = { {"Ascr", 4, 0x1D49C, 0}, {"ReverseUpEquilibrium", 20, 0x0296F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A92[] = { {"hArr", 4, 0x021D4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A94[] = { {"Jopf", 4, 0x1D541, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A96[] = { {"npar", 4, 0x02226, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A98[] = { {"SupersetEqual", 13, 0x02287, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A99[] = { {"ffllig", 6, 0x0FB04, 0}, {"smt", 3, 0x02AAA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A9A[] = { {"twoheadrightarrow", 17, 0x021A0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A9D[] = { {"ecaron", 6, 0x0011B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_A9F[] = { {"NotRightTriangleBar", 19, 0x029D0, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AA3[] = { {"apid", 4, 0x0224B, 0}, {"vscr", 4, 0x1D4CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AA4[] = { {"supdot", 6, 0x02ABE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AA5[] = { {"colone", 6, 0x02254, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AA7[] = { {"dwangle", 7, 0x029A6, 0}, {"shchcy", 6, 0x00449, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AAC[] = { {"ltdot", 5, 0x022D6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AB2[] = { {"downharpoonright", 16, 0x021C2, 0}, {"gjcy", 4, 0x00453, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AB4[] = { {"wfr", 3, 0x1D534, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AB5[] = { {"rfisht", 6, 0x0297D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ABA[] = { {"Ycy", 3, 0x0042B, 0}, {"swarrow", 7, 0x02199, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AC0[] = { {"nharr", 5, 0x021AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AC4[] = { {"frac12", 6, 0x000BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AC5[] = { {"frac13", 6, 0x02153, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AC6[] = { {"frac14", 6, 0x000BC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AC7[] = { {"GreaterEqual", 12, 0x02265, 0}, {"frac15", 6, 0x02155, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AC8[] = { {"Gamma", 5, 0x00393, 0}, {"frac16", 6, 0x02159, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ACA[] = { {"dzigrarr", 8, 0x027FF, 0}, {"frac18", 6, 0x0215B, 0}, {"rcaron", 6, 0x00159, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ACC[] = { {"DownRightTeeVector", 18, 0x0295F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ACF[] = { {"nvrtrie", 7, 0x022B5, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AD2[] = { {"iota", 4, 0x003B9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AD3[] = { {"sol", 3, 0x0002F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AD4[] = { {"rbrace", 6, 0x0007D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ADA[] = { {"rbrack", 6, 0x0005D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ADD[] = { {"rsqb", 4, 0x0005D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ADF[] = { {"oint", 4, 0x0222E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AE4[] = { {"Wscr", 4, 0x1D4B2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AE5[] = { {"hfr", 3, 0x1D525, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AE6[] = { {"frac23", 6, 0x02154, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AE7[] = { {"dlcorn", 6, 0x0231E, 0}, {"verbar", 6, 0x0007C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AE8[] = { {"frac25", 6, 0x02156, 0}, {"gamma", 5, 0x003B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AE9[] = { {"nVDash", 6, 0x022AF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AEB[] = { {"Jcy", 3, 0x00419, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AF5[] = { {"nwarrow", 7, 0x02196, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AF6[] = { {"OverBar", 7, 0x0203E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AF7[] = { {"rightsquigarrow", 15, 0x0219D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AFA[] = { {"iexcl", 5, 0x000A1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AFD[] = { {"sqcap", 5, 0x02293, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_AFE[] = { {"pertenk", 7, 0x02031, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B08[] = { {"PrecedesEqual", 13, 0x02AAF, 0}, {"frac34", 6, 0x000BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B09[] = { {"Therefore", 9, 0x02234, 0}, {"frac35", 6, 0x02157, 0}, {"nvDash", 6, 0x022AD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B0A[] = { {"odsold", 6, 0x029BC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B0C[] = { {"dot", 3, 0x002D9, 0}, {"frac38", 6, 0x0215C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B10[] = { {"sqcaps", 6, 0x02293, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B11[] = { {"ZeroWidthSpace", 14, 0x0200B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B15[] = { {"rarrfs", 6, 0x0291E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B16[] = { {"Yfr", 3, 0x1D51C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B1E[] = { {"CircleDot", 9, 0x02299, 0}, {"gtcir", 5, 0x02A7A, 0}, {"squ", 3, 0x025A1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B1F[] = { {"angmsd", 6, 0x02221, 0}, {"nsubseteq", 9, 0x02288, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B23[] = { {"iprod", 5, 0x02A3C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B24[] = { {"bprime", 6, 0x02035, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B27[] = { {"supsub", 6, 0x02AD4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B29[] = { {"SquareSupersetEqual", 19, 0x02292, 0}, {"therefore", 9, 0x02234, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B2A[] = { {"frac45", 6, 0x02158, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B2B[] = { {"Aopf", 4, 0x1D538, 0}, {"NotGreaterFullEqual", 19, 0x02267, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B2C[] = { {"Tstrok", 6, 0x00166, 0}, {"rightleftarrows", 15, 0x021C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B2D[] = { {"Fouriertrf", 10, 0x02131, 0}, {"epar", 4, 0x022D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B2E[] = { {"omid", 4, 0x029B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B2F[] = { {"OpenCurlyDoubleQuote", 20, 0x0201C, 0}, {"dagger", 6, 0x02020, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B33[] = { {"semi", 4, 0x0003B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B35[] = { {"supsup", 6, 0x02AD6, 0}, {"zeetrf", 6, 0x02128, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B36[] = { {"DifferentialD", 13, 0x02146, 0}, {"topcir", 6, 0x02AF1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B3A[] = { {"mscr", 4, 0x1D4C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B3D[] = { {"Wcirc", 5, 0x00174, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B3E[] = { {"boxdL", 5, 0x02555, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B40[] = { {"Gbreve", 6, 0x0011E, 0}, {"vopf", 4, 0x1D567, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B42[] = { {"lap", 3, 0x02A85, 0}, {"llarr", 5, 0x021C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B44[] = { {"boxdR", 5, 0x02552, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B46[] = { {"RightAngleBracket", 17, 0x027E9, 0}, {"lat", 3, 0x02AAB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B47[] = { {"Jfr", 3, 0x1D50D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B4C[] = { {"frac56", 6, 0x0215A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B4E[] = { {"frac58", 6, 0x0215D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B4F[] = { {"rarrhk", 6, 0x021AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B50[] = { {"lesdot", 6, 0x02A7F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B51[] = { {"ApplyFunction", 13, 0x02061, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B52[] = { {"NotGreaterTilde", 15, 0x02275, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B53[] = { {"Cedilla", 7, 0x000B8, 0}, {"curvearrowright", 15, 0x021B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B56[] = { {"rdsh", 4, 0x021B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B58[] = { {"larrb", 5, 0x021E4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B5C[] = { {"vrtri", 5, 0x022B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B5D[] = { {"nequiv", 6, 0x02262, 0}, {"wcirc", 5, 0x00175, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B5E[] = { {"boxdl", 5, 0x02510, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B63[] = { {"DoubleDownArrow", 15, 0x021D3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B64[] = { {"boxdr", 5, 0x0250C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B67[] = { {"pluscir", 7, 0x02A22, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B69[] = { {"longmapsto", 10, 0x027FC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B6B[] = { {"gnap", 4, 0x02A8A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B6D[] = { {"bigodot", 7, 0x02A00, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B72[] = { {"thickapprox", 11, 0x02248, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B73[] = { {"DotDot", 6, 0x020DC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B77[] = { {"incare", 6, 0x02105, 0}, {"rarrbfs", 7, 0x02920, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B78[] = { {"apos", 4, 0x00027, 0}, {"tbrk", 4, 0x023B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B7A[] = { {"grave", 5, 0x00060, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B7B[] = { {"Nscr", 4, 0x1D4A9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B7E[] = { {"rangle", 6, 0x027E9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B7F[] = { {"uArr", 4, 0x021D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B81[] = { {"Wopf", 4, 0x1D54E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B82[] = { {"doteq", 5, 0x02250, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B87[] = { {"times", 5, 0x000D7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B8D[] = { {"fflig", 5, 0x0FB00, 0}, {"lcy", 3, 0x0043B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B8F[] = { {"sub", 3, 0x02282, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B90[] = { {"frac78", 6, 0x0215E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B94[] = { {"xrarr", 5, 0x027F6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B98[] = { {"UpArrowDownArrow", 16, 0x021C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B99[] = { {"bbrktbrk", 8, 0x023B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B9A[] = { {"abreve", 6, 0x00103, 0}, {"lsaquo", 6, 0x02039, 0}, {"sum", 3, 0x02211, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B9C[] = { {"Eacute", 6, 0x000C9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_B9D[] = { {"sup", 3, 0x02283, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BA5[] = { {"ContourIntegral", 15, 0x0222E, 0}, {"DiacriticalDot", 14, 0x002D9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BA9[] = { {"trisb", 5, 0x029CD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BAE[] = { {"Hcirc", 5, 0x00124, 0}, {"lceil", 5, 0x02308, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BB2[] = { {"Zcaron", 6, 0x0017D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BB5[] = { {"looparrowleft", 13, 0x021AB, 0}, {"oelig", 5, 0x00153, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BB6[] = { {"LessSlantEqual", 14, 0x02A7D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BB7[] = { {"NegativeThinSpace", 17, 0x0200B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BBA[] = { {"boxhD", 5, 0x02565, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BBC[] = { {"omicron", 7, 0x003BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BBD[] = { {"leg", 3, 0x022DA, 0}, {"rightthreetimes", 15, 0x022CC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BBF[] = { {"NotSucceedsSlantEqual", 21, 0x022E1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC1[] = { {"angmsdaa", 8, 0x029A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC2[] = { {"angmsdab", 8, 0x029A9, 0}, {"rAtail", 6, 0x0291C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC3[] = { {"angmsdac", 8, 0x029AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC4[] = { {"angmsdad", 8, 0x029AB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC5[] = { {"angmsdae", 8, 0x029AC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC6[] = { {"angmsdaf", 8, 0x029AD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC7[] = { {"angmsdag", 8, 0x029AE, 0}, {"leq", 3, 0x02264, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC8[] = { {"angmsdah", 8, 0x029AF, 0}, {"solbar", 6, 0x0233F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BC9[] = { {"Racute", 6, 0x00154, 0}, {"les", 3, 0x02A7D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BCB[] = { {"boxhU", 5, 0x02568, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BCE[] = { {"hcirc", 5, 0x00125, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BD1[] = { {"dscr", 4, 0x1D4B9, 0}, {"smashp", 6, 0x02A33, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BD7[] = { {"mopf", 4, 0x1D55E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BD8[] = { {"Rcedil", 6, 0x00156, 0}, {"dscy", 4, 0x00455, 0}, {"prap", 4, 0x02AB7, 0}, {"rarrlp", 6, 0x021AC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BD9[] = { {"Aogon", 5, 0x00104, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BDA[] = { {"boxhd", 5, 0x0252C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BDB[] = { {"subset", 6, 0x02282, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BDD[] = { {"lgE", 3, 0x02A91, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BDF[] = { {"epsilon", 7, 0x003B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BE1[] = { {"curarrm", 7, 0x0293C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BE2[] = { {"ratail", 6, 0x0291A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BE4[] = { {"DoubleLongLeftRightArrow", 24, 0x027FA, 0}, {"rhov", 4, 0x003F1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BE7[] = { {"LeftDoubleBracket", 17, 0x027E6, 0}, {"Lleftarrow", 10, 0x021DA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BE8[] = { {"Uuml", 4, 0x000DC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BE9[] = { {"lfr", 3, 0x1D529, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BEA[] = { {"minusdu", 7, 0x02A2A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BEB[] = { {"boxhu", 5, 0x02534, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BEF[] = { {"Ncy", 3, 0x0041D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BF0[] = { {"gneq", 4, 0x02A88, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BF1[] = { {"rangd", 5, 0x02992, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BF2[] = { {"range", 5, 0x029A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BF3[] = { {"lfloor", 6, 0x0230A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BF7[] = { {"NotSucceedsTilde", 16, 0x0227F, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BF9[] = { {"aogon", 5, 0x00105, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BFA[] = { {"NotGreaterSlantEqual", 20, 0x02A7E, 0x00338}, {"NotSquareSupersetEqual", 22, 0x022E3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_BFC[] = { {"profsurf", 8, 0x02313, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C02[] = { {"wedgeq", 6, 0x02259, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C0B[] = { {"Alpha", 5, 0x00391, 0}, {"DiacriticalDoubleAcute", 22, 0x002DD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C0C[] = { {"lltri", 5, 0x025FA, 0}, {"tcaron", 6, 0x00165, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C11[] = { {"Imacr", 5, 0x0012A, 0}, {"subseteq", 8, 0x02286, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C12[] = { {"Escr", 4, 0x02130, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C16[] = { {"lArr", 4, 0x021D0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C18[] = { {"Nopf", 4, 0x02115, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C1A[] = { {"rpar", 4, 0x00029, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C1D[] = { {"divonx", 6, 0x022C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C1E[] = { {"olcir", 5, 0x029BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C23[] = { {"lacute", 6, 0x0013A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C27[] = { {"zscr", 4, 0x1D4CF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C2B[] = { {"alpha", 5, 0x003B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C31[] = { {"imacr", 5, 0x0012B, 0}, {"vellip", 6, 0x022EE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C32[] = { {"lcedil", 6, 0x0013C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C33[] = { {"sime", 4, 0x02243, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C34[] = { {"empty", 5, 0x02205, 0}, {"imped", 5, 0x001B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C35[] = { {"simg", 4, 0x02A9E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C36[] = { {"kjcy", 4, 0x0045C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C3A[] = { {"siml", 4, 0x02A9D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C3E[] = { {"LessEqualGreater", 16, 0x022DA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C3F[] = { {"Ycirc", 5, 0x00176, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C40[] = { {"RoundImplies", 12, 0x02970, 0}, {"nvrArr", 6, 0x02903, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C43[] = { {"check", 5, 0x02713, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C44[] = { {"nlarr", 5, 0x0219A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C46[] = { {"middot", 6, 0x000B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C48[] = { {"par", 3, 0x02225, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C4A[] = { {"NotGreaterGreater", 17, 0x0226B, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C4B[] = { {"Nfr", 3, 0x1D511, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C4F[] = { {"nwArr", 5, 0x021D6, 0}, {"prec", 4, 0x0227A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C50[] = { {"Barv", 4, 0x02AE7, 0}, {"yacute", 6, 0x000FD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C54[] = { {"DoubleLeftRightArrow", 20, 0x021D4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C58[] = { {"Coproduct", 9, 0x02210, 0}, {"rarrpl", 6, 0x02945, 0}, {"subsim", 6, 0x02AC7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C5A[] = { {"ntgl", 4, 0x02279, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C5B[] = { {"LeftTriangleBar", 15, 0x029CF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C5F[] = { {"ycirc", 5, 0x00177, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C69[] = { {"doteqdot", 8, 0x02251, 0}, {"nang", 4, 0x02220, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C6B[] = { {"bigcap", 6, 0x022C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C6C[] = { {"CHcy", 4, 0x00427, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C6E[] = { {"dopf", 4, 0x1D555, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C72[] = { {"inodot", 6, 0x00131, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C76[] = { {"nvHarr", 6, 0x02904, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C77[] = { {"laemptyv", 8, 0x029B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C78[] = { {"bigcirc", 7, 0x025EF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C7A[] = { {"scnap", 5, 0x02ABA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C7B[] = { {"DownLeftVector", 14, 0x021BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C80[] = { {"race", 4, 0x0223D, 0x00331}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C82[] = { {"vartriangleright", 16, 0x022B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C89[] = { {"napE", 4, 0x02A70, 0x00338}, {"supedot", 7, 0x02AC4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C8E[] = { {"acE", 3, 0x0223E, 0x00333}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C91[] = { {"pcy", 3, 0x0043F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C93[] = { {"qprime", 6, 0x02057, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C94[] = { {"RightTeeVector", 14, 0x0295B, 0}, {"curlyvee", 8, 0x022CE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C95[] = { {"swarhk", 6, 0x02926, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_C98[] = { {"Atilde", 6, 0x000C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CA6[] = { {"bbrk", 4, 0x023B5, 0}, {"prnap", 5, 0x02AB9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CA8[] = { {"image", 5, 0x02111, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CA9[] = { {"sext", 4, 0x02736, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CAA[] = { {"ldquo", 5, 0x0201C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CAC[] = { {"NotLeftTriangleBar", 18, 0x029CF, 0x00338}, {"epsiv", 5, 0x003F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CAD[] = { {"CenterDot", 9, 0x000B7, 0}, {"acd", 3, 0x0223F, 0}, {"upuparrows", 10, 0x021C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CAF[] = { {"Eopf", 4, 0x1D53C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CB0[] = { {"Jcirc", 5, 0x00134, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CB2[] = { {"smid", 4, 0x02223, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CB4[] = { {"bull", 4, 0x02022, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CB6[] = { {"rhard", 5, 0x021C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CB7[] = { {"nsupset", 7, 0x02283, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CBA[] = { {"npre", 4, 0x02AAF, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CBE[] = { {"qscr", 4, 0x1D4C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CC2[] = { {"acy", 3, 0x00430, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CC4[] = { {"lnE", 3, 0x02268, 0}, {"zopf", 4, 0x1D56B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CC5[] = { {"Ntilde", 6, 0x000D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CC7[] = { {"rharu", 5, 0x021C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CC8[] = { {"kappav", 6, 0x003F0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CC9[] = { {"timesb", 6, 0x022A0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CCB[] = { {"iiiint", 6, 0x02A0C, 0}, {"timesd", 6, 0x02A30, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CD0[] = { {"jcirc", 5, 0x00135, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CD2[] = { {"nsimeq", 6, 0x02244, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CD3[] = { {"Esim", 4, 0x02A73, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CD9[] = { {"Cap", 3, 0x022D2, 0}, {"bump", 4, 0x0224E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CDA[] = { {"lvnE", 4, 0x02268, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CDC[] = { {"rarrtl", 6, 0x021A3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CE4[] = { {"lne", 3, 0x02A87, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CE6[] = { {"commat", 6, 0x00040, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CE8[] = { {"hslash", 6, 0x0210F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CE9[] = { {"lthree", 6, 0x022CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CED[] = { {"Gcedil", 6, 0x00122, 0}, {"pfr", 3, 0x1D52D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CF1[] = { {"RightTriangleEqual", 18, 0x022B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CF2[] = { {"ngeqslant", 9, 0x02A7E, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CF3[] = { {"Rcy", 3, 0x00420, 0}, {"gimel", 5, 0x02137, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CF4[] = { {"curarr", 6, 0x021B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CFA[] = { {"ntlg", 4, 0x02278, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_CFF[] = { {"Rscr", 4, 0x0211B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D00[] = { {"urcrop", 6, 0x0230E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D06[] = { {"Poincareplane", 13, 0x0210C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D07[] = { {"NoBreak", 7, 0x02060, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D0B[] = { {"lcub", 4, 0x0007B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D0E[] = { {"nltri", 5, 0x022EA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D10[] = { {"blacktriangledown", 17, 0x025BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D11[] = { {"fjlig", 5, 0x00066, 0x0006A}, {"percnt", 6, 0x00025, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D12[] = { {"rightharpoondown", 16, 0x021C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D13[] = { {"LeftAngleBracket", 16, 0x027E8, 0}, {"npreceq", 7, 0x02AAF, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D15[] = { {"cupcup", 6, 0x02A4A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D18[] = { {"LeftVectorBar", 13, 0x02952, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D19[] = { {"NJcy", 4, 0x0040A, 0}, {"triangleright", 13, 0x025B9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D1A[] = { {"Tcedil", 6, 0x00162, 0}, {"loz", 3, 0x025CA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D1E[] = { {"afr", 3, 0x1D51E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D1F[] = { {"NotLessTilde", 12, 0x02274, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D20[] = { {"NotElement", 10, 0x02209, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D22[] = { {"NotHumpDownHump", 15, 0x0224E, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D24[] = { {"SquareSubsetEqual", 17, 0x02291, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D26[] = { {"nleqq", 5, 0x02266, 0x00338}, {"phi", 3, 0x003C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D2A[] = { {"NotRightTriangle", 16, 0x022EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D32[] = { {"lhblk", 5, 0x02584, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D34[] = { {"caret", 5, 0x02041, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D35[] = { {"bsemi", 5, 0x0204F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D38[] = { {"aacute", 6, 0x000E1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D39[] = { {"mapsto", 6, 0x021A6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D3A[] = { {"Congruent", 9, 0x02261, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D3B[] = { {"Vdash", 5, 0x022A9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D3E[] = { {"longrightarrow", 14, 0x027F6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D42[] = { {"iinfin", 6, 0x029DC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D44[] = { {"EmptyVerySmallSquare", 20, 0x025AB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D49[] = { {"real", 4, 0x0211C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D4C[] = { {"SucceedsEqual", 13, 0x02AB0, 0}, {"utilde", 6, 0x00169, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D4F[] = { {"Rfr", 3, 0x0211C, 0}, {"tau", 3, 0x003C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D51[] = { {"Wedge", 5, 0x022C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D54[] = { {"piv", 3, 0x003D6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D55[] = { {"hscr", 4, 0x1D4BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D56[] = { {"subdot", 6, 0x02ABD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D57[] = { {"dsol", 4, 0x029F6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D5A[] = { {"prnE", 4, 0x02AB5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D5B[] = { {"qopf", 4, 0x1D562, 0}, {"vdash", 5, 0x022A2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D5F[] = { {"Star", 4, 0x022C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D63[] = { {"sqsupseteq", 10, 0x02292, 0}, {"zhcy", 4, 0x00436, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D65[] = { {"nacute", 6, 0x00144, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D69[] = { {"lessgtr", 7, 0x02276, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D6A[] = { {"nless", 5, 0x0226E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D6C[] = { {"RightTeeArrow", 13, 0x021A6, 0}, {"Yuml", 4, 0x00178, 0}, {"target", 6, 0x02316, 0}, {"upharpoonleft", 13, 0x021BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D6F[] = { {"between", 7, 0x0226C, 0}, {"boxuL", 5, 0x0255B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D70[] = { {"TSHcy", 5, 0x0040B, 0}, {"lrm", 3, 0x0200E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D71[] = { {"excl", 4, 0x00021, 0}, {"hyphen", 6, 0x02010, 0}, {"mlcp", 4, 0x02ADB, 0}, {"wedge", 5, 0x02227, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D74[] = { {"ncedil", 6, 0x00146, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D75[] = { {"boxuR", 5, 0x02558, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D76[] = { {"Not", 3, 0x02AEC, 0}, {"epsi", 4, 0x003B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D7C[] = { {"disin", 5, 0x022F2, 0}, {"nRightarrow", 11, 0x021CF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D7D[] = { {"cylcty", 6, 0x0232D, 0}, {"neArr", 5, 0x021D7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D7E[] = { {"prnsim", 6, 0x022E8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D80[] = { {"Cfr", 3, 0x0212D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D81[] = { {"Beta", 4, 0x00392, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D85[] = { {"leftarrowtail", 13, 0x021A2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D87[] = { {"parsl", 5, 0x02AFD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D89[] = { {"xwedge", 6, 0x022C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D8A[] = { {"olcross", 7, 0x029BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D8C[] = { {"boxvH", 5, 0x0256A, 0}, {"lsh", 3, 0x021B0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D8D[] = { {"circledR", 8, 0x000AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D8E[] = { {"Rho", 3, 0x003A1, 0}, {"circledS", 8, 0x024C8, 0}, {"cupor", 5, 0x02A45, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D8F[] = { {"Ugrave", 6, 0x000D9, 0}, {"boxul", 5, 0x02518, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D90[] = { {"boxvL", 5, 0x02561, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D91[] = { {"sqcup", 5, 0x02294, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D93[] = { {"rect", 4, 0x025AD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D94[] = { {"mldr", 4, 0x02026, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D95[] = { {"boxur", 5, 0x02514, 0}, {"digamma", 7, 0x003DD, 0}, {"tcy", 3, 0x00442, 0}, {"urcorner", 8, 0x0231D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D96[] = { {"DoubleLeftArrow", 15, 0x021D0, 0}, {"Iscr", 4, 0x02110, 0}, {"boxvR", 5, 0x0255E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D98[] = { {"ulcorn", 6, 0x0231C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D9A[] = { {"prod", 4, 0x0220F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_D9C[] = { {"Ropf", 4, 0x0211D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DA0[] = { {"rmoustache", 10, 0x023B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DA5[] = { {"NegativeMediumSpace", 19, 0x0200B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DA6[] = { {"prop", 4, 0x0221D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DA8[] = { {"TScy", 4, 0x00426, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DA9[] = { {"xsqcup", 6, 0x02A06, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DAC[] = { {"bemptyv", 7, 0x029B0, 0}, {"boxvh", 5, 0x0253C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DB0[] = { {"boxvl", 5, 0x02524, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DB3[] = { {"NotTildeFullEqual", 17, 0x02247, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DB4[] = { {"subE", 4, 0x02AC5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DB6[] = { {"boxvr", 5, 0x0251C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DB7[] = { {"bigvee", 6, 0x022C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DB9[] = { {"Chi", 3, 0x003A7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DBC[] = { {"circeq", 6, 0x02257, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DBE[] = { {"emsp13", 6, 0x02004, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DBF[] = { {"emsp14", 6, 0x02005, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DC2[] = { {"ouml", 4, 0x000F6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DC3[] = { {"RightArrowBar", 13, 0x021E5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DC6[] = { {"ecy", 3, 0x0044D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DC8[] = { {"succneqq", 8, 0x02AB6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DCA[] = { {"npart", 5, 0x02202, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DCF[] = { {"Element", 7, 0x02208, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DD1[] = { {"Edot", 4, 0x00116, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DD3[] = { {"RightUpDownVector", 17, 0x0294F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DD4[] = { {"sube", 4, 0x02286, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DD5[] = { {"jsercy", 6, 0x00458, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DD7[] = { {"varrho", 6, 0x003F1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DD9[] = { {"subsub", 6, 0x02AD5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DDC[] = { {"Dcaron", 6, 0x0010E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DDD[] = { {"Eogon", 5, 0x00118, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DE4[] = { {"geqslant", 8, 0x02A7E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DE6[] = { {"rdldhar", 7, 0x02969, 0}, {"zdot", 4, 0x0017C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DE7[] = { {"subsup", 6, 0x02AD3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DE9[] = { {"ograve", 6, 0x000F2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DEB[] = { {"ReverseElement", 14, 0x0220B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DED[] = { {"drcorn", 6, 0x0231F, 0}, {"rang", 4, 0x027E9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DF1[] = { {"tfr", 3, 0x1D531, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DF2[] = { {"hopf", 4, 0x1D559, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DF3[] = { {"succ", 4, 0x0227B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DF6[] = { {"otimes", 6, 0x02297, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DF7[] = { {"Vcy", 3, 0x00412, 0}, {"ltquest", 7, 0x02A7B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DF9[] = { {"lozenge", 7, 0x025CA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DFB[] = { {"LeftDownVector", 14, 0x021C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_DFD[] = { {"eogon", 5, 0x00119, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E03[] = { {"amp", 3, 0x00026, 0}, {"lopar", 5, 0x02985, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E04[] = { {"loplus", 6, 0x02A2D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E08[] = { {"NotTilde", 8, 0x02241, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E09[] = { {"CounterClockwiseContourIntegral", 31, 0x02233, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E0C[] = { {"InvisibleTimes", 14, 0x02062, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E11[] = { {"lesdotor", 8, 0x02A83, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E18[] = { {"and", 3, 0x02227, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E1B[] = { {"RightUpVector", 13, 0x021BE, 0}, {"ang", 3, 0x02220, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E1C[] = { {"DoubleRightTee", 14, 0x022A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E1D[] = { {"LeftUpVectorBar", 15, 0x02958, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E1E[] = { {"smte", 4, 0x02AAC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E20[] = { {"Iacute", 6, 0x000CD, 0}, {"triminus", 8, 0x02A3A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E22[] = { {"efr", 3, 0x1D522, 0}, {"iiint", 5, 0x0222D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E23[] = { {"ctdot", 5, 0x022EF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E24[] = { {"mnplus", 6, 0x02213, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E25[] = { {"Vee", 3, 0x022C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E28[] = { {"Gcy", 3, 0x00413, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E2A[] = { {"lurdshar", 8, 0x0294A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E2C[] = { {"smeparsl", 8, 0x029E4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E2F[] = { {"DoubleVerticalBar", 17, 0x02225, 0}, {"iecy", 4, 0x00435, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E30[] = { {"udblac", 6, 0x00171, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E32[] = { {"gtquest", 7, 0x02A7C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E33[] = { {"Iopf", 4, 0x1D540, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E35[] = { {"bsime", 5, 0x022CD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E36[] = { {"RightVector", 11, 0x021C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E37[] = { {"NotGreaterLess", 14, 0x02279, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E3B[] = { {"apE", 3, 0x02A70, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E41[] = { {"CupCap", 6, 0x0224D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E42[] = { {"uscr", 4, 0x1D4CA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E43[] = { {"erDot", 5, 0x02253, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E44[] = { {"egs", 3, 0x02A96, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E48[] = { {"rlarr", 5, 0x021C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E4C[] = { {"prE", 3, 0x02AB3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E4E[] = { {"QUOT", 4, 0x00022, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E53[] = { {"Vfr", 3, 0x1D519, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E55[] = { {"cupbrcap", 8, 0x02A48, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E57[] = { {"intercal", 8, 0x022BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E58[] = { {"imath", 5, 0x00131, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E59[] = { {"RightUpTeeVector", 16, 0x0295C, 0}, {"trie", 4, 0x0225C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E5B[] = { {"ape", 3, 0x0224A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E5D[] = { {"softcy", 6, 0x0044C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E5E[] = { {"rarrb", 5, 0x021E5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E5F[] = { {"FilledSmallSquare", 17, 0x025FC, 0}, {"rarrc", 5, 0x02933, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E60[] = { {"Superset", 8, 0x02283, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E61[] = { {"hoarr", 5, 0x021FF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E63[] = { {"DownRightVectorBar", 18, 0x02957, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E64[] = { {"brvbar", 6, 0x000A6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E65[] = { {"ecolon", 6, 0x02255, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E66[] = { {"GreaterLess", 11, 0x02277, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E6A[] = { {"nrArr", 5, 0x021CF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E6C[] = { {"pre", 3, 0x02AAF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E6F[] = { {"aleph", 5, 0x02135, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E70[] = { {"DiacriticalAcute", 16, 0x000B4, 0}, {"SmallCircle", 11, 0x02218, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E71[] = { {"parsim", 6, 0x02AF3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E73[] = { {"rarrw", 5, 0x0219D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E78[] = { {"caron", 5, 0x002C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E7A[] = { {"cacute", 6, 0x00107, 0}, {"lagran", 6, 0x02112, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E7C[] = { {"rarr", 4, 0x02192, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E80[] = { {"Rrightarrow", 11, 0x021DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E83[] = { {"Vscr", 4, 0x1D4B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E84[] = { {"Gfr", 3, 0x1D50A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E89[] = { {"ccedil", 6, 0x000E7, 0}, {"propto", 6, 0x0221D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E8E[] = { {"zwnj", 4, 0x0200C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E91[] = { {"psi", 3, 0x003C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E99[] = { {"infin", 5, 0x0221E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_E9C[] = { {"circledcirc", 11, 0x0229A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EA1[] = { {"Proportion", 10, 0x02237, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EA2[] = { {"subseteqq", 9, 0x02AC5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EA4[] = { {"nGtv", 4, 0x0226B, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EA8[] = { {"macr", 4, 0x000AF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EA9[] = { {"orslope", 7, 0x02A57, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EB1[] = { {"frown", 5, 0x02322, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EB2[] = { {"Iota", 4, 0x00399, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EB4[] = { {"rceil", 5, 0x02309, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EB7[] = { {"spadesuit", 9, 0x02660, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EB8[] = { {"sstarf", 6, 0x022C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ECA[] = { {"icy", 3, 0x00438, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ECD[] = { {"ast", 3, 0x0002A, 0}, {"nmid", 4, 0x02224, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ECF[] = { {"bowtie", 6, 0x022C8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ED1[] = { {"thetav", 6, 0x003D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ED7[] = { {"vangrt", 6, 0x0299C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ED8[] = { {"numsp", 5, 0x02007, 0}, {"triplus", 7, 0x02A39, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_ED9[] = { {"lscr", 4, 0x1D4C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EDA[] = { {"pointint", 8, 0x02A15, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EDB[] = { {"Theta", 5, 0x00398, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EDF[] = { {"rightrightarrows", 16, 0x021C9, 0}, {"uopf", 4, 0x1D566, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EE2[] = { {"ell", 3, 0x02113, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EE4[] = { {"cuepr", 5, 0x022DE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EE5[] = { {"NotVerticalBar", 14, 0x02224, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EE7[] = { {"xnis", 4, 0x022FB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EE9[] = { {"els", 3, 0x02A95, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EEF[] = { {"DDotrahd", 8, 0x02911, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EF1[] = { {"larrbfs", 7, 0x0291F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EF2[] = { {"Rsh", 3, 0x021B1, 0}, {"boxplus", 7, 0x0229E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EF4[] = { {"swarr", 5, 0x02199, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EF5[] = { {"gvnE", 4, 0x02269, 0x0FE00}, {"xfr", 3, 0x1D535, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EF9[] = { {"ldca", 4, 0x02936, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EFB[] = { {"NotPrecedesSlantEqual", 21, 0x022E0, 0}, {"YAcy", 4, 0x0042F, 0}, {"Zcy", 3, 0x00417, 0}, {"andslope", 8, 0x02A58, 0}, {"numero", 6, 0x02116, 0}, {"theta", 5, 0x003B8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EFE[] = { {"mapstoup", 8, 0x021A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_EFF[] = { {"bigcup", 6, 0x022C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F03[] = { {"nesear", 6, 0x02928, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F05[] = { {"lesssim", 7, 0x02272, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F08[] = { {"DownArrow", 9, 0x02193, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F0B[] = { {"orarr", 5, 0x021BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F0F[] = { {"ccaps", 5, 0x02A4D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F10[] = { {"xdtri", 5, 0x025BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F11[] = { {"xcap", 4, 0x022C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F13[] = { {"downdownarrows", 14, 0x021CA, 0}, {"nisd", 4, 0x022FA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F14[] = { {"VerticalBar", 11, 0x02223, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F15[] = { {"TRADE", 5, 0x02122, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F17[] = { {"Omacr", 5, 0x0014C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F18[] = { {"top", 3, 0x022A4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F19[] = { {"LeftRightArrow", 14, 0x02194, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F1A[] = { {"Mscr", 4, 0x02133, 0}, {"iff", 3, 0x021D4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F1F[] = { {"downharpoonleft", 15, 0x021C3, 0}, {"eng", 3, 0x0014B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F20[] = { {"Vopf", 4, 0x1D54D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F26[] = { {"ifr", 3, 0x1D526, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F28[] = { {"Downarrow", 9, 0x021D3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F2C[] = { {"Kcy", 3, 0x0041A, 0}, {"angle", 5, 0x02220, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F2F[] = { {"lescc", 5, 0x02AA8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F30[] = { {"lesseqqgtr", 10, 0x02A8B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F31[] = { {"bigstar", 7, 0x02605, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F33[] = { {"ddagger", 7, 0x02021, 0}, {"nltrie", 6, 0x022EC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F37[] = { {"omacr", 5, 0x0014D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F38[] = { {"cuesc", 5, 0x022DF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F40[] = { {"circlearrowright", 16, 0x021BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F41[] = { {"ngeqq", 5, 0x02267, 0x00338}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F44[] = { {"squf", 4, 0x025AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F46[] = { {"rtri", 4, 0x025B9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F47[] = { {"VerticalLine", 12, 0x0007C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F48[] = { {"downarrow", 9, 0x02193, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F4B[] = { {"Scaron", 6, 0x00160, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F4C[] = { {"tstrok", 6, 0x00167, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F50[] = { {"wreath", 6, 0x02240, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F51[] = { {"exponentiale", 12, 0x02147, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F55[] = { {"Idot", 4, 0x00130, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F57[] = { {"Zfr", 3, 0x02128, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F58[] = { {"bnot", 4, 0x02310, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F5B[] = { {"infintie", 8, 0x029DD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F5D[] = { {"angrtvbd", 8, 0x0299D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F5F[] = { {"prurel", 6, 0x022B0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F60[] = { {"gbreve", 6, 0x0011F, 0}, {"rsaquo", 6, 0x0203A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F62[] = { {"sung", 4, 0x0266A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F67[] = { {"lvertneqq", 9, 0x02268, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F68[] = { {"lnsim", 5, 0x022E6, 0}, {"searrow", 7, 0x02198, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F69[] = { {"nsubset", 7, 0x02282, 0x020D2}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F6D[] = { {"Cup", 3, 0x022D3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F6E[] = { {"Lmidot", 6, 0x0013F, 0}, {"sup1", 4, 0x000B9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F6F[] = { {"Delta", 5, 0x00394, 0}, {"sbquo", 5, 0x0201A, 0}, {"sup2", 4, 0x000B2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F70[] = { {"cscr", 4, 0x1D4B8, 0}, {"nsubseteqq", 10, 0x02AC5, 0x00338}, {"sup3", 4, 0x000B3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F71[] = { {"Kcedil", 6, 0x00136, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F72[] = { {"plussim", 7, 0x02A26, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F74[] = { {"KHcy", 4, 0x00425, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F75[] = { {"OElig", 5, 0x00152, 0}, {"simdot", 6, 0x02A6A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F76[] = { {"lopf", 4, 0x1D55D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F77[] = { {"boxbox", 6, 0x029C9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F78[] = { {"bepsi", 5, 0x003F6, 0}, {"lbarr", 5, 0x0290C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F79[] = { {"lnapprox", 8, 0x02A89, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F81[] = { {"sdotb", 5, 0x022A1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F82[] = { {"measuredangle", 13, 0x02221, 0}, {"supE", 4, 0x02AC6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F83[] = { {"map", 3, 0x021A6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F84[] = { {"sdote", 5, 0x02A66, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F86[] = { {"diamondsuit", 11, 0x02666, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F88[] = { {"Kfr", 3, 0x1D50E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F8B[] = { {"imagline", 8, 0x02110, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F8F[] = { {"delta", 5, 0x003B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F91[] = { {"mapstodown", 10, 0x021A7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F93[] = { {"eqvparsl", 8, 0x029E5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F95[] = { {"UpArrow", 7, 0x02191, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F9A[] = { {"imagpart", 8, 0x02111, 0}, {"lsim", 4, 0x02272, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F9C[] = { {"trianglelefteq", 14, 0x022B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_F9F[] = { {"isindot", 7, 0x022F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FA0[] = { {"LeftUpDownVector", 16, 0x02951, 0}, {"curvearrowleft", 14, 0x021B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FA1[] = { {"Diamond", 7, 0x022C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FA2[] = { {"supe", 4, 0x02287, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FA3[] = { {"nearrow", 7, 0x02197, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FA9[] = { {"easter", 6, 0x02A6E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FB0[] = { {"rdquo", 5, 0x0201D, 0}, {"subsetneqq", 10, 0x02ACB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FB1[] = { {"Dscr", 4, 0x1D49F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FB4[] = { {"comp", 4, 0x02201, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FB5[] = { {"Uparrow", 7, 0x021D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FB6[] = { {"coloneq", 7, 0x02254, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FB7[] = { {"Mopf", 4, 0x1D544, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FB9[] = { {"rfloor", 6, 0x0230B, 0}, {"varsubsetneqq", 13, 0x02ACB, 0x0FE00}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FBC[] = { {"eacute", 6, 0x000E9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FC2[] = { {"shortparallel", 13, 0x02225, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FC4[] = { {"male", 4, 0x02642, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FC6[] = { {"yscr", 4, 0x1D4CE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FCA[] = { {"xharr", 5, 0x027F7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FCC[] = { {"cong", 4, 0x02245, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FCE[] = { {"mcy", 3, 0x0043C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FCF[] = { {"Upsilon", 7, 0x003A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FD0[] = { {"block", 5, 0x02588, 0}, {"maltese", 7, 0x02720, 0}, {"ordf", 4, 0x000AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FD2[] = { {"zcaron", 6, 0x0017E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FD3[] = { {"malt", 4, 0x02720, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FD6[] = { {"loang", 5, 0x027EC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FD7[] = { {"ordm", 4, 0x000BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FDD[] = { {"NegativeVeryThinSpace", 21, 0x0200B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FDF[] = { {"eta", 3, 0x003B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FE1[] = { {"Iogon", 5, 0x0012E, 0}, {"drbkarow", 8, 0x02910, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FE6[] = { {"eth", 3, 0x000F0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FE9[] = { {"racute", 6, 0x00155, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FEA[] = { {"cwconint", 8, 0x02232, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FEB[] = { {"egsdot", 6, 0x02A98, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FF5[] = { {"MinusPlus", 9, 0x02213, 0}, {"ring", 4, 0x002DA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FF8[] = { {"rcedil", 6, 0x00157, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FFC[] = { {"timesbar", 8, 0x02A31, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html5_FFE[] = { {"GreaterEqualLess", 16, 0x022DB, 0}, {NULL, 0, 0, 0} }; - -static const entity_cp_map *const ht_buckets_html5[] = { - ht_bucket_html5_000, ht_bucket_html5_001, ht_bucket_empty, ht_bucket_html5_003, - ht_bucket_empty, ht_bucket_html5_005, ht_bucket_empty, ht_bucket_html5_007, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_00D, ht_bucket_empty, ht_bucket_html5_00F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_017, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_020, ht_bucket_empty, ht_bucket_html5_022, ht_bucket_empty, - ht_bucket_html5_024, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_027, - ht_bucket_html5_028, ht_bucket_html5_029, ht_bucket_html5_02A, ht_bucket_html5_02B, - ht_bucket_html5_02C, ht_bucket_empty, ht_bucket_html5_02E, ht_bucket_empty, - ht_bucket_html5_030, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_034, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_038, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_040, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_047, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_04C, ht_bucket_empty, ht_bucket_html5_04E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_051, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_059, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_05D, ht_bucket_empty, ht_bucket_html5_05F, - ht_bucket_html5_060, ht_bucket_html5_061, ht_bucket_empty, ht_bucket_html5_063, - ht_bucket_html5_064, ht_bucket_html5_065, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_069, ht_bucket_html5_06A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_06D, ht_bucket_html5_06E, ht_bucket_html5_06F, - ht_bucket_empty, ht_bucket_html5_071, ht_bucket_empty, ht_bucket_html5_073, - ht_bucket_html5_074, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_07A, ht_bucket_html5_07B, - ht_bucket_html5_07C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_07F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_082, ht_bucket_empty, - ht_bucket_html5_084, ht_bucket_html5_085, ht_bucket_html5_086, ht_bucket_empty, - ht_bucket_html5_088, ht_bucket_html5_089, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_08C, ht_bucket_empty, ht_bucket_html5_08E, ht_bucket_empty, - ht_bucket_html5_090, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_094, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_097, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_09E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_0A4, ht_bucket_empty, ht_bucket_html5_0A6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_0AB, - ht_bucket_html5_0AC, ht_bucket_html5_0AD, ht_bucket_html5_0AE, ht_bucket_html5_0AF, - ht_bucket_html5_0B0, ht_bucket_empty, ht_bucket_html5_0B2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_0B8, ht_bucket_html5_0B9, ht_bucket_html5_0BA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_0C0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_0C4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_0CE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_0D1, ht_bucket_html5_0D2, ht_bucket_html5_0D3, - ht_bucket_empty, ht_bucket_html5_0D5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_0DF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_0E5, ht_bucket_html5_0E6, ht_bucket_empty, - ht_bucket_html5_0E8, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_0EC, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_0EF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_0F3, - ht_bucket_html5_0F4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_0FA, ht_bucket_html5_0FB, - ht_bucket_empty, ht_bucket_html5_0FD, ht_bucket_html5_0FE, ht_bucket_empty, - ht_bucket_html5_100, ht_bucket_html5_101, ht_bucket_empty, ht_bucket_html5_103, - ht_bucket_empty, ht_bucket_html5_105, ht_bucket_html5_106, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_109, ht_bucket_html5_10A, ht_bucket_html5_10B, - ht_bucket_empty, ht_bucket_html5_10D, ht_bucket_html5_10E, ht_bucket_html5_10F, - ht_bucket_html5_110, ht_bucket_html5_111, ht_bucket_empty, ht_bucket_html5_113, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_116, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_11B, - ht_bucket_html5_11C, ht_bucket_empty, ht_bucket_html5_11E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_121, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_124, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_129, ht_bucket_html5_12A, ht_bucket_empty, - ht_bucket_html5_12C, ht_bucket_empty, ht_bucket_html5_12E, ht_bucket_html5_12F, - ht_bucket_html5_130, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_134, ht_bucket_html5_135, ht_bucket_empty, ht_bucket_html5_137, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_13A, ht_bucket_html5_13B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_145, ht_bucket_empty, ht_bucket_html5_147, - ht_bucket_empty, ht_bucket_html5_149, ht_bucket_empty, ht_bucket_html5_14B, - ht_bucket_html5_14C, ht_bucket_empty, ht_bucket_html5_14E, ht_bucket_html5_14F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_158, ht_bucket_html5_159, ht_bucket_empty, ht_bucket_html5_15B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_15E, ht_bucket_html5_15F, - ht_bucket_empty, ht_bucket_html5_161, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_164, ht_bucket_html5_165, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_168, ht_bucket_empty, ht_bucket_html5_16A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_170, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_173, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_17A, ht_bucket_html5_17B, - ht_bucket_html5_17C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_17F, - ht_bucket_empty, ht_bucket_html5_181, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_189, ht_bucket_empty, ht_bucket_html5_18B, - ht_bucket_html5_18C, ht_bucket_empty, ht_bucket_html5_18E, ht_bucket_html5_18F, - ht_bucket_html5_190, ht_bucket_html5_191, ht_bucket_empty, ht_bucket_html5_193, - ht_bucket_empty, ht_bucket_html5_195, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_19A, ht_bucket_empty, - ht_bucket_html5_19C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_19F, - ht_bucket_html5_1A0, ht_bucket_html5_1A1, ht_bucket_html5_1A2, ht_bucket_html5_1A3, - ht_bucket_html5_1A4, ht_bucket_html5_1A5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_1A8, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_1AB, - ht_bucket_html5_1AC, ht_bucket_html5_1AD, ht_bucket_html5_1AE, ht_bucket_html5_1AF, - ht_bucket_html5_1B0, ht_bucket_empty, ht_bucket_html5_1B2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_1B5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_1B9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_1BD, ht_bucket_html5_1BE, ht_bucket_empty, - ht_bucket_html5_1C0, ht_bucket_html5_1C1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_1C4, ht_bucket_empty, ht_bucket_html5_1C6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_1C9, ht_bucket_html5_1CA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_1CD, ht_bucket_html5_1CE, ht_bucket_empty, - ht_bucket_html5_1D0, ht_bucket_html5_1D1, ht_bucket_html5_1D2, ht_bucket_empty, - ht_bucket_html5_1D4, ht_bucket_html5_1D5, ht_bucket_html5_1D6, ht_bucket_empty, - ht_bucket_html5_1D8, ht_bucket_html5_1D9, ht_bucket_html5_1DA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_1DF, - ht_bucket_html5_1E0, ht_bucket_html5_1E1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_1E5, ht_bucket_html5_1E6, ht_bucket_html5_1E7, - ht_bucket_html5_1E8, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_1EB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_1EF, - ht_bucket_html5_1F0, ht_bucket_empty, ht_bucket_html5_1F2, ht_bucket_empty, - ht_bucket_html5_1F4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_1F8, ht_bucket_html5_1F9, ht_bucket_html5_1FA, ht_bucket_empty, - ht_bucket_html5_1FC, ht_bucket_empty, ht_bucket_html5_1FE, ht_bucket_html5_1FF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_205, ht_bucket_empty, ht_bucket_html5_207, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_20E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_212, ht_bucket_html5_213, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_219, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_21D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_220, ht_bucket_empty, ht_bucket_html5_222, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_227, - ht_bucket_empty, ht_bucket_html5_229, ht_bucket_empty, ht_bucket_html5_22B, - ht_bucket_html5_22C, ht_bucket_html5_22D, ht_bucket_empty, ht_bucket_html5_22F, - ht_bucket_html5_230, ht_bucket_empty, ht_bucket_html5_232, ht_bucket_empty, - ht_bucket_html5_234, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_239, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_23C, ht_bucket_html5_23D, ht_bucket_html5_23E, ht_bucket_empty, - ht_bucket_html5_240, ht_bucket_html5_241, ht_bucket_html5_242, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_246, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_249, ht_bucket_html5_24A, ht_bucket_html5_24B, - ht_bucket_empty, ht_bucket_html5_24D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_251, ht_bucket_html5_252, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_257, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_25A, ht_bucket_html5_25B, - ht_bucket_html5_25C, ht_bucket_html5_25D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_263, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_26A, ht_bucket_html5_26B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_26E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_274, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_277, - ht_bucket_html5_278, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_27C, ht_bucket_empty, ht_bucket_html5_27E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_283, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_28A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_294, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_297, - ht_bucket_html5_298, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_29D, ht_bucket_empty, ht_bucket_html5_29F, - ht_bucket_html5_2A0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_2A9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_2AE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_2B1, ht_bucket_html5_2B2, ht_bucket_html5_2B3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_2B9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_2BF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_2C4, ht_bucket_html5_2C5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_2CE, ht_bucket_html5_2CF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_2D3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_2DA, ht_bucket_html5_2DB, - ht_bucket_html5_2DC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_2E3, - ht_bucket_html5_2E4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_2EB, - ht_bucket_html5_2EC, ht_bucket_empty, ht_bucket_html5_2EE, ht_bucket_empty, - ht_bucket_html5_2F0, ht_bucket_empty, ht_bucket_html5_2F2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_2F8, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_300, ht_bucket_html5_301, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_304, ht_bucket_html5_305, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_308, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_30B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_30F, - ht_bucket_empty, ht_bucket_html5_311, ht_bucket_empty, ht_bucket_html5_313, - ht_bucket_empty, ht_bucket_html5_315, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_319, ht_bucket_html5_31A, ht_bucket_html5_31B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_326, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_329, ht_bucket_html5_32A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_32D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_330, ht_bucket_html5_331, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_336, ht_bucket_empty, - ht_bucket_html5_338, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_33B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_33F, - ht_bucket_html5_340, ht_bucket_html5_341, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_347, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_34D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_350, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_356, ht_bucket_empty, - ht_bucket_html5_358, ht_bucket_html5_359, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_35D, ht_bucket_empty, ht_bucket_html5_35F, - ht_bucket_empty, ht_bucket_html5_361, ht_bucket_empty, ht_bucket_html5_363, - ht_bucket_empty, ht_bucket_html5_365, ht_bucket_empty, ht_bucket_html5_367, - ht_bucket_empty, ht_bucket_html5_369, ht_bucket_html5_36A, ht_bucket_html5_36B, - ht_bucket_empty, ht_bucket_html5_36D, ht_bucket_html5_36E, ht_bucket_html5_36F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_372, ht_bucket_empty, - ht_bucket_html5_374, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_378, ht_bucket_empty, ht_bucket_html5_37A, ht_bucket_empty, - ht_bucket_html5_37C, ht_bucket_html5_37D, ht_bucket_html5_37E, ht_bucket_html5_37F, - ht_bucket_html5_380, ht_bucket_empty, ht_bucket_html5_382, ht_bucket_html5_383, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_386, ht_bucket_html5_387, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_38A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_38D, ht_bucket_html5_38E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_391, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_394, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_397, - ht_bucket_html5_398, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_39C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_39F, - ht_bucket_html5_3A0, ht_bucket_html5_3A1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_3A4, ht_bucket_html5_3A5, ht_bucket_html5_3A6, ht_bucket_html5_3A7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_3AC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_3B2, ht_bucket_empty, - ht_bucket_html5_3B4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_3BF, - ht_bucket_html5_3C0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_3C4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_3C9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_3CD, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_3D0, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_3D3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_3D9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_3DE, ht_bucket_empty, - ht_bucket_html5_3E0, ht_bucket_html5_3E1, ht_bucket_empty, ht_bucket_html5_3E3, - ht_bucket_html5_3E4, ht_bucket_empty, ht_bucket_html5_3E6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_3E9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_3ED, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_3F1, ht_bucket_html5_3F2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_3F7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_3FC, ht_bucket_empty, ht_bucket_html5_3FE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_402, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_405, ht_bucket_empty, ht_bucket_html5_407, - ht_bucket_empty, ht_bucket_html5_409, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_40E, ht_bucket_html5_40F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_413, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_41A, ht_bucket_html5_41B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_421, ht_bucket_empty, ht_bucket_html5_423, - ht_bucket_html5_424, ht_bucket_html5_425, ht_bucket_html5_426, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_429, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_42C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_42F, - ht_bucket_html5_430, ht_bucket_empty, ht_bucket_html5_432, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_436, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_439, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_43C, ht_bucket_html5_43D, ht_bucket_html5_43E, ht_bucket_html5_43F, - ht_bucket_html5_440, ht_bucket_html5_441, ht_bucket_empty, ht_bucket_html5_443, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_446, ht_bucket_html5_447, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_44A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_44F, - ht_bucket_html5_450, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_454, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_457, - ht_bucket_html5_458, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_45D, ht_bucket_empty, ht_bucket_html5_45F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_465, ht_bucket_html5_466, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_469, ht_bucket_html5_46A, ht_bucket_html5_46B, - ht_bucket_empty, ht_bucket_html5_46D, ht_bucket_empty, ht_bucket_html5_46F, - ht_bucket_html5_470, ht_bucket_html5_471, ht_bucket_html5_472, ht_bucket_html5_473, - ht_bucket_empty, ht_bucket_html5_475, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_479, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_47C, ht_bucket_html5_47D, ht_bucket_empty, ht_bucket_html5_47F, - ht_bucket_html5_480, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_485, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_488, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_48C, ht_bucket_empty, ht_bucket_html5_48E, ht_bucket_html5_48F, - ht_bucket_html5_490, ht_bucket_html5_491, ht_bucket_empty, ht_bucket_html5_493, - ht_bucket_empty, ht_bucket_html5_495, ht_bucket_html5_496, ht_bucket_empty, - ht_bucket_html5_498, ht_bucket_html5_499, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_49F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4A2, ht_bucket_empty, - ht_bucket_html5_4A4, ht_bucket_empty, ht_bucket_html5_4A6, ht_bucket_html5_4A7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4AA, ht_bucket_html5_4AB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4AE, ht_bucket_html5_4AF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4B2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4B6, ht_bucket_empty, - ht_bucket_html5_4B8, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_4BC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_4C0, ht_bucket_empty, ht_bucket_html5_4C2, ht_bucket_html5_4C3, - ht_bucket_html5_4C4, ht_bucket_html5_4C5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_4C8, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4CB, - ht_bucket_empty, ht_bucket_html5_4CD, ht_bucket_empty, ht_bucket_html5_4CF, - ht_bucket_html5_4D0, ht_bucket_empty, ht_bucket_html5_4D2, ht_bucket_html5_4D3, - ht_bucket_html5_4D4, ht_bucket_html5_4D5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_4D8, ht_bucket_empty, ht_bucket_html5_4DA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4DE, ht_bucket_html5_4DF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4E3, - ht_bucket_html5_4E4, ht_bucket_empty, ht_bucket_html5_4E6, ht_bucket_html5_4E7, - ht_bucket_html5_4E8, ht_bucket_html5_4E9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_4ED, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_4F1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4F7, - ht_bucket_empty, ht_bucket_html5_4F9, ht_bucket_empty, ht_bucket_html5_4FB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_4FE, ht_bucket_empty, - ht_bucket_html5_500, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_504, ht_bucket_empty, ht_bucket_html5_506, ht_bucket_html5_507, - ht_bucket_empty, ht_bucket_html5_509, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_50E, ht_bucket_html5_50F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_513, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_516, ht_bucket_empty, - ht_bucket_html5_518, ht_bucket_html5_519, ht_bucket_empty, ht_bucket_html5_51B, - ht_bucket_html5_51C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_524, ht_bucket_html5_525, ht_bucket_html5_526, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_52F, - ht_bucket_html5_530, ht_bucket_empty, ht_bucket_html5_532, ht_bucket_html5_533, - ht_bucket_html5_534, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_53B, - ht_bucket_html5_53C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_53F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_542, ht_bucket_html5_543, - ht_bucket_empty, ht_bucket_html5_545, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_548, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_54F, - ht_bucket_html5_550, ht_bucket_html5_551, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_557, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_55B, - ht_bucket_empty, ht_bucket_html5_55D, ht_bucket_empty, ht_bucket_html5_55F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_564, ht_bucket_html5_565, ht_bucket_html5_566, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_56C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_56F, - ht_bucket_html5_570, ht_bucket_html5_571, ht_bucket_html5_572, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_575, ht_bucket_html5_576, ht_bucket_html5_577, - ht_bucket_html5_578, ht_bucket_empty, ht_bucket_html5_57A, ht_bucket_html5_57B, - ht_bucket_html5_57C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_580, ht_bucket_empty, ht_bucket_html5_582, ht_bucket_html5_583, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_586, ht_bucket_empty, - ht_bucket_html5_588, ht_bucket_html5_589, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_58D, ht_bucket_html5_58E, ht_bucket_html5_58F, - ht_bucket_html5_590, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_595, ht_bucket_html5_596, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_59A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_59D, ht_bucket_empty, ht_bucket_html5_59F, - ht_bucket_html5_5A0, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5A3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5A6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_5A9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_5AC, ht_bucket_html5_5AD, ht_bucket_html5_5AE, ht_bucket_empty, - ht_bucket_html5_5B0, ht_bucket_html5_5B1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_5B5, ht_bucket_html5_5B6, ht_bucket_html5_5B7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5BB, - ht_bucket_html5_5BC, ht_bucket_html5_5BD, ht_bucket_empty, ht_bucket_html5_5BF, - ht_bucket_html5_5C0, ht_bucket_html5_5C1, ht_bucket_html5_5C2, ht_bucket_empty, - ht_bucket_html5_5C4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_5D0, ht_bucket_html5_5D1, ht_bucket_empty, ht_bucket_html5_5D3, - ht_bucket_empty, ht_bucket_html5_5D5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_5D8, ht_bucket_html5_5D9, ht_bucket_empty, ht_bucket_html5_5DB, - ht_bucket_empty, ht_bucket_html5_5DD, ht_bucket_empty, ht_bucket_html5_5DF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5E2, ht_bucket_empty, - ht_bucket_html5_5E4, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5E7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5EA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_5ED, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_5F0, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5F3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_5F6, ht_bucket_empty, - ht_bucket_html5_5F8, ht_bucket_empty, ht_bucket_html5_5FA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_5FD, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_601, ht_bucket_html5_602, ht_bucket_html5_603, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_606, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_609, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_60D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_613, - ht_bucket_empty, ht_bucket_html5_615, ht_bucket_empty, ht_bucket_html5_617, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_61A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_61D, ht_bucket_empty, ht_bucket_html5_61F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_622, ht_bucket_empty, - ht_bucket_html5_624, ht_bucket_empty, ht_bucket_html5_626, ht_bucket_empty, - ht_bucket_html5_628, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_62C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_630, ht_bucket_empty, ht_bucket_html5_632, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_636, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_63A, ht_bucket_empty, - ht_bucket_html5_63C, ht_bucket_html5_63D, ht_bucket_html5_63E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_641, ht_bucket_html5_642, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_645, ht_bucket_html5_646, ht_bucket_html5_647, - ht_bucket_html5_648, ht_bucket_html5_649, ht_bucket_html5_64A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_651, ht_bucket_html5_652, ht_bucket_html5_653, - ht_bucket_empty, ht_bucket_html5_655, ht_bucket_empty, ht_bucket_html5_657, - ht_bucket_html5_658, ht_bucket_html5_659, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_65C, ht_bucket_empty, ht_bucket_html5_65E, ht_bucket_empty, - ht_bucket_html5_660, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_669, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_670, ht_bucket_html5_671, ht_bucket_html5_672, ht_bucket_html5_673, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_676, ht_bucket_empty, - ht_bucket_html5_678, ht_bucket_html5_679, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_67D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_680, ht_bucket_empty, ht_bucket_html5_682, ht_bucket_empty, - ht_bucket_html5_684, ht_bucket_html5_685, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_68A, ht_bucket_empty, - ht_bucket_html5_68C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_691, ht_bucket_empty, ht_bucket_html5_693, - ht_bucket_html5_694, ht_bucket_empty, ht_bucket_html5_696, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_699, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_6A3, - ht_bucket_html5_6A4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_6A8, ht_bucket_html5_6A9, ht_bucket_html5_6AA, ht_bucket_html5_6AB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_6AE, ht_bucket_empty, - ht_bucket_html5_6B0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_6B4, ht_bucket_empty, ht_bucket_html5_6B6, ht_bucket_empty, - ht_bucket_html5_6B8, ht_bucket_html5_6B9, ht_bucket_html5_6BA, ht_bucket_empty, - ht_bucket_html5_6BC, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_6BF, - ht_bucket_html5_6C0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_6C4, ht_bucket_html5_6C5, ht_bucket_html5_6C6, ht_bucket_html5_6C7, - ht_bucket_html5_6C8, ht_bucket_html5_6C9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_6CC, ht_bucket_empty, ht_bucket_html5_6CE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_6D1, ht_bucket_html5_6D2, ht_bucket_empty, - ht_bucket_html5_6D4, ht_bucket_html5_6D5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_6D9, ht_bucket_html5_6DA, ht_bucket_html5_6DB, - ht_bucket_html5_6DC, ht_bucket_empty, ht_bucket_html5_6DE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_6E7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_6EB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_6EE, ht_bucket_html5_6EF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_6F5, ht_bucket_empty, ht_bucket_html5_6F7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_6FB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_704, ht_bucket_html5_705, ht_bucket_html5_706, ht_bucket_html5_707, - ht_bucket_empty, ht_bucket_html5_709, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_70C, ht_bucket_empty, ht_bucket_html5_70E, ht_bucket_html5_70F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_712, ht_bucket_empty, - ht_bucket_html5_714, ht_bucket_html5_715, ht_bucket_empty, ht_bucket_html5_717, - ht_bucket_empty, ht_bucket_html5_719, ht_bucket_empty, ht_bucket_html5_71B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_71E, ht_bucket_html5_71F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_723, - ht_bucket_html5_724, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_727, - ht_bucket_empty, ht_bucket_html5_729, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_72C, ht_bucket_html5_72D, ht_bucket_html5_72E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_733, - ht_bucket_html5_734, ht_bucket_html5_735, ht_bucket_html5_736, ht_bucket_empty, - ht_bucket_html5_738, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_73B, - ht_bucket_empty, ht_bucket_html5_73D, ht_bucket_html5_73E, ht_bucket_html5_73F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_744, ht_bucket_html5_745, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_749, ht_bucket_empty, ht_bucket_html5_74B, - ht_bucket_html5_74C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_74F, - ht_bucket_empty, ht_bucket_html5_751, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_754, ht_bucket_html5_755, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_759, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_75C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_75F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_762, ht_bucket_html5_763, - ht_bucket_empty, ht_bucket_html5_765, ht_bucket_html5_766, ht_bucket_empty, - ht_bucket_html5_768, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_76E, ht_bucket_empty, - ht_bucket_html5_770, ht_bucket_empty, ht_bucket_html5_772, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_776, ht_bucket_html5_777, - ht_bucket_empty, ht_bucket_html5_779, ht_bucket_html5_77A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_77F, - ht_bucket_empty, ht_bucket_html5_781, ht_bucket_empty, ht_bucket_html5_783, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_787, - ht_bucket_empty, ht_bucket_html5_789, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_78C, ht_bucket_html5_78D, ht_bucket_html5_78E, ht_bucket_empty, - ht_bucket_html5_790, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_794, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_797, - ht_bucket_html5_798, ht_bucket_empty, ht_bucket_html5_79A, ht_bucket_html5_79B, - ht_bucket_empty, ht_bucket_html5_79D, ht_bucket_empty, ht_bucket_html5_79F, - ht_bucket_html5_7A0, ht_bucket_html5_7A1, ht_bucket_html5_7A2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_7A5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_7A8, ht_bucket_empty, ht_bucket_html5_7AA, ht_bucket_html5_7AB, - ht_bucket_html5_7AC, ht_bucket_empty, ht_bucket_html5_7AE, ht_bucket_html5_7AF, - ht_bucket_html5_7B0, ht_bucket_html5_7B1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_7B5, ht_bucket_html5_7B6, ht_bucket_html5_7B7, - ht_bucket_html5_7B8, ht_bucket_empty, ht_bucket_html5_7BA, ht_bucket_html5_7BB, - ht_bucket_empty, ht_bucket_html5_7BD, ht_bucket_html5_7BE, ht_bucket_html5_7BF, - ht_bucket_html5_7C0, ht_bucket_html5_7C1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_7C9, ht_bucket_empty, ht_bucket_html5_7CB, - ht_bucket_empty, ht_bucket_html5_7CD, ht_bucket_html5_7CE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_7D1, ht_bucket_html5_7D2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_7D5, ht_bucket_html5_7D6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_7D9, ht_bucket_html5_7DA, ht_bucket_empty, - ht_bucket_html5_7DC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_7E0, ht_bucket_empty, ht_bucket_html5_7E2, ht_bucket_empty, - ht_bucket_html5_7E4, ht_bucket_html5_7E5, ht_bucket_html5_7E6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_7EC, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_7EF, - ht_bucket_empty, ht_bucket_html5_7F1, ht_bucket_empty, ht_bucket_html5_7F3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_7F6, ht_bucket_empty, - ht_bucket_html5_7F8, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_7FB, - ht_bucket_html5_7FC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_800, ht_bucket_empty, ht_bucket_html5_802, ht_bucket_html5_803, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_808, ht_bucket_html5_809, ht_bucket_html5_80A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_810, ht_bucket_html5_811, ht_bucket_html5_812, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_816, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_819, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_81C, ht_bucket_html5_81D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_821, ht_bucket_html5_822, ht_bucket_html5_823, - ht_bucket_html5_824, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_828, ht_bucket_html5_829, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_82D, ht_bucket_html5_82E, ht_bucket_empty, - ht_bucket_html5_830, ht_bucket_html5_831, ht_bucket_html5_832, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_837, - ht_bucket_html5_838, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_83C, ht_bucket_empty, ht_bucket_html5_83E, ht_bucket_html5_83F, - ht_bucket_empty, ht_bucket_html5_841, ht_bucket_html5_842, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_846, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_84A, ht_bucket_empty, - ht_bucket_html5_84C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_84F, - ht_bucket_html5_850, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_855, ht_bucket_empty, ht_bucket_html5_857, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_85B, - ht_bucket_html5_85C, ht_bucket_empty, ht_bucket_html5_85E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_861, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_865, ht_bucket_html5_866, ht_bucket_html5_867, - ht_bucket_html5_868, ht_bucket_empty, ht_bucket_html5_86A, ht_bucket_html5_86B, - ht_bucket_html5_86C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_873, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_876, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_879, ht_bucket_empty, ht_bucket_html5_87B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_87E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_88A, ht_bucket_empty, - ht_bucket_html5_88C, ht_bucket_empty, ht_bucket_html5_88E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_892, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_895, ht_bucket_html5_896, ht_bucket_html5_897, - ht_bucket_html5_898, ht_bucket_html5_899, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_89D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_8A5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_8AC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8B3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8B6, ht_bucket_html5_8B7, - ht_bucket_html5_8B8, ht_bucket_html5_8B9, ht_bucket_html5_8BA, ht_bucket_empty, - ht_bucket_html5_8BC, ht_bucket_html5_8BD, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_8C0, ht_bucket_html5_8C1, ht_bucket_html5_8C2, ht_bucket_empty, - ht_bucket_html5_8C4, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8C7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8CF, - ht_bucket_html5_8D0, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8D3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8D6, ht_bucket_empty, - ht_bucket_html5_8D8, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_8DC, ht_bucket_html5_8DD, ht_bucket_html5_8DE, ht_bucket_html5_8DF, - ht_bucket_html5_8E0, ht_bucket_empty, ht_bucket_html5_8E2, ht_bucket_html5_8E3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8E7, - ht_bucket_html5_8E8, ht_bucket_html5_8E9, ht_bucket_empty, ht_bucket_html5_8EB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8F3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8FB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_8FE, ht_bucket_html5_8FF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_904, ht_bucket_empty, ht_bucket_html5_906, ht_bucket_html5_907, - ht_bucket_empty, ht_bucket_html5_909, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_90C, ht_bucket_empty, ht_bucket_html5_90E, ht_bucket_empty, - ht_bucket_html5_910, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_913, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_916, ht_bucket_empty, - ht_bucket_html5_918, ht_bucket_html5_919, ht_bucket_empty, ht_bucket_html5_91B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_91E, ht_bucket_html5_91F, - ht_bucket_html5_920, ht_bucket_empty, ht_bucket_html5_922, ht_bucket_html5_923, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_927, - ht_bucket_empty, ht_bucket_html5_929, ht_bucket_html5_92A, ht_bucket_empty, - ht_bucket_html5_92C, ht_bucket_empty, ht_bucket_html5_92E, ht_bucket_empty, - ht_bucket_html5_930, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_936, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_939, ht_bucket_empty, ht_bucket_html5_93B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_93F, - ht_bucket_html5_940, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_945, ht_bucket_empty, ht_bucket_html5_947, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_94D, ht_bucket_empty, ht_bucket_html5_94F, - ht_bucket_html5_950, ht_bucket_empty, ht_bucket_html5_952, ht_bucket_html5_953, - ht_bucket_html5_954, ht_bucket_html5_955, ht_bucket_html5_956, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_959, ht_bucket_empty, ht_bucket_html5_95B, - ht_bucket_empty, ht_bucket_html5_95D, ht_bucket_empty, ht_bucket_html5_95F, - ht_bucket_html5_960, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_963, - ht_bucket_html5_964, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_969, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_96C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_96F, - ht_bucket_html5_970, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_974, ht_bucket_html5_975, ht_bucket_html5_976, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_97B, - ht_bucket_html5_97C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_97F, - ht_bucket_empty, ht_bucket_html5_981, ht_bucket_empty, ht_bucket_html5_983, - ht_bucket_empty, ht_bucket_html5_985, ht_bucket_html5_986, ht_bucket_empty, - ht_bucket_html5_988, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_98C, ht_bucket_html5_98D, ht_bucket_empty, ht_bucket_html5_98F, - ht_bucket_html5_990, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_996, ht_bucket_html5_997, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_99B, - ht_bucket_html5_99C, ht_bucket_empty, ht_bucket_html5_99E, ht_bucket_html5_99F, - ht_bucket_html5_9A0, ht_bucket_html5_9A1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_9A6, ht_bucket_empty, - ht_bucket_html5_9A8, ht_bucket_empty, ht_bucket_html5_9AA, ht_bucket_empty, - ht_bucket_html5_9AC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_9B0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_9B4, ht_bucket_html5_9B5, ht_bucket_html5_9B6, ht_bucket_html5_9B7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_9BB, - ht_bucket_html5_9BC, ht_bucket_html5_9BD, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_9C1, ht_bucket_html5_9C2, ht_bucket_html5_9C3, - ht_bucket_empty, ht_bucket_html5_9C5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_9C9, ht_bucket_html5_9CA, ht_bucket_empty, - ht_bucket_html5_9CC, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_9CF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_9D5, ht_bucket_html5_9D6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_9DA, ht_bucket_html5_9DB, - ht_bucket_empty, ht_bucket_html5_9DD, ht_bucket_html5_9DE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_9E1, ht_bucket_html5_9E2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_9E5, ht_bucket_empty, ht_bucket_html5_9E7, - ht_bucket_empty, ht_bucket_html5_9E9, ht_bucket_empty, ht_bucket_html5_9EB, - ht_bucket_empty, ht_bucket_html5_9ED, ht_bucket_html5_9EE, ht_bucket_html5_9EF, - ht_bucket_html5_9F0, ht_bucket_html5_9F1, ht_bucket_html5_9F2, ht_bucket_html5_9F3, - ht_bucket_html5_9F4, ht_bucket_html5_9F5, ht_bucket_empty, ht_bucket_html5_9F7, - ht_bucket_empty, ht_bucket_html5_9F9, ht_bucket_html5_9FA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_9FD, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A01, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_A04, ht_bucket_html5_A05, ht_bucket_html5_A06, ht_bucket_empty, - ht_bucket_html5_A08, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_A0C, ht_bucket_html5_A0D, ht_bucket_html5_A0E, ht_bucket_empty, - ht_bucket_html5_A10, ht_bucket_empty, ht_bucket_html5_A12, ht_bucket_empty, - ht_bucket_html5_A14, ht_bucket_html5_A15, ht_bucket_html5_A16, ht_bucket_html5_A17, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A21, ht_bucket_empty, ht_bucket_html5_A23, - ht_bucket_html5_A24, ht_bucket_html5_A25, ht_bucket_html5_A26, ht_bucket_empty, - ht_bucket_html5_A28, ht_bucket_empty, ht_bucket_html5_A2A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A2D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_A30, ht_bucket_empty, ht_bucket_html5_A32, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_A36, ht_bucket_html5_A37, - ht_bucket_empty, ht_bucket_html5_A39, ht_bucket_empty, ht_bucket_html5_A3B, - ht_bucket_html5_A3C, ht_bucket_html5_A3D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A41, ht_bucket_empty, ht_bucket_html5_A43, - ht_bucket_html5_A44, ht_bucket_html5_A45, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_A48, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_A4F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_A53, - ht_bucket_html5_A54, ht_bucket_empty, ht_bucket_html5_A56, ht_bucket_html5_A57, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_A5A, ht_bucket_html5_A5B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A61, ht_bucket_html5_A62, ht_bucket_html5_A63, - ht_bucket_html5_A64, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A69, ht_bucket_html5_A6A, ht_bucket_html5_A6B, - ht_bucket_empty, ht_bucket_html5_A6D, ht_bucket_empty, ht_bucket_html5_A6F, - ht_bucket_html5_A70, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_A76, ht_bucket_empty, - ht_bucket_html5_A78, ht_bucket_empty, ht_bucket_html5_A7A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_A7E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A81, ht_bucket_html5_A82, ht_bucket_empty, - ht_bucket_html5_A84, ht_bucket_html5_A85, ht_bucket_html5_A86, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A89, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A8D, ht_bucket_html5_A8E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_A92, ht_bucket_empty, - ht_bucket_html5_A94, ht_bucket_empty, ht_bucket_html5_A96, ht_bucket_empty, - ht_bucket_html5_A98, ht_bucket_html5_A99, ht_bucket_html5_A9A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_A9D, ht_bucket_empty, ht_bucket_html5_A9F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_AA3, - ht_bucket_html5_AA4, ht_bucket_html5_AA5, ht_bucket_empty, ht_bucket_html5_AA7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_AAC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_AB2, ht_bucket_empty, - ht_bucket_html5_AB4, ht_bucket_html5_AB5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_ABA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_AC0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_AC4, ht_bucket_html5_AC5, ht_bucket_html5_AC6, ht_bucket_html5_AC7, - ht_bucket_html5_AC8, ht_bucket_empty, ht_bucket_html5_ACA, ht_bucket_empty, - ht_bucket_html5_ACC, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_ACF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_AD2, ht_bucket_html5_AD3, - ht_bucket_html5_AD4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_ADA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_ADD, ht_bucket_empty, ht_bucket_html5_ADF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_AE4, ht_bucket_html5_AE5, ht_bucket_html5_AE6, ht_bucket_html5_AE7, - ht_bucket_html5_AE8, ht_bucket_html5_AE9, ht_bucket_empty, ht_bucket_html5_AEB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_AF5, ht_bucket_html5_AF6, ht_bucket_html5_AF7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_AFA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_AFD, ht_bucket_html5_AFE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_B08, ht_bucket_html5_B09, ht_bucket_html5_B0A, ht_bucket_empty, - ht_bucket_html5_B0C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_B10, ht_bucket_html5_B11, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_B15, ht_bucket_html5_B16, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B1E, ht_bucket_html5_B1F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B23, - ht_bucket_html5_B24, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B27, - ht_bucket_empty, ht_bucket_html5_B29, ht_bucket_html5_B2A, ht_bucket_html5_B2B, - ht_bucket_html5_B2C, ht_bucket_html5_B2D, ht_bucket_html5_B2E, ht_bucket_html5_B2F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B33, - ht_bucket_empty, ht_bucket_html5_B35, ht_bucket_html5_B36, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B3A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_B3D, ht_bucket_html5_B3E, ht_bucket_empty, - ht_bucket_html5_B40, ht_bucket_empty, ht_bucket_html5_B42, ht_bucket_empty, - ht_bucket_html5_B44, ht_bucket_empty, ht_bucket_html5_B46, ht_bucket_html5_B47, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_B4C, ht_bucket_empty, ht_bucket_html5_B4E, ht_bucket_html5_B4F, - ht_bucket_html5_B50, ht_bucket_html5_B51, ht_bucket_html5_B52, ht_bucket_html5_B53, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B56, ht_bucket_empty, - ht_bucket_html5_B58, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_B5C, ht_bucket_html5_B5D, ht_bucket_html5_B5E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B63, - ht_bucket_html5_B64, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B67, - ht_bucket_empty, ht_bucket_html5_B69, ht_bucket_empty, ht_bucket_html5_B6B, - ht_bucket_empty, ht_bucket_html5_B6D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B72, ht_bucket_html5_B73, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B77, - ht_bucket_html5_B78, ht_bucket_empty, ht_bucket_html5_B7A, ht_bucket_html5_B7B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B7E, ht_bucket_html5_B7F, - ht_bucket_empty, ht_bucket_html5_B81, ht_bucket_html5_B82, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_B87, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_B8D, ht_bucket_empty, ht_bucket_html5_B8F, - ht_bucket_html5_B90, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_B94, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_B98, ht_bucket_html5_B99, ht_bucket_html5_B9A, ht_bucket_empty, - ht_bucket_html5_B9C, ht_bucket_html5_B9D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_BA5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_BA9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BAE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BB2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_BB5, ht_bucket_html5_BB6, ht_bucket_html5_BB7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BBA, ht_bucket_empty, - ht_bucket_html5_BBC, ht_bucket_html5_BBD, ht_bucket_empty, ht_bucket_html5_BBF, - ht_bucket_empty, ht_bucket_html5_BC1, ht_bucket_html5_BC2, ht_bucket_html5_BC3, - ht_bucket_html5_BC4, ht_bucket_html5_BC5, ht_bucket_html5_BC6, ht_bucket_html5_BC7, - ht_bucket_html5_BC8, ht_bucket_html5_BC9, ht_bucket_empty, ht_bucket_html5_BCB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BCE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_BD1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BD7, - ht_bucket_html5_BD8, ht_bucket_html5_BD9, ht_bucket_html5_BDA, ht_bucket_html5_BDB, - ht_bucket_empty, ht_bucket_html5_BDD, ht_bucket_empty, ht_bucket_html5_BDF, - ht_bucket_empty, ht_bucket_html5_BE1, ht_bucket_html5_BE2, ht_bucket_empty, - ht_bucket_html5_BE4, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BE7, - ht_bucket_html5_BE8, ht_bucket_html5_BE9, ht_bucket_html5_BEA, ht_bucket_html5_BEB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BEF, - ht_bucket_html5_BF0, ht_bucket_html5_BF1, ht_bucket_html5_BF2, ht_bucket_html5_BF3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_BF7, - ht_bucket_empty, ht_bucket_html5_BF9, ht_bucket_html5_BFA, ht_bucket_empty, - ht_bucket_html5_BFC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C02, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C0B, - ht_bucket_html5_C0C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_C11, ht_bucket_html5_C12, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C16, ht_bucket_empty, - ht_bucket_html5_C18, ht_bucket_empty, ht_bucket_html5_C1A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_C1D, ht_bucket_html5_C1E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C23, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C27, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C2B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_C31, ht_bucket_html5_C32, ht_bucket_html5_C33, - ht_bucket_html5_C34, ht_bucket_html5_C35, ht_bucket_html5_C36, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C3A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C3E, ht_bucket_html5_C3F, - ht_bucket_html5_C40, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C43, - ht_bucket_html5_C44, ht_bucket_empty, ht_bucket_html5_C46, ht_bucket_empty, - ht_bucket_html5_C48, ht_bucket_empty, ht_bucket_html5_C4A, ht_bucket_html5_C4B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C4F, - ht_bucket_html5_C50, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_C54, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_C58, ht_bucket_empty, ht_bucket_html5_C5A, ht_bucket_html5_C5B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C5F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_C69, ht_bucket_empty, ht_bucket_html5_C6B, - ht_bucket_html5_C6C, ht_bucket_empty, ht_bucket_html5_C6E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C72, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C76, ht_bucket_html5_C77, - ht_bucket_html5_C78, ht_bucket_empty, ht_bucket_html5_C7A, ht_bucket_html5_C7B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_C80, ht_bucket_empty, ht_bucket_html5_C82, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_C89, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_C8E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_C91, ht_bucket_empty, ht_bucket_html5_C93, - ht_bucket_html5_C94, ht_bucket_html5_C95, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_C98, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_CA6, ht_bucket_empty, - ht_bucket_html5_CA8, ht_bucket_html5_CA9, ht_bucket_html5_CAA, ht_bucket_empty, - ht_bucket_html5_CAC, ht_bucket_html5_CAD, ht_bucket_empty, ht_bucket_html5_CAF, - ht_bucket_html5_CB0, ht_bucket_empty, ht_bucket_html5_CB2, ht_bucket_empty, - ht_bucket_html5_CB4, ht_bucket_empty, ht_bucket_html5_CB6, ht_bucket_html5_CB7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_CBA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_CBE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_CC2, ht_bucket_empty, - ht_bucket_html5_CC4, ht_bucket_html5_CC5, ht_bucket_empty, ht_bucket_html5_CC7, - ht_bucket_html5_CC8, ht_bucket_html5_CC9, ht_bucket_empty, ht_bucket_html5_CCB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_CD0, ht_bucket_empty, ht_bucket_html5_CD2, ht_bucket_html5_CD3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_CD9, ht_bucket_html5_CDA, ht_bucket_empty, - ht_bucket_html5_CDC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_CE4, ht_bucket_empty, ht_bucket_html5_CE6, ht_bucket_empty, - ht_bucket_html5_CE8, ht_bucket_html5_CE9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_CED, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_CF1, ht_bucket_html5_CF2, ht_bucket_html5_CF3, - ht_bucket_html5_CF4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_CFA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_CFF, - ht_bucket_html5_D00, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D06, ht_bucket_html5_D07, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D0B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D0E, ht_bucket_empty, - ht_bucket_html5_D10, ht_bucket_html5_D11, ht_bucket_html5_D12, ht_bucket_html5_D13, - ht_bucket_empty, ht_bucket_html5_D15, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_D18, ht_bucket_html5_D19, ht_bucket_html5_D1A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D1E, ht_bucket_html5_D1F, - ht_bucket_html5_D20, ht_bucket_empty, ht_bucket_html5_D22, ht_bucket_empty, - ht_bucket_html5_D24, ht_bucket_empty, ht_bucket_html5_D26, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D2A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D32, ht_bucket_empty, - ht_bucket_html5_D34, ht_bucket_html5_D35, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_D38, ht_bucket_html5_D39, ht_bucket_html5_D3A, ht_bucket_html5_D3B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D3E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D42, ht_bucket_empty, - ht_bucket_html5_D44, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_D49, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_D4C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D4F, - ht_bucket_empty, ht_bucket_html5_D51, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_D54, ht_bucket_html5_D55, ht_bucket_html5_D56, ht_bucket_html5_D57, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D5A, ht_bucket_html5_D5B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D5F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D63, - ht_bucket_empty, ht_bucket_html5_D65, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_D69, ht_bucket_html5_D6A, ht_bucket_empty, - ht_bucket_html5_D6C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_D6F, - ht_bucket_html5_D70, ht_bucket_html5_D71, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_D74, ht_bucket_html5_D75, ht_bucket_html5_D76, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_D7C, ht_bucket_html5_D7D, ht_bucket_html5_D7E, ht_bucket_empty, - ht_bucket_html5_D80, ht_bucket_html5_D81, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_D85, ht_bucket_empty, ht_bucket_html5_D87, - ht_bucket_empty, ht_bucket_html5_D89, ht_bucket_html5_D8A, ht_bucket_empty, - ht_bucket_html5_D8C, ht_bucket_html5_D8D, ht_bucket_html5_D8E, ht_bucket_html5_D8F, - ht_bucket_html5_D90, ht_bucket_html5_D91, ht_bucket_empty, ht_bucket_html5_D93, - ht_bucket_html5_D94, ht_bucket_html5_D95, ht_bucket_html5_D96, ht_bucket_empty, - ht_bucket_html5_D98, ht_bucket_empty, ht_bucket_html5_D9A, ht_bucket_empty, - ht_bucket_html5_D9C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_DA0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_DA5, ht_bucket_html5_DA6, ht_bucket_empty, - ht_bucket_html5_DA8, ht_bucket_html5_DA9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_DAC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_DB0, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_DB3, - ht_bucket_html5_DB4, ht_bucket_empty, ht_bucket_html5_DB6, ht_bucket_html5_DB7, - ht_bucket_empty, ht_bucket_html5_DB9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_DBC, ht_bucket_empty, ht_bucket_html5_DBE, ht_bucket_html5_DBF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_DC2, ht_bucket_html5_DC3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_DC6, ht_bucket_empty, - ht_bucket_html5_DC8, ht_bucket_empty, ht_bucket_html5_DCA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_DCF, - ht_bucket_empty, ht_bucket_html5_DD1, ht_bucket_empty, ht_bucket_html5_DD3, - ht_bucket_html5_DD4, ht_bucket_html5_DD5, ht_bucket_empty, ht_bucket_html5_DD7, - ht_bucket_empty, ht_bucket_html5_DD9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_DDC, ht_bucket_html5_DDD, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_DE4, ht_bucket_empty, ht_bucket_html5_DE6, ht_bucket_html5_DE7, - ht_bucket_empty, ht_bucket_html5_DE9, ht_bucket_empty, ht_bucket_html5_DEB, - ht_bucket_empty, ht_bucket_html5_DED, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_DF1, ht_bucket_html5_DF2, ht_bucket_html5_DF3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_DF6, ht_bucket_html5_DF7, - ht_bucket_empty, ht_bucket_html5_DF9, ht_bucket_empty, ht_bucket_html5_DFB, - ht_bucket_empty, ht_bucket_html5_DFD, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E03, - ht_bucket_html5_E04, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E08, ht_bucket_html5_E09, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E0C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_E11, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E18, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E1B, - ht_bucket_html5_E1C, ht_bucket_html5_E1D, ht_bucket_html5_E1E, ht_bucket_empty, - ht_bucket_html5_E20, ht_bucket_empty, ht_bucket_html5_E22, ht_bucket_html5_E23, - ht_bucket_html5_E24, ht_bucket_html5_E25, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E28, ht_bucket_empty, ht_bucket_html5_E2A, ht_bucket_empty, - ht_bucket_html5_E2C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E2F, - ht_bucket_html5_E30, ht_bucket_empty, ht_bucket_html5_E32, ht_bucket_html5_E33, - ht_bucket_empty, ht_bucket_html5_E35, ht_bucket_html5_E36, ht_bucket_html5_E37, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E3B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_E41, ht_bucket_html5_E42, ht_bucket_html5_E43, - ht_bucket_html5_E44, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E48, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E4C, ht_bucket_empty, ht_bucket_html5_E4E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E53, - ht_bucket_empty, ht_bucket_html5_E55, ht_bucket_empty, ht_bucket_html5_E57, - ht_bucket_html5_E58, ht_bucket_html5_E59, ht_bucket_empty, ht_bucket_html5_E5B, - ht_bucket_empty, ht_bucket_html5_E5D, ht_bucket_html5_E5E, ht_bucket_html5_E5F, - ht_bucket_html5_E60, ht_bucket_html5_E61, ht_bucket_empty, ht_bucket_html5_E63, - ht_bucket_html5_E64, ht_bucket_html5_E65, ht_bucket_html5_E66, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E6A, ht_bucket_empty, - ht_bucket_html5_E6C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E6F, - ht_bucket_html5_E70, ht_bucket_html5_E71, ht_bucket_empty, ht_bucket_html5_E73, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E78, ht_bucket_empty, ht_bucket_html5_E7A, ht_bucket_empty, - ht_bucket_html5_E7C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E80, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E83, - ht_bucket_html5_E84, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_E89, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_E8E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_E91, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_E99, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_E9C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_EA1, ht_bucket_html5_EA2, ht_bucket_empty, - ht_bucket_html5_EA4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_EA8, ht_bucket_html5_EA9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_EB1, ht_bucket_html5_EB2, ht_bucket_empty, - ht_bucket_html5_EB4, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_EB7, - ht_bucket_html5_EB8, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_ECA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_ECD, ht_bucket_empty, ht_bucket_html5_ECF, - ht_bucket_empty, ht_bucket_html5_ED1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_ED7, - ht_bucket_html5_ED8, ht_bucket_html5_ED9, ht_bucket_html5_EDA, ht_bucket_html5_EDB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_EDF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_EE2, ht_bucket_empty, - ht_bucket_html5_EE4, ht_bucket_html5_EE5, ht_bucket_empty, ht_bucket_html5_EE7, - ht_bucket_empty, ht_bucket_html5_EE9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_EEF, - ht_bucket_empty, ht_bucket_html5_EF1, ht_bucket_html5_EF2, ht_bucket_empty, - ht_bucket_html5_EF4, ht_bucket_html5_EF5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_EF9, ht_bucket_empty, ht_bucket_html5_EFB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_EFE, ht_bucket_html5_EFF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F03, - ht_bucket_empty, ht_bucket_html5_F05, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_F08, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F0B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F0F, - ht_bucket_html5_F10, ht_bucket_html5_F11, ht_bucket_empty, ht_bucket_html5_F13, - ht_bucket_html5_F14, ht_bucket_html5_F15, ht_bucket_empty, ht_bucket_html5_F17, - ht_bucket_html5_F18, ht_bucket_html5_F19, ht_bucket_html5_F1A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F1F, - ht_bucket_html5_F20, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F26, ht_bucket_empty, - ht_bucket_html5_F28, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_F2C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F2F, - ht_bucket_html5_F30, ht_bucket_html5_F31, ht_bucket_empty, ht_bucket_html5_F33, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F37, - ht_bucket_html5_F38, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_F40, ht_bucket_html5_F41, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_F44, ht_bucket_empty, ht_bucket_html5_F46, ht_bucket_html5_F47, - ht_bucket_html5_F48, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F4B, - ht_bucket_html5_F4C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_F50, ht_bucket_html5_F51, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_F55, ht_bucket_empty, ht_bucket_html5_F57, - ht_bucket_html5_F58, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F5B, - ht_bucket_empty, ht_bucket_html5_F5D, ht_bucket_empty, ht_bucket_html5_F5F, - ht_bucket_html5_F60, ht_bucket_empty, ht_bucket_html5_F62, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F67, - ht_bucket_html5_F68, ht_bucket_html5_F69, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_F6D, ht_bucket_html5_F6E, ht_bucket_html5_F6F, - ht_bucket_html5_F70, ht_bucket_html5_F71, ht_bucket_html5_F72, ht_bucket_empty, - ht_bucket_html5_F74, ht_bucket_html5_F75, ht_bucket_html5_F76, ht_bucket_html5_F77, - ht_bucket_html5_F78, ht_bucket_html5_F79, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_F81, ht_bucket_html5_F82, ht_bucket_html5_F83, - ht_bucket_html5_F84, ht_bucket_empty, ht_bucket_html5_F86, ht_bucket_empty, - ht_bucket_html5_F88, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F8B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F8F, - ht_bucket_empty, ht_bucket_html5_F91, ht_bucket_empty, ht_bucket_html5_F93, - ht_bucket_empty, ht_bucket_html5_F95, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F9A, ht_bucket_empty, - ht_bucket_html5_F9C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_F9F, - ht_bucket_html5_FA0, ht_bucket_html5_FA1, ht_bucket_html5_FA2, ht_bucket_html5_FA3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_FA9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_FB0, ht_bucket_html5_FB1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_FB4, ht_bucket_html5_FB5, ht_bucket_html5_FB6, ht_bucket_html5_FB7, - ht_bucket_empty, ht_bucket_html5_FB9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_FBC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_FC2, ht_bucket_empty, - ht_bucket_html5_FC4, ht_bucket_empty, ht_bucket_html5_FC6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_FCA, ht_bucket_empty, - ht_bucket_html5_FCC, ht_bucket_empty, ht_bucket_html5_FCE, ht_bucket_html5_FCF, - ht_bucket_html5_FD0, ht_bucket_empty, ht_bucket_html5_FD2, ht_bucket_html5_FD3, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_FD6, ht_bucket_html5_FD7, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_FDD, ht_bucket_empty, ht_bucket_html5_FDF, - ht_bucket_empty, ht_bucket_html5_FE1, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html5_FE6, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_FE9, ht_bucket_html5_FEA, ht_bucket_html5_FEB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html5_FF5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_FF8, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html5_FFC, ht_bucket_empty, ht_bucket_html5_FFE, ht_bucket_empty, -}; - -static const entity_ht ent_ht_html5 = { - 0x1000, - ht_buckets_html5 -}; - -/* end of HTML5 hash table for entity -> codepoint }}} */ - -/* {{{ Start of HTML 4.01 multi-stage table for codepoint -> entity */ - -/* {{{ Stage 3 Tables for HTML 4.01 */ - -static const entity_stage3_row stage3_table_html4_00000[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"quot", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"amp", 3} } }, {0, { {"#039", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lt", 2} } }, {0, { {NULL, 0} } }, {0, { {"gt", 2} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_00080[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"nbsp", 4} } }, {0, { {"iexcl", 5} } }, {0, { {"cent", 4} } }, {0, { {"pound", 5} } }, - {0, { {"curren", 6} } }, {0, { {"yen", 3} } }, {0, { {"brvbar", 6} } }, {0, { {"sect", 4} } }, - {0, { {"uml", 3} } }, {0, { {"copy", 4} } }, {0, { {"ordf", 4} } }, {0, { {"laquo", 5} } }, - {0, { {"not", 3} } }, {0, { {"shy", 3} } }, {0, { {"reg", 3} } }, {0, { {"macr", 4} } }, - {0, { {"deg", 3} } }, {0, { {"plusmn", 6} } }, {0, { {"sup2", 4} } }, {0, { {"sup3", 4} } }, - {0, { {"acute", 5} } }, {0, { {"micro", 5} } }, {0, { {"para", 4} } }, {0, { {"middot", 6} } }, - {0, { {"cedil", 5} } }, {0, { {"sup1", 4} } }, {0, { {"ordm", 4} } }, {0, { {"raquo", 5} } }, - {0, { {"frac14", 6} } }, {0, { {"frac12", 6} } }, {0, { {"frac34", 6} } }, {0, { {"iquest", 6} } }, -}; - -static const entity_stage3_row stage3_table_html4_000C0[] = { - {0, { {"Agrave", 6} } }, {0, { {"Aacute", 6} } }, {0, { {"Acirc", 5} } }, {0, { {"Atilde", 6} } }, - {0, { {"Auml", 4} } }, {0, { {"Aring", 5} } }, {0, { {"AElig", 5} } }, {0, { {"Ccedil", 6} } }, - {0, { {"Egrave", 6} } }, {0, { {"Eacute", 6} } }, {0, { {"Ecirc", 5} } }, {0, { {"Euml", 4} } }, - {0, { {"Igrave", 6} } }, {0, { {"Iacute", 6} } }, {0, { {"Icirc", 5} } }, {0, { {"Iuml", 4} } }, - {0, { {"ETH", 3} } }, {0, { {"Ntilde", 6} } }, {0, { {"Ograve", 6} } }, {0, { {"Oacute", 6} } }, - {0, { {"Ocirc", 5} } }, {0, { {"Otilde", 6} } }, {0, { {"Ouml", 4} } }, {0, { {"times", 5} } }, - {0, { {"Oslash", 6} } }, {0, { {"Ugrave", 6} } }, {0, { {"Uacute", 6} } }, {0, { {"Ucirc", 5} } }, - {0, { {"Uuml", 4} } }, {0, { {"Yacute", 6} } }, {0, { {"THORN", 5} } }, {0, { {"szlig", 5} } }, - {0, { {"agrave", 6} } }, {0, { {"aacute", 6} } }, {0, { {"acirc", 5} } }, {0, { {"atilde", 6} } }, - {0, { {"auml", 4} } }, {0, { {"aring", 5} } }, {0, { {"aelig", 5} } }, {0, { {"ccedil", 6} } }, - {0, { {"egrave", 6} } }, {0, { {"eacute", 6} } }, {0, { {"ecirc", 5} } }, {0, { {"euml", 4} } }, - {0, { {"igrave", 6} } }, {0, { {"iacute", 6} } }, {0, { {"icirc", 5} } }, {0, { {"iuml", 4} } }, - {0, { {"eth", 3} } }, {0, { {"ntilde", 6} } }, {0, { {"ograve", 6} } }, {0, { {"oacute", 6} } }, - {0, { {"ocirc", 5} } }, {0, { {"otilde", 6} } }, {0, { {"ouml", 4} } }, {0, { {"divide", 6} } }, - {0, { {"oslash", 6} } }, {0, { {"ugrave", 6} } }, {0, { {"uacute", 6} } }, {0, { {"ucirc", 5} } }, - {0, { {"uuml", 4} } }, {0, { {"yacute", 6} } }, {0, { {"thorn", 5} } }, {0, { {"yuml", 4} } }, -}; - -static const entity_stage3_row stage3_table_html4_00140[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"OElig", 5} } }, {0, { {"oelig", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Scaron", 6} } }, {0, { {"scaron", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"Yuml", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_00180[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"fnof", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_002C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"circ", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"tilde", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_00380[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"Alpha", 5} } }, {0, { {"Beta", 4} } }, {0, { {"Gamma", 5} } }, - {0, { {"Delta", 5} } }, {0, { {"Epsilon", 7} } }, {0, { {"Zeta", 4} } }, {0, { {"Eta", 3} } }, - {0, { {"Theta", 5} } }, {0, { {"Iota", 4} } }, {0, { {"Kappa", 5} } }, {0, { {"Lambda", 6} } }, - {0, { {"Mu", 2} } }, {0, { {"Nu", 2} } }, {0, { {"Xi", 2} } }, {0, { {"Omicron", 7} } }, - {0, { {"Pi", 2} } }, {0, { {"Rho", 3} } }, {0, { {NULL, 0} } }, {0, { {"Sigma", 5} } }, - {0, { {"Tau", 3} } }, {0, { {"Upsilon", 7} } }, {0, { {"Phi", 3} } }, {0, { {"Chi", 3} } }, - {0, { {"Psi", 3} } }, {0, { {"Omega", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"alpha", 5} } }, {0, { {"beta", 4} } }, {0, { {"gamma", 5} } }, - {0, { {"delta", 5} } }, {0, { {"epsilon", 7} } }, {0, { {"zeta", 4} } }, {0, { {"eta", 3} } }, - {0, { {"theta", 5} } }, {0, { {"iota", 4} } }, {0, { {"kappa", 5} } }, {0, { {"lambda", 6} } }, - {0, { {"mu", 2} } }, {0, { {"nu", 2} } }, {0, { {"xi", 2} } }, {0, { {"omicron", 7} } }, -}; - -static const entity_stage3_row stage3_table_html4_003C0[] = { - {0, { {"pi", 2} } }, {0, { {"rho", 3} } }, {0, { {"sigmaf", 6} } }, {0, { {"sigma", 5} } }, - {0, { {"tau", 3} } }, {0, { {"upsilon", 7} } }, {0, { {"phi", 3} } }, {0, { {"chi", 3} } }, - {0, { {"psi", 3} } }, {0, { {"omega", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"thetasym", 8} } }, {0, { {"upsih", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"piv", 3} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02000[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"ensp", 4} } }, {0, { {"emsp", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"thinsp", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"zwnj", 4} } }, {0, { {"zwj", 3} } }, {0, { {"lrm", 3} } }, {0, { {"rlm", 3} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"ndash", 5} } }, - {0, { {"mdash", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lsquo", 5} } }, {0, { {"rsquo", 5} } }, {0, { {"sbquo", 5} } }, {0, { {NULL, 0} } }, - {0, { {"ldquo", 5} } }, {0, { {"rdquo", 5} } }, {0, { {"bdquo", 5} } }, {0, { {NULL, 0} } }, - {0, { {"dagger", 6} } }, {0, { {"Dagger", 6} } }, {0, { {"bull", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"hellip", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"permil", 6} } }, {0, { {NULL, 0} } }, {0, { {"prime", 5} } }, {0, { {"Prime", 5} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"lsaquo", 6} } }, {0, { {"rsaquo", 6} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"oline", 5} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02040[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"frasl", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02080[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"euro", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02100[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"image", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"weierp", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"real", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"trade", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"alefsym", 7} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02180[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"larr", 4} } }, {0, { {"uarr", 4} } }, {0, { {"rarr", 4} } }, {0, { {"darr", 4} } }, - {0, { {"harr", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"crarr", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_021C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lArr", 4} } }, {0, { {"uArr", 4} } }, {0, { {"rArr", 4} } }, {0, { {"dArr", 4} } }, - {0, { {"hArr", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02200[] = { - {0, { {"forall", 6} } }, {0, { {NULL, 0} } }, {0, { {"part", 4} } }, {0, { {"exist", 5} } }, - {0, { {NULL, 0} } }, {0, { {"empty", 5} } }, {0, { {NULL, 0} } }, {0, { {"nabla", 5} } }, - {0, { {"isin", 4} } }, {0, { {"notin", 5} } }, {0, { {NULL, 0} } }, {0, { {"ni", 2} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"prod", 4} } }, - {0, { {NULL, 0} } }, {0, { {"sum", 3} } }, {0, { {"minus", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"lowast", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"radic", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"prop", 4} } }, {0, { {"infin", 5} } }, {0, { {NULL, 0} } }, - {0, { {"ang", 3} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"and", 3} } }, - {0, { {"or", 2} } }, {0, { {"cap", 3} } }, {0, { {"cup", 3} } }, {0, { {"int", 3} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"there4", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"sim", 3} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02240[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"cong", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"asymp", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"ne", 2} } }, {0, { {"equiv", 5} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"le", 2} } }, {0, { {"ge", 2} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02280[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"sub", 3} } }, {0, { {"sup", 3} } }, - {0, { {"nsub", 4} } }, {0, { {NULL, 0} } }, {0, { {"sube", 4} } }, {0, { {"supe", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"oplus", 5} } }, {0, { {NULL, 0} } }, {0, { {"otimes", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"perp", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_022C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"sdot", 4} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02300[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lceil", 5} } }, {0, { {"rceil", 5} } }, {0, { {"lfloor", 6} } }, {0, { {"rfloor", 6} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {"lang", 4} } }, {0, { {"rang", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_025C0[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"loz", 3} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -static const entity_stage3_row stage3_table_html4_02640[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"spades", 6} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"clubs", 5} } }, - {0, { {NULL, 0} } }, {0, { {"hearts", 6} } }, {0, { {"diams", 5} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, -}; - -/* end of stage 3 Tables for HTML 4.01 }}} */ - -/* {{{ Stage 2 Tables for HTML 4.01 */ - -static const entity_stage2_row stage2_table_html4_00000[] = { - stage3_table_html4_00000, empty_stage3_table, stage3_table_html4_00080, stage3_table_html4_000C0, - empty_stage3_table, stage3_table_html4_00140, stage3_table_html4_00180, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, stage3_table_html4_002C0, - empty_stage3_table, empty_stage3_table, stage3_table_html4_00380, stage3_table_html4_003C0, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, -}; - -static const entity_stage2_row stage2_table_html4_02000[] = { - stage3_table_html4_02000, stage3_table_html4_02040, stage3_table_html4_02080, empty_stage3_table, - stage3_table_html4_02100, empty_stage3_table, stage3_table_html4_02180, stage3_table_html4_021C0, - stage3_table_html4_02200, stage3_table_html4_02240, stage3_table_html4_02280, stage3_table_html4_022C0, - stage3_table_html4_02300, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, stage3_table_html4_025C0, - empty_stage3_table, stage3_table_html4_02640, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, - empty_stage3_table, empty_stage3_table, empty_stage3_table, empty_stage3_table, -}; - -/* end of stage 2 tables for HTML 4.01 }}} */ - -static const entity_stage1_row entity_ms_table_html4[] = { - stage2_table_html4_00000, - empty_stage2_table, - stage2_table_html4_02000, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, - empty_stage2_table, -}; - -/* end of HTML 4.01 multi-stage table for codepoint -> entity }}} */ - -/* {{{ HTML 4.01 hash table for entity -> codepoint */ - -static const entity_cp_map ht_bucket_html4_000[] = { {"gt", 2, 0x0003E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_003[] = { {"Igrave", 6, 0x000CC, 0}, {"amp", 3, 0x00026, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_006[] = { {"oacute", 6, 0x000F3, 0}, {"Xi", 2, 0x0039E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_008[] = { {"uuml", 4, 0x000FC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_00B[] = { {"Alpha", 5, 0x00391, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_00E[] = { {"sim", 3, 0x0223C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_012[] = { {"kappa", 5, 0x003BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_016[] = { {"lArr", 4, 0x021D0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_018[] = { {"and", 3, 0x02227, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_01B[] = { {"ang", 3, 0x02220, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_020[] = { {"copy", 4, 0x000A9, 0}, {"Iacute", 6, 0x000CD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_023[] = { {"igrave", 6, 0x000EC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_026[] = { {"xi", 2, 0x003BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_027[] = { {"Acirc", 5, 0x000C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_02B[] = { {"Ecirc", 5, 0x000CA, 0}, {"alpha", 5, 0x003B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_02C[] = { {"hearts", 6, 0x02665, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_02F[] = { {"Icirc", 5, 0x000CE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_030[] = { {"Yacute", 6, 0x000DD, 0}, {"int", 3, 0x0222B, 0}, {"rlm", 3, 0x0200F, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_034[] = { {"empty", 5, 0x02205, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_036[] = { {"larr", 4, 0x02190, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_03B[] = { {"Ucirc", 5, 0x000DB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_03C[] = { {"oline", 5, 0x0203E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_040[] = { {"iacute", 6, 0x000ED, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_046[] = { {"middot", 6, 0x000B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_047[] = { {"acirc", 5, 0x000E2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_04B[] = { {"ecirc", 5, 0x000EA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_04F[] = { {"icirc", 5, 0x000EE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_050[] = { {"yacute", 6, 0x000FD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_051[] = { {"minus", 5, 0x02212, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_054[] = { {"Auml", 4, 0x000C4, 0}, {"thetasym", 8, 0x003D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_056[] = { {"Sigma", 5, 0x003A3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_059[] = { {"lsquo", 5, 0x02018, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_05B[] = { {"ucirc", 5, 0x000FB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_05C[] = { {"rArr", 4, 0x021D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_064[] = { {"brvbar", 6, 0x000A6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_067[] = { {"AElig", 5, 0x000C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_069[] = { {"Ccedil", 6, 0x000C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_071[] = { {"Psi", 3, 0x003A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_072[] = { {"exist", 5, 0x02203, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_074[] = { {"auml", 4, 0x000E4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_076[] = { {"sigma", 5, 0x003C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_078[] = { {"isin", 4, 0x02208, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_07C[] = { {"rarr", 4, 0x02192, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_089[] = { {"ccedil", 6, 0x000E7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_08D[] = { {"raquo", 5, 0x000BB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_08E[] = { {"Omega", 5, 0x003A9, 0}, {"zwnj", 4, 0x0200C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_091[] = { {"psi", 3, 0x003C8, 0}, {"there4", 6, 0x02234, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_092[] = { {"hArr", 4, 0x021D4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_096[] = { {"le", 2, 0x02264, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_098[] = { {"Atilde", 6, 0x000C3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_099[] = { {"Zeta", 4, 0x00396, 0}, {"infin", 5, 0x0221E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_09D[] = { {"frasl", 5, 0x02044, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0A0[] = { {"euro", 4, 0x020AC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0A5[] = { {"lt", 2, 0x0003C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0A7[] = { {"aelig", 5, 0x000E6, 0}, {"Mu", 2, 0x0039C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0A8[] = { {"macr", 4, 0x000AF, 0}, {"image", 5, 0x02111, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0AA[] = { {"ldquo", 5, 0x0201C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0AE[] = { {"omega", 5, 0x003C9, 0}, {"upsih", 5, 0x003D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0B0[] = { {"THORN", 5, 0x000DE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0B2[] = { {"Iota", 4, 0x00399, 0}, {"harr", 4, 0x02194, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0B4[] = { {"bull", 4, 0x02022, 0}, {"rceil", 5, 0x02309, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0B8[] = { {"atilde", 6, 0x000E3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0B9[] = { {"zeta", 4, 0x003B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0BA[] = { {"emsp", 4, 0x02003, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0BC[] = { {"perp", 4, 0x022A5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0C2[] = { {"Prime", 5, 0x02033, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0C4[] = { {"frac12", 6, 0x000BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0C5[] = { {"Ntilde", 6, 0x000D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0C6[] = { {"frac14", 6, 0x000BC, 0}, {"circ", 4, 0x002C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0C7[] = { {"mu", 2, 0x003BC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0C8[] = { {"Gamma", 5, 0x00393, 0}, {"Nu", 2, 0x0039D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0CE[] = { {"fnof", 4, 0x00192, 0}, {"quot", 4, 0x00022, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0D2[] = { {"iota", 4, 0x003B9, 0}, {"mdash", 5, 0x02014, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0D8[] = { {"ne", 2, 0x02260, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0DB[] = { {"Theta", 5, 0x00398, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0DC[] = { {"ni", 2, 0x0220B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0E2[] = { {"prime", 5, 0x02032, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0E5[] = { {"ntilde", 6, 0x000F1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0E6[] = { {"Lambda", 6, 0x0039B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0E8[] = { {"gamma", 5, 0x003B3, 0}, {"nu", 2, 0x003BD, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0EB[] = { {"pound", 5, 0x000A3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0EE[] = { {"permil", 6, 0x02030, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0F9[] = { {"cap", 3, 0x02229, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0FA[] = { {"iexcl", 5, 0x000A1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0FB[] = { {"Agrave", 6, 0x000C0, 0}, {"theta", 5, 0x003B8, 0}, {"ensp", 4, 0x02002, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0FE[] = { {"Pi", 2, 0x003A0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_0FF[] = { {"crarr", 5, 0x021B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_100[] = { {"iquest", 6, 0x000BF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_105[] = { {"forall", 6, 0x02200, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_106[] = { {"Phi", 3, 0x003A6, 0}, {"lambda", 6, 0x003BB, 0}, {"or", 2, 0x02228, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_108[] = { {"frac34", 6, 0x000BE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_10D[] = { {"notin", 5, 0x02209, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_10E[] = { {"dArr", 4, 0x021D3, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_10F[] = { {"Dagger", 6, 0x02021, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_111[] = { {"yen", 3, 0x000A5, 0}, {"weierp", 6, 0x02118, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_113[] = { {"uml", 3, 0x000A8, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_117[] = { {"tilde", 5, 0x002DC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_118[] = { {"Aacute", 6, 0x000C1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_11A[] = { {"loz", 3, 0x025CA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_11B[] = { {"agrave", 6, 0x000E0, 0}, {"thinsp", 6, 0x02009, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_11E[] = { {"pi", 2, 0x003C0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_11F[] = { {"micro", 5, 0x000B5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_125[] = { {"spades", 6, 0x02660, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_126[] = { {"phi", 3, 0x003C6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_12E[] = { {"darr", 4, 0x02193, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_12F[] = { {"Oslash", 6, 0x000D8, 0}, {"Tau", 3, 0x003A4, 0}, {"dagger", 6, 0x02020, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_135[] = { {"Ocirc", 5, 0x000D4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_136[] = { {"alefsym", 7, 0x02135, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_138[] = { {"aacute", 6, 0x000E1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_13A[] = { {"divide", 6, 0x000F7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_13F[] = { {"sdot", 4, 0x022C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_143[] = { {"reg", 3, 0x000AE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_149[] = { {"real", 4, 0x0211C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_14B[] = { {"Scaron", 6, 0x00160, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_14F[] = { {"cent", 4, 0x000A2, 0}, {"oslash", 6, 0x000F8, 0}, {"tau", 3, 0x003C4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_150[] = { {"thorn", 5, 0x000FE, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_153[] = { {"ndash", 5, 0x02013, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_154[] = { {"piv", 3, 0x003D6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_155[] = { {"ocirc", 5, 0x000F4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_156[] = { {"Aring", 5, 0x000C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_158[] = { {"nbsp", 4, 0x000A0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_15C[] = { {"Iuml", 4, 0x000CF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_15F[] = { {"rsquo", 5, 0x02019, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_160[] = { {"rsaquo", 6, 0x0203A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_163[] = { {"hellip", 6, 0x02026, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_166[] = { {"Otilde", 6, 0x000D5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_16B[] = { {"scaron", 6, 0x00161, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_16C[] = { {"Yuml", 4, 0x00178, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_16E[] = { {"sup1", 4, 0x000B9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_16F[] = { {"sup2", 4, 0x000B2, 0}, {"Delta", 5, 0x00394, 0}, {"sbquo", 5, 0x0201A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_170[] = { {"sup3", 4, 0x000B3, 0}, {"lrm", 3, 0x0200E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_173[] = { {"diams", 5, 0x02666, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_175[] = { {"OElig", 5, 0x00152, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_176[] = { {"aring", 5, 0x000E5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_178[] = { {"oplus", 5, 0x02295, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_17C[] = { {"iuml", 4, 0x000EF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_17F[] = { {"Egrave", 6, 0x000C8, 0}, {"uArr", 4, 0x021D1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_181[] = { {"Beta", 4, 0x00392, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_183[] = { {"nabla", 5, 0x02207, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_186[] = { {"ETH", 3, 0x000D0, 0}, {"otilde", 6, 0x000F5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_187[] = { {"laquo", 5, 0x000AB, 0}, {"times", 5, 0x000D7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_18C[] = { {"yuml", 4, 0x000FF, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_18D[] = { {"cup", 3, 0x0222A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_18E[] = { {"Rho", 3, 0x003A1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_18F[] = { {"Ugrave", 6, 0x000D9, 0}, {"delta", 5, 0x003B4, 0}, {"equiv", 5, 0x02261, 0}, {"sub", 3, 0x02282, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_194[] = { {"curren", 6, 0x000A4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_196[] = { {"not", 3, 0x000AC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_197[] = { {"acute", 5, 0x000B4, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_19A[] = { {"prod", 4, 0x0220F, 0}, {"sum", 3, 0x02211, 0}, {"lsaquo", 6, 0x02039, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_19C[] = { {"Eacute", 6, 0x000C9, 0}, {"Omicron", 7, 0x0039F, 0}, {"sigmaf", 6, 0x003C2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_19D[] = { {"sup", 3, 0x02283, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_19F[] = { {"egrave", 6, 0x000E8, 0}, {"uarr", 4, 0x02191, 0}, {"lowast", 6, 0x02217, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A0[] = { {"zwj", 3, 0x0200D, 0}, {"bdquo", 5, 0x0201E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A1[] = { {"beta", 4, 0x003B2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A2[] = { {"Ouml", 4, 0x000D6, 0}, {"supe", 4, 0x02287, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A4[] = { {"plusmn", 6, 0x000B1, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A6[] = { {"cedil", 5, 0x000B8, 0}, {"prop", 4, 0x0221D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A7[] = { {"lang", 4, 0x02329, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A8[] = { {"radic", 5, 0x0221A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1A9[] = { {"para", 4, 0x000B6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1AC[] = { {"Uacute", 6, 0x000DA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1AE[] = { {"szlig", 5, 0x000DF, 0}, {"rho", 3, 0x003C1, 0}, {"lceil", 5, 0x02308, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1AF[] = { {"ugrave", 6, 0x000F9, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1B0[] = { {"rdquo", 5, 0x0201D, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1B5[] = { {"deg", 3, 0x000B0, 0}, {"trade", 5, 0x02122, 0}, {"oelig", 5, 0x00153, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1B9[] = { {"Chi", 3, 0x003A7, 0}, {"rfloor", 6, 0x0230B, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1BC[] = { {"eacute", 6, 0x000E9, 0}, {"omicron", 7, 0x003BF, 0}, {"part", 4, 0x02202, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1BE[] = { {"clubs", 5, 0x02663, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1BF[] = { {"Epsilon", 7, 0x00395, 0}, {"Eta", 3, 0x00397, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1C2[] = { {"ouml", 4, 0x000F6, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1C4[] = { {"#039", 4, 0x00027, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1C9[] = { {"Ograve", 6, 0x000D2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1CC[] = { {"uacute", 6, 0x000FA, 0}, {"cong", 4, 0x02245, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1CF[] = { {"Upsilon", 7, 0x003A5, 0}, {"asymp", 5, 0x02248, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1D0[] = { {"ordf", 4, 0x000AA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1D4[] = { {"sube", 4, 0x02286, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1D7[] = { {"ordm", 4, 0x000BA, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1D8[] = { {"Euml", 4, 0x000CB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1D9[] = { {"chi", 3, 0x003C7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1DD[] = { {"nsub", 4, 0x02284, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1DF[] = { {"epsilon", 7, 0x003B5, 0}, {"eta", 3, 0x003B7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1E6[] = { {"Oacute", 6, 0x000D3, 0}, {"eth", 3, 0x000F0, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1E8[] = { {"Uuml", 4, 0x000DC, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1E9[] = { {"ograve", 6, 0x000F2, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1ED[] = { {"rang", 4, 0x0232A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1EF[] = { {"upsilon", 7, 0x003C5, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1F1[] = { {"ge", 2, 0x02265, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1F2[] = { {"Kappa", 5, 0x0039A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1F3[] = { {"lfloor", 6, 0x0230A, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1F4[] = { {"sect", 4, 0x000A7, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1F6[] = { {"otimes", 6, 0x02297, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1F8[] = { {"euml", 4, 0x000EB, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_html4_1F9[] = { {"shy", 3, 0x000AD, 0}, {NULL, 0, 0, 0} }; - -static const entity_cp_map *const ht_buckets_html4[] = { - ht_bucket_html4_000, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_003, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_006, ht_bucket_empty, - ht_bucket_html4_008, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_00B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_00E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_012, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_016, ht_bucket_empty, - ht_bucket_html4_018, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_01B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_020, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_023, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_026, ht_bucket_html4_027, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_02B, - ht_bucket_html4_02C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_02F, - ht_bucket_html4_030, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_034, ht_bucket_empty, ht_bucket_html4_036, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_03B, - ht_bucket_html4_03C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_040, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_046, ht_bucket_html4_047, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_04B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_04F, - ht_bucket_html4_050, ht_bucket_html4_051, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_054, ht_bucket_empty, ht_bucket_html4_056, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_059, ht_bucket_empty, ht_bucket_html4_05B, - ht_bucket_html4_05C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_064, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_067, - ht_bucket_empty, ht_bucket_html4_069, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_071, ht_bucket_html4_072, ht_bucket_empty, - ht_bucket_html4_074, ht_bucket_empty, ht_bucket_html4_076, ht_bucket_empty, - ht_bucket_html4_078, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_07C, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_089, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_08D, ht_bucket_html4_08E, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_091, ht_bucket_html4_092, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_096, ht_bucket_empty, - ht_bucket_html4_098, ht_bucket_html4_099, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_09D, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_0A0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_0A5, ht_bucket_empty, ht_bucket_html4_0A7, - ht_bucket_html4_0A8, ht_bucket_empty, ht_bucket_html4_0AA, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0AE, ht_bucket_empty, - ht_bucket_html4_0B0, ht_bucket_empty, ht_bucket_html4_0B2, ht_bucket_empty, - ht_bucket_html4_0B4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_0B8, ht_bucket_html4_0B9, ht_bucket_html4_0BA, ht_bucket_empty, - ht_bucket_html4_0BC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0C2, ht_bucket_empty, - ht_bucket_html4_0C4, ht_bucket_html4_0C5, ht_bucket_html4_0C6, ht_bucket_html4_0C7, - ht_bucket_html4_0C8, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0CE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0D2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_0D8, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0DB, - ht_bucket_html4_0DC, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0E2, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_0E5, ht_bucket_html4_0E6, ht_bucket_empty, - ht_bucket_html4_0E8, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0EB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0EE, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_0F9, ht_bucket_html4_0FA, ht_bucket_html4_0FB, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_0FE, ht_bucket_html4_0FF, - ht_bucket_html4_100, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_105, ht_bucket_html4_106, ht_bucket_empty, - ht_bucket_html4_108, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_10D, ht_bucket_html4_10E, ht_bucket_html4_10F, - ht_bucket_empty, ht_bucket_html4_111, ht_bucket_empty, ht_bucket_html4_113, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_117, - ht_bucket_html4_118, ht_bucket_empty, ht_bucket_html4_11A, ht_bucket_html4_11B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_11E, ht_bucket_html4_11F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_125, ht_bucket_html4_126, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_12E, ht_bucket_html4_12F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_135, ht_bucket_html4_136, ht_bucket_empty, - ht_bucket_html4_138, ht_bucket_empty, ht_bucket_html4_13A, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_13F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_143, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_149, ht_bucket_empty, ht_bucket_html4_14B, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_14F, - ht_bucket_html4_150, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_153, - ht_bucket_html4_154, ht_bucket_html4_155, ht_bucket_html4_156, ht_bucket_empty, - ht_bucket_html4_158, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_15C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_15F, - ht_bucket_html4_160, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_163, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_166, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_16B, - ht_bucket_html4_16C, ht_bucket_empty, ht_bucket_html4_16E, ht_bucket_html4_16F, - ht_bucket_html4_170, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_173, - ht_bucket_empty, ht_bucket_html4_175, ht_bucket_html4_176, ht_bucket_empty, - ht_bucket_html4_178, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_17C, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_17F, - ht_bucket_empty, ht_bucket_html4_181, ht_bucket_empty, ht_bucket_html4_183, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_186, ht_bucket_html4_187, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_18C, ht_bucket_html4_18D, ht_bucket_html4_18E, ht_bucket_html4_18F, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_194, ht_bucket_empty, ht_bucket_html4_196, ht_bucket_html4_197, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_19A, ht_bucket_empty, - ht_bucket_html4_19C, ht_bucket_html4_19D, ht_bucket_empty, ht_bucket_html4_19F, - ht_bucket_html4_1A0, ht_bucket_html4_1A1, ht_bucket_html4_1A2, ht_bucket_empty, - ht_bucket_html4_1A4, ht_bucket_empty, ht_bucket_html4_1A6, ht_bucket_html4_1A7, - ht_bucket_html4_1A8, ht_bucket_html4_1A9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_1AC, ht_bucket_empty, ht_bucket_html4_1AE, ht_bucket_html4_1AF, - ht_bucket_html4_1B0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_1B5, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_1B9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_1BC, ht_bucket_empty, ht_bucket_html4_1BE, ht_bucket_html4_1BF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_1C2, ht_bucket_empty, - ht_bucket_html4_1C4, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_1C9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_1CC, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_1CF, - ht_bucket_html4_1D0, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_html4_1D4, ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_1D7, - ht_bucket_html4_1D8, ht_bucket_html4_1D9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_1DD, ht_bucket_empty, ht_bucket_html4_1DF, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_html4_1E6, ht_bucket_empty, - ht_bucket_html4_1E8, ht_bucket_html4_1E9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_html4_1ED, ht_bucket_empty, ht_bucket_html4_1EF, - ht_bucket_empty, ht_bucket_html4_1F1, ht_bucket_html4_1F2, ht_bucket_html4_1F3, - ht_bucket_html4_1F4, ht_bucket_empty, ht_bucket_html4_1F6, ht_bucket_empty, - ht_bucket_html4_1F8, ht_bucket_html4_1F9, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, -}; - -static const entity_ht ent_ht_html4 = { - 0x200, - ht_buckets_html4 -}; - -/* end of HTML 4.01 hash table for entity -> codepoint }}} */ - -/* {{{ Start of Basic entities (no apos) table for codepoint -> entity */ - -static const entity_stage3_row stage3_table_be_noapos_00000[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"quot", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"amp", 3} } }, {0, { {"#039", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lt", 2} } }, {0, { {NULL, 0} } }, {0, { {"gt", 2} } }, {0, { {NULL, 0} } }, -}; - -/* {{{ Basic entities (no apos) hash table for entity -> codepoint */ - -static const entity_cp_map ht_bucket_be_noapos_000[] = { {"gt", 2, 0x0003E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_noapos_003[] = { {"amp", 3, 0x00026, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_noapos_004[] = { {"#039", 4, 0x00027, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_noapos_005[] = { {"lt", 2, 0x0003C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_noapos_00E[] = { {"quot", 4, 0x00022, 0}, {NULL, 0, 0, 0} }; - -static const entity_cp_map *const ht_buckets_be_noapos[] = { - ht_bucket_be_noapos_000, ht_bucket_empty, ht_bucket_empty, ht_bucket_be_noapos_003, - ht_bucket_be_noapos_004, ht_bucket_be_noapos_005, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_be_noapos_00E, ht_bucket_empty, -}; - -static const entity_ht ent_ht_be_noapos = { - 0x10, - ht_buckets_be_noapos -}; - -/* end of Basic entities (no apos) hash table for entity -> codepoint }}} */ - -/* {{{ Start of Basic entities (with apos) table for codepoint -> entity */ - -static const entity_stage3_row stage3_table_be_apos_00000[] = { - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"quot", 4} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {"amp", 3} } }, {0, { {"apos", 4} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, {0, { {NULL, 0} } }, - {0, { {"lt", 2} } }, {0, { {NULL, 0} } }, {0, { {"gt", 2} } }, {0, { {NULL, 0} } }, -}; - -/* {{{ Basic entities (with apos) hash table for entity -> codepoint */ - -static const entity_cp_map ht_bucket_be_apos_000[] = { {"gt", 2, 0x0003E, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_apos_003[] = { {"amp", 3, 0x00026, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_apos_005[] = { {"lt", 2, 0x0003C, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_apos_008[] = { {"apos", 4, 0x00027, 0}, {NULL, 0, 0, 0} }; -static const entity_cp_map ht_bucket_be_apos_00E[] = { {"quot", 4, 0x00022, 0}, {NULL, 0, 0, 0} }; - -static const entity_cp_map *const ht_buckets_be_apos[] = { - ht_bucket_be_apos_000, ht_bucket_empty, ht_bucket_empty, ht_bucket_be_apos_003, - ht_bucket_empty, ht_bucket_be_apos_005, ht_bucket_empty, ht_bucket_empty, - ht_bucket_be_apos_008, ht_bucket_empty, ht_bucket_empty, ht_bucket_empty, - ht_bucket_empty, ht_bucket_empty, ht_bucket_be_apos_00E, ht_bucket_empty, -}; - -static const entity_ht ent_ht_be_apos = { - 0x10, - ht_buckets_be_apos -}; - -/* end of Basic entities (with apos) hash table for entity -> codepoint }}} */ - -#endif /* HTML_TABLES_H */ diff --git a/include/php/ext/standard/info.h b/include/php/ext/standard/info.h deleted file mode 100644 index 479e547..0000000 --- a/include/php/ext/standard/info.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Zeev Suraski | - | Colin Viebrock | - +----------------------------------------------------------------------+ -*/ - -#ifndef INFO_H -#define INFO_H - -#define PHP_ENTRY_NAME_COLOR "#ccf" -#define PHP_CONTENTS_COLOR "#ccc" -#define PHP_HEADER_COLOR "#99c" - -#define PHP_INFO_GENERAL (1<<0) -#define PHP_INFO_CREDITS (1<<1) -#define PHP_INFO_CONFIGURATION (1<<2) -#define PHP_INFO_MODULES (1<<3) -#define PHP_INFO_ENVIRONMENT (1<<4) -#define PHP_INFO_VARIABLES (1<<5) -#define PHP_INFO_LICENSE (1<<6) -#define PHP_INFO_ALL 0xFFFFFFFF - -#ifndef HAVE_CREDITS_DEFS -#define HAVE_CREDITS_DEFS - -#define PHP_CREDITS_GROUP (1<<0) -#define PHP_CREDITS_GENERAL (1<<1) -#define PHP_CREDITS_SAPI (1<<2) -#define PHP_CREDITS_MODULES (1<<3) -#define PHP_CREDITS_DOCS (1<<4) -#define PHP_CREDITS_FULLPAGE (1<<5) -#define PHP_CREDITS_QA (1<<6) -#define PHP_CREDITS_WEB (1<<7) -#define PHP_CREDITS_ALL 0xFFFFFFFF - -#endif /* HAVE_CREDITS_DEFS */ - -#define PHP_LOGO_DATA_URI "data:image/png;base64,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" -#define PHP_EGG_LOGO_DATA_URI "data:image/png;base64,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" -#define ZEND_LOGO_DATA_URI "data:image/png;base64,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" - -BEGIN_EXTERN_C() -PHP_FUNCTION(phpversion); -PHP_FUNCTION(phpinfo); -PHP_FUNCTION(phpcredits); -PHP_FUNCTION(php_sapi_name); -PHP_FUNCTION(php_uname); -PHP_FUNCTION(php_ini_scanned_files); -PHP_FUNCTION(php_ini_loaded_file); -PHPAPI zend_string *php_info_html_esc(char *string); -PHPAPI void php_info_html_esc_write(char *string, int str_len); -PHPAPI void php_print_info_htmlhead(void); -PHPAPI void php_print_info(int flag); -PHPAPI void php_print_style(void); -PHPAPI void php_info_print_style(void); -PHPAPI void php_info_print_table_colspan_header(int num_cols, char *header); -PHPAPI void php_info_print_table_header(int num_cols, ...); -PHPAPI void php_info_print_table_row(int num_cols, ...); -PHPAPI void php_info_print_table_row_ex(int num_cols, const char *, ...); -PHPAPI void php_info_print_table_start(void); -PHPAPI void php_info_print_table_end(void); -PHPAPI void php_info_print_box_start(int bg); -PHPAPI void php_info_print_box_end(void); -PHPAPI void php_info_print_hr(void); -PHPAPI void php_info_print_module(zend_module_entry *module); -PHPAPI zend_string *php_get_uname(char mode); - -void register_phpinfo_constants(INIT_FUNC_ARGS); -END_EXTERN_C() - -#endif /* INFO_H */ diff --git a/include/php/ext/standard/md5.h b/include/php/ext/standard/md5.h deleted file mode 100644 index 76bb08c..0000000 --- a/include/php/ext/standard/md5.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Alexander Peslyak (Solar Designer) | - | Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef MD5_H -#define MD5_H - -PHPAPI void make_digest(char *md5str, const unsigned char *digest); -PHPAPI void make_digest_ex(char *md5str, const unsigned char *digest, int len); - -PHP_NAMED_FUNCTION(php_if_md5); -PHP_NAMED_FUNCTION(php_if_md5_file); - -#include "ext/standard/basic_functions.h" - -/* - * This is an OpenSSL-compatible implementation of the RSA Data Security, - * Inc. MD5 Message-Digest Algorithm (RFC 1321). - * - * Written by Solar Designer in 2001, and placed - * in the public domain. There's absolutely no warranty. - * - * See md5.c for more information. - */ - -/* MD5 context. */ -typedef struct { - uint32_t lo, hi; - uint32_t a, b, c, d; - unsigned char buffer[64]; - uint32_t block[16]; -} PHP_MD5_CTX; - -PHPAPI void PHP_MD5Init(PHP_MD5_CTX *ctx); -PHPAPI void PHP_MD5Update(PHP_MD5_CTX *ctx, const void *data, size_t size); -PHPAPI void PHP_MD5Final(unsigned char *result, PHP_MD5_CTX *ctx); - -#endif diff --git a/include/php/ext/standard/microtime.h b/include/php/ext/standard/microtime.h deleted file mode 100644 index 59fb3e4..0000000 --- a/include/php/ext/standard/microtime.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Paul Panotzki - Bunyip Information Systems | - +----------------------------------------------------------------------+ -*/ - -#ifndef MICROTIME_H -#define MICROTIME_H - -#ifdef HAVE_GETTIMEOFDAY -PHP_FUNCTION(microtime); -PHP_FUNCTION(gettimeofday); -#endif -#ifdef HAVE_GETRUSAGE -PHP_FUNCTION(getrusage); -#endif - -#endif /* MICROTIME_H */ diff --git a/include/php/ext/standard/pack.h b/include/php/ext/standard/pack.h deleted file mode 100644 index 3deeb1f..0000000 --- a/include/php/ext/standard/pack.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef PACK_H -#define PACK_H - -PHP_MINIT_FUNCTION(pack); -PHP_FUNCTION(pack); -PHP_FUNCTION(unpack); - -#endif /* PACK_H */ diff --git a/include/php/ext/standard/pageinfo.h b/include/php/ext/standard/pageinfo.h deleted file mode 100644 index db0924c..0000000 --- a/include/php/ext/standard/pageinfo.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jim Winstead | - +----------------------------------------------------------------------+ -*/ - -#ifndef PAGEINFO_H -#define PAGEINFO_H - -PHP_FUNCTION(getmyuid); -PHP_FUNCTION(getmygid); -PHP_FUNCTION(getmypid); -PHP_FUNCTION(getmyinode); -PHP_FUNCTION(getlastmod); - -PHPAPI void php_statpage(void); -PHPAPI time_t php_getlastmod(void); -extern zend_long php_getuid(void); -extern zend_long php_getgid(void); - -#endif diff --git a/include/php/ext/standard/php_array.h b/include/php/ext/standard/php_array.h deleted file mode 100644 index e15b116..0000000 --- a/include/php/ext/standard/php_array.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - | Rasmus Lerdorf | - | Andrei Zmievski | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_ARRAY_H -#define PHP_ARRAY_H - -PHP_MINIT_FUNCTION(array); -PHP_MSHUTDOWN_FUNCTION(array); - -PHP_FUNCTION(ksort); -PHP_FUNCTION(krsort); -PHP_FUNCTION(natsort); -PHP_FUNCTION(natcasesort); -PHP_FUNCTION(asort); -PHP_FUNCTION(arsort); -PHP_FUNCTION(sort); -PHP_FUNCTION(rsort); -PHP_FUNCTION(usort); -PHP_FUNCTION(uasort); -PHP_FUNCTION(uksort); -PHP_FUNCTION(array_walk); -PHP_FUNCTION(array_walk_recursive); -PHP_FUNCTION(count); -PHP_FUNCTION(end); -PHP_FUNCTION(prev); -PHP_FUNCTION(next); -PHP_FUNCTION(reset); -PHP_FUNCTION(current); -PHP_FUNCTION(key); -PHP_FUNCTION(min); -PHP_FUNCTION(max); -PHP_FUNCTION(in_array); -PHP_FUNCTION(array_search); -PHP_FUNCTION(extract); -PHP_FUNCTION(compact); -PHP_FUNCTION(array_fill); -PHP_FUNCTION(array_fill_keys); -PHP_FUNCTION(range); -PHP_FUNCTION(shuffle); -PHP_FUNCTION(array_multisort); -PHP_FUNCTION(array_push); -PHP_FUNCTION(array_pop); -PHP_FUNCTION(array_shift); -PHP_FUNCTION(array_unshift); -PHP_FUNCTION(array_splice); -PHP_FUNCTION(array_slice); -PHP_FUNCTION(array_merge); -PHP_FUNCTION(array_merge_recursive); -PHP_FUNCTION(array_replace); -PHP_FUNCTION(array_replace_recursive); -PHP_FUNCTION(array_keys); -PHP_FUNCTION(array_key_first); -PHP_FUNCTION(array_key_last); -PHP_FUNCTION(array_values); -PHP_FUNCTION(array_count_values); -PHP_FUNCTION(array_column); -PHP_FUNCTION(array_reverse); -PHP_FUNCTION(array_reduce); -PHP_FUNCTION(array_pad); -PHP_FUNCTION(array_flip); -PHP_FUNCTION(array_change_key_case); -PHP_FUNCTION(array_rand); -PHP_FUNCTION(array_unique); -PHP_FUNCTION(array_intersect); -PHP_FUNCTION(array_intersect_key); -PHP_FUNCTION(array_intersect_ukey); -PHP_FUNCTION(array_uintersect); -PHP_FUNCTION(array_intersect_assoc); -PHP_FUNCTION(array_uintersect_assoc); -PHP_FUNCTION(array_intersect_uassoc); -PHP_FUNCTION(array_uintersect_uassoc); -PHP_FUNCTION(array_diff); -PHP_FUNCTION(array_diff_key); -PHP_FUNCTION(array_diff_ukey); -PHP_FUNCTION(array_udiff); -PHP_FUNCTION(array_diff_assoc); -PHP_FUNCTION(array_udiff_assoc); -PHP_FUNCTION(array_diff_uassoc); -PHP_FUNCTION(array_udiff_uassoc); -PHP_FUNCTION(array_sum); -PHP_FUNCTION(array_product); -PHP_FUNCTION(array_filter); -PHP_FUNCTION(array_map); -PHP_FUNCTION(array_key_exists); -PHP_FUNCTION(array_chunk); -PHP_FUNCTION(array_combine); - -PHPAPI int php_array_merge(HashTable *dest, HashTable *src); -PHPAPI int php_array_merge_recursive(HashTable *dest, HashTable *src); -PHPAPI int php_array_replace_recursive(HashTable *dest, HashTable *src); -PHPAPI int php_multisort_compare(const void *a, const void *b); -PHPAPI zend_long php_count_recursive(HashTable *ht); - -#define PHP_SORT_REGULAR 0 -#define PHP_SORT_NUMERIC 1 -#define PHP_SORT_STRING 2 -#define PHP_SORT_DESC 3 -#define PHP_SORT_ASC 4 -#define PHP_SORT_LOCALE_STRING 5 -#define PHP_SORT_NATURAL 6 -#define PHP_SORT_FLAG_CASE 8 - -#define COUNT_NORMAL 0 -#define COUNT_RECURSIVE 1 - -#define ARRAY_FILTER_USE_BOTH 1 -#define ARRAY_FILTER_USE_KEY 2 - -ZEND_BEGIN_MODULE_GLOBALS(array) - compare_func_t *multisort_func; -ZEND_END_MODULE_GLOBALS(array) - -#define ARRAYG(v) ZEND_MODULE_GLOBALS_ACCESSOR(array, v) - -#endif /* PHP_ARRAY_H */ diff --git a/include/php/ext/standard/php_assert.h b/include/php/ext/standard/php_assert.h deleted file mode 100644 index 0cc10f7..0000000 --- a/include/php/ext/standard/php_assert.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Thies C. Arntzen | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_ASSERT_H -#define PHP_ASSERT_H - -PHP_MINIT_FUNCTION(assert); -PHP_MSHUTDOWN_FUNCTION(assert); -PHP_RINIT_FUNCTION(assert); -PHP_RSHUTDOWN_FUNCTION(assert); -PHP_MINFO_FUNCTION(assert); -PHP_FUNCTION(assert); -PHP_FUNCTION(assert_options); - -#endif /* PHP_ASSERT_H */ diff --git a/include/php/ext/standard/php_browscap.h b/include/php/ext/standard/php_browscap.h deleted file mode 100644 index a2add82..0000000 --- a/include/php/ext/standard/php_browscap.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_BROWSCAP_H -#define PHP_BROWSCAP_H - -PHP_MINIT_FUNCTION(browscap); -PHP_MSHUTDOWN_FUNCTION(browscap); - -PHP_FUNCTION(get_browser); - -#endif /* PHP_BROWSCAP_H */ diff --git a/include/php/ext/standard/php_crypt.h b/include/php/ext/standard/php_crypt.h deleted file mode 100644 index 38410c9..0000000 --- a/include/php/ext/standard/php_crypt.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Stig Bakken | - | Zeev Suraski | - | Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_CRYPT_H -#define PHP_CRYPT_H - -PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const char *salt, int salt_len, zend_bool quiet); -PHP_FUNCTION(crypt); -PHP_MINIT_FUNCTION(crypt); -PHP_MSHUTDOWN_FUNCTION(crypt); -PHP_RINIT_FUNCTION(crypt); - -#endif diff --git a/include/php/ext/standard/php_crypt_r.h b/include/php/ext/standard/php_crypt_r.h deleted file mode 100644 index e5985e1..0000000 --- a/include/php/ext/standard/php_crypt_r.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Pierre Alain Joye | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_DIR_H -#define PHP_DIR_H - -/* directory functions */ -PHP_MINIT_FUNCTION(dir); -PHP_RINIT_FUNCTION(dir); -PHP_FUNCTION(opendir); -PHP_FUNCTION(closedir); -PHP_FUNCTION(chdir); -#if defined(HAVE_CHROOT) && !defined(ZTS) && ENABLE_CHROOT_FUNC -PHP_FUNCTION(chroot); -#endif -PHP_FUNCTION(getcwd); -PHP_FUNCTION(rewinddir); -PHP_NAMED_FUNCTION(php_if_readdir); -PHP_FUNCTION(getdir); -PHP_FUNCTION(glob); -PHP_FUNCTION(scandir); - -#define PHP_SCANDIR_SORT_ASCENDING 0 -#define PHP_SCANDIR_SORT_DESCENDING 1 -#define PHP_SCANDIR_SORT_NONE 2 - -#endif /* PHP_DIR_H */ diff --git a/include/php/ext/standard/php_dns.h b/include/php/ext/standard/php_dns.h deleted file mode 100644 index eee6d7a..0000000 --- a/include/php/ext/standard/php_dns.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: The typical suspects | - | Marcus Boerger | - | Pollita | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_DNS_H -#define PHP_DNS_H - -#if defined(HAVE_DNS_SEARCH) -#define php_dns_search(res, dname, class, type, answer, anslen) \ - ((int)dns_search(res, dname, class, type, (char *) answer, anslen, (struct sockaddr *)&from, &fromsize)) -#define php_dns_free_handle(res) \ - dns_free(res) -#define php_dns_errno(handle) h_errno - -#elif defined(HAVE_RES_NSEARCH) -#define php_dns_search(res, dname, class, type, answer, anslen) \ - res_nsearch(res, dname, class, type, answer, anslen); -#if HAVE_RES_NDESTROY -#define php_dns_free_handle(res) \ - res_ndestroy(res); \ - php_dns_free_res(res) -#else -#define php_dns_free_handle(res) \ - res_nclose(res); \ - php_dns_free_res(res) -#endif -#define php_dns_errno(handle) handle->res_h_errno - -#elif defined(HAVE_RES_SEARCH) -#define php_dns_search(res, dname, class, type, answer, anslen) \ - res_search(dname, class, type, answer, anslen) -#define php_dns_free_handle(res) /* noop */ -#define php_dns_errno(handle) h_errno - -#endif - -#if defined(HAVE_DNS_SEARCH) || defined(HAVE_RES_NSEARCH) || defined(HAVE_RES_SEARCH) -#define HAVE_DNS_SEARCH_FUNC 1 -#endif - -#if HAVE_DNS_SEARCH_FUNC && HAVE_DN_EXPAND && HAVE_DN_SKIPNAME -#define HAVE_FULL_DNS_FUNCS 1 -#endif - -PHP_FUNCTION(gethostbyaddr); -PHP_FUNCTION(gethostbyname); -PHP_FUNCTION(gethostbynamel); - -#ifdef HAVE_GETHOSTNAME -PHP_FUNCTION(gethostname); -#endif - -#if defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC -PHP_FUNCTION(dns_check_record); - -# if defined(PHP_WIN32) || HAVE_FULL_DNS_FUNCS -PHP_FUNCTION(dns_get_mx); -PHP_FUNCTION(dns_get_record); -PHP_MINIT_FUNCTION(dns); -# endif - -#endif /* defined(PHP_WIN32) || HAVE_DNS_SEARCH_FUNC */ - -#ifndef INT16SZ -#define INT16SZ 2 -#endif - -#ifndef INT32SZ -#define INT32SZ 4 -#endif - -#endif /* PHP_DNS_H */ diff --git a/include/php/ext/standard/php_ext_syslog.h b/include/php/ext/standard/php_ext_syslog.h deleted file mode 100644 index 3ae0789..0000000 --- a/include/php/ext/standard/php_ext_syslog.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stig Sæther Bakken | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_EXT_SYSLOG_H -#define PHP_EXT_SYSLOG_H - -#ifdef HAVE_SYSLOG_H - -#include "php_syslog.h" - -PHP_MINIT_FUNCTION(syslog); -PHP_RINIT_FUNCTION(syslog); -#ifdef PHP_WIN32 -PHP_RSHUTDOWN_FUNCTION(syslog); -#endif -PHP_MSHUTDOWN_FUNCTION(syslog); - -PHP_FUNCTION(openlog); -PHP_FUNCTION(syslog); -PHP_FUNCTION(closelog); - -#endif - -#endif /* PHP_EXT_SYSLOG_H */ diff --git a/include/php/ext/standard/php_filestat.h b/include/php/ext/standard/php_filestat.h deleted file mode 100644 index 2b2e183..0000000 --- a/include/php/ext/standard/php_filestat.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jim Winstead | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_FILESTAT_H -#define PHP_FILESTAT_H - -PHP_RINIT_FUNCTION(filestat); -PHP_RSHUTDOWN_FUNCTION(filestat); - -PHP_FUNCTION(realpath_cache_size); -PHP_FUNCTION(realpath_cache_get); -PHP_FUNCTION(clearstatcache); -PHP_FUNCTION(fileatime); -PHP_FUNCTION(filectime); -PHP_FUNCTION(filegroup); -PHP_FUNCTION(fileinode); -PHP_FUNCTION(filemtime); -PHP_FUNCTION(fileowner); -PHP_FUNCTION(fileperms); -PHP_FUNCTION(filesize); -PHP_FUNCTION(filetype); -PHP_FUNCTION(is_writable); -PHP_FUNCTION(is_readable); -PHP_FUNCTION(is_executable); -PHP_FUNCTION(is_file); -PHP_FUNCTION(is_dir); -PHP_FUNCTION(is_link); -PHP_FUNCTION(file_exists); -PHP_NAMED_FUNCTION(php_if_stat); -PHP_NAMED_FUNCTION(php_if_lstat); -PHP_FUNCTION(disk_total_space); -PHP_FUNCTION(disk_free_space); -PHP_FUNCTION(chown); -PHP_FUNCTION(chgrp); -#if HAVE_LCHOWN -PHP_FUNCTION(lchown); -#endif -#if HAVE_LCHOWN -PHP_FUNCTION(lchgrp); -#endif -PHP_FUNCTION(chmod); -#if HAVE_UTIME -PHP_FUNCTION(touch); -#endif -PHP_FUNCTION(clearstatcache); - -#ifdef PHP_WIN32 -#define S_IRUSR S_IREAD -#define S_IWUSR S_IWRITE -#define S_IXUSR S_IEXEC -#define S_IRGRP S_IREAD -#define S_IWGRP S_IWRITE -#define S_IXGRP S_IEXEC -#define S_IROTH S_IREAD -#define S_IWOTH S_IWRITE -#define S_IXOTH S_IEXEC - -#undef getgid -#define getgroups(a, b) 0 -#define getgid() 1 -#define getuid() 1 -#endif - -/* Compatibility. */ -typedef size_t php_stat_len; - -PHPAPI void php_clear_stat_cache(zend_bool clear_realpath_cache, const char *filename, size_t filename_len); -PHPAPI void php_stat(const char *filename, size_t filename_length, int type, zval *return_value); - -/* Switches for various filestat functions: */ -#define FS_PERMS 0 -#define FS_INODE 1 -#define FS_SIZE 2 -#define FS_OWNER 3 -#define FS_GROUP 4 -#define FS_ATIME 5 -#define FS_MTIME 6 -#define FS_CTIME 7 -#define FS_TYPE 8 -#define FS_IS_W 9 -#define FS_IS_R 10 -#define FS_IS_X 11 -#define FS_IS_FILE 12 -#define FS_IS_DIR 13 -#define FS_IS_LINK 14 -#define FS_EXISTS 15 -#define FS_LSTAT 16 -#define FS_STAT 17 - -#endif /* PHP_FILESTAT_H */ diff --git a/include/php/ext/standard/php_fopen_wrappers.h b/include/php/ext/standard/php_fopen_wrappers.h deleted file mode 100644 index 3c49ab4..0000000 --- a/include/php/ext/standard/php_fopen_wrappers.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Jim Winstead | - | Hartmut Holzgraefe | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_FOPEN_WRAPPERS_H -#define PHP_FOPEN_WRAPPERS_H - -php_stream *php_stream_url_wrap_http(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); -php_stream *php_stream_url_wrap_ftp(php_stream_wrapper *wrapper, const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); -extern PHPAPI const php_stream_wrapper php_stream_http_wrapper; -extern PHPAPI const php_stream_wrapper php_stream_ftp_wrapper; -extern PHPAPI const php_stream_wrapper php_stream_php_wrapper; -extern PHPAPI /*const*/ php_stream_wrapper php_plain_files_wrapper; - -#endif diff --git a/include/php/ext/standard/php_ftok.h b/include/php/ext/standard/php_ftok.h deleted file mode 100644 index 3f79fa5..0000000 --- a/include/php/ext/standard/php_ftok.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Andrew Sitnikov | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_FTOK_H -#define PHP_FTOK_H - -#if HAVE_FTOK -PHP_FUNCTION(ftok); -#endif - -#endif /* PHP_FTOK_H */ diff --git a/include/php/ext/standard/php_http.h b/include/php/ext/standard/php_http.h deleted file mode 100644 index b8ce4b1..0000000 --- a/include/php/ext/standard/php_http.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Sara Golemon | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_HTTP_H -#define PHP_HTTP_H - -#include "php.h" -#include "zend_smart_str.h" - -PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr, - const char *num_prefix, size_t num_prefix_len, - const char *key_prefix, size_t key_prefix_len, - const char *key_suffix, size_t key_suffix_len, - zval *type, char *arg_sep, int enc_type); -#define php_url_encode_hash(ht, formstr) php_url_encode_hash_ex((ht), (formstr), NULL, 0, NULL, 0, NULL, 0, NULL) - -PHP_FUNCTION(http_build_query); - -#endif diff --git a/include/php/ext/standard/php_image.h b/include/php/ext/standard/php_image.h deleted file mode 100644 index 5f9b07d..0000000 --- a/include/php/ext/standard/php_image.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Marcus Boerger | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_IMAGE_H -#define PHP_IMAGE_H - -PHP_FUNCTION(getimagesize); -PHP_FUNCTION(getimagesizefromstring); - -PHP_FUNCTION(image_type_to_mime_type); -PHP_FUNCTION(image_type_to_extension); - -/* {{{ enum image_filetype - This enum is used to have ext/standard/image.c and ext/exif/exif.c use - the same constants for file types. -*/ -typedef enum -{ IMAGE_FILETYPE_UNKNOWN=0, - IMAGE_FILETYPE_GIF=1, - IMAGE_FILETYPE_JPEG, - IMAGE_FILETYPE_PNG, - IMAGE_FILETYPE_SWF, - IMAGE_FILETYPE_PSD, - IMAGE_FILETYPE_BMP, - IMAGE_FILETYPE_TIFF_II, /* intel */ - IMAGE_FILETYPE_TIFF_MM, /* motorola */ - IMAGE_FILETYPE_JPC, - IMAGE_FILETYPE_JP2, - IMAGE_FILETYPE_JPX, - IMAGE_FILETYPE_JB2, - IMAGE_FILETYPE_SWC, - IMAGE_FILETYPE_IFF, - IMAGE_FILETYPE_WBMP, - /* IMAGE_FILETYPE_JPEG2000 is a userland alias for IMAGE_FILETYPE_JPC */ - IMAGE_FILETYPE_XBM, - IMAGE_FILETYPE_ICO, - IMAGE_FILETYPE_WEBP, -/* WHEN EXTENDING: PLEASE ALSO REGISTER IN image.c:PHP_MINIT_FUNCTION(imagetypes) */ - IMAGE_FILETYPE_COUNT -} image_filetype; -/* }}} */ - -PHP_MINIT_FUNCTION(imagetypes); - -PHPAPI int php_getimagetype(php_stream *stream, char *filetype); - -PHPAPI char * php_image_type_to_mime_type(int image_type); - -#endif /* PHP_IMAGE_H */ diff --git a/include/php/ext/standard/php_incomplete_class.h b/include/php/ext/standard/php_incomplete_class.h deleted file mode 100644 index d768f25..0000000 --- a/include/php/ext/standard/php_incomplete_class.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_INCOMPLETE_CLASS_H -#define PHP_INCOMPLETE_CLASS_H - -#include "ext/standard/basic_functions.h" - -#define PHP_IC_ENTRY \ - BG(incomplete_class) - -#define PHP_SET_CLASS_ATTRIBUTES(struc) \ - /* OBJECTS_FIXME: Fix for new object model */ \ - if (Z_OBJCE_P(struc) == BG(incomplete_class)) { \ - class_name = php_lookup_class_name(struc); \ - if (!class_name) { \ - class_name = zend_string_init(INCOMPLETE_CLASS, sizeof(INCOMPLETE_CLASS) - 1, 0); \ - } \ - incomplete_class = 1; \ - } else { \ - class_name = zend_string_copy(Z_OBJCE_P(struc)->name); \ - } - -#define PHP_CLEANUP_CLASS_ATTRIBUTES() \ - zend_string_release_ex(class_name, 0) - -#define PHP_CLASS_ATTRIBUTES \ - zend_string *class_name; \ - zend_bool incomplete_class ZEND_ATTRIBUTE_UNUSED = 0 - -#define INCOMPLETE_CLASS "__PHP_Incomplete_Class" -#define MAGIC_MEMBER "__PHP_Incomplete_Class_Name" - -#ifdef __cplusplus -extern "C" { -#endif - -PHPAPI zend_class_entry *php_create_incomplete_class(void); -PHPAPI zend_string *php_lookup_class_name(zval *object); -PHPAPI void php_store_class_name(zval *object, const char *name, size_t len); - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/include/php/ext/standard/php_iptc.h b/include/php/ext/standard/php_iptc.h deleted file mode 100644 index 1636cea..0000000 --- a/include/php/ext/standard/php_iptc.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Thies C. Arntzen | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_IPTC_H -#define PHP_IPTC_H - -PHP_FUNCTION(iptcparse); -PHP_FUNCTION(iptcembed); - -#endif /* PHP_IPTC_H */ diff --git a/include/php/ext/standard/php_lcg.h b/include/php/ext/standard/php_lcg.h deleted file mode 100644 index f3d52f1..0000000 --- a/include/php/ext/standard/php_lcg.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_LCG_H -#define PHP_LCG_H - -#include "ext/standard/basic_functions.h" - -typedef struct { - int32_t s1; - int32_t s2; - int seeded; -} php_lcg_globals; - -PHPAPI double php_combined_lcg(void); -PHP_FUNCTION(lcg_value); - -PHP_MINIT_FUNCTION(lcg); - -#ifdef ZTS -#define LCG(v) ZEND_TSRMG(lcg_globals_id, php_lcg_globals *, v) -#else -#define LCG(v) (lcg_globals.v) -#endif - -#endif diff --git a/include/php/ext/standard/php_link.h b/include/php/ext/standard/php_link.h deleted file mode 100644 index 4b20077..0000000 --- a/include/php/ext/standard/php_link.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_LINK_H -#define PHP_LINK_H - -#if defined(HAVE_SYMLINK) || defined(PHP_WIN32) - -PHP_FUNCTION(link); -PHP_FUNCTION(readlink); -PHP_FUNCTION(linkinfo); -PHP_FUNCTION(symlink); - -#endif - -#endif /* PHP_LINK_H */ diff --git a/include/php/ext/standard/php_mail.h b/include/php/ext/standard/php_mail.h deleted file mode 100644 index 90e1497..0000000 --- a/include/php/ext/standard/php_mail.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_MAIL_H -#define PHP_MAIL_H - -PHP_FUNCTION(mail); -PHP_FUNCTION(ezmlm_hash); - -PHP_MINFO_FUNCTION(mail); - -PHPAPI zend_string *php_mail_build_headers(zval *headers); -PHPAPI extern int php_mail(char *to, char *subject, char *message, char *headers, char *extra_cmd); - -#define PHP_MAIL_BUILD_HEADER_CHECK(target, s, key, val) \ -do { \ - if (Z_TYPE_P(val) == IS_STRING) { \ - php_mail_build_headers_elem(&s, key, val); \ - } else if (Z_TYPE_P(val) == IS_ARRAY) { \ - if (!strncasecmp(target, ZSTR_VAL(key), ZSTR_LEN(key))) { \ - php_error_docref(NULL, E_WARNING, "'%s' header must be at most one header. Array is passed for '%s'", target, target); \ - continue; \ - } \ - php_mail_build_headers_elems(&s, key, val); \ - } else { \ - php_error_docref(NULL, E_WARNING, "Extra header element '%s' cannot be other than string or array.", ZSTR_VAL(key)); \ - } \ -} while(0) - - -#define PHP_MAIL_BUILD_HEADER_DEFAULT(s, key, val) \ -do { \ - if (Z_TYPE_P(val) == IS_STRING) { \ - php_mail_build_headers_elem(&s, key, val); \ - } else if (Z_TYPE_P(val) == IS_ARRAY) { \ - php_mail_build_headers_elems(&s, key, val); \ - } else { \ - php_error_docref(NULL, E_WARNING, "Extra header element '%s' cannot be other than string or array.", ZSTR_VAL(key)); \ - } \ -} while(0) - - -#endif /* PHP_MAIL_H */ diff --git a/include/php/ext/standard/php_math.h b/include/php/ext/standard/php_math.h deleted file mode 100644 index 791a01c..0000000 --- a/include/php/ext/standard/php_math.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Jim Winstead | - | Stig Sæther Bakken | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_MATH_H -#define PHP_MATH_H - -PHPAPI double _php_math_round(double, int, int); -PHPAPI zend_string *_php_math_number_format(double, int, char, char); -PHPAPI zend_string *_php_math_number_format_ex(double, int, char *, size_t, char *, size_t); -PHPAPI zend_string * _php_math_longtobase(zval *arg, int base); -PHPAPI zend_long _php_math_basetolong(zval *arg, int base); -PHPAPI int _php_math_basetozval(zval *arg, int base, zval *ret); -PHPAPI zend_string * _php_math_zvaltobase(zval *arg, int base); - -PHP_FUNCTION(sin); -PHP_FUNCTION(cos); -PHP_FUNCTION(tan); -PHP_FUNCTION(asin); -PHP_FUNCTION(acos); -PHP_FUNCTION(atan); -PHP_FUNCTION(atan2); -PHP_FUNCTION(pi); -PHP_FUNCTION(exp); -PHP_FUNCTION(log); -PHP_FUNCTION(log10); -PHP_FUNCTION(is_finite); -PHP_FUNCTION(is_infinite); -PHP_FUNCTION(is_nan); -PHP_FUNCTION(pow); -PHP_FUNCTION(sqrt); -PHP_FUNCTION(rand); -PHP_FUNCTION(mt_srand); -PHP_FUNCTION(mt_rand); -PHP_FUNCTION(mt_getrandmax); -PHP_FUNCTION(abs); -PHP_FUNCTION(ceil); -PHP_FUNCTION(floor); -PHP_FUNCTION(round); -PHP_FUNCTION(decbin); -PHP_FUNCTION(dechex); -PHP_FUNCTION(decoct); -PHP_FUNCTION(bindec); -PHP_FUNCTION(hexdec); -PHP_FUNCTION(octdec); -PHP_FUNCTION(base_convert); -PHP_FUNCTION(number_format); -PHP_FUNCTION(fmod); -PHP_FUNCTION(deg2rad); -PHP_FUNCTION(rad2deg); -PHP_FUNCTION(intdiv); - - /* - WARNING: these functions are expermental: they could change their names or - disappear in the next version of PHP! - */ -PHP_FUNCTION(hypot); -PHP_FUNCTION(expm1); -PHP_FUNCTION(log1p); - -PHP_FUNCTION(sinh); -PHP_FUNCTION(cosh); -PHP_FUNCTION(tanh); - -PHP_FUNCTION(asinh); -PHP_FUNCTION(acosh); -PHP_FUNCTION(atanh); - -#include - -#ifndef M_E -#define M_E 2.7182818284590452354 /* e */ -#endif - -#ifndef M_LOG2E -#define M_LOG2E 1.4426950408889634074 /* log_2 e */ -#endif - -#ifndef M_LOG10E -#define M_LOG10E 0.43429448190325182765 /* log_10 e */ -#endif - -#ifndef M_LN2 -#define M_LN2 0.69314718055994530942 /* log_e 2 */ -#endif - -#ifndef M_LN10 -#define M_LN10 2.30258509299404568402 /* log_e 10 */ -#endif - -#ifndef M_PI -#define M_PI 3.14159265358979323846 /* pi */ -#endif - -#ifndef M_PI_2 -#define M_PI_2 1.57079632679489661923 /* pi/2 */ -#endif - -#ifndef M_PI_4 -#define M_PI_4 0.78539816339744830962 /* pi/4 */ -#endif - -#ifndef M_1_PI -#define M_1_PI 0.31830988618379067154 /* 1/pi */ -#endif - -#ifndef M_2_PI -#define M_2_PI 0.63661977236758134308 /* 2/pi */ -#endif - -#ifndef M_SQRTPI -#define M_SQRTPI 1.77245385090551602729 /* sqrt(pi) */ -#endif - -#ifndef M_2_SQRTPI -#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ -#endif - -#ifndef M_LNPI -#define M_LNPI 1.14472988584940017414 /* ln(pi) */ -#endif - -#ifndef M_EULER -#define M_EULER 0.57721566490153286061 /* Euler constant */ -#endif - -#ifndef M_SQRT2 -#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ -#endif - -#ifndef M_SQRT1_2 -#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ -#endif - -#ifndef M_SQRT3 -#define M_SQRT3 1.73205080756887729352 /* sqrt(3) */ -#endif - -/* Define rounding modes (all are round-to-nearest) */ -#ifndef PHP_ROUND_HALF_UP -#define PHP_ROUND_HALF_UP 0x01 /* Arithmetic rounding, up == away from zero */ -#endif - -#ifndef PHP_ROUND_HALF_DOWN -#define PHP_ROUND_HALF_DOWN 0x02 /* Down == towards zero */ -#endif - -#ifndef PHP_ROUND_HALF_EVEN -#define PHP_ROUND_HALF_EVEN 0x03 /* Banker's rounding */ -#endif - -#ifndef PHP_ROUND_HALF_ODD -#define PHP_ROUND_HALF_ODD 0x04 -#endif - -#endif /* PHP_MATH_H */ diff --git a/include/php/ext/standard/php_metaphone.h b/include/php/ext/standard/php_metaphone.h deleted file mode 100644 index 7543b4e..0000000 --- a/include/php/ext/standard/php_metaphone.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Thies C. Arntzen | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_METAPHONE_H -#define PHP_METAPHONE_H - -PHP_FUNCTION(metaphone); - -#endif diff --git a/include/php/ext/standard/php_mt_rand.h b/include/php/ext/standard/php_mt_rand.h deleted file mode 100644 index 9446421..0000000 --- a/include/php/ext/standard/php_mt_rand.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Zeev Suraski | - | Pedro Melo | - | Sterling Hughes | - | | - | Based on code from: Shawn Cokus | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_MT_RAND_H -#define PHP_MT_RAND_H - -#include "php_lcg.h" -#include "php_rand.h" - -#define PHP_MT_RAND_MAX ((zend_long) (0x7FFFFFFF)) /* (1<<31) - 1 */ - -#define MT_RAND_MT19937 0 -#define MT_RAND_PHP 1 - -PHPAPI void php_mt_srand(uint32_t seed); -PHPAPI uint32_t php_mt_rand(void); -PHPAPI zend_long php_mt_rand_range(zend_long min, zend_long max); -PHPAPI zend_long php_mt_rand_common(zend_long min, zend_long max); - -PHP_MINIT_FUNCTION(mt_rand); - -#endif /* PHP_MT_RAND_H */ diff --git a/include/php/ext/standard/php_net.h b/include/php/ext/standard/php_net.h deleted file mode 100644 index c0a60eb..0000000 --- a/include/php/ext/standard/php_net.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Sara Golemon | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_NET_H -#define PHP_NET_H - -#include "php.h" -#include "php_network.h" - -PHPAPI zend_string* php_inet_ntop(const struct sockaddr *addr); - -PHP_FUNCTION(net_get_interfaces); - -#endif /* PHP_NET_H */ diff --git a/include/php/ext/standard/php_password.h b/include/php/ext/standard/php_password.h deleted file mode 100644 index 97a6bf6..0000000 --- a/include/php/ext/standard/php_password.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Anthony Ferrara | - | Charles R. Portwood II | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_PASSWORD_H -#define PHP_PASSWORD_H - -PHP_FUNCTION(password_hash); -PHP_FUNCTION(password_verify); -PHP_FUNCTION(password_needs_rehash); -PHP_FUNCTION(password_get_info); -PHP_FUNCTION(password_algos); - -PHP_MINIT_FUNCTION(password); -PHP_MSHUTDOWN_FUNCTION(password); - -#define PHP_PASSWORD_DEFAULT PHP_PASSWORD_BCRYPT -#define PHP_PASSWORD_BCRYPT_COST 10 - -#if HAVE_ARGON2LIB -/** - * When updating these values, synchronize ext/sodium/sodium_pwhash.c values. - * Note that libargon expresses memlimit in KB, while libsoidum uses bytes. - */ -#define PHP_PASSWORD_ARGON2_MEMORY_COST (64 << 10) -#define PHP_PASSWORD_ARGON2_TIME_COST 4 -#define PHP_PASSWORD_ARGON2_THREADS 1 -#endif - -typedef struct _php_password_algo { - const char *name; - zend_string *(*hash)(const zend_string *password, zend_array *options); - zend_bool (*verify)(const zend_string *password, const zend_string *hash); - zend_bool (*needs_rehash)(const zend_string *password, zend_array *options); - int (*get_info)(zval *return_value, const zend_string *hash); - zend_bool (*valid)(const zend_string *hash); -} php_password_algo; - -extern const php_password_algo php_password_algo_bcrypt; -#if HAVE_ARGON2LIB -extern const php_password_algo php_password_algo_argon2i; -extern const php_password_algo php_password_algo_argon2id; -#endif - -PHPAPI int php_password_algo_register(const char*, const php_password_algo*); -PHPAPI void php_password_algo_unregister(const char*); -PHPAPI const php_password_algo* php_password_algo_default(); -PHPAPI zend_string *php_password_algo_extract_ident(const zend_string*); -PHPAPI const php_password_algo* php_password_algo_find(const zend_string*); - -PHPAPI const php_password_algo* php_password_algo_identify_ex(const zend_string*, const php_password_algo*); -static inline const php_password_algo* php_password_algo_identify(const zend_string *hash) { - return php_password_algo_identify_ex(hash, php_password_algo_default()); -} - - -#endif diff --git a/include/php/ext/standard/php_rand.h b/include/php/ext/standard/php_rand.h deleted file mode 100644 index 8cd47a5..0000000 --- a/include/php/ext/standard/php_rand.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Zeev Suraski | - | Pedro Melo | - | Sterling Hughes | - | | - | Based on code from: Shawn Cokus | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_RAND_H -#define PHP_RAND_H - -#include "php_lcg.h" -#include "php_mt_rand.h" - -/* System Rand functions */ -#ifndef RAND_MAX -#define RAND_MAX PHP_MT_RAND_MAX -#endif - -#define PHP_RAND_MAX PHP_MT_RAND_MAX - -/* - * A bit of tricky math here. We want to avoid using a modulus because - * that simply tosses the high-order bits and might skew the distribution - * of random values over the range. Instead we map the range directly. - * - * We need to map the range from 0...M evenly to the range a...b - * Let n = the random number and n' = the mapped random number - * - * Then we have: n' = a + n(b-a)/M - * - * We have a problem here in that only n==M will get mapped to b which - # means the chances of getting b is much much less than getting any of - # the other values in the range. We can fix this by increasing our range - # artificially and using: - # - # n' = a + n(b-a+1)/M - * - # Now we only have a problem if n==M which would cause us to produce a - # number of b+1 which would be bad. So we bump M up by one to make sure - # this will never happen, and the final algorithm looks like this: - # - # n' = a + n(b-a+1)/(M+1) - * - * -RL - */ -#define RAND_RANGE_BADSCALING(__n, __min, __max, __tmax) \ - (__n) = (__min) + (zend_long) ((double) ( (double) (__max) - (__min) + 1.0) * ((__n) / ((__tmax) + 1.0))) - -#ifdef PHP_WIN32 -#define GENERATE_SEED() (((zend_long) (time(0) * GetCurrentProcessId())) ^ ((zend_long) (1000000.0 * php_combined_lcg()))) -#else -#define GENERATE_SEED() (((zend_long) (time(0) * getpid())) ^ ((zend_long) (1000000.0 * php_combined_lcg()))) -#endif - -PHPAPI void php_srand(zend_long seed); -PHPAPI zend_long php_rand(void); - -#endif /* PHP_RAND_H */ diff --git a/include/php/ext/standard/php_random.h b/include/php/ext/standard/php_random.h deleted file mode 100644 index e61a80f..0000000 --- a/include/php/ext/standard/php_random.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Sammy Kaye Powers | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_RANDOM_H -#define PHP_RANDOM_H - -BEGIN_EXTERN_C() - -PHP_FUNCTION(random_bytes); -PHP_FUNCTION(random_int); - -PHP_MINIT_FUNCTION(random); -PHP_MSHUTDOWN_FUNCTION(random); - -typedef struct { - int fd; -} php_random_globals; - -#define php_random_bytes_throw(b, s) php_random_bytes((b), (s), 1) -#define php_random_bytes_silent(b, s) php_random_bytes((b), (s), 0) - -#define php_random_int_throw(min, max, result) \ - php_random_int((min), (max), (result), 1) -#define php_random_int_silent(min, max, result) \ - php_random_int((min), (max), (result), 0) - -PHPAPI int php_random_bytes(void *bytes, size_t size, zend_bool should_throw); -PHPAPI int php_random_int(zend_long min, zend_long max, zend_long *result, zend_bool should_throw); - -#ifdef ZTS -# define RANDOM_G(v) ZEND_TSRMG(random_globals_id, php_random_globals *, v) -extern PHPAPI int random_globals_id; -#else -# define RANDOM_G(v) random_globals.v -extern PHPAPI php_random_globals random_globals; -#endif - -END_EXTERN_C() - -#endif diff --git a/include/php/ext/standard/php_smart_string.h b/include/php/ext/standard/php_smart_string.h deleted file mode 100644 index b104245..0000000 --- a/include/php/ext/standard/php_smart_string.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - | Xinchen Hui | - +----------------------------------------------------------------------+ - */ - -/* Header moved to Zend. This file is retained for BC. */ -#include "zend_smart_string.h" diff --git a/include/php/ext/standard/php_smart_string_public.h b/include/php/ext/standard/php_smart_string_public.h deleted file mode 100644 index 5bb0c6c..0000000 --- a/include/php/ext/standard/php_smart_string_public.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - | Xinchen Hui | - +----------------------------------------------------------------------+ - */ - -/* Header moved to Zend. This file is retained for BC. */ -#include "zend_smart_string_public.h" diff --git a/include/php/ext/standard/php_standard.h b/include/php/ext/standard/php_standard.h deleted file mode 100644 index 6152642..0000000 --- a/include/php/ext/standard/php_standard.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ -*/ - -#include "basic_functions.h" -#include "php_math.h" -#include "php_string.h" -#include "base64.h" -#include "php_dir.h" -#include "php_dns.h" -#include "php_mail.h" -#include "md5.h" -#include "sha1.h" -#include "hrtime.h" -#include "html.h" -#include "exec.h" -#include "file.h" -#include "php_ext_syslog.h" -#include "php_filestat.h" -#include "php_browscap.h" -#include "pack.h" -#include "datetime.h" -#include "microtime.h" -#include "url.h" -#include "pageinfo.h" -#include "cyr_convert.h" -#include "php_link.h" -#include "fsock.h" -#include "php_image.h" -#include "php_iptc.h" -#include "info.h" -#include "uniqid.h" -#include "php_var.h" -#include "quot_print.h" -#include "dl.h" -#include "php_crypt.h" -#include "head.h" -#include "php_lcg.h" -#include "php_metaphone.h" -#include "php_output.h" -#include "php_array.h" -#include "php_assert.h" -#include "php_versioning.h" -#include "php_ftok.h" -#include "php_type.h" -#include "php_password.h" -#include "php_random.h" - -#include "php_version.h" -#define PHP_STANDARD_VERSION PHP_VERSION - -#define phpext_standard_ptr basic_functions_module_ptr -PHP_MINIT_FUNCTION(standard_filters); -PHP_MSHUTDOWN_FUNCTION(standard_filters); diff --git a/include/php/ext/standard/php_string.h b/include/php/ext/standard/php_string.h deleted file mode 100644 index 0bf88cb..0000000 --- a/include/php/ext/standard/php_string.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Stig Sæther Bakken | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_STRING_H -#define PHP_STRING_H - -PHP_FUNCTION(strspn); -PHP_FUNCTION(strcspn); -PHP_FUNCTION(str_replace); -PHP_FUNCTION(str_ireplace); -PHP_FUNCTION(rtrim); -PHP_FUNCTION(trim); -PHP_FUNCTION(ltrim); -PHP_FUNCTION(soundex); -PHP_FUNCTION(levenshtein); - -PHP_FUNCTION(count_chars); -PHP_FUNCTION(wordwrap); -PHP_FUNCTION(explode); -PHP_FUNCTION(implode); -PHP_FUNCTION(strtok); -PHP_FUNCTION(strtoupper); -PHP_FUNCTION(strtolower); -PHP_FUNCTION(basename); -PHP_FUNCTION(dirname); -PHP_FUNCTION(pathinfo); -PHP_FUNCTION(strstr); -PHP_FUNCTION(strpos); -PHP_FUNCTION(stripos); -PHP_FUNCTION(strrpos); -PHP_FUNCTION(strripos); -PHP_FUNCTION(strrchr); -PHP_FUNCTION(substr); -PHP_FUNCTION(quotemeta); -PHP_FUNCTION(ucfirst); -PHP_FUNCTION(lcfirst); -PHP_FUNCTION(ucwords); -PHP_FUNCTION(strtr); -PHP_FUNCTION(strrev); -PHP_FUNCTION(hebrev); -PHP_FUNCTION(hebrevc); -PHP_FUNCTION(user_sprintf); -PHP_FUNCTION(user_printf); -PHP_FUNCTION(vprintf); -PHP_FUNCTION(vsprintf); -PHP_FUNCTION(addcslashes); -PHP_FUNCTION(addslashes); -PHP_FUNCTION(stripcslashes); -PHP_FUNCTION(stripslashes); -PHP_FUNCTION(chr); -PHP_FUNCTION(ord); -PHP_FUNCTION(nl2br); -PHP_FUNCTION(setlocale); -PHP_FUNCTION(localeconv); -PHP_FUNCTION(nl_langinfo); -PHP_FUNCTION(stristr); -PHP_FUNCTION(chunk_split); -PHP_FUNCTION(parse_str); -PHP_FUNCTION(str_getcsv); -PHP_FUNCTION(bin2hex); -PHP_FUNCTION(hex2bin); -PHP_FUNCTION(similar_text); -PHP_FUNCTION(strip_tags); -PHP_FUNCTION(str_repeat); -PHP_FUNCTION(substr_replace); -PHP_FUNCTION(strnatcmp); -PHP_FUNCTION(strnatcasecmp); -PHP_FUNCTION(substr_count); -PHP_FUNCTION(str_pad); -PHP_FUNCTION(sscanf); -PHP_FUNCTION(str_shuffle); -PHP_FUNCTION(str_word_count); -PHP_FUNCTION(str_split); -PHP_FUNCTION(strpbrk); -PHP_FUNCTION(substr_compare); -PHP_FUNCTION(utf8_encode); -PHP_FUNCTION(utf8_decode); -PHP_FUNCTION(strcoll); -#if HAVE_STRFMON -PHP_FUNCTION(money_format); -#endif - -#if defined(ZTS) -PHP_MINIT_FUNCTION(localeconv); -PHP_MSHUTDOWN_FUNCTION(localeconv); -#endif -#if HAVE_NL_LANGINFO -PHP_MINIT_FUNCTION(nl_langinfo); -#endif -#if ZEND_INTRIN_SSE4_2_FUNC_PTR -PHP_MINIT_FUNCTION(string_intrin); -#endif - -#define strnatcmp(a, b) \ - strnatcmp_ex(a, strlen(a), b, strlen(b), 0) -#define strnatcasecmp(a, b) \ - strnatcmp_ex(a, strlen(a), b, strlen(b), 1) -PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case); -PHPAPI struct lconv *localeconv_r(struct lconv *out); -PHPAPI char *php_strtoupper(char *s, size_t len); -PHPAPI char *php_strtolower(char *s, size_t len); -PHPAPI zend_string *php_string_toupper(zend_string *s); -PHPAPI zend_string *php_string_tolower(zend_string *s); -PHPAPI char *php_strtr(char *str, size_t len, const char *str_from, const char *str_to, size_t trlen); -PHPAPI zend_string *php_addslashes(zend_string *str); -PHPAPI void php_stripslashes(zend_string *str); -PHPAPI zend_string *php_addcslashes_str(const char *str, size_t len, char *what, size_t what_len); -PHPAPI zend_string *php_addcslashes(zend_string *str, char *what, size_t what_len); -PHPAPI void php_stripcslashes(zend_string *str); -PHPAPI zend_string *php_basename(const char *s, size_t len, char *suffix, size_t sufflen); -PHPAPI size_t php_dirname(char *str, size_t len); -PHPAPI char *php_stristr(char *s, char *t, size_t s_len, size_t t_len); -PHPAPI zend_string *php_str_to_str(const char *haystack, size_t length, const char *needle, - size_t needle_len, const char *str, size_t str_len); -PHPAPI zend_string *php_trim(zend_string *str, char *what, size_t what_len, int mode); -PHPAPI size_t php_strip_tags(char *rbuf, size_t len, uint8_t *state, const char *allow, size_t allow_len); -PHPAPI size_t php_strip_tags_ex(char *rbuf, size_t len, uint8_t *stateptr, const char *allow, size_t allow_len, zend_bool allow_tag_spaces); -PHPAPI void php_implode(const zend_string *delim, zval *arr, zval *return_value); -PHPAPI void php_explode(const zend_string *delim, zend_string *str, zval *return_value, zend_long limit); - -PHPAPI size_t php_strspn(char *s1, char *s2, char *s1_end, char *s2_end); -PHPAPI size_t php_strcspn(char *s1, char *s2, char *s1_end, char *s2_end); - -PHPAPI int string_natural_compare_function_ex(zval *result, zval *op1, zval *op2, zend_bool case_insensitive); -PHPAPI int string_natural_compare_function(zval *result, zval *op1, zval *op2); -PHPAPI int string_natural_case_compare_function(zval *result, zval *op1, zval *op2); - -#ifndef HAVE_MBLEN -# define php_mblen(ptr, len) 1 -# define php_mb_reset() -#elif defined(_REENTRANT) && defined(HAVE_MBRLEN) && defined(HAVE_MBSTATE_T) -# ifdef PHP_WIN32 -# include -# endif -# define php_mblen(ptr, len) ((int) mbrlen(ptr, len, &BG(mblen_state))) -# define php_mb_reset() memset(&BG(mblen_state), 0, sizeof(BG(mblen_state))) -#else -# define php_mblen(ptr, len) mblen(ptr, len) -# define php_mb_reset() php_ignore_value(mblen(NULL, 0)) -#endif - -void register_string_constants(INIT_FUNC_ARGS); - -#endif /* PHP_STRING_H */ diff --git a/include/php/ext/standard/php_type.h b/include/php/ext/standard/php_type.h deleted file mode 100644 index 9cd4cb2..0000000 --- a/include/php/ext/standard/php_type.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Rasmus Lerdorf | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_TYPE_H -#define PHP_TYPE_H - -PHP_FUNCTION(intval); -PHP_FUNCTION(floatval); -PHP_FUNCTION(strval); -PHP_FUNCTION(boolval); -PHP_FUNCTION(gettype); -PHP_FUNCTION(settype); -PHP_FUNCTION(is_null); -PHP_FUNCTION(is_resource); -PHP_FUNCTION(is_bool); -PHP_FUNCTION(is_int); -PHP_FUNCTION(is_float); -PHP_FUNCTION(is_numeric); -PHP_FUNCTION(is_string); -PHP_FUNCTION(is_array); -PHP_FUNCTION(is_object); -PHP_FUNCTION(is_scalar); -PHP_FUNCTION(is_callable); -PHP_FUNCTION(is_iterable); -PHP_FUNCTION(is_countable); - -#endif diff --git a/include/php/ext/standard/php_uuencode.h b/include/php/ext/standard/php_uuencode.h deleted file mode 100644 index 7c350b4..0000000 --- a/include/php/ext/standard/php_uuencode.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Ilia Alshanetsky | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_UUENCODE_H -#define PHP_UUENCODE_H - -PHP_FUNCTION(convert_uudecode); -PHP_FUNCTION(convert_uuencode); - -PHPAPI zend_string *php_uudecode(char *src, size_t src_len); -PHPAPI zend_string *php_uuencode(char *src, size_t src_len); - -#endif /* PHP_UUENCODE_H */ diff --git a/include/php/ext/standard/php_var.h b/include/php/ext/standard/php_var.h deleted file mode 100644 index 1342ae2..0000000 --- a/include/php/ext/standard/php_var.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jani Lehtimäki | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_VAR_H -#define PHP_VAR_H - -#include "ext/standard/basic_functions.h" -#include "zend_smart_str_public.h" - -PHP_MINIT_FUNCTION(var); -PHP_FUNCTION(var_dump); -PHP_FUNCTION(var_export); -PHP_FUNCTION(debug_zval_dump); -PHP_FUNCTION(serialize); -PHP_FUNCTION(unserialize); -PHP_FUNCTION(memory_get_usage); -PHP_FUNCTION(memory_get_peak_usage); - -PHPAPI void php_var_dump(zval *struc, int level); -PHPAPI void php_var_export(zval *struc, int level); -PHPAPI void php_var_export_ex(zval *struc, int level, smart_str *buf); - -PHPAPI void php_debug_zval_dump(zval *struc, int level); - -typedef struct php_serialize_data *php_serialize_data_t; -typedef struct php_unserialize_data *php_unserialize_data_t; - -PHPAPI void php_var_serialize(smart_str *buf, zval *struc, php_serialize_data_t *data); -PHPAPI int php_var_unserialize(zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash); -PHPAPI int php_var_unserialize_ref(zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash); -PHPAPI int php_var_unserialize_intern(zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash); - -PHPAPI php_serialize_data_t php_var_serialize_init(void); -PHPAPI void php_var_serialize_destroy(php_serialize_data_t d); -PHPAPI php_unserialize_data_t php_var_unserialize_init(void); -PHPAPI void php_var_unserialize_destroy(php_unserialize_data_t d); -PHPAPI HashTable *php_var_unserialize_get_allowed_classes(php_unserialize_data_t d); -PHPAPI void php_var_unserialize_set_allowed_classes(php_unserialize_data_t d, HashTable *classes); -PHPAPI void php_var_unserialize_set_max_depth(php_unserialize_data_t d, zend_long max_depth); -PHPAPI zend_long php_var_unserialize_get_max_depth(php_unserialize_data_t d); -PHPAPI void php_var_unserialize_set_cur_depth(php_unserialize_data_t d, zend_long cur_depth); -PHPAPI zend_long php_var_unserialize_get_cur_depth(php_unserialize_data_t d); - -#define PHP_VAR_SERIALIZE_INIT(d) \ - (d) = php_var_serialize_init() - -#define PHP_VAR_SERIALIZE_DESTROY(d) \ - php_var_serialize_destroy(d) - -#define PHP_VAR_UNSERIALIZE_INIT(d) \ - (d) = php_var_unserialize_init() - -#define PHP_VAR_UNSERIALIZE_DESTROY(d) \ - php_var_unserialize_destroy(d) - -PHPAPI void var_replace(php_unserialize_data_t *var_hash, zval *ozval, zval *nzval); -PHPAPI void var_push_dtor(php_unserialize_data_t *var_hash, zval *val); -PHPAPI zval *var_tmp_var(php_unserialize_data_t *var_hashx); -PHPAPI void var_destroy(php_unserialize_data_t *var_hash); - -#endif /* PHP_VAR_H */ diff --git a/include/php/ext/standard/php_versioning.h b/include/php/ext/standard/php_versioning.h deleted file mode 100644 index 5b1ac2e..0000000 --- a/include/php/ext/standard/php_versioning.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stig Sæther Bakken | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_VERSIONING_H -#define PHP_VERSIONING_H - -#include "ext/standard/basic_functions.h" - -PHPAPI char *php_canonicalize_version(const char *); -PHPAPI int php_version_compare(const char *, const char *); -PHP_FUNCTION(version_compare); - -#endif diff --git a/include/php/ext/standard/proc_open.h b/include/php/ext/standard/proc_open.h deleted file mode 100644 index b7a2922..0000000 --- a/include/php/ext/standard/proc_open.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ - */ - -#ifdef PHP_WIN32 -typedef HANDLE php_file_descriptor_t; -typedef DWORD php_process_id_t; -#else -typedef int php_file_descriptor_t; -typedef pid_t php_process_id_t; -#endif - -/* Environment block under win32 is a NUL terminated sequence of NUL terminated - * name=value strings. - * Under unix, it is an argv style array. - * */ -typedef struct _php_process_env { - char *envp; -#ifndef PHP_WIN32 - char **envarray; -#endif -} php_process_env_t; - -struct php_process_handle { - php_process_id_t child; -#ifdef PHP_WIN32 - HANDLE childHandle; -#endif - int npipes; - zend_resource **pipes; - char *command; - int is_persistent; - php_process_env_t env; -}; diff --git a/include/php/ext/standard/quot_print.h b/include/php/ext/standard/quot_print.h deleted file mode 100644 index 2cdf403..0000000 --- a/include/php/ext/standard/quot_print.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Kirill Maximov (kir@rus.net) | - +----------------------------------------------------------------------+ -*/ - -#ifndef QUOT_PRINT_H -#define QUOT_PRINT_H - -PHPAPI zend_string *php_quot_print_decode(const unsigned char *str, size_t length, int replace_us_by_ws); -PHPAPI zend_string *php_quot_print_encode(const unsigned char *str, size_t length); - -PHP_FUNCTION(quoted_printable_decode); -PHP_FUNCTION(quoted_printable_encode); - -#endif /* QUOT_PRINT_H */ diff --git a/include/php/ext/standard/scanf.h b/include/php/ext/standard/scanf.h deleted file mode 100644 index 7b958e8..0000000 --- a/include/php/ext/standard/scanf.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Clayton Collie | - +----------------------------------------------------------------------+ -*/ - -#ifndef SCANF_H -#define SCANF_H - - -#define SCAN_MAX_ARGS 0xFF /* Maximum number of variable which can be */ - /* passed to (f|s)scanf. This is an artificial */ - /* upper limit to keep resources in check and */ - /* minimize the possibility of exploits */ - -#define SCAN_SUCCESS SUCCESS -#define SCAN_ERROR_EOF -1 /* indicates premature termination of scan */ - /* can be caused by bad parameters or format*/ - /* string. */ -#define SCAN_ERROR_INVALID_FORMAT (SCAN_ERROR_EOF - 1) -#define SCAN_ERROR_VAR_PASSED_BYVAL (SCAN_ERROR_INVALID_FORMAT - 1) -#define SCAN_ERROR_WRONG_PARAM_COUNT (SCAN_ERROR_VAR_PASSED_BYVAL - 1) -#define SCAN_ERROR_INTERNAL (SCAN_ERROR_WRONG_PARAM_COUNT - 1) - - -/* - * The following are here solely for the benefit of the scanf type functions - * e.g. fscanf - */ -PHPAPI int ValidateFormat(char *format, int numVars, int *totalVars); -PHPAPI int php_sscanf_internal(char *string,char *format,int argCount,zval *args, - int varStart, zval *return_value); - - -#endif /* SCANF_H */ diff --git a/include/php/ext/standard/sha1.h b/include/php/ext/standard/sha1.h deleted file mode 100644 index 594c4a3..0000000 --- a/include/php/ext/standard/sha1.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stefan Esser | - +----------------------------------------------------------------------+ -*/ - -#ifndef SHA1_H -#define SHA1_H - -#include "ext/standard/basic_functions.h" - -/* SHA1 context. */ -typedef struct { - uint32_t state[5]; /* state (ABCD) */ - uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */ - unsigned char buffer[64]; /* input buffer */ -} PHP_SHA1_CTX; - -PHPAPI void PHP_SHA1Init(PHP_SHA1_CTX *); -PHPAPI void PHP_SHA1Update(PHP_SHA1_CTX *, const unsigned char *, size_t); -PHPAPI void PHP_SHA1Final(unsigned char[20], PHP_SHA1_CTX *); -PHPAPI void make_sha1_digest(char *sha1str, unsigned char *digest); - -PHP_FUNCTION(sha1); -PHP_FUNCTION(sha1_file); - -#endif diff --git a/include/php/ext/standard/streamsfuncs.h b/include/php/ext/standard/streamsfuncs.h deleted file mode 100644 index bcd2afd..0000000 --- a/include/php/ext/standard/streamsfuncs.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -/* Flags for stream_socket_client */ -#define PHP_STREAM_CLIENT_PERSISTENT 1 -#define PHP_STREAM_CLIENT_ASYNC_CONNECT 2 -#define PHP_STREAM_CLIENT_CONNECT 4 - -PHP_FUNCTION(stream_socket_client); -PHP_FUNCTION(stream_socket_server); -PHP_FUNCTION(stream_socket_accept); -PHP_FUNCTION(stream_socket_get_name); -PHP_FUNCTION(stream_socket_recvfrom); -PHP_FUNCTION(stream_socket_sendto); - -PHP_FUNCTION(stream_copy_to_stream); -PHP_FUNCTION(stream_get_contents); - -PHP_FUNCTION(stream_set_blocking); -PHP_FUNCTION(stream_select); -PHP_FUNCTION(stream_set_timeout); -PHP_FUNCTION(stream_set_read_buffer); -PHP_FUNCTION(stream_set_write_buffer); -PHP_FUNCTION(stream_set_chunk_size); -PHP_FUNCTION(stream_get_transports); -PHP_FUNCTION(stream_get_wrappers); -PHP_FUNCTION(stream_get_line); -PHP_FUNCTION(stream_get_meta_data); -PHP_FUNCTION(stream_wrapper_register); -PHP_FUNCTION(stream_wrapper_unregister); -PHP_FUNCTION(stream_wrapper_restore); -PHP_FUNCTION(stream_context_create); -PHP_FUNCTION(stream_context_set_params); -PHP_FUNCTION(stream_context_get_params); -PHP_FUNCTION(stream_context_set_option); -PHP_FUNCTION(stream_context_get_options); -PHP_FUNCTION(stream_context_get_default); -PHP_FUNCTION(stream_context_set_default); -PHP_FUNCTION(stream_filter_prepend); -PHP_FUNCTION(stream_filter_append); -PHP_FUNCTION(stream_filter_remove); -PHP_FUNCTION(stream_socket_enable_crypto); -PHP_FUNCTION(stream_socket_shutdown); -PHP_FUNCTION(stream_resolve_include_path); -PHP_FUNCTION(stream_is_local); -PHP_FUNCTION(stream_supports_lock); -PHP_FUNCTION(stream_isatty); -#ifdef PHP_WIN32 -PHP_FUNCTION(sapi_windows_vt100_support); -#endif - -#if HAVE_SOCKETPAIR -PHP_FUNCTION(stream_socket_pair); -#endif diff --git a/include/php/ext/standard/uniqid.h b/include/php/ext/standard/uniqid.h deleted file mode 100644 index ed6528e..0000000 --- a/include/php/ext/standard/uniqid.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stig Sæther Bakken | - +----------------------------------------------------------------------+ - */ - -#ifndef UNIQID_H -#define UNIQID_H - -#ifdef HAVE_GETTIMEOFDAY -PHP_FUNCTION(uniqid); -#endif - -#endif /* UNIQID_H */ diff --git a/include/php/ext/standard/url.h b/include/php/ext/standard/url.h deleted file mode 100644 index 741663d..0000000 --- a/include/php/ext/standard/url.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jim Winstead | - +----------------------------------------------------------------------+ - */ - -#ifndef URL_H -#define URL_H - -typedef struct php_url { - zend_string *scheme; - zend_string *user; - zend_string *pass; - zend_string *host; - unsigned short port; - zend_string *path; - zend_string *query; - zend_string *fragment; -} php_url; - -PHPAPI void php_url_free(php_url *theurl); -PHPAPI php_url *php_url_parse(char const *str); -PHPAPI php_url *php_url_parse_ex(char const *str, size_t length); -PHPAPI php_url *php_url_parse_ex2(char const *str, size_t length, zend_bool *has_port); -PHPAPI size_t php_url_decode(char *str, size_t len); /* return value: length of decoded string */ -PHPAPI size_t php_raw_url_decode(char *str, size_t len); /* return value: length of decoded string */ -PHPAPI zend_string *php_url_encode(char const *s, size_t len); -PHPAPI zend_string *php_raw_url_encode(char const *s, size_t len); -PHPAPI char *php_replace_controlchars_ex(char *str, size_t len); - -PHP_FUNCTION(parse_url); -PHP_FUNCTION(urlencode); -PHP_FUNCTION(urldecode); -PHP_FUNCTION(rawurlencode); -PHP_FUNCTION(rawurldecode); -PHP_FUNCTION(get_headers); - -#define PHP_URL_SCHEME 0 -#define PHP_URL_HOST 1 -#define PHP_URL_PORT 2 -#define PHP_URL_USER 3 -#define PHP_URL_PASS 4 -#define PHP_URL_PATH 5 -#define PHP_URL_QUERY 6 -#define PHP_URL_FRAGMENT 7 - -#define PHP_QUERY_RFC1738 1 -#define PHP_QUERY_RFC3986 2 - -#endif /* URL_H */ diff --git a/include/php/ext/standard/url_scanner_ex.h b/include/php/ext/standard/url_scanner_ex.h deleted file mode 100644 index 6a8b8fd..0000000 --- a/include/php/ext/standard/url_scanner_ex.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ -*/ - -#ifndef URL_SCANNER_EX_H -#define URL_SCANNER_EX_H - -PHP_MINIT_FUNCTION(url_scanner_ex); -PHP_MSHUTDOWN_FUNCTION(url_scanner_ex); - -PHP_RINIT_FUNCTION(url_scanner_ex); -PHP_RSHUTDOWN_FUNCTION(url_scanner_ex); - -PHPAPI char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen, int encode); -PHPAPI int php_url_scanner_add_session_var(char *name, size_t name_len, char *value, size_t value_len, int encode); -PHPAPI int php_url_scanner_reset_session_var(zend_string *name, int encode); -PHPAPI int php_url_scanner_reset_session_vars(void); -PHPAPI int php_url_scanner_add_var(char *name, size_t name_len, char *value, size_t value_len, int encode); -PHPAPI int php_url_scanner_reset_var(zend_string *name, int encode); -PHPAPI int php_url_scanner_reset_vars(void); - -#include "zend_smart_str_public.h" - -typedef struct { - /* Used by the mainloop of the scanner */ - smart_str tag; /* read only */ - smart_str arg; /* read only */ - smart_str val; /* read only */ - smart_str buf; - - /* The result buffer */ - smart_str result; - - /* The data which is appended to each relative URL/FORM */ - smart_str form_app, url_app; - - int active; - - char *lookup_data; - int state; - - int type; - smart_str attr_val; - int tag_type; - int attr_type; - - /* Everything above is zeroed in RINIT */ - HashTable *tags; -} url_adapt_state_ex_t; - -#endif diff --git a/include/php/ext/standard/winver.h b/include/php/ext/standard/winver.h deleted file mode 100644 index d985181..0000000 --- a/include/php/ext/standard/winver.h +++ /dev/null @@ -1,133 +0,0 @@ -#ifndef _PHP_WINVER_H -#define _PHP_WINVER_H - -#ifndef SM_TABLETPC -#define SM_TABLETPC 86 -#endif -#ifndef SM_MEDIACENTER -#define SM_MEDIACENTER 87 -#endif -#ifndef SM_STARTER -#define SM_STARTER 88 -#endif -#ifndef SM_SERVERR2 -#define SM_SERVERR2 89 -#endif -#ifndef VER_SUITE_WH_SERVER -#define VER_SUITE_WH_SERVER 0x8000 -#endif - -#ifndef PRODUCT_ULTIMATE -#define PRODUCT_UNDEFINED 0x00000000 -#define PRODUCT_ULTIMATE 0x00000001 -#define PRODUCT_HOME_BASIC 0x00000002 -#define PRODUCT_HOME_PREMIUM 0x00000003 -#define PRODUCT_ENTERPRISE 0x00000004 -#define PRODUCT_HOME_BASIC_N 0x00000005 -#define PRODUCT_BUSINESS 0x00000006 -#define PRODUCT_STANDARD_SERVER 0x00000007 -#define PRODUCT_DATACENTER_SERVER 0x00000008 -#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009 -#define PRODUCT_ENTERPRISE_SERVER 0x0000000A -#define PRODUCT_STARTER 0x0000000B -#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C -#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D -#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E -#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F -#define PRODUCT_BUSINESS_N 0x00000010 -#define PRODUCT_WEB_SERVER 0x00000011 -#define PRODUCT_CLUSTER_SERVER 0x00000012 -#define PRODUCT_HOME_SERVER 0x00000013 -#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014 -#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015 -#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016 -#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017 -#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018 -#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019 -#define PRODUCT_HOME_PREMIUM_N 0x0000001A -#define PRODUCT_ENTERPRISE_N 0x0000001B -#define PRODUCT_ULTIMATE_N 0x0000001C -#define PRODUCT_WEB_SERVER_CORE 0x0000001D -#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E -#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F -#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020 -#define PRODUCT_SERVER_FOUNDATION 0x00000021 -#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022 -#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023 -#define PRODUCT_STANDARD_SERVER_V 0x00000024 -#define PRODUCT_DATACENTER_SERVER_V 0x00000025 -#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026 -#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027 -#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028 -#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029 -#define PRODUCT_HYPERV 0x0000002A -#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B -#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C -#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D -#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E -#define PRODUCT_STARTER_N 0x0000002F -#define PRODUCT_PROFESSIONAL 0x00000030 -#define PRODUCT_PROFESSIONAL_N 0x00000031 -#define PRODUCT_SB_SOLUTION_SERVER 0x00000032 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035 -#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037 -#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038 -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E -#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F -#define PRODUCT_CLUSTER_SERVER_V 0x00000040 -#define PRODUCT_ENTERPRISE_EVALUATION 0x00000048 -#define PRODUCT_MULTIPOINT_STANDARD_SERVER 0x0000004C -#define PRODUCT_MULTIPOINT_PREMIUM_SERVER 0x0000004D -#define PRODUCT_STANDARD_EVALUATION_SERVER 0x0000004F -#define PRODUCT_DATACENTER_EVALUATION_SERVER 0x00000050 -#define PRODUCT_ENTERPRISE_N_EVALUATION 0x00000054 -#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER 0x0000005F -#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER 0x00000060 -#define PRODUCT_CORE_N 0x00000062 -#define PRODUCT_CORE_COUNTRYSPECIFIC 0x00000063 -#define PRODUCT_CORE_SINGLELANGUAGE 0x00000064 -#define PRODUCT_CORE 0x00000065 -#define PRODUCT_PROFESSIONAL_WMC 0x00000067 -#endif - -#ifndef VER_NT_WORKSTATION -#define VER_NT_WORKSTATION 0x0000001 -#define VER_NT_DOMAIN_CONTROLLER 0x0000002 -#define VER_NT_SERVER 0x0000003 -#endif - -#ifndef VER_SUITE_SMALLBUSINESS -#define VER_SUITE_SMALLBUSINESS 0x00000001 -#define VER_SUITE_ENTERPRISE 0x00000002 -#define VER_SUITE_BACKOFFICE 0x00000004 -#define VER_SUITE_COMMUNICATIONS 0x00000008 -#define VER_SUITE_TERMINAL 0x00000010 -#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020 -#define VER_SUITE_EMBEDDEDNT 0x00000040 -#define VER_SUITE_DATACENTER 0x00000080 -#define VER_SUITE_SINGLEUSERTS 0x00000100 -#define VER_SUITE_PERSONAL 0x00000200 -#define VER_SUITE_BLADE 0x00000400 -#define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800 -#define VER_SUITE_SECURITY_APPLIANCE 0x00001000 -#endif - -#ifndef VER_SUITE_STORAGE_SERVER -# define VER_SUITE_STORAGE_SERVER 0x00002000 -#endif - -#ifndef VER_SUITE_COMPUTE_SERVER -# define VER_SUITE_COMPUTE_SERVER 0x00004000 -#endif - -#ifndef PROCESSOR_ARCHITECTURE_AMD64 -#define PROCESSOR_ARCHITECTURE_AMD64 9 -#endif - -#endif diff --git a/include/php/ext/xml/expat_compat.h b/include/php/ext/xml/expat_compat.h deleted file mode 100644 index 350d42f..0000000 --- a/include/php/ext/xml/expat_compat.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Sterling Hughes | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_EXPAT_COMPAT_H -#define PHP_EXPAT_COMPAT_H - -#ifdef PHP_WIN32 -#include "config.w32.h" -#else -#include -#endif - -#ifdef PHP_WIN32 -# define PHP_XML_API __declspec(dllexport) -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define PHP_XML_API __attribute__ ((visibility("default"))) -#else -# define PHP_XML_API -#endif - -#if !defined(HAVE_LIBEXPAT) && defined(HAVE_LIBXML) -#define LIBXML_EXPAT_COMPAT 1 - -#include "php.h" -#include "php_compat.h" - -#include -#include -#include -#include - -/* For compatibility with the misspelled version. */ -#define _ns_seperator _ns_separator - -typedef xmlChar XML_Char; - -typedef void (*XML_StartElementHandler)(void *, const XML_Char *, const XML_Char **); -typedef void (*XML_EndElementHandler)(void *, const XML_Char *); -typedef void (*XML_CharacterDataHandler)(void *, const XML_Char *, int); -typedef void (*XML_ProcessingInstructionHandler)(void *, const XML_Char *, const XML_Char *); -typedef void (*XML_CommentHandler)(void *, const XML_Char *); -typedef void (*XML_DefaultHandler)(void *, const XML_Char *, int); -typedef void (*XML_UnparsedEntityDeclHandler)(void *, const XML_Char *, const XML_Char *, const XML_Char *, const XML_Char *, const XML_Char *); -typedef void (*XML_NotationDeclHandler)(void *, const XML_Char *, const XML_Char *, const XML_Char *, const XML_Char *); -typedef int (*XML_ExternalEntityRefHandler)(void *, const XML_Char *, const XML_Char *, const XML_Char *, const XML_Char *); -typedef void (*XML_StartNamespaceDeclHandler)(void *, const XML_Char *, const XML_Char *); -typedef void (*XML_EndNamespaceDeclHandler)(void *, const XML_Char *); - -typedef struct _XML_Memory_Handling_Suite { - void *(*malloc_fcn)(size_t size); - void *(*realloc_fcn)(void *ptr, size_t size); - void (*free_fcn)(void *ptr); -} XML_Memory_Handling_Suite; - -typedef struct _XML_Parser { - int use_namespace; - - xmlChar *_ns_separator; - - void *user; - xmlParserCtxtPtr parser; - - XML_StartElementHandler h_start_element; - XML_EndElementHandler h_end_element; - XML_CharacterDataHandler h_cdata; - XML_ProcessingInstructionHandler h_pi; - XML_CommentHandler h_comment; - XML_DefaultHandler h_default; - XML_UnparsedEntityDeclHandler h_unparsed_entity_decl; - XML_NotationDeclHandler h_notation_decl; - XML_ExternalEntityRefHandler h_external_entity_ref; - XML_StartNamespaceDeclHandler h_start_ns; - XML_EndNamespaceDeclHandler h_end_ns; -} *XML_Parser; - -enum XML_Error { - XML_ERROR_NONE, - XML_ERROR_NO_MEMORY, - XML_ERROR_SYNTAX, - XML_ERROR_NO_ELEMENTS, - XML_ERROR_INVALID_TOKEN, - XML_ERROR_UNCLOSED_TOKEN, - XML_ERROR_PARTIAL_CHAR, - XML_ERROR_TAG_MISMATCH, - XML_ERROR_DUPLICATE_ATTRIBUTE, - XML_ERROR_JUNK_AFTER_DOC_ELEMENT, - XML_ERROR_PARAM_ENTITY_REF, - XML_ERROR_UNDEFINED_ENTITY, - XML_ERROR_RECURSIVE_ENTITY_REF, - XML_ERROR_ASYNC_ENTITY, - XML_ERROR_BAD_CHAR_REF, - XML_ERROR_BINARY_ENTITY_REF, - XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF, - XML_ERROR_MISPLACED_XML_PI, - XML_ERROR_UNKNOWN_ENCODING, - XML_ERROR_INCORRECT_ENCODING, - XML_ERROR_UNCLOSED_CDATA_SECTION, - XML_ERROR_EXTERNAL_ENTITY_HANDLING, - XML_ERROR_NOT_STANDALONE, - XML_ERROR_UNEXPECTED_STATE, - XML_ERROR_ENTITY_DECLARED_IN_PE, - XML_ERROR_FEATURE_REQUIRES_XML_DTD, - XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING -}; - -enum XML_Content_Type { - XML_CTYPE_EMPTY = 1, - XML_CTYPE_ANY, - XML_CTYPE_MIXED, - XML_CTYPE_NAME, - XML_CTYPE_CHOICE, - XML_CTYPE_SEQ -}; - -PHP_XML_API XML_Parser XML_ParserCreate(const XML_Char *); -PHP_XML_API XML_Parser XML_ParserCreateNS(const XML_Char *, const XML_Char); -PHP_XML_API XML_Parser XML_ParserCreate_MM(const XML_Char *, const XML_Memory_Handling_Suite *, const XML_Char *); -PHP_XML_API void XML_SetUserData(XML_Parser, void *); -PHP_XML_API void *XML_GetUserData(XML_Parser); -PHP_XML_API void XML_SetElementHandler(XML_Parser, XML_StartElementHandler, XML_EndElementHandler); -PHP_XML_API void XML_SetCharacterDataHandler(XML_Parser, XML_CharacterDataHandler); -PHP_XML_API void XML_SetProcessingInstructionHandler(XML_Parser, XML_ProcessingInstructionHandler); -PHP_XML_API void XML_SetDefaultHandler(XML_Parser, XML_DefaultHandler); -PHP_XML_API void XML_SetUnparsedEntityDeclHandler(XML_Parser, XML_UnparsedEntityDeclHandler); -PHP_XML_API void XML_SetNotationDeclHandler(XML_Parser, XML_NotationDeclHandler); -PHP_XML_API void XML_SetExternalEntityRefHandler(XML_Parser, XML_ExternalEntityRefHandler); -PHP_XML_API void XML_SetStartNamespaceDeclHandler(XML_Parser, XML_StartNamespaceDeclHandler); -PHP_XML_API void XML_SetEndNamespaceDeclHandler(XML_Parser, XML_EndNamespaceDeclHandler); -PHP_XML_API int XML_Parse(XML_Parser, const XML_Char *, int data_len, int is_final); -PHP_XML_API int XML_GetErrorCode(XML_Parser); -PHP_XML_API const XML_Char *XML_ErrorString(int); -PHP_XML_API int XML_GetCurrentLineNumber(XML_Parser); -PHP_XML_API int XML_GetCurrentColumnNumber(XML_Parser); -PHP_XML_API int XML_GetCurrentByteIndex(XML_Parser); -PHP_XML_API int XML_GetCurrentByteCount(XML_Parser); -PHP_XML_API const XML_Char *XML_ExpatVersion(void); -PHP_XML_API void XML_ParserFree(XML_Parser); - -#elif defined(HAVE_LIBEXPAT) -#include "php.h" -#include -#endif /* HAVE_LIBEXPAT */ - -#endif /* PHP_EXPAT_COMPAT_H */ diff --git a/include/php/ext/xml/php_xml.h b/include/php/ext/xml/php_xml.h deleted file mode 100644 index f8bb415..0000000 --- a/include/php/ext/xml/php_xml.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Stig Sæther Bakken | - | Thies C. Arntzen | - | Sterling Hughes | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_XML_H -#define PHP_XML_H - -#ifdef HAVE_XML - -extern zend_module_entry xml_module_entry; -#define xml_module_ptr &xml_module_entry - -#include "php_version.h" -#define PHP_XML_VERSION PHP_VERSION - -#include "expat_compat.h" - -#ifdef XML_UNICODE -#error "UTF-16 Unicode support not implemented!" -#endif - -#else -#define xml_module_ptr NULL -#endif /* HAVE_XML */ - -#define phpext_xml_ptr xml_module_ptr - -#endif /* PHP_XML_H */ diff --git a/include/php/main/SAPI.h b/include/php/main/SAPI.h deleted file mode 100644 index fe8bfd6..0000000 --- a/include/php/main/SAPI.h +++ /dev/null @@ -1,323 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef SAPI_H -#define SAPI_H - -#include "php.h" -#include "zend.h" -#include "zend_API.h" -#include "zend_llist.h" -#include "zend_operators.h" -#ifdef PHP_WIN32 -#include "win32/php_stdint.h" -#endif -#include - -#define SAPI_OPTION_NO_CHDIR 1 -#define SAPI_POST_BLOCK_SIZE 0x4000 - -#ifdef PHP_WIN32 -# ifdef SAPI_EXPORTS -# define SAPI_API __declspec(dllexport) -# else -# define SAPI_API __declspec(dllimport) -# endif -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define SAPI_API __attribute__ ((visibility("default"))) -#else -# define SAPI_API -#endif - -#undef shutdown - -typedef struct { - char *header; - size_t header_len; -} sapi_header_struct; - - -typedef struct { - zend_llist headers; - int http_response_code; - unsigned char send_default_content_type; - char *mimetype; - char *http_status_line; -} sapi_headers_struct; - - -typedef struct _sapi_post_entry sapi_post_entry; -typedef struct _sapi_module_struct sapi_module_struct; - -BEGIN_EXTERN_C() -extern SAPI_API sapi_module_struct sapi_module; /* true global */ -END_EXTERN_C() - -/* Some values in this structure needs to be filled in before - * calling sapi_activate(). We WILL change the `char *' entries, - * so make sure that you allocate a separate buffer for them - * and that you free them after sapi_deactivate(). - */ - -typedef struct { - const char *request_method; - char *query_string; - char *cookie_data; - zend_long content_length; - - char *path_translated; - char *request_uri; - - /* Do not use request_body directly, but the php://input stream wrapper instead */ - struct _php_stream *request_body; - - const char *content_type; - - zend_bool headers_only; - zend_bool no_headers; - zend_bool headers_read; - - sapi_post_entry *post_entry; - - char *content_type_dup; - - /* for HTTP authentication */ - char *auth_user; - char *auth_password; - char *auth_digest; - - /* this is necessary for the CGI SAPI module */ - char *argv0; - - char *current_user; - int current_user_length; - - /* this is necessary for CLI module */ - int argc; - char **argv; - int proto_num; -} sapi_request_info; - - -typedef struct _sapi_globals_struct { - void *server_context; - sapi_request_info request_info; - sapi_headers_struct sapi_headers; - int64_t read_post_bytes; - unsigned char post_read; - unsigned char headers_sent; - zend_stat_t global_stat; - char *default_mimetype; - char *default_charset; - HashTable *rfc1867_uploaded_files; - zend_long post_max_size; - int options; - zend_bool sapi_started; - double global_request_time; - HashTable known_post_content_types; - zval callback_func; - zend_fcall_info_cache fci_cache; -} sapi_globals_struct; - - -BEGIN_EXTERN_C() -#ifdef ZTS -# define SG(v) ZEND_TSRMG_FAST(sapi_globals_offset, sapi_globals_struct *, v) -SAPI_API extern int sapi_globals_id; -SAPI_API extern size_t sapi_globals_offset; -#else -# define SG(v) (sapi_globals.v) -extern SAPI_API sapi_globals_struct sapi_globals; -#endif - -SAPI_API void sapi_startup(sapi_module_struct *sf); -SAPI_API void sapi_shutdown(void); -SAPI_API void sapi_activate(void); -SAPI_API void sapi_deactivate(void); -SAPI_API void sapi_initialize_empty_request(void); -SAPI_API void sapi_add_request_header(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg); -END_EXTERN_C() - -/* - * This is the preferred and maintained API for - * operating on HTTP headers. - */ - -/* - * Always specify a sapi_header_line this way: - * - * sapi_header_line ctr = {0}; - */ - -typedef struct { - char *line; /* If you allocated this, you need to free it yourself */ - size_t line_len; - zend_long response_code; /* long due to zend_parse_parameters compatibility */ -} sapi_header_line; - -typedef enum { /* Parameter: */ - SAPI_HEADER_REPLACE, /* sapi_header_line* */ - SAPI_HEADER_ADD, /* sapi_header_line* */ - SAPI_HEADER_DELETE, /* sapi_header_line* */ - SAPI_HEADER_DELETE_ALL, /* void */ - SAPI_HEADER_SET_STATUS /* int */ -} sapi_header_op_enum; - -BEGIN_EXTERN_C() -SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg); - -/* Deprecated functions. Use sapi_header_op instead. */ -SAPI_API int sapi_add_header_ex(char *header_line, size_t header_line_len, zend_bool duplicate, zend_bool replace); -#define sapi_add_header(a, b, c) sapi_add_header_ex((a),(b),(c),1) - - -SAPI_API int sapi_send_headers(void); -SAPI_API void sapi_free_header(sapi_header_struct *sapi_header); -SAPI_API void sapi_handle_post(void *arg); -SAPI_API size_t sapi_read_post_block(char *buffer, size_t buflen); -SAPI_API int sapi_register_post_entries(const sapi_post_entry *post_entry); -SAPI_API int sapi_register_post_entry(const sapi_post_entry *post_entry); -SAPI_API void sapi_unregister_post_entry(const sapi_post_entry *post_entry); -SAPI_API int sapi_register_default_post_reader(void (*default_post_reader)(void)); -SAPI_API int sapi_register_treat_data(void (*treat_data)(int arg, char *str, zval *destArray)); -SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, size_t val_len, size_t *new_val_len), unsigned int (*input_filter_init)(void)); - -SAPI_API int sapi_flush(void); -SAPI_API zend_stat_t *sapi_get_stat(void); -SAPI_API char *sapi_getenv(char *name, size_t name_len); - -SAPI_API char *sapi_get_default_content_type(void); -SAPI_API void sapi_get_default_content_type_header(sapi_header_struct *default_header); -SAPI_API size_t sapi_apply_default_charset(char **mimetype, size_t len); -SAPI_API void sapi_activate_headers_only(void); - -SAPI_API int sapi_get_fd(int *fd); -SAPI_API int sapi_force_http_10(void); - -SAPI_API int sapi_get_target_uid(uid_t *); -SAPI_API int sapi_get_target_gid(gid_t *); -SAPI_API double sapi_get_request_time(void); -SAPI_API void sapi_terminate_process(void); -END_EXTERN_C() - -struct _sapi_module_struct { - char *name; - char *pretty_name; - - int (*startup)(struct _sapi_module_struct *sapi_module); - int (*shutdown)(struct _sapi_module_struct *sapi_module); - - int (*activate)(void); - int (*deactivate)(void); - - size_t (*ub_write)(const char *str, size_t str_length); - void (*flush)(void *server_context); - zend_stat_t *(*get_stat)(void); - char *(*getenv)(char *name, size_t name_len); - - void (*sapi_error)(int type, const char *error_msg, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); - - int (*header_handler)(sapi_header_struct *sapi_header, sapi_header_op_enum op, sapi_headers_struct *sapi_headers); - int (*send_headers)(sapi_headers_struct *sapi_headers); - void (*send_header)(sapi_header_struct *sapi_header, void *server_context); - - size_t (*read_post)(char *buffer, size_t count_bytes); - char *(*read_cookies)(void); - - void (*register_server_variables)(zval *track_vars_array); - void (*log_message)(char *message, int syslog_type_int); - double (*get_request_time)(void); - void (*terminate_process)(void); - - char *php_ini_path_override; - - void (*default_post_reader)(void); - void (*treat_data)(int arg, char *str, zval *destArray); - char *executable_location; - - int php_ini_ignore; - int php_ini_ignore_cwd; /* don't look for php.ini in the current directory */ - - int (*get_fd)(int *fd); - - int (*force_http_10)(void); - - int (*get_target_uid)(uid_t *); - int (*get_target_gid)(gid_t *); - - unsigned int (*input_filter)(int arg, char *var, char **val, size_t val_len, size_t *new_val_len); - - void (*ini_defaults)(HashTable *configuration_hash); - int phpinfo_as_text; - - char *ini_entries; - const zend_function_entry *additional_functions; - unsigned int (*input_filter_init)(void); -}; - -struct _sapi_post_entry { - char *content_type; - uint32_t content_type_len; - void (*post_reader)(void); - void (*post_handler)(char *content_type_dup, void *arg); -}; - -/* header_handler() constants */ -#define SAPI_HEADER_ADD (1<<0) - - -#define SAPI_HEADER_SENT_SUCCESSFULLY 1 -#define SAPI_HEADER_DO_SEND 2 -#define SAPI_HEADER_SEND_FAILED 3 - -#define SAPI_DEFAULT_MIMETYPE "text/html" -#define SAPI_DEFAULT_CHARSET PHP_DEFAULT_CHARSET -#define SAPI_PHP_VERSION_HEADER "X-Powered-By: PHP/" PHP_VERSION - -#define SAPI_POST_READER_FUNC(post_reader) void post_reader(void) -#define SAPI_POST_HANDLER_FUNC(post_handler) void post_handler(char *content_type_dup, void *arg) - -#define SAPI_TREAT_DATA_FUNC(treat_data) void treat_data(int arg, char *str, zval* destArray) -#define SAPI_INPUT_FILTER_FUNC(input_filter) unsigned int input_filter(int arg, char *var, char **val, size_t val_len, size_t *new_val_len) - -BEGIN_EXTERN_C() -SAPI_API SAPI_POST_READER_FUNC(sapi_read_standard_form_data); -SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader); -SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data); -SAPI_API SAPI_INPUT_FILTER_FUNC(php_default_input_filter); -END_EXTERN_C() - -#define STANDARD_SAPI_MODULE_PROPERTIES \ - NULL, /* php_ini_path_override */ \ - NULL, /* default_post_reader */ \ - NULL, /* treat_data */ \ - NULL, /* executable_location */ \ - 0, /* php_ini_ignore */ \ - 0, /* php_ini_ignore_cwd */ \ - NULL, /* get_fd */ \ - NULL, /* force_http_10 */ \ - NULL, /* get_target_uid */ \ - NULL, /* get_target_gid */ \ - NULL, /* input_filter */ \ - NULL, /* ini_defaults */ \ - 0, /* phpinfo_as_text; */ \ - NULL, /* ini_entries; */ \ - NULL, /* additional_functions */ \ - NULL /* input_filter_init */ - -#endif /* SAPI_H */ diff --git a/include/php/main/build-defs.h b/include/php/main/build-defs.h deleted file mode 100644 index 787c6ae..0000000 --- a/include/php/main/build-defs.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stig Sæther Bakken | - +----------------------------------------------------------------------+ -*/ - -#define CONFIGURE_COMMAND " './configure' '--cache-file=/Users/apostol/.phpbrew/cache/config.cache' '--prefix=/Users/apostol/.phpbrew/php/php-7.4.32' '--disable-all' '--enable-phar' '--enable-session' '--enable-short-tags' '--enable-tokenizer' '--enable-dom' '--with-libxml' '--enable-simplexml' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--with-xsl' '--enable-opcache' '--enable-bcmath' '--with-bz2=/usr/local/opt/bzip2' '--enable-calendar' '--enable-cli' '--enable-ctype' '--enable-fileinfo' '--enable-filter' '--enable-shmop' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-json' '--enable-mbregex' '--enable-mbstring' '--with-mhash=/usr/local' '--enable-pcntl' '--enable-pdo' '--with-pear=/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear' '--enable-posix' '--with-readline=/usr/local/opt/readline' '--enable-sockets' '--with-curl' '--with-openssl' '--with-zip' '--disable-zts' '--with-openssl=shared,' '--with-mysqli=shared' '--with-config-file-path=/Users/apostol/.phpbrew/php/php-7.4.32/etc/cli' '--with-config-file-scan-dir=/Users/apostol/.phpbrew/php/php-7.4.32/var/db/cli' 'PKG_CONFIG_PATH=/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/openssl@3/lib/pkgconfig' 'OPENSSL_CFLAGS=-I/usr/local/opt/openssl@1.1/include' 'OPENSSL_LIBS=-L/usr/local/opt/openssl@1.1/lib -lcrypto -lssl'" -#define PHP_ODBC_CFLAGS "" -#define PHP_ODBC_LFLAGS "" -#define PHP_ODBC_LIBS "" -#define PHP_ODBC_TYPE "" -#define PHP_OCI8_DIR "" -#define PHP_OCI8_ORACLE_VERSION "" -#define PHP_PROG_SENDMAIL "/usr/sbin/sendmail" -#define PEAR_INSTALLDIR "/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" -#define PHP_INCLUDE_PATH ".:/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/pear" -#define PHP_EXTENSION_DIR "/Users/apostol/.phpbrew/php/php-7.4.32/lib/php/extensions/no-debug-non-zts-20190902" -#define PHP_PREFIX "/Users/apostol/.phpbrew/php/php-7.4.32" -#define PHP_BINDIR "/Users/apostol/.phpbrew/php/php-7.4.32/bin" -#define PHP_SBINDIR "/Users/apostol/.phpbrew/php/php-7.4.32/sbin" -#define PHP_MANDIR "/Users/apostol/.phpbrew/php/php-7.4.32/php/man" -#define PHP_LIBDIR "/Users/apostol/.phpbrew/php/php-7.4.32/lib/php" -#define PHP_DATADIR "/Users/apostol/.phpbrew/php/php-7.4.32/share/php" -#define PHP_SYSCONFDIR "/Users/apostol/.phpbrew/php/php-7.4.32/etc" -#define PHP_LOCALSTATEDIR "/Users/apostol/.phpbrew/php/php-7.4.32/var" -#define PHP_CONFIG_FILE_PATH "/Users/apostol/.phpbrew/php/php-7.4.32/etc/cli" -#define PHP_CONFIG_FILE_SCAN_DIR "/Users/apostol/.phpbrew/php/php-7.4.32/var/db/cli" -#define PHP_SHLIB_SUFFIX "so" -#define PHP_SHLIB_EXT_PREFIX "" diff --git a/include/php/main/fastcgi.h b/include/php/main/fastcgi.h deleted file mode 100644 index 95aae11..0000000 --- a/include/php/main/fastcgi.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov | - +----------------------------------------------------------------------+ -*/ - -/* FastCGI protocol */ - -#define FCGI_VERSION_1 1 - -#define FCGI_MAX_LENGTH 0xffff - -#define FCGI_KEEP_CONN 1 - -/* this is near the perfect hash function for most useful FastCGI variables - * which combines efficiency and minimal hash collisions - */ - -#define FCGI_HASH_FUNC(var, var_len) \ - (UNEXPECTED(var_len < 3) ? (unsigned int)var_len : \ - (((unsigned int)var[3]) << 2) + \ - (((unsigned int)var[var_len-2]) << 4) + \ - (((unsigned int)var[var_len-1]) << 2) + \ - var_len) - -#define FCGI_GETENV(request, name) \ - fcgi_quick_getenv(request, name, sizeof(name)-1, FCGI_HASH_FUNC(name, sizeof(name)-1)) - -#define FCGI_PUTENV(request, name, value) \ - fcgi_quick_putenv(request, name, sizeof(name)-1, FCGI_HASH_FUNC(name, sizeof(name)-1), value) - -typedef enum _fcgi_role { - FCGI_RESPONDER = 1, - FCGI_AUTHORIZER = 2, - FCGI_FILTER = 3 -} fcgi_role; - -enum { - FCGI_DEBUG = 1, - FCGI_NOTICE = 2, - FCGI_WARNING = 3, - FCGI_ERROR = 4, - FCGI_ALERT = 5, -}; - -typedef enum _fcgi_request_type { - FCGI_BEGIN_REQUEST = 1, /* [in] */ - FCGI_ABORT_REQUEST = 2, /* [in] (not supported) */ - FCGI_END_REQUEST = 3, /* [out] */ - FCGI_PARAMS = 4, /* [in] environment variables */ - FCGI_STDIN = 5, /* [in] post data */ - FCGI_STDOUT = 6, /* [out] response */ - FCGI_STDERR = 7, /* [out] errors */ - FCGI_DATA = 8, /* [in] filter data (not supported) */ - FCGI_GET_VALUES = 9, /* [in] */ - FCGI_GET_VALUES_RESULT = 10 /* [out] */ -} fcgi_request_type; - -typedef enum _fcgi_protocol_status { - FCGI_REQUEST_COMPLETE = 0, - FCGI_CANT_MPX_CONN = 1, - FCGI_OVERLOADED = 2, - FCGI_UNKNOWN_ROLE = 3 -} dcgi_protocol_status; - -/* FastCGI client API */ - -typedef void (*fcgi_apply_func)(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg); - -#define FCGI_HASH_TABLE_SIZE 128 -#define FCGI_HASH_TABLE_MASK (FCGI_HASH_TABLE_SIZE - 1) -#define FCGI_HASH_SEG_SIZE 4096 - -typedef struct _fcgi_request fcgi_request; - -int fcgi_init(void); -void fcgi_shutdown(void); -int fcgi_is_fastcgi(void); -int fcgi_is_closed(fcgi_request *req); -void fcgi_close(fcgi_request *req, int force, int destroy); -int fcgi_in_shutdown(void); -void fcgi_terminate(void); -int fcgi_listen(const char *path, int backlog); -fcgi_request* fcgi_init_request(int listen_socket, void(*on_accept)(), void(*on_read)(), void(*on_close)()); -void fcgi_destroy_request(fcgi_request *req); -void fcgi_set_allowed_clients(char *ip); -int fcgi_accept_request(fcgi_request *req); -int fcgi_finish_request(fcgi_request *req, int force_close); -const char *fcgi_get_last_client_ip(); -void fcgi_set_in_shutdown(int new_value); -void fcgi_request_set_keep(fcgi_request *req, int new_value); - -#ifndef HAVE_ATTRIBUTE_WEAK -typedef void (*fcgi_logger)(int type, const char *fmt, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); -void fcgi_set_logger(fcgi_logger lg); -#endif - -int fcgi_has_env(fcgi_request *req); -char* fcgi_getenv(fcgi_request *req, const char* var, int var_len); -char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val); -char* fcgi_quick_getenv(fcgi_request *req, const char* var, int var_len, unsigned int hash_value); -char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int hash_value, char* val); -void fcgi_loadenv(fcgi_request *req, fcgi_apply_func load_func, zval *array); - -int fcgi_read(fcgi_request *req, char *str, int len); - -int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len); -int fcgi_flush(fcgi_request *req, int end); -int fcgi_end(fcgi_request *req); - -#ifdef PHP_WIN32 -void fcgi_impersonate(void); -#endif - -void fcgi_set_mgmt_var(const char * name, size_t name_len, const char * value, size_t value_len); -void fcgi_free_mgmt_var_cb(zval *zv); diff --git a/include/php/main/fopen_wrappers.h b/include/php/main/fopen_wrappers.h deleted file mode 100644 index 17e15b7..0000000 --- a/include/php/main/fopen_wrappers.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Jim Winstead | - +----------------------------------------------------------------------+ - */ - -#ifndef FOPEN_WRAPPERS_H -#define FOPEN_WRAPPERS_H - -BEGIN_EXTERN_C() -#include "php_globals.h" -#include "php_ini.h" - -PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle); -PHPAPI char *expand_filepath(const char *filepath, char *real_path); -PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len); -PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int use_realpath); - -PHPAPI int php_check_open_basedir(const char *path); -PHPAPI int php_check_open_basedir_ex(const char *path, int warn); -PHPAPI int php_check_specific_open_basedir(const char *basedir, const char *path); - -/* OPENBASEDIR_CHECKPATH(filename) to ease merge between 6.x and 5.x */ -#define OPENBASEDIR_CHECKPATH(filename) php_check_open_basedir(filename) - -PHPAPI int php_check_safe_mode_include_dir(const char *path); - -PHPAPI zend_string *php_resolve_path(const char *filename, size_t filename_len, const char *path); - -PHPAPI FILE *php_fopen_with_path(const char *filename, const char *mode, const char *path, zend_string **opened_path); - -PHPAPI char *php_strip_url_passwd(char *path); - -PHPAPI ZEND_INI_MH(OnUpdateBaseDir); -END_EXTERN_C() - -#endif diff --git a/include/php/main/http_status_codes.h b/include/php/main/http_status_codes.h deleted file mode 100644 index 5d5cfb0..0000000 --- a/include/php/main/http_status_codes.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Andrea Faulds | - +----------------------------------------------------------------------+ -*/ - -#ifndef HTTP_STATUS_CODES_H -#define HTTP_STATUS_CODES_H - -typedef struct _http_response_status_code_pair { - const int code; - const char *str; -} http_response_status_code_pair; - -static const http_response_status_code_pair http_status_map[] = { - { 100, "Continue" }, - { 101, "Switching Protocols" }, - { 200, "OK" }, - { 201, "Created" }, - { 202, "Accepted" }, - { 203, "Non-Authoritative Information" }, - { 204, "No Content" }, - { 205, "Reset Content" }, - { 206, "Partial Content" }, - { 300, "Multiple Choices" }, - { 301, "Moved Permanently" }, - { 302, "Found" }, - { 303, "See Other" }, - { 304, "Not Modified" }, - { 305, "Use Proxy" }, - { 307, "Temporary Redirect" }, - { 308, "Permanent Redirect" }, - { 400, "Bad Request" }, - { 401, "Unauthorized" }, - { 402, "Payment Required" }, - { 403, "Forbidden" }, - { 404, "Not Found" }, - { 405, "Method Not Allowed" }, - { 406, "Not Acceptable" }, - { 407, "Proxy Authentication Required" }, - { 408, "Request Timeout" }, - { 409, "Conflict" }, - { 410, "Gone" }, - { 411, "Length Required" }, - { 412, "Precondition Failed" }, - { 413, "Request Entity Too Large" }, - { 414, "Request-URI Too Long" }, - { 415, "Unsupported Media Type" }, - { 416, "Requested Range Not Satisfiable" }, - { 417, "Expectation Failed" }, - { 426, "Upgrade Required" }, - { 428, "Precondition Required" }, - { 429, "Too Many Requests" }, - { 431, "Request Header Fields Too Large" }, - { 451, "Unavailable For Legal Reasons"}, - { 500, "Internal Server Error" }, - { 501, "Not Implemented" }, - { 502, "Bad Gateway" }, - { 503, "Service Unavailable" }, - { 504, "Gateway Timeout" }, - { 505, "HTTP Version Not Supported" }, - { 506, "Variant Also Negotiates" }, - { 511, "Network Authentication Required" }, - /* to allow search with while() loop */ - { 0, NULL } -}; - -static const size_t http_status_map_len = (sizeof(http_status_map) / sizeof(http_response_status_code_pair)) - 1; - -#endif /* HTTP_STATUS_CODES_H */ diff --git a/include/php/main/php.h b/include/php/main/php.h deleted file mode 100644 index c135a35..0000000 --- a/include/php/main/php.h +++ /dev/null @@ -1,450 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_H -#define PHP_H - -#ifdef HAVE_DMALLOC -#include -#endif - -#define PHP_API_VERSION 20190902 -#define PHP_HAVE_STREAMS -#define YYDEBUG 0 -#define PHP_DEFAULT_CHARSET "UTF-8" - -#include "php_version.h" -#include "zend.h" -#include "zend_sort.h" -#include "php_compat.h" - -#include "zend_API.h" - -#define php_sprintf sprintf - -/* Operating system family definition */ -#ifdef PHP_WIN32 -# define PHP_OS_FAMILY "Windows" -#elif defined(BSD) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) -# define PHP_OS_FAMILY "BSD" -#elif defined(__APPLE__) || defined(__MACH__) -# define PHP_OS_FAMILY "Darwin" -#elif defined(__sun__) -# define PHP_OS_FAMILY "Solaris" -#elif defined(__linux__) -# define PHP_OS_FAMILY "Linux" -#else -# define PHP_OS_FAMILY "Unknown" -#endif - -/* PHP's DEBUG value must match Zend's ZEND_DEBUG value */ -#undef PHP_DEBUG -#define PHP_DEBUG ZEND_DEBUG - -#ifdef PHP_WIN32 -# include "tsrm_win32.h" -# ifdef PHP_EXPORTS -# define PHPAPI __declspec(dllexport) -# else -# define PHPAPI __declspec(dllimport) -# endif -# define PHP_DIR_SEPARATOR '\\' -# define PHP_EOL "\r\n" -#else -# if defined(__GNUC__) && __GNUC__ >= 4 -# define PHPAPI __attribute__ ((visibility("default"))) -# else -# define PHPAPI -# endif -# define THREAD_LS -# define PHP_DIR_SEPARATOR '/' -# define PHP_EOL "\n" -#endif - -/* Windows specific defines */ -#ifdef PHP_WIN32 -# define PHP_PROG_SENDMAIL "Built in mailer" -# define WIN32_LEAN_AND_MEAN -# define NOOPENFILE - -# include -# include -# include -# include -# include -# include -# include -# include - -typedef int uid_t; -typedef int gid_t; -typedef char * caddr_t; -typedef int pid_t; - -# ifndef PHP_DEBUG -# ifdef inline -# undef inline -# endif -# define inline __inline -# endif - -# define M_TWOPI (M_PI * 2.0) -# define off_t _off_t - -# define lstat(x, y) php_sys_lstat(x, y) -# define chdir(path) _chdir(path) -# define mkdir(a, b) _mkdir(a) -# define rmdir(a) _rmdir(a) -# define getpid _getpid -# define php_sleep(t) SleepEx(t*1000, TRUE) - -# ifndef getcwd -# define getcwd(a, b) _getcwd(a, b) -# endif -#endif - -#if PHP_DEBUG -#undef NDEBUG -#else -#ifndef NDEBUG -#define NDEBUG -#endif -#endif -#include - -#if HAVE_UNIX_H -#include -#endif - -#if HAVE_ALLOCA_H -#include -#endif - -#if HAVE_BUILD_DEFS_H -#include -#endif - -/* - * This is a fast version of strlcpy which should be used, if you - * know the size of the destination buffer and if you know - * the length of the source string. - * - * size is the allocated number of bytes of dst - * src_size is the number of bytes excluding the NUL of src - */ - -#define PHP_STRLCPY(dst, src, size, src_size) \ - { \ - size_t php_str_len; \ - \ - if (src_size >= size) \ - php_str_len = size - 1; \ - else \ - php_str_len = src_size; \ - memcpy(dst, src, php_str_len); \ - dst[php_str_len] = '\0'; \ - } - -#ifndef HAVE_STRLCPY -BEGIN_EXTERN_C() -PHPAPI size_t php_strlcpy(char *dst, const char *src, size_t siz); -END_EXTERN_C() -#undef strlcpy -#define strlcpy php_strlcpy -#define HAVE_STRLCPY 1 -#define USE_STRLCPY_PHP_IMPL 1 -#endif - -#ifndef HAVE_STRLCAT -BEGIN_EXTERN_C() -PHPAPI size_t php_strlcat(char *dst, const char *src, size_t siz); -END_EXTERN_C() -#undef strlcat -#define strlcat php_strlcat -#define HAVE_STRLCAT 1 -#define USE_STRLCAT_PHP_IMPL 1 -#endif - -#ifndef HAVE_EXPLICIT_BZERO -BEGIN_EXTERN_C() -PHPAPI void php_explicit_bzero(void *dst, size_t siz); -END_EXTERN_C() -#undef explicit_bzero -#define explicit_bzero php_explicit_bzero -#endif - -#ifndef HAVE_STRTOK_R -BEGIN_EXTERN_C() -char *strtok_r(char *s, const char *delim, char **last); -END_EXTERN_C() -#endif - -#ifndef HAVE_SOCKLEN_T -# ifdef PHP_WIN32 -typedef int socklen_t; -# else -typedef unsigned int socklen_t; -# endif -#endif - -#define CREATE_MUTEX(a, b) -#define SET_MUTEX(a) -#define FREE_MUTEX(a) - -/* - * Then the ODBC support can use both iodbc and Solid, - * uncomment this. - * #define HAVE_ODBC (HAVE_IODBC|HAVE_SOLID) - */ - -#include -#include -#if HAVE_UNISTD_H -#include -#endif - -#include - -#include "php_stdint.h" - -#include "zend_hash.h" -#include "zend_alloc.h" -#include "zend_stack.h" -#include - -#if HAVE_PWD_H -# ifdef PHP_WIN32 -#include "win32/param.h" -# else -#include -#include -# endif -#endif - -#include - -#ifndef LONG_MAX -#define LONG_MAX 2147483647L -#endif - -#ifndef LONG_MIN -#define LONG_MIN (- LONG_MAX - 1) -#endif - -#ifndef INT_MAX -#define INT_MAX 2147483647 -#endif - -#ifndef INT_MIN -#define INT_MIN (- INT_MAX - 1) -#endif - -/* double limits */ -#include -#if defined(DBL_MANT_DIG) && defined(DBL_MIN_EXP) -#define PHP_DOUBLE_MAX_LENGTH (3 + DBL_MANT_DIG - DBL_MIN_EXP) -#else -#define PHP_DOUBLE_MAX_LENGTH 1080 -#endif - -#define PHP_GCC_VERSION ZEND_GCC_VERSION -#define PHP_ATTRIBUTE_MALLOC ZEND_ATTRIBUTE_MALLOC -#define PHP_ATTRIBUTE_FORMAT ZEND_ATTRIBUTE_FORMAT - -BEGIN_EXTERN_C() -#include "snprintf.h" -END_EXTERN_C() -#include "spprintf.h" - -#define EXEC_INPUT_BUF 4096 - -#define PHP_MIME_TYPE "application/x-httpd-php" - -/* macros */ -#define STR_PRINT(str) ((str)?(str):"") - -#ifndef MAXPATHLEN -# ifdef PHP_WIN32 -# include "win32/ioutil.h" -# define MAXPATHLEN PHP_WIN32_IOUTIL_MAXPATHLEN -# elif PATH_MAX -# define MAXPATHLEN PATH_MAX -# elif defined(MAX_PATH) -# define MAXPATHLEN MAX_PATH -# else -# define MAXPATHLEN 256 /* Should be safe for any weird systems that do not define it */ -# endif -#endif - -#define php_ignore_value(x) ZEND_IGNORE_VALUE(x) - -/* global variables */ -#if !defined(PHP_WIN32) -#define PHP_SLEEP_NON_VOID -#define php_sleep sleep -extern char **environ; -#endif /* !defined(PHP_WIN32) */ - -#ifdef PHP_PWRITE_64 -ssize_t pwrite(int, void *, size_t, off64_t); -#endif - -#ifdef PHP_PREAD_64 -ssize_t pread(int, void *, size_t, off64_t); -#endif - -BEGIN_EXTERN_C() -void phperror(char *error); -PHPAPI size_t php_write(void *buf, size_t size); -PHPAPI size_t php_printf(const char *format, ...) PHP_ATTRIBUTE_FORMAT(printf, 1, - 2); -PHPAPI int php_get_module_initialized(void); -#ifdef HAVE_SYSLOG_H -#include "php_syslog.h" -#define php_log_err(msg) php_log_err_with_severity(msg, LOG_NOTICE) -#else -#define php_log_err(msg) php_log_err_with_severity(msg, 5) -#endif -PHPAPI ZEND_COLD void php_log_err_with_severity(char *log_message, int syslog_type_int); -int Debug(char *format, ...) PHP_ATTRIBUTE_FORMAT(printf, 1, 2); -int cfgparse(void); -END_EXTERN_C() - -#define php_error zend_error -#define error_handling_t zend_error_handling_t - -BEGIN_EXTERN_C() -static inline ZEND_ATTRIBUTE_DEPRECATED void php_set_error_handling(error_handling_t error_handling, zend_class_entry *exception_class) -{ - zend_replace_error_handling(error_handling, exception_class, NULL); -} -static inline ZEND_ATTRIBUTE_DEPRECATED void php_std_error_handling() {} - -PHPAPI ZEND_COLD void php_verror(const char *docref, const char *params, int type, const char *format, va_list args) PHP_ATTRIBUTE_FORMAT(printf, 4, 0); - -/* PHPAPI void php_error(int type, const char *format, ...); */ -PHPAPI ZEND_COLD void php_error_docref(const char *docref, int type, const char *format, ...) - PHP_ATTRIBUTE_FORMAT(printf, 3, 4); -PHPAPI ZEND_COLD void php_error_docref1(const char *docref, const char *param1, int type, const char *format, ...) - PHP_ATTRIBUTE_FORMAT(printf, 4, 5); -PHPAPI ZEND_COLD void php_error_docref2(const char *docref, const char *param1, const char *param2, int type, const char *format, ...) - PHP_ATTRIBUTE_FORMAT(printf, 5, 6); -#ifdef PHP_WIN32 -PHPAPI ZEND_COLD void php_win32_docref1_from_error(DWORD error, const char *param1); -PHPAPI ZEND_COLD void php_win32_docref2_from_error(DWORD error, const char *param1, const char *param2); -#endif -END_EXTERN_C() - -#define zenderror phperror -#define zendlex phplex - -#define phpparse zendparse -#define phprestart zendrestart -#define phpin zendin - -#define php_memnstr zend_memnstr - -/* functions */ -BEGIN_EXTERN_C() -PHPAPI extern int (*php_register_internal_extensions_func)(void); -PHPAPI int php_register_internal_extensions(void); -PHPAPI int php_mergesort(void *base, size_t nmemb, size_t size, int (*cmp)(const void *, const void *)); -PHPAPI void php_register_pre_request_shutdown(void (*func)(void *), void *userdata); -PHPAPI void php_com_initialize(void); -PHPAPI char *php_get_current_user(void); - -PHPAPI const char *php_get_internal_encoding(void); -PHPAPI const char *php_get_input_encoding(void); -PHPAPI const char *php_get_output_encoding(void); -PHPAPI extern void (*php_internal_encoding_changed)(void); -END_EXTERN_C() - -/* PHP-named Zend macro wrappers */ -#define PHP_FN ZEND_FN -#define PHP_MN ZEND_MN -#define PHP_NAMED_FUNCTION ZEND_NAMED_FUNCTION -#define PHP_FUNCTION ZEND_FUNCTION -#define PHP_METHOD ZEND_METHOD - -#define PHP_RAW_NAMED_FE ZEND_RAW_NAMED_FE -#define PHP_NAMED_FE ZEND_NAMED_FE -#define PHP_FE ZEND_FE -#define PHP_DEP_FE ZEND_DEP_FE -#define PHP_FALIAS ZEND_FALIAS -#define PHP_DEP_FALIAS ZEND_DEP_FALIAS -#define PHP_ME ZEND_ME -#define PHP_MALIAS ZEND_MALIAS -#define PHP_ABSTRACT_ME ZEND_ABSTRACT_ME -#define PHP_ME_MAPPING ZEND_ME_MAPPING -#define PHP_FE_END ZEND_FE_END - -#define PHP_MODULE_STARTUP_N ZEND_MODULE_STARTUP_N -#define PHP_MODULE_SHUTDOWN_N ZEND_MODULE_SHUTDOWN_N -#define PHP_MODULE_ACTIVATE_N ZEND_MODULE_ACTIVATE_N -#define PHP_MODULE_DEACTIVATE_N ZEND_MODULE_DEACTIVATE_N -#define PHP_MODULE_INFO_N ZEND_MODULE_INFO_N - -#define PHP_MODULE_STARTUP_D ZEND_MODULE_STARTUP_D -#define PHP_MODULE_SHUTDOWN_D ZEND_MODULE_SHUTDOWN_D -#define PHP_MODULE_ACTIVATE_D ZEND_MODULE_ACTIVATE_D -#define PHP_MODULE_DEACTIVATE_D ZEND_MODULE_DEACTIVATE_D -#define PHP_MODULE_INFO_D ZEND_MODULE_INFO_D - -/* Compatibility macros */ -#define PHP_MINIT ZEND_MODULE_STARTUP_N -#define PHP_MSHUTDOWN ZEND_MODULE_SHUTDOWN_N -#define PHP_RINIT ZEND_MODULE_ACTIVATE_N -#define PHP_RSHUTDOWN ZEND_MODULE_DEACTIVATE_N -#define PHP_MINFO ZEND_MODULE_INFO_N -#define PHP_GINIT ZEND_GINIT -#define PHP_GSHUTDOWN ZEND_GSHUTDOWN - -#define PHP_MINIT_FUNCTION ZEND_MODULE_STARTUP_D -#define PHP_MSHUTDOWN_FUNCTION ZEND_MODULE_SHUTDOWN_D -#define PHP_RINIT_FUNCTION ZEND_MODULE_ACTIVATE_D -#define PHP_RSHUTDOWN_FUNCTION ZEND_MODULE_DEACTIVATE_D -#define PHP_MINFO_FUNCTION ZEND_MODULE_INFO_D -#define PHP_GINIT_FUNCTION ZEND_GINIT_FUNCTION -#define PHP_GSHUTDOWN_FUNCTION ZEND_GSHUTDOWN_FUNCTION - -#define PHP_MODULE_GLOBALS ZEND_MODULE_GLOBALS - - -/* Output support */ -#include "main/php_output.h" - - -#include "php_streams.h" -#include "php_memory_streams.h" -#include "fopen_wrappers.h" - - -/* Virtual current working directory support */ -#include "zend_virtual_cwd.h" - -#include "zend_constants.h" - -/* connection status states */ -#define PHP_CONNECTION_NORMAL 0 -#define PHP_CONNECTION_ABORTED 1 -#define PHP_CONNECTION_TIMEOUT 2 - -#include "php_reentrancy.h" - -#endif diff --git a/include/php/main/php_compat.h b/include/php/main/php_compat.h deleted file mode 100644 index 01d3e32..0000000 --- a/include/php/main/php_compat.h +++ /dev/null @@ -1,402 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_COMPAT_H -#define PHP_COMPAT_H - -#ifdef PHP_WIN32 -#include "config.w32.h" -#else -#include -#endif - -#if defined(HAVE_BUNDLED_PCRE) || !defined(PHP_VERSION) -#define pcre2_jit_callback_8 php_pcre2_jit_callback -#define pcre2_callout_enumerate_8 php_pcre2_callout_enumerate -#define pcre2_code_copy_8 php_pcre2_code_copy -#define pcre2_code_copy_with_tables_8 php_pcre2_code_copy_with_tables -#define pcre2_code_free_8 php_pcre2_code_free -#define pcre2_compile_8 php_pcre2_compile -#define pcre2_compile_context_copy_8 php_pcre2_compile_context_copy -#define pcre2_compile_context_create_8 php_pcre2_compile_context_create -#define pcre2_compile_context_free_8 php_pcre2_compile_context_free -#define pcre2_config_8 php_pcre2_config -#define pcre2_convert_context_copy_8 php_pcre2_convert_context_copy -#define pcre2_convert_context_create_8 php_pcre2_convert_context_create -#define pcre2_convert_context_free_8 php_pcre2_convert_context_free -#define pcre2_dfa_match_8 php_pcre2_dfa_match -#define pcre2_general_context_copy_8 php_pcre2_general_context_copy -#define pcre2_general_context_create_8 php_pcre2_general_context_create -#define pcre2_general_context_free_8 php_pcre2_general_context_free -#define pcre2_get_error_message_8 php_pcre2_get_error_message -#define pcre2_get_mark_8 php_pcre2_get_mark -#define pcre2_get_ovector_pointer_8 php_pcre2_get_ovector_pointer -#define pcre2_get_ovector_count_8 php_pcre2_get_ovector_count -#define pcre2_get_startchar_8 php_pcre2_get_startchar -#define pcre2_jit_compile_8 php_pcre2_jit_compile -#define pcre2_jit_match_8 php_pcre2_jit_match -#define pcre2_jit_free_unused_memory_8 php_pcre2_jit_free_unused_memory -#define pcre2_jit_stack_assign_8 php_pcre2_jit_stack_assign -#define pcre2_jit_stack_create_8 php_pcre2_jit_stack_create -#define pcre2_jit_stack_free_8 php_pcre2_jit_stack_free -#define pcre2_maketables_8 php_pcre2_maketables -#define pcre2_match_8 php_pcre2_match -#define pcre2_match_context_copy_8 php_pcre2_match_context_copy -#define pcre2_match_context_create_8 php_pcre2_match_context_create -#define pcre2_match_context_free_8 php_pcre2_match_context_free -#define pcre2_match_data_create_8 php_pcre2_match_data_create -#define pcre2_match_data_create_from_pattern_8 php_pcre2_match_data_create_from_pattern -#define pcre2_match_data_free_8 php_pcre2_match_data_free -#define pcre2_pattern_info_8 php_pcre2_pattern_info -#define pcre2_serialize_decode_8 php_pcre2_serialize_decode -#define pcre2_serialize_encode_8 php_pcre2_serialize_encode -#define pcre2_serialize_free_8 php_pcre2_serialize_free -#define pcre2_serialize_get_number_of_codes_8 php_pcre2_serialize_get_number_of_codes -#define pcre2_set_bsr_8 php_pcre2_set_bsr -#define pcre2_set_callout_8 php_pcre2_set_callout -#define pcre2_set_character_tables_8 php_pcre2_set_character_tables -#define pcre2_set_compile_extra_options_8 php_pcre2_set_compile_extra_options -#define pcre2_set_compile_recursion_guard_8 php_pcre2_set_compile_recursion_guard -#define pcre2_set_depth_limit_8 php_pcre2_set_depth_limit -#define pcre2_set_glob_escape_8 php_pcre2_set_glob_escape -#define pcre2_set_glob_separator_8 php_pcre2_set_glob_separator -#define pcre2_set_heap_limit_8 php_pcre2_set_heap_limit -#define pcre2_set_match_limit_8 php_pcre2_set_match_limit -#define pcre2_set_max_pattern_length_8 php_pcre2_set_max_pattern_length -#define pcre2_set_newline_8 php_pcre2_set_newline -#define pcre2_set_parens_nest_limit_8 php_pcre2_set_parens_nest_limit -#define pcre2_set_offset_limit_8 php_pcre2_set_offset_limit -#define pcre2_substitute_8 php_pcre2_substitute -#define pcre2_substring_copy_byname_8 php_pcre2_substring_copy_byname -#define pcre2_substring_copy_bynumber_8 php_pcre2_substring_copy_bynumber -#define pcre2_substring_free_8 php_pcre2_substring_free -#define pcre2_substring_get_byname_8 php_pcre2_substring_get_byname -#define pcre2_substring_get_bynumber_8 php_pcre2_substring_get_bynumber -#define pcre2_substring_length_byname_8 php_pcre2_substring_length_byname -#define pcre2_substring_length_bynumber_8 php_pcre2_substring_length_bynumber -#define pcre2_substring_list_get_8 php_pcre2_substring_list_get -#define pcre2_substring_list_free_8 php_pcre2_substring_list_free -#define pcre2_substring_nametable_scan_8 php_pcre2_substring_nametable_scan -#define pcre2_substring_number_from_name_8 php_pcre2_substring_number_from_name -#define pcre2_set_recursion_limit_8 php_pcre2_set_recursion_limit -#define pcre2_set_recursion_memory_management_8 php_pcre2_set_recursion_memory_management -#endif - -#define lookup php_lookup -#define hashTableInit php_hashTableInit -#define hashTableDestroy php_hashTableDestroy -#define hashTableIterInit php_hashTableIterInit -#define hashTableIterNext php_hashTableIterNext - -#if defined(HAVE_LIBXML) && (defined(HAVE_XML) || defined(HAVE_XMLRPC)) && !defined(HAVE_LIBEXPAT) -#define XML_DefaultCurrent php_XML_DefaultCurrent -#define XML_ErrorString php_XML_ErrorString -#define XML_ExpatVersion php_XML_ExpatVersion -#define XML_ExpatVersionInfo php_XML_ExpatVersionInfo -#define XML_ExternalEntityParserCreate php_XML_ExternalEntityParserCreate -#define XML_GetBase php_XML_GetBase -#define XML_GetBuffer php_XML_GetBuffer -#define XML_GetCurrentByteCount php_XML_GetCurrentByteCount -#define XML_GetCurrentByteIndex php_XML_GetCurrentByteIndex -#define XML_GetCurrentColumnNumber php_XML_GetCurrentColumnNumber -#define XML_GetCurrentLineNumber php_XML_GetCurrentLineNumber -#define XML_GetErrorCode php_XML_GetErrorCode -#define XML_GetIdAttributeIndex php_XML_GetIdAttributeIndex -#define XML_GetInputContext php_XML_GetInputContext -#define XML_GetSpecifiedAttributeCount php_XML_GetSpecifiedAttributeCount -#define XmlGetUtf16InternalEncodingNS php_XmlGetUtf16InternalEncodingNS -#define XmlGetUtf16InternalEncoding php_XmlGetUtf16InternalEncoding -#define XmlGetUtf8InternalEncodingNS php_XmlGetUtf8InternalEncodingNS -#define XmlGetUtf8InternalEncoding php_XmlGetUtf8InternalEncoding -#define XmlInitEncoding php_XmlInitEncoding -#define XmlInitEncodingNS php_XmlInitEncodingNS -#define XmlInitUnknownEncoding php_XmlInitUnknownEncoding -#define XmlInitUnknownEncodingNS php_XmlInitUnknownEncodingNS -#define XML_ParseBuffer php_XML_ParseBuffer -#define XML_Parse php_XML_Parse -#define XML_ParserCreate_MM php_XML_ParserCreate_MM -#define XML_ParserCreateNS php_XML_ParserCreateNS -#define XML_ParserCreate php_XML_ParserCreate -#define XML_ParserFree php_XML_ParserFree -#define XmlParseXmlDecl php_XmlParseXmlDecl -#define XmlParseXmlDeclNS php_XmlParseXmlDeclNS -#define XmlPrologStateInitExternalEntity php_XmlPrologStateInitExternalEntity -#define XmlPrologStateInit php_XmlPrologStateInit -#define XML_SetAttlistDeclHandler php_XML_SetAttlistDeclHandler -#define XML_SetBase php_XML_SetBase -#define XML_SetCdataSectionHandler php_XML_SetCdataSectionHandler -#define XML_SetCharacterDataHandler php_XML_SetCharacterDataHandler -#define XML_SetCommentHandler php_XML_SetCommentHandler -#define XML_SetDefaultHandlerExpand php_XML_SetDefaultHandlerExpand -#define XML_SetDefaultHandler php_XML_SetDefaultHandler -#define XML_SetDoctypeDeclHandler php_XML_SetDoctypeDeclHandler -#define XML_SetElementDeclHandler php_XML_SetElementDeclHandler -#define XML_SetElementHandler php_XML_SetElementHandler -#define XML_SetEncoding php_XML_SetEncoding -#define XML_SetEndCdataSectionHandler php_XML_SetEndCdataSectionHandler -#define XML_SetEndDoctypeDeclHandler php_XML_SetEndDoctypeDeclHandler -#define XML_SetEndElementHandler php_XML_SetEndElementHandler -#define XML_SetEndNamespaceDeclHandler php_XML_SetEndNamespaceDeclHandler -#define XML_SetEntityDeclHandler php_XML_SetEntityDeclHandler -#define XML_SetExternalEntityRefHandlerArg php_XML_SetExternalEntityRefHandlerArg -#define XML_SetExternalEntityRefHandler php_XML_SetExternalEntityRefHandler -#define XML_SetNamespaceDeclHandler php_XML_SetNamespaceDeclHandler -#define XML_SetNotationDeclHandler php_XML_SetNotationDeclHandler -#define XML_SetNotStandaloneHandler php_XML_SetNotStandaloneHandler -#define XML_SetParamEntityParsing php_XML_SetParamEntityParsing -#define XML_SetProcessingInstructionHandler php_XML_SetProcessingInstructionHandler -#define XML_SetReturnNSTriplet php_XML_SetReturnNSTriplet -#define XML_SetStartCdataSectionHandler php_XML_SetStartCdataSectionHandler -#define XML_SetStartDoctypeDeclHandler php_XML_SetStartDoctypeDeclHandler -#define XML_SetStartElementHandler php_XML_SetStartElementHandler -#define XML_SetStartNamespaceDeclHandler php_XML_SetStartNamespaceDeclHandler -#define XML_SetUnknownEncodingHandler php_XML_SetUnknownEncodingHandler -#define XML_SetUnparsedEntityDeclHandler php_XML_SetUnparsedEntityDeclHandler -#define XML_SetUserData php_XML_SetUserData -#define XML_SetXmlDeclHandler php_XML_SetXmlDeclHandler -#define XmlSizeOfUnknownEncoding php_XmlSizeOfUnknownEncoding -#define XML_UseParserAsHandlerArg php_XML_UseParserAsHandlerArg -#define XmlUtf16Encode php_XmlUtf16Encode -#define XmlUtf8Encode php_XmlUtf8Encode -#define XML_FreeContentModel php_XML_FreeContentModel -#define XML_MemMalloc php_XML_MemMalloc -#define XML_MemRealloc php_XML_MemRealloc -#define XML_MemFree php_XML_MemFree -#define XML_UseForeignDTD php_XML_UseForeignDTD -#define XML_GetFeatureList php_XML_GetFeatureList -#define XML_ParserReset php_XML_ParserReset - -#ifdef HAVE_GD_BUNDLED -#define any2eucjp php_gd_any2eucjp -#define createwbmp php_gd_createwbmp -#define empty_output_buffer php_gd_empty_output_buffer -#define fill_input_buffer php_gd_fill_input_buffer -#define freewbmp php_gd_freewbmp -#define gdAlphaBlend php_gd_gdAlphaBlend -#define gdCompareInt php_gd_gdCompareInt -#define gdCosT php_gd_gdCosT -#define gdCtxPrintf php_gd_gdCtxPrintf -#define gdDPExtractData php_gd_gdDPExtractData -#define gdFontGetGiant php_gd_gdFontGetGiant -#define gdFontGetLarge php_gd_gdFontGetLarge -#define gdFontGetMediumBold php_gd_gdFontGetMediumBold -#define gdFontGetSmall php_gd_gdFontGetSmall -#define gdFontGetTiny php_gd_gdFontGetTiny -#define gdFontGiant php_gd_gdFontGiant -#define gdFontGiantData php_gd_gdFontGiantData -#define gdFontGiantRep php_gd_gdFontGiantRep -#define gdFontLarge php_gd_gdFontLarge -#define gdFontLargeData php_gd_gdFontLargeData -#define gdFontLargeRep php_gd_gdFontLargeRep -#define gdFontMediumBold php_gd_gdFontMediumBold -#define gdFontMediumBoldData php_gd_gdFontMediumBoldData -#define gdFontMediumBoldRep php_gd_gdFontMediumBoldRep -#define gdFontSmall php_gd_gdFontSmall -#define gdFontSmallData php_gd_gdFontSmallData -#define gdFontSmallRep php_gd_gdFontSmallRep -#define gdFontTiny php_gd_gdFontTiny -#define gdFontTinyData php_gd_gdFontTinyData -#define gdFontTinyRep php_gd_gdFontTinyRep -#define gdGetBuf php_gd_gdGetBuf -#define gdGetByte php_gd_gdGetByte -#define gdGetC php_gd_gdGetC -#define _gdGetColors php_gd__gdGetColors -#define gd_getin php_gd_gd_getin -#define gdGetInt php_gd_gdGetInt -#define gdGetWord php_gd_gdGetWord -#define gdImageAABlend php_gd_gdImageAABlend -#define gdImageAALine php_gd_gdImageAALine -#define gdImageAlphaBlending php_gd_gdImageAlphaBlending -#define gdImageAntialias php_gd_gdImageAntialias -#define gdImageArc php_gd_gdImageArc -#define gdImageBrightness php_gd_gdImageBrightness -#define gdImageChar php_gd_gdImageChar -#define gdImageCharUp php_gd_gdImageCharUp -#define gdImageColor php_gd_gdImageColor -#define gdImageColorAllocate php_gd_gdImageColorAllocate -#define gdImageColorAllocateAlpha php_gd_gdImageColorAllocateAlpha -#define gdImageColorClosest php_gd_gdImageColorClosest -#define gdImageColorClosestAlpha php_gd_gdImageColorClosestAlpha -#define gdImageColorClosestHWB php_gd_gdImageColorClosestHWB -#define gdImageColorDeallocate php_gd_gdImageColorDeallocate -#define gdImageColorExact php_gd_gdImageColorExact -#define gdImageColorExactAlpha php_gd_gdImageColorExactAlpha -#define gdImageColorMatch php_gd_gdImageColorMatch -#define gdImageColorResolve php_gd_gdImageColorResolve -#define gdImageColorResolveAlpha php_gd_gdImageColorResolveAlpha -#define gdImageColorTransparent php_gd_gdImageColorTransparent -#define gdImageCompare php_gd_gdImageCompare -#define gdImageContrast php_gd_gdImageContrast -#define gdImageConvolution php_gd_gdImageConvolution -#define gdImageCopy php_gd_gdImageCopy -#define gdImageCopyMerge php_gd_gdImageCopyMerge -#define gdImageCopyMergeGray php_gd_gdImageCopyMergeGray -#define gdImageCopyResampled php_gd_gdImageCopyResampled -#define gdImageCopyResized php_gd_gdImageCopyResized -#define gdImageCreate php_gd_gdImageCreate -#define gdImageCreateFromGd php_gd_gdImageCreateFromGd -#define gdImageCreateFromGd2 php_gd_gdImageCreateFromGd2 -#define gdImageCreateFromGd2Ctx php_gd_gdImageCreateFromGd2Ctx -#define gdImageCreateFromGd2Part php_gd_gdImageCreateFromGd2Part -#define gdImageCreateFromGd2PartCtx php_gd_gdImageCreateFromGd2PartCtx -#define gdImageCreateFromGd2PartPtr php_gd_gdImageCreateFromGd2PartPtr -#define gdImageCreateFromGd2Ptr php_gd_gdImageCreateFromGd2Ptr -#define gdImageCreateFromGdCtx php_gd_gdImageCreateFromGdCtx -#define gdImageCreateFromGdPtr php_gd_gdImageCreateFromGdPtr -#define gdImageCreateFromGif php_gd_gdImageCreateFromGif -#define gdImageCreateFromGifCtx php_gd_gdImageCreateFromGifCtx -#define gdImageCreateFromGifSource php_gd_gdImageCreateFromGifSource -#define gdImageCreateFromJpeg php_gd_gdImageCreateFromJpeg -#define gdImageCreateFromJpegCtx php_gd_gdImageCreateFromJpegCtx -#define gdImageCreateFromJpegPtr php_gd_gdImageCreateFromJpegPtr -#define gdImageCreateFromPng php_gd_gdImageCreateFromPng -#define gdImageCreateFromPngCtx php_gd_gdImageCreateFromPngCtx -#define gdImageCreateFromPngPtr php_gd_gdImageCreateFromPngPtr -#define gdImageCreateFromPngSource php_gd_gdImageCreateFromPngSource -#define gdImageCreateFromWBMP php_gd_gdImageCreateFromWBMP -#define gdImageCreateFromWBMPCtx php_gd_gdImageCreateFromWBMPCtx -#define gdImageCreateFromWBMPPtr php_gd_gdImageCreateFromWBMPPtr -#define gdImageCreateFromXbm php_gd_gdImageCreateFromXbm -#define gdImageCreatePaletteFromTrueColor php_gd_gdImageCreatePaletteFromTrueColor -#define gdImageCreateTrueColor php_gd_gdImageCreateTrueColor -#define gdImageDashedLine php_gd_gdImageDashedLine -#define gdImageDestroy php_gd_gdImageDestroy -#define gdImageEdgeDetectQuick php_gd_gdImageEdgeDetectQuick -#define gdImageEllipse php_gd_gdImageEllipse -#define gdImageEmboss php_gd_gdImageEmboss -#define gdImageFill php_gd_gdImageFill -#define gdImageFilledArc php_gd_gdImageFilledArc -#define gdImageFilledEllipse php_gd_gdImageFilledEllipse -#define gdImageFilledPolygon php_gd_gdImageFilledPolygon -#define gdImageFilledRectangle php_gd_gdImageFilledRectangle -#define _gdImageFillTiled php_gd__gdImageFillTiled -#define gdImageFillToBorder php_gd_gdImageFillToBorder -#define gdImageGaussianBlur php_gd_gdImageGaussianBlur -#define gdImageGd php_gd_gdImageGd -#define gdImageGd2 php_gd_gdImageGd2 -#define gdImageGd2Ptr php_gd_gdImageGd2Ptr -#define gdImageGdPtr php_gd_gdImageGdPtr -#define gdImageGetClip php_gd_gdImageGetClip -#define gdImageGetPixel php_gd_gdImageGetPixel -#define gdImageGetTrueColorPixel php_gd_gdImageGetTrueColorPixel -#define gdImageGif php_gd_gdImageGif -#define gdImageGifCtx php_gd_gdImageGifCtx -#define gdImageGifPtr php_gd_gdImageGifPtr -#define gdImageGrayScale php_gd_gdImageGrayScale -#define gdImageInterlace php_gd_gdImageInterlace -#define gdImageJpeg php_gd_gdImageJpeg -#define gdImageJpegCtx php_gd_gdImageJpegCtx -#define gdImageJpegPtr php_gd_gdImageJpegPtr -#define gdImageLine php_gd_gdImageLine -#define gdImageMeanRemoval php_gd_gdImageMeanRemoval -#define gdImageNegate php_gd_gdImageNegate -#define gdImagePaletteCopy php_gd_gdImagePaletteCopy -#define gdImagePng php_gd_gdImagePng -#define gdImagePngCtx php_gd_gdImagePngCtx -#define gdImagePngCtxEx php_gd_gdImagePngCtxEx -#define gdImagePngEx php_gd_gdImagePngEx -#define gdImagePngPtr php_gd_gdImagePngPtr -#define gdImagePngPtrEx php_gd_gdImagePngPtrEx -#define gdImagePngToSink php_gd_gdImagePngToSink -#define gdImagePolygon php_gd_gdImagePolygon -#define gdImageRectangle php_gd_gdImageRectangle -#define gdImageRotate php_gd_gdImageRotate -#define gdImageRotate180 php_gd_gdImageRotate180 -#define gdImageRotate270 php_gd_gdImageRotate270 -#define gdImageRotate45 php_gd_gdImageRotate45 -#define gdImageRotate90 php_gd_gdImageRotate90 -#define gdImageSaveAlpha php_gd_gdImageSaveAlpha -#define gdImageSelectiveBlur php_gd_gdImageSelectiveBlur -#define gdImageSetAntiAliased php_gd_gdImageSetAntiAliased -#define gdImageSetAntiAliasedDontBlend php_gd_gdImageSetAntiAliasedDontBlend -#define gdImageSetBrush php_gd_gdImageSetBrush -#define gdImageSetClip php_gd_gdImageSetClip -#define gdImageSetPixel php_gd_gdImageSetPixel -#define gdImageSetStyle php_gd_gdImageSetStyle -#define gdImageSetThickness php_gd_gdImageSetThickness -#define gdImageSetTile php_gd_gdImageSetTile -#define gdImageSkewX php_gd_gdImageSkewX -#define gdImageSkewY php_gd_gdImageSkewY -#define gdImageSmooth php_gd_gdImageSmooth -#define gdImageString php_gd_gdImageString -#define gdImageString16 php_gd_gdImageString16 -#define gdImageStringFT php_gd_gdImageStringFT -#define gdImageStringFTEx php_gd_gdImageStringFTEx -#define gdImageStringTTF php_gd_gdImageStringTTF -#define gdImageStringUp php_gd_gdImageStringUp -#define gdImageStringUp16 php_gd_gdImageStringUp16 -#define gdImageTrueColorToPalette php_gd_gdImageTrueColorToPalette -#define gdImageWBMP php_gd_gdImageWBMP -#define gdImageWBMPCtx php_gd_gdImageWBMPCtx -#define gdImageWBMPPtr php_gd_gdImageWBMPPtr -#define gdImageXbmCtx php_gd_gdImageXbmCtx -#define gdNewDynamicCtx php_gd_gdNewDynamicCtx -#define gdNewDynamicCtxEx php_gd_gdNewDynamicCtxEx -#define gdNewFileCtx php_gd_gdNewFileCtx -#define gdNewSSCtx php_gd_gdNewSSCtx -#define gdPutBuf php_gd_gdPutBuf -#define gdPutC php_gd_gdPutC -#define _gdPutColors php_gd__gdPutColors -#define gdPutInt php_gd_gdPutInt -#define gd_putout php_gd_gd_putout -#define gdPutWord php_gd_gdPutWord -#define gdSeek php_gd_gdSeek -#define gdSinT php_gd_gdSinT -#define gd_strtok_r php_gd_gd_strtok_r -#define gdTell php_gd_gdTell -#define getmbi php_gd_getmbi -#define init_destination php_gd_init_destination -#define init_source php_gd_init_source -#define jpeg_gdIOCtx_dest php_gd_jpeg_gdIOCtx_dest -#define jpeg_gdIOCtx_src php_gd_jpeg_gdIOCtx_src -#define lsqrt php_gd_lsqrt -#define printwbmp php_gd_printwbmp -#define Putchar php_gd_Putchar -#define putmbi php_gd_putmbi -#define Putword php_gd_Putword -#define readwbmp php_gd_readwbmp -#define skipheader php_gd_skipheader -#define skip_input_data php_gd_skip_input_data -#define term_destination php_gd_term_destination -#define term_source php_gd_term_source -#define writewbmp php_gd_writewbmp -#define ZeroDataBlock php_gd_ZeroDataBlock -#define gdCacheCreate php_gd_gdCacheCreate -#define gdCacheDelete php_gd_gdCacheDelete -#define gdCacheGet php_gd_gdCacheGet -#define gdFontCacheSetup php_gd_gdFontCacheSetup -#define gdFontCacheShutdown php_gd_gdFontCacheShutdown -#define gdFreeFontCache php_gd_gdFreeFontCache -#endif /* HAVE_GD_BUNDLED */ - -/* Define to specify how much context to retain around the current parse - point. */ -#define XML_CONTEXT_BYTES 1024 - -/* Define to make parameter entity parsing functionality available. */ -#define XML_DTD 1 - -/* Define to make XML Namespaces functionality available. */ -#define XML_NS 1 -#endif - -#ifdef PHP_EXPORTS -#define PCRE_STATIC -#endif - -#endif diff --git a/include/php/main/php_config.h b/include/php/main/php_config.h deleted file mode 100644 index 33227f6..0000000 --- a/include/php/main/php_config.h +++ /dev/null @@ -1,2382 +0,0 @@ -/* main/php_config.h. Generated from php_config.h.in by configure. */ -/* main/php_config.h.in. Generated from configure.ac by autoheader. */ - - -#ifndef PHP_CONFIG_H -#define PHP_CONFIG_H - -#if defined(__GNUC__) && __GNUC__ >= 4 -# define ZEND_API __attribute__ ((visibility("default"))) -# define ZEND_DLEXPORT __attribute__ ((visibility("default"))) -#else -# define ZEND_API -# define ZEND_DLEXPORT -#endif - -#define ZEND_DLIMPORT - - -/* */ -/* #undef CDB_INCLUDE_FILE */ - -/* Define if system uses EBCDIC */ -/* #undef CHARSET_EBCDIC */ - -/* Whether to build bcmath as dynamic module */ -/* #undef COMPILE_DL_BCMATH */ - -/* Whether to build bz2 as dynamic module */ -/* #undef COMPILE_DL_BZ2 */ - -/* Whether to build calendar as dynamic module */ -/* #undef COMPILE_DL_CALENDAR */ - -/* Whether to build ctype as dynamic module */ -/* #undef COMPILE_DL_CTYPE */ - -/* Whether to build curl as dynamic module */ -/* #undef COMPILE_DL_CURL */ - -/* Whether to build date as dynamic module */ -/* #undef COMPILE_DL_DATE */ - -/* Whether to build dba as dynamic module */ -/* #undef COMPILE_DL_DBA */ - -/* Whether to build dom as dynamic module */ -/* #undef COMPILE_DL_DOM */ - -/* Whether to build enchant as dynamic module */ -/* #undef COMPILE_DL_ENCHANT */ - -/* Whether to build exif as dynamic module */ -/* #undef COMPILE_DL_EXIF */ - -/* Whether to build ffi as dynamic module */ -/* #undef COMPILE_DL_FFI */ - -/* Whether to build fileinfo as dynamic module */ -/* #undef COMPILE_DL_FILEINFO */ - -/* Whether to build filter as dynamic module */ -/* #undef COMPILE_DL_FILTER */ - -/* Whether to build ftp as dynamic module */ -/* #undef COMPILE_DL_FTP */ - -/* Whether to build gd as dynamic module */ -/* #undef COMPILE_DL_GD */ - -/* Whether to build gettext as dynamic module */ -/* #undef COMPILE_DL_GETTEXT */ - -/* Whether to build gmp as dynamic module */ -/* #undef COMPILE_DL_GMP */ - -/* Whether to build hash as dynamic module */ -/* #undef COMPILE_DL_HASH */ - -/* Whether to build iconv as dynamic module */ -/* #undef COMPILE_DL_ICONV */ - -/* Whether to build imap as dynamic module */ -/* #undef COMPILE_DL_IMAP */ - -/* Whether to build intl as dynamic module */ -/* #undef COMPILE_DL_INTL */ - -/* Whether to build json as dynamic module */ -/* #undef COMPILE_DL_JSON */ - -/* Whether to build ldap as dynamic module */ -/* #undef COMPILE_DL_LDAP */ - -/* Whether to build libxml as dynamic module */ -/* #undef COMPILE_DL_LIBXML */ - -/* Whether to build mbstring as dynamic module */ -/* #undef COMPILE_DL_MBSTRING */ - -/* Whether to build mysqli as dynamic module */ -#define COMPILE_DL_MYSQLI 1 - -/* Whether to build mysqlnd as dynamic module */ -/* #undef COMPILE_DL_MYSQLND */ - -/* Whether to build oci8 as dynamic module */ -/* #undef COMPILE_DL_OCI8 */ - -/* Whether to build odbc as dynamic module */ -/* #undef COMPILE_DL_ODBC */ - -/* Whether to build opcache as dynamic module */ -#define COMPILE_DL_OPCACHE 1 - -/* Whether to build openssl as dynamic module */ -#define COMPILE_DL_OPENSSL 1 - -/* Whether to build pcntl as dynamic module */ -/* #undef COMPILE_DL_PCNTL */ - -/* Whether to build pcre as dynamic module */ -/* #undef COMPILE_DL_PCRE */ - -/* Whether to build pdo as dynamic module */ -/* #undef COMPILE_DL_PDO */ - -/* Whether to build pdo_dblib as dynamic module */ -/* #undef COMPILE_DL_PDO_DBLIB */ - -/* Whether to build pdo_firebird as dynamic module */ -/* #undef COMPILE_DL_PDO_FIREBIRD */ - -/* Whether to build pdo_mysql as dynamic module */ -/* #undef COMPILE_DL_PDO_MYSQL */ - -/* Whether to build pdo_oci as dynamic module */ -/* #undef COMPILE_DL_PDO_OCI */ - -/* Whether to build pdo_odbc as dynamic module */ -/* #undef COMPILE_DL_PDO_ODBC */ - -/* Whether to build pdo_pgsql as dynamic module */ -/* #undef COMPILE_DL_PDO_PGSQL */ - -/* Whether to build pdo_sqlite as dynamic module */ -/* #undef COMPILE_DL_PDO_SQLITE */ - -/* Whether to build pgsql as dynamic module */ -/* #undef COMPILE_DL_PGSQL */ - -/* Whether to build phar as dynamic module */ -/* #undef COMPILE_DL_PHAR */ - -/* Whether to build phpdbg_webhelper as dynamic module */ -/* #undef COMPILE_DL_PHPDBG_WEBHELPER */ - -/* Whether to build posix as dynamic module */ -/* #undef COMPILE_DL_POSIX */ - -/* Whether to build pspell as dynamic module */ -/* #undef COMPILE_DL_PSPELL */ - -/* Whether to build readline as dynamic module */ -/* #undef COMPILE_DL_READLINE */ - -/* Whether to build reflection as dynamic module */ -/* #undef COMPILE_DL_REFLECTION */ - -/* Whether to build session as dynamic module */ -/* #undef COMPILE_DL_SESSION */ - -/* Whether to build shmop as dynamic module */ -/* #undef COMPILE_DL_SHMOP */ - -/* Whether to build simplexml as dynamic module */ -/* #undef COMPILE_DL_SIMPLEXML */ - -/* Whether to build snmp as dynamic module */ -/* #undef COMPILE_DL_SNMP */ - -/* Whether to build soap as dynamic module */ -/* #undef COMPILE_DL_SOAP */ - -/* Whether to build sockets as dynamic module */ -/* #undef COMPILE_DL_SOCKETS */ - -/* Whether to build sodium as dynamic module */ -/* #undef COMPILE_DL_SODIUM */ - -/* Whether to build spl as dynamic module */ -/* #undef COMPILE_DL_SPL */ - -/* Whether to build sqlite3 as dynamic module */ -/* #undef COMPILE_DL_SQLITE3 */ - -/* Whether to build standard as dynamic module */ -/* #undef COMPILE_DL_STANDARD */ - -/* Whether to build sysvmsg as dynamic module */ -/* #undef COMPILE_DL_SYSVMSG */ - -/* Whether to build sysvsem as dynamic module */ -/* #undef COMPILE_DL_SYSVSEM */ - -/* Whether to build sysvshm as dynamic module */ -/* #undef COMPILE_DL_SYSVSHM */ - -/* Whether to build tidy as dynamic module */ -/* #undef COMPILE_DL_TIDY */ - -/* Whether to build tokenizer as dynamic module */ -/* #undef COMPILE_DL_TOKENIZER */ - -/* Whether to build xml as dynamic module */ -/* #undef COMPILE_DL_XML */ - -/* Whether to build xmlreader as dynamic module */ -/* #undef COMPILE_DL_XMLREADER */ - -/* Whether to build xmlrpc as dynamic module */ -/* #undef COMPILE_DL_XMLRPC */ - -/* Whether to build xmlwriter as dynamic module */ -/* #undef COMPILE_DL_XMLWRITER */ - -/* Whether to build xsl as dynamic module */ -/* #undef COMPILE_DL_XSL */ - -/* Whether to build zend_test as dynamic module */ -/* #undef COMPILE_DL_ZEND_TEST */ - -/* Whether to build zip as dynamic module */ -/* #undef COMPILE_DL_ZIP */ - -/* Whether to build zlib as dynamic module */ -/* #undef COMPILE_DL_ZLIB */ - -/* */ -/* #undef COOKIE_IO_FUNCTIONS_T */ - -/* */ -/* #undef COOKIE_SEEKER_USES_OFF64_T */ - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -/* #undef CRAY_STACKSEG_END */ - -/* Define if crypt_r has uses CRYPTD */ -/* #undef CRYPT_R_CRYPTD */ - -/* Define if struct crypt_data requires _GNU_SOURCE */ -/* #undef CRYPT_R_GNU_SOURCE */ - -/* Define if crypt_r uses struct crypt_data */ -/* #undef CRYPT_R_STRUCT_CRYPT_DATA */ - -/* Define to 1 if using `alloca.c'. */ -/* #undef C_ALLOCA */ - -/* Define if the target system is darwin */ -#define DARWIN 1 - -/* */ -/* #undef DB1_INCLUDE_FILE */ - -/* */ -/* #undef DB1_VERSION */ - -/* */ -/* #undef DB2_INCLUDE_FILE */ - -/* */ -/* #undef DB3_INCLUDE_FILE */ - -/* */ -/* #undef DB4_INCLUDE_FILE */ - -/* */ -/* #undef DBA_CDB */ - -/* */ -/* #undef DBA_CDB_BUILTIN */ - -/* */ -/* #undef DBA_CDB_MAKE */ - -/* */ -/* #undef DBA_DB1 */ - -/* */ -/* #undef DBA_DB2 */ - -/* */ -/* #undef DBA_DB3 */ - -/* */ -/* #undef DBA_DB4 */ - -/* */ -/* #undef DBA_DBM */ - -/* */ -/* #undef DBA_FLATFILE */ - -/* */ -/* #undef DBA_GDBM */ - -/* */ -/* #undef DBA_INIFILE */ - -/* */ -/* #undef DBA_LMDB */ - -/* */ -/* #undef DBA_NDBM */ - -/* */ -/* #undef DBA_QDBM */ - -/* */ -/* #undef DBA_TCADB */ - -/* */ -/* #undef DBM_INCLUDE_FILE */ - -/* */ -/* #undef DBM_VERSION */ - -/* */ -#define DEFAULT_SHORT_OPEN_TAG "1" - -/* Define if dlsym() requires a leading underscore in symbol names. */ -/* #undef DLSYM_NEEDS_UNDERSCORE */ - -/* Whether to enable chroot() function */ -#define ENABLE_CHROOT_FUNC 1 - -/* */ -/* #undef GDBM_INCLUDE_FILE */ - -/* Whether you use GNU Pth */ -/* #undef GNUPTH */ - -/* Define to 1 if `TIOCGWINSZ' requires . */ -/* #undef GWINSZ_IN_SYS_IOCTL */ - -/* Whether 3 arg set_rebind_proc() */ -/* #undef HAVE_3ARG_SETREBINDPROC */ - -/* Define when aarch64 CRC32 API is available. */ -/* #undef HAVE_AARCH64_CRC32 */ - -/* Define to 1 if you have the `acosh' function. */ -#define HAVE_ACOSH 1 - -/* */ -/* #undef HAVE_ADABAS */ - -/* Whether you have AI_ALL */ -#define HAVE_AI_ALL 1 - -/* Whether you have AI_IDN */ -/* #undef HAVE_AI_IDN */ - -/* Whether you have AI_V4MAPPED */ -#define HAVE_AI_V4MAPPED 1 - -/* whether the compiler supports __alignof__ */ -#define HAVE_ALIGNOF 1 - -/* Define to 1 if you have `alloca', as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#define HAVE_ALLOCA_H 1 - -/* Define to 1 if you have the `alphasort' function. */ -#define HAVE_ALPHASORT 1 - -/* do we have apparmor support? */ -/* #undef HAVE_APPARMOR */ - -/* Define to 1 if you have the header file */ -/* #undef HAVE_ARGON2LIB */ - -/* Define to 1 if you have the header file. */ -#define HAVE_ARPA_INET_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_ARPA_NAMESER_H 1 - -/* Define to 1 if you have the `asctime_r' function. */ -#define HAVE_ASCTIME_R 1 - -/* Define to 1 if you have the `asinh' function. */ -#define HAVE_ASINH 1 - -/* Define if asm goto support */ -#define HAVE_ASM_GOTO 1 - -/* Define to 1 if you have the `asprintf' function. */ -#define HAVE_ASPRINTF 1 - -/* Define to 1 if you have the `atanh' function. */ -#define HAVE_ATANH 1 - -/* whether atof() accepts INF */ -/* #undef HAVE_ATOF_ACCEPTS_INF */ - -/* whether atof() accepts NAN */ -/* #undef HAVE_ATOF_ACCEPTS_NAN */ - -/* Define to 1 if you have the `atoll' function. */ -#define HAVE_ATOLL 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_ATOMIC_H */ - -/* whether the compiler supports __attribute__ ((__aligned__)) */ -#define HAVE_ATTRIBUTE_ALIGNED 1 - -/* Whether you have bcmath */ -#define HAVE_BCMATH 1 - -/* */ -/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */ - -/* Define if system has broken getcwd */ -/* #undef HAVE_BROKEN_GETCWD */ - -/* Konstantin Chuguev's iconv implementation */ -/* #undef HAVE_BSD_ICONV */ - -/* */ -#define HAVE_BUILD_DEFS_H 1 - -/* Define to 1 if gcc supports __sync_bool_compare_and_swap() a.o. */ -/* #undef HAVE_BUILTIN_ATOMIC */ - -/* */ -#define HAVE_BUNDLED_PCRE 1 - -/* */ -#define HAVE_BZ2 1 - -/* */ -#define HAVE_CALENDAR 1 - -/* Define to 1 if you have the `chroot' function. */ -#define HAVE_CHROOT 1 - -/* Define to 1 if you have the `clearenv' function. */ -/* #undef HAVE_CLEARENV */ - -/* */ -/* #undef HAVE_CLI0CLI_H */ - -/* */ -/* #undef HAVE_CLI0CORE_H */ - -/* */ -/* #undef HAVE_CLI0DEFS_H */ - -/* */ -/* #undef HAVE_CLI0ENV_H */ - -/* */ -/* #undef HAVE_CLI0EXT_H */ - -/* do we have clock_gettime? */ -/* #undef HAVE_CLOCK_GETTIME */ - -/* do we have clock_get_time? */ -/* #undef HAVE_CLOCK_GET_TIME */ - -/* */ -/* #undef HAVE_CODBC */ - -/* whether __cpuid_count is available */ -#define HAVE_CPUID_COUNT 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_CPUID_H 1 - -/* Define to 1 if you have the `CreateProcess' function. */ -/* #undef HAVE_CREATEPROCESS */ - -/* */ -#define HAVE_CRYPT 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CRYPT_H */ - -/* Define to 1 if you have the `crypt_r' function. */ -/* #undef HAVE_CRYPT_R */ - -/* Define to 1 if you have the `ctermid' function. */ -#define HAVE_CTERMID 1 - -/* Define to 1 if you have the `ctime_r' function. */ -#define HAVE_CTIME_R 1 - -/* */ -#define HAVE_CTYPE 1 - -/* */ -#define HAVE_CURL 1 - -/* Have cURL with old OpenSSL */ -/* #undef HAVE_CURL_OLD_OPENSSL */ - -/* */ -/* #undef HAVE_DBA */ - -/* Whether you want DBMaker */ -/* #undef HAVE_DBMAKER */ - -/* */ -/* #undef HAVE_DCNGETTEXT */ - -/* Define to 1 if you have the declaration of `arc4random_buf', and to 0 if - you don't. */ -#define HAVE_DECL_ARC4RANDOM_BUF 1 - -/* Define to 1 if you have the declaration of `isfinite', and to 0 if you - don't. */ -#define HAVE_DECL_ISFINITE 1 - -/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't. - */ -#define HAVE_DECL_ISINF 1 - -/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't. - */ -#define HAVE_DECL_ISNAN 1 - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -/* #undef HAVE_DECL_TZNAME */ - -/* do we have /dev/poll? */ -/* #undef HAVE_DEVPOLL */ - -/* Define if the target system has /dev/urandom device */ -#define HAVE_DEV_URANDOM 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_DIRENT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* */ -#define HAVE_DLOPEN 1 - -/* */ -#define HAVE_DLSYM 1 - -/* Whether you have dmalloc */ -/* #undef HAVE_DMALLOC */ - -/* */ -/* #undef HAVE_DNGETTEXT */ - -/* Define to 1 if you have the header file. */ -#define HAVE_DNS_H 1 - -/* */ -#define HAVE_DNS_SEARCH 1 - -/* */ -#define HAVE_DN_EXPAND 1 - -/* */ -#define HAVE_DN_SKIPNAME 1 - -/* */ -#define HAVE_DOM 1 - -/* Whether to enable DTrace support */ -/* #undef HAVE_DTRACE */ - -/* */ -/* #undef HAVE_EMPRESS */ - -/* */ -/* #undef HAVE_ENCHANT */ - -/* */ -/* #undef HAVE_ENCHANT_BROKER_SET_PARAM */ - -/* */ -/* #undef HAVE_ENCHANT_GET_VERSION */ - -/* Libzip >= 1.2.0 with encryption support */ -#define HAVE_ENCRYPTION 1 - -/* do we have epoll? */ -/* #undef HAVE_EPOLL */ - -/* */ -/* #undef HAVE_ESOOB */ - -/* Whether you want EXIF (metadata from images) support */ -/* #undef HAVE_EXIF */ - -/* Define to 1 if you have the `explicit_bzero' function. */ -/* #undef HAVE_EXPLICIT_BZERO */ - -/* Define to 1 if you have the `explicit_memset' function. */ -/* #undef HAVE_EXPLICIT_MEMSET */ - -/* Define to 1 if you have the `fabsf' function. */ -/* #undef HAVE_FABSF */ - -/* Define to 1 if you have the header file. */ -#define HAVE_FCNTL_H 1 - -/* Have ffi support */ -/* #undef HAVE_FFI */ - -/* Whether libffi supports fastcall calling convention */ -/* #undef HAVE_FFI_FASTCALL */ - -/* Whether libffi supports ms_cdecl calling convention */ -/* #undef HAVE_FFI_MS_CDECL */ - -/* Whether libffi supports pascal calling convention */ -/* #undef HAVE_FFI_PASCAL */ - -/* Whether libffi supports register calling convention */ -/* #undef HAVE_FFI_REGISTER */ - -/* Whether libffi supports stdcall calling convention */ -/* #undef HAVE_FFI_STDCALL */ - -/* Whether libffi supports sysv calling convention */ -/* #undef HAVE_FFI_SYSV */ - -/* Whether libffi supports thiscall calling convention */ -/* #undef HAVE_FFI_THISCALL */ - -/* Define to 1 if you have the `finite' function. */ -#define HAVE_FINITE 1 - -/* Define to 1 if you have the `flock' function. */ -#define HAVE_FLOCK 1 - -/* Define to 1 if you have the `floorf' function. */ -/* #undef HAVE_FLOORF */ - -/* Define if flush should be called explicitly after a buffered io. */ -#define HAVE_FLUSHIO 1 - -/* Define to 1 if your system has a working POSIX `fnmatch' function. */ -#define HAVE_FNMATCH 1 - -/* */ -/* #undef HAVE_FOPENCOOKIE */ - -/* Define to 1 if you have the `fork' function. */ -#define HAVE_FORK 1 - -/* Define to 1 if you have the `fpclass' function. */ -/* #undef HAVE_FPCLASS */ - -/* POSIX Access Control List */ -/* #undef HAVE_FPM_ACL */ - -/* whether fpsetprec is present and usable */ -/* #undef HAVE_FPSETPREC */ - -/* whether FPU control word can be manipulated by inline assembler */ -#define HAVE_FPU_INLINE_ASM_X86 1 - -/* Define to 1 if you have the `ftok' function. */ -#define HAVE_FTOK 1 - -/* Whether you want FTP support */ -/* #undef HAVE_FTP */ - -/* Whether FTP over SSL is supported */ -/* #undef HAVE_FTP_SSL */ - -/* Define to 1 if the system has the `ifunc' function attribute */ -/* #undef HAVE_FUNC_ATTRIBUTE_IFUNC */ - -/* Define to 1 if the system has the `target' function attribute */ -#define HAVE_FUNC_ATTRIBUTE_TARGET 1 - -/* Define to 1 if you have the three-argument form of gethostbyname_r(). */ -/* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */ - -/* Define to 1 if you have the five-argument form of gethostbyname_r(). */ -/* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */ - -/* Define to 1 if you have the six-argument form of gethostbyname_r(). */ -/* #undef HAVE_FUNC_GETHOSTBYNAME_R_6 */ - -/* Define to 1 if you have the `funopen' function. */ -#define HAVE_FUNOPEN 1 - -/* Define to 1 if you have the `gai_strerror' function. */ -#define HAVE_GAI_STRERROR 1 - -/* Define if the target system has support for global register variables */ -/* #undef HAVE_GCC_GLOBAL_REGS */ - -/* Whether you have gcov */ -/* #undef HAVE_GCOV */ - -/* */ -/* #undef HAVE_GD_BMP */ - -/* */ -/* #undef HAVE_GD_BUNDLED */ - -/* */ -/* #undef HAVE_GD_FREETYPE */ - -/* */ -/* #undef HAVE_GD_JPG */ - -/* */ -/* #undef HAVE_GD_LIBVERSION */ - -/* */ -/* #undef HAVE_GD_PNG */ - -/* */ -/* #undef HAVE_GD_TGA */ - -/* */ -/* #undef HAVE_GD_WEBP */ - -/* */ -/* #undef HAVE_GD_XPM */ - -/* Define if you have the getaddrinfo function */ -#define HAVE_GETADDRINFO 1 - -/* Define to 1 if you have the `getcwd' function. */ -#define HAVE_GETCWD 1 - -/* Define to 1 if you have the `getgrgid_r' function. */ -#define HAVE_GETGRGID_R 1 - -/* Define to 1 if you have the `getgrnam_r' function. */ -#define HAVE_GETGRNAM_R 1 - -/* Define to 1 if you have the `getgroups' function. */ -#define HAVE_GETGROUPS 1 - -/* */ -#define HAVE_GETHOSTBYADDR 1 - -/* Define to 1 if you have some form of gethostbyname_r(). */ -/* #undef HAVE_GETHOSTBYNAME_R */ - -/* */ -#define HAVE_GETHOSTNAME 1 - -/* whether getifaddrs is present and usable */ -#define HAVE_GETIFADDRS 1 - -/* Define to 1 if you have the `getloadavg' function. */ -#define HAVE_GETLOADAVG 1 - -/* Define to 1 if you have the `getlogin' function. */ -#define HAVE_GETLOGIN 1 - -/* Define to 1 if you have the `getopt' function. */ -#define HAVE_GETOPT 1 - -/* Define to 1 if you have the `getpgid' function. */ -#define HAVE_GETPGID 1 - -/* Define to 1 if you have the `getpid' function. */ -#define HAVE_GETPID 1 - -/* Define to 1 if you have the `getpriority' function. */ -#define HAVE_GETPRIORITY 1 - -/* Define to 1 if you have the `getprotobyname' function. */ -#define HAVE_GETPROTOBYNAME 1 - -/* Define to 1 if you have the `getprotobynumber' function. */ -#define HAVE_GETPROTOBYNUMBER 1 - -/* Define to 1 if you have the `getpwnam_r' function. */ -#define HAVE_GETPWNAM_R 1 - -/* Define to 1 if you have the `getpwuid_r' function. */ -#define HAVE_GETPWUID_R 1 - -/* Define to 1 if you have the `getrlimit' function. */ -#define HAVE_GETRLIMIT 1 - -/* Define to 1 if you have the `getrusage' function. */ -#define HAVE_GETRUSAGE 1 - -/* Define to 1 if you have the `getservbyname' function. */ -#define HAVE_GETSERVBYNAME 1 - -/* Define to 1 if you have the `getservbyport' function. */ -#define HAVE_GETSERVBYPORT 1 - -/* Define to 1 if you have the `getsid' function. */ -#define HAVE_GETSID 1 - -/* Define to 1 if you have the `gettimeofday' function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the `getwd' function. */ -#define HAVE_GETWD 1 - -/* */ -/* #undef HAVE_GICONV_H */ - -/* glibc's iconv implementation */ -/* #undef HAVE_GLIBC_ICONV */ - -/* Define to 1 if you have the `glob' function. */ -#define HAVE_GLOB 1 - -/* */ -/* #undef HAVE_GMP */ - -/* Define to 1 if you have the `gmtime_r' function. */ -#define HAVE_GMTIME_R 1 - -/* Define to 1 if you have the `grantpt' function. */ -#define HAVE_GRANTPT 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_GRP_H 1 - -/* Have HASH Extension */ -#define HAVE_HASH_EXT 1 - -/* */ -#define HAVE_HISTORY_LIST 1 - -/* Define to 1 if you have the `hstrerror' function. */ -#define HAVE_HSTRERROR 1 - -/* */ -#define HAVE_HTONL 1 - -/* Define to enable copying PHP CODE pages into HUGE PAGES (experimental) */ -#define HAVE_HUGE_CODE_PAGES 1 - -/* whether HUGE_VAL == INF */ -#define HAVE_HUGE_VAL_INF 1 - -/* whether HUGE_VAL + -HUGEVAL == NAN */ -/* #undef HAVE_HUGE_VAL_NAN */ - -/* Define to 1 if you have the `hypot' function. */ -#define HAVE_HYPOT 1 - -/* */ -/* #undef HAVE_IBMDB2 */ - -/* IBM iconv implementation */ -/* #undef HAVE_IBM_ICONV */ - -/* */ -/* #undef HAVE_ICONV */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_IEEEFP_H */ - -/* Define to 1 if you have the `if_indextoname' function. */ -#define HAVE_IF_INDEXTONAME 1 - -/* Define to 1 if you have the `if_nametoindex' function. */ -#define HAVE_IF_NAMETOINDEX 1 - -/* */ -/* #undef HAVE_IMAP */ - -/* */ -/* #undef HAVE_IMAP2000 */ - -/* */ -/* #undef HAVE_IMAP2001 */ - -/* */ -/* #undef HAVE_IMAP2004 */ - -/* */ -/* #undef HAVE_IMAP_AUTH_GSS */ - -/* Whether IMAP extension has Kerberos support */ -/* #undef HAVE_IMAP_KRB */ - -/* */ -/* #undef HAVE_IMAP_MUTF7 */ - -/* */ -/* #undef HAVE_IMAP_SSL */ - -/* Define to 1 if you have the header file. */ -#define HAVE_IMMINTRIN_H 1 - -/* */ -#define HAVE_INET_ATON 1 - -/* Define to 1 if you have the `inet_ntoa' function. */ -#define HAVE_INET_NTOA 1 - -/* Define to 1 if you have the `inet_ntop' function. */ -#define HAVE_INET_NTOP 1 - -/* Define to 1 if you have the `inet_pton' function. */ -#define HAVE_INET_PTON 1 - -/* Define to 1 if you have the `initgroups' function. */ -#define HAVE_INITGROUPS 1 - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int16_t'. */ -#define HAVE_INT16_T 1 - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int32_t'. */ -#define HAVE_INT32_T 1 - -/* Define to 1 if the system has the type `int64'. */ -/* #undef HAVE_INT64 */ - -/* Define to 1 if the system has the type `int64_t'. */ -#define HAVE_INT64_T 1 - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Define to 1 if the system has the type `int8_t'. */ -#define HAVE_INT8_T 1 - -/* Whether intmax_t is available */ -#define HAVE_INTMAX_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* */ -/* #undef HAVE_IODBC */ - -/* */ -/* #undef HAVE_IODBC_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_IO_H */ - -/* Whether to enable IPv6 support */ -#define HAVE_IPV6 1 - -/* */ -/* #undef HAVE_ISQLEXT_H */ - -/* */ -/* #undef HAVE_ISQL_H */ - -/* whether to enable JavaScript Object Serialization support */ -#define HAVE_JSON 1 - -/* Define to 1 if you have the `kill' function. */ -#define HAVE_KILL 1 - -/* do we have kqueue? */ -/* #undef HAVE_KQUEUE */ - -/* Define to 1 if you have the header file. */ -#define HAVE_LANGINFO_H 1 - -/* Define to 1 if you have the `lchown' function. */ -#define HAVE_LCHOWN 1 - -/* */ -/* #undef HAVE_LDAP */ - -/* Define to 1 if you have the `ldap_control_find' function. */ -/* #undef HAVE_LDAP_CONTROL_FIND */ - -/* Define to 1 if you have the `ldap_extended_operation' function. */ -/* #undef HAVE_LDAP_EXTENDED_OPERATION */ - -/* Define to 1 if you have the `ldap_extended_operation_s' function. */ -/* #undef HAVE_LDAP_EXTENDED_OPERATION_S */ - -/* Define to 1 if you have the `ldap_parse_extended_result' function. */ -/* #undef HAVE_LDAP_PARSE_EXTENDED_RESULT */ - -/* Define to 1 if you have the `ldap_parse_reference' function. */ -/* #undef HAVE_LDAP_PARSE_REFERENCE */ - -/* Define to 1 if you have the `ldap_parse_result' function. */ -/* #undef HAVE_LDAP_PARSE_RESULT */ - -/* Define to 1 if you have the `ldap_passwd' function. */ -/* #undef HAVE_LDAP_PASSWD */ - -/* Define to 1 if you have the `ldap_refresh_s' function. */ -/* #undef HAVE_LDAP_REFRESH_S */ - -/* LDAP SASL support */ -/* #undef HAVE_LDAP_SASL */ - -/* Define to 1 if you have the `ldap_start_tls_s' function. */ -/* #undef HAVE_LDAP_START_TLS_S */ - -/* Define to 1 if you have the `ldap_whoami_s' function. */ -/* #undef HAVE_LDAP_WHOAMI_S */ - -/* */ -/* #undef HAVE_LIBBIND */ - -/* */ -/* #undef HAVE_LIBCRYPT */ - -/* */ -#define HAVE_LIBDL 1 - -/* */ -/* #undef HAVE_LIBEDIT */ - -/* */ -/* #undef HAVE_LIBEXPAT */ - -/* */ -/* #undef HAVE_LIBFREETYPE */ - -/* */ -/* #undef HAVE_LIBGD */ - -/* */ -/* #undef HAVE_LIBICONV */ - -/* */ -/* #undef HAVE_LIBINTL */ - -/* */ -/* #undef HAVE_LIBJPEG */ - -/* Define to 1 if you have the `m' library (-lm). */ -#define HAVE_LIBM 1 - -/* Whether you have libmm */ -/* #undef HAVE_LIBMM */ - -/* */ -/* #undef HAVE_LIBNSL */ - -/* */ -/* #undef HAVE_LIBPAM */ - -/* */ -/* #undef HAVE_LIBPNG */ - -/* Define to 1 if you have the `pq' library (-lpq). */ -/* #undef HAVE_LIBPQ */ - -/* */ -/* #undef HAVE_LIBRARYMANAGER_H */ - -/* */ -#define HAVE_LIBREADLINE 1 - -/* */ -#define HAVE_LIBRESOLV 1 - -/* */ -/* #undef HAVE_LIBRT */ - -/* */ -/* #undef HAVE_LIBSOCKET */ - -/* */ -/* #undef HAVE_LIBSODIUMLIB */ - -/* */ -/* #undef HAVE_LIBWEBP */ - -/* */ -#define HAVE_LIBXML 1 - -/* Libzip >= 1.3.1 with zip_libzip_version function */ -#define HAVE_LIBZIP_VERSION 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_LOCALE_H 1 - -/* Define to 1 if you have the `localtime_r' function. */ -#define HAVE_LOCALTIME_R 1 - -/* Define to 1 if you have the `log1p' function. */ -#define HAVE_LOG1P 1 - -/* Define to 1 if the system has the type `long double'. */ -/* #undef HAVE_LONG_DOUBLE */ - -/* do we have SO_LISTENQxxx? */ -/* #undef HAVE_LQ_SO_LISTENQ */ - -/* do we have TCP_INFO? */ -/* #undef HAVE_LQ_TCP_INFO */ - -/* do we have mach_vm_read? */ -/* #undef HAVE_MACH_VM_READ */ - -/* Define to 1 if you have the `makedev' function. */ -/* #undef HAVE_MAKEDEV */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MALLOC_H */ - -/* Define to 1 if you have the `mblen' function. */ -#define HAVE_MBLEN 1 - -/* whether to have multibyte regex support */ -#define HAVE_MBREGEX 1 - -/* Define to 1 if you have the `mbrlen' function. */ -#define HAVE_MBRLEN 1 - -/* Define if your system has mbstate_t in wchar.h */ -#define HAVE_MBSTATE_T 1 - -/* whether to have multibyte string support */ -#define HAVE_MBSTRING 1 - -/* Define to 1 if you have the `memmem' function. */ -#define HAVE_MEMMEM 1 - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the `mkfifo' function. */ -#define HAVE_MKFIFO 1 - -/* Define to 1 if you have the `mknod' function. */ -#define HAVE_MKNOD 1 - -/* Define to 1 if you have the `mkstemp' function. */ -#define HAVE_MKSTEMP 1 - -/* Define to 1 if you have the `mmap' function. */ -#define HAVE_MMAP 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MONETARY_H 1 - -/* Define to 1 if you have the `mprotect' function. */ -#define HAVE_MPROTECT 1 - -/* Define to 1 if you have the `mremap' function. */ -/* #undef HAVE_MREMAP */ - -/* Whether you have MySQL */ -/* #undef HAVE_MYSQL */ - -/* */ -/* #undef HAVE_MYSQLILIB */ - -/* */ -#define HAVE_NANOSLEEP 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_NETDB_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_NETINET_IN_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_NETINET_TCP_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_NET_IF_H 1 - -/* Whether utf8_mime2text() has new signature */ -/* #undef HAVE_NEW_MIME2TEXT */ - -/* */ -/* #undef HAVE_NGETTEXT */ - -/* Define to 1 if you have the `nice' function. */ -#define HAVE_NICE 1 - -/* Define to 1 if you have the `nl_langinfo' function. */ -#define HAVE_NL_LANGINFO 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_NMMINTRIN_H 1 - -/* Defined to 1 if the PHP OCI8 extension for Oracle Database is configured */ -/* #undef HAVE_OCI8 */ - -/* Defined to 1 if PHP OCI8 DTrace support was enabled during configuration */ -/* #undef HAVE_OCI8_DTRACE */ - -/* */ -/* #undef HAVE_OCIENVCREATE */ - -/* */ -/* #undef HAVE_OCIENVNLSCREATE */ - -/* */ -/* #undef HAVE_OCISTMTFETCH2 */ - -/* Defined to 1 if OCI8 configuration located Oracle's Instant Client - libraries */ -/* #undef HAVE_OCI_INSTANT_CLIENT */ - -/* */ -/* #undef HAVE_ODBC2 */ - -/* */ -/* #undef HAVE_ODBCSDK_H */ - -/* */ -/* #undef HAVE_ODBC_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_OPENSSL_CRYPTO_H */ - -/* */ -#define HAVE_OPENSSL_EXT 1 - -/* */ -/* #undef HAVE_ORALDAP */ - -/* */ -/* #undef HAVE_PCRE */ - -/* */ -#define HAVE_PCRE_JIT_SUPPORT 1 - -/* */ -/* #undef HAVE_PCRE_VALGRIND_SUPPORT */ - -/* */ -/* #undef HAVE_PDO_DBLIB */ - -/* */ -/* #undef HAVE_PDO_FIREBIRD */ - -/* Whether to build PostgreSQL for PDO support or not */ -/* #undef HAVE_PDO_PGSQL */ - -/* Define to 1 if you have the pdo_sqlite extension enabled. */ -/* #undef HAVE_PDO_SQLITELIB */ - -/* Whether to build PostgreSQL support or not */ -/* #undef HAVE_PGSQL */ - -/* Whether libpq is compiled with --enable-multibyte */ -/* #undef HAVE_PGSQL_WITH_MULTIBYTE_SUPPORT */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PGTRANSACTIONSTATUS */ - -/* Whether to have pg_config.h */ -/* #undef HAVE_PG_CONFIG_H */ - -/* PostgreSQL 9.3 or later */ -/* #undef HAVE_PG_LO64 */ - -/* PostgreSQL 8.1 or later */ -/* #undef HAVE_PG_LO_CREATE */ - -/* PostgreSQL 8.4 or later */ -/* #undef HAVE_PG_LO_IMPORT_WITH_OID */ - -/* PostgreSQL 8.3 or later */ -/* #undef HAVE_PG_LO_TRUNCATE */ - -/* */ -#define HAVE_PHPDBG 1 - -/* */ -/* #undef HAVE_PHPDBG_READLINE */ - -/* */ -#define HAVE_PHP_SESSION 1 - -/* Define to 1 if you have the `poll' function. */ -#define HAVE_POLL 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_POLL_H 1 - -/* do we have port framework? */ -/* #undef HAVE_PORT */ - -/* whether to include POSIX-like functions */ -#define HAVE_POSIX 1 - -/* PostgreSQL 7.0.x or later */ -/* #undef HAVE_PQCLIENTENCODING */ - -/* Broken libpq under windows */ -/* #undef HAVE_PQCMDTUPLES */ - -/* PostgreSQL 7.2.0 or later */ -/* #undef HAVE_PQESCAPE */ - -/* PostgreSQL 9.0 or later */ -/* #undef HAVE_PQESCAPELITERAL */ - -/* PostgreSQL 8.1.4 or later */ -/* #undef HAVE_PQESCAPE_BYTEA_CONN */ - -/* PostgreSQL 8.1.4 or later */ -/* #undef HAVE_PQESCAPE_CONN */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQEXECPARAMS */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQEXECPREPARED */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQFREEMEM */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQFTABLE */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQGETCOPYDATA */ - -/* Older PostgreSQL */ -/* #undef HAVE_PQOIDVALUE */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQPARAMETERSTATUS */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQPREPARE */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQPROTOCOLVERSION */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQPUTCOPYDATA */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQRESULTERRORFIELD */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQSENDPREPARE */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQSENDQUERYPARAMS */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQSENDQUERYPREPARED */ - -/* PostgreSQL 7.4 or later */ -/* #undef HAVE_PQSETERRORVERBOSITY */ - -/* PostgreSQL 7.0.x or later */ -/* #undef HAVE_PQSETNONBLOCKING */ - -/* PostgreSQL 7.3.0 or later */ -/* #undef HAVE_PQUNESCAPEBYTEA */ - -/* do we have prctl? */ -/* #undef HAVE_PRCTL */ - -/* */ -#define HAVE_PREAD 1 - -/* */ -/* #undef HAVE_PSPELL */ - -/* Define to 1 if the PS_STRINGS thing exists. */ -/* #undef HAVE_PS_STRINGS */ - -/* do we have ptrace? */ -/* #undef HAVE_PTRACE */ - -/* Whether ptrdiff_t is available */ -#define HAVE_PTRDIFF_T 1 - -/* Define to 1 if you have the `ptsname' function. */ -#define HAVE_PTSNAME 1 - -/* Define to 1 if you have the `putenv' function. */ -#define HAVE_PUTENV 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_PWD_H 1 - -/* */ -#define HAVE_PWRITE 1 - -/* Define to 1 if you have the `RAND_egd' function. */ -/* #undef HAVE_RAND_EGD */ - -/* Define to 1 if you have the `rand_r' function. */ -#define HAVE_RAND_R 1 - -/* Define to 1 if you have the `realpath' function. */ -#define HAVE_REALPATH 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_RESOLV_H 1 - -/* */ -/* #undef HAVE_RES_NDESTROY */ - -/* */ -/* #undef HAVE_RES_NSEARCH */ - -/* */ -#define HAVE_RES_SEARCH 1 - -/* */ -/* #undef HAVE_RFC822_OUTPUT_ADDRESS_LIST */ - -/* */ -#define HAVE_RL_CALLBACK_READ_CHAR 1 - -/* */ -#define HAVE_RL_COMPLETION_MATCHES 1 - -/* */ -#define HAVE_RL_ON_NEW_LINE 1 - -/* */ -/* #undef HAVE_SAPDB */ - -/* Whether you have sockaddr_storage.ss_family */ -#define HAVE_SA_SS_FAMILY 1 - -/* Define to 1 if you have the `scandir' function. */ -#define HAVE_SCANDIR 1 - -/* do we have select? */ -/* #undef HAVE_SELECT */ - -/* */ -#define HAVE_SEMUN 1 - -/* Define to 1 if you have the `setegid' function. */ -#define HAVE_SETEGID 1 - -/* Define to 1 if you have the `setenv' function. */ -#define HAVE_SETENV 1 - -/* Define to 1 if you have the `seteuid' function. */ -#define HAVE_SETEUID 1 - -/* Define to 1 if you have the `setitimer' function. */ -#define HAVE_SETITIMER 1 - -/* Define to 1 if you have the `setpriority' function. */ -#define HAVE_SETPRIORITY 1 - -/* Define to 1 if you have the `setproctitle' function. */ -/* #undef HAVE_SETPROCTITLE */ - -/* Define to 1 if you have the `setproctitle_fast' function. */ -/* #undef HAVE_SETPROCTITLE_FAST */ - -/* Define to 1 if you have the `setrlimit' function. */ -#define HAVE_SETRLIMIT 1 - -/* Define to 1 if you have the `setsid' function. */ -#define HAVE_SETSID 1 - -/* */ -#define HAVE_SHMOP 1 - -/* Define if you have SysV IPC SHM support */ -#define HAVE_SHM_IPC 1 - -/* Define if you have mmap(MAP_ANON) SHM support */ -#define HAVE_SHM_MMAP_ANON 1 - -/* Define if you have POSIX mmap() SHM support */ -#define HAVE_SHM_MMAP_POSIX 1 - -/* */ -/* #undef HAVE_SHM_OPEN */ - -/* Define to 1 if you have the `shutdown' function. */ -#define HAVE_SHUTDOWN 1 - -/* */ -/* #undef HAVE_SHUTDOWN_SNMP_LOGGING */ - -/* Define to 1 if you have the `sigaction' function. */ -#define HAVE_SIGACTION 1 - -/* Define to 1 if you have the `sigprocmask' function. */ -#define HAVE_SIGPROCMASK 1 - -/* Define to 1 if you have the `sigsetjmp' function. */ -#define HAVE_SIGSETJMP 1 - -/* Define to 1 if you have the `sigtimedwait' function. */ -/* #undef HAVE_SIGTIMEDWAIT */ - -/* Define to 1 if you have the `sigwaitinfo' function. */ -/* #undef HAVE_SIGWAITINFO */ - -/* */ -#define HAVE_SIMPLEXML 1 - -/* Define is hash3 algo is available */ -/* #undef HAVE_SLOW_HASH3 */ - -/* */ -/* #undef HAVE_SNMP */ - -/* */ -/* #undef HAVE_SOAP */ - -/* Whether struct sockaddr has field sa_len */ -#define HAVE_SOCKADDR_SA_LEN 1 - -/* Whether you have struct sockaddr_storage */ -#define HAVE_SOCKADDR_STORAGE 1 - -/* Define if sockaddr_un in sys/un.h contains a sun_len component */ -#define HAVE_SOCKADDR_UN_SUN_LEN 1 - -/* */ -#define HAVE_SOCKET 1 - -/* */ -#define HAVE_SOCKETPAIR 1 - -/* */ -#define HAVE_SOCKETS 1 - -/* Define to 1 if the system has the type `socklen_t'. */ -#define HAVE_SOCKLEN_T 1 - -/* */ -/* #undef HAVE_SOLID */ - -/* */ -/* #undef HAVE_SOLID_30 */ - -/* */ -/* #undef HAVE_SOLID_35 */ - -/* */ -/* #undef HAVE_SQLCLI1_H */ - -/* */ -/* #undef HAVE_SQLDATASOURCES */ - -/* */ -/* #undef HAVE_SQLEXT_H */ - -/* Define to 1 if you have the sqlite3 extension enabled. */ -/* #undef HAVE_SQLITE3 */ - -/* have sqlite3_close_v2 */ -/* #undef HAVE_SQLITE3_CLOSE_V2 */ - -/* have sqlite3_column_table_name */ -/* #undef HAVE_SQLITE3_COLUMN_TABLE_NAME */ - -/* have sqlite3_errstr function */ -/* #undef HAVE_SQLITE3_ERRSTR */ - -/* have sqlite3_expanded_sql function */ -/* #undef HAVE_SQLITE3_EXPANDED_SQL */ - -/* */ -/* #undef HAVE_SQLTYPES_H */ - -/* */ -/* #undef HAVE_SQLUCODE_H */ - -/* */ -/* #undef HAVE_SQLUNIX_H */ - -/* */ -/* #undef HAVE_SQL_H */ - -/* Whether ssize_t is available */ -#define HAVE_SSIZE_T 1 - -/* Define to 1 if you have the `statfs' function. */ -#define HAVE_STATFS 1 - -/* Define to 1 if you have the `statvfs' function. */ -#define HAVE_STATVFS 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `std_syslog' function. */ -/* #undef HAVE_STD_SYSLOG */ - -/* */ -/* #undef HAVE_STMT_NEXT_RESULT */ - -/* Define to 1 if you have the `strcasecmp' function. */ -#define HAVE_STRCASECMP 1 - -/* Define to 1 if you have the `strfmon' function. */ -#define HAVE_STRFMON 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the `strlcat' function. */ -#define HAVE_STRLCAT 1 - -/* Define to 1 if you have the `strlcpy' function. */ -#define HAVE_STRLCPY 1 - -/* Define to 1 if you have the `strndup' function. */ -#define HAVE_STRNDUP 1 - -/* Define to 1 if you have the `strnlen' function. */ -#define HAVE_STRNLEN 1 - -/* Define to 1 if you have the `strptime' function. */ -#define HAVE_STRPTIME 1 - -/* whether strptime() declaration fails */ -#define HAVE_STRPTIME_DECL_FAILS 1 - -/* Define to 1 if you have the `strtok_r' function. */ -#define HAVE_STRTOK_R 1 - -/* Define to 1 if you have the `strtoll' function. */ -#define HAVE_STRTOLL 1 - -/* whether you have struct flock */ -#define HAVE_STRUCT_FLOCK 1 - -/* Define to 1 if `st_blksize' is a member of `struct stat'. */ -#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 - -/* Define to 1 if `st_blocks' is a member of `struct stat'. */ -#define HAVE_STRUCT_STAT_ST_BLOCKS 1 - -/* Define to 1 if `st_rdev' is a member of `struct stat'. */ -#define HAVE_STRUCT_STAT_ST_RDEV 1 - -/* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */ -#define HAVE_STRUCT_TM_TM_GMTOFF 1 - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -#define HAVE_STRUCT_TM_TM_ZONE 1 - -/* Define to 1 if your `struct stat' has `st_blocks'. Deprecated, use - `HAVE_STRUCT_STAT_ST_BLOCKS' instead. */ -#define HAVE_ST_BLOCKS 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_ST_H */ - -/* Define to 1 if you have the `symlink' function. */ -#define HAVE_SYMLINK 1 - -/* Define if you have the __sync_fetch_and_add function */ -#define HAVE_SYNC_FETCH_AND_ADD 1 - -/* do we have sysconf? */ -/* #undef HAVE_SYSCONF */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYSEXITS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYSLOG_H 1 - -/* FPM use systemd integration */ -/* #undef HAVE_SYSTEMD */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYSTEMD_SD_DAEMON_H */ - -/* */ -#define HAVE_SYSVMSG 1 - -/* */ -#define HAVE_SYSVSEM 1 - -/* */ -#define HAVE_SYSVSHM 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_ACL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_AUXV_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_FILE_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_IOCTL_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_IPC_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_LOADAVG_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_MKDEV_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_MMAN_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_MOUNT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_PARAM_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_POLL_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_PSTAT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_RESOURCE_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_SDT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SELECT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SOCKET_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SOCKIO_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_STATFS_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STATVFS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_SYSEXITS_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_SYSMACROS_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_UIO_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_UN_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_UTSNAME_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_VFS_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_WAIT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_TERMIOS_H 1 - -/* */ -/* #undef HAVE_TIDY */ - -/* defined if tidybuffio.h exists */ -/* #undef HAVE_TIDYBUFFIO_H */ - -/* */ -/* #undef HAVE_TIDYOPTGETDOC */ - -/* defined if tidyp.h exists */ -/* #undef HAVE_TIDYP_H */ - -/* */ -/* #undef HAVE_TIDYRELEASEDATE */ - -/* defined if tidy.h exists */ -/* #undef HAVE_TIDY_H */ - -/* Have timelib_config.h */ -#define HAVE_TIMELIB_CONFIG_H 1 - -/* do we have times? */ -/* #undef HAVE_TIMES */ - -/* Define to 1 if you have the header file. */ -#define HAVE_TMMINTRIN_H 1 - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#define HAVE_TM_ZONE 1 - -/* Whether you have a working ttyname_r */ -#define HAVE_TTYNAME_R 1 - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -/* #undef HAVE_TZNAME */ - -/* Define to 1 if you have the `tzset' function. */ -#define HAVE_TZSET 1 - -/* */ -/* #undef HAVE_UDBCEXT_H */ - -/* Define to 1 if the system has the type `uint16'. */ -/* #undef HAVE_UINT16 */ - -/* Define to 1 if the system has the type `uint16_t'. */ -#define HAVE_UINT16_T 1 - -/* Define to 1 if the system has the type `uint32'. */ -/* #undef HAVE_UINT32 */ - -/* Define to 1 if the system has the type `uint32_t'. */ -#define HAVE_UINT32_T 1 - -/* Define to 1 if the system has the type `uint64'. */ -/* #undef HAVE_UINT64 */ - -/* Define to 1 if the system has the type `uint64_t'. */ -#define HAVE_UINT64_T 1 - -/* Define to 1 if the system has the type `uint8'. */ -/* #undef HAVE_UINT8 */ - -/* Define to 1 if the system has the type `uint8_t'. */ -#define HAVE_UINT8_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* */ -/* #undef HAVE_UNIXODBC */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_UNIX_H */ - -/* Define to 1 if you have the `unlockpt' function. */ -#define HAVE_UNLOCKPT 1 - -/* Define to 1 if you have the `unsetenv' function. */ -#define HAVE_UNSETENV 1 - -/* Define to 1 if you have the `unshare' function. */ -/* #undef HAVE_UNSHARE */ - -/* */ -/* #undef HAVE_UODBC */ - -/* Define to 1 if you have the `usleep' function. */ -#define HAVE_USLEEP 1 - -/* Define to 1 if you have the `utime' function. */ -#define HAVE_UTIME 1 - -/* Define to 1 if you have the `utimes' function. */ -#define HAVE_UTIMES 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UTIME_H 1 - -/* Whether struct utsname has domainname */ -/* #undef HAVE_UTSNAME_DOMAINNAME */ - -/* Define to 1 if the system has the type `u_int16_t'. */ -#define HAVE_U_INT16_T 1 - -/* Define to 1 if the system has the type `u_int32_t'. */ -#define HAVE_U_INT32_T 1 - -/* Define to 1 if the system has the type `u_int64_t'. */ -#define HAVE_U_INT64_T 1 - -/* Define to 1 if the system has the type `u_int8_t'. */ -#define HAVE_U_INT8_T 1 - -/* */ -/* #undef HAVE_VALGRIND */ - -/* Define to 1 if you have the `vasprintf' function. */ -#define HAVE_VASPRINTF 1 - -/* Define to 1 if you have the `wait3' function. */ -#define HAVE_WAIT3 1 - -/* Define to 1 if you have the `wait4' function. */ -#define HAVE_WAIT4 1 - -/* Define to 1 if you have the `waitpid' function. */ -#define HAVE_WAITPID 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_WCHAR_H 1 - -/* */ -#define HAVE_XML 1 - -/* */ -#define HAVE_XMLREADER 1 - -/* */ -/* #undef HAVE_XMLRPC */ - -/* */ -/* #undef HAVE_XMLRPC_BUNDLED */ - -/* */ -#define HAVE_XMLWRITER 1 - -/* */ -/* #undef HAVE_XPM */ - -/* */ -#define HAVE_XSL 1 - -/* */ -#define HAVE_XSL_EXSLT 1 - -/* */ -#define HAVE_ZIP 1 - -/* */ -/* #undef HAVE_ZLIB */ - -/* whether _controlfp is present usable */ -/* #undef HAVE__CONTROLFP */ - -/* whether _controlfp_s is present and usable */ -/* #undef HAVE__CONTROLFP_S */ - -/* whether _FPU_SETCW is present and usable */ -/* #undef HAVE__FPU_SETCW */ - -/* iconv() is aliased to libiconv() in -liconv */ -/* #undef ICONV_ALIASED_LIBICONV */ - -/* Whether iconv supports IGNORE */ -/* #undef ICONV_BROKEN_IGNORE */ - -/* Whether iconv supports error no or not */ -/* #undef ICONV_SUPPORTS_ERRNO */ - -/* */ -/* #undef JISX0208 */ - -/* */ -/* #undef LMDB_INCLUDE_FILE */ - -/* Whether asctime_r is declared */ -/* #undef MISSING_ASCTIME_R_DECL */ - -/* Whether ctime_r is declared */ -/* #undef MISSING_CTIME_R_DECL */ - -/* */ -#define MISSING_FCLOSE_DECL 0 - -/* Whether gmtime_r is declared */ -/* #undef MISSING_GMTIME_R_DECL */ - -/* Whether localtime_r is declared */ -/* #undef MISSING_LOCALTIME_R_DECL */ - -/* Whether strtok_r is declared */ -/* #undef MISSING_STRTOK_R_DECL */ - -/* Whether mysqlnd is enabled */ -#define MYSQLI_USE_MYSQLND 1 - -/* Enable compressed protocol support */ -#define MYSQLND_COMPRESSION_WANTED 1 - -/* Enable mysqlnd code that uses OpenSSL directly */ -/* #undef MYSQLND_HAVE_SSL */ - -/* Enable core mysqlnd SSL code */ -#define MYSQLND_SSL_SUPPORTED 1 - -/* */ -/* #undef NDBM_INCLUDE_FILE */ - -/* The highest supported ODBC version */ -#define ODBCVER 0x0300 - -/* Define to the address where bug reports for this package should be sent. */ -/* #undef PACKAGE_BUGREPORT */ - -/* Define to the full name of this package. */ -/* #undef PACKAGE_NAME */ - -/* Define to the full name and version of this package. */ -/* #undef PACKAGE_STRING */ - -/* Define to the one symbol short name of this package. */ -/* #undef PACKAGE_TARNAME */ - -/* Define to the home page for this package. */ -/* #undef PACKAGE_URL */ - -/* Define to the version of this package. */ -/* #undef PACKAGE_VERSION */ - -/* */ -#define PCRE2_CODE_UNIT_WIDTH 8 - -/* */ -/* #undef PDO_MYSQL_UNIX_ADDR */ - -/* Whether pdo_mysql uses mysqlnd */ -/* #undef PDO_USE_MYSQLND */ - -/* */ -/* #undef PHAR_HAVE_OPENSSL */ - -/* */ -#define PHPDBG_DEBUG 0 - -/* PHP build date */ -#define PHP_BUILD_DATE "2024-03-14" - -/* Define if your system has fork/vfork/CreateProcess */ -#define PHP_CAN_SUPPORT_PROC_OPEN 1 - -/* fpm group name */ -/* #undef PHP_FPM_GROUP */ - -/* fpm systemd service type */ -/* #undef PHP_FPM_SYSTEMD */ - -/* fpm user name */ -/* #undef PHP_FPM_USER */ - -/* Whether the compiler supports avx2 instructions */ -#define PHP_HAVE_AVX2_INSTRUCTIONS 0 - -/* Whether the compiler supports avx instructions */ -#define PHP_HAVE_AVX_INSTRUCTIONS 1 - -/* Whether the compiler supports __builtin_clz */ -#define PHP_HAVE_BUILTIN_CLZ 1 - -/* Whether the compiler supports __builtin_cpu_init */ -#define PHP_HAVE_BUILTIN_CPU_INIT 0 - -/* Whether the compiler supports __builtin_cpu_supports */ -#define PHP_HAVE_BUILTIN_CPU_SUPPORTS 1 - -/* Whether the compiler supports __builtin_ctzl */ -#define PHP_HAVE_BUILTIN_CTZL 1 - -/* Whether the compiler supports __builtin_ctzll */ -#define PHP_HAVE_BUILTIN_CTZLL 1 - -/* Whether the compiler supports __builtin_expect */ -#define PHP_HAVE_BUILTIN_EXPECT 1 - -/* Whether the compiler supports __builtin_saddll_overflow */ -#define PHP_HAVE_BUILTIN_SADDLL_OVERFLOW 1 - -/* Whether the compiler supports __builtin_saddl_overflow */ -#define PHP_HAVE_BUILTIN_SADDL_OVERFLOW 1 - -/* Whether the compiler supports __builtin_smulll_overflow */ -#define PHP_HAVE_BUILTIN_SMULLL_OVERFLOW 1 - -/* Whether the compiler supports __builtin_smull_overflow */ -#define PHP_HAVE_BUILTIN_SMULL_OVERFLOW 1 - -/* Whether the compiler supports __builtin_ssubll_overflow */ -#define PHP_HAVE_BUILTIN_SSUBLL_OVERFLOW 1 - -/* Whether the compiler supports __builtin_ssubl_overflow */ -#define PHP_HAVE_BUILTIN_SSUBL_OVERFLOW 1 - -/* Whether the compiler supports sse4.2 instructions */ -#define PHP_HAVE_SSE4_2_INSTRUCTIONS 1 - -/* Whether the compiler supports ssse3 instructions */ -#define PHP_HAVE_SSSE3_INSTRUCTIONS 1 - -/* Whether you have HP-UX 10.x */ -/* #undef PHP_HPUX_TIME_R */ - -/* Path to iconv.h */ -/* #undef PHP_ICONV_H_PATH */ - -/* Which iconv implementation to use */ -/* #undef PHP_ICONV_IMPL */ - -/* Whether you have IRIX-style functions */ -/* #undef PHP_IRIX_TIME_R */ - -/* */ -#define PHP_MHASH_BC 1 - -/* */ -/* #undef PHP_MYSQL_UNIX_SOCK_ADDR */ - -/* */ -/* #undef PHP_OCI8_DEF_DIR */ - -/* */ -/* #undef PHP_OCI8_DEF_SHARED_LIBADD */ - -/* define to 1 if oniguruma has an invalid entry for KOI8 encoding */ -#define PHP_ONIG_BAD_KOI8_ENTRY 1 - -/* uname output */ -#define PHP_OS "Darwin" - -/* */ -/* #undef PHP_PDO_OCI_CLIENT_VERSION */ - -/* whether pread64 is default */ -/* #undef PHP_PREAD_64 */ - -/* whether pwrite64 is default */ -/* #undef PHP_PWRITE_64 */ - -/* */ -#define PHP_SIGCHILD 0 - -/* uname -a output */ -#define PHP_UNAME "Darwin Norths-iMac-Pro 22.6.0 Darwin Kernel Version 22.6.0: Mon Feb 19 19:48:53 PST 2024; root:xnu-8796.141.3.704.6~1/RELEASE_X86_64 x86_64" - -/* Whether PHP has to use its own crypt_r for blowfish, des and ext des */ -#define PHP_USE_PHP_CRYPT_R 1 - -/* Use dlopen with RTLD_NOW instead of RTLD_LAZY */ -/* #undef PHP_USE_RTLD_NOW */ - -/* whether write(2) works */ -#define PHP_WRITE_STDOUT 1 - -/* /proc/pid/mem interface */ -/* #undef PROC_MEM_FILE */ - -/* Whether to use Pthreads */ -/* #undef PTHREADS */ - -/* */ -/* #undef QDBM_INCLUDE_FILE */ - -/* The size of `int', as computed by sizeof. */ -#define SIZEOF_INT 4 - -/* Size of intmax_t */ -#define SIZEOF_INTMAX_T 8 - -/* The size of `long', as computed by sizeof. */ -#define SIZEOF_LONG 8 - -/* The size of `long long', as computed by sizeof. */ -#define SIZEOF_LONG_LONG 8 - -/* The size of `off_t', as computed by sizeof. */ -#define SIZEOF_OFF_T 8 - -/* Size of ptrdiff_t */ -#define SIZEOF_PTRDIFF_T 8 - -/* The size of `short', as computed by sizeof. */ -#define SIZEOF_SHORT 2 - -/* The size of `size_t', as computed by sizeof. */ -#define SIZEOF_SIZE_T 8 - -/* Size of ssize_t */ -#define SIZEOF_SSIZE_T 8 - -/* have sqlite3 with extension support */ -/* #undef SQLITE_OMIT_LOAD_EXTENSION */ - -/* Needed in sqlunix.h for wchar defs */ -/* #undef SS_FBX */ - -/* Needed in sqlunix.h */ -/* #undef SS_LINUX */ - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -/* #undef STACK_DIRECTION */ - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* */ -/* #undef TCADB_INCLUDE_FILE */ - -/* Define to 1 if your declares `struct tm'. */ -/* #undef TM_IN_SYS_TIME */ - -/* */ -/* #undef TSRM_ST */ - -/* */ -/* #undef USE_GD_JISX0208 */ - -/* Define if cross-process locking is required by accept() */ -/* #undef USE_LOCKING */ - -/* Use system default cipher list instead of hardcoded value */ -/* #undef USE_OPENSSL_SYSTEM_CIPHERS */ - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# define _ALL_SOURCE 1 -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# define _POSIX_PTHREAD_SEMANTICS 1 -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# define _TANDEM_SOURCE 1 -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 -#endif - - -/* Define if processor uses big-endian word */ -/* #undef WORDS_BIGENDIAN */ - -/* */ -#define ZEND_DEBUG 0 - -/* Define if double cast to long preserves least significant bits */ -/* #undef ZEND_DVAL_TO_LVAL_CAST_OK */ - -/* */ -#define ZEND_MM_ALIGNMENT 8 - -/* */ -#define ZEND_MM_ALIGNMENT_LOG2 3 - -/* Use zend signal handling */ -#define ZEND_SIGNALS 1 - -/* */ -/* #undef ZTS */ - -/* Define to 1 if on MINIX. */ -/* #undef _MINIX */ - -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -/* #undef _POSIX_1_SOURCE */ - -/* Define to 1 if you need to in order for `stat' and other things to work. */ -/* #undef _POSIX_SOURCE */ - -/* Define to `int' if doesn't define. */ -/* #undef gid_t */ - -/* */ -/* #undef in_addr_t */ - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -/* #undef inline */ -#endif - -/* Define to `unsigned int' if does not define. */ -/* #undef size_t */ - -/* Define to `int' if doesn't define. */ -/* #undef uid_t */ - - -#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS - -#include - -#ifdef HAVE_SYS_TYPES_H -# include -#endif - -#ifdef HAVE_SYS_SELECT_H -#include -#endif - -#ifdef HAVE_IEEEFP_H -# include -#endif - -#include - -#if defined(__cplusplus) && __cplusplus >= 201103L -extern "C++" { -#include -#define zend_isnan std::isnan -#define zend_isinf std::isinf -#define zend_finite std::isfinite -} -#else -#include - -#ifndef zend_isnan -#if HAVE_DECL_ISNAN -#define zend_isnan(a) isnan(a) -#elif defined(HAVE_FPCLASS) -#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN)) -#else -#define zend_isnan(a) ((a) != (a)) -#endif -#endif - -#if HAVE_DECL_ISINF -#define zend_isinf(a) isinf(a) -#elif defined(INFINITY) -/* Might not work, but is required by ISO C99 */ -#define zend_isinf(a) (((a)==INFINITY || (a)==-INFINITY)?1:0) -#elif defined(HAVE_FPCLASS) -#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF)) -#else -#define zend_isinf(a) 0 -#endif - -#if HAVE_DECL_ISFINITE -#define zend_finite(a) isfinite(a) -#elif defined(HAVE_FINITE) -#define zend_finite(a) finite(a) -#elif defined(fpclassify) -#define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0) -#else -#define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1) -#endif - -#endif -#endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */ - -#endif /* PHP_CONFIG_H */ - diff --git a/include/php/main/php_content_types.h b/include/php/main/php_content_types.h deleted file mode 100644 index 145e8d4..0000000 --- a/include/php/main/php_content_types.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_CONTENT_TYPES_H -#define PHP_CONTENT_TYPES_H - -#define DEFAULT_POST_CONTENT_TYPE "application/x-www-form-urlencoded" - -SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader); -SAPI_API SAPI_POST_HANDLER_FUNC(php_std_post_handler); -int php_startup_sapi_content_types(void); -int php_setup_sapi_content_types(void); - -#endif /* PHP_CONTENT_TYPES_H */ diff --git a/include/php/main/php_getopt.h b/include/php/main/php_getopt.h deleted file mode 100644 index c368aa7..0000000 --- a/include/php/main/php_getopt.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Marcus Boerger | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_GETOPT_H -#define PHP_GETOPT_H - -#include "php.h" - -/* Define structure for one recognized option (both single char and long name). - * If short_open is '-' this is the last option. */ -typedef struct _opt_struct { - char opt_char; - int need_param; - char * opt_name; -} opt_struct; - -BEGIN_EXTERN_C() -/* holds the index of the latest fetched element from the opts array */ -extern PHPAPI int php_optidx; -PHPAPI int php_getopt(int argc, char* const *argv, const opt_struct opts[], char **optarg, int *optind, int show_err, int arg_start); -END_EXTERN_C() - -/* php_getopt will return this value if there is an error in arguments */ -#define PHP_GETOPT_INVALID_ARG (-2) - -#endif diff --git a/include/php/main/php_globals.h b/include/php/main/php_globals.h deleted file mode 100644 index 6b31d9e..0000000 --- a/include/php/main/php_globals.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_GLOBALS_H -#define PHP_GLOBALS_H - -#include "zend_globals.h" - -typedef struct _php_core_globals php_core_globals; - -#ifdef ZTS -# define PG(v) ZEND_TSRMG_FAST(core_globals_offset, php_core_globals *, v) -extern PHPAPI int core_globals_id; -extern PHPAPI size_t core_globals_offset; -#else -# define PG(v) (core_globals.v) -extern ZEND_API struct _php_core_globals core_globals; -#endif - -/* Error display modes */ -#define PHP_DISPLAY_ERRORS_STDOUT 1 -#define PHP_DISPLAY_ERRORS_STDERR 2 - -/* Track vars */ -#define TRACK_VARS_POST 0 -#define TRACK_VARS_GET 1 -#define TRACK_VARS_COOKIE 2 -#define TRACK_VARS_SERVER 3 -#define TRACK_VARS_ENV 4 -#define TRACK_VARS_FILES 5 -#define TRACK_VARS_REQUEST 6 - -struct _php_tick_function_entry; - -typedef struct _arg_separators { - char *output; - char *input; -} arg_separators; - -struct _php_core_globals { - zend_bool implicit_flush; - - zend_long output_buffering; - - zend_bool enable_dl; - - char *output_handler; - - char *unserialize_callback_func; - zend_long serialize_precision; - - zend_long memory_limit; - zend_long max_input_time; - - zend_bool track_errors; - zend_bool display_errors; - zend_bool display_startup_errors; - zend_bool log_errors; - zend_long log_errors_max_len; - zend_bool ignore_repeated_errors; - zend_bool ignore_repeated_source; - zend_bool report_memleaks; - char *error_log; - - char *doc_root; - char *user_dir; - char *include_path; - char *open_basedir; - char *extension_dir; - char *php_binary; - char *sys_temp_dir; - - char *upload_tmp_dir; - zend_long upload_max_filesize; - - char *error_append_string; - char *error_prepend_string; - - char *auto_prepend_file; - char *auto_append_file; - - char *input_encoding; - char *internal_encoding; - char *output_encoding; - - arg_separators arg_separator; - - char *variables_order; - - HashTable rfc1867_protected_variables; - - short connection_status; - zend_bool ignore_user_abort; - - unsigned char header_is_being_sent; - - zend_llist tick_functions; - - zval http_globals[6]; - - zend_bool expose_php; - - zend_bool register_argc_argv; - zend_bool auto_globals_jit; - - char *docref_root; - char *docref_ext; - - zend_bool html_errors; - zend_bool xmlrpc_errors; - - zend_long xmlrpc_error_number; - - zend_bool activated_auto_globals[8]; - - zend_bool modules_activated; - zend_bool file_uploads; - zend_bool during_request_startup; - zend_bool allow_url_fopen; - zend_bool enable_post_data_reading; - zend_bool report_zend_debug; - - int last_error_type; - char *last_error_message; - char *last_error_file; - int last_error_lineno; - - char *php_sys_temp_dir; - - char *disable_functions; - char *disable_classes; - zend_bool allow_url_include; -#ifdef PHP_WIN32 - zend_bool com_initialized; -#endif - zend_long max_input_nesting_level; - zend_long max_input_vars; - zend_bool in_user_include; - - char *user_ini_filename; - zend_long user_ini_cache_ttl; - - char *request_order; - - zend_bool mail_x_header; - char *mail_log; - - zend_bool in_error_log; - -#ifdef PHP_WIN32 - zend_bool windows_show_crt_warning; -#endif - - zend_long syslog_facility; - char *syslog_ident; - zend_bool have_called_openlog; - zend_long syslog_filter; -}; - - -#endif /* PHP_GLOBALS_H */ diff --git a/include/php/main/php_ini.h b/include/php/main/php_ini.h deleted file mode 100644 index a4fad6c..0000000 --- a/include/php/main/php_ini.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_INI_H -#define PHP_INI_H - -#include "zend_ini.h" - -BEGIN_EXTERN_C() -PHPAPI void config_zval_dtor(zval *zvalue); -int php_init_config(void); -int php_shutdown_config(void); -void php_ini_register_extensions(void); -PHPAPI zval *cfg_get_entry_ex(zend_string *name); -PHPAPI zval *cfg_get_entry(const char *name, size_t name_length); -PHPAPI int cfg_get_long(const char *varname, zend_long *result); -PHPAPI int cfg_get_double(const char *varname, double *result); -PHPAPI int cfg_get_string(const char *varname, char **result); -PHPAPI int php_parse_user_ini_file(const char *dirname, char *ini_filename, HashTable *target_hash); -PHPAPI void php_ini_activate_config(HashTable *source_hash, int modify_type, int stage); -PHPAPI int php_ini_has_per_dir_config(void); -PHPAPI int php_ini_has_per_host_config(void); -PHPAPI void php_ini_activate_per_dir_config(char *path, size_t path_len); -PHPAPI void php_ini_activate_per_host_config(const char *host, size_t host_len); -PHPAPI HashTable* php_ini_get_configuration_hash(void); -END_EXTERN_C() - -#define PHP_INI_USER ZEND_INI_USER -#define PHP_INI_PERDIR ZEND_INI_PERDIR -#define PHP_INI_SYSTEM ZEND_INI_SYSTEM - -#define PHP_INI_ALL ZEND_INI_ALL - -#define php_ini_entry zend_ini_entry - -#define PHP_INI_MH ZEND_INI_MH -#define PHP_INI_DISP ZEND_INI_DISP - -#define PHP_INI_BEGIN ZEND_INI_BEGIN -#define PHP_INI_END ZEND_INI_END - -#define PHP_INI_ENTRY3_EX ZEND_INI_ENTRY3_EX -#define PHP_INI_ENTRY3 ZEND_INI_ENTRY3 -#define PHP_INI_ENTRY2_EX ZEND_INI_ENTRY2_EX -#define PHP_INI_ENTRY2 ZEND_INI_ENTRY2 -#define PHP_INI_ENTRY1_EX ZEND_INI_ENTRY1_EX -#define PHP_INI_ENTRY1 ZEND_INI_ENTRY1 -#define PHP_INI_ENTRY_EX ZEND_INI_ENTRY_EX -#define PHP_INI_ENTRY ZEND_INI_ENTRY - -#define STD_PHP_INI_ENTRY STD_ZEND_INI_ENTRY -#define STD_PHP_INI_ENTRY_EX STD_ZEND_INI_ENTRY_EX -#define STD_PHP_INI_BOOLEAN STD_ZEND_INI_BOOLEAN - -#define PHP_INI_DISPLAY_ORIG ZEND_INI_DISPLAY_ORIG -#define PHP_INI_DISPLAY_ACTIVE ZEND_INI_DISPLAY_ACTIVE - -#define PHP_INI_STAGE_STARTUP ZEND_INI_STAGE_STARTUP -#define PHP_INI_STAGE_SHUTDOWN ZEND_INI_STAGE_SHUTDOWN -#define PHP_INI_STAGE_ACTIVATE ZEND_INI_STAGE_ACTIVATE -#define PHP_INI_STAGE_DEACTIVATE ZEND_INI_STAGE_DEACTIVATE -#define PHP_INI_STAGE_RUNTIME ZEND_INI_STAGE_RUNTIME -#define PHP_INI_STAGE_HTACCESS ZEND_INI_STAGE_HTACCESS - -#define php_ini_boolean_displayer_cb zend_ini_boolean_displayer_cb -#define php_ini_color_displayer_cb zend_ini_color_displayer_cb - -#define php_alter_ini_entry zend_alter_ini_entry - -#define php_ini_long zend_ini_long -#define php_ini_double zend_ini_double -#define php_ini_string zend_ini_string - -#endif /* PHP_INI_H */ diff --git a/include/php/main/php_main.h b/include/php/main/php_main.h deleted file mode 100644 index 44eeb97..0000000 --- a/include/php/main/php_main.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_MAIN_H -#define PHP_MAIN_H - -#include "zend_globals.h" -#include "php_globals.h" -#include "SAPI.h" - -BEGIN_EXTERN_C() -PHPAPI int php_request_startup(void); -PHPAPI void php_request_shutdown(void *dummy); -PHPAPI int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_modules, uint32_t num_additional_modules); -PHPAPI void php_module_shutdown(void); -PHPAPI int php_module_shutdown_wrapper(sapi_module_struct *sapi_globals); - -PHPAPI int php_register_extensions(zend_module_entry * const * ptr, int count); - -PHPAPI int php_execute_script(zend_file_handle *primary_file); -PHPAPI int php_execute_simple_script(zend_file_handle *primary_file, zval *ret); -PHPAPI int php_handle_special_queries(void); -PHPAPI int php_lint_script(zend_file_handle *file); - -PHPAPI void php_handle_aborted_connection(void); -PHPAPI int php_handle_auth_data(const char *auth); - -PHPAPI void php_html_puts(const char *str, size_t siz); -PHPAPI int php_stream_open_for_zend_ex(const char *filename, zend_file_handle *handle, int mode); - -/* environment module */ -extern int php_init_environ(void); -extern int php_shutdown_environ(void); - -#ifdef ZTS -PHPAPI void php_reserve_tsrm_memory(void); -PHPAPI int php_tsrm_startup(void); -#endif - -END_EXTERN_C() - -#endif diff --git a/include/php/main/php_memory_streams.h b/include/php/main/php_memory_streams.h deleted file mode 100644 index 7db25dd..0000000 --- a/include/php/main/php_memory_streams.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_MEMORY_STREAM_H -#define PHP_MEMORY_STREAM_H - -#include "php_streams.h" - -#define PHP_STREAM_MAX_MEM 2 * 1024 * 1024 - -#define TEMP_STREAM_DEFAULT 0x0 -#define TEMP_STREAM_READONLY 0x1 -#define TEMP_STREAM_TAKE_BUFFER 0x2 -#define TEMP_STREAM_APPEND 0x4 - -#define php_stream_memory_create(mode) _php_stream_memory_create((mode) STREAMS_CC) -#define php_stream_memory_create_rel(mode) _php_stream_memory_create((mode) STREAMS_REL_CC) -#define php_stream_memory_open(mode, buf, length) _php_stream_memory_open((mode), (buf), (length) STREAMS_CC) -#define php_stream_memory_get_buffer(stream, length) _php_stream_memory_get_buffer((stream), (length) STREAMS_CC) - -#define php_stream_temp_new() php_stream_temp_create(TEMP_STREAM_DEFAULT, PHP_STREAM_MAX_MEM) -#define php_stream_temp_create(mode, max_memory_usage) _php_stream_temp_create((mode), (max_memory_usage) STREAMS_CC) -#define php_stream_temp_create_ex(mode, max_memory_usage, tmpdir) _php_stream_temp_create_ex((mode), (max_memory_usage), (tmpdir) STREAMS_CC) -#define php_stream_temp_create_rel(mode, max_memory_usage) _php_stream_temp_create((mode), (max_memory_usage) STREAMS_REL_CC) -#define php_stream_temp_open(mode, max_memory_usage, buf, length) _php_stream_temp_open((mode), (max_memory_usage), (buf), (length) STREAMS_CC) - -BEGIN_EXTERN_C() - -PHPAPI php_stream *_php_stream_memory_create(int mode STREAMS_DC); -PHPAPI php_stream *_php_stream_memory_open(int mode, char *buf, size_t length STREAMS_DC); -PHPAPI char *_php_stream_memory_get_buffer(php_stream *stream, size_t *length STREAMS_DC); - -PHPAPI php_stream *_php_stream_temp_create(int mode, size_t max_memory_usage STREAMS_DC); -PHPAPI php_stream *_php_stream_temp_create_ex(int mode, size_t max_memory_usage, const char *tmpdir STREAMS_DC); -PHPAPI php_stream *_php_stream_temp_open(int mode, size_t max_memory_usage, char *buf, size_t length STREAMS_DC); - -PHPAPI int php_stream_mode_from_str(const char *mode); -PHPAPI const char *_php_stream_mode_to_str(int mode); - -END_EXTERN_C() - -extern PHPAPI const php_stream_ops php_stream_memory_ops; -extern PHPAPI const php_stream_ops php_stream_temp_ops; -extern PHPAPI const php_stream_ops php_stream_rfc2397_ops; -extern PHPAPI const php_stream_wrapper php_stream_rfc2397_wrapper; - -#define PHP_STREAM_IS_MEMORY &php_stream_memory_ops -#define PHP_STREAM_IS_TEMP &php_stream_temp_ops - -#endif diff --git a/include/php/main/php_network.h b/include/php/main/php_network.h deleted file mode 100644 index 241ca94..0000000 --- a/include/php/main/php_network.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stig Venaas | - +----------------------------------------------------------------------+ - */ - -#ifndef _PHP_NETWORK_H -#define _PHP_NETWORK_H - -#include - -#ifdef PHP_WIN32 -# include "win32/inet.h" -#else -# undef closesocket -# define closesocket close -# include -#endif - -#ifndef HAVE_SHUTDOWN -#undef shutdown -#define shutdown(s,n) /* nothing */ -#endif - -#ifdef PHP_WIN32 -# ifdef EWOULDBLOCK -# undef EWOULDBLOCK -# endif -# ifdef EINPROGRESS -# undef EINPROGRESS -# endif -# define EWOULDBLOCK WSAEWOULDBLOCK -# define EINPROGRESS WSAEWOULDBLOCK -# define fsync _commit -# define ftruncate(a, b) chsize(a, b) -#endif /* defined(PHP_WIN32) */ - -#ifndef EWOULDBLOCK -# define EWOULDBLOCK EAGAIN -#endif - -#ifdef PHP_WIN32 -#define php_socket_errno() WSAGetLastError() -#else -#define php_socket_errno() errno -#endif - -/* like strerror, but caller must efree the returned string, - * unless buf is not NULL. - * Also works sensibly for win32 */ -BEGIN_EXTERN_C() -PHPAPI char *php_socket_strerror(long err, char *buf, size_t bufsize); -PHPAPI zend_string *php_socket_error_str(long err); -END_EXTERN_C() - -#ifdef HAVE_NETINET_IN_H -# include -#endif - -#ifdef HAVE_SYS_SOCKET_H -#include -#endif - -#ifdef HAVE_GETHOSTBYNAME_R -#include -#endif - -/* These are here, rather than with the win32 counterparts above, - * since defines them. */ -#ifndef SHUT_RD -# define SHUT_RD 0 -# define SHUT_WR 1 -# define SHUT_RDWR 2 -#endif - -#ifdef HAVE_SYS_TIME_H -#include -#endif - -#include - -#ifdef PHP_WIN32 -typedef SOCKET php_socket_t; -#else -typedef int php_socket_t; -#endif - -#ifdef PHP_WIN32 -# define SOCK_ERR INVALID_SOCKET -# define SOCK_CONN_ERR SOCKET_ERROR -# define SOCK_RECV_ERR SOCKET_ERROR -#else -# define SOCK_ERR -1 -# define SOCK_CONN_ERR -1 -# define SOCK_RECV_ERR -1 -#endif - -#define STREAM_SOCKOP_NONE (1 << 0) -#define STREAM_SOCKOP_SO_REUSEPORT (1 << 1) -#define STREAM_SOCKOP_SO_BROADCAST (1 << 2) -#define STREAM_SOCKOP_IPV6_V6ONLY (1 << 3) -#define STREAM_SOCKOP_IPV6_V6ONLY_ENABLED (1 << 4) -#define STREAM_SOCKOP_TCP_NODELAY (1 << 5) - - -/* uncomment this to debug poll(2) emulation on systems that have poll(2) */ -/* #define PHP_USE_POLL_2_EMULATION 1 */ - -#if defined(HAVE_POLL) -# if defined(HAVE_POLL_H) -# include -# elif defined(HAVE_SYS_POLL_H) -# include -# endif -typedef struct pollfd php_pollfd; -#else -typedef struct _php_pollfd { - php_socket_t fd; - short events; - short revents; -} php_pollfd; - -PHPAPI int php_poll2(php_pollfd *ufds, unsigned int nfds, int timeout); - -#ifndef POLLIN -# define POLLIN 0x0001 /* There is data to read */ -# define POLLPRI 0x0002 /* There is urgent data to read */ -# define POLLOUT 0x0004 /* Writing now will not block */ -# define POLLERR 0x0008 /* Error condition */ -# define POLLHUP 0x0010 /* Hung up */ -# define POLLNVAL 0x0020 /* Invalid request: fd not open */ -#endif - -# ifndef PHP_USE_POLL_2_EMULATION -# define PHP_USE_POLL_2_EMULATION 1 -# endif -#endif - -#define PHP_POLLREADABLE (POLLIN|POLLERR|POLLHUP) - -#ifndef PHP_USE_POLL_2_EMULATION -# define php_poll2(ufds, nfds, timeout) poll(ufds, nfds, timeout) -#endif - -/* timeval-to-timeout (for poll(2)) */ -static inline int php_tvtoto(struct timeval *timeouttv) -{ - if (timeouttv) { - return (timeouttv->tv_sec * 1000) + (timeouttv->tv_usec / 1000); - } - return -1; -} - -/* hybrid select(2)/poll(2) for a single descriptor. - * timeouttv follows same rules as select(2), but is reduced to millisecond accuracy. - * Returns 0 on timeout, -1 on error, or the event mask (ala poll(2)). - */ -static inline int php_pollfd_for(php_socket_t fd, int events, struct timeval *timeouttv) -{ - php_pollfd p; - int n; - - p.fd = fd; - p.events = events; - p.revents = 0; - - n = php_poll2(&p, 1, php_tvtoto(timeouttv)); - - if (n > 0) { - return p.revents; - } - - return n; -} - -static inline int php_pollfd_for_ms(php_socket_t fd, int events, int timeout) -{ - php_pollfd p; - int n; - - p.fd = fd; - p.events = events; - p.revents = 0; - - n = php_poll2(&p, 1, timeout); - - if (n > 0) { - return p.revents; - } - - return n; -} - -/* emit warning and suggestion for unsafe select(2) usage */ -PHPAPI void _php_emit_fd_setsize_warning(int max_fd); - -#ifdef PHP_WIN32 -/* it is safe to FD_SET too many fd's under win32; the macro will simply ignore - * descriptors that go beyond the default FD_SETSIZE */ -# define PHP_SAFE_FD_SET(fd, set) FD_SET(fd, set) -# define PHP_SAFE_FD_CLR(fd, set) FD_CLR(fd, set) -# define PHP_SAFE_FD_ISSET(fd, set) FD_ISSET(fd, set) -# define PHP_SAFE_MAX_FD(m, n) do { if (n + 1 >= FD_SETSIZE) { _php_emit_fd_setsize_warning(n); }} while(0) -#else -# define PHP_SAFE_FD_SET(fd, set) do { if (fd < FD_SETSIZE) FD_SET(fd, set); } while(0) -# define PHP_SAFE_FD_CLR(fd, set) do { if (fd < FD_SETSIZE) FD_CLR(fd, set); } while(0) -# define PHP_SAFE_FD_ISSET(fd, set) ((fd < FD_SETSIZE) && FD_ISSET(fd, set)) -# define PHP_SAFE_MAX_FD(m, n) do { if (m >= FD_SETSIZE) { _php_emit_fd_setsize_warning(m); m = FD_SETSIZE - 1; }} while(0) -#endif - - -#define PHP_SOCK_CHUNK_SIZE 8192 - -#ifdef HAVE_SOCKADDR_STORAGE -typedef struct sockaddr_storage php_sockaddr_storage; -#else -typedef struct { -#ifdef HAVE_SOCKADDR_SA_LEN - unsigned char ss_len; - unsigned char ss_family; -#else - unsigned short ss_family; -#endif - char info[126]; -} php_sockaddr_storage; -#endif - -BEGIN_EXTERN_C() -PHPAPI int php_network_getaddresses(const char *host, int socktype, struct sockaddr ***sal, zend_string **error_string); -PHPAPI void php_network_freeaddresses(struct sockaddr **sal); - -PHPAPI php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short port, - int socktype, int asynchronous, struct timeval *timeout, zend_string **error_string, - int *error_code, char *bindto, unsigned short bindport, long sockopts - ); - -PHPAPI int php_network_connect_socket(php_socket_t sockfd, - const struct sockaddr *addr, - socklen_t addrlen, - int asynchronous, - struct timeval *timeout, - zend_string **error_string, - int *error_code); - -#define php_connect_nonb(sock, addr, addrlen, timeout) \ - php_network_connect_socket((sock), (addr), (addrlen), 0, (timeout), NULL, NULL) - -PHPAPI php_socket_t php_network_bind_socket_to_local_addr(const char *host, unsigned port, - int socktype, long sockopts, zend_string **error_string, int *error_code - ); - -PHPAPI php_socket_t php_network_accept_incoming(php_socket_t srvsock, - zend_string **textaddr, - struct sockaddr **addr, - socklen_t *addrlen, - struct timeval *timeout, - zend_string **error_string, - int *error_code, - int tcp_nodelay - ); - -PHPAPI int php_network_get_sock_name(php_socket_t sock, - zend_string **textaddr, - struct sockaddr **addr, - socklen_t *addrlen - ); - -PHPAPI int php_network_get_peer_name(php_socket_t sock, - zend_string **textaddr, - struct sockaddr **addr, - socklen_t *addrlen - ); - -PHPAPI void php_any_addr(int family, php_sockaddr_storage *addr, unsigned short port); -PHPAPI int php_sockaddr_size(php_sockaddr_storage *addr); -END_EXTERN_C() - -struct _php_netstream_data_t { - php_socket_t socket; - char is_blocked; - struct timeval timeout; - char timeout_event; - size_t ownsize; -}; -typedef struct _php_netstream_data_t php_netstream_data_t; -PHPAPI extern const php_stream_ops php_stream_socket_ops; -extern const php_stream_ops php_stream_generic_socket_ops; -#define PHP_STREAM_IS_SOCKET (&php_stream_socket_ops) - -BEGIN_EXTERN_C() -PHPAPI php_stream *_php_stream_sock_open_from_socket(php_socket_t socket, const char *persistent_id STREAMS_DC ); -/* open a connection to a host using php_hostconnect and return a stream */ -PHPAPI php_stream *_php_stream_sock_open_host(const char *host, unsigned short port, - int socktype, struct timeval *timeout, const char *persistent_id STREAMS_DC); -PHPAPI void php_network_populate_name_from_sockaddr( - /* input address */ - struct sockaddr *sa, socklen_t sl, - /* output readable address */ - zend_string **textaddr, - /* output address */ - struct sockaddr **addr, - socklen_t *addrlen - ); - -PHPAPI int php_network_parse_network_address_with_port(const char *addr, - zend_long addrlen, struct sockaddr *sa, socklen_t *sl); - -PHPAPI struct hostent* php_network_gethostbyname(char *name); - -PHPAPI int php_set_sock_blocking(php_socket_t socketd, int block); -END_EXTERN_C() - -#define php_stream_sock_open_from_socket(socket, persistent) _php_stream_sock_open_from_socket((socket), (persistent) STREAMS_CC) -#define php_stream_sock_open_host(host, port, socktype, timeout, persistent) _php_stream_sock_open_host((host), (port), (socktype), (timeout), (persistent) STREAMS_CC) - -/* {{{ memory debug */ -#define php_stream_sock_open_from_socket_rel(socket, persistent) _php_stream_sock_open_from_socket((socket), (persistent) STREAMS_REL_CC) -#define php_stream_sock_open_host_rel(host, port, socktype, timeout, persistent) _php_stream_sock_open_host((host), (port), (socktype), (timeout), (persistent) STREAMS_REL_CC) -#define php_stream_sock_open_unix_rel(path, pathlen, persistent, timeval) _php_stream_sock_open_unix((path), (pathlen), (persistent), (timeval) STREAMS_REL_CC) - -/* }}} */ - -#ifndef MAXFQDNLEN -#define MAXFQDNLEN 255 -#endif - -#endif /* _PHP_NETWORK_H */ diff --git a/include/php/main/php_open_temporary_file.h b/include/php/main/php_open_temporary_file.h deleted file mode 100644 index 2c7d98f..0000000 --- a/include/php/main/php_open_temporary_file.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_OPEN_TEMPORARY_FILE_H -#define PHP_OPEN_TEMPORARY_FILE_H - -#define PHP_TMP_FILE_DEFAULT 0 -#define PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ON_FALLBACK (1<<0) -#define PHP_TMP_FILE_SILENT (1<<1) -#define PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ON_EXPLICIT_DIR (1<<2) -#define PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ALWAYS \ - (PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ON_FALLBACK | PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ON_EXPLICIT_DIR) - -/* for compatibility purpose */ -#define PHP_TMP_FILE_OPEN_BASEDIR_CHECK PHP_TMP_FILE_OPEN_BASEDIR_CHECK_ON_FALLBACK - - -BEGIN_EXTERN_C() -PHPAPI FILE *php_open_temporary_file(const char *dir, const char *pfx, zend_string **opened_path_p); -PHPAPI int php_open_temporary_fd_ex(const char *dir, const char *pfx, zend_string **opened_path_p, uint32_t flags); -PHPAPI int php_open_temporary_fd(const char *dir, const char *pfx, zend_string **opened_path_p); -PHPAPI const char *php_get_temporary_directory(void); -END_EXTERN_C() - -#endif /* PHP_OPEN_TEMPORARY_FILE_H */ diff --git a/include/php/main/php_output.h b/include/php/main/php_output.h deleted file mode 100644 index f76d61d..0000000 --- a/include/php/main/php_output.h +++ /dev/null @@ -1,264 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_OUTPUT_H -#define PHP_OUTPUT_H - -#define PHP_OUTPUT_NEWAPI 1 - -/* handler ops */ -#define PHP_OUTPUT_HANDLER_WRITE 0x00 /* standard passthru */ -#define PHP_OUTPUT_HANDLER_START 0x01 /* start */ -#define PHP_OUTPUT_HANDLER_CLEAN 0x02 /* restart */ -#define PHP_OUTPUT_HANDLER_FLUSH 0x04 /* pass along as much as possible */ -#define PHP_OUTPUT_HANDLER_FINAL 0x08 /* finalize */ -#define PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_WRITE -#define PHP_OUTPUT_HANDLER_END PHP_OUTPUT_HANDLER_FINAL - -/* handler types */ -#define PHP_OUTPUT_HANDLER_INTERNAL 0x0000 -#define PHP_OUTPUT_HANDLER_USER 0x0001 - -/* handler ability flags */ -#define PHP_OUTPUT_HANDLER_CLEANABLE 0x0010 -#define PHP_OUTPUT_HANDLER_FLUSHABLE 0x0020 -#define PHP_OUTPUT_HANDLER_REMOVABLE 0x0040 -#define PHP_OUTPUT_HANDLER_STDFLAGS 0x0070 - -/* handler status flags */ -#define PHP_OUTPUT_HANDLER_STARTED 0x1000 -#define PHP_OUTPUT_HANDLER_DISABLED 0x2000 -#define PHP_OUTPUT_HANDLER_PROCESSED 0x4000 - -/* handler op return values */ -typedef enum _php_output_handler_status_t { - PHP_OUTPUT_HANDLER_FAILURE, - PHP_OUTPUT_HANDLER_SUCCESS, - PHP_OUTPUT_HANDLER_NO_DATA -} php_output_handler_status_t; - -/* php_output_stack_pop() flags */ -#define PHP_OUTPUT_POP_TRY 0x000 -#define PHP_OUTPUT_POP_FORCE 0x001 -#define PHP_OUTPUT_POP_DISCARD 0x010 -#define PHP_OUTPUT_POP_SILENT 0x100 - -/* real global flags */ -#define PHP_OUTPUT_IMPLICITFLUSH 0x01 -#define PHP_OUTPUT_DISABLED 0x02 -#define PHP_OUTPUT_WRITTEN 0x04 -#define PHP_OUTPUT_SENT 0x08 -/* supplementary flags for php_output_get_status() */ -#define PHP_OUTPUT_ACTIVE 0x10 -#define PHP_OUTPUT_LOCKED 0x20 -/* output layer is ready to use */ -#define PHP_OUTPUT_ACTIVATED 0x100000 - -/* handler hooks */ -typedef enum _php_output_handler_hook_t { - PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ, - PHP_OUTPUT_HANDLER_HOOK_GET_FLAGS, - PHP_OUTPUT_HANDLER_HOOK_GET_LEVEL, - PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE, - PHP_OUTPUT_HANDLER_HOOK_DISABLE, - /* unused */ - PHP_OUTPUT_HANDLER_HOOK_LAST -} php_output_handler_hook_t; - -#define PHP_OUTPUT_HANDLER_INITBUF_SIZE(s) \ -( ((s) > 1) ? \ - (s) + PHP_OUTPUT_HANDLER_ALIGNTO_SIZE - ((s) % (PHP_OUTPUT_HANDLER_ALIGNTO_SIZE)) : \ - PHP_OUTPUT_HANDLER_DEFAULT_SIZE \ -) -#define PHP_OUTPUT_HANDLER_ALIGNTO_SIZE 0x1000 -#define PHP_OUTPUT_HANDLER_DEFAULT_SIZE 0x4000 - -typedef struct _php_output_buffer { - char *data; - size_t size; - size_t used; - uint32_t free:1; - uint32_t _reserved:31; -} php_output_buffer; - -typedef struct _php_output_context { - int op; - php_output_buffer in; - php_output_buffer out; -} php_output_context; - -/* old-style, stateless callback */ -typedef void (*php_output_handler_func_t)(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode); -/* new-style, opaque context callback */ -typedef int (*php_output_handler_context_func_t)(void **handler_context, php_output_context *output_context); -/* output handler context dtor */ -typedef void (*php_output_handler_context_dtor_t)(void *opaq); -/* conflict check callback */ -typedef int (*php_output_handler_conflict_check_t)(const char *handler_name, size_t handler_name_len); -/* ctor for aliases */ -typedef struct _php_output_handler *(*php_output_handler_alias_ctor_t)(const char *handler_name, size_t handler_name_len, size_t chunk_size, int flags); - -typedef struct _php_output_handler_user_func_t { - zend_fcall_info fci; - zend_fcall_info_cache fcc; - zval zoh; -} php_output_handler_user_func_t; - -typedef struct _php_output_handler { - zend_string *name; - int flags; - int level; - size_t size; - php_output_buffer buffer; - - void *opaq; - void (*dtor)(void *opaq); - - union { - php_output_handler_user_func_t *user; - php_output_handler_context_func_t internal; - } func; -} php_output_handler; - -ZEND_BEGIN_MODULE_GLOBALS(output) - zend_stack handlers; - php_output_handler *active; - php_output_handler *running; - const char *output_start_filename; - int output_start_lineno; - int flags; -ZEND_END_MODULE_GLOBALS(output) - -PHPAPI ZEND_EXTERN_MODULE_GLOBALS(output) - -/* there should not be a need to use OG() from outside of output.c */ -#ifdef ZTS -# define OG(v) ZEND_TSRMG(output_globals_id, zend_output_globals *, v) -#else -# define OG(v) (output_globals.v) -#endif - -/* convenience macros */ -#define PHPWRITE(str, str_len) php_output_write((str), (str_len)) -#define PHPWRITE_H(str, str_len) php_output_write_unbuffered((str), (str_len)) - -#define PUTC(c) php_output_write((const char *) &(c), 1) -#define PUTC_H(c) php_output_write_unbuffered((const char *) &(c), 1) - -#define PUTS(str) do { \ - const char *__str = (str); \ - php_output_write(__str, strlen(__str)); \ -} while (0) -#define PUTS_H(str) do { \ - const char *__str = (str); \ - php_output_write_unbuffered(__str, strlen(__str)); \ -} while (0) - - -BEGIN_EXTERN_C() - -extern const char php_output_default_handler_name[sizeof("default output handler")]; -extern const char php_output_devnull_handler_name[sizeof("null output handler")]; - -#define php_output_tearup() \ - php_output_startup(); \ - php_output_activate() -#define php_output_teardown() \ - php_output_end_all(); \ - php_output_deactivate(); \ - php_output_shutdown() - -/* MINIT */ -PHPAPI void php_output_startup(void); -/* MSHUTDOWN */ -PHPAPI void php_output_shutdown(void); - -PHPAPI void php_output_register_constants(void); - -/* RINIT */ -PHPAPI int php_output_activate(void); -/* RSHUTDOWN */ -PHPAPI void php_output_deactivate(void); - -PHPAPI void php_output_set_status(int status); -PHPAPI int php_output_get_status(void); -PHPAPI void php_output_set_implicit_flush(int flush); -PHPAPI const char *php_output_get_start_filename(void); -PHPAPI int php_output_get_start_lineno(void); - -PHPAPI size_t php_output_write_unbuffered(const char *str, size_t len); -PHPAPI size_t php_output_write(const char *str, size_t len); - -PHPAPI int php_output_flush(void); -PHPAPI void php_output_flush_all(void); -PHPAPI int php_output_clean(void); -PHPAPI void php_output_clean_all(void); -PHPAPI int php_output_end(void); -PHPAPI void php_output_end_all(void); -PHPAPI int php_output_discard(void); -PHPAPI void php_output_discard_all(void); - -PHPAPI int php_output_get_contents(zval *p); -PHPAPI int php_output_get_length(zval *p); -PHPAPI int php_output_get_level(void); -PHPAPI php_output_handler* php_output_get_active_handler(void); - -PHPAPI int php_output_start_default(void); -PHPAPI int php_output_start_devnull(void); - -PHPAPI int php_output_start_user(zval *output_handler, size_t chunk_size, int flags); -PHPAPI int php_output_start_internal(const char *name, size_t name_len, php_output_handler_func_t output_handler, size_t chunk_size, int flags); - -PHPAPI php_output_handler *php_output_handler_create_user(zval *handler, size_t chunk_size, int flags); -PHPAPI php_output_handler *php_output_handler_create_internal(const char *name, size_t name_len, php_output_handler_context_func_t handler, size_t chunk_size, int flags); - -PHPAPI void php_output_handler_set_context(php_output_handler *handler, void *opaq, void (*dtor)(void*)); -PHPAPI int php_output_handler_start(php_output_handler *handler); -PHPAPI int php_output_handler_started(const char *name, size_t name_len); -PHPAPI int php_output_handler_hook(php_output_handler_hook_t type, void *arg); -PHPAPI void php_output_handler_dtor(php_output_handler *handler); -PHPAPI void php_output_handler_free(php_output_handler **handler); - -PHPAPI int php_output_handler_conflict(const char *handler_new, size_t handler_new_len, const char *handler_set, size_t handler_set_len); -PHPAPI int php_output_handler_conflict_register(const char *handler_name, size_t handler_name_len, php_output_handler_conflict_check_t check_func); -PHPAPI int php_output_handler_reverse_conflict_register(const char *handler_name, size_t handler_name_len, php_output_handler_conflict_check_t check_func); - -PHPAPI php_output_handler_alias_ctor_t php_output_handler_alias(const char *handler_name, size_t handler_name_len); -PHPAPI int php_output_handler_alias_register(const char *handler_name, size_t handler_name_len, php_output_handler_alias_ctor_t func); - -END_EXTERN_C() - - -PHP_FUNCTION(ob_start); -PHP_FUNCTION(ob_flush); -PHP_FUNCTION(ob_clean); -PHP_FUNCTION(ob_end_flush); -PHP_FUNCTION(ob_end_clean); -PHP_FUNCTION(ob_get_flush); -PHP_FUNCTION(ob_get_clean); -PHP_FUNCTION(ob_get_contents); -PHP_FUNCTION(ob_get_length); -PHP_FUNCTION(ob_get_level); -PHP_FUNCTION(ob_get_status); -PHP_FUNCTION(ob_implicit_flush); -PHP_FUNCTION(ob_list_handlers); - -PHP_FUNCTION(output_add_rewrite_var); -PHP_FUNCTION(output_reset_rewrite_vars); - -#endif diff --git a/include/php/main/php_reentrancy.h b/include/php/main/php_reentrancy.h deleted file mode 100644 index bbc772b..0000000 --- a/include/php/main/php_reentrancy.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Sascha Schumann | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_REENTRANCY_H -#define PHP_REENTRANCY_H - -#include "php.h" - -#include -#ifdef HAVE_DIRENT_H -#include -#endif -#include - -/* currently, PHP does not check for these functions, but assumes - that they are available on all systems. */ - -#define HAVE_LOCALTIME 1 -#define HAVE_GMTIME 1 -#define HAVE_ASCTIME 1 -#define HAVE_CTIME 1 - -#if defined(PHP_IRIX_TIME_R) -#undef HAVE_ASCTIME_R -#undef HAVE_CTIME_R -#endif - -#if defined(PHP_HPUX_TIME_R) -#undef HAVE_LOCALTIME_R -#undef HAVE_ASCTIME_R -#undef HAVE_CTIME_R -#undef HAVE_GMTIME_R -#endif - -BEGIN_EXTERN_C() - -#if !defined(HAVE_LOCALTIME_R) && defined(HAVE_LOCALTIME) -#define PHP_NEED_REENTRANCY 1 -PHPAPI struct tm *php_localtime_r(const time_t *const timep, struct tm *p_tm); -#else -#define php_localtime_r localtime_r -#ifdef MISSING_LOCALTIME_R_DECL -struct tm *localtime_r(const time_t *const timep, struct tm *p_tm); -#endif -#endif - - -#if !defined(HAVE_CTIME_R) && defined(HAVE_CTIME) -#define PHP_NEED_REENTRANCY 1 -PHPAPI char *php_ctime_r(const time_t *clock, char *buf); -#else -#define php_ctime_r ctime_r -#ifdef MISSING_CTIME_R_DECL -char *ctime_r(const time_t *clock, char *buf); -#endif -#endif - - -#if !defined(HAVE_ASCTIME_R) && defined(HAVE_ASCTIME) -#define PHP_NEED_REENTRANCY 1 -PHPAPI char *php_asctime_r(const struct tm *tm, char *buf); -#else -#define php_asctime_r asctime_r -#ifdef MISSING_ASCTIME_R_DECL -char *asctime_r(const struct tm *tm, char *buf); -#endif -#endif - - -#if !defined(HAVE_GMTIME_R) && defined(HAVE_GMTIME) -#define PHP_NEED_REENTRANCY 1 -PHPAPI struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm); -#else -#define php_gmtime_r gmtime_r -#ifdef MISSING_GMTIME_R_DECL -struct tm *php_gmtime_r(const time_t *const timep, struct tm *p_tm); -#endif -#endif - -#if !defined(HAVE_STRTOK_R) -PHPAPI char *php_strtok_r(char *s, const char *delim, char **last); -#else -#define php_strtok_r strtok_r -#ifdef MISSING_STRTOK_R_DECL -char *strtok_r(char *s, const char *delim, char **last); -#endif -#endif - -#if !defined(HAVE_RAND_R) -PHPAPI int php_rand_r(unsigned int *seed); -#else -#define php_rand_r rand_r -#endif - -END_EXTERN_C() - -#if !defined(ZTS) -#undef PHP_NEED_REENTRANCY -#endif - -#if defined(PHP_NEED_REENTRANCY) -void reentrancy_startup(void); -void reentrancy_shutdown(void); -#else -#define reentrancy_startup() -#define reentrancy_shutdown() -#endif - -#endif diff --git a/include/php/main/php_scandir.h b/include/php/main/php_scandir.h deleted file mode 100644 index 04bf29f..0000000 --- a/include/php/main/php_scandir.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Shane Caraveo | - | Ilia Alshanetsky | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_SCANDIR_H -#define PHP_SCANDIR_H - -#include - -#ifdef PHP_WIN32 -#include "config.w32.h" -#include "win32/readdir.h" -#else -#include -#endif - -#ifdef HAVE_DIRENT_H -#include -#endif - -#ifdef HAVE_SCANDIR -#define php_scandir scandir -#else -PHPAPI int php_scandir(const char *dirname, struct dirent **namelist[], int (*selector) (const struct dirent *entry), int (*compare) (const struct dirent **a, const struct dirent **b)); -#endif - -#ifdef HAVE_ALPHASORT -#define php_alphasort alphasort -#else -PHPAPI int php_alphasort(const struct dirent **a, const struct dirent **b); -#endif - -#endif /* PHP_SCANDIR_H */ diff --git a/include/php/main/php_stdint.h b/include/php/main/php_stdint.h deleted file mode 100644 index 3e5fd00..0000000 --- a/include/php/main/php_stdint.h +++ /dev/null @@ -1,220 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Michael Wallner | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_STDINT_H -#define PHP_STDINT_H - -/* C99 requires these for C++ to get the definitions - * of INT64_MAX and other macros used by Zend/zend_long.h - * C11 drops this requirement, so these effectively - * just backport that piece of behavior. - * - * These defines are placed here instead of - * with the include below, because sys/types - * and inttypes may include stdint themselves. - * And these definitions MUST come first. - */ -#ifdef __cplusplus -# ifndef __STDC_LIMIT_MACROS -# define __STDC_LIMIT_MACROS -# endif -# ifndef __STDC_CONSTANT_MACROS -# define __STDC_CONSTANT_MACROS -# endif -# ifndef __STDC_FORMAT_MACROS -# define __STDC_FORMAT_MACROS -# endif -#endif - -#if defined(_MSC_VER) -/* Make sure the regular stdint.h wasn't included already and prevent it to be - included afterwards. Though if some other library needs some stuff from - stdint.h included afterwards and misses it, we'd have to extend ours. On - the other hand, if stdint.h was included before, some conflicts might - happen so we'd likewise have to fix ours. */ -# if !defined(_STDINT) -# define _STDINT -# include "win32/php_stdint.h" -# include "win32/php_inttypes.h" -# endif -# define HAVE_INT8_T 1 -# define HAVE_UINT8_T 1 -# define HAVE_INT16_T 1 -# define HAVE_UINT16_T 1 -# define HAVE_INT32_T 1 -# define HAVE_UINT32_T 1 -# define HAVE_INT64_T 1 -# define HAVE_UINT64_T 1 -#else - -#include "php_config.h" - -#if HAVE_SYS_TYPES_H -# include -#endif - -#if HAVE_INTTYPES_H -# include -#endif - -#if HAVE_STDINT_H -# include -#endif - -#ifndef HAVE_INT8_T -# ifdef HAVE_INT8 -typedef int8 int8_t; -# else -typedef signed char int8_t; -# endif -#endif - -#ifndef INT8_C -# define INT8_C(c) c -#endif - -#ifndef HAVE_UINT8_T -# ifdef HAVE_UINT8 -typedef uint8 uint8_t -# elif HAVE_U_INT8_T -typedef u_int8_t uint8_t; -# else -typedef unsigned char uint8_t; -# endif -#endif - -#ifndef UINT8_C -# define UINT8_C(c) c -#endif - -#ifndef HAVE_INT16_T -# ifdef HAVE_INT16 -typedef int16 int16_t; -# elif SIZEOF_SHORT >= 2 -typedef signed short int16_t; -# else -# error "No suitable 16bit integer type found" -# endif -#endif - -#ifndef INT16_C -# define INT16_C(c) c -#endif - -#ifndef HAVE_UINT16_T -# ifdef HAVE_UINT16 -typedef uint16 uint16_t -# elif HAVE_U_INT16_T -typedef u_int16_t uint16_t; -# elif SIZEOF_SHORT >= 2 -typedef unsigned short uint16_t; -# else -# error "No suitable 16bit integer type found" -# endif -#endif - -#ifndef UINT16_C -# define UINT16_C(c) c -#endif - -#ifndef HAVE_INT32_T -# ifdef HAVE_INT32 -typedef int32 int32_t; -# elif SIZEOF_INT >= 4 -typedef int int32_t; -# elif SIZEOF_LONG >= 4 -typedef long int32_t; -# else -# error "No suitable 32bit integer type found" -# endif -#endif - -#ifndef INT32_C -# define INT32_C(c) c -#endif - -#ifndef HAVE_UINT32_T -# ifdef HAVE_UINT32 -typedef uint32 uint32_t -# elif HAVE_U_INT32_T -typedef u_int32_t uint32_t; -# elif SIZEOF_INT >= 4 -typedef unsigned int uint32_t; -# elif SIZEOF_LONG >= 4 -typedef unsigned long uint32_t; -# else -# error "No suitable 32bit integer type found" -# endif -#endif - -#ifndef UINT32_C -# define UINT32_C(c) c ## U -#endif - -#ifndef HAVE_INT64_T -# ifdef HAVE_INT64 -typedef int64 int64_t; -# elif SIZEOF_INT >= 8 -typedef int int64_t; -# elif SIZEOF_LONG >= 8 -typedef long int64_t; -# elif SIZEOF_LONG_LONG >= 8 -typedef long long int64_t; -# else -# error "No suitable 64bit integer type found" -# endif -#endif - -#ifndef INT64_C -# if SIZEOF_INT >= 8 -# define INT64_C(c) c -# elif SIZEOF_LONG >= 8 -# define INT64_C(c) c ## L -# elif SIZEOF_LONG_LONG >= 8 -# define INT64_C(c) c ## LL -# endif -#endif - -#ifndef HAVE_UINT64_T -# ifdef HAVE_UINT64 -typedef uint64 uint64_t -# elif HAVE_U_INT64_T -typedef u_int64_t uint64_t; -# elif SIZEOF_INT >= 8 -typedef unsigned int uint64_t; -# elif SIZEOF_LONG >= 8 -typedef unsigned long uint64_t; -# elif SIZEOF_LONG_LONG >= 8 -typedef unsigned long long uint64_t; -# else -# error "No suitable 64bit integer type found" -# endif -#endif - -#ifndef UINT64_C -# if SIZEOF_INT >= 8 -# define UINT64_C(c) c ## U -# elif SIZEOF_LONG >= 8 -# define UINT64_C(c) c ## UL -# elif SIZEOF_LONG_LONG >= 8 -# define UINT64_C(c) c ## ULL -# endif -#endif - -#endif /* !PHP_WIN32 */ -#endif /* PHP_STDINT_H */ diff --git a/include/php/main/php_streams.h b/include/php/main/php_streams.h deleted file mode 100644 index 11e7c2a..0000000 --- a/include/php/main/php_streams.h +++ /dev/null @@ -1,610 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong (wez@thebrainroom.com) | - +----------------------------------------------------------------------+ - */ - -#ifndef PHP_STREAMS_H -#define PHP_STREAMS_H - -#ifdef HAVE_SYS_TIME_H -#include -#endif -#include -#include -#include "zend.h" -#include "zend_stream.h" - -BEGIN_EXTERN_C() -PHPAPI int php_file_le_stream(void); -PHPAPI int php_file_le_pstream(void); -PHPAPI int php_file_le_stream_filter(void); -END_EXTERN_C() - -/* {{{ Streams memory debugging stuff */ - -#if ZEND_DEBUG -/* these have more of a dependency on the definitions of the zend macros than - * I would prefer, but doing it this way saves loads of idefs :-/ */ -# define STREAMS_D int __php_stream_call_depth ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC -# define STREAMS_C 0 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC -# define STREAMS_REL_C __php_stream_call_depth + 1 ZEND_FILE_LINE_CC, \ - __php_stream_call_depth ? __zend_orig_filename : __zend_filename, \ - __php_stream_call_depth ? __zend_orig_lineno : __zend_lineno - -# define STREAMS_DC , STREAMS_D -# define STREAMS_CC , STREAMS_C -# define STREAMS_REL_CC , STREAMS_REL_C - -#else -# define STREAMS_D -# define STREAMS_C -# define STREAMS_REL_C -# define STREAMS_DC -# define STREAMS_CC -# define STREAMS_REL_CC -#endif - -/* these functions relay the file/line number information. They are depth aware, so they will pass - * the ultimate ancestor, which is useful, because there can be several layers of calls */ -#define php_stream_alloc_rel(ops, thisptr, persistent, mode) _php_stream_alloc((ops), (thisptr), (persistent), (mode) STREAMS_REL_CC) - -#define php_stream_copy_to_mem_rel(src, maxlen, persistent) _php_stream_copy_to_mem((src), (buf), (maxlen), (persistent) STREAMS_REL_CC) - -#define php_stream_fopen_rel(filename, mode, opened, options) _php_stream_fopen((filename), (mode), (opened), (options) STREAMS_REL_CC) - -#define php_stream_fopen_with_path_rel(filename, mode, path, opened, options) _php_stream_fopen_with_path((filename), (mode), (path), (opened), (options) STREAMS_REL_CC) - -#define php_stream_fopen_from_fd_rel(fd, mode, persistent_id) _php_stream_fopen_from_fd((fd), (mode), (persistent_id) STREAMS_REL_CC) -#define php_stream_fopen_from_file_rel(file, mode) _php_stream_fopen_from_file((file), (mode) STREAMS_REL_CC) - -#define php_stream_fopen_from_pipe_rel(file, mode) _php_stream_fopen_from_pipe((file), (mode) STREAMS_REL_CC) - -#define php_stream_fopen_tmpfile_rel() _php_stream_fopen_tmpfile(0 STREAMS_REL_CC) - -#define php_stream_fopen_temporary_file_rel(dir, pfx, opened_path) _php_stream_fopen_temporary_file((dir), (pfx), (opened_path) STREAMS_REL_CC) - -#define php_stream_open_wrapper_rel(path, mode, options, opened) _php_stream_open_wrapper_ex((path), (mode), (options), (opened), NULL STREAMS_REL_CC) -#define php_stream_open_wrapper_ex_rel(path, mode, options, opened, context) _php_stream_open_wrapper_ex((path), (mode), (options), (opened), (context) STREAMS_REL_CC) - -#define php_stream_make_seekable_rel(origstream, newstream, flags) _php_stream_make_seekable((origstream), (newstream), (flags) STREAMS_REL_CC) - -/* }}} */ - -/* The contents of the php_stream_ops and php_stream should only be accessed - * using the functions/macros in this header. - * If you need to get at something that doesn't have an API, - * drop me a line and we can sort out a way to do - * it properly. - * - * The only exceptions to this rule are that stream implementations can use - * the php_stream->abstract pointer to hold their context, and streams - * opened via stream_open_wrappers can use the zval ptr in - * php_stream->wrapperdata to hold meta data for php scripts to - * retrieve using file_get_wrapper_data(). */ - -typedef struct _php_stream php_stream; -typedef struct _php_stream_wrapper php_stream_wrapper; -typedef struct _php_stream_context php_stream_context; -typedef struct _php_stream_filter php_stream_filter; - -#include "streams/php_stream_context.h" -#include "streams/php_stream_filter_api.h" - -typedef struct _php_stream_statbuf { - zend_stat_t sb; /* regular info */ - /* extended info to go here some day: content-type etc. etc. */ -} php_stream_statbuf; - -typedef struct _php_stream_dirent { - char d_name[MAXPATHLEN]; -} php_stream_dirent; - -/* operations on streams that are file-handles */ -typedef struct _php_stream_ops { - /* stdio like functions - these are mandatory! */ - ssize_t (*write)(php_stream *stream, const char *buf, size_t count); - ssize_t (*read)(php_stream *stream, char *buf, size_t count); - int (*close)(php_stream *stream, int close_handle); - int (*flush)(php_stream *stream); - - const char *label; /* label for this ops structure */ - - /* these are optional */ - int (*seek)(php_stream *stream, zend_off_t offset, int whence, zend_off_t *newoffset); - int (*cast)(php_stream *stream, int castas, void **ret); - int (*stat)(php_stream *stream, php_stream_statbuf *ssb); - int (*set_option)(php_stream *stream, int option, int value, void *ptrparam); -} php_stream_ops; - -typedef struct _php_stream_wrapper_ops { - /* open/create a wrapped stream */ - php_stream *(*stream_opener)(php_stream_wrapper *wrapper, const char *filename, const char *mode, - int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); - /* close/destroy a wrapped stream */ - int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream); - /* stat a wrapped stream */ - int (*stream_stat)(php_stream_wrapper *wrapper, php_stream *stream, php_stream_statbuf *ssb); - /* stat a URL */ - int (*url_stat)(php_stream_wrapper *wrapper, const char *url, int flags, php_stream_statbuf *ssb, php_stream_context *context); - /* open a "directory" stream */ - php_stream *(*dir_opener)(php_stream_wrapper *wrapper, const char *filename, const char *mode, - int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); - - const char *label; - - /* delete a file */ - int (*unlink)(php_stream_wrapper *wrapper, const char *url, int options, php_stream_context *context); - - /* rename a file */ - int (*rename)(php_stream_wrapper *wrapper, const char *url_from, const char *url_to, int options, php_stream_context *context); - - /* Create/Remove directory */ - int (*stream_mkdir)(php_stream_wrapper *wrapper, const char *url, int mode, int options, php_stream_context *context); - int (*stream_rmdir)(php_stream_wrapper *wrapper, const char *url, int options, php_stream_context *context); - /* Metadata handling */ - int (*stream_metadata)(php_stream_wrapper *wrapper, const char *url, int options, void *value, php_stream_context *context); -} php_stream_wrapper_ops; - -struct _php_stream_wrapper { - const php_stream_wrapper_ops *wops; /* operations the wrapper can perform */ - void *abstract; /* context for the wrapper */ - int is_url; /* so that PG(allow_url_fopen) can be respected */ -}; - -#define PHP_STREAM_FLAG_NO_SEEK 0x1 -#define PHP_STREAM_FLAG_NO_BUFFER 0x2 - -#define PHP_STREAM_FLAG_EOL_UNIX 0x0 /* also includes DOS */ -#define PHP_STREAM_FLAG_DETECT_EOL 0x4 -#define PHP_STREAM_FLAG_EOL_MAC 0x8 - -/* set this when the stream might represent "interactive" data. - * When set, the read buffer will avoid certain operations that - * might otherwise cause the read to block for much longer than - * is strictly required. */ -#define PHP_STREAM_FLAG_AVOID_BLOCKING 0x10 - -#define PHP_STREAM_FLAG_NO_CLOSE 0x20 - -#define PHP_STREAM_FLAG_IS_DIR 0x40 - -#define PHP_STREAM_FLAG_NO_FCLOSE 0x80 - -#define PHP_STREAM_FLAG_WAS_WRITTEN 0x80000000 - -struct _php_stream { - const php_stream_ops *ops; - void *abstract; /* convenience pointer for abstraction */ - - php_stream_filter_chain readfilters, writefilters; - - php_stream_wrapper *wrapper; /* which wrapper was used to open the stream */ - void *wrapperthis; /* convenience pointer for a instance of a wrapper */ - zval wrapperdata; /* fgetwrapperdata retrieves this */ - - uint8_t is_persistent:1; - uint8_t in_free:2; /* to prevent recursion during free */ - uint8_t eof:1; - uint8_t __exposed:1; /* non-zero if exposed as a zval somewhere */ - - /* so we know how to clean it up correctly. This should be set to - * PHP_STREAM_FCLOSE_XXX as appropriate */ - uint8_t fclose_stdiocast:2; - - uint8_t fgetss_state; /* for fgetss to handle multiline tags */ - - char mode[16]; /* "rwb" etc. ala stdio */ - - uint32_t flags; /* PHP_STREAM_FLAG_XXX */ - - zend_resource *res; /* used for auto-cleanup */ - FILE *stdiocast; /* cache this, otherwise we might leak! */ - char *orig_path; - - zend_resource *ctx; - - /* buffer */ - zend_off_t position; /* of underlying stream */ - unsigned char *readbuf; - size_t readbuflen; - zend_off_t readpos; - zend_off_t writepos; - - /* how much data to read when filling buffer */ - size_t chunk_size; - -#if ZEND_DEBUG - const char *open_filename; - uint32_t open_lineno; -#endif - - struct _php_stream *enclosing_stream; /* this is a private stream owned by enclosing_stream */ -}; /* php_stream */ - -#define PHP_STREAM_CONTEXT(stream) \ - ((php_stream_context*) ((stream)->ctx ? ((stream)->ctx->ptr) : NULL)) - -/* state definitions when closing down; these are private to streams.c */ -#define PHP_STREAM_FCLOSE_NONE 0 -#define PHP_STREAM_FCLOSE_FDOPEN 1 -#define PHP_STREAM_FCLOSE_FOPENCOOKIE 2 - -/* allocate a new stream for a particular ops */ -BEGIN_EXTERN_C() -PHPAPI php_stream *_php_stream_alloc(const php_stream_ops *ops, void *abstract, - const char *persistent_id, const char *mode STREAMS_DC); -END_EXTERN_C() -#define php_stream_alloc(ops, thisptr, persistent_id, mode) _php_stream_alloc((ops), (thisptr), (persistent_id), (mode) STREAMS_CC) - -#define php_stream_get_resource_id(stream) ((php_stream *)(stream))->res->handle -/* use this to tell the stream that it is OK if we don't explicitly close it */ -#define php_stream_auto_cleanup(stream) { (stream)->__exposed = 1; } -/* use this to assign the stream to a zval and tell the stream that is - * has been exported to the engine; it will expect to be closed automatically - * when the resources are auto-destructed */ -#define php_stream_to_zval(stream, zval) { ZVAL_RES(zval, (stream)->res); (stream)->__exposed = 1; } - -#define php_stream_from_zval(xstr, pzval) do { \ - if (((xstr) = (php_stream*)zend_fetch_resource2_ex((pzval), \ - "stream", php_file_le_stream(), php_file_le_pstream())) == NULL) { \ - RETURN_FALSE; \ - } \ -} while (0) -#define php_stream_from_res(xstr, res) do { \ - if (((xstr) = (php_stream*)zend_fetch_resource2((res), \ - "stream", php_file_le_stream(), php_file_le_pstream())) == NULL) { \ - RETURN_FALSE; \ - } \ -} while (0) -#define php_stream_from_res_no_verify(xstr, pzval) (xstr) = (php_stream*)zend_fetch_resource2((res), "stream", php_file_le_stream(), php_file_le_pstream()) -#define php_stream_from_zval_no_verify(xstr, pzval) (xstr) = (php_stream*)zend_fetch_resource2_ex((pzval), "stream", php_file_le_stream(), php_file_le_pstream()) - -BEGIN_EXTERN_C() -PHPAPI php_stream *php_stream_encloses(php_stream *enclosing, php_stream *enclosed); -#define php_stream_free_enclosed(stream_enclosed, close_options) _php_stream_free_enclosed((stream_enclosed), (close_options)) -PHPAPI int _php_stream_free_enclosed(php_stream *stream_enclosed, int close_options); - -PHPAPI int php_stream_from_persistent_id(const char *persistent_id, php_stream **stream); -#define PHP_STREAM_PERSISTENT_SUCCESS 0 /* id exists */ -#define PHP_STREAM_PERSISTENT_FAILURE 1 /* id exists but is not a stream! */ -#define PHP_STREAM_PERSISTENT_NOT_EXIST 2 /* id does not exist */ - -#define PHP_STREAM_FREE_CALL_DTOR 1 /* call ops->close */ -#define PHP_STREAM_FREE_RELEASE_STREAM 2 /* pefree(stream) */ -#define PHP_STREAM_FREE_PRESERVE_HANDLE 4 /* tell ops->close to not close it's underlying handle */ -#define PHP_STREAM_FREE_RSRC_DTOR 8 /* called from the resource list dtor */ -#define PHP_STREAM_FREE_PERSISTENT 16 /* manually freeing a persistent connection */ -#define PHP_STREAM_FREE_IGNORE_ENCLOSING 32 /* don't close the enclosing stream instead */ -#define PHP_STREAM_FREE_KEEP_RSRC 64 /* keep associated zend_resource */ -#define PHP_STREAM_FREE_CLOSE (PHP_STREAM_FREE_CALL_DTOR | PHP_STREAM_FREE_RELEASE_STREAM) -#define PHP_STREAM_FREE_CLOSE_CASTED (PHP_STREAM_FREE_CLOSE | PHP_STREAM_FREE_PRESERVE_HANDLE) -#define PHP_STREAM_FREE_CLOSE_PERSISTENT (PHP_STREAM_FREE_CLOSE | PHP_STREAM_FREE_PERSISTENT) - -PHPAPI int _php_stream_free(php_stream *stream, int close_options); -#define php_stream_free(stream, close_options) _php_stream_free((stream), (close_options)) -#define php_stream_close(stream) _php_stream_free((stream), PHP_STREAM_FREE_CLOSE) -#define php_stream_pclose(stream) _php_stream_free((stream), PHP_STREAM_FREE_CLOSE_PERSISTENT) - -PHPAPI int _php_stream_seek(php_stream *stream, zend_off_t offset, int whence); -#define php_stream_rewind(stream) _php_stream_seek((stream), 0L, SEEK_SET) -#define php_stream_seek(stream, offset, whence) _php_stream_seek((stream), (offset), (whence)) - -PHPAPI zend_off_t _php_stream_tell(php_stream *stream); -#define php_stream_tell(stream) _php_stream_tell((stream)) - -PHPAPI ssize_t _php_stream_read(php_stream *stream, char *buf, size_t count); -#define php_stream_read(stream, buf, count) _php_stream_read((stream), (buf), (count)) - -PHPAPI zend_string *php_stream_read_to_str(php_stream *stream, size_t len); - -PHPAPI ssize_t _php_stream_write(php_stream *stream, const char *buf, size_t count); -#define php_stream_write_string(stream, str) _php_stream_write(stream, str, strlen(str)) -#define php_stream_write(stream, buf, count) _php_stream_write(stream, (buf), (count)) - -PHPAPI int _php_stream_fill_read_buffer(php_stream *stream, size_t size); -#define php_stream_fill_read_buffer(stream, size) _php_stream_fill_read_buffer((stream), (size)) - -PHPAPI ssize_t _php_stream_printf(php_stream *stream, const char *fmt, ...) PHP_ATTRIBUTE_FORMAT(printf, 2, 3); - -/* php_stream_printf macro & function require */ -#define php_stream_printf _php_stream_printf - -PHPAPI int _php_stream_eof(php_stream *stream); -#define php_stream_eof(stream) _php_stream_eof((stream)) - -PHPAPI int _php_stream_getc(php_stream *stream); -#define php_stream_getc(stream) _php_stream_getc((stream)) - -PHPAPI int _php_stream_putc(php_stream *stream, int c); -#define php_stream_putc(stream, c) _php_stream_putc((stream), (c)) - -PHPAPI int _php_stream_flush(php_stream *stream, int closing); -#define php_stream_flush(stream) _php_stream_flush((stream), 0) - -PHPAPI char *_php_stream_get_line(php_stream *stream, char *buf, size_t maxlen, size_t *returned_len); -#define php_stream_gets(stream, buf, maxlen) _php_stream_get_line((stream), (buf), (maxlen), NULL) - -#define php_stream_get_line(stream, buf, maxlen, retlen) _php_stream_get_line((stream), (buf), (maxlen), (retlen)) -PHPAPI zend_string *php_stream_get_record(php_stream *stream, size_t maxlen, const char *delim, size_t delim_len); - -/* CAREFUL! this is equivalent to puts NOT fputs! */ -PHPAPI int _php_stream_puts(php_stream *stream, const char *buf); -#define php_stream_puts(stream, buf) _php_stream_puts((stream), (buf)) - -PHPAPI int _php_stream_stat(php_stream *stream, php_stream_statbuf *ssb); -#define php_stream_stat(stream, ssb) _php_stream_stat((stream), (ssb)) - -PHPAPI int _php_stream_stat_path(const char *path, int flags, php_stream_statbuf *ssb, php_stream_context *context); -#define php_stream_stat_path(path, ssb) _php_stream_stat_path((path), 0, (ssb), NULL) -#define php_stream_stat_path_ex(path, flags, ssb, context) _php_stream_stat_path((path), (flags), (ssb), (context)) - -PHPAPI int _php_stream_mkdir(const char *path, int mode, int options, php_stream_context *context); -#define php_stream_mkdir(path, mode, options, context) _php_stream_mkdir(path, mode, options, context) - -PHPAPI int _php_stream_rmdir(const char *path, int options, php_stream_context *context); -#define php_stream_rmdir(path, options, context) _php_stream_rmdir(path, options, context) - -PHPAPI php_stream *_php_stream_opendir(const char *path, int options, php_stream_context *context STREAMS_DC); -#define php_stream_opendir(path, options, context) _php_stream_opendir((path), (options), (context) STREAMS_CC) -PHPAPI php_stream_dirent *_php_stream_readdir(php_stream *dirstream, php_stream_dirent *ent); -#define php_stream_readdir(dirstream, dirent) _php_stream_readdir((dirstream), (dirent)) -#define php_stream_closedir(dirstream) php_stream_close((dirstream)) -#define php_stream_rewinddir(dirstream) php_stream_rewind((dirstream)) - -PHPAPI int php_stream_dirent_alphasort(const zend_string **a, const zend_string **b); -PHPAPI int php_stream_dirent_alphasortr(const zend_string **a, const zend_string **b); - -PHPAPI int _php_stream_scandir(const char *dirname, zend_string **namelist[], int flags, php_stream_context *context, - int (*compare) (const zend_string **a, const zend_string **b)); -#define php_stream_scandir(dirname, namelist, context, compare) _php_stream_scandir((dirname), (namelist), 0, (context), (compare)) - -PHPAPI int _php_stream_set_option(php_stream *stream, int option, int value, void *ptrparam); -#define php_stream_set_option(stream, option, value, ptrvalue) _php_stream_set_option((stream), (option), (value), (ptrvalue)) - -#define php_stream_set_chunk_size(stream, size) _php_stream_set_option((stream), PHP_STREAM_OPTION_SET_CHUNK_SIZE, (size), NULL) - -END_EXTERN_C() - - -/* Flags for mkdir method in wrapper ops */ -#define PHP_STREAM_MKDIR_RECURSIVE 1 -/* define REPORT ERRORS 8 (below) */ - -/* Flags for rmdir method in wrapper ops */ -/* define REPORT_ERRORS 8 (below) */ - -/* Flags for url_stat method in wrapper ops */ -#define PHP_STREAM_URL_STAT_LINK 1 -#define PHP_STREAM_URL_STAT_QUIET 2 -#define PHP_STREAM_URL_STAT_NOCACHE 4 - -/* change the blocking mode of stream: value == 1 => blocking, value == 0 => non-blocking. */ -#define PHP_STREAM_OPTION_BLOCKING 1 - -/* change the buffering mode of stream. value is a PHP_STREAM_BUFFER_XXXX value, ptrparam is a ptr to a size_t holding - * the required buffer size */ -#define PHP_STREAM_OPTION_READ_BUFFER 2 -#define PHP_STREAM_OPTION_WRITE_BUFFER 3 - -#define PHP_STREAM_BUFFER_NONE 0 /* unbuffered */ -#define PHP_STREAM_BUFFER_LINE 1 /* line buffered */ -#define PHP_STREAM_BUFFER_FULL 2 /* fully buffered */ - -/* set the timeout duration for reads on the stream. ptrparam is a pointer to a struct timeval * */ -#define PHP_STREAM_OPTION_READ_TIMEOUT 4 -#define PHP_STREAM_OPTION_SET_CHUNK_SIZE 5 - -/* set or release lock on a stream */ -#define PHP_STREAM_OPTION_LOCKING 6 - -/* whether or not locking is supported */ -#define PHP_STREAM_LOCK_SUPPORTED 1 - -#define php_stream_supports_lock(stream) (_php_stream_set_option((stream), PHP_STREAM_OPTION_LOCKING, 0, (void *) PHP_STREAM_LOCK_SUPPORTED) == 0 ? 1 : 0) -#define php_stream_lock(stream, mode) _php_stream_set_option((stream), PHP_STREAM_OPTION_LOCKING, (mode), (void *) NULL) - -/* option code used by the php_stream_xport_XXX api */ -#define PHP_STREAM_OPTION_XPORT_API 7 /* see php_stream_transport.h */ -#define PHP_STREAM_OPTION_CRYPTO_API 8 /* see php_stream_transport.h */ -#define PHP_STREAM_OPTION_MMAP_API 9 /* see php_stream_mmap.h */ -#define PHP_STREAM_OPTION_TRUNCATE_API 10 - -#define PHP_STREAM_TRUNCATE_SUPPORTED 0 -#define PHP_STREAM_TRUNCATE_SET_SIZE 1 /* ptrparam is a pointer to a size_t */ - -#define php_stream_truncate_supported(stream) (_php_stream_set_option((stream), PHP_STREAM_OPTION_TRUNCATE_API, PHP_STREAM_TRUNCATE_SUPPORTED, NULL) == PHP_STREAM_OPTION_RETURN_OK ? 1 : 0) - -BEGIN_EXTERN_C() -PHPAPI int _php_stream_truncate_set_size(php_stream *stream, size_t newsize); -#define php_stream_truncate_set_size(stream, size) _php_stream_truncate_set_size((stream), (size)) -END_EXTERN_C() - -#define PHP_STREAM_OPTION_META_DATA_API 11 /* ptrparam is a zval* to which to add meta data information */ -#define php_stream_populate_meta_data(stream, zv) (_php_stream_set_option((stream), PHP_STREAM_OPTION_META_DATA_API, 0, zv) == PHP_STREAM_OPTION_RETURN_OK ? 1 : 0) - -/* Check if the stream is still "live"; for sockets/pipes this means the socket - * is still connected; for files, this does not really have meaning */ -#define PHP_STREAM_OPTION_CHECK_LIVENESS 12 /* no parameters */ - -/* Enable/disable blocking reads on anonymous pipes on Windows. */ -#define PHP_STREAM_OPTION_PIPE_BLOCKING 13 - -#define PHP_STREAM_OPTION_RETURN_OK 0 /* option set OK */ -#define PHP_STREAM_OPTION_RETURN_ERR -1 /* problem setting option */ -#define PHP_STREAM_OPTION_RETURN_NOTIMPL -2 /* underlying stream does not implement; streams can handle it instead */ - -/* copy up to maxlen bytes from src to dest. If maxlen is PHP_STREAM_COPY_ALL, - * copy until eof(src). */ -#define PHP_STREAM_COPY_ALL ((size_t)-1) - -BEGIN_EXTERN_C() -ZEND_ATTRIBUTE_DEPRECATED -PHPAPI size_t _php_stream_copy_to_stream(php_stream *src, php_stream *dest, size_t maxlen STREAMS_DC); -#define php_stream_copy_to_stream(src, dest, maxlen) _php_stream_copy_to_stream((src), (dest), (maxlen) STREAMS_CC) -PHPAPI int _php_stream_copy_to_stream_ex(php_stream *src, php_stream *dest, size_t maxlen, size_t *len STREAMS_DC); -#define php_stream_copy_to_stream_ex(src, dest, maxlen, len) _php_stream_copy_to_stream_ex((src), (dest), (maxlen), (len) STREAMS_CC) - - -/* read all data from stream and put into a buffer. Caller must free buffer - * when done. */ -PHPAPI zend_string *_php_stream_copy_to_mem(php_stream *src, size_t maxlen, int persistent STREAMS_DC); -#define php_stream_copy_to_mem(src, maxlen, persistent) _php_stream_copy_to_mem((src), (maxlen), (persistent) STREAMS_CC) - -/* output all data from a stream */ -PHPAPI ssize_t _php_stream_passthru(php_stream * src STREAMS_DC); -#define php_stream_passthru(stream) _php_stream_passthru((stream) STREAMS_CC) -END_EXTERN_C() - -#include "streams/php_stream_transport.h" -#include "streams/php_stream_plain_wrapper.h" -#include "streams/php_stream_glob_wrapper.h" -#include "streams/php_stream_userspace.h" -#include "streams/php_stream_mmap.h" - -/* coerce the stream into some other form */ -/* cast as a stdio FILE * */ -#define PHP_STREAM_AS_STDIO 0 -/* cast as a POSIX fd or socketd */ -#define PHP_STREAM_AS_FD 1 -/* cast as a socketd */ -#define PHP_STREAM_AS_SOCKETD 2 -/* cast as fd/socket for select purposes */ -#define PHP_STREAM_AS_FD_FOR_SELECT 3 - -/* try really, really hard to make sure the cast happens (avoid using this flag if possible) */ -#define PHP_STREAM_CAST_TRY_HARD 0x80000000 -#define PHP_STREAM_CAST_RELEASE 0x40000000 /* stream becomes invalid on success */ -#define PHP_STREAM_CAST_INTERNAL 0x20000000 /* stream cast for internal use */ -#define PHP_STREAM_CAST_MASK (PHP_STREAM_CAST_TRY_HARD | PHP_STREAM_CAST_RELEASE | PHP_STREAM_CAST_INTERNAL) -BEGIN_EXTERN_C() -PHPAPI int _php_stream_cast(php_stream *stream, int castas, void **ret, int show_err); -END_EXTERN_C() -/* use this to check if a stream can be cast into another form */ -#define php_stream_can_cast(stream, as) _php_stream_cast((stream), (as), NULL, 0) -#define php_stream_cast(stream, as, ret, show_err) _php_stream_cast((stream), (as), (ret), (show_err)) - -/* use this to check if a stream is of a particular type: - * PHPAPI int php_stream_is(php_stream *stream, php_stream_ops *ops); */ -#define php_stream_is(stream, anops) ((stream)->ops == anops) -#define PHP_STREAM_IS_STDIO &php_stream_stdio_ops - -#define php_stream_is_persistent(stream) (stream)->is_persistent - -/* Wrappers support */ - -#define IGNORE_PATH 0x00000000 -#define USE_PATH 0x00000001 -#define IGNORE_URL 0x00000002 -#define REPORT_ERRORS 0x00000008 - -/* If you don't need to write to the stream, but really need to - * be able to seek, use this flag in your options. */ -#define STREAM_MUST_SEEK 0x00000010 -/* If you are going to end up casting the stream into a FILE* or - * a socket, pass this flag and the streams/wrappers will not use - * buffering mechanisms while reading the headers, so that HTTP - * wrapped streams will work consistently. - * If you omit this flag, streams will use buffering and should end - * up working more optimally. - * */ -#define STREAM_WILL_CAST 0x00000020 - -/* this flag applies to php_stream_locate_url_wrapper */ -#define STREAM_LOCATE_WRAPPERS_ONLY 0x00000040 - -/* this flag is only used by include/require functions */ -#define STREAM_OPEN_FOR_INCLUDE 0x00000080 - -/* this flag tells streams to ONLY open urls */ -#define STREAM_USE_URL 0x00000100 - -/* this flag is used when only the headers from HTTP request are to be fetched */ -#define STREAM_ONLY_GET_HEADERS 0x00000200 - -/* don't apply open_basedir checks */ -#define STREAM_DISABLE_OPEN_BASEDIR 0x00000400 - -/* get (or create) a persistent version of the stream */ -#define STREAM_OPEN_PERSISTENT 0x00000800 - -/* use glob stream for directory open in plain files stream */ -#define STREAM_USE_GLOB_DIR_OPEN 0x00001000 - -/* don't check allow_url_fopen and allow_url_include */ -#define STREAM_DISABLE_URL_PROTECTION 0x00002000 - -/* assume the path passed in exists and is fully expanded, avoiding syscalls */ -#define STREAM_ASSUME_REALPATH 0x00004000 - -/* Allow blocking reads on anonymous pipes on Windows. */ -#define STREAM_USE_BLOCKING_PIPE 0x00008000 - -/* Antique - no longer has meaning */ -#define IGNORE_URL_WIN 0 - -int php_init_stream_wrappers(int module_number); -int php_shutdown_stream_wrappers(int module_number); -void php_shutdown_stream_hashes(void); -PHP_RSHUTDOWN_FUNCTION(streams); - -BEGIN_EXTERN_C() -PHPAPI int php_register_url_stream_wrapper(const char *protocol, const php_stream_wrapper *wrapper); -PHPAPI int php_unregister_url_stream_wrapper(const char *protocol); -PHPAPI int php_register_url_stream_wrapper_volatile(zend_string *protocol, php_stream_wrapper *wrapper); -PHPAPI int php_unregister_url_stream_wrapper_volatile(zend_string *protocol); -PHPAPI php_stream *_php_stream_open_wrapper_ex(const char *path, const char *mode, int options, zend_string **opened_path, php_stream_context *context STREAMS_DC); -PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, const char **path_for_open, int options); -PHPAPI const char *php_stream_locate_eol(php_stream *stream, zend_string *buf); - -#define php_stream_open_wrapper(path, mode, options, opened) _php_stream_open_wrapper_ex((path), (mode), (options), (opened), NULL STREAMS_CC) -#define php_stream_open_wrapper_ex(path, mode, options, opened, context) _php_stream_open_wrapper_ex((path), (mode), (options), (opened), (context) STREAMS_CC) - -/* pushes an error message onto the stack for a wrapper instance */ -PHPAPI void php_stream_wrapper_log_error(const php_stream_wrapper *wrapper, int options, const char *fmt, ...) PHP_ATTRIBUTE_FORMAT(printf, 3, 4); - -#define PHP_STREAM_UNCHANGED 0 /* orig stream was seekable anyway */ -#define PHP_STREAM_RELEASED 1 /* newstream should be used; origstream is no longer valid */ -#define PHP_STREAM_FAILED 2 /* an error occurred while attempting conversion */ -#define PHP_STREAM_CRITICAL 3 /* an error occurred; origstream is in an unknown state; you should close origstream */ -#define PHP_STREAM_NO_PREFERENCE 0 -#define PHP_STREAM_PREFER_STDIO 1 -#define PHP_STREAM_FORCE_CONVERSION 2 -/* DO NOT call this on streams that are referenced by resources! */ -PHPAPI int _php_stream_make_seekable(php_stream *origstream, php_stream **newstream, int flags STREAMS_DC); -#define php_stream_make_seekable(origstream, newstream, flags) _php_stream_make_seekable((origstream), (newstream), (flags) STREAMS_CC) - -/* Give other modules access to the url_stream_wrappers_hash and stream_filters_hash */ -PHPAPI HashTable *_php_stream_get_url_stream_wrappers_hash(void); -#define php_stream_get_url_stream_wrappers_hash() _php_stream_get_url_stream_wrappers_hash() -PHPAPI HashTable *php_stream_get_url_stream_wrappers_hash_global(void); -PHPAPI HashTable *_php_get_stream_filters_hash(void); -#define php_get_stream_filters_hash() _php_get_stream_filters_hash() -PHPAPI HashTable *php_get_stream_filters_hash_global(void); -extern const php_stream_wrapper_ops *php_stream_user_wrapper_ops; -END_EXTERN_C() -#endif - -/* Definitions for user streams */ -#define PHP_STREAM_IS_URL 1 - -/* Stream metadata definitions */ -/* Create if referred resource does not exist */ -#define PHP_STREAM_META_TOUCH 1 -#define PHP_STREAM_META_OWNER_NAME 2 -#define PHP_STREAM_META_OWNER 3 -#define PHP_STREAM_META_GROUP_NAME 4 -#define PHP_STREAM_META_GROUP 5 -#define PHP_STREAM_META_ACCESS 6 diff --git a/include/php/main/php_syslog.h b/include/php/main/php_syslog.h deleted file mode 100644 index 2c49926..0000000 --- a/include/php/main/php_syslog.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_SYSLOG_H -#define PHP_SYSLOG_H - -#include "php.h" - -#ifdef PHP_WIN32 -#include "win32/syslog.h" -#else -#include -#ifdef HAVE_SYSLOG_H -#include -#endif -#endif - -/* Syslog filters */ -#define PHP_SYSLOG_FILTER_ALL 0 -#define PHP_SYSLOG_FILTER_NO_CTRL 1 -#define PHP_SYSLOG_FILTER_ASCII 2 -#define PHP_SYSLOG_FILTER_RAW 3 - -BEGIN_EXTERN_C() -PHPAPI void php_syslog(int, const char *format, ...); -PHPAPI void php_openlog(const char *, int, int); -END_EXTERN_C() - -#endif diff --git a/include/php/main/php_ticks.h b/include/php/main/php_ticks.h deleted file mode 100644 index 5b2bb05..0000000 --- a/include/php/main/php_ticks.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stig Bakken | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_TICKS_H -#define PHP_TICKS_H - -int php_startup_ticks(void); -void php_deactivate_ticks(void); -void php_shutdown_ticks(void); -void php_run_ticks(int count); - -BEGIN_EXTERN_C() -PHPAPI void php_add_tick_function(void (*func)(int, void *), void *arg); -PHPAPI void php_remove_tick_function(void (*func)(int, void *), void * arg); -END_EXTERN_C() - -#endif diff --git a/include/php/main/php_variables.h b/include/php/main/php_variables.h deleted file mode 100644 index 7dc33d3..0000000 --- a/include/php/main/php_variables.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Rasmus Lerdorf | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#ifndef PHP_VARIABLES_H -#define PHP_VARIABLES_H - -#include "php.h" -#include "SAPI.h" - -#define PARSE_POST 0 -#define PARSE_GET 1 -#define PARSE_COOKIE 2 -#define PARSE_STRING 3 -#define PARSE_ENV 4 -#define PARSE_SERVER 5 -#define PARSE_SESSION 6 - -BEGIN_EXTERN_C() -void php_startup_auto_globals(void); -extern PHPAPI void (*php_import_environment_variables)(zval *array_ptr); -PHPAPI void php_register_variable(char *var, char *val, zval *track_vars_array); -/* binary-safe version */ -PHPAPI void php_register_variable_safe(char *var, char *val, size_t val_len, zval *track_vars_array); -PHPAPI void php_register_variable_ex(char *var, zval *val, zval *track_vars_array); - -PHPAPI void php_build_argv(char *s, zval *track_vars_array); -PHPAPI int php_hash_environment(void); -END_EXTERN_C() - -#define NUM_TRACK_VARS 6 - -#endif /* PHP_VARIABLES_H */ diff --git a/include/php/main/php_version.h b/include/php/main/php_version.h deleted file mode 100644 index 28a81f6..0000000 --- a/include/php/main/php_version.h +++ /dev/null @@ -1,8 +0,0 @@ -/* automatically generated by configure */ -/* edit configure.ac to change version number */ -#define PHP_MAJOR_VERSION 7 -#define PHP_MINOR_VERSION 4 -#define PHP_RELEASE_VERSION 32 -#define PHP_EXTRA_VERSION "" -#define PHP_VERSION "7.4.32" -#define PHP_VERSION_ID 70432 diff --git a/include/php/main/rfc1867.h b/include/php/main/rfc1867.h deleted file mode 100644 index bfb9bb5..0000000 --- a/include/php/main/rfc1867.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: | - +----------------------------------------------------------------------+ -*/ - -#ifndef RFC1867_H -#define RFC1867_H - -#include "SAPI.h" - -#define MULTIPART_CONTENT_TYPE "multipart/form-data" -#define MULTIPART_EVENT_START 0 -#define MULTIPART_EVENT_FORMDATA 1 -#define MULTIPART_EVENT_FILE_START 2 -#define MULTIPART_EVENT_FILE_DATA 3 -#define MULTIPART_EVENT_FILE_END 4 -#define MULTIPART_EVENT_END 5 - -typedef struct _multipart_event_start { - size_t content_length; -} multipart_event_start; - -typedef struct _multipart_event_formdata { - size_t post_bytes_processed; - char *name; - char **value; - size_t length; - size_t *newlength; -} multipart_event_formdata; - -typedef struct _multipart_event_file_start { - size_t post_bytes_processed; - char *name; - char **filename; -} multipart_event_file_start; - -typedef struct _multipart_event_file_data { - size_t post_bytes_processed; - zend_off_t offset; - char *data; - size_t length; - size_t *newlength; -} multipart_event_file_data; - -typedef struct _multipart_event_file_end { - size_t post_bytes_processed; - char *temp_filename; - int cancel_upload; -} multipart_event_file_end; - -typedef struct _multipart_event_end { - size_t post_bytes_processed; -} multipart_event_end; - -typedef int (*php_rfc1867_encoding_translation_t)(void); -typedef void (*php_rfc1867_get_detect_order_t)(const zend_encoding ***list, size_t *list_size); -typedef void (*php_rfc1867_set_input_encoding_t)(const zend_encoding *encoding); -typedef char* (*php_rfc1867_getword_t)(const zend_encoding *encoding, char **line, char stop); -typedef char* (*php_rfc1867_getword_conf_t)(const zend_encoding *encoding, char *str); -typedef char* (*php_rfc1867_basename_t)(const zend_encoding *encoding, char *str); - -SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler); - -PHPAPI void destroy_uploaded_files_hash(void); -void php_rfc1867_register_constants(void); -extern PHPAPI int (*php_rfc1867_callback)(unsigned int event, void *event_data, void **extra); - -SAPI_API void php_rfc1867_set_multibyte_callbacks( - php_rfc1867_encoding_translation_t encoding_translation, - php_rfc1867_get_detect_order_t get_detect_order, - php_rfc1867_set_input_encoding_t set_input_encoding, - php_rfc1867_getword_t getword, - php_rfc1867_getword_conf_t getword_conf, - php_rfc1867_basename_t basename); - -#endif /* RFC1867_H */ diff --git a/include/php/main/snprintf.h b/include/php/main/snprintf.h deleted file mode 100644 index 93d2034..0000000 --- a/include/php/main/snprintf.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Stig Sæther Bakken | - | Marcus Boerger | - +----------------------------------------------------------------------+ -*/ - -/* - -Comparing: sprintf, snprintf, slprintf, spprintf - -sprintf offers the ability to make a lot of failures since it does not know - the size of the buffer it uses. Therefore usage of sprintf often - results in possible entries for buffer overrun attacks. So please - use this version only if you are sure the call is safe. sprintf - always terminstes the buffer it writes to. - -snprintf knows the buffers size and will not write behind it. But you will - have to use either a static buffer or allocate a dynamic buffer - before being able to call the function. In other words you must - be sure that you really know the maximum size of the buffer required. - A bad thing is having a big maximum while in most cases you would - only need a small buffer. If the size of the resulting string is - longer or equal to the buffer size than the buffer is not terminated. - The function also returns the number of chars not including the - terminating \0 that were needed to fully comply to the print request. - -slprintf same as snprintf with the difference that it actually returns the - length printed not including the terminating \0. - -spprintf is the dynamical version of snprintf. It allocates the buffer in size - as needed and allows a maximum setting as snprintf (turn this feature - off by setting max_len to 0). spprintf is a little bit slower than - snprintf and offers possible memory leakes if you miss freeing the - buffer allocated by the function. Therefore this function should be - used where either no maximum is known or the maximum is much bigger - than normal size required. spprintf always terminates the buffer. - -Example: - - #define MAX 1024 | #define MAX 1024 | #define MAX 1024 - char buffer[MAX] | char buffer[MAX] | char *buffer; - | | - | | // No need to initialize buffer: - | | // spprintf ignores value of buffer - sprintf(buffer, "test"); | snprintf(buffer, MAX, "test"); | spprintf(&buffer, MAX, "text"); - | | if (!buffer) - | | return OUT_OF_MEMORY - // sprintf always terminates | // manual termination of | // spprintf allays terminates buffer - // buffer | // buffer *IS* required | - | buffer[MAX-1] = 0; | - action_with_buffer(buffer); | action_with_buffer(buffer); | action_with_buffer(buffer); - | | efree(buffer); -*/ - -#ifndef SNPRINTF_H -#define SNPRINTF_H - -typedef int bool_int; - -typedef enum { - NO = 0, YES = 1 -} boolean_e; - - -BEGIN_EXTERN_C() -PHPAPI int ap_php_slprintf(char *buf, size_t len, const char *format,...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4); -PHPAPI int ap_php_vslprintf(char *buf, size_t len, const char *format, va_list ap); -PHPAPI int ap_php_snprintf(char *, size_t, const char *, ...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4); -PHPAPI int ap_php_vsnprintf(char *, size_t, const char *, va_list ap); -PHPAPI int ap_php_vasprintf(char **buf, const char *format, va_list ap); -PHPAPI int ap_php_asprintf(char **buf, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); -PHPAPI char * php_gcvt(double value, int ndigit, char dec_point, char exponent, char *buf); -PHPAPI char * php_0cvt(double value, int ndigit, char dec_point, char exponent, char *buf); -PHPAPI char * php_conv_fp(char format, double num, - boolean_e add_dp, int precision, char dec_point, bool_int * is_negative, char *buf, size_t *len); - -END_EXTERN_C() - -#ifdef slprintf -#undef slprintf -#endif -#define slprintf ap_php_slprintf - -#ifdef vslprintf -#undef vslprintf -#endif -#define vslprintf ap_php_vslprintf - -#ifdef snprintf -#undef snprintf -#endif -#define snprintf ap_php_snprintf - -#ifdef vsnprintf -#undef vsnprintf -#endif -#define vsnprintf ap_php_vsnprintf - -#ifndef HAVE_VASPRINTF -#define vasprintf ap_php_vasprintf -#endif - -#ifndef HAVE_ASPRINTF -#define asprintf ap_php_asprintf -#endif - -typedef enum { - LM_STD = 0, -#if SIZEOF_INTMAX_T - LM_INTMAX_T, -#endif -#if SIZEOF_PTRDIFF_T - LM_PTRDIFF_T, -#endif -#if SIZEOF_LONG_LONG - LM_LONG_LONG, -#endif - LM_SIZE_T, - LM_LONG, - LM_LONG_DOUBLE, - LM_PHP_INT_T -} length_modifier_e; - -#ifdef PHP_WIN32 -# define WIDE_INT __int64 -#elif SIZEOF_LONG_LONG -# define WIDE_INT long long -#else -# define WIDE_INT long -#endif -typedef WIDE_INT wide_int; -typedef unsigned WIDE_INT u_wide_int; - -PHPAPI char * ap_php_conv_10(wide_int num, bool_int is_unsigned, - bool_int * is_negative, char *buf_end, size_t *len); - -PHPAPI char * ap_php_conv_p2(u_wide_int num, int nbits, - char format, char *buf_end, size_t *len); - -/* The maximum precision that's allowed for float conversion. Does not include - * decimal separator, exponent, sign, terminator. Currently does not affect - * the modes e/f, only g/k/H, as those have a different limit enforced at - * another level (see NDIG in php_conv_fp()). - * Applies to the formatting functions of both spprintf.c and snprintf.c, which - * use equally sized buffers of MAX_BUF_SIZE = 512 to hold the result of the - * call to php_gcvt(). - * This should be reasonably smaller than MAX_BUF_SIZE (I think MAX_BUF_SIZE - 9 - * should be enough, but let's give some more space) */ -#define FORMAT_CONV_MAX_PRECISION 500 - -#endif /* SNPRINTF_H */ diff --git a/include/php/main/spprintf.h b/include/php/main/spprintf.h deleted file mode 100644 index bbb7add..0000000 --- a/include/php/main/spprintf.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -#ifndef SPPRINTF_H -#define SPPRINTF_H - -#include "snprintf.h" -#include "zend_smart_str_public.h" -#include "zend_smart_string_public.h" - -BEGIN_EXTERN_C() -PHPAPI void php_printf_to_smart_string(smart_string *buf, const char *format, va_list ap); -PHPAPI void php_printf_to_smart_str(smart_str *buf, const char *format, va_list ap); -END_EXTERN_C() - -#define spprintf zend_spprintf -#define strpprintf zend_strpprintf -#define vspprintf zend_vspprintf -#define vstrpprintf zend_vstrpprintf - -#endif /* SPPRINTF_H */ diff --git a/include/php/main/streams/php_stream_context.h b/include/php/main/streams/php_stream_context.h deleted file mode 100644 index c477dda..0000000 --- a/include/php/main/streams/php_stream_context.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ - */ - -/* Stream context and status notification related definitions */ - -/* callback for status notifications */ -typedef void (*php_stream_notification_func)(php_stream_context *context, - int notifycode, int severity, - char *xmsg, int xcode, - size_t bytes_sofar, size_t bytes_max, - void * ptr); - -#define PHP_STREAM_NOTIFIER_PROGRESS 1 - -/* Attempt to fetch context from the zval passed, - If no context was passed, use the default context - The default context has not yet been created, do it now. */ -#define php_stream_context_from_zval(zcontext, nocontext) ( \ - (zcontext) ? zend_fetch_resource_ex(zcontext, "Stream-Context", php_le_stream_context()) : \ - (nocontext) ? NULL : \ - FG(default_context) ? FG(default_context) : \ - (FG(default_context) = php_stream_context_alloc()) ) - -#define php_stream_context_to_zval(context, zval) { ZVAL_RES(zval, (context)->res); GC_ADDREF((context)->res); } - -typedef struct _php_stream_notifier php_stream_notifier; - -struct _php_stream_notifier { - php_stream_notification_func func; - void (*dtor)(php_stream_notifier *notifier); - zval ptr; - int mask; - size_t progress, progress_max; /* position for progress notification */ -}; - -struct _php_stream_context { - php_stream_notifier *notifier; - zval options; /* hash keyed by wrapper family or specific wrapper */ - zend_resource *res; /* used for auto-cleanup */ -}; - -BEGIN_EXTERN_C() -PHPAPI void php_stream_context_free(php_stream_context *context); -PHPAPI php_stream_context *php_stream_context_alloc(void); -PHPAPI zval *php_stream_context_get_option(php_stream_context *context, - const char *wrappername, const char *optionname); -PHPAPI int php_stream_context_set_option(php_stream_context *context, - const char *wrappername, const char *optionname, zval *optionvalue); - -PHPAPI php_stream_notifier *php_stream_notification_alloc(void); -PHPAPI void php_stream_notification_free(php_stream_notifier *notifier); -END_EXTERN_C() - -/* not all notification codes are implemented */ -#define PHP_STREAM_NOTIFY_RESOLVE 1 -#define PHP_STREAM_NOTIFY_CONNECT 2 -#define PHP_STREAM_NOTIFY_AUTH_REQUIRED 3 -#define PHP_STREAM_NOTIFY_MIME_TYPE_IS 4 -#define PHP_STREAM_NOTIFY_FILE_SIZE_IS 5 -#define PHP_STREAM_NOTIFY_REDIRECTED 6 -#define PHP_STREAM_NOTIFY_PROGRESS 7 -#define PHP_STREAM_NOTIFY_COMPLETED 8 -#define PHP_STREAM_NOTIFY_FAILURE 9 -#define PHP_STREAM_NOTIFY_AUTH_RESULT 10 - -#define PHP_STREAM_NOTIFY_SEVERITY_INFO 0 -#define PHP_STREAM_NOTIFY_SEVERITY_WARN 1 -#define PHP_STREAM_NOTIFY_SEVERITY_ERR 2 - -BEGIN_EXTERN_C() -PHPAPI void php_stream_notification_notify(php_stream_context *context, int notifycode, int severity, - char *xmsg, int xcode, size_t bytes_sofar, size_t bytes_max, void * ptr); -PHPAPI php_stream_context *php_stream_context_set(php_stream *stream, php_stream_context *context); -END_EXTERN_C() - -#define php_stream_notify_info(context, code, xmsg, xcode) do { if ((context) && (context)->notifier) { \ - php_stream_notification_notify((context), (code), PHP_STREAM_NOTIFY_SEVERITY_INFO, \ - (xmsg), (xcode), 0, 0, NULL); } } while (0) - -#define php_stream_notify_progress(context, bsofar, bmax) do { if ((context) && (context)->notifier) { \ - php_stream_notification_notify((context), PHP_STREAM_NOTIFY_PROGRESS, PHP_STREAM_NOTIFY_SEVERITY_INFO, \ - NULL, 0, (bsofar), (bmax), NULL); } } while(0) - -#define php_stream_notify_progress_init(context, sofar, bmax) do { if ((context) && (context)->notifier) { \ - (context)->notifier->progress = (sofar); \ - (context)->notifier->progress_max = (bmax); \ - (context)->notifier->mask |= PHP_STREAM_NOTIFIER_PROGRESS; \ - php_stream_notify_progress((context), (sofar), (bmax)); } } while (0) - -#define php_stream_notify_progress_increment(context, dsofar, dmax) do { if ((context) && (context)->notifier && (context)->notifier->mask & PHP_STREAM_NOTIFIER_PROGRESS) { \ - (context)->notifier->progress += (dsofar); \ - (context)->notifier->progress_max += (dmax); \ - php_stream_notify_progress((context), (context)->notifier->progress, (context)->notifier->progress_max); } } while (0) - -#define php_stream_notify_file_size(context, file_size, xmsg, xcode) do { if ((context) && (context)->notifier) { \ - php_stream_notification_notify((context), PHP_STREAM_NOTIFY_FILE_SIZE_IS, PHP_STREAM_NOTIFY_SEVERITY_INFO, \ - (xmsg), (xcode), 0, (file_size), NULL); } } while(0) - -#define php_stream_notify_error(context, code, xmsg, xcode) do { if ((context) && (context)->notifier) {\ - php_stream_notification_notify((context), (code), PHP_STREAM_NOTIFY_SEVERITY_ERR, \ - (xmsg), (xcode), 0, 0, NULL); } } while(0) diff --git a/include/php/main/streams/php_stream_filter_api.h b/include/php/main/streams/php_stream_filter_api.h deleted file mode 100644 index 4d5760e..0000000 --- a/include/php/main/streams/php_stream_filter_api.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - | With suggestions from: | - | Moriyoshi Koizumi | - | Sara Golemon | - +----------------------------------------------------------------------+ - */ - -/* The filter API works on the principle of "Bucket-Brigades". This is - * partially inspired by the Apache 2 method of doing things, although - * it is intentionally a light-weight implementation. - * - * Each stream can have a chain of filters for reading and another for writing. - * - * When data is written to the stream, it is placed into a bucket and placed at - * the start of the input brigade. - * - * The first filter in the chain is invoked on the brigade and (depending on - * it's return value), the next filter is invoked and so on. - * */ - -#define PHP_STREAM_FILTER_READ 0x0001 -#define PHP_STREAM_FILTER_WRITE 0x0002 -#define PHP_STREAM_FILTER_ALL (PHP_STREAM_FILTER_READ | PHP_STREAM_FILTER_WRITE) - -typedef struct _php_stream_bucket php_stream_bucket; -typedef struct _php_stream_bucket_brigade php_stream_bucket_brigade; - -struct _php_stream_bucket { - php_stream_bucket *next, *prev; - php_stream_bucket_brigade *brigade; - - char *buf; - size_t buflen; - /* if non-zero, buf should be pefreed when the bucket is destroyed */ - uint8_t own_buf; - uint8_t is_persistent; - - /* destroy this struct when refcount falls to zero */ - int refcount; -}; - -struct _php_stream_bucket_brigade { - php_stream_bucket *head, *tail; -}; - -typedef enum { - PSFS_ERR_FATAL, /* error in data stream */ - PSFS_FEED_ME, /* filter needs more data; stop processing chain until more is available */ - PSFS_PASS_ON /* filter generated output buckets; pass them on to next in chain */ -} php_stream_filter_status_t; - -/* Buckets API. */ -BEGIN_EXTERN_C() -PHPAPI php_stream_bucket *php_stream_bucket_new(php_stream *stream, char *buf, size_t buflen, uint8_t own_buf, uint8_t buf_persistent); -PHPAPI int php_stream_bucket_split(php_stream_bucket *in, php_stream_bucket **left, php_stream_bucket **right, size_t length); -PHPAPI void php_stream_bucket_delref(php_stream_bucket *bucket); -#define php_stream_bucket_addref(bucket) (bucket)->refcount++ -PHPAPI void php_stream_bucket_prepend(php_stream_bucket_brigade *brigade, php_stream_bucket *bucket); -PHPAPI void php_stream_bucket_append(php_stream_bucket_brigade *brigade, php_stream_bucket *bucket); -PHPAPI void php_stream_bucket_unlink(php_stream_bucket *bucket); -PHPAPI php_stream_bucket *php_stream_bucket_make_writeable(php_stream_bucket *bucket); -END_EXTERN_C() - -#define PSFS_FLAG_NORMAL 0 /* regular read/write */ -#define PSFS_FLAG_FLUSH_INC 1 /* an incremental flush */ -#define PSFS_FLAG_FLUSH_CLOSE 2 /* final flush prior to closing */ - -typedef struct _php_stream_filter_ops { - - php_stream_filter_status_t (*filter)( - php_stream *stream, - php_stream_filter *thisfilter, - php_stream_bucket_brigade *buckets_in, - php_stream_bucket_brigade *buckets_out, - size_t *bytes_consumed, - int flags - ); - - void (*dtor)(php_stream_filter *thisfilter); - - const char *label; - -} php_stream_filter_ops; - -typedef struct _php_stream_filter_chain { - php_stream_filter *head, *tail; - - /* Owning stream */ - php_stream *stream; -} php_stream_filter_chain; - -struct _php_stream_filter { - const php_stream_filter_ops *fops; - zval abstract; /* for use by filter implementation */ - php_stream_filter *next; - php_stream_filter *prev; - int is_persistent; - - /* link into stream and chain */ - php_stream_filter_chain *chain; - - /* buffered buckets */ - php_stream_bucket_brigade buffer; - - /* filters are auto_registered when they're applied */ - zend_resource *res; -}; - -/* stack filter onto a stream */ -BEGIN_EXTERN_C() -PHPAPI void _php_stream_filter_prepend(php_stream_filter_chain *chain, php_stream_filter *filter); -PHPAPI int php_stream_filter_prepend_ex(php_stream_filter_chain *chain, php_stream_filter *filter); -PHPAPI void _php_stream_filter_append(php_stream_filter_chain *chain, php_stream_filter *filter); -PHPAPI int php_stream_filter_append_ex(php_stream_filter_chain *chain, php_stream_filter *filter); -PHPAPI int _php_stream_filter_flush(php_stream_filter *filter, int finish); -PHPAPI php_stream_filter *php_stream_filter_remove(php_stream_filter *filter, int call_dtor); -PHPAPI void php_stream_filter_free(php_stream_filter *filter); -PHPAPI php_stream_filter *_php_stream_filter_alloc(const php_stream_filter_ops *fops, void *abstract, uint8_t persistent STREAMS_DC); -END_EXTERN_C() -#define php_stream_filter_alloc(fops, thisptr, persistent) _php_stream_filter_alloc((fops), (thisptr), (persistent) STREAMS_CC) -#define php_stream_filter_alloc_rel(fops, thisptr, persistent) _php_stream_filter_alloc((fops), (thisptr), (persistent) STREAMS_REL_CC) -#define php_stream_filter_prepend(chain, filter) _php_stream_filter_prepend((chain), (filter)) -#define php_stream_filter_append(chain, filter) _php_stream_filter_append((chain), (filter)) -#define php_stream_filter_flush(filter, finish) _php_stream_filter_flush((filter), (finish)) - -#define php_stream_is_filtered(stream) ((stream)->readfilters.head || (stream)->writefilters.head) - -typedef struct _php_stream_filter_factory { - php_stream_filter *(*create_filter)(const char *filtername, zval *filterparams, uint8_t persistent); -} php_stream_filter_factory; - -BEGIN_EXTERN_C() -PHPAPI int php_stream_filter_register_factory(const char *filterpattern, const php_stream_filter_factory *factory); -PHPAPI int php_stream_filter_unregister_factory(const char *filterpattern); -PHPAPI int php_stream_filter_register_factory_volatile(zend_string *filterpattern, const php_stream_filter_factory *factory); -PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval *filterparams, uint8_t persistent); -END_EXTERN_C() diff --git a/include/php/main/streams/php_stream_glob_wrapper.h b/include/php/main/streams/php_stream_glob_wrapper.h deleted file mode 100644 index 644e5ab..0000000 --- a/include/php/main/streams/php_stream_glob_wrapper.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Marcus Boerger | - +----------------------------------------------------------------------+ - */ - -PHPAPI extern const php_stream_wrapper php_glob_stream_wrapper; -PHPAPI extern const php_stream_ops php_glob_stream_ops; - -BEGIN_EXTERN_C() - -PHPAPI char* _php_glob_stream_get_path(php_stream *stream, size_t *plen STREAMS_DC); -#define php_glob_stream_get_path(stream, plen) _php_glob_stream_get_path((stream), (plen) STREAMS_CC) - -PHPAPI char* _php_glob_stream_get_pattern(php_stream *stream, size_t *plen STREAMS_DC); -#define php_glob_stream_get_pattern(stream, plen) _php_glob_stream_get_pattern((stream), (plen) STREAMS_CC) - -PHPAPI int _php_glob_stream_get_count(php_stream *stream, int *pflags STREAMS_DC); -#define php_glob_stream_get_count(stream, pflags) _php_glob_stream_get_count((stream), (pflags) STREAMS_CC) - -END_EXTERN_C() diff --git a/include/php/main/streams/php_stream_mmap.h b/include/php/main/streams/php_stream_mmap.h deleted file mode 100644 index 40288cc..0000000 --- a/include/php/main/streams/php_stream_mmap.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -/* Memory Mapping interface for streams. - * The intention is to provide a uniform interface over the most common - * operations that are used within PHP itself, rather than a complete - * API for all memory mapping needs. - * - * ATM, we support only mmap(), but win32 memory mapping support will - * follow soon. - * */ - -typedef enum { - /* Does the stream support mmap ? */ - PHP_STREAM_MMAP_SUPPORTED, - /* Request a range and offset to be mapped; - * while mapped, you MUST NOT use any read/write functions - * on the stream (win9x compatibility) */ - PHP_STREAM_MMAP_MAP_RANGE, - /* Unmap the last range that was mapped for the stream */ - PHP_STREAM_MMAP_UNMAP -} php_stream_mmap_operation_t; - -typedef enum { - PHP_STREAM_MAP_MODE_READONLY, - PHP_STREAM_MAP_MODE_READWRITE, - PHP_STREAM_MAP_MODE_SHARED_READONLY, - PHP_STREAM_MAP_MODE_SHARED_READWRITE -} php_stream_mmap_access_t; - -typedef struct { - /* requested offset and length. - * If length is 0, the whole file is mapped */ - size_t offset; - size_t length; - - php_stream_mmap_access_t mode; - - /* returned mapped address */ - char *mapped; - -} php_stream_mmap_range; - -#define PHP_STREAM_MMAP_ALL 0 - -#define PHP_STREAM_MMAP_MAX (512 * 1024 * 1024) - -#define php_stream_mmap_supported(stream) (_php_stream_set_option((stream), PHP_STREAM_OPTION_MMAP_API, PHP_STREAM_MMAP_SUPPORTED, NULL) == 0 ? 1 : 0) - -/* Returns 1 if the stream in its current state can be memory mapped, - * 0 otherwise */ -#define php_stream_mmap_possible(stream) (!php_stream_is_filtered((stream)) && php_stream_mmap_supported((stream))) - -BEGIN_EXTERN_C() -PHPAPI char *_php_stream_mmap_range(php_stream *stream, size_t offset, size_t length, php_stream_mmap_access_t mode, size_t *mapped_len); -#define php_stream_mmap_range(stream, offset, length, mode, mapped_len) _php_stream_mmap_range((stream), (offset), (length), (mode), (mapped_len)) - -/* un-maps the last mapped range */ -PHPAPI int _php_stream_mmap_unmap(php_stream *stream); -#define php_stream_mmap_unmap(stream) _php_stream_mmap_unmap((stream)) - -PHPAPI int _php_stream_mmap_unmap_ex(php_stream *stream, zend_off_t readden); -#define php_stream_mmap_unmap_ex(stream, readden) _php_stream_mmap_unmap_ex((stream), (readden)) -END_EXTERN_C() diff --git a/include/php/main/streams/php_stream_plain_wrapper.h b/include/php/main/streams/php_stream_plain_wrapper.h deleted file mode 100644 index 4af8b86..0000000 --- a/include/php/main/streams/php_stream_plain_wrapper.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ - */ - -/* definitions for the plain files wrapper */ - -/* operations for a plain file; use the php_stream_fopen_XXX funcs below */ -PHPAPI extern php_stream_ops php_stream_stdio_ops; -PHPAPI extern /*const*/ php_stream_wrapper php_plain_files_wrapper; - -BEGIN_EXTERN_C() - -/* like fopen, but returns a stream */ -PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, zend_string **opened_path, int options STREAMS_DC); -#define php_stream_fopen(filename, mode, opened) _php_stream_fopen((filename), (mode), (opened), 0 STREAMS_CC) - -PHPAPI php_stream *_php_stream_fopen_with_path(const char *filename, const char *mode, const char *path, zend_string **opened_path, int options STREAMS_DC); -#define php_stream_fopen_with_path(filename, mode, path, opened) _php_stream_fopen_with_path((filename), (mode), (path), (opened), 0 STREAMS_CC) - -PHPAPI php_stream *_php_stream_fopen_from_file(FILE *file, const char *mode STREAMS_DC); -#define php_stream_fopen_from_file(file, mode) _php_stream_fopen_from_file((file), (mode) STREAMS_CC) - -PHPAPI php_stream *_php_stream_fopen_from_fd(int fd, const char *mode, const char *persistent_id STREAMS_DC); -#define php_stream_fopen_from_fd(fd, mode, persistent_id) _php_stream_fopen_from_fd((fd), (mode), (persistent_id) STREAMS_CC) - -PHPAPI php_stream *_php_stream_fopen_from_pipe(FILE *file, const char *mode STREAMS_DC); -#define php_stream_fopen_from_pipe(file, mode) _php_stream_fopen_from_pipe((file), (mode) STREAMS_CC) - -PHPAPI php_stream *_php_stream_fopen_tmpfile(int dummy STREAMS_DC); -#define php_stream_fopen_tmpfile() _php_stream_fopen_tmpfile(0 STREAMS_CC) - -PHPAPI php_stream *_php_stream_fopen_temporary_file(const char *dir, const char *pfx, zend_string **opened_path STREAMS_DC); -#define php_stream_fopen_temporary_file(dir, pfx, opened_path) _php_stream_fopen_temporary_file((dir), (pfx), (opened_path) STREAMS_CC) - -/* This is a utility API for extensions that are opening a stream, converting it - * to a FILE* and then closing it again. Be warned that fileno() on the result - * will most likely fail on systems with fopencookie. */ -PHPAPI FILE * _php_stream_open_wrapper_as_file(char * path, char * mode, int options, zend_string **opened_path STREAMS_DC); -#define php_stream_open_wrapper_as_file(path, mode, options, opened_path) _php_stream_open_wrapper_as_file((path), (mode), (options), (opened_path) STREAMS_CC) - -/* parse standard "fopen" modes into open() flags */ -PHPAPI int php_stream_parse_fopen_modes(const char *mode, int *open_flags); - -END_EXTERN_C() diff --git a/include/php/main/streams/php_stream_transport.h b/include/php/main/streams/php_stream_transport.h deleted file mode 100644 index f49d9c7..0000000 --- a/include/php/main/streams/php_stream_transport.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -#ifdef PHP_WIN32 -#include "config.w32.h" -#include -#endif - -#if HAVE_SYS_SOCKET_H -# include -#endif - -typedef php_stream *(php_stream_transport_factory_func)(const char *proto, size_t protolen, - const char *resourcename, size_t resourcenamelen, - const char *persistent_id, int options, int flags, - struct timeval *timeout, - php_stream_context *context STREAMS_DC); -typedef php_stream_transport_factory_func *php_stream_transport_factory; - -BEGIN_EXTERN_C() -PHPAPI int php_stream_xport_register(const char *protocol, php_stream_transport_factory factory); -PHPAPI int php_stream_xport_unregister(const char *protocol); - -#define STREAM_XPORT_CLIENT 0 -#define STREAM_XPORT_SERVER 1 - -#define STREAM_XPORT_CONNECT 2 -#define STREAM_XPORT_BIND 4 -#define STREAM_XPORT_LISTEN 8 -#define STREAM_XPORT_CONNECT_ASYNC 16 - -/* Open a client or server socket connection */ -PHPAPI php_stream *_php_stream_xport_create(const char *name, size_t namelen, int options, - int flags, const char *persistent_id, - struct timeval *timeout, - php_stream_context *context, - zend_string **error_string, - int *error_code - STREAMS_DC); - -#define php_stream_xport_create(name, namelen, options, flags, persistent_id, timeout, context, estr, ecode) \ - _php_stream_xport_create(name, namelen, options, flags, persistent_id, timeout, context, estr, ecode STREAMS_CC) - -/* Bind the stream to a local address */ -PHPAPI int php_stream_xport_bind(php_stream *stream, - const char *name, size_t namelen, - zend_string **error_text - ); - -/* Connect to a remote address */ -PHPAPI int php_stream_xport_connect(php_stream *stream, - const char *name, size_t namelen, - int asynchronous, - struct timeval *timeout, - zend_string **error_text, - int *error_code - ); - -/* Prepare to listen */ -PHPAPI int php_stream_xport_listen(php_stream *stream, - int backlog, - zend_string **error_text - ); - -/* Get the next client and their address as a string, or the underlying address - * structure. You must efree either of these if you request them */ -PHPAPI int php_stream_xport_accept(php_stream *stream, php_stream **client, - zend_string **textaddr, - void **addr, socklen_t *addrlen, - struct timeval *timeout, - zend_string **error_text - ); - -/* Get the name of either the socket or it's peer */ -PHPAPI int php_stream_xport_get_name(php_stream *stream, int want_peer, - zend_string **textaddr, - void **addr, socklen_t *addrlen - ); - -enum php_stream_xport_send_recv_flags { - STREAM_OOB = 1, - STREAM_PEEK = 2 -}; - -/* Similar to recv() system call; read data from the stream, optionally - * peeking, optionally retrieving OOB data */ -PHPAPI int php_stream_xport_recvfrom(php_stream *stream, char *buf, size_t buflen, - int flags, void **addr, socklen_t *addrlen, - zend_string **textaddr); - -/* Similar to send() system call; send data to the stream, optionally - * sending it as OOB data */ -PHPAPI int php_stream_xport_sendto(php_stream *stream, const char *buf, size_t buflen, - int flags, void *addr, socklen_t addrlen); - -typedef enum { - STREAM_SHUT_RD, - STREAM_SHUT_WR, - STREAM_SHUT_RDWR -} stream_shutdown_t; - -/* Similar to shutdown() system call; shut down part of a full-duplex - * connection */ -PHPAPI int php_stream_xport_shutdown(php_stream *stream, stream_shutdown_t how); -END_EXTERN_C() - - -/* Structure definition for the set_option interface that the above functions wrap */ - -typedef struct _php_stream_xport_param { - enum { - STREAM_XPORT_OP_BIND, STREAM_XPORT_OP_CONNECT, - STREAM_XPORT_OP_LISTEN, STREAM_XPORT_OP_ACCEPT, - STREAM_XPORT_OP_CONNECT_ASYNC, - STREAM_XPORT_OP_GET_NAME, - STREAM_XPORT_OP_GET_PEER_NAME, - STREAM_XPORT_OP_RECV, - STREAM_XPORT_OP_SEND, - STREAM_XPORT_OP_SHUTDOWN - } op; - unsigned int want_addr:1; - unsigned int want_textaddr:1; - unsigned int want_errortext:1; - unsigned int how:2; - - struct { - char *name; - size_t namelen; - struct timeval *timeout; - struct sockaddr *addr; - char *buf; - size_t buflen; - socklen_t addrlen; - int backlog; - int flags; - } inputs; - struct { - php_stream *client; - struct sockaddr *addr; - socklen_t addrlen; - zend_string *textaddr; - zend_string *error_text; - int returncode; - int error_code; - } outputs; -} php_stream_xport_param; - -/* Because both client and server streams use the same mechanisms - for encryption we use the LSB to denote clients. -*/ -typedef enum { - STREAM_CRYPTO_METHOD_SSLv2_CLIENT = (1 << 1 | 1), - STREAM_CRYPTO_METHOD_SSLv3_CLIENT = (1 << 2 | 1), - /* v23 no longer negotiates SSL2 or SSL3 */ - STREAM_CRYPTO_METHOD_SSLv23_CLIENT = ((1 << 3) | (1 << 4) | (1 << 5) | 1), - STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT = (1 << 3 | 1), - STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT = (1 << 4 | 1), - STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT = (1 << 5 | 1), - STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT = (1 << 6 | 1), - /* TLS equates to TLS_ANY as of PHP 7.2 */ - STREAM_CRYPTO_METHOD_TLS_CLIENT = ((1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | 1), - STREAM_CRYPTO_METHOD_TLS_ANY_CLIENT = ((1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | 1), - STREAM_CRYPTO_METHOD_ANY_CLIENT = ((1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6) | 1), - STREAM_CRYPTO_METHOD_SSLv2_SERVER = (1 << 1), - STREAM_CRYPTO_METHOD_SSLv3_SERVER = (1 << 2), - /* v23 no longer negotiates SSL2 or SSL3 */ - STREAM_CRYPTO_METHOD_SSLv23_SERVER = ((1 << 3) | (1 << 4) | (1 << 5) | (1 << 6)), - STREAM_CRYPTO_METHOD_TLSv1_0_SERVER = (1 << 3), - STREAM_CRYPTO_METHOD_TLSv1_1_SERVER = (1 << 4), - STREAM_CRYPTO_METHOD_TLSv1_2_SERVER = (1 << 5), - STREAM_CRYPTO_METHOD_TLSv1_3_SERVER = (1 << 6), - /* TLS equates to TLS_ANY as of PHP 7.2 */ - STREAM_CRYPTO_METHOD_TLS_SERVER = ((1 << 3) | (1 << 4) | (1 << 5) | (1 << 6)), - STREAM_CRYPTO_METHOD_TLS_ANY_SERVER = ((1 << 3) | (1 << 4) | (1 << 5) | (1 << 6)), - STREAM_CRYPTO_METHOD_ANY_SERVER = ((1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6)) -} php_stream_xport_crypt_method_t; - -/* These functions provide crypto support on the underlying transport */ - -BEGIN_EXTERN_C() -PHPAPI int php_stream_xport_crypto_setup(php_stream *stream, php_stream_xport_crypt_method_t crypto_method, php_stream *session_stream); -PHPAPI int php_stream_xport_crypto_enable(php_stream *stream, int activate); -END_EXTERN_C() - -typedef struct _php_stream_xport_crypto_param { - struct { - php_stream *session; - int activate; - php_stream_xport_crypt_method_t method; - } inputs; - struct { - int returncode; - } outputs; - enum { - STREAM_XPORT_CRYPTO_OP_SETUP, - STREAM_XPORT_CRYPTO_OP_ENABLE - } op; -} php_stream_xport_crypto_param; - -BEGIN_EXTERN_C() -PHPAPI HashTable *php_stream_xport_get_hash(void); -PHPAPI php_stream_transport_factory_func php_stream_generic_socket_factory; -END_EXTERN_C() diff --git a/include/php/main/streams/php_stream_userspace.h b/include/php/main/streams/php_stream_userspace.h deleted file mode 100644 index 389d591..0000000 --- a/include/php/main/streams/php_stream_userspace.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ - */ - -/* for user-space streams */ -PHPAPI extern const php_stream_ops php_stream_userspace_ops; -PHPAPI extern const php_stream_ops php_stream_userspace_dir_ops; -#define PHP_STREAM_IS_USERSPACE &php_stream_userspace_ops -#define PHP_STREAM_IS_USERSPACE_DIR &php_stream_userspace_dir_ops diff --git a/include/php/main/streams/php_streams_int.h b/include/php/main/streams/php_streams_int.h deleted file mode 100644 index 1bc6fdc..0000000 --- a/include/php/main/streams/php_streams_int.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Wez Furlong | - +----------------------------------------------------------------------+ -*/ - -#if ZEND_DEBUG - -#define emalloc_rel_orig(size) \ - ( __php_stream_call_depth == 0 \ - ? _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_RELAY_CC) \ - : _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_ORIG_RELAY_CC) ) - -#define erealloc_rel_orig(ptr, size) \ - ( __php_stream_call_depth == 0 \ - ? _erealloc((ptr), (size), 0 ZEND_FILE_LINE_CC ZEND_FILE_LINE_RELAY_CC) \ - : _erealloc((ptr), (size), 0 ZEND_FILE_LINE_CC ZEND_FILE_LINE_ORIG_RELAY_CC) ) - -#define pemalloc_rel_orig(size, persistent) ((persistent) ? malloc((size)) : emalloc_rel_orig((size))) -#define perealloc_rel_orig(ptr, size, persistent) ((persistent) ? realloc((ptr), (size)) : erealloc_rel_orig((ptr), (size))) -#else -# define pemalloc_rel_orig(size, persistent) pemalloc((size), (persistent)) -# define perealloc_rel_orig(ptr, size, persistent) perealloc((ptr), (size), (persistent)) -# define emalloc_rel_orig(size) emalloc((size)) -#endif - -#define STREAM_DEBUG 0 -#define STREAM_WRAPPER_PLAIN_FILES ((php_stream_wrapper*)-1) - -#ifndef MAP_FAILED -#define MAP_FAILED ((void *) -1) -#endif - -#define CHUNK_SIZE 8192 - -#ifdef PHP_WIN32 -# ifdef EWOULDBLOCK -# undef EWOULDBLOCK -# endif -# define EWOULDBLOCK WSAEWOULDBLOCK -# ifdef EMSGSIZE -# undef EMSGSIZE -# endif -# define EMSGSIZE WSAEMSGSIZE -#endif - -/* This functions transforms the first char to 'w' if it's not 'r', 'a' or 'w' - * and strips any subsequent chars except '+' and 'b'. - * Use this to sanitize stream->mode if you call e.g. fdopen, fopencookie or - * any other function that expects standard modes and you allow non-standard - * ones. result should be a char[5]. */ -void php_stream_mode_sanitize_fdopen_fopencookie(php_stream *stream, char *result); - -void php_stream_tidy_wrapper_error_log(php_stream_wrapper *wrapper); -void php_stream_display_wrapper_errors(php_stream_wrapper *wrapper, const char *path, const char *caption); diff --git a/include/php/sapi/cli/cli.h b/include/php/sapi/cli/cli.h deleted file mode 100644 index b4c2851..0000000 --- a/include/php/sapi/cli/cli.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Johannes Schlueter | - +----------------------------------------------------------------------+ -*/ - -#ifndef CLI_H -#define CLI_H - -#ifdef PHP_WIN32 -# define PHP_CLI_API __declspec(dllexport) -#elif defined(__GNUC__) && __GNUC__ >= 4 -# define PHP_CLI_API __attribute__ ((visibility("default"))) -#else -# define PHP_CLI_API -#endif - - -extern PHP_CLI_API ssize_t sapi_cli_single_write(const char *str, size_t str_length); - -typedef struct { - size_t (*cli_shell_write)(const char *str, size_t str_length); - size_t (*cli_shell_ub_write)(const char *str, size_t str_length); - int (*cli_shell_run)(void); -} cli_shell_callbacks_t; - -extern PHP_CLI_API cli_shell_callbacks_t *php_cli_get_shell_callbacks(); - -#endif /* CLI_H */
  2. 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

    U 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%0DyhKx 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%0DSUc=!{SubQ!-g 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­7>z!cG3KeNm4M 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%0A+sP^W1wU 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%0D!$5`aI!{N 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�GUT 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 !s~-7GMexhkw+pwk)7knP~uZ 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