locutus 2.0.32 → 2.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/_data/rosetta.yml +325 -0
- package/awk/builtin/index.js +3 -0
- package/awk/builtin/int.js +13 -0
- package/awk/builtin/length.js +16 -0
- package/awk/builtin/substr.js +23 -0
- package/c/ctype/index.js +8 -0
- package/c/ctype/isalnum.js +15 -0
- package/c/ctype/isalpha.js +17 -0
- package/c/ctype/isdigit.js +15 -0
- package/c/ctype/islower.js +15 -0
- package/c/ctype/isspace.js +15 -0
- package/c/ctype/isupper.js +15 -0
- package/c/ctype/tolower.js +15 -0
- package/c/ctype/toupper.js +15 -0
- package/c/index.js +2 -5
- package/c/math/abs.js +14 -18
- package/c/math/frexp.js +19 -20
- package/c/math/index.js +2 -5
- package/c/stdio/index.js +1 -4
- package/c/stdio/sprintf.js +71 -81
- package/c/stdlib/atof.js +15 -0
- package/c/stdlib/atoi.js +17 -0
- package/c/stdlib/index.js +2 -0
- package/c/string/index.js +5 -0
- package/c/string/strcat.js +12 -0
- package/c/string/strchr.js +15 -0
- package/c/string/strcmp.js +21 -0
- package/c/string/strlen.js +12 -0
- package/c/string/strstr.js +15 -0
- package/clojure/Math/abs.js +13 -0
- package/clojure/Math/ceil.js +15 -0
- package/clojure/Math/floor.js +14 -0
- package/clojure/Math/index.js +3 -0
- package/elixir/Float/ceil.js +16 -0
- package/elixir/Float/floor.js +14 -0
- package/elixir/Float/index.js +2 -0
- package/elixir/Kernel/abs.js +13 -0
- package/elixir/Kernel/index.js +1 -0
- package/golang/index.js +1 -4
- package/golang/strconv/Atoi.js +26 -0
- package/golang/strconv/FormatBool.js +12 -0
- package/golang/strconv/FormatInt.js +21 -0
- package/golang/strconv/Itoa.js +14 -0
- package/golang/strconv/ParseBool.js +35 -0
- package/golang/strconv/ParseInt.js +27 -0
- package/golang/strconv/index.js +6 -0
- package/golang/strings/Compare.js +19 -0
- package/golang/strings/Contains.js +7 -9
- package/golang/strings/ContainsAny.js +18 -0
- package/golang/strings/Count.js +20 -22
- package/golang/strings/EqualFold.js +13 -0
- package/golang/strings/Fields.js +12 -0
- package/golang/strings/HasPrefix.js +15 -0
- package/golang/strings/HasSuffix.js +20 -0
- package/golang/strings/Index.js +11 -0
- package/golang/strings/Index2.js +9 -11
- package/golang/strings/IndexAny.js +18 -0
- package/golang/strings/Join.js +16 -0
- package/golang/strings/LastIndex.js +10 -12
- package/golang/strings/LastIndexAny.js +18 -0
- package/golang/strings/Repeat.js +19 -0
- package/golang/strings/Replace.js +44 -0
- package/golang/strings/Split.js +24 -0
- package/golang/strings/ToLower.js +9 -0
- package/golang/strings/ToUpper.js +9 -0
- package/golang/strings/Trim.js +19 -0
- package/golang/strings/TrimLeft.js +15 -0
- package/golang/strings/TrimPrefix.js +14 -0
- package/golang/strings/TrimRight.js +15 -0
- package/golang/strings/TrimSpace.js +10 -0
- package/golang/strings/TrimSuffix.js +14 -0
- package/golang/strings/index.js +25 -7
- package/index.js +5 -8
- package/julia/Base/abs.js +13 -0
- package/julia/Base/ceil.js +16 -0
- package/julia/Base/floor.js +14 -0
- package/julia/Base/index.js +3 -0
- package/lua/math/abs.js +13 -0
- package/lua/math/ceil.js +16 -0
- package/lua/math/floor.js +14 -0
- package/lua/math/index.js +3 -0
- package/package.json +37 -51
- package/perl/POSIX/ceil.js +16 -0
- package/perl/POSIX/floor.js +14 -0
- package/perl/POSIX/index.js +2 -0
- package/perl/core/index.js +1 -0
- package/perl/core/length.js +16 -0
- package/php/_helpers/_bc.js +524 -515
- package/php/_helpers/_phpCastString.js +20 -25
- package/php/_helpers/_php_cast_float.js +5 -10
- package/php/_helpers/_php_cast_int.js +6 -11
- package/php/_helpers/index.js +4 -7
- package/php/array/array_change_key_case.js +11 -16
- package/php/array/array_chunk.js +20 -23
- package/php/array/array_column.js +22 -72
- package/php/array/array_combine.js +13 -18
- package/php/array/array_count_values.js +35 -39
- package/php/array/array_diff.js +11 -14
- package/php/array/array_diff_assoc.js +11 -14
- package/php/array/array_diff_key.js +11 -14
- package/php/array/array_diff_uassoc.js +15 -19
- package/php/array/array_diff_ukey.js +14 -17
- package/php/array/array_fill.js +11 -13
- package/php/array/array_fill_keys.js +5 -8
- package/php/array/array_filter.js +12 -13
- package/php/array/array_flip.js +13 -15
- package/php/array/array_intersect.js +13 -16
- package/php/array/array_intersect_assoc.js +13 -16
- package/php/array/array_intersect_key.js +15 -18
- package/php/array/array_intersect_uassoc.js +17 -20
- package/php/array/array_intersect_ukey.js +17 -20
- package/php/array/array_key_exists.js +4 -7
- package/php/array/array_keys.js +22 -24
- package/php/array/array_map.js +24 -29
- package/php/array/array_merge.js +22 -25
- package/php/array/array_merge_recursive.js +51 -27
- package/php/array/array_multisort.js +138 -130
- package/php/array/array_pad.js +24 -26
- package/php/array/array_pop.js +10 -13
- package/php/array/array_product.js +15 -17
- package/php/array/array_push.js +16 -19
- package/php/array/array_rand.js +11 -14
- package/php/array/array_reduce.js +11 -14
- package/php/array/array_replace.js +9 -12
- package/php/array/array_replace_recursive.js +20 -24
- package/php/array/array_reverse.js +12 -15
- package/php/array/array_search.js +27 -29
- package/php/array/array_shift.js +3 -6
- package/php/array/array_slice.js +37 -39
- package/php/array/array_splice.js +64 -69
- package/php/array/array_sum.js +7 -12
- package/php/array/array_udiff.js +14 -17
- package/php/array/array_udiff_assoc.js +14 -17
- package/php/array/array_udiff_uassoc.js +17 -20
- package/php/array/array_uintersect.js +16 -19
- package/php/array/array_uintersect_uassoc.js +18 -21
- package/php/array/array_unique.js +12 -15
- package/php/array/array_unshift.js +4 -7
- package/php/array/array_values.js +11 -13
- package/php/array/array_walk.js +10 -15
- package/php/array/array_walk_recursive.js +15 -20
- package/php/array/arsort.js +50 -52
- package/php/array/asort.js +50 -51
- package/php/array/count.js +15 -14
- package/php/array/current.js +30 -32
- package/php/array/each.js +32 -35
- package/php/array/end.js +27 -30
- package/php/array/in_array.js +7 -10
- package/php/array/index.js +73 -76
- package/php/array/key.js +32 -34
- package/php/array/krsort.js +50 -51
- package/php/array/ksort.js +50 -51
- package/php/array/natcasesort.js +37 -38
- package/php/array/natsort.js +35 -36
- package/php/array/next.js +34 -36
- package/php/array/pos.js +10 -12
- package/php/array/prev.js +32 -34
- package/php/array/range.js +30 -33
- package/php/array/reset.js +24 -27
- package/php/array/rsort.js +47 -49
- package/php/array/shuffle.js +16 -18
- package/php/array/sizeof.js +3 -6
- package/php/array/sort.js +43 -45
- package/php/array/uasort.js +19 -21
- package/php/array/uksort.js +22 -24
- package/php/array/usort.js +20 -22
- package/php/bc/bcadd.js +16 -19
- package/php/bc/bccomp.js +12 -15
- package/php/bc/bcdiv.js +17 -20
- package/php/bc/bcmul.js +16 -19
- package/php/bc/bcround.js +21 -24
- package/php/bc/bcscale.js +8 -11
- package/php/bc/bcsub.js +16 -19
- package/php/bc/index.js +7 -10
- package/php/ctype/ctype_alnum.js +14 -16
- package/php/ctype/ctype_alpha.js +14 -16
- package/php/ctype/ctype_cntrl.js +9 -12
- package/php/ctype/ctype_digit.js +14 -16
- package/php/ctype/ctype_graph.js +14 -16
- package/php/ctype/ctype_lower.js +14 -16
- package/php/ctype/ctype_print.js +14 -16
- package/php/ctype/ctype_punct.js +14 -16
- package/php/ctype/ctype_space.js +9 -12
- package/php/ctype/ctype_upper.js +14 -16
- package/php/ctype/ctype_xdigit.js +14 -16
- package/php/ctype/index.js +11 -14
- package/php/datetime/checkdate.js +15 -17
- package/php/datetime/date.js +142 -123
- package/php/datetime/date_parse.js +18 -21
- package/php/datetime/getdate.js +38 -24
- package/php/datetime/gettimeofday.js +7 -10
- package/php/datetime/gmdate.js +17 -16
- package/php/datetime/gmmktime.js +23 -25
- package/php/datetime/gmstrftime.js +17 -14
- package/php/datetime/idate.js +44 -38
- package/php/datetime/index.js +15 -18
- package/php/datetime/microtime.js +11 -14
- package/php/datetime/mktime.js +14 -17
- package/php/datetime/strftime.js +122 -113
- package/php/datetime/strptime.js +210 -191
- package/php/datetime/strtotime.js +615 -496
- package/php/datetime/time.js +11 -13
- package/php/exec/escapeshellarg.js +16 -18
- package/php/exec/index.js +1 -4
- package/php/filesystem/basename.js +22 -24
- package/php/filesystem/dirname.js +12 -14
- package/php/filesystem/file_exists.js +9 -11
- package/php/filesystem/file_get_contents.js +3 -6
- package/php/filesystem/index.js +6 -9
- package/php/filesystem/pathinfo.js +47 -46
- package/php/filesystem/realpath.js +16 -19
- package/php/funchand/call_user_func.js +4 -7
- package/php/funchand/call_user_func_array.js +19 -22
- package/php/funchand/create_function.js +4 -7
- package/php/funchand/function_exists.js +4 -8
- package/php/funchand/get_defined_functions.js +25 -32
- package/php/funchand/index.js +5 -8
- package/php/i18n/i18n_loc_get_default.js +7 -10
- package/php/i18n/i18n_loc_set_default.js +12 -15
- package/php/i18n/index.js +2 -5
- package/php/index.js +20 -23
- package/php/info/assert_options.js +25 -27
- package/php/info/getenv.js +8 -10
- package/php/info/index.js +6 -9
- package/php/info/ini_get.js +9 -12
- package/php/info/ini_set.js +32 -34
- package/php/info/set_time_limit.js +8 -11
- package/php/info/version_compare.js +43 -44
- package/php/json/index.js +3 -6
- package/php/json/json_decode.js +42 -28
- package/php/json/json_encode.js +89 -66
- package/php/json/json_last_error.js +11 -13
- package/php/math/abs.js +2 -5
- package/php/math/acos.js +2 -5
- package/php/math/acosh.js +7 -9
- package/php/math/asin.js +2 -5
- package/php/math/asinh.js +7 -9
- package/php/math/atan.js +7 -9
- package/php/math/atan2.js +7 -9
- package/php/math/atanh.js +2 -5
- package/php/math/base_convert.js +8 -10
- package/php/math/bindec.js +12 -14
- package/php/math/ceil.js +7 -9
- package/php/math/cos.js +7 -9
- package/php/math/cosh.js +7 -9
- package/php/math/decbin.js +16 -18
- package/php/math/dechex.js +3 -6
- package/php/math/decoct.js +13 -15
- package/php/math/deg2rad.js +8 -10
- package/php/math/exp.js +7 -9
- package/php/math/expm1.js +9 -11
- package/php/math/floor.js +7 -9
- package/php/math/fmod.js +27 -29
- package/php/math/getrandmax.js +7 -9
- package/php/math/hexdec.js +10 -12
- package/php/math/hypot.js +8 -11
- package/php/math/index.js +46 -49
- package/php/math/is_finite.js +9 -14
- package/php/math/is_infinite.js +9 -14
- package/php/math/is_nan.js +8 -13
- package/php/math/lcg_value.js +8 -10
- package/php/math/log.js +8 -10
- package/php/math/log10.js +12 -14
- package/php/math/log1p.js +15 -17
- package/php/math/max.js +54 -59
- package/php/math/min.js +54 -59
- package/php/math/mt_getrandmax.js +7 -9
- package/php/math/mt_rand.js +15 -17
- package/php/math/octdec.js +8 -10
- package/php/math/pi.js +2 -5
- package/php/math/pow.js +2 -5
- package/php/math/rad2deg.js +8 -10
- package/php/math/rand.js +15 -17
- package/php/math/round.js +48 -49
- package/php/math/sin.js +7 -9
- package/php/math/sinh.js +7 -9
- package/php/math/sqrt.js +7 -9
- package/php/math/tan.js +7 -9
- package/php/math/tanh.js +8 -10
- package/php/misc/index.js +2 -5
- package/php/misc/pack.js +173 -165
- package/php/misc/uniqid.js +20 -23
- package/php/net-gopher/gopher_parsedir.js +27 -29
- package/php/net-gopher/index.js +1 -4
- package/php/network/index.js +6 -9
- package/php/network/inet_ntop.js +15 -15
- package/php/network/inet_pton.js +30 -34
- package/php/network/ip2long.js +25 -15
- package/php/network/long2ip.js +8 -10
- package/php/network/setcookie.js +11 -13
- package/php/network/setrawcookie.js +16 -19
- package/php/pcre/index.js +4 -7
- package/php/pcre/preg_match.js +3 -6
- package/php/pcre/preg_quote.js +2 -5
- package/php/pcre/preg_replace.js +8 -11
- package/php/pcre/sql_regcase.js +17 -20
- package/php/strings/addcslashes.js +86 -88
- package/php/strings/addslashes.js +15 -16
- package/php/strings/bin2hex.js +19 -43
- package/php/strings/chop.js +8 -10
- package/php/strings/chr.js +12 -14
- package/php/strings/chunk_split.js +15 -17
- package/php/strings/convert_cyr_string.js +137 -50
- package/php/strings/convert_uuencode.js +35 -38
- package/php/strings/count_chars.js +29 -27
- package/php/strings/crc32.js +276 -21
- package/php/strings/echo.js +28 -30
- package/php/strings/explode.js +31 -26
- package/php/strings/get_html_translation_table.js +123 -122
- package/php/strings/hex2bin.js +21 -21
- package/php/strings/html_entity_decode.js +31 -33
- package/php/strings/htmlentities.js +38 -34
- package/php/strings/htmlspecialchars.js +20 -23
- package/php/strings/htmlspecialchars_decode.js +19 -21
- package/php/strings/implode.js +23 -27
- package/php/strings/index.js +91 -94
- package/php/strings/join.js +8 -10
- package/php/strings/lcfirst.js +9 -11
- package/php/strings/levenshtein.js +37 -39
- package/php/strings/localeconv.js +12 -15
- package/php/strings/ltrim.js +12 -14
- package/php/strings/md5.js +216 -223
- package/php/strings/md5_file.js +17 -19
- package/php/strings/metaphone.js +112 -117
- package/php/strings/money_format.js +139 -126
- package/php/strings/nl2br.js +24 -26
- package/php/strings/nl_langinfo.js +32 -35
- package/php/strings/number_format.js +19 -22
- package/php/strings/ord.js +19 -21
- package/php/strings/parse_str.js +53 -56
- package/php/strings/printf.js +6 -9
- package/php/strings/quoted_printable_decode.js +7 -10
- package/php/strings/quoted_printable_encode.js +19 -20
- package/php/strings/quotemeta.js +7 -9
- package/php/strings/rtrim.js +14 -16
- package/php/strings/setlocale.js +148 -104
- package/php/strings/sha1.js +108 -106
- package/php/strings/sha1_file.js +15 -17
- package/php/strings/similar_text.js +34 -33
- package/php/strings/soundex.js +34 -36
- package/php/strings/split.js +8 -10
- package/php/strings/sprintf.js +112 -114
- package/php/strings/sscanf.js +99 -96
- package/php/strings/str_getcsv.js +37 -32
- package/php/strings/str_ireplace.js +50 -55
- package/php/strings/str_pad.js +18 -21
- package/php/strings/str_repeat.js +14 -16
- package/php/strings/str_replace.js +32 -37
- package/php/strings/str_rot13.js +15 -17
- package/php/strings/str_shuffle.js +12 -15
- package/php/strings/str_split.js +19 -21
- package/php/strings/str_word_count.js +51 -50
- package/php/strings/strcasecmp.js +12 -14
- package/php/strings/strchr.js +10 -12
- package/php/strings/strcmp.js +12 -14
- package/php/strings/strcoll.js +9 -12
- package/php/strings/strcspn.js +30 -25
- package/php/strings/strip_tags.js +50 -52
- package/php/strings/stripos.js +12 -14
- package/php/strings/stripslashes.js +8 -10
- package/php/strings/stristr.js +15 -17
- package/php/strings/strlen.js +23 -26
- package/php/strings/strnatcasecmp.js +6 -8
- package/php/strings/strnatcmp.js +47 -46
- package/php/strings/strncasecmp.js +30 -32
- package/php/strings/strncmp.js +5 -7
- package/php/strings/strpbrk.js +12 -14
- package/php/strings/strpos.js +11 -13
- package/php/strings/strrchr.js +7 -10
- package/php/strings/strrev.js +188 -10
- package/php/strings/strripos.js +16 -18
- package/php/strings/strrpos.js +20 -22
- package/php/strings/strspn.js +24 -26
- package/php/strings/strstr.js +20 -22
- package/php/strings/strtok.js +14 -16
- package/php/strings/strtolower.js +8 -10
- package/php/strings/strtoupper.js +8 -10
- package/php/strings/strtr.js +38 -43
- package/php/strings/substr.js +14 -18
- package/php/strings/substr_compare.js +18 -20
- package/php/strings/substr_count.js +11 -14
- package/php/strings/substr_replace.js +5 -8
- package/php/strings/trim.js +53 -32
- package/php/strings/ucfirst.js +11 -13
- package/php/strings/ucwords.js +3 -6
- package/php/strings/vprintf.js +6 -9
- package/php/strings/vsprintf.js +8 -10
- package/php/strings/wordwrap.js +32 -35
- package/php/url/base64_decode.js +42 -40
- package/php/url/base64_encode.js +51 -53
- package/php/url/http_build_query.js +27 -32
- package/php/url/index.js +8 -11
- package/php/url/parse_url.js +61 -25
- package/php/url/rawurldecode.js +8 -8
- package/php/url/rawurlencode.js +9 -6
- package/php/url/urldecode.js +9 -8
- package/php/url/urlencode.js +11 -6
- package/php/var/boolval.js +31 -33
- package/php/var/doubleval.js +10 -12
- package/php/var/empty.js +11 -16
- package/php/var/floatval.js +13 -15
- package/php/var/gettype.js +22 -23
- package/php/var/index.js +30 -33
- package/php/var/intval.js +35 -39
- package/php/var/is_array.js +27 -31
- package/php/var/is_binary.js +2 -5
- package/php/var/is_bool.js +10 -12
- package/php/var/is_buffer.js +2 -5
- package/php/var/is_callable.js +34 -35
- package/php/var/is_double.js +10 -12
- package/php/var/is_float.js +12 -14
- package/php/var/is_int.js +20 -22
- package/php/var/is_integer.js +12 -14
- package/php/var/is_long.js +3 -6
- package/php/var/is_null.js +9 -11
- package/php/var/is_numeric.js +30 -6
- package/php/var/is_object.js +4 -9
- package/php/var/is_real.js +3 -6
- package/php/var/is_scalar.js +2 -8
- package/php/var/is_string.js +9 -11
- package/php/var/is_unicode.js +12 -15
- package/php/var/isset.js +9 -12
- package/php/var/print_r.js +49 -53
- package/php/var/serialize.js +47 -52
- package/php/var/serialize.vitest.ts +10 -0
- package/php/var/strval.js +10 -13
- package/php/var/unserialize.js +168 -202
- package/php/var/var_dump.js +105 -104
- package/php/var/var_export.js +64 -66
- package/php/xdiff/index.js +2 -5
- package/php/xdiff/xdiff_string_diff.js +240 -226
- package/php/xdiff/xdiff_string_patch.js +98 -93
- package/php/xml/index.js +2 -5
- package/php/xml/utf8_decode.js +40 -42
- package/php/xml/utf8_encode.js +40 -42
- package/python/index.js +1 -4
- package/python/math/ceil.js +17 -0
- package/python/math/exp.js +12 -0
- package/python/math/fabs.js +14 -0
- package/python/math/factorial.js +29 -0
- package/python/math/floor.js +14 -0
- package/python/math/gcd.js +23 -0
- package/python/math/index.js +15 -0
- package/python/math/isfinite.js +14 -0
- package/python/math/isinf.js +14 -0
- package/python/math/isnan.js +14 -0
- package/python/math/log.js +16 -0
- package/python/math/log10.js +14 -0
- package/python/math/log2.js +14 -0
- package/python/math/pow.js +14 -0
- package/python/math/sqrt.js +14 -0
- package/python/math/trunc.js +14 -0
- package/python/string/ascii_letters.js +14 -14
- package/python/string/ascii_lowercase.js +12 -16
- package/python/string/ascii_uppercase.js +12 -16
- package/python/string/capwords.js +4 -7
- package/python/string/digits.js +10 -0
- package/python/string/hexdigits.js +10 -0
- package/python/string/index.js +10 -8
- package/python/string/octdigits.js +10 -0
- package/python/string/printable.js +15 -0
- package/python/string/punctuation.js +5 -7
- package/python/string/whitespace.js +10 -0
- package/r/base/abs.js +13 -0
- package/r/base/ceiling.js +16 -0
- package/r/base/floor.js +14 -0
- package/r/base/index.js +3 -0
- package/ruby/Array/compact.js +18 -0
- package/ruby/Array/first.js +22 -0
- package/ruby/Array/flatten.js +22 -0
- package/ruby/Array/index.js +6 -0
- package/ruby/Array/last.js +22 -0
- package/ruby/Array/sample.js +31 -0
- package/ruby/Array/uniq.js +16 -0
- package/ruby/Math/acos.js +2 -5
- package/ruby/Math/asin.js +11 -0
- package/ruby/Math/atan.js +11 -0
- package/ruby/Math/cbrt.js +13 -0
- package/ruby/Math/cos.js +12 -0
- package/ruby/Math/cosh.js +11 -0
- package/ruby/Math/exp.js +11 -0
- package/ruby/Math/index.js +15 -4
- package/ruby/Math/log.js +11 -0
- package/ruby/Math/log10.js +13 -0
- package/ruby/Math/log2.js +13 -0
- package/ruby/Math/sin.js +12 -0
- package/ruby/Math/sinh.js +11 -0
- package/ruby/Math/sqrt.js +13 -0
- package/ruby/Math/tan.js +11 -0
- package/ruby/Math/tanh.js +11 -0
- package/ruby/String/capitalize.js +19 -0
- package/ruby/String/chomp.js +27 -0
- package/ruby/String/chop.js +25 -0
- package/ruby/String/downcase.js +10 -0
- package/ruby/String/end_with.js +17 -0
- package/ruby/String/include.js +12 -0
- package/ruby/String/index.js +11 -0
- package/ruby/String/length.js +12 -0
- package/ruby/String/reverse.js +12 -0
- package/ruby/String/start_with.js +14 -0
- package/ruby/String/strip.js +12 -0
- package/ruby/String/upcase.js +10 -0
- package/ruby/index.js +1 -4
- package/_util/cli.js +0 -14
- package/_util/cli.js.map +0 -1
- package/_util/util.js +0 -620
- package/_util/util.js.map +0 -1
- package/c/index.js.map +0 -1
- package/c/math/abs.js.map +0 -1
- package/c/math/frexp.js.map +0 -1
- package/c/math/index.js.map +0 -1
- package/c/stdio/index.js.map +0 -1
- package/c/stdio/sprintf.js.map +0 -1
- package/golang/index.js.map +0 -1
- package/golang/strings/Contains.js.map +0 -1
- package/golang/strings/Count.js.map +0 -1
- package/golang/strings/Index2.js.map +0 -1
- package/golang/strings/LastIndex.js.map +0 -1
- package/golang/strings/index.js.map +0 -1
- package/index.js.map +0 -1
- package/php/_helpers/_bc.js.map +0 -1
- package/php/_helpers/_phpCastString.js.map +0 -1
- package/php/_helpers/_php_cast_float.js.map +0 -1
- package/php/_helpers/_php_cast_int.js.map +0 -1
- package/php/_helpers/index.js.map +0 -1
- package/php/array/array_change_key_case.js.map +0 -1
- package/php/array/array_chunk.js.map +0 -1
- package/php/array/array_column.js.map +0 -1
- package/php/array/array_combine.js.map +0 -1
- package/php/array/array_count_values.js.map +0 -1
- package/php/array/array_diff.js.map +0 -1
- package/php/array/array_diff_assoc.js.map +0 -1
- package/php/array/array_diff_key.js.map +0 -1
- package/php/array/array_diff_uassoc.js.map +0 -1
- package/php/array/array_diff_ukey.js.map +0 -1
- package/php/array/array_fill.js.map +0 -1
- package/php/array/array_fill_keys.js.map +0 -1
- package/php/array/array_filter.js.map +0 -1
- package/php/array/array_flip.js.map +0 -1
- package/php/array/array_intersect.js.map +0 -1
- package/php/array/array_intersect_assoc.js.map +0 -1
- package/php/array/array_intersect_key.js.map +0 -1
- package/php/array/array_intersect_uassoc.js.map +0 -1
- package/php/array/array_intersect_ukey.js.map +0 -1
- package/php/array/array_key_exists.js.map +0 -1
- package/php/array/array_keys.js.map +0 -1
- package/php/array/array_map.js.map +0 -1
- package/php/array/array_merge.js.map +0 -1
- package/php/array/array_merge_recursive.js.map +0 -1
- package/php/array/array_multisort.js.map +0 -1
- package/php/array/array_pad.js.map +0 -1
- package/php/array/array_pop.js.map +0 -1
- package/php/array/array_product.js.map +0 -1
- package/php/array/array_push.js.map +0 -1
- package/php/array/array_rand.js.map +0 -1
- package/php/array/array_reduce.js.map +0 -1
- package/php/array/array_replace.js.map +0 -1
- package/php/array/array_replace_recursive.js.map +0 -1
- package/php/array/array_reverse.js.map +0 -1
- package/php/array/array_search.js.map +0 -1
- package/php/array/array_shift.js.map +0 -1
- package/php/array/array_slice.js.map +0 -1
- package/php/array/array_splice.js.map +0 -1
- package/php/array/array_sum.js.map +0 -1
- package/php/array/array_udiff.js.map +0 -1
- package/php/array/array_udiff_assoc.js.map +0 -1
- package/php/array/array_udiff_uassoc.js.map +0 -1
- package/php/array/array_uintersect.js.map +0 -1
- package/php/array/array_uintersect_uassoc.js.map +0 -1
- package/php/array/array_unique.js.map +0 -1
- package/php/array/array_unshift.js.map +0 -1
- package/php/array/array_values.js.map +0 -1
- package/php/array/array_walk.js.map +0 -1
- package/php/array/array_walk_recursive.js.map +0 -1
- package/php/array/arsort.js.map +0 -1
- package/php/array/asort.js.map +0 -1
- package/php/array/count.js.map +0 -1
- package/php/array/current.js.map +0 -1
- package/php/array/each.js.map +0 -1
- package/php/array/end.js.map +0 -1
- package/php/array/in_array.js.map +0 -1
- package/php/array/index.js.map +0 -1
- package/php/array/key.js.map +0 -1
- package/php/array/krsort.js.map +0 -1
- package/php/array/ksort.js.map +0 -1
- package/php/array/natcasesort.js.map +0 -1
- package/php/array/natsort.js.map +0 -1
- package/php/array/next.js.map +0 -1
- package/php/array/pos.js.map +0 -1
- package/php/array/prev.js.map +0 -1
- package/php/array/range.js.map +0 -1
- package/php/array/reset.js.map +0 -1
- package/php/array/rsort.js.map +0 -1
- package/php/array/shuffle.js.map +0 -1
- package/php/array/sizeof.js.map +0 -1
- package/php/array/sort.js.map +0 -1
- package/php/array/uasort.js.map +0 -1
- package/php/array/uksort.js.map +0 -1
- package/php/array/usort.js.map +0 -1
- package/php/bc/bcadd.js.map +0 -1
- package/php/bc/bccomp.js.map +0 -1
- package/php/bc/bcdiv.js.map +0 -1
- package/php/bc/bcmul.js.map +0 -1
- package/php/bc/bcround.js.map +0 -1
- package/php/bc/bcscale.js.map +0 -1
- package/php/bc/bcsub.js.map +0 -1
- package/php/bc/index.js.map +0 -1
- package/php/ctype/ctype_alnum.js.map +0 -1
- package/php/ctype/ctype_alpha.js.map +0 -1
- package/php/ctype/ctype_cntrl.js.map +0 -1
- package/php/ctype/ctype_digit.js.map +0 -1
- package/php/ctype/ctype_graph.js.map +0 -1
- package/php/ctype/ctype_lower.js.map +0 -1
- package/php/ctype/ctype_print.js.map +0 -1
- package/php/ctype/ctype_punct.js.map +0 -1
- package/php/ctype/ctype_space.js.map +0 -1
- package/php/ctype/ctype_upper.js.map +0 -1
- package/php/ctype/ctype_xdigit.js.map +0 -1
- package/php/ctype/index.js.map +0 -1
- package/php/datetime/checkdate.js.map +0 -1
- package/php/datetime/date.js.map +0 -1
- package/php/datetime/date_parse.js.map +0 -1
- package/php/datetime/getdate.js.map +0 -1
- package/php/datetime/gettimeofday.js.map +0 -1
- package/php/datetime/gmdate.js.map +0 -1
- package/php/datetime/gmmktime.js.map +0 -1
- package/php/datetime/gmstrftime.js.map +0 -1
- package/php/datetime/idate.js.map +0 -1
- package/php/datetime/index.js.map +0 -1
- package/php/datetime/microtime.js.map +0 -1
- package/php/datetime/mktime.js.map +0 -1
- package/php/datetime/strftime.js.map +0 -1
- package/php/datetime/strptime.js.map +0 -1
- package/php/datetime/strtotime.js.map +0 -1
- package/php/datetime/time.js.map +0 -1
- package/php/exec/escapeshellarg.js.map +0 -1
- package/php/exec/index.js.map +0 -1
- package/php/filesystem/basename.js.map +0 -1
- package/php/filesystem/dirname.js.map +0 -1
- package/php/filesystem/file_exists.js.map +0 -1
- package/php/filesystem/file_get_contents.js.map +0 -1
- package/php/filesystem/index.js.map +0 -1
- package/php/filesystem/pathinfo.js.map +0 -1
- package/php/filesystem/realpath.js.map +0 -1
- package/php/funchand/call_user_func.js.map +0 -1
- package/php/funchand/call_user_func_array.js.map +0 -1
- package/php/funchand/create_function.js.map +0 -1
- package/php/funchand/function_exists.js.map +0 -1
- package/php/funchand/get_defined_functions.js.map +0 -1
- package/php/funchand/index.js.map +0 -1
- package/php/i18n/i18n_loc_get_default.js.map +0 -1
- package/php/i18n/i18n_loc_set_default.js.map +0 -1
- package/php/i18n/index.js.map +0 -1
- package/php/index.js.map +0 -1
- package/php/info/assert_options.js.map +0 -1
- package/php/info/getenv.js.map +0 -1
- package/php/info/index.js.map +0 -1
- package/php/info/ini_get.js.map +0 -1
- package/php/info/ini_set.js.map +0 -1
- package/php/info/set_time_limit.js.map +0 -1
- package/php/info/version_compare.js.map +0 -1
- package/php/json/index.js.map +0 -1
- package/php/json/json_decode.js.map +0 -1
- package/php/json/json_encode.js.map +0 -1
- package/php/json/json_last_error.js.map +0 -1
- package/php/math/abs.js.map +0 -1
- package/php/math/acos.js.map +0 -1
- package/php/math/acosh.js.map +0 -1
- package/php/math/asin.js.map +0 -1
- package/php/math/asinh.js.map +0 -1
- package/php/math/atan.js.map +0 -1
- package/php/math/atan2.js.map +0 -1
- package/php/math/atanh.js.map +0 -1
- package/php/math/base_convert.js.map +0 -1
- package/php/math/bindec.js.map +0 -1
- package/php/math/ceil.js.map +0 -1
- package/php/math/cos.js.map +0 -1
- package/php/math/cosh.js.map +0 -1
- package/php/math/decbin.js.map +0 -1
- package/php/math/dechex.js.map +0 -1
- package/php/math/decoct.js.map +0 -1
- package/php/math/deg2rad.js.map +0 -1
- package/php/math/exp.js.map +0 -1
- package/php/math/expm1.js.map +0 -1
- package/php/math/floor.js.map +0 -1
- package/php/math/fmod.js.map +0 -1
- package/php/math/getrandmax.js.map +0 -1
- package/php/math/hexdec.js.map +0 -1
- package/php/math/hypot.js.map +0 -1
- package/php/math/index.js.map +0 -1
- package/php/math/is_finite.js.map +0 -1
- package/php/math/is_infinite.js.map +0 -1
- package/php/math/is_nan.js.map +0 -1
- package/php/math/lcg_value.js.map +0 -1
- package/php/math/log.js.map +0 -1
- package/php/math/log10.js.map +0 -1
- package/php/math/log1p.js.map +0 -1
- package/php/math/max.js.map +0 -1
- package/php/math/min.js.map +0 -1
- package/php/math/mt_getrandmax.js.map +0 -1
- package/php/math/mt_rand.js.map +0 -1
- package/php/math/octdec.js.map +0 -1
- package/php/math/pi.js.map +0 -1
- package/php/math/pow.js.map +0 -1
- package/php/math/rad2deg.js.map +0 -1
- package/php/math/rand.js.map +0 -1
- package/php/math/round.js.map +0 -1
- package/php/math/sin.js.map +0 -1
- package/php/math/sinh.js.map +0 -1
- package/php/math/sqrt.js.map +0 -1
- package/php/math/tan.js.map +0 -1
- package/php/math/tanh.js.map +0 -1
- package/php/misc/index.js.map +0 -1
- package/php/misc/pack.js.map +0 -1
- package/php/misc/uniqid.js.map +0 -1
- package/php/net-gopher/gopher_parsedir.js.map +0 -1
- package/php/net-gopher/index.js.map +0 -1
- package/php/network/index.js.map +0 -1
- package/php/network/inet_ntop.js.map +0 -1
- package/php/network/inet_pton.js.map +0 -1
- package/php/network/ip2long.js.map +0 -1
- package/php/network/long2ip.js.map +0 -1
- package/php/network/setcookie.js.map +0 -1
- package/php/network/setrawcookie.js.map +0 -1
- package/php/pcre/index.js.map +0 -1
- package/php/pcre/preg_match.js.map +0 -1
- package/php/pcre/preg_quote.js.map +0 -1
- package/php/pcre/preg_replace.js.map +0 -1
- package/php/pcre/sql_regcase.js.map +0 -1
- package/php/strings/addcslashes.js.map +0 -1
- package/php/strings/addslashes.js.map +0 -1
- package/php/strings/bin2hex.js.map +0 -1
- package/php/strings/chop.js.map +0 -1
- package/php/strings/chr.js.map +0 -1
- package/php/strings/chunk_split.js.map +0 -1
- package/php/strings/convert_cyr_string.js.map +0 -1
- package/php/strings/convert_uuencode.js.map +0 -1
- package/php/strings/count_chars.js.map +0 -1
- package/php/strings/crc32.js.map +0 -1
- package/php/strings/echo.js.map +0 -1
- package/php/strings/explode.js.map +0 -1
- package/php/strings/get_html_translation_table.js.map +0 -1
- package/php/strings/hex2bin.js.map +0 -1
- package/php/strings/html_entity_decode.js.map +0 -1
- package/php/strings/htmlentities.js.map +0 -1
- package/php/strings/htmlspecialchars.js.map +0 -1
- package/php/strings/htmlspecialchars_decode.js.map +0 -1
- package/php/strings/implode.js.map +0 -1
- package/php/strings/index.js.map +0 -1
- package/php/strings/join.js.map +0 -1
- package/php/strings/lcfirst.js.map +0 -1
- package/php/strings/levenshtein.js.map +0 -1
- package/php/strings/localeconv.js.map +0 -1
- package/php/strings/ltrim.js.map +0 -1
- package/php/strings/md5.js.map +0 -1
- package/php/strings/md5_file.js.map +0 -1
- package/php/strings/metaphone.js.map +0 -1
- package/php/strings/money_format.js.map +0 -1
- package/php/strings/nl2br.js.map +0 -1
- package/php/strings/nl_langinfo.js.map +0 -1
- package/php/strings/number_format.js.map +0 -1
- package/php/strings/ord.js.map +0 -1
- package/php/strings/parse_str.js.map +0 -1
- package/php/strings/printf.js.map +0 -1
- package/php/strings/quoted_printable_decode.js.map +0 -1
- package/php/strings/quoted_printable_encode.js.map +0 -1
- package/php/strings/quotemeta.js.map +0 -1
- package/php/strings/rtrim.js.map +0 -1
- package/php/strings/setlocale.js.map +0 -1
- package/php/strings/sha1.js.map +0 -1
- package/php/strings/sha1_file.js.map +0 -1
- package/php/strings/similar_text.js.map +0 -1
- package/php/strings/soundex.js.map +0 -1
- package/php/strings/split.js.map +0 -1
- package/php/strings/sprintf.js.map +0 -1
- package/php/strings/sscanf.js.map +0 -1
- package/php/strings/str_getcsv.js.map +0 -1
- package/php/strings/str_ireplace.js.map +0 -1
- package/php/strings/str_pad.js.map +0 -1
- package/php/strings/str_repeat.js.map +0 -1
- package/php/strings/str_replace.js.map +0 -1
- package/php/strings/str_rot13.js.map +0 -1
- package/php/strings/str_shuffle.js.map +0 -1
- package/php/strings/str_split.js.map +0 -1
- package/php/strings/str_word_count.js.map +0 -1
- package/php/strings/strcasecmp.js.map +0 -1
- package/php/strings/strchr.js.map +0 -1
- package/php/strings/strcmp.js.map +0 -1
- package/php/strings/strcoll.js.map +0 -1
- package/php/strings/strcspn.js.map +0 -1
- package/php/strings/strip_tags.js.map +0 -1
- package/php/strings/stripos.js.map +0 -1
- package/php/strings/stripslashes.js.map +0 -1
- package/php/strings/stristr.js.map +0 -1
- package/php/strings/strlen.js.map +0 -1
- package/php/strings/strnatcasecmp.js.map +0 -1
- package/php/strings/strnatcmp.js.map +0 -1
- package/php/strings/strncasecmp.js.map +0 -1
- package/php/strings/strncmp.js.map +0 -1
- package/php/strings/strpbrk.js.map +0 -1
- package/php/strings/strpos.js.map +0 -1
- package/php/strings/strrchr.js.map +0 -1
- package/php/strings/strrev.js.map +0 -1
- package/php/strings/strripos.js.map +0 -1
- package/php/strings/strrpos.js.map +0 -1
- package/php/strings/strspn.js.map +0 -1
- package/php/strings/strstr.js.map +0 -1
- package/php/strings/strtok.js.map +0 -1
- package/php/strings/strtolower.js.map +0 -1
- package/php/strings/strtoupper.js.map +0 -1
- package/php/strings/strtr.js.map +0 -1
- package/php/strings/substr.js.map +0 -1
- package/php/strings/substr_compare.js.map +0 -1
- package/php/strings/substr_count.js.map +0 -1
- package/php/strings/substr_replace.js.map +0 -1
- package/php/strings/trim.js.map +0 -1
- package/php/strings/ucfirst.js.map +0 -1
- package/php/strings/ucwords.js.map +0 -1
- package/php/strings/vprintf.js.map +0 -1
- package/php/strings/vsprintf.js.map +0 -1
- package/php/strings/wordwrap.js.map +0 -1
- package/php/url/base64_decode.js.map +0 -1
- package/php/url/base64_encode.js.map +0 -1
- package/php/url/http_build_query.js.map +0 -1
- package/php/url/index.js.map +0 -1
- package/php/url/parse_url.js.map +0 -1
- package/php/url/rawurldecode.js.map +0 -1
- package/php/url/rawurlencode.js.map +0 -1
- package/php/url/urldecode.js.map +0 -1
- package/php/url/urlencode.js.map +0 -1
- package/php/var/boolval.js.map +0 -1
- package/php/var/doubleval.js.map +0 -1
- package/php/var/empty.js.map +0 -1
- package/php/var/floatval.js.map +0 -1
- package/php/var/gettype.js.map +0 -1
- package/php/var/index.js.map +0 -1
- package/php/var/intval.js.map +0 -1
- package/php/var/is_array.js.map +0 -1
- package/php/var/is_binary.js.map +0 -1
- package/php/var/is_bool.js.map +0 -1
- package/php/var/is_buffer.js.map +0 -1
- package/php/var/is_callable.js.map +0 -1
- package/php/var/is_double.js.map +0 -1
- package/php/var/is_float.js.map +0 -1
- package/php/var/is_int.js.map +0 -1
- package/php/var/is_integer.js.map +0 -1
- package/php/var/is_long.js.map +0 -1
- package/php/var/is_null.js.map +0 -1
- package/php/var/is_numeric.js.map +0 -1
- package/php/var/is_object.js.map +0 -1
- package/php/var/is_real.js.map +0 -1
- package/php/var/is_scalar.js.map +0 -1
- package/php/var/is_string.js.map +0 -1
- package/php/var/is_unicode.js.map +0 -1
- package/php/var/isset.js.map +0 -1
- package/php/var/print_r.js.map +0 -1
- package/php/var/serialize.js.map +0 -1
- package/php/var/serialize.mocha.js +0 -14
- package/php/var/serialize.mocha.js.map +0 -1
- package/php/var/strval.js.map +0 -1
- package/php/var/unserialize.js.map +0 -1
- package/php/var/var_dump.js.map +0 -1
- package/php/var/var_export.js.map +0 -1
- package/php/xdiff/index.js.map +0 -1
- package/php/xdiff/xdiff_string_diff.js.map +0 -1
- package/php/xdiff/xdiff_string_patch.js.map +0 -1
- package/php/xml/index.js.map +0 -1
- package/php/xml/utf8_decode.js.map +0 -1
- package/php/xml/utf8_encode.js.map +0 -1
- package/python/index.js.map +0 -1
- package/python/string/ascii_letters.js.map +0 -1
- package/python/string/ascii_lowercase.js.map +0 -1
- package/python/string/ascii_uppercase.js.map +0 -1
- package/python/string/capwords.js.map +0 -1
- package/python/string/index.js.map +0 -1
- package/python/string/punctuation.js.map +0 -1
- package/ruby/Math/acos.js.map +0 -1
- package/ruby/Math/index.js.map +0 -1
- package/ruby/index.js.map +0 -1
package/_util/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/_util/util.js"],"names":["globby","require","path","fs","fsPromises","promises","async","YAML","debug","indentString","_","esprima","Util","argv","__src","dirname","__dirname","__root","__test","globals","pattern","concurrency","authorKeys","langDefaults","c","order","function_title_template","human","packageType","inspiration_urls","function_description_template","golang","python","ruby","php","alias","allowSkip","indexOf","_reindexBuffer","_injectwebBuffer","cb","self","_runFunctionOnAll","_injectwebOne","err","indexHtml","writeFileSync","_reindexOne","indexJs","requires","sort","join","_writetestOne","runFunc","q","queue","fullpath","callback","_load","bind","params","files","sync","push","drain","filepath","dir","basefile","basename","module","line","authors","forEach","key","headKeys","flattenDeep","langPath","language","langIndexPath","catPath","category","catIndexPath","funcPath","func_name","langTitle","langData","Object","assign","warning","type","layout","title","dump","trim","catTitle","catData","functionTitle","replace","functionDescription","funcData","examples","example","map","lines","i","returns","dependencies","notes","note","description","function","permalink","buf","code","mkdir","recursive","then","writeFile","Error","name","relativeSrcForTest","JSON","stringify","subdir","testpath","testdir","relativeSrcForTestDir","relative","relativeTestFileForRoot","testProps","test","describeSkip","codez","global","_addRequire","length","humanIndex","parseInt","itSkip","body","testExpected","j","fileOrName","requesterParams","substr","msg","readFile","_opener","_parse","depCodePath","loaded","_findDependencies","parts","split","shift","codepath","pop","ast","parseScript","comment","loc","range","moduleExports","filter","node","leftArg","expression","left","rightArg","right","object","property","id","exp","funcName","funcParams","p","funcLoc","firstFuncBodyElementLoc","headComments","comments","start","end","value","_headKeys","func_arguments","headLines","keys","match","dmatch","val","num","exports"],"mappings":"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","file":"util.js","sourcesContent":["const globby = require('globby')\nconst path = require('path')\nconst fs = require('fs')\nconst fsPromises = fs.promises\nconst async = require('async')\nconst YAML = require('js-yaml')\nconst debug = require('debug')('locutus:utils')\nconst indentString = require('indent-string')\nconst _ = require('lodash')\nconst esprima = require('esprima')\n\nclass Util {\n constructor(argv) {\n if (!argv) {\n argv = []\n }\n this.__src = path.dirname(__dirname)\n this.__root = path.dirname(path.dirname(__dirname))\n this.__test = path.dirname(path.dirname(__dirname)) + '/test'\n\n this.globals = {}\n\n this.pattern = [this.__src + '/**/**/*.js', '!**/index.js', '!**/_util/**']\n this.concurrency = 8\n this.authorKeys = [\n 'original by',\n 'improved by',\n 'reimplemented by',\n 'parts by',\n 'bugfixed by',\n 'revised by',\n 'input by',\n ]\n\n this.langDefaults = {\n c: {\n order: 1,\n function_title_template: \"[language]'s [category].[function] in JavaScript\",\n human: 'C',\n packageType: 'header file',\n inspiration_urls: [\n '<a href=\"https://en.cppreference.com/w/c/numeric/math\">the C math.h documentation</a>',\n '<a href=\"https://sourceware.org/git/?p=glibc.git;a=tree;f=math;hb=HEAD\">the C math.h source</a>',\n ],\n function_description_template:\n 'Here’s what our current JavaScript equivalent to <a href=\"https://en.cppreference.com/w/c/numeric/[category]/[function]\">[language]\\'s [function] found in the [category].h header file</a> looks like.',\n },\n golang: {\n order: 2,\n function_title_template: \"[language]'s [category].[function] in JavaScript\",\n human: 'Go',\n packageType: 'package',\n inspiration_urls: [\n '<a href=\"https://golang.org/pkg/strings/\">Go strings documentation</a>',\n '<a href=\"https://golang.org/src/strings/strings.go\">Go strings source</a>',\n '<a href=\"https://golang.org/src/strings/example_test.go\">Go strings examples source</a>',\n '<a href=\"https://gophersjs.com\">GopherJS</a>',\n ],\n function_description_template:\n 'Here’s what our current JavaScript equivalent to <a href=\"https://golang.org/pkg/[category]/#[function]\">[language]\\'s [category].[function]</a> looks like.',\n },\n python: {\n order: 3,\n function_title_template: \"[language]'s [category].[function] in JavaScript\",\n human: 'Python',\n packageType: 'module',\n inspiration_urls: [\n '<a href=\"https://docs.python.org/3/library/string.html\">the Python 3 standard library string page</a>',\n ],\n function_description_template:\n 'Here’s what our current JavaScript equivalent to <a href=\"https://docs.python.org/3/library/[category].html#[category].[function]\">[language]\\'s [category].[function]</a> looks like.',\n },\n ruby: {\n order: 4,\n function_title_template: \"[language]'s [category].[function] in JavaScript\",\n human: 'Ruby',\n packageType: 'module',\n inspiration_urls: ['<a href=\"https://ruby-doc.org/core-2.2.2/Math.html\">the Ruby core documentation</a>'],\n function_description_template:\n 'Here’s what our current JavaScript equivalent to <a href=\"https://ruby-doc.org/core-2.2.2/[category].html#method-c-[function]\">[language]\\'s [category].[function]</a> looks like.',\n },\n php: {\n order: 5,\n function_title_template: \"[language]'s [function] in JavaScript\",\n human: 'PHP',\n packageType: 'extension',\n inspiration_urls: [\n '<a href=\"https://php.net/manual/en/book.strings.php\">the PHP string documentation</a>',\n '<a href=\"https://github.com/php/php-src/blob/master/ext/standard/string.c#L5338\">the PHP string source</a>',\n '<a href=\"https://github.com/php/php-src/blob/master/ext/standard/tests/strings/str_pad_variation1.phpt\">a PHP str_pad test</a>',\n ],\n function_description_template:\n 'Here’s what our current JavaScript equivalent to <a href=\"https://php.net/manual/en/function.[functiondashed].php\">[language]\\'s [function]</a> looks like.',\n alias: [\n '/categories/',\n '/categories/array/',\n '/categories/bc/',\n '/categories/ctype/',\n '/categories/datetime/',\n '/categories/exec/',\n '/categories/filesystem/',\n '/categories/funchand/',\n '/categories/i18n/',\n '/categories/index/',\n '/categories/info/',\n '/categories/json/',\n '/categories/math/',\n '/categories/misc/',\n '/categories/net/',\n '/categories/network/',\n '/categories/pcre/',\n '/categories/strings/',\n '/categories/url/',\n '/categories/var/',\n '/categories/xdiff/',\n '/categories/xml/',\n '/functions/index/',\n '/functions/',\n '/packages/',\n '/packages/index/',\n ],\n },\n }\n\n this.allowSkip = argv.indexOf('--noskip') === -1\n\n this._reindexBuffer = {}\n this._injectwebBuffer = {}\n }\n\n injectweb(cb) {\n const self = this\n this._runFunctionOnAll(this._injectwebOne, function (err) {\n if (err) {\n return cb(err)\n }\n for (const indexHtml in self._injectwebBuffer) {\n debug('writing: ' + indexHtml)\n fs.writeFileSync(indexHtml, self._injectwebBuffer[indexHtml], 'utf-8')\n }\n })\n }\n\n reindex(cb) {\n const self = this\n self._reindexBuffer = {}\n self._runFunctionOnAll(self._reindexOne, function (err) {\n if (err) {\n return cb(err)\n }\n for (const indexJs in self._reindexBuffer) {\n const requires = self._reindexBuffer[indexJs]\n requires.sort()\n debug('writing: ' + indexJs)\n fs.writeFileSync(indexJs, requires.join('\\n') + '\\n', 'utf-8')\n }\n })\n }\n\n writetests(cb) {\n this._runFunctionOnAll(this._writetestOne, cb)\n }\n\n _runFunctionOnAll(runFunc, cb) {\n const self = this\n\n const q = async.queue(function (fullpath, callback) {\n self._load.bind(self, fullpath, {}, function (err, params) {\n if (err) {\n return callback(err)\n }\n\n runFunc.bind(self, params, callback)()\n })()\n }, self.concurrency)\n\n debug({\n pattern: self.pattern,\n })\n const files = globby.sync(self.pattern)\n\n q.push(files)\n\n q.drain = cb\n }\n\n _reindexOne(params, cb) {\n const fullpath = this.__src + '/' + params.filepath\n const dir = path.dirname(fullpath)\n const basefile = path.basename(fullpath, '.js')\n const indexJs = dir + '/index.js'\n\n let module = basefile\n if (basefile === 'Index2') {\n module = 'Index'\n }\n\n if (!this._reindexBuffer[indexJs]) {\n this._reindexBuffer[indexJs] = []\n }\n\n const line = 'module.exports.' + module + \" = require('./\" + basefile + \"')\"\n this._reindexBuffer[indexJs].push(line)\n return cb(null)\n }\n\n _injectwebOne(params, cb) {\n const authors = {}\n this.authorKeys.forEach(function (key) {\n if (params.headKeys[key]) {\n authors[key] = _.flattenDeep(params.headKeys[key])\n }\n })\n\n const langPath = [this.__root, '/website/source/', params.language].join('')\n\n const langIndexPath = langPath + '/index.html'\n const catPath = langPath + '/' + params.category\n const catIndexPath = catPath + '/' + 'index.html'\n const funcPath = catPath + '/' + params.func_name + '.html'\n\n if (!this._injectwebBuffer[langIndexPath]) {\n let langTitle = ''\n langTitle += this.langDefaults[params.language].human + ' '\n langTitle += this.langDefaults[params.language].packageType + 's '\n langTitle += ' in JavaScript'\n\n const langData = Object.assign({}, this.langDefaults[params.language], {\n warning: 'This file is auto generated by `yarn web:inject`, do not edit by hand',\n type: 'language',\n layout: 'language',\n language: params.language,\n title: langTitle,\n })\n this._injectwebBuffer[langIndexPath] = '---' + '\\n' + YAML.dump(langData).trim() + '\\n' + '---' + '\\n'\n }\n\n if (!this._injectwebBuffer[catIndexPath]) {\n let catTitle = ''\n catTitle += this.langDefaults[params.language].human + \"'s \"\n catTitle += params.category + ' '\n catTitle += this.langDefaults[params.language].packageType + ' '\n catTitle += ' in JavaScript'\n\n const catData = {\n warning: 'This file is auto generated by `yarn web:inject`, do not edit by hand',\n type: 'category',\n layout: 'category',\n language: params.language,\n category: params.category,\n title: catTitle,\n }\n this._injectwebBuffer[catIndexPath] = '---' + '\\n' + YAML.dump(catData).trim() + '\\n' + '---' + '\\n'\n }\n\n const functionTitle = this.langDefaults[params.language].function_title_template\n .replace(/\\[language]/g, this.langDefaults[params.language].human)\n .replace(/\\[category]/g, params.category)\n .replace(/\\[function]/g, params.func_name)\n .replace(/\\[functiondashed]/g, params.func_name.replace(/_/g, '-'))\n\n const functionDescription = this.langDefaults[params.language].function_description_template\n .replace(/\\[language]/g, this.langDefaults[params.language].human)\n .replace(/\\[category]/g, params.category)\n .replace(/\\[function]/g, params.func_name)\n .replace(/\\[functiondashed]/g, params.func_name.replace(/_/g, '-'))\n\n const funcData = {\n warning: 'This file is auto generated by `yarn web:inject`, do not edit by hand',\n examples: (params.headKeys.example || []).map(function (lines, i) {\n return lines.join('\\n')\n }),\n returns: (params.headKeys.returns || []).map(function (lines, i) {\n return lines.join('\\n')\n }),\n dependencies: [],\n authors: authors || {},\n notes: (params.headKeys.note || []).map(function (lines, i) {\n return lines.join('\\n')\n }),\n type: 'function',\n layout: 'function',\n title: functionTitle,\n description: functionDescription,\n function: params.func_name,\n category: params.category,\n language: params.language,\n permalink: params.language + '/' + params.category + '/' + params.func_name + '/',\n alias: [\n '/functions/' + params.language + '/' + params.func_name + '/',\n '/functions/' + params.category + '/' + params.func_name + '/',\n '/' + params.language + '/' + params.func_name + '/',\n ],\n }\n\n if (params.language === 'php') {\n funcData.alias.push('/functions/' + params.func_name + '/')\n }\n\n let buf = '---' + '\\n' + YAML.dump(funcData).trim() + '\\n' + '---' + '\\n'\n\n buf += `{% codeblock lang:javascript %}${params.code}{% endcodeblock %}`\n\n fsPromises.mkdir(path.dirname(funcPath), { recursive: true }).then(\n function () {\n fs.writeFile(funcPath, buf, 'utf-8', cb)\n },\n function (err) {\n throw new Error('Could not mkdir for ' + funcPath + '. ' + err)\n },\n )\n }\n\n _addRequire(name, relativeSrcForTest) {\n return [\n 'var ',\n name,\n \" = require('\",\n relativeSrcForTest,\n \"') // eslint-disable-line no-unused-vars,camelcase\",\n ].join('')\n }\n\n _writetestOne(params, cb) {\n const self = this\n\n if (!params.func_name) {\n throw new Error('No func_name in ' + JSON.stringify(params))\n }\n if (!params.headKeys) {\n throw new Error('No headKeys in ' + params.func_name)\n }\n if (!params.headKeys.example) {\n throw new Error('No example in ' + params.func_name)\n }\n\n const basename = path.basename(params.filepath)\n const subdir = path.dirname(params.filepath)\n const testpath = this.__test + '/generated/' + subdir + '/test-' + basename\n const testdir = path.dirname(testpath)\n const relativeSrcForTestDir = path.relative(testdir, self.__src)\n const relativeTestFileForRoot = path.relative(self.__root, testpath)\n\n // console.log(relativeSrcForTestDir)\n // process.exit(1)\n\n let testProps = ''\n if (params.headKeys.test) {\n testProps = params.headKeys.test[0][0]\n }\n\n let describeSkip = ''\n if (self.allowSkip && testProps.indexOf('skip-all') !== -1) {\n describeSkip = '.skip'\n }\n\n const codez = []\n\n codez.push('// warning: This file is auto generated by `yarn build:tests`')\n codez.push('// Do not edit by hand!')\n codez.push('')\n codez.push(`'use strict'`)\n codez.push('')\n\n // Add globals\n for (const global in self.globals) {\n codez.push('var ' + global + ' = ' + self.globals[global])\n }\n\n // Set timezone for testing dates\n // Not ideal: https://stackoverflow.com/questions/8083410/how-to-set-default-timezone-in-node-js\n codez.push(\"process.env.TZ = 'UTC'\")\n\n codez.push('var ' + 'expect' + \" = require('chai').expect\")\n\n // Add language-wide dependencies\n // @todo: It would be great if we could remove this\n if (params.language === 'php') {\n codez.push(self._addRequire('ini_set', relativeSrcForTestDir + '/' + 'php/info/ini_set'))\n codez.push(self._addRequire('ini_get', relativeSrcForTestDir + '/' + 'php/info/ini_get'))\n if (params.func_name === 'localeconv') {\n codez.push(self._addRequire('setlocale', relativeSrcForTestDir + '/' + 'php/strings/setlocale'))\n }\n if (params.func_name === 'i18n_loc_get_default') {\n codez.push(\n self._addRequire('i18n_loc_set_default', relativeSrcForTestDir + '/' + 'php/i18n/i18n_loc_set_default'),\n )\n }\n }\n\n // Add the main function to test\n codez.push(self._addRequire(params.func_name, relativeSrcForTestDir + '/' + params.filepath))\n\n codez.push('')\n\n codez.push(\n [\n 'describe',\n describeSkip,\n \"('src/\",\n params.filepath,\n ' (tested in ',\n relativeTestFileForRoot,\n \")', function () {\",\n ].join(''),\n )\n\n // Run each example\n for (const i in params.headKeys.example) {\n if (!params.headKeys.returns[i] || !params.headKeys.returns[i].length) {\n throw new Error('There is no return for example ' + i, test, params)\n }\n\n const humanIndex = parseInt(i, 10) + 1\n let itSkip = ''\n if (self.allowSkip && testProps.indexOf('skip-' + humanIndex) !== -1) {\n itSkip = '.skip'\n }\n\n codez.push([' it', itSkip, \"('should pass example \", humanIndex, \"', function (done) {\"].join(''))\n\n const body = []\n\n const testExpected = params.headKeys.returns[i].join('\\n')\n\n body.push('var expected = ' + testExpected)\n\n // Execute line by line (see date.js why)\n // We need result be the last result of the example code\n for (const j in params.headKeys.example[i]) {\n if (parseInt(j, 10) === params.headKeys.example[i].length - 1) {\n // last action gets saved\n body.push('var result = ' + params.headKeys.example[i][j].replace('var $result = ', ''))\n } else {\n body.push(params.headKeys.example[i][j])\n }\n }\n\n body.push('expect(result).to.deep.equal(expected)')\n body.push('done()')\n\n codez.push(indentString(body.join('\\n'), ' ', 4))\n\n codez.push(' })')\n }\n\n codez.push('})')\n codez.push('')\n\n const code = codez.join('\\n')\n\n // Write to disk\n fsPromises.mkdir(testdir, { recursive: true }).then(\n function () {\n debug('writing: ' + testpath)\n fs.writeFile(testpath, code, 'utf-8', cb)\n },\n function (err) {\n throw new Error(err)\n },\n )\n }\n\n // Environment-specific file opener. function name needs to\n // be translated to code. The difficulty is in finding the\n // category.\n _opener(fileOrName, requesterParams, cb) {\n const self = this\n let pattern\n\n const language = requesterParams.language || '*'\n\n if (path.basename(fileOrName, '.js').indexOf('.') !== -1) {\n // periods in the basename, like: unicode.utf8.RuneCountInString or strings.sprintf\n pattern = self.__src + '/' + language + '/' + fileOrName.replace(/\\./g, '/') + '.js'\n } else if (fileOrName.indexOf('/') === -1) {\n // no slashes, like: sprintf\n pattern = self.__src + '/' + language + '/*/' + fileOrName + '.js'\n } else if (fileOrName.substr(0, 1) === '/') {\n // absolute path, like: /Users/john/code/locutus/php/strings/sprintf.js\n pattern = fileOrName\n } else {\n // relative path, like: php/strings/sprintf.js\n pattern = self.__src + '/' + fileOrName\n }\n\n pattern = pattern.replace('golang/strings/Index.js', 'golang/strings/Index2.js')\n debug('loading: ' + pattern)\n const files = globby.sync(pattern, {})\n\n if (files.length !== 1) {\n const msg = `Found ${files.length} occurances of ${fileOrName} via pattern: ${pattern}`\n return cb(new Error(msg))\n }\n\n const filepath = files[0]\n\n if (path.basename(filepath) === 'index.js') {\n return cb(null)\n }\n\n if (!filepath) {\n return cb(new Error('Could not find ' + pattern))\n }\n\n fs.readFile(filepath, 'utf-8', function (err, code) {\n if (err) {\n return cb(new Error('Error while opening ' + filepath + '. ' + err))\n }\n return cb(null, filepath, code)\n })\n }\n\n _load(fileOrName, requesterParams, cb) {\n const self = this\n self._opener(fileOrName, requesterParams, function (err, fullpath, code) {\n if (err) {\n return cb(err)\n }\n\n const filepath = path.relative(self.__src, fullpath)\n self._parse(filepath, code, cb)\n })\n }\n\n _findDependencies(fileOrName, requesterParams, dependencies, cb) {\n const self = this\n\n if (!requesterParams.headKeys['depends on'] || !requesterParams.headKeys['depends on'].length) {\n if (cb) {\n cb(null, {})\n }\n return\n }\n\n let i\n let depCodePath\n let loaded = 0\n for (i in requesterParams.headKeys['depends on']) {\n depCodePath = requesterParams.headKeys['depends on'][i][0]\n\n self._load(depCodePath, requesterParams, function (err, params) {\n if (err) {\n return cb(err)\n }\n\n dependencies[depCodePath] = params\n self._findDependencies(depCodePath, params, dependencies)\n\n if (cb && ++loaded === requesterParams.headKeys['depends on'].length) {\n cb(null, dependencies)\n }\n })\n }\n }\n\n _parse(filepath, code, cb) {\n if (!code) {\n return cb(new Error('Unable to parse ' + filepath + '. Received no code'))\n }\n\n if (filepath.indexOf('/') === -1) {\n return cb(new Error(\"Parse only accepts relative filepaths. Received: '\" + filepath + \"'\"))\n }\n\n const parts = filepath.split('/')\n const language = parts.shift()\n const codepath = parts.join('.')\n const name = parts.pop()\n const category = parts.join('.')\n\n const ast = esprima.parseScript(code, { comment: true, loc: true, range: true })\n\n // find module.exports in the code\n const moduleExports = ast.body.filter((node) => {\n try {\n const leftArg = node.expression.left\n const rightArg = node.expression.right\n\n return (\n leftArg.object.name === 'module' &&\n leftArg.property.name === 'exports' &&\n rightArg.type === 'FunctionExpression' &&\n rightArg.id.type === 'Identifier' &&\n !!rightArg.id.name\n )\n } catch (err) {\n return false\n }\n })\n\n // if file contains more than one export, fail\n if (moduleExports.length !== 1) {\n return cb(Error(`File ${filepath} is allowed to contain exactly one module.exports`))\n }\n\n // get the only export\n const exp = moduleExports[0]\n\n // look for function name and param list\n const funcName = exp.expression.right.id.name\n const funcParams = exp.expression.right.params.map((p) => p.name)\n\n // remember the lines where the function is defined\n const funcLoc = exp.expression.right.loc\n\n // since comments are not included in the AST\n // but are offered in ast.comments\n // remember the location of first function body statement/expression\n const firstFuncBodyElementLoc = exp.expression.right.body.body[0].loc\n\n // get all line comments which are located between function signature definition\n // and first function body element\n const headComments = ast.comments\n .filter(\n (c) =>\n c.type === 'Line' &&\n c.loc.start.line >= funcLoc.start.line &&\n c.loc.end.line <= firstFuncBodyElementLoc.start.line,\n )\n .map((c) => c.value.trim())\n\n if (headComments.length === 0) {\n const msg = `Unable to parse ${filepath}. Did not find any comments in function definition`\n return cb(new Error(msg))\n }\n\n const headKeys = this._headKeys(headComments)\n\n const params = {\n headKeys,\n name,\n filepath,\n codepath,\n code,\n language,\n category,\n func_name: funcName,\n func_arguments: funcParams,\n }\n\n this._findDependencies(filepath, params, {}, function (err, dependencies) {\n if (err) {\n return cb(err)\n }\n\n params.dependencies = dependencies\n return cb(null, params)\n })\n }\n\n _headKeys(headLines) {\n let i\n const keys = {}\n let match = []\n let dmatch = []\n let key = ''\n let val = ''\n let num = 0\n\n for (i in headLines) {\n if (!(match = headLines[i].match(/^\\s*\\W?\\s*([a-z 0-9]+)\\s*:\\s*(.*)\\s*$/))) {\n continue\n }\n key = match[1]\n val = match[2]\n\n if ((dmatch = key.match(/^(\\w+)\\s+(\\d+)$/))) {\n // Things like examples and notes can be grouped\n key = dmatch[1]\n num = dmatch[2] - 1\n } else {\n num = 0\n }\n\n if (!keys[key]) {\n keys[key] = []\n }\n if (!keys[key][num]) {\n keys[key][num] = []\n }\n keys[key][num].push(val)\n }\n\n return keys\n }\n}\n\nmodule.exports = Util\n"]}
|
package/c/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/c/index.js"],"names":["module","exports","math","require","stdio"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,IAAf,GAAsBC,QAAQ,QAAR,CAAtB;AACAH,OAAOC,OAAP,CAAeG,KAAf,GAAuBD,QAAQ,SAAR,CAAvB","file":"index.js","sourcesContent":["module.exports.math = require('./math')\nmodule.exports.stdio = require('./stdio')\n"]}
|
package/c/math/abs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/c/math/abs.js"],"names":["module","exports","abs","mixedNumber","Math"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,GAAT,CAAaC,WAAb,EAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAOC,KAAKF,GAAL,CAASC,WAAT,KAAyB,CAAhC;AACD,CAhBD","file":"abs.js","sourcesContent":["module.exports = function abs(mixedNumber) {\n // discuss at: https://locutus.io/c/abs/\n // original by: Waldo Malqui Silva (https://waldo.malqui.info)\n // improved by: Karol Kowalski\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Jonas Raoni Soares Silva (https://www.jsfromhell.com)\n // example 1: abs(4.2)\n // returns 1: 4.2\n // example 2: abs(-4.2)\n // returns 2: 4.2\n // example 3: abs(-5)\n // returns 3: 5\n // example 4: abs('_argos')\n // returns 4: 0\n\n return Math.abs(mixedNumber) || 0\n}\n"]}
|
package/c/math/frexp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/c/math/frexp.js"],"names":["module","exports","frexp","arg","Number","result","isFinite","absArg","Math","abs","log2","n","log","LOG2E","exp","max","floor","x","pow"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAeC,GAAf,EAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAA,QAAMC,OAAOD,GAAP,CAAN;;AAEA,MAAME,SAAS,CAACF,GAAD,EAAM,CAAN,CAAf;;AAEA,MAAIA,QAAQ,CAAR,IAAaC,OAAOE,QAAP,CAAgBH,GAAhB,CAAjB,EAAuC;AACrC,QAAMI,SAASC,KAAKC,GAAL,CAASN,GAAT,CAAf;AACA;AACA,QAAMO,OACJF,KAAKE,IAAL,IACA,SAASA,IAAT,CAAcC,CAAd,EAAiB;AACf,aAAOH,KAAKI,GAAL,CAASD,CAAT,IAAcH,KAAKK,KAA1B;AACD,KAJH;AAKA,QAAIC,MAAMN,KAAKO,GAAL,CAAS,CAAC,IAAV,EAAgBP,KAAKQ,KAAL,CAAWN,KAAKH,MAAL,CAAX,IAA2B,CAA3C,CAAV;AACA,QAAIU,IAAIV,SAASC,KAAKU,GAAL,CAAS,CAAT,EAAY,CAACJ,GAAb,CAAjB;;AAEA;AACA;AACA,WAAOG,IAAI,GAAX,EAAgB;AACdA,WAAK,CAAL;AACAH;AACD;AACD,WAAOG,KAAK,CAAZ,EAAe;AACbA,WAAK,GAAL;AACAH;AACD;;AAED,QAAIX,MAAM,CAAV,EAAa;AACXc,UAAI,CAACA,CAAL;AACD;AACDZ,WAAO,CAAP,IAAYY,CAAZ;AACAZ,WAAO,CAAP,IAAYS,GAAZ;AACD;AACD,SAAOT,MAAP;AACD,CAzED","file":"frexp.js","sourcesContent":["module.exports = function frexp(arg) {\n // discuss at: https://locutus.io/c/frexp/\n // original by: Oskar Larsson Högfeldt (https://oskar-lh.name/)\n // note 1: Instead of\n // note 1: double frexp( double arg, int* exp );\n // note 1: this is built as\n // note 1: [double, int] frexp( double arg );\n // note 1: due to the lack of pointers in JavaScript.\n // note 1: See code comments for further information.\n // example 1: frexp(1)\n // returns 1: [0.5, 1]\n // example 2: frexp(1.5)\n // returns 2: [0.75, 1]\n // example 3: frexp(3 * Math.pow(2, 500))\n // returns 3: [0.75, 502]\n // example 4: frexp(-4)\n // returns 4: [-0.5, 3]\n // example 5: frexp(Number.MAX_VALUE)\n // returns 5: [0.9999999999999999, 1024]\n // example 6: frexp(Number.MIN_VALUE)\n // returns 6: [0.5, -1073]\n // example 7: frexp(-Infinity)\n // returns 7: [-Infinity, 0]\n // example 8: frexp(-0)\n // returns 8: [-0, 0]\n // example 9: frexp(NaN)\n // returns 9: [NaN, 0]\n\n // Potential issue with this implementation:\n // the precisions of Math.pow and the ** operator are undefined in the ECMAScript standard,\n // however, sane implementations should give the same results for Math.pow(2, <integer>) operations\n\n // Like frexp of C and std::frexp of C++,\n // but returns an array instead of using a pointer argument for passing the exponent result.\n // Object.is(n, frexp(n)[0] * 2 ** frexp(n)[1]) for all number values of n except when Math.isFinite(n) && Math.abs(n) > 2**1023\n // Object.is(n, (2 * frexp(n)[0]) * 2 ** (frexp(n)[1] - 1)) for all number values of n\n // Object.is(n, frexp(n)[0]) for these values of n: 0, -0, NaN, Infinity, -Infinity\n // Math.abs(frexp(n)[0]) is >= 0.5 and < 1.0 for any other number-type value of n\n // See https://en.cppreference.com/w/c/numeric/math/frexp for a more detailed description\n\n arg = Number(arg)\n\n const result = [arg, 0]\n\n if (arg !== 0 && Number.isFinite(arg)) {\n const absArg = Math.abs(arg)\n // Math.log2 was introduced in ES2015, use it when available\n const log2 =\n Math.log2 ||\n function log2(n) {\n return Math.log(n) * Math.LOG2E\n }\n let exp = Math.max(-1023, Math.floor(log2(absArg)) + 1)\n let x = absArg * Math.pow(2, -exp)\n\n // These while loops compensate for rounding errors that sometimes occur because of ECMAScript's Math.log2's undefined precision\n // and also works around the issue of Math.pow(2, -exp) === Infinity when exp <= -1024\n while (x < 0.5) {\n x *= 2\n exp--\n }\n while (x >= 1) {\n x *= 0.5\n exp++\n }\n\n if (arg < 0) {\n x = -x\n }\n result[0] = x\n result[1] = exp\n }\n return result\n}\n"]}
|
package/c/math/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/c/math/index.js"],"names":["module","exports","abs","require","frexp"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,GAAf,GAAqBC,QAAQ,OAAR,CAArB;AACAH,OAAOC,OAAP,CAAeG,KAAf,GAAuBD,QAAQ,SAAR,CAAvB","file":"index.js","sourcesContent":["module.exports.abs = require('./abs')\nmodule.exports.frexp = require('./frexp')\n"]}
|
package/c/stdio/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/c/stdio/index.js"],"names":["module","exports","sprintf","require"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,OAAf,GAAyBC,QAAQ,WAAR,CAAzB","file":"index.js","sourcesContent":["module.exports.sprintf = require('./sprintf')\n"]}
|
package/c/stdio/sprintf.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/c/stdio/sprintf.js"],"names":["pad","str","minLength","padChar","leftJustify","diff","length","padStr","repeat","Math","max","module","exports","sprintf","format","args","placeholderRegex","index","replace","match","param","flags","width","prec","modifier","includes","split","reduce","pc","c","positiveSign","minWidth","precision","Error","arg","undefined","isNaN","String","number","trunc","abs","prefix","toString","op","Number","prototype","toExponential","toFixed","toPrecision","indexOf","toLowerCase","tr","toUpperCase","isSpecial","isFinite","substr","call","intVal","base","chr","charAt","fromCharCode"],"mappings":"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","file":"sprintf.js","sourcesContent":["function pad(str, minLength, padChar, leftJustify) {\n const diff = minLength - str.length\n const padStr = padChar.repeat(Math.max(0, diff))\n\n return leftJustify ? str + padStr : padStr + str\n}\n\nmodule.exports = function sprintf(format, ...args) {\n // original by: Rafał Kukawski\n // bugfixed by: Param Siddharth\n // example 1: sprintf('%+10.*d', 5, 1)\n // returns 1: ' +00001'\n // example 2: sprintf('%s is a %d%% %s %s.', 'Param', 90, 'good', 'boy')\n // returns 2: 'Param is a 90% good boy.'\n const placeholderRegex = /%(?:(\\d+)\\$)?([-+#0 ]*)(\\*|\\d+)?(?:\\.(\\*|\\d*))?([\\s\\S])/g\n\n let index = 0\n\n return format.replace(placeholderRegex, function (match, param, flags, width, prec, modifier) {\n const leftJustify = flags.includes('-')\n\n // flag '0' is ignored when flag '-' is present\n const padChar = leftJustify ? ' ' : flags.split('').reduce((pc, c) => ([' ', '0'].includes(c) ? c : pc), ' ')\n\n const positiveSign = flags.includes('+') ? '+' : flags.includes(' ') ? ' ' : ''\n\n const minWidth = width === '*' ? args[index++] : +width || 0\n let precision = prec === '*' ? args[index++] : +prec\n\n if (param && !+param) {\n throw Error('Param index must be greater than 0')\n }\n\n if (param && +param > args.length) {\n throw Error('Too few arguments')\n }\n\n // compiling with default clang params, mixed positional and non-positional params\n // give only a warning\n const arg = param ? args[param - 1] : args[index]\n\n if (modifier !== '%') {\n index++\n }\n\n if (precision === undefined || isNaN(precision)) {\n precision = 'eEfFgG'.includes(modifier) ? 6 : modifier === 's' ? String(arg).length : undefined\n }\n\n switch (modifier) {\n case '%':\n return '%'\n case 'd':\n case 'i': {\n const number = Math.trunc(+arg || 0)\n const abs = Math.abs(number)\n const prefix = number < 0 ? '-' : positiveSign\n\n const str = pad(abs.toString(), precision || 0, '0', false)\n\n if (padChar === '0') {\n return prefix + pad(str, minWidth - prefix.length, padChar, leftJustify)\n }\n\n return pad(prefix + str, minWidth, padChar, leftJustify)\n }\n case 'e':\n case 'E':\n case 'f':\n case 'F':\n case 'g':\n case 'G': {\n const number = +arg\n const abs = Math.abs(number)\n const prefix = number < 0 ? '-' : positiveSign\n\n const op = [Number.prototype.toExponential, Number.prototype.toFixed, Number.prototype.toPrecision][\n 'efg'.indexOf(modifier.toLowerCase())\n ]\n\n const tr = [String.prototype.toLowerCase, String.prototype.toUpperCase]['eEfFgG'.indexOf(modifier) % 2]\n\n const isSpecial = isNaN(abs) || !isFinite(abs)\n\n const str = isSpecial ? abs.toString().substr(0, 3) : op.call(abs, precision)\n\n if (padChar === '0' && !isSpecial) {\n return prefix + pad(tr.call(str), minWidth - prefix.length, padChar, leftJustify)\n }\n\n return pad(tr.call(prefix + str), minWidth, isSpecial ? ' ' : padChar, leftJustify)\n }\n case 'b':\n case 'o':\n case 'u':\n case 'x':\n case 'X': {\n const number = +arg || 0\n const intVal = Math.trunc(number) + (number < 0 ? 0xffffffff + 1 : 0)\n const base = [2, 8, 10, 16, 16]['bouxX'.indexOf(modifier)]\n const prefix = intVal && flags.includes('#') ? ['', '0', '', '0x', '0X']['bouxXX'.indexOf(modifier)] : ''\n\n if (padChar === '0' && prefix) {\n return (\n prefix +\n pad(pad(intVal.toString(base), precision, '0', false), minWidth - prefix.length, padChar, leftJustify)\n )\n }\n\n return pad(prefix + pad(intVal.toString(base), precision, '0', false), minWidth, padChar, leftJustify)\n }\n case 'p':\n case 'n': {\n throw Error(`'${modifier}' modifier not supported`)\n }\n case 's': {\n return pad(String(arg).substr(0, precision), minWidth, padChar, leftJustify)\n }\n case 'c': {\n // extension, if arg is string, take first char\n const chr = typeof arg === 'string' ? arg.charAt(0) : String.fromCharCode(+arg)\n return pad(chr, minWidth, padChar, leftJustify)\n }\n case 'a':\n case 'A':\n throw Error(`'${modifier}' modifier not yet implemented`)\n default:\n // for unknown modifiers, return the modifier char\n return modifier\n }\n })\n}\n"]}
|
package/golang/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/golang/index.js"],"names":["module","exports","strings","require"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,OAAf,GAAyBC,QAAQ,WAAR,CAAzB","file":"index.js","sourcesContent":["module.exports.strings = require('./strings')\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/golang/strings/Contains.js"],"names":["module","exports","Contains","s","substr","indexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,QAAT,CAAkBC,CAAlB,EAAqBC,MAArB,EAA6B;AAC5C;AACA;AACA;AACA;;AAEA,SAAO,CAACD,IAAI,EAAL,EAASE,OAAT,CAAiBD,MAAjB,MAA6B,CAAC,CAArC;AACD,CAPD","file":"Contains.js","sourcesContent":["module.exports = function Contains(s, substr) {\n // discuss at: https://locutus.io/golang/strings/Contains\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: Contains('Kevin', 'K')\n // returns 1: true\n\n return (s + '').indexOf(substr) !== -1\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/golang/strings/Count.js"],"names":["module","exports","Count","s","sep","pos","n","length","split","indexOf","substring"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAeC,CAAf,EAAkBC,GAAlB,EAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,YAAJ;AACA,MAAIC,IAAI,CAAR;;AAEA,MAAIF,IAAIG,MAAJ,KAAe,CAAnB,EAAsB;AACpB,WAAOJ,EAAEK,KAAF,CAAQJ,GAAR,EAAaG,MAAb,GAAsB,CAA7B;AACD,GAFD,MAEO,IAAIH,IAAIG,MAAJ,GAAaJ,EAAEI,MAAnB,EAA2B;AAChC,WAAO,CAAP;AACD,GAFM,MAEA,IAAIH,IAAIG,MAAJ,KAAeJ,EAAEI,MAArB,EAA6B;AAClC,QAAIH,QAAQD,CAAZ,EAAe;AACb,aAAO,CAAP;AACD;AACD,WAAO,CAAP;AACD;AACD,SAAO,IAAP,EAAa;AACXE,UAAM,CAACF,IAAI,EAAL,EAASM,OAAT,CAAiBL,GAAjB,CAAN;AACA,QAAIC,QAAQ,CAAC,CAAb,EAAgB;AACd;AACD;AACDC,QAAKA,IAAI,CAAL,IAAW,CAAf;AACAH,QAAIA,EAAEO,SAAF,CAAaL,MAAMD,IAAIG,MAAX,IAAsB,CAAlC,CAAJ;AACD;AACD,SAAOD,CAAP;AACD,CA/BD","file":"Count.js","sourcesContent":["module.exports = function Count(s, sep) {\n // discuss at: https://locutus.io/php/printf/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // input by: GopherJS (https://www.gopherjs.org/)\n // example 1: Count(\"cheese\", \"e\")\n // returns 1: 3\n // example 2: Count(\"five\", \"\") // before & after each rune\n // returns 2: 5\n\n let pos\n let n = 0\n\n if (sep.length === 0) {\n return s.split(sep).length + 1\n } else if (sep.length > s.length) {\n return 0\n } else if (sep.length === s.length) {\n if (sep === s) {\n return 1\n }\n return 0\n }\n while (true) {\n pos = (s + '').indexOf(sep)\n if (pos === -1) {\n break\n }\n n = (n + 1) >> 0\n s = s.substring((pos + sep.length) >> 0)\n }\n return n\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/golang/strings/Index2.js"],"names":["module","exports","Index","s","sep","indexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,KAAT,CAAeC,CAAf,EAAkBC,GAAlB,EAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAO,CAACD,IAAI,EAAL,EAASE,OAAT,CAAiBD,GAAjB,CAAP;AACD,CATD","file":"Index2.js","sourcesContent":["module.exports = function Index(s, sep) {\n // discuss at: https://locutus.io/golang/strings/Index\n // original by: Kevin van Zonneveld (https://kvz.io)\n // example 1: Index('Kevin', 'K')\n // returns 1: 0\n // example 2: Index('Kevin', 'Z')\n // returns 2: -1\n\n return (s + '').indexOf(sep)\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/golang/strings/LastIndex.js"],"names":["module","exports","LastIndex","s","sep","parseInt","lastIndexOf"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,SAAT,CAAmBC,CAAnB,EAAsBC,GAAtB,EAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAOC,SAASF,EAAEG,WAAF,CAAcF,GAAd,CAAT,EAA6B,EAA7B,KAAoC,CAA3C;AACD,CAVD","file":"LastIndex.js","sourcesContent":["module.exports = function LastIndex(s, sep) {\n // discuss at: https://locutus.io/golang/strings/LastIndex\n // original by: Kevin van Zonneveld (https://kvz.io)\n // input by: GopherJS (https://www.gopherjs.org/)\n // example 1: LastIndex('go gopher', 'go')\n // returns 1: 3\n // example 2: LastIndex('go gopher', 'rodent')\n // returns 2: -1\n\n return parseInt(s.lastIndexOf(sep), 10) >> 0\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/golang/strings/index.js"],"names":["module","exports","Contains","require","Count","Index","LastIndex"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,QAAf,GAA0BC,QAAQ,YAAR,CAA1B;AACAH,OAAOC,OAAP,CAAeG,KAAf,GAAuBD,QAAQ,SAAR,CAAvB;AACAH,OAAOC,OAAP,CAAeI,KAAf,GAAuBF,QAAQ,UAAR,CAAvB;AACAH,OAAOC,OAAP,CAAeK,SAAf,GAA2BH,QAAQ,aAAR,CAA3B","file":"index.js","sourcesContent":["module.exports.Contains = require('./Contains')\nmodule.exports.Count = require('./Count')\nmodule.exports.Index = require('./Index2')\nmodule.exports.LastIndex = require('./LastIndex')\n"]}
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["module","exports","c","require","golang","php","python","ruby"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,CAAf,GAAmBC,QAAQ,KAAR,CAAnB;AACAH,OAAOC,OAAP,CAAeG,MAAf,GAAwBD,QAAQ,UAAR,CAAxB;AACAH,OAAOC,OAAP,CAAeI,GAAf,GAAqBF,QAAQ,OAAR,CAArB;AACAH,OAAOC,OAAP,CAAeK,MAAf,GAAwBH,QAAQ,UAAR,CAAxB;AACAH,OAAOC,OAAP,CAAeM,IAAf,GAAsBJ,QAAQ,QAAR,CAAtB","file":"index.js","sourcesContent":["module.exports.c = require('./c')\nmodule.exports.golang = require('./golang')\nmodule.exports.php = require('./php')\nmodule.exports.python = require('./python')\nmodule.exports.ruby = require('./ruby')\n"]}
|
package/php/_helpers/_bc.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/_helpers/_bc.js"],"names":["module","exports","_bc","Libbcmath","PLUS","MINUS","BASE","scale","bc_num","n_sign","n_len","n_scale","n_value","toString","r","tmp","join","substr","bc_add","n1","n2","scaleMin","sum","cmpRes","resScale","_bc_do_add","_bc_do_compare","_bc_do_sub","MAX","bc_new_num","memset","bc_compare","_one_mult","num","nPtr","size","digit","result","rPtr","carry","value","nptr","rptr","memcpy","Math","floor","bc_divide","qval","num1","num2","ptr1","ptr2","n2ptr","qptr","scale1","val","len1","len2","scale2","qdigits","extra","count","qdig","qguess","borrow","mval","zero","norm","bc_is_zero","MIN","safe_emalloc","bc_out_of_memory","_bc_rm_leading_zeros","MUL_BASE_DIGITS","MUL_SMALL_DIGITS","bc_multiply","pval","fullScale","prodScale","_bc_rec_mul","new_sub_num","length","ptr","temp","_bc_simp_mul","n1len","n2len","prod","n1ptr","pvptr","n1end","n2end","indx","prodlen","_bc_shift_addsub","accum","shift","sub","accp","valp","Error","u","ulen","v","vlen","u0","u1","v0","v1","m1","m2","m3","d1","d2","n","m1zero","d1len","d2len","bc_init_num","bc_sub","useSign","ignoreLast","min","diff","sumScale","sumDigits","sumptr","n1bytes","n2bytes","diffScale","diffLen","minScale","minLen","diffptr","len","Array","php_str2num","str","p","indexOf","bc_str2num","CH_VAL","c","BCD_CHAR","d","isdigit","isNaN","parseInt","strIn","digits","strscale","zeroInt","split","cint","x","a","b","ODD","chr","i","dest","src","srcptr"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,GAAT,GAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAIC,YAAY;AACdC,UAAM,GADQ;AAEdC,WAAO,GAFO;AAGdC,UAAM,EAHQ;AAId;AACAC,WAAO,CALO;AAMd;AACA;;;AAGAC,YAAQ,kBAAY;AAClB,WAAKC,MAAL,GAAc,IAAd,CADkB,CACC;AACnB,WAAKC,KAAL,GAAa,IAAb,CAFkB,CAEA;AAClB,WAAKC,OAAL,GAAe,IAAf,CAHkB,CAGE;AACpB;AACA;AACA,WAAKC,OAAL,GAAe,IAAf,CANkB,CAME;AACpB,WAAKC,QAAL,GAAgB,YAAY;AAC1B,YAAIC,UAAJ;AAAA,YAAOC,YAAP;AACAA,cAAM,KAAKH,OAAL,CAAaI,IAAb,CAAkB,EAAlB,CAAN;;AAEA;AACAF,YAAI,CAAC,KAAKL,MAAL,KAAgBN,UAAUC,IAA1B,GAAiC,EAAjC,GAAsC,KAAKK,MAA5C,IAAsDM,IAAIE,MAAJ,CAAW,CAAX,EAAc,KAAKP,KAAnB,CAA1D;;AAEA;AACA,YAAI,KAAKC,OAAL,GAAe,CAAnB,EAAsB;AACpBG,eAAK,MAAMC,IAAIE,MAAJ,CAAW,KAAKP,KAAhB,EAAuB,KAAKC,OAA5B,CAAX;AACD;AACD,eAAOG,CAAP;AACD,OAZD;AAaD,KA9Ba;;AAgCd;;;;;;;;;;;;AAYAI,YAAQ,gBAAUC,EAAV,EAAcC,EAAd,EAAkBC,QAAlB,EAA4B;AAClC,UAAIC,YAAJ;AAAA,UAASC,eAAT;AAAA,UAAiBC,iBAAjB;;AAEA,UAAIL,GAAGV,MAAH,KAAcW,GAAGX,MAArB,EAA6B;AAC3Ba,cAAMnB,UAAUsB,UAAV,CAAqBN,EAArB,EAAyBC,EAAzB,EAA6BC,QAA7B,CAAN;AACAC,YAAIb,MAAJ,GAAaU,GAAGV,MAAhB;AACD,OAHD,MAGO;AACL;AACAc,iBAASpB,UAAUuB,cAAV,CAAyBP,EAAzB,EAA6BC,EAA7B,EAAiC,KAAjC,EAAwC,KAAxC,CAAT,CAFK,CAEmD;AACxD,gBAAQG,MAAR;AACE,eAAK,CAAC,CAAN;AACE;AACAD,kBAAMnB,UAAUwB,UAAV,CAAqBP,EAArB,EAAyBD,EAAzB,EAA6BE,QAA7B,CAAN;AACAC,gBAAIb,MAAJ,GAAaW,GAAGX,MAAhB;AACA;;AAEF,eAAK,CAAL;AACE;AACAe,uBAAWrB,UAAUyB,GAAV,CAAcP,QAAd,EAAwBlB,UAAUyB,GAAV,CAAcT,GAAGR,OAAjB,EAA0BS,GAAGT,OAA7B,CAAxB,CAAX;AACAW,kBAAMnB,UAAU0B,UAAV,CAAqB,CAArB,EAAwBL,QAAxB,CAAN;AACArB,sBAAU2B,MAAV,CAAiBR,IAAIV,OAArB,EAA8B,CAA9B,EAAiC,CAAjC,EAAoCY,WAAW,CAA/C;AACA;;AAEF,eAAK,CAAL;AACE;AACAF,kBAAMnB,UAAUwB,UAAV,CAAqBR,EAArB,EAAyBC,EAAzB,EAA6BC,QAA7B,CAAN;AACAC,gBAAIb,MAAJ,GAAaU,GAAGV,MAAhB;AAjBJ;AAmBD;AACD,aAAOa,GAAP;AACD,KA1Ea;;AA4Ed;;;;;;AAMAS,gBAAY,oBAAUZ,EAAV,EAAcC,EAAd,EAAkB;AAC5B,aAAOjB,UAAUuB,cAAV,CAAyBP,EAAzB,EAA6BC,EAA7B,EAAiC,IAAjC,EAAuC,KAAvC,CAAP;AACD,KApFa;;AAsFdY,eAAW,mBAAUC,GAAV,EAAeC,IAAf,EAAqBC,IAArB,EAA2BC,KAA3B,EAAkCC,MAAlC,EAA0CC,IAA1C,EAAgD;AACzD,UAAIC,cAAJ;AAAA,UAAWC,cAAX,CADyD,CACxC;AACjB,UAAIC,aAAJ;AAAA,UAAUC,aAAV,CAFyD,CAE1C;AACf,UAAIN,UAAU,CAAd,EAAiB;AACfjC,kBAAU2B,MAAV,CAAiBO,MAAjB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+BF,IAA/B,EADe,CACsB;AACtC,OAFD,MAEO;AACL,YAAIC,UAAU,CAAd,EAAiB;AACfjC,oBAAUwC,MAAV,CAAiBN,MAAjB,EAAyBC,IAAzB,EAA+BL,GAA/B,EAAoCC,IAApC,EAA0CC,IAA1C,EADe,CACiC;AACjD,SAFD,MAEO;AACL;AACAM,iBAAOP,OAAOC,IAAP,GAAc,CAArB,CAFK,CAEkB;AACvBO,iBAAOJ,OAAOH,IAAP,GAAc,CAArB,CAHK,CAGkB;AACvBI,kBAAQ,CAAR;;AAEA,iBAAOJ,SAAS,CAAhB,EAAmB;AACjBK,oBAAQP,IAAIQ,MAAJ,IAAcL,KAAd,GAAsBG,KAA9B,CADiB,CACmB;AACpCF,mBAAOK,MAAP,IAAiBF,QAAQrC,UAAUG,IAAnC,CAFiB,CAEuB;AACxCiC,oBAAQK,KAAKC,KAAL,CAAWL,QAAQrC,UAAUG,IAA7B,CAAR,CAHiB,CAG0B;AAC5C;;AAED,cAAIiC,UAAU,CAAd,EAAiB;AACfF,mBAAOK,IAAP,IAAeH,KAAf;AACD;AACF;AACF;AACF,KA/Ga;;AAiHdO,eAAW,mBAAU3B,EAAV,EAAcC,EAAd,EAAkBb,KAAlB,EAAyB;AAClC;AACA,UAAIwC,aAAJ,CAFkC,CAEzB;AACT,UAAIC,aAAJ;AAAA,UAAUC,aAAV,CAHkC,CAGnB;AACf,UAAIC,aAAJ;AAAA,UAAUC,aAAV;AAAA,UAAgBC,cAAhB;AAAA,UAAuBC,aAAvB,CAJkC,CAIN;AAC5B,UAAIC,eAAJ;AAAA,UAAYC,YAAZ,CALkC,CAKlB;AAChB,UAAIC,aAAJ;AAAA,UAAUC,aAAV;AAAA,UAAgBC,eAAhB;AAAA,UAAwBC,gBAAxB;AAAA,UAAiCC,cAAjC;AAAA,UAAwCC,cAAxC,CANkC,CAMY;AAC9C,UAAIC,aAAJ;AAAA,UAAUC,eAAV;AAAA,UAAkBC,eAAlB;AAAA,UAA0BzB,cAA1B,CAPkC,CAOF;AAChC,UAAI0B,aAAJ,CARkC,CAQzB;AACT,UAAIC,aAAJ,CATkC,CASzB;AACT,UAAIC,aAAJ,CAVkC,CAUzB;AACT;AACA;AACA,UAAIhE,UAAUiE,UAAV,CAAqBhD,EAArB,CAAJ,EAA8B;AAC5B,eAAO,CAAC,CAAR;AACD;;AAED;AACA,UAAIjB,UAAUiE,UAAV,CAAqBjD,EAArB,CAAJ,EAA8B;AAC5B,eAAOhB,UAAU0B,UAAV,CAAqB,CAArB,EAAwBtB,KAAxB,CAAP;AACD;;AAED;;;;;;;;AAQA;AACA;AACA;AACA,UAAIa,GAAGT,OAAH,KAAe,CAAnB,EAAsB;AACpB,YAAIS,GAAGV,KAAH,KAAa,CAAb,IAAkBU,GAAGR,OAAH,CAAW,CAAX,MAAkB,CAAxC,EAA2C;AACzCmC,iBAAO5C,UAAU0B,UAAV,CAAqBV,GAAGT,KAAxB,EAA+BH,KAA/B,CAAP,CADyC,CACI;AAC7CwC,eAAKtC,MAAL,GAAcU,GAAGV,MAAH,KAAcW,GAAGX,MAAjB,GAA0BN,UAAUC,IAApC,GAA2CD,UAAUE,KAAnE;AACA;AACAF,oBAAU2B,MAAV,CAAiBiB,KAAKnC,OAAtB,EAA+BO,GAAGT,KAAlC,EAAyC,CAAzC,EAA4CH,KAA5C;AACA;AACAJ,oBAAUwC,MAAV,CAAiBI,KAAKnC,OAAtB,EAA+B,CAA/B,EAAkCO,GAAGP,OAArC,EAA8C,CAA9C,EAAiDO,GAAGT,KAAH,GAAWP,UAAUkE,GAAV,CAAclD,GAAGR,OAAjB,EAA0BJ,KAA1B,CAA5D;AACA;AACA;AACD;AACF;;AAED;;AAEAmD,eAAStC,GAAGT,OAAZ,CAhDkC,CAgDd;AACpByC,cAAQhC,GAAGV,KAAH,GAAWgD,MAAX,GAAoB,CAA5B,CAjDkC,CAiDJ;AAC9B,aAAOA,SAAS,CAAT,IAActC,GAAGR,OAAH,CAAWwC,OAAX,MAAwB,CAA7C,EAAgD;AAC9CM;AACD;;AAEDF,aAAOrC,GAAGT,KAAH,GAAWgD,MAAlB;AACAJ,eAASnC,GAAGR,OAAH,GAAa+C,MAAtB;AACA,UAAIJ,SAAS/C,KAAb,EAAoB;AAClBqD,gBAAQrD,QAAQ+C,MAAhB;AACD,OAFD,MAEO;AACLM,gBAAQ,CAAR;AACD;;AAED;AACAZ,aAAO7C,UAAUmE,YAAV,CAAuB,CAAvB,EAA0BnD,GAAGT,KAAH,GAAWS,GAAGR,OAAxC,EAAiDiD,QAAQ,CAAzD,CAAP;AACA,UAAIZ,SAAS,IAAb,EAAmB;AACjB7C,kBAAUoE,gBAAV;AACD;AACD;AACApE,gBAAU2B,MAAV,CAAiBkB,IAAjB,EAAuB,CAAvB,EAA0B,CAA1B,EAA6B7B,GAAGT,KAAH,GAAWS,GAAGR,OAAd,GAAwBiD,KAAxB,GAAgC,CAA7D;AACA;AACAzD,gBAAUwC,MAAV,CAAiBK,IAAjB,EAAuB,CAAvB,EAA0B7B,GAAGP,OAA7B,EAAsC,CAAtC,EAAyCO,GAAGT,KAAH,GAAWS,GAAGR,OAAvD;AACA;AACA8C,aAAOrC,GAAGV,KAAH,GAAWgD,MAAlB;AACA;AACAT,aAAO9C,UAAUmE,YAAV,CAAuB,CAAvB,EAA0Bb,IAA1B,EAAgC,CAAhC,CAAP;AACA,UAAIR,SAAS,IAAb,EAAmB;AACjB9C,kBAAUoE,gBAAV;AACD;AACD;AACApE,gBAAUwC,MAAV,CAAiBM,IAAjB,EAAuB,CAAvB,EAA0B7B,GAAGR,OAA7B,EAAsC,CAAtC,EAAyC6C,IAAzC;AACA;AACAR,WAAKQ,IAAL,IAAa,CAAb;AACA;AACAL,cAAQ,CAAR;AACA;AACA,aAAOH,KAAKG,KAAL,MAAgB,CAAvB,EAA0B;AACxBA;AACAK;AACD;;AAED;AACA,UAAIA,OAAOD,OAAOjD,KAAlB,EAAyB;AACvBoD,kBAAUpD,QAAQ,CAAlB;AACA2D,eAAO,IAAP;AACD,OAHD,MAGO;AACLA,eAAO,KAAP;AACA,YAAIT,OAAOD,IAAX,EAAiB;AACfG,oBAAUpD,QAAQ,CAAlB,CADe,CACK;AACrB,SAFD,MAEO;AACLoD,oBAAUH,OAAOC,IAAP,GAAclD,KAAd,GAAsB,CAAhC;AACD;AACF;;AAED;AACA;AACAwC,aAAO5C,UAAU0B,UAAV,CAAqB8B,UAAUpD,KAA/B,EAAsCA,KAAtC,CAAP;AACA;AACAJ,gBAAU2B,MAAV,CAAiBiB,KAAKnC,OAAtB,EAA+B,CAA/B,EAAkC,CAAlC,EAAqC+C,OAArC;AACA;AACA;AACAM,aAAO9D,UAAUmE,YAAV,CAAuB,CAAvB,EAA0Bb,IAA1B,EAAgC,CAAhC,CAAP;AACA,UAAIQ,SAAS,IAAb,EAAmB;AACjB9D,kBAAUoE,gBAAV;AACD;;AAED;AACA,UAAI,CAACL,IAAL,EAAW;AACT;AACA;AACA;AACAC,eAAOvB,KAAKC,KAAL,CAAW,MAAMzB,GAAGR,OAAH,CAAWwC,KAAX,IAAoB,CAA1B,CAAX,CAAP,CAJS,CAIuC;AAChD,YAAIe,SAAS,CAAb,EAAgB;AACd;AACAhE,oBAAU6B,SAAV,CAAoBgB,IAApB,EAA0B,CAA1B,EAA6BQ,OAAOF,MAAP,GAAgBM,KAAhB,GAAwB,CAArD,EAAwDO,IAAxD,EAA8DnB,IAA9D,EAAoE,CAApE;AACA;AACA7C,oBAAU6B,SAAV,CAAoBZ,GAAGR,OAAvB,EAAgCwC,KAAhC,EAAuCK,IAAvC,EAA6CU,IAA7C,EAAmD/C,GAAGR,OAAtD,EAA+DwC,KAA/D;AACA;AACA;AACD;;AAED;AACAU,eAAO,CAAP;AACA,YAAIL,OAAOD,IAAX,EAAiB;AACfH,iBAAOI,OAAOD,IAAd,CADe,CACI;AACpB,SAFD,MAEO;AACLH,iBAAO,CAAP,CADK,CACI;AACV;;AAED;AACA,eAAOS,QAAQN,OAAOjD,KAAP,GAAekD,IAA9B,EAAoC;AAClC;AACA,cAAIrC,GAAGR,OAAH,CAAWwC,KAAX,MAAsBJ,KAAKc,IAAL,CAA1B,EAAsC;AACpCC,qBAAS,CAAT;AACD,WAFD,MAEO;AACLA,qBAASnB,KAAKC,KAAL,CAAW,CAACG,KAAKc,IAAL,IAAa,EAAb,GAAkBd,KAAKc,OAAO,CAAZ,CAAnB,IAAqC1C,GAAGR,OAAH,CAAWwC,KAAX,CAAhD,CAAT;AACD;AACD;;AAEA,cACEhC,GAAGR,OAAH,CAAWwC,QAAQ,CAAnB,IAAwBW,MAAxB,GACA,CAACf,KAAKc,IAAL,IAAa,EAAb,GAAkBd,KAAKc,OAAO,CAAZ,CAAlB,GAAmC1C,GAAGR,OAAH,CAAWwC,KAAX,IAAoBW,MAAxD,IAAkE,EAAlE,GAAuEf,KAAKc,OAAO,CAAZ,CAFzE,EAGE;AACAC;AACA;AACA,gBACE3C,GAAGR,OAAH,CAAWwC,QAAQ,CAAnB,IAAwBW,MAAxB,GACA,CAACf,KAAKc,IAAL,IAAa,EAAb,GAAkBd,KAAKc,OAAO,CAAZ,CAAlB,GAAmC1C,GAAGR,OAAH,CAAWwC,KAAX,IAAoBW,MAAxD,IAAkE,EAAlE,GAAuEf,KAAKc,OAAO,CAAZ,CAFzE,EAGE;AACAC;AACD;AACF;;AAED;AACAC,mBAAS,CAAT;AACA,cAAID,WAAW,CAAf,EAAkB;AAChBE,iBAAK,CAAL,IAAU,CAAV,CADgB,CACJ;AACZ;AACA9D,sBAAU6B,SAAV,CAAoBZ,GAAGR,OAAvB,EAAgCwC,KAAhC,EAAuCK,IAAvC,EAA6CM,MAA7C,EAAqDE,IAArD,EAA2D,CAA3D;AACAf,mBAAOY,OAAOL,IAAd,CAJgB,CAIG;AACnBN,mBAAOM,IAAP,CALgB,CAKJ;AACZ;AACA;AACA,iBAAKI,QAAQ,CAAb,EAAgBA,QAAQJ,OAAO,CAA/B,EAAkCI,OAAlC,EAA2C;AACzC,kBAAIV,OAAO,CAAX,EAAc;AACZ;AACA;AACAI,sBAAMP,KAAKE,IAAL,IAAa,CAAb,GAAiBc,MAAvB,CAHY,CAGkB;AAC/B,eAJD,MAIO;AACL;AACA;AACA;AACAT,sBAAMP,KAAKE,IAAL,IAAae,KAAKd,MAAL,CAAb,GAA4Ba,MAAlC;AACD;AACD,kBAAIT,MAAM,CAAV,EAAa;AACXA,uBAAO,EAAP;AACAS,yBAAS,CAAT;AACD,eAHD,MAGO;AACLA,yBAAS,CAAT;AACD;AACDhB,mBAAKE,MAAL,IAAeK,GAAf;AACD;AACF;;AAED;AACA,cAAIS,WAAW,CAAf,EAAkB;AAChBD;AACAb,mBAAOY,OAAOL,IAAd,CAFgB,CAEG;AACnBN,mBAAOM,OAAO,CAAd,CAHgB,CAGA;AAChBlB,oBAAQ,CAAR;AACA,iBAAKsB,QAAQ,CAAb,EAAgBA,QAAQJ,IAAxB,EAA8BI,OAA9B,EAAuC;AACrC,kBAAIV,OAAO,CAAX,EAAc;AACZ;AACA;AACA;AACAI,sBAAMP,KAAKE,IAAL,IAAa,CAAb,GAAiBX,KAAvB;AACD,eALD,MAKO;AACL;AACA;AACA;AACAgB,sBAAMP,KAAKE,IAAL,IAAa9B,GAAGR,OAAH,CAAWuC,MAAX,CAAb,GAAkCZ,KAAxC;AACD;AACD,kBAAIgB,MAAM,CAAV,EAAa;AACXA,uBAAO,EAAP;AACAhB,wBAAQ,CAAR;AACD,eAHD,MAGO;AACLA,wBAAQ,CAAR;AACD;AACDS,mBAAKE,MAAL,IAAeK,GAAf,CAlBqC,CAkBlB;AACpB;AACD,gBAAIhB,UAAU,CAAd,EAAiB;AACf;AACA;AACA;AACAS,mBAAKE,IAAL,IAAa,CAACF,KAAKE,IAAL,IAAa,CAAd,IAAmB,EAAhC;AACD;AACF;;AAED;AACAH,eAAKnC,OAAL,CAAayC,MAAb,IAAuBU,MAAvB,CAzFkC,CAyFJ;AAC9BD;AACD;AACF;;AAED;AACAf,WAAKtC,MAAL,GAAcU,GAAGV,MAAH,KAAcW,GAAGX,MAAjB,GAA0BN,UAAUC,IAApC,GAA2CD,UAAUE,KAAnE;AACA,UAAIF,UAAUiE,UAAV,CAAqBrB,IAArB,CAAJ,EAAgC;AAC9BA,aAAKtC,MAAL,GAAcN,UAAUC,IAAxB;AACD;AACDD,gBAAUqE,oBAAV,CAA+BzB,IAA/B;;AAEA,aAAOA,IAAP;;AAEA;AACD,KApWa;;AAsWd0B,qBAAiB,EAtWH;AAuWdC,sBAAkB,KAAK,CAvWT;AAwWd;;AAEA;;;AAGA;;;;;AAKAC,iBAAa,qBAAUxD,EAAV,EAAcC,EAAd,EAAkBb,KAAlB,EAAyB;AACpC,UAAIqE,aAAJ,CADoC,CAC3B;AACT,UAAIpB,aAAJ;AAAA,UAAUC,aAAV,CAFoC,CAErB;AACf,UAAIoB,kBAAJ;AAAA,UAAeC,kBAAf,CAHoC,CAGX;AACzB;AACAtB,aAAOrC,GAAGT,KAAH,GAAWS,GAAGR,OAArB;AACA8C,aAAOrC,GAAGV,KAAH,GAAWU,GAAGT,OAArB;AACAkE,kBAAY1D,GAAGR,OAAH,GAAaS,GAAGT,OAA5B;AACAmE,kBAAY3E,UAAUkE,GAAV,CAAcQ,SAAd,EAAyB1E,UAAUyB,GAAV,CAAcrB,KAAd,EAAqBJ,UAAUyB,GAAV,CAAcT,GAAGR,OAAjB,EAA0BS,GAAGT,OAA7B,CAArB,CAAzB,CAAZ;;AAEA;AACA;AACAiE,aAAOzE,UAAU4E,WAAV,CAAsB5D,EAAtB,EAA0BqC,IAA1B,EAAgCpC,EAAhC,EAAoCqC,IAApC,EAA0CoB,SAA1C,CAAP;;AAEA;AACAD,WAAKnE,MAAL,GAAcU,GAAGV,MAAH,KAAcW,GAAGX,MAAjB,GAA0BN,UAAUC,IAApC,GAA2CD,UAAUE,KAAnE;AACA;AACAuE,WAAKlE,KAAL,GAAa+C,OAAOD,IAAP,GAAc,CAAd,GAAkBqB,SAA/B;AACAD,WAAKjE,OAAL,GAAemE,SAAf;AACA3E,gBAAUqE,oBAAV,CAA+BI,IAA/B;AACA,UAAIzE,UAAUiE,UAAV,CAAqBQ,IAArB,CAAJ,EAAgC;AAC9BA,aAAKnE,MAAL,GAAcN,UAAUC,IAAxB;AACD;AACD;AACA,aAAOwE,IAAP;AACD,KA3Ya;;AA6YdI,iBAAa,qBAAUC,MAAV,EAAkB1E,KAAlB,EAAyBiC,KAAzB,EAAyC;AAAA,UAAT0C,GAAS,uEAAH,CAAG;;AACpD,UAAMC,OAAO,IAAIhF,UAAUK,MAAd,EAAb,CADoD,CAChB;AACpC2E,WAAK1E,MAAL,GAAcN,UAAUC,IAAxB;AACA+E,WAAKzE,KAAL,GAAauE,MAAb;AACAE,WAAKxE,OAAL,GAAeJ,KAAf;AACA4E,WAAKvE,OAAL,GAAeT,UAAUmE,YAAV,CAAuB,CAAvB,EAA0BW,SAAS1E,KAAnC,EAA0C,CAA1C,CAAf;AACAJ,gBAAUwC,MAAV,CAAiBwC,KAAKvE,OAAtB,EAA+B,CAA/B,EAAkC4B,KAAlC,EAAyC0C,GAAzC,EAA8CD,SAAS1E,KAAvD;AACA,aAAO4E,IAAP;AACD,KArZa;;AAuZdC,kBAAc,sBAAUjE,EAAV,EAAckE,KAAd,EAAqBjE,EAArB,EAAyBkE,KAAzB,EAAgCT,SAAhC,EAA2C;AACvD,UAAIU,aAAJ,CADuD,CAC9C;AACT,UAAIC,cAAJ;AAAA,UAAWpC,cAAX;AAAA,UAAkBqC,cAAlB,CAFuD,CAE/B;AACxB,UAAIC,cAAJ;AAAA,UAAWC,cAAX,CAHuD,CAGtC;AACjB,UAAIC,aAAJ;AAAA,UAAUtE,YAAV;AAAA,UAAeuE,gBAAf,CAJuD,CAIhC;AACvBA,gBAAUR,QAAQC,KAAR,GAAgB,CAA1B;;AAEAC,aAAOpF,UAAU0B,UAAV,CAAqBgE,OAArB,EAA8B,CAA9B,CAAP;;AAEAH,cAAQL,QAAQ,CAAhB,CATuD,CASrC;AAClBM,cAAQL,QAAQ,CAAhB,CAVuD,CAUrC;AAClBG,cAAQI,UAAU,CAAlB,CAXuD,CAWnC;AACpBvE,YAAM,CAAN;;AAEA;AACA,WAAKsE,OAAO,CAAZ,EAAeA,OAAOC,UAAU,CAAhC,EAAmCD,MAAnC,EAA2C;AACzC;AACAJ,gBAAQE,QAAQvF,UAAUyB,GAAV,CAAc,CAAd,EAAiBgE,OAAON,KAAP,GAAe,CAAhC,CAAhB;AACA;AACAlC,gBAAQuC,QAAQxF,UAAUkE,GAAV,CAAcuB,IAAd,EAAoBN,QAAQ,CAA5B,CAAhB;AACA,eAAOE,SAAS,CAAT,IAAcpC,SAASuC,KAA9B,EAAqC;AACnC;AACArE,iBAAOH,GAAGP,OAAH,CAAW4E,OAAX,IAAsBpE,GAAGR,OAAH,CAAWwC,OAAX,CAA7B;AACD;AACD;AACAmC,aAAK3E,OAAL,CAAa6E,OAAb,IAAwB7C,KAAKC,KAAL,CAAWvB,MAAMnB,UAAUG,IAA3B,CAAxB;AACAgB,cAAMsB,KAAKC,KAAL,CAAWvB,MAAMnB,UAAUG,IAA3B,CAAN,CAXyC,CAWF;AACxC;AACDiF,WAAK3E,OAAL,CAAa6E,KAAb,IAAsBnE,GAAtB,CA5BuD,CA4B7B;AAC1B,aAAOiE,IAAP;AACD,KArba;;AAubd;;;;AAIAO,sBAAkB,0BAAUC,KAAV,EAAiBxC,GAAjB,EAAsByC,KAAtB,EAA6BC,GAA7B,EAAkC;AAClD,UAAIC,aAAJ;AAAA,UAAUC,aAAV,CADkD,CACnC;AACf,UAAItC,cAAJ;AAAA,UAAWtB,cAAX,CAFkD,CAEjC;AACjBsB,cAAQN,IAAI7C,KAAZ;AACA,UAAI6C,IAAI3C,OAAJ,CAAY,CAAZ,MAAmB,CAAvB,EAA0B;AACxBiD;AACD;;AAED;AACA,UAAIkC,MAAMrF,KAAN,GAAcqF,MAAMpF,OAApB,GAA8BqF,QAAQnC,KAA1C,EAAiD;AAC/C,cAAM,IAAIuC,KAAJ,CAAU,6BAAV,CAAN,CAD+C,CACA;AAChD;;AAED;AACA;AACAF,aAAOH,MAAMrF,KAAN,GAAcqF,MAAMpF,OAApB,GAA8BqF,KAA9B,GAAsC,CAA7C;AACAG,aAAO5C,IAAI7C,KAAJ,GAAY,CAAnB,CAhBkD,CAgB7B;AACrB6B,cAAQ,CAAR;AACA,UAAI0D,GAAJ,EAAS;AACP;AACA,eAAOpC,OAAP,EAAgB;AACdkC,gBAAMnF,OAAN,CAAcsF,IAAd,KAAuB3C,IAAI3C,OAAJ,CAAYuF,MAAZ,IAAsB5D,KAA7C,CADc,CACqC;AACnD,cAAIwD,MAAMnF,OAAN,CAAcsF,IAAd,IAAsB,CAA1B,EAA6B;AAC3B;AACA3D,oBAAQ,CAAR;AACAwD,kBAAMnF,OAAN,CAAcsF,MAAd,KAAyB/F,UAAUG,IAAnC,CAH2B,CAGa;AACzC,WAJD,MAIO;AACLiC,oBAAQ,CAAR;AACA2D;AACD;AACF;AACD,eAAO3D,KAAP,EAAc;AACZwD,gBAAMnF,OAAN,CAAcsF,IAAd,KAAuB3D,KAAvB,CADY,CACiB;AAC7B,cAAIwD,MAAMnF,OAAN,CAAcsF,IAAd,IAAsB,CAA1B,EAA6B;AAC3B;AACAH,kBAAMnF,OAAN,CAAcsF,MAAd,KAAyB/F,UAAUG,IAAnC,CAF2B,CAEa;AACzC,WAHD,MAGO;AACLiC,oBAAQ,CAAR;AACD;AACF;AACF,OAtBD,MAsBO;AACL;AACA,eAAOsB,OAAP,EAAgB;AACdkC,gBAAMnF,OAAN,CAAcsF,IAAd,KAAuB3C,IAAI3C,OAAJ,CAAYuF,MAAZ,IAAsB5D,KAA7C,CADc,CACqC;AACnD,cAAIwD,MAAMnF,OAAN,CAAcsF,IAAd,IAAsB/F,UAAUG,IAAV,GAAiB,CAA3C,EAA8C;AAC5C;AACAiC,oBAAQ,CAAR;AACAwD,kBAAMnF,OAAN,CAAcsF,MAAd,KAAyB/F,UAAUG,IAAnC,CAH4C,CAGJ;AACzC,WAJD,MAIO;AACLiC,oBAAQ,CAAR;AACA2D;AACD;AACF;AACD,eAAO3D,KAAP,EAAc;AACZwD,gBAAMnF,OAAN,CAAcsF,IAAd,KAAuB3D,KAAvB,CADY,CACiB;AAC7B,cAAIwD,MAAMnF,OAAN,CAAcsF,IAAd,IAAsB/F,UAAUG,IAAV,GAAiB,CAA3C,EAA8C;AAC5C;AACAyF,kBAAMnF,OAAN,CAAcsF,MAAd,KAAyB/F,UAAUG,IAAnC,CAF4C,CAEJ;AACzC,WAHD,MAGO;AACLiC,oBAAQ,CAAR;AACD;AACF;AACF;AACD,aAAO,IAAP,CA/DkD,CA+DtC;AACb,KA3fa;;AA6fd;;;;;;;AAQAwC,iBAAa,qBAAUsB,CAAV,EAAaC,IAAb,EAAmBC,CAAnB,EAAsBC,IAAtB,EAA4B3B,SAA5B,EAAuC;AAClD,UAAIU,aAAJ,CADkD,CACzC;AACT,UAAIkB,WAAJ;AAAA,UAAQC,WAAR;AAAA,UAAYC,WAAZ;AAAA,UAAgBC,WAAhB,CAFkD,CAE/B;AACnB;AACA;AACA,UAAIC,WAAJ;AAAA,UAAQC,WAAR;AAAA,UAAYC,WAAZ;AAAA,UAAgBC,WAAhB;AAAA,UAAoBC,WAApB,CALkD,CAK3B;AACvB,UAAIC,UAAJ;AAAA,UAAOrB,gBAAP;AAAA,UAAgBsB,eAAhB,CANkD,CAM3B;AACvB,UAAIC,cAAJ;AAAA,UAAWC,cAAX,CAPkD,CAOjC;AACjB;AACA,UACEf,OAAOE,IAAP,GAAcrG,UAAUsE,eAAxB,IACA6B,OAAOnG,UAAUuE,gBADjB,IAEA8B,OAAOrG,UAAUuE,gBAHnB,EAIE;AACA,eAAOvE,UAAUiF,YAAV,CAAuBiB,CAAvB,EAA0BC,IAA1B,EAAgCC,CAAhC,EAAmCC,IAAnC,EAAyC3B,SAAzC,CAAP;AACD;;AAED;AACAqC,UAAItE,KAAKC,KAAL,CAAW,CAAC1C,UAAUyB,GAAV,CAAc0E,IAAd,EAAoBE,IAApB,IAA4B,CAA7B,IAAkC,CAA7C,CAAJ;;AAEA;AACA,UAAIF,OAAOY,CAAX,EAAc;AACZR,aAAKvG,UAAUmH,WAAV,EAAL,CADY,CACiB;AAC7Bb,aAAKtG,UAAU6E,WAAV,CAAsBsB,IAAtB,EAA4B,CAA5B,EAA+BD,EAAEzF,OAAjC,CAAL;AACD,OAHD,MAGO;AACL8F,aAAKvG,UAAU6E,WAAV,CAAsBsB,OAAOY,CAA7B,EAAgC,CAAhC,EAAmCb,EAAEzF,OAArC,CAAL;AACA6F,aAAKtG,UAAU6E,WAAV,CAAsBkC,CAAtB,EAAyB,CAAzB,EAA4Bb,EAAEzF,OAA9B,EAAuC0F,OAAOY,CAA9C,CAAL;AACD;AACD,UAAIV,OAAOU,CAAX,EAAc;AACZN,aAAKzG,UAAUmH,WAAV,EAAL,CADY,CACiB;AAC7BX,aAAKxG,UAAU6E,WAAV,CAAsBwB,IAAtB,EAA4B,CAA5B,EAA+BD,EAAE3F,OAAjC,CAAL;AACD,OAHD,MAGO;AACLgG,aAAKzG,UAAU6E,WAAV,CAAsBwB,OAAOU,CAA7B,EAAgC,CAAhC,EAAmCX,EAAE3F,OAArC,CAAL;AACA+F,aAAKxG,UAAU6E,WAAV,CAAsBkC,CAAtB,EAAyB,CAAzB,EAA4BX,EAAE3F,OAA9B,EAAuC4F,OAAOU,CAA9C,CAAL;AACD;AACD/G,gBAAUqE,oBAAV,CAA+BkC,EAA/B;AACAvG,gBAAUqE,oBAAV,CAA+BiC,EAA/B;AACA;AACAtG,gBAAUqE,oBAAV,CAA+BoC,EAA/B;AACAzG,gBAAUqE,oBAAV,CAA+BmC,EAA/B;AACA;;AAEAQ,eAAShH,UAAUiE,UAAV,CAAqBsC,EAArB,KAA4BvG,UAAUiE,UAAV,CAAqBwC,EAArB,CAArC;;AAEA;AACAI,WAAK7G,UAAUmH,WAAV,EAAL,CA7CkD,CA6CrB;AAC7BL,WAAK9G,UAAUmH,WAAV,EAAL,CA9CkD,CA8CrB;AAC7BN,WAAK7G,UAAUoH,MAAV,CAAiBb,EAAjB,EAAqBD,EAArB,EAAyB,CAAzB,CAAL;AACAW,cAAQJ,GAAGtG,KAAX;;AAEAuG,WAAK9G,UAAUoH,MAAV,CAAiBZ,EAAjB,EAAqBC,EAArB,EAAyB,CAAzB,CAAL;AACAS,cAAQJ,GAAGvG,KAAX;;AAEA;AACA,UAAIyG,MAAJ,EAAY;AACVN,aAAK1G,UAAUmH,WAAV,EAAL,CADU,CACmB;AAC9B,OAFD,MAEO;AACL;AACAT,aAAK1G,UAAU4E,WAAV,CAAsB2B,EAAtB,EAA0BA,GAAGhG,KAA7B,EAAoCkG,EAApC,EAAwCA,GAAGlG,KAA3C,EAAkD,CAAlD,CAAL;AACD;AACD,UAAIP,UAAUiE,UAAV,CAAqB4C,EAArB,KAA4B7G,UAAUiE,UAAV,CAAqB6C,EAArB,CAAhC,EAA0D;AACxDH,aAAK3G,UAAUmH,WAAV,EAAL,CADwD,CAC3B;AAC9B,OAFD,MAEO;AACL;AACAR,aAAK3G,UAAU4E,WAAV,CAAsBiC,EAAtB,EAA0BI,KAA1B,EAAiCH,EAAjC,EAAqCI,KAArC,EAA4C,CAA5C,CAAL;AACD;;AAED,UAAIlH,UAAUiE,UAAV,CAAqBqC,EAArB,KAA4BtG,UAAUiE,UAAV,CAAqBuC,EAArB,CAAhC,EAA0D;AACxDI,aAAK5G,UAAUmH,WAAV,EAAL,CADwD,CAC3B;AAC9B,OAFD,MAEO;AACL;AACAP,aAAK5G,UAAU4E,WAAV,CAAsB0B,EAAtB,EAA0BA,GAAG/F,KAA7B,EAAoCiG,EAApC,EAAwCA,GAAGjG,KAA3C,EAAkD,CAAlD,CAAL;AACD;;AAED;AACAmF,gBAAUS,OAAOE,IAAP,GAAc,CAAxB;AACAjB,aAAOpF,UAAU0B,UAAV,CAAqBgE,OAArB,EAA8B,CAA9B,CAAP;;AAEA,UAAI,CAACsB,MAAL,EAAa;AACXhH,kBAAU2F,gBAAV,CAA2BP,IAA3B,EAAiCsB,EAAjC,EAAqC,IAAIK,CAAzC,EAA4C,CAA5C;AACA/G,kBAAU2F,gBAAV,CAA2BP,IAA3B,EAAiCsB,EAAjC,EAAqCK,CAArC,EAAwC,CAAxC;AACD;AACD/G,gBAAU2F,gBAAV,CAA2BP,IAA3B,EAAiCwB,EAAjC,EAAqCG,CAArC,EAAwC,CAAxC;AACA/G,gBAAU2F,gBAAV,CAA2BP,IAA3B,EAAiCwB,EAAjC,EAAqC,CAArC,EAAwC,CAAxC;AACA5G,gBAAU2F,gBAAV,CAA2BP,IAA3B,EAAiCuB,EAAjC,EAAqCI,CAArC,EAAwCF,GAAGvG,MAAH,KAAcwG,GAAGxG,MAAzD;;AAEA,aAAO8E,IAAP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD,KAtmBa;;AAwmBd;;;;;;;;AAQA7D,oBAAgB,wBAAUP,EAAV,EAAcC,EAAd,EAAkBoG,OAAlB,EAA2BC,UAA3B,EAAuC;AACrD,UAAIjC,cAAJ;AAAA,UAAWpC,cAAX,CADqD,CACpC;AACjB,UAAIS,cAAJ,CAFqD,CAE3C;AACV;AACA,UAAI2D,WAAWrG,GAAGV,MAAH,KAAcW,GAAGX,MAAhC,EAAwC;AACtC,YAAIU,GAAGV,MAAH,KAAcN,UAAUC,IAA5B,EAAkC;AAChC,iBAAO,CAAP,CADgC,CACvB;AACV,SAFD,MAEO;AACL,mBAAO,CAAC,CAAR,CADK,CACK;AACX;AACF;;AAED;AACA,UAAIe,GAAGT,KAAH,KAAaU,GAAGV,KAApB,EAA2B;AACzB,YAAIS,GAAGT,KAAH,GAAWU,GAAGV,KAAlB,EAAyB;AACvB;AACA,cAAI,CAAC8G,OAAD,IAAYrG,GAAGV,MAAH,KAAcN,UAAUC,IAAxC,EAA8C;AAC5C,mBAAO,CAAP;AACD,WAFD,MAEO;AACL,mBAAO,CAAC,CAAR;AACD;AACF,SAPD,MAOO;AACL;AACA,cAAI,CAACoH,OAAD,IAAYrG,GAAGV,MAAH,KAAcN,UAAUC,IAAxC,EAA8C;AAC5C,mBAAO,CAAC,CAAR;AACD,WAFD,MAEO;AACL,mBAAO,CAAP;AACD;AACF;AACF;;AAED;;AAEAyD,cAAQ1C,GAAGT,KAAH,GAAWkC,KAAK8E,GAAL,CAASvG,GAAGR,OAAZ,EAAqBS,GAAGT,OAAxB,CAAnB;AACA6E,cAAQ,CAAR;AACApC,cAAQ,CAAR;;AAEA,aAAOS,QAAQ,CAAR,IAAa1C,GAAGP,OAAH,CAAW4E,KAAX,MAAsBpE,GAAGR,OAAH,CAAWwC,KAAX,CAA1C,EAA6D;AAC3DoC;AACApC;AACAS;AACD;;AAED,UAAI4D,cAAc5D,UAAU,CAAxB,IAA6B1C,GAAGR,OAAH,KAAeS,GAAGT,OAAnD,EAA4D;AAC1D,eAAO,CAAP;AACD;;AAED,UAAIkD,UAAU,CAAd,EAAiB;AACf,YAAI1C,GAAGP,OAAH,CAAW4E,KAAX,IAAoBpE,GAAGR,OAAH,CAAWwC,KAAX,CAAxB,EAA2C;AACzC;AACA,cAAI,CAACoE,OAAD,IAAYrG,GAAGV,MAAH,KAAcN,UAAUC,IAAxC,EAA8C;AAC5C,mBAAO,CAAP;AACD,WAFD,MAEO;AACL,mBAAO,CAAC,CAAR;AACD;AACF,SAPD,MAOO;AACL;AACA,cAAI,CAACoH,OAAD,IAAYrG,GAAGV,MAAH,KAAcN,UAAUC,IAAxC,EAA8C;AAC5C,mBAAO,CAAC,CAAR;AACD,WAFD,MAEO;AACL,mBAAO,CAAP;AACD;AACF;AACF;;AAED;AACA,UAAIe,GAAGR,OAAH,KAAeS,GAAGT,OAAtB,EAA+B;AAC7B,YAAIQ,GAAGR,OAAH,GAAaS,GAAGT,OAApB,EAA6B;AAC3B,eAAKkD,QAAQ1C,GAAGR,OAAH,GAAaS,GAAGT,OAA7B,EAAsCkD,QAAQ,CAA9C,EAAiDA,OAAjD,EAA0D;AACxD,gBAAI1C,GAAGP,OAAH,CAAW4E,OAAX,MAAwB,CAA5B,EAA+B;AAC7B;AACA,kBAAI,CAACgC,OAAD,IAAYrG,GAAGV,MAAH,KAAcN,UAAUC,IAAxC,EAA8C;AAC5C,uBAAO,CAAP;AACD,eAFD,MAEO;AACL,uBAAO,CAAC,CAAR;AACD;AACF;AACF;AACF,SAXD,MAWO;AACL,eAAKyD,QAAQzC,GAAGT,OAAH,GAAaQ,GAAGR,OAA7B,EAAsCkD,QAAQ,CAA9C,EAAiDA,OAAjD,EAA0D;AACxD,gBAAIzC,GAAGR,OAAH,CAAWwC,OAAX,MAAwB,CAA5B,EAA+B;AAC7B;AACA,kBAAI,CAACoE,OAAD,IAAYrG,GAAGV,MAAH,KAAcN,UAAUC,IAAxC,EAA8C;AAC5C,uBAAO,CAAC,CAAR;AACD,eAFD,MAEO;AACL,uBAAO,CAAP;AACD;AACF;AACF;AACF;AACF;;AAED;AACA,aAAO,CAAP;AACD,KA9sBa;;AAgtBd;;;AAGAmH,YAAQ,gBAAUpG,EAAV,EAAcC,EAAd,EAAkBC,QAAlB,EAA4B;AAClC,UAAIsG,aAAJ,CADkC,CACzB;AACT,UAAIpG,eAAJ;AAAA,UAAYC,iBAAZ,CAFkC,CAEb;AACrB,UAAIL,GAAGV,MAAH,KAAcW,GAAGX,MAArB,EAA6B;AAC3BkH,eAAOxH,UAAUsB,UAAV,CAAqBN,EAArB,EAAyBC,EAAzB,EAA6BC,QAA7B,CAAP;AACAsG,aAAKlH,MAAL,GAAcU,GAAGV,MAAjB;AACD,OAHD,MAGO;AACL;AACA;AACAc,iBAASpB,UAAUuB,cAAV,CAAyBP,EAAzB,EAA6BC,EAA7B,EAAiC,KAAjC,EAAwC,KAAxC,CAAT;AACA,gBAAQG,MAAR;AACE,eAAK,CAAC,CAAN;AACE;AACAoG,mBAAOxH,UAAUwB,UAAV,CAAqBP,EAArB,EAAyBD,EAAzB,EAA6BE,QAA7B,CAAP;AACAsG,iBAAKlH,MAAL,GAAcW,GAAGX,MAAH,KAAcN,UAAUC,IAAxB,GAA+BD,UAAUE,KAAzC,GAAiDF,UAAUC,IAAzE;AACA;AACF,eAAK,CAAL;AACE;AACAoB,uBAAWrB,UAAUyB,GAAV,CAAcP,QAAd,EAAwBlB,UAAUyB,GAAV,CAAcT,GAAGR,OAAjB,EAA0BS,GAAGT,OAA7B,CAAxB,CAAX;AACAgH,mBAAOxH,UAAU0B,UAAV,CAAqB,CAArB,EAAwBL,QAAxB,CAAP;AACArB,sBAAU2B,MAAV,CAAiB6F,KAAK/G,OAAtB,EAA+B,CAA/B,EAAkC,CAAlC,EAAqCY,WAAW,CAAhD;AACA;AACF,eAAK,CAAL;AACE;AACAmG,mBAAOxH,UAAUwB,UAAV,CAAqBR,EAArB,EAAyBC,EAAzB,EAA6BC,QAA7B,CAAP;AACAsG,iBAAKlH,MAAL,GAAcU,GAAGV,MAAjB;AACA;AAhBJ;AAkBD;;AAED;AACA;AACA;AACA,aAAOkH,IAAP;AACD,KArvBa;;AAuvBdlG,gBAAY,oBAAUN,EAAV,EAAcC,EAAd,EAAkBC,QAAlB,EAA4B;AACtC,UAAIC,YAAJ,CADsC,CAC9B;AACR,UAAIsG,iBAAJ;AAAA,UAAcC,kBAAd,CAFsC,CAEd;AACxB,UAAIrC,cAAJ;AAAA,UAAWpC,cAAX;AAAA,UAAkB0E,eAAlB,CAHsC,CAGb;AACzB,UAAIvF,cAAJ;AAAA,UAAWwF,gBAAX;AAAA,UAAoBC,gBAApB,CAJsC,CAIV;AAC5B,UAAIjH,YAAJ,CALsC,CAK9B;;AAER;AACA6G,iBAAWzH,UAAUyB,GAAV,CAAcT,GAAGR,OAAjB,EAA0BS,GAAGT,OAA7B,CAAX;AACAkH,kBAAY1H,UAAUyB,GAAV,CAAcT,GAAGT,KAAjB,EAAwBU,GAAGV,KAA3B,IAAoC,CAAhD;AACAY,YAAMnB,UAAU0B,UAAV,CAAqBgG,SAArB,EAAgC1H,UAAUyB,GAAV,CAAcgG,QAAd,EAAwBvG,QAAxB,CAAhC,CAAN;;AAEA;AACA0G,gBAAU5G,GAAGR,OAAb;AACAqH,gBAAU5G,GAAGT,OAAb;AACA6E,cAAQrE,GAAGT,KAAH,GAAWqH,OAAX,GAAqB,CAA7B;AACA3E,cAAQhC,GAAGV,KAAH,GAAWsH,OAAX,GAAqB,CAA7B;AACAF,eAASF,WAAWC,SAAX,GAAuB,CAAhC;;AAEA;AACA;AACA,UAAIE,YAAYC,OAAhB,EAAyB;AACvB,YAAID,UAAUC,OAAd,EAAuB;AACrB;AACA,iBAAOD,UAAUC,OAAjB,EAA0B;AACxB1G,gBAAIV,OAAJ,CAAYkH,QAAZ,IAAwB3G,GAAGP,OAAH,CAAW4E,OAAX,CAAxB;AACA;AACAuC;AACD;AACF,SAPD,MAOO;AACL;AACA,iBAAOC,UAAUD,OAAjB,EAA0B;AACxBzG,gBAAIV,OAAJ,CAAYkH,QAAZ,IAAwB1G,GAAGR,OAAH,CAAWwC,OAAX,CAAxB;AACA;AACA4E;AACD;AACF;AACF;;AAED;AACAD,iBAAW5G,GAAGT,KAAd;AACAsH,iBAAW5G,GAAGV,KAAd;AACA6B,cAAQ,CAAR;AACA,aAAOwF,UAAU,CAAV,IAAeC,UAAU,CAAhC,EAAmC;AACjC;AACAjH,cAAMI,GAAGP,OAAH,CAAW4E,OAAX,IAAsBpE,GAAGR,OAAH,CAAWwC,OAAX,CAAtB,GAA4Cb,KAAlD;AACA;AACA;AACA,YAAIxB,OAAOZ,UAAUG,IAArB,EAA2B;AACzBiC,kBAAQ,CAAR;AACAxB,iBAAOZ,UAAUG,IAAjB,CAFyB,CAEH;AACvB,SAHD,MAGO;AACLiC,kBAAQ,CAAR;AACD;AACDjB,YAAIV,OAAJ,CAAYkH,MAAZ,IAAsB/G,GAAtB;AACA+G;AACAC;AACAC;AACD;;AAED;AACA,UAAID,YAAY,CAAhB,EAAmB;AACjB;AACA,eAAOC,YAAY,CAAnB,EAAsB;AACpBjH,gBAAMK,GAAGR,OAAH,CAAWwC,OAAX,IAAsBb,KAA5B;AACA;AACA,cAAIxB,OAAOZ,UAAUG,IAArB,EAA2B;AACzBiC,oBAAQ,CAAR;AACAxB,mBAAOZ,UAAUG,IAAjB;AACD,WAHD,MAGO;AACLiC,oBAAQ,CAAR;AACD;AACDjB,cAAIV,OAAJ,CAAYkH,QAAZ,IAAwB/G,GAAxB;AACD;AACF,OAbD,MAaO;AACL;AACA,eAAOgH,YAAY,CAAnB,EAAsB;AACpBhH,gBAAMI,GAAGP,OAAH,CAAW4E,OAAX,IAAsBjD,KAA5B;AACA;AACA,cAAIxB,OAAOZ,UAAUG,IAArB,EAA2B;AACzBiC,oBAAQ,CAAR;AACAxB,mBAAOZ,UAAUG,IAAjB;AACD,WAHD,MAGO;AACLiC,oBAAQ,CAAR;AACD;AACDjB,cAAIV,OAAJ,CAAYkH,QAAZ,IAAwB/G,GAAxB;AACD;AACF;;AAED;AACA,UAAIwB,UAAU,CAAd,EAAiB;AACfjB,YAAIV,OAAJ,CAAYkH,MAAZ,KAAuB,CAAvB;AACA;AACD;;AAED;AACA3H,gBAAUqE,oBAAV,CAA+BlD,GAA/B;AACA,aAAOA,GAAP;AACD,KAz1Ba;;AA21Bd;;;;;;;;;;;;;;;;;;;AAmBAK,gBAAY,oBAAUR,EAAV,EAAcC,EAAd,EAAkBC,QAAlB,EAA4B;AACtC,UAAIsG,aAAJ,CADsC,CAC7B;AACT,UAAIM,kBAAJ;AAAA,UAAeC,gBAAf,CAFsC,CAEf;AACvB,UAAIC,iBAAJ;AAAA,UAAcC,eAAd,CAHsC,CAGjB;AACrB,UAAI5C,cAAJ;AAAA,UAAWpC,cAAX;AAAA,UAAkBiF,gBAAlB,CAJsC,CAIZ;AAC1B,UAAIrE,eAAJ;AAAA,UAAYH,cAAZ;AAAA,UAAmBN,YAAnB,CALsC,CAKf;AACvB;AACA2E,gBAAU/H,UAAUyB,GAAV,CAAcT,GAAGT,KAAjB,EAAwBU,GAAGV,KAA3B,CAAV;AACAuH,kBAAY9H,UAAUyB,GAAV,CAAcT,GAAGR,OAAjB,EAA0BS,GAAGT,OAA7B,CAAZ;AACAyH,eAASjI,UAAUkE,GAAV,CAAclD,GAAGT,KAAjB,EAAwBU,GAAGV,KAA3B,CAAT;AACAyH,iBAAWhI,UAAUkE,GAAV,CAAclD,GAAGR,OAAjB,EAA0BS,GAAGT,OAA7B,CAAX;AACAgH,aAAOxH,UAAU0B,UAAV,CAAqBqG,OAArB,EAA8B/H,UAAUyB,GAAV,CAAcqG,SAAd,EAAyB5G,QAAzB,CAA9B,CAAP;;AAEA;;;;;;;;;;AAUA;AACAmE,cAAQrE,GAAGT,KAAH,GAAWS,GAAGR,OAAd,GAAwB,CAAhC;AACAyC,cAAQhC,GAAGV,KAAH,GAAWU,GAAGT,OAAd,GAAwB,CAAhC;AACA0H,gBAAUH,UAAUD,SAAV,GAAsB,CAAhC;;AAEA;AACAjE,eAAS,CAAT;;AAEA;AACA,UAAI7C,GAAGR,OAAH,KAAewH,QAAnB,EAA6B;AAC3B;AACA,aAAKtE,QAAQ1C,GAAGR,OAAH,GAAawH,QAA1B,EAAoCtE,QAAQ,CAA5C,EAA+CA,OAA/C,EAAwD;AACtD8D,eAAK/G,OAAL,CAAayH,SAAb,IAA0BlH,GAAGP,OAAH,CAAW4E,OAAX,CAA1B;AACA;AACD;AACF,OAND,MAMO;AACL;AACA,aAAK3B,QAAQzC,GAAGT,OAAH,GAAawH,QAA1B,EAAoCtE,QAAQ,CAA5C,EAA+CA,OAA/C,EAAwD;AACtDN,gBAAM,IAAInC,GAAGR,OAAH,CAAWwC,OAAX,CAAJ,GAA0BY,MAAhC;AACA;AACA,cAAIT,MAAM,CAAV,EAAa;AACXA,mBAAOpD,UAAUG,IAAjB;AACA0D,qBAAS,CAAT;AACD,WAHD,MAGO;AACLA,qBAAS,CAAT;AACD;AACD2D,eAAK/G,OAAL,CAAayH,SAAb,IAA0B9E,GAA1B;AACA;AACD;AACF;;AAED;AACA,WAAKM,QAAQ,CAAb,EAAgBA,QAAQuE,SAASD,QAAjC,EAA2CtE,OAA3C,EAAoD;AAClDN,cAAMpC,GAAGP,OAAH,CAAW4E,OAAX,IAAsBpE,GAAGR,OAAH,CAAWwC,OAAX,CAAtB,GAA4CY,MAAlD;AACA;AACA,YAAIT,MAAM,CAAV,EAAa;AACXA,iBAAOpD,UAAUG,IAAjB;AACA0D,mBAAS,CAAT;AACD,SAHD,MAGO;AACLA,mBAAS,CAAT;AACD;AACD2D,aAAK/G,OAAL,CAAayH,SAAb,IAA0B9E,GAA1B;AACA;AACD;;AAED;AACA,UAAI2E,YAAYE,MAAhB,EAAwB;AACtB,aAAKvE,QAAQqE,UAAUE,MAAvB,EAA+BvE,QAAQ,CAAvC,EAA0CA,OAA1C,EAAmD;AACjDN,gBAAMpC,GAAGP,OAAH,CAAW4E,OAAX,IAAsBxB,MAA5B;AACA;AACA,cAAIT,MAAM,CAAV,EAAa;AACXA,mBAAOpD,UAAUG,IAAjB;AACA0D,qBAAS,CAAT;AACD,WAHD,MAGO;AACLA,qBAAS,CAAT;AACD;AACD2D,eAAK/G,OAAL,CAAayH,SAAb,IAA0B9E,GAA1B;AACD;AACF;;AAED;AACApD,gBAAUqE,oBAAV,CAA+BmD,IAA/B;AACA,aAAOA,IAAP;AACD,KAp8Ba;;AAs8Bd;;;;;;AAMA9F,gBAAY,oBAAUoD,MAAV,EAAkB1E,KAAlB,EAAyB;AACnC,UAAI4E,aAAJ,CADmC,CAC1B;AACTA,aAAO,IAAIhF,UAAUK,MAAd,EAAP,CAFmC,CAEL;AAC9B2E,WAAK1E,MAAL,GAAcN,UAAUC,IAAxB;AACA+E,WAAKzE,KAAL,GAAauE,MAAb;AACAE,WAAKxE,OAAL,GAAeJ,KAAf;AACA4E,WAAKvE,OAAL,GAAeT,UAAUmE,YAAV,CAAuB,CAAvB,EAA0BW,SAAS1E,KAAnC,EAA0C,CAA1C,CAAf;AACAJ,gBAAU2B,MAAV,CAAiBqD,KAAKvE,OAAtB,EAA+B,CAA/B,EAAkC,CAAlC,EAAqCqE,SAAS1E,KAA9C;AACA,aAAO4E,IAAP;AACD,KAr9Ba;;AAu9Bdb,kBAAc,sBAAUnC,IAAV,EAAgBmG,GAAhB,EAAqB1E,KAArB,EAA4B;AACxC,aAAO2E,MAAMpG,OAAOmG,GAAP,GAAa1E,KAAnB,CAAP;AACD,KAz9Ba;;AA29Bd;;;AAGA0D,iBAAa,uBAAY;AACvB,aAAO,IAAInH,UAAU0B,UAAd,CAAyB,CAAzB,EAA4B,CAA5B,CAAP,CADuB,CACe;AACvC,KAh+Ba;;AAk+Bd2C,0BAAsB,8BAAUvC,GAAV,EAAe;AACnC;AACA,aAAOA,IAAIrB,OAAJ,CAAY,CAAZ,MAAmB,CAAnB,IAAwBqB,IAAIvB,KAAJ,GAAY,CAA3C,EAA8C;AAC5CuB,YAAIrB,OAAJ,CAAYoF,KAAZ;AACA/D,YAAIvB,KAAJ;AACD;AACF,KAx+Ba;;AA0+Bd;;;AAGA8H,iBAAa,qBAAUC,GAAV,EAAe;AAC1B,UAAIC,UAAJ;AACAA,UAAID,IAAIE,OAAJ,CAAY,GAAZ,CAAJ;AACA,UAAID,MAAM,CAAC,CAAX,EAAc;AACZ,eAAOvI,UAAUyI,UAAV,CAAqBH,GAArB,EAA0B,CAA1B,CAAP;AACD,OAFD,MAEO;AACL,eAAOtI,UAAUyI,UAAV,CAAqBH,GAArB,EAA0BA,IAAIxD,MAAJ,GAAayD,CAAvC,CAAP;AACD;AACF,KAr/Ba;;AAu/BdG,YAAQ,gBAAUC,CAAV,EAAa;AACnB,aAAOA,IAAI,GAAX,CADmB,CACJ;AAChB,KAz/Ba;;AA2/BdC,cAAU,kBAAUC,CAAV,EAAa;AACrB,aAAOA,IAAI,GAAX,CADqB,CACN;AAChB,KA7/Ba;;AA+/BdC,aAAS,iBAAUH,CAAV,EAAa;AACpB,aAAOI,MAAMC,SAASL,CAAT,EAAY,EAAZ,CAAN,CAAP;AACD,KAjgCa;;AAmgCdF,gBAAY,oBAAUQ,KAAV,EAAiB7I,KAAjB,EAAwB;AAClC,UAAIkI,YAAJ;AAAA,UAASxG,YAAT;AAAA,UAAciD,YAAd;AAAA,UAAmBmE,eAAnB;AAAA,UAA2BC,iBAA3B;AAAA,UAAqCC,gBAArC;AAAA,UAA8C9G,aAA9C;AACA;AACA;;AAEAgG,YAAMW,MAAMI,KAAN,CAAY,EAAZ,CAAN,CALkC,CAKZ;AACtBtE,YAAM,CAAN,CANkC,CAM1B;AACRmE,eAAS,CAAT;AACAC,iBAAW,CAAX;AACAC,gBAAU,KAAV;AACA,UAAId,IAAIvD,GAAJ,MAAa,GAAb,IAAoBuD,IAAIvD,GAAJ,MAAa,GAArC,EAA0C;AACxCA,cADwC,CAClC;AACP;AACD,aAAOuD,IAAIvD,GAAJ,MAAa,GAApB,EAAyB;AACvBA,cADuB,CACjB;AACP;AACD;AACA,aAAOuD,IAAIvD,GAAJ,IAAW,CAAX,KAAiB,CAAxB,EAA2B;AACzB;AACAA;AACAmE,iBAHyB,CAGhB;AACV;;AAED,UAAIZ,IAAIvD,GAAJ,MAAa,GAAjB,EAAsB;AACpBA,cADoB,CACd;AACP;AACD;AACA,aAAOuD,IAAIvD,GAAJ,IAAW,CAAX,KAAiB,CAAxB,EAA2B;AACzB;AACAA;AACAoE,mBAHyB,CAGd;AACZ;;AAED,UAAIb,IAAIvD,GAAJ,KAAYmE,SAASC,QAAT,KAAsB,CAAtC,EAAyC;AACvC;AACA,eAAOnJ,UAAUmH,WAAV,EAAP;AACA;AACD;;AAED;AACAgC,iBAAWnJ,UAAUkE,GAAV,CAAciF,QAAd,EAAwB/I,KAAxB,CAAX;AACA,UAAI8I,WAAW,CAAf,EAAkB;AAChBE,kBAAU,IAAV;AACAF,iBAAS,CAAT;AACD;;AAEDpH,YAAM9B,UAAU0B,UAAV,CAAqBwH,MAArB,EAA6BC,QAA7B,CAAN;;AAEA;AACApE,YAAM,CAAN,CAjDkC,CAiD1B;AACR,UAAIuD,IAAIvD,GAAJ,MAAa,GAAjB,EAAsB;AACpBjD,YAAIxB,MAAJ,GAAaN,UAAUE,KAAvB;AACA;AACA6E;AACD,OAJD,MAIO;AACLjD,YAAIxB,MAAJ,GAAaN,UAAUC,IAAvB;AACA;AACA,YAAIqI,IAAIvD,GAAJ,MAAa,GAAjB,EAAsB;AACpBA;AACD;AACF;AACD,aAAOuD,IAAIvD,GAAJ,MAAa,GAApB,EAAyB;AACvBA,cADuB,CACjB;AACP;;AAEDzC,aAAO,CAAP,CAjEkC,CAiEzB;AACT,UAAI8G,OAAJ,EAAa;AACXtH,YAAIrB,OAAJ,CAAY6B,MAAZ,IAAsB,CAAtB;AACA4G,iBAAS,CAAT;AACD;AACD,aAAOA,SAAS,CAAhB,EAAmBA,QAAnB,EAA6B;AAC3BpH,YAAIrB,OAAJ,CAAY6B,MAAZ,IAAsBtC,UAAU0I,MAAV,CAAiBJ,IAAIvD,KAAJ,CAAjB,CAAtB;AACA;AACD;;AAED;AACA,UAAIoE,WAAW,CAAf,EAAkB;AAChBpE,cADgB,CACV;AACN,eAAOoE,WAAW,CAAlB,EAAqBA,UAArB,EAAiC;AAC/BrH,cAAIrB,OAAJ,CAAY6B,MAAZ,IAAsBtC,UAAU0I,MAAV,CAAiBJ,IAAIvD,KAAJ,CAAjB,CAAtB;AACD;AACF;;AAED,aAAOjD,GAAP;AACD,KAvlCa;;AAylCdwH,UAAM,cAAUlD,CAAV,EAAa;AACjB,UAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5BA,YAAI,CAAJ;AACD;AACD,UAAImD,IAAIP,SAAS5C,CAAT,EAAY,EAAZ,CAAR;AACA,UAAI2C,MAAMQ,CAAN,CAAJ,EAAc;AACZA,YAAI,CAAJ;AACD;AACD,aAAOA,CAAP;AACD,KAlmCa;;AAomCd;;;;;AAKArF,SAAK,aAAUsF,CAAV,EAAaC,CAAb,EAAgB;AACnB,aAAOD,IAAIC,CAAJ,GAAQA,CAAR,GAAYD,CAAnB;AACD,KA3mCa;;AA6mCd;;;;;AAKA/H,SAAK,aAAU+H,CAAV,EAAaC,CAAb,EAAgB;AACnB,aAAOD,IAAIC,CAAJ,GAAQD,CAAR,GAAYC,CAAnB;AACD,KApnCa;;AAsnCd;;;;AAIAC,SAAK,aAAUF,CAAV,EAAa;AAChB,aAAOA,IAAI,CAAX;AACD,KA5nCa;;AA8nCd;;;;;;;AAOA7H,YAAQ,gBAAUhB,CAAV,EAAaoE,GAAb,EAAkB4E,GAAlB,EAAuBxB,GAAvB,EAA4B;AAClC,UAAIyB,UAAJ;AACA,WAAKA,IAAI,CAAT,EAAYA,IAAIzB,GAAhB,EAAqByB,GAArB,EAA0B;AACxBjJ,UAAEoE,MAAM6E,CAAR,IAAaD,GAAb;AACD;AACF,KA1oCa;;AA4oCd;;;;;;AAMAnH,YAAQ,gBAAUqH,IAAV,EAAgB9E,GAAhB,EAAqB+E,GAArB,EAA0BC,MAA1B,EAAkC5B,GAAlC,EAAuC;AAC7C,UAAIyB,UAAJ;AACA,WAAKA,IAAI,CAAT,EAAYA,IAAIzB,GAAhB,EAAqByB,GAArB,EAA0B;AACxBC,aAAK9E,MAAM6E,CAAX,IAAgBE,IAAIC,SAASH,CAAb,CAAhB;AACD;AACD,aAAO,IAAP;AACD,KAxpCa;;AA0pCd;;;;;AAKA3F,gBAAY,oBAAUnC,GAAV,EAAe;AACzB,UAAI4B,cAAJ,CADyB,CACf;AACV,UAAIpB,aAAJ,CAFyB,CAEhB;AACT;AACA;AACA;AACAoB,cAAQ5B,IAAIvB,KAAJ,GAAYuB,IAAItB,OAAxB;AACA8B,aAAO,CAAP,CAPyB,CAOhB;AACT;AACA,aAAOoB,QAAQ,CAAR,IAAa5B,IAAIrB,OAAJ,CAAY6B,MAAZ,MAAwB,CAA5C,EAA+C;AAC7CoB;AACD;;AAED,UAAIA,UAAU,CAAd,EAAiB;AACf,eAAO,KAAP;AACD,OAFD,MAEO;AACL,eAAO,IAAP;AACD;AACF,KAjrCa;;AAmrCdU,sBAAkB,4BAAY;AAC5B,YAAM,IAAI6B,KAAJ,CAAU,oBAAV,CAAN;AACD;AArrCa,GAAhB;AAurCA,SAAOjG,SAAP;AACD,CA9uCD","file":"_bc.js","sourcesContent":["module.exports = function _bc() {\n // discuss at: https://locutus.io/php/_helpers/_bc\n // original by: lmeyrick (https://sourceforge.net/projects/bcmath-js/)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: var $bc = _bc()\n // example 1: var $result = $bc.PLUS\n // returns 1: '+'\n\n /**\n * BC Math Library for Javascript\n * Ported from the PHP5 bcmath extension source code,\n * which uses the Libbcmath package...\n * Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.\n * Copyright (C) 2000 Philip A. Nelson\n * The Free Software Foundation, Inc.\n * 59 Temple Place, Suite 330\n * Boston, MA 02111-1307 USA.\n * e-mail: philnelson@acm.org\n * us-mail: Philip A. Nelson\n * Computer Science Department, 9062\n * Western Washington University\n * Bellingham, WA 98226-9062\n *\n * bcmath-js homepage:\n *\n * This code is covered under the LGPL licence, and can be used however you want :)\n * Be kind and share any decent code changes.\n */\n\n /**\n * Binary Calculator (BC) Arbitrary Precision Mathematics Lib v0.10 (LGPL)\n * Copy of Libbcmath included in PHP5 src\n *\n * Note: this is just the shared library file and does not include the php-style functions.\n * use bcmath{-min}.js for functions like bcadd, bcsub etc.\n *\n * Feel free to use how-ever you want, just email any bug-fixes/improvements\n * to the sourceforge project:\n *\n *\n * Ported from the PHP5 bcmath extension source code,\n * which uses the Libbcmath package...\n * Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.\n * Copyright (C) 2000 Philip A. Nelson\n * The Free Software Foundation, Inc.\n * 59 Temple Place, Suite 330\n * Boston, MA 02111-1307 USA.\n * e-mail: philnelson@acm.org\n * us-mail: Philip A. Nelson\n * Computer Science Department, 9062\n * Western Washington University\n * Bellingham, WA 98226-9062\n */\n\n var Libbcmath = {\n PLUS: '+',\n MINUS: '-',\n BASE: 10,\n // must be 10 (for now)\n scale: 0,\n // default scale\n /**\n * Basic number structure\n */\n bc_num: function () {\n this.n_sign = null // sign\n this.n_len = null // (int) The number of digits before the decimal point.\n this.n_scale = null // (int) The number of digits after the decimal point.\n // this.n_refs = null; // (int) The number of pointers to this number.\n // this.n_text = null; // ?? Linked list for available list.\n this.n_value = null // array as value, where 1.23 = [1,2,3]\n this.toString = function () {\n let r, tmp\n tmp = this.n_value.join('')\n\n // add minus sign (if applicable) then add the integer part\n r = (this.n_sign === Libbcmath.PLUS ? '' : this.n_sign) + tmp.substr(0, this.n_len)\n\n // if decimal places, add a . and the decimal part\n if (this.n_scale > 0) {\n r += '.' + tmp.substr(this.n_len, this.n_scale)\n }\n return r\n }\n },\n\n /**\n * Base add function\n *\n // Here is the full add routine that takes care of negative numbers.\n // N1 is added to N2 and the result placed into RESULT. SCALE_MIN\n // is the minimum scale for the result.\n *\n * @param {bc_num} n1\n * @param {bc_num} n2\n * @param {int} scaleMin\n * @return bc_num\n */\n bc_add: function (n1, n2, scaleMin) {\n let sum, cmpRes, resScale\n\n if (n1.n_sign === n2.n_sign) {\n sum = Libbcmath._bc_do_add(n1, n2, scaleMin)\n sum.n_sign = n1.n_sign\n } else {\n // subtraction must be done.\n cmpRes = Libbcmath._bc_do_compare(n1, n2, false, false) // Compare magnitudes.\n switch (cmpRes) {\n case -1:\n // n1 is less than n2, subtract n1 from n2.\n sum = Libbcmath._bc_do_sub(n2, n1, scaleMin)\n sum.n_sign = n2.n_sign\n break\n\n case 0:\n // They are equal! return zero with the correct scale!\n resScale = Libbcmath.MAX(scaleMin, Libbcmath.MAX(n1.n_scale, n2.n_scale))\n sum = Libbcmath.bc_new_num(1, resScale)\n Libbcmath.memset(sum.n_value, 0, 0, resScale + 1)\n break\n\n case 1:\n // n2 is less than n1, subtract n2 from n1.\n sum = Libbcmath._bc_do_sub(n1, n2, scaleMin)\n sum.n_sign = n1.n_sign\n }\n }\n return sum\n },\n\n /**\n * This is the \"user callable\" routine to compare numbers N1 and N2.\n * @param {bc_num} n1\n * @param {bc_num} n2\n * @return int -1, 0, 1 (n1 < n2, ===, n1 > n2)\n */\n bc_compare: function (n1, n2) {\n return Libbcmath._bc_do_compare(n1, n2, true, false)\n },\n\n _one_mult: function (num, nPtr, size, digit, result, rPtr) {\n let carry, value // int\n let nptr, rptr // int pointers\n if (digit === 0) {\n Libbcmath.memset(result, 0, 0, size) // memset (result, 0, size);\n } else {\n if (digit === 1) {\n Libbcmath.memcpy(result, rPtr, num, nPtr, size) // memcpy (result, num, size);\n } else {\n // Initialize\n nptr = nPtr + size - 1 // nptr = (unsigned char *) (num+size-1);\n rptr = rPtr + size - 1 // rptr = (unsigned char *) (result+size-1);\n carry = 0\n\n while (size-- > 0) {\n value = num[nptr--] * digit + carry // value = *nptr-- * digit + carry;\n result[rptr--] = value % Libbcmath.BASE // @CHECK cint //*rptr-- = value % BASE;\n carry = Math.floor(value / Libbcmath.BASE) // @CHECK cint //carry = value / BASE;\n }\n\n if (carry !== 0) {\n result[rptr] = carry\n }\n }\n }\n },\n\n bc_divide: function (n1, n2, scale) {\n // var quot // bc_num return\n let qval // bc_num\n let num1, num2 // string\n let ptr1, ptr2, n2ptr, qptr // int pointers\n let scale1, val // int\n let len1, len2, scale2, qdigits, extra, count // int\n let qdig, qguess, borrow, carry // int\n let mval // string\n let zero // char\n let norm // int\n // var ptrs // return object from one_mul\n // Test for divide by zero. (return failure)\n if (Libbcmath.bc_is_zero(n2)) {\n return -1\n }\n\n // Test for zero divide by anything (return zero)\n if (Libbcmath.bc_is_zero(n1)) {\n return Libbcmath.bc_new_num(1, scale)\n }\n\n /* Test for n1 equals n2 (return 1 as n1 nor n2 are zero)\n if (Libbcmath.bc_compare(n1, n2, Libbcmath.MAX(n1.n_scale, n2.n_scale)) === 0) {\n quot=Libbcmath.bc_new_num(1, scale);\n quot.n_value[0] = 1;\n return quot;\n }\n */\n\n // Test for divide by 1. If it is we must truncate.\n // @todo: check where scale > 0 too.. can't see why not\n // (ie bc_is_zero - add bc_is_one function)\n if (n2.n_scale === 0) {\n if (n2.n_len === 1 && n2.n_value[0] === 1) {\n qval = Libbcmath.bc_new_num(n1.n_len, scale) // qval = bc_new_num (n1->n_len, scale);\n qval.n_sign = n1.n_sign === n2.n_sign ? Libbcmath.PLUS : Libbcmath.MINUS\n // memset (&qval->n_value[n1->n_len],0,scale):\n Libbcmath.memset(qval.n_value, n1.n_len, 0, scale)\n // memcpy (qval->n_value, n1->n_value, n1->n_len + MIN(n1->n_scale,scale)):\n Libbcmath.memcpy(qval.n_value, 0, n1.n_value, 0, n1.n_len + Libbcmath.MIN(n1.n_scale, scale))\n // can we return here? not in c src, but can't see why-not.\n // return qval;\n }\n }\n\n /* Set up the divide. Move the decimal point on n1 by n2's scale.\n Remember, zeros on the end of num2 are wasted effort for dividing. */\n scale2 = n2.n_scale // scale2 = n2->n_scale;\n n2ptr = n2.n_len + scale2 - 1 // n2ptr = (unsigned char *) n2.n_value+n2.n_len+scale2-1;\n while (scale2 > 0 && n2.n_value[n2ptr--] === 0) {\n scale2--\n }\n\n len1 = n1.n_len + scale2\n scale1 = n1.n_scale - scale2\n if (scale1 < scale) {\n extra = scale - scale1\n } else {\n extra = 0\n }\n\n // num1 = (unsigned char *) safe_emalloc (1, n1.n_len+n1.n_scale, extra+2):\n num1 = Libbcmath.safe_emalloc(1, n1.n_len + n1.n_scale, extra + 2)\n if (num1 === null) {\n Libbcmath.bc_out_of_memory()\n }\n // memset (num1, 0, n1->n_len+n1->n_scale+extra+2):\n Libbcmath.memset(num1, 0, 0, n1.n_len + n1.n_scale + extra + 2)\n // memcpy (num1+1, n1.n_value, n1.n_len+n1.n_scale):\n Libbcmath.memcpy(num1, 1, n1.n_value, 0, n1.n_len + n1.n_scale)\n // len2 = n2->n_len + scale2:\n len2 = n2.n_len + scale2\n // num2 = (unsigned char *) safe_emalloc (1, len2, 1):\n num2 = Libbcmath.safe_emalloc(1, len2, 1)\n if (num2 === null) {\n Libbcmath.bc_out_of_memory()\n }\n // memcpy (num2, n2.n_value, len2):\n Libbcmath.memcpy(num2, 0, n2.n_value, 0, len2)\n // *(num2+len2) = 0:\n num2[len2] = 0\n // n2ptr = num2:\n n2ptr = 0\n // while (*n2ptr === 0):\n while (num2[n2ptr] === 0) {\n n2ptr++\n len2--\n }\n\n // Calculate the number of quotient digits.\n if (len2 > len1 + scale) {\n qdigits = scale + 1\n zero = true\n } else {\n zero = false\n if (len2 > len1) {\n qdigits = scale + 1 // One for the zero integer part.\n } else {\n qdigits = len1 - len2 + scale + 1\n }\n }\n\n // Allocate and zero the storage for the quotient.\n // qval = bc_new_num (qdigits-scale,scale);\n qval = Libbcmath.bc_new_num(qdigits - scale, scale)\n // memset (qval->n_value, 0, qdigits);\n Libbcmath.memset(qval.n_value, 0, 0, qdigits)\n // Allocate storage for the temporary storage mval.\n // mval = (unsigned char *) safe_emalloc (1, len2, 1);\n mval = Libbcmath.safe_emalloc(1, len2, 1)\n if (mval === null) {\n Libbcmath.bc_out_of_memory()\n }\n\n // Now for the full divide algorithm.\n if (!zero) {\n // Normalize\n // norm = Libbcmath.cint(10 / (Libbcmath.cint(n2.n_value[n2ptr]) + 1));\n // norm = 10 / ((int)*n2ptr + 1)\n norm = Math.floor(10 / (n2.n_value[n2ptr] + 1)) // norm = 10 / ((int)*n2ptr + 1);\n if (norm !== 1) {\n // Libbcmath._one_mult(num1, len1+scale1+extra+1, norm, num1);\n Libbcmath._one_mult(num1, 0, len1 + scale1 + extra + 1, norm, num1, 0)\n // Libbcmath._one_mult(n2ptr, len2, norm, n2ptr);\n Libbcmath._one_mult(n2.n_value, n2ptr, len2, norm, n2.n_value, n2ptr)\n // @todo: Check: Is the pointer affected by the call? if so,\n // maybe need to adjust points on return?\n }\n\n // Initialize divide loop.\n qdig = 0\n if (len2 > len1) {\n qptr = len2 - len1 // qptr = (unsigned char *) qval.n_value+len2-len1;\n } else {\n qptr = 0 // qptr = (unsigned char *) qval.n_value;\n }\n\n // Loop\n while (qdig <= len1 + scale - len2) {\n // Calculate the quotient digit guess.\n if (n2.n_value[n2ptr] === num1[qdig]) {\n qguess = 9\n } else {\n qguess = Math.floor((num1[qdig] * 10 + num1[qdig + 1]) / n2.n_value[n2ptr])\n }\n // Test qguess.\n\n if (\n n2.n_value[n2ptr + 1] * qguess >\n (num1[qdig] * 10 + num1[qdig + 1] - n2.n_value[n2ptr] * qguess) * 10 + num1[qdig + 2]\n ) {\n qguess--\n // And again.\n if (\n n2.n_value[n2ptr + 1] * qguess >\n (num1[qdig] * 10 + num1[qdig + 1] - n2.n_value[n2ptr] * qguess) * 10 + num1[qdig + 2]\n ) {\n qguess--\n }\n }\n\n // Multiply and subtract.\n borrow = 0\n if (qguess !== 0) {\n mval[0] = 0 //* mval = 0; // @CHECK is this to fix ptr2 < 0?\n // _one_mult (n2ptr, len2, qguess, mval+1); // @CHECK\n Libbcmath._one_mult(n2.n_value, n2ptr, len2, qguess, mval, 1)\n ptr1 = qdig + len2 // (unsigned char *) num1+qdig+len2;\n ptr2 = len2 // (unsigned char *) mval+len2;\n // @todo: CHECK: Does a negative pointer return null?\n // ptr2 can be < 0 here as ptr1 = len2, thus count < len2+1 will always fail ?\n for (count = 0; count < len2 + 1; count++) {\n if (ptr2 < 0) {\n // val = Libbcmath.cint(num1[ptr1]) - 0 - borrow;\n // val = (int) *ptr1 - (int) *ptr2-- - borrow;\n val = num1[ptr1] - 0 - borrow // val = (int) *ptr1 - (int) *ptr2-- - borrow;\n } else {\n // val = Libbcmath.cint(num1[ptr1]) - Libbcmath.cint(mval[ptr2--]) - borrow;\n // val = (int) *ptr1 - (int) *ptr2-- - borrow;\n // val = (int) *ptr1 - (int) *ptr2-- - borrow;\n val = num1[ptr1] - mval[ptr2--] - borrow\n }\n if (val < 0) {\n val += 10\n borrow = 1\n } else {\n borrow = 0\n }\n num1[ptr1--] = val\n }\n }\n\n // Test for negative result.\n if (borrow === 1) {\n qguess--\n ptr1 = qdig + len2 // (unsigned char *) num1+qdig+len2;\n ptr2 = len2 - 1 // (unsigned char *) n2ptr+len2-1;\n carry = 0\n for (count = 0; count < len2; count++) {\n if (ptr2 < 0) {\n // val = Libbcmath.cint(num1[ptr1]) + 0 + carry;\n // val = (int) *ptr1 + (int) *ptr2-- + carry;\n // val = (int) *ptr1 + (int) *ptr2-- + carry;\n val = num1[ptr1] + 0 + carry\n } else {\n // val = Libbcmath.cint(num1[ptr1]) + Libbcmath.cint(n2.n_value[ptr2--]) + carry;\n // val = (int) *ptr1 + (int) *ptr2-- + carry;\n // val = (int) *ptr1 + (int) *ptr2-- + carry;\n val = num1[ptr1] + n2.n_value[ptr2--] + carry\n }\n if (val > 9) {\n val -= 10\n carry = 1\n } else {\n carry = 0\n }\n num1[ptr1--] = val //* ptr1-- = val;\n }\n if (carry === 1) {\n // num1[ptr1] = Libbcmath.cint((num1[ptr1] + 1) % 10);\n // *ptr1 = (*ptr1 + 1) % 10; // @CHECK\n // *ptr1 = (*ptr1 + 1) % 10; // @CHECK\n num1[ptr1] = (num1[ptr1] + 1) % 10\n }\n }\n\n // We now know the quotient digit.\n qval.n_value[qptr++] = qguess //* qptr++ = qguess;\n qdig++\n }\n }\n\n // Clean up and return the number.\n qval.n_sign = n1.n_sign === n2.n_sign ? Libbcmath.PLUS : Libbcmath.MINUS\n if (Libbcmath.bc_is_zero(qval)) {\n qval.n_sign = Libbcmath.PLUS\n }\n Libbcmath._bc_rm_leading_zeros(qval)\n\n return qval\n\n // return 0; // Everything is OK.\n },\n\n MUL_BASE_DIGITS: 80,\n MUL_SMALL_DIGITS: 80 / 4,\n // #define MUL_SMALL_DIGITS mul_base_digits/4\n\n /* The multiply routine. N2 times N1 is put int PROD with the scale of\n the result being MIN(N2 scale+N1 scale, MAX (SCALE, N2 scale, N1 scale)).\n */\n /**\n * @param n1 bc_num\n * @param n2 bc_num\n * @param scale [int] optional\n */\n bc_multiply: function (n1, n2, scale) {\n let pval // bc_num\n let len1, len2 // int\n let fullScale, prodScale // int\n // Initialize things.\n len1 = n1.n_len + n1.n_scale\n len2 = n2.n_len + n2.n_scale\n fullScale = n1.n_scale + n2.n_scale\n prodScale = Libbcmath.MIN(fullScale, Libbcmath.MAX(scale, Libbcmath.MAX(n1.n_scale, n2.n_scale)))\n\n // pval = Libbcmath.bc_init_num(); // allow pass by ref\n // Do the multiply\n pval = Libbcmath._bc_rec_mul(n1, len1, n2, len2, fullScale)\n\n // Assign to prod and clean up the number.\n pval.n_sign = n1.n_sign === n2.n_sign ? Libbcmath.PLUS : Libbcmath.MINUS\n // pval.n_value = pval.nPtr;\n pval.n_len = len2 + len1 + 1 - fullScale\n pval.n_scale = prodScale\n Libbcmath._bc_rm_leading_zeros(pval)\n if (Libbcmath.bc_is_zero(pval)) {\n pval.n_sign = Libbcmath.PLUS\n }\n // bc_free_num (prod);\n return pval\n },\n\n new_sub_num: function (length, scale, value, ptr = 0) {\n const temp = new Libbcmath.bc_num() // eslint-disable-line new-cap\n temp.n_sign = Libbcmath.PLUS\n temp.n_len = length\n temp.n_scale = scale\n temp.n_value = Libbcmath.safe_emalloc(1, length + scale, 0)\n Libbcmath.memcpy(temp.n_value, 0, value, ptr, length + scale)\n return temp\n },\n\n _bc_simp_mul: function (n1, n1len, n2, n2len, fullScale) {\n let prod // bc_num\n let n1ptr, n2ptr, pvptr // char *n1ptr, *n2ptr, *pvptr;\n let n1end, n2end // char *n1end, *n2end; // To the end of n1 and n2.\n let indx, sum, prodlen // int indx, sum, prodlen;\n prodlen = n1len + n2len + 1\n\n prod = Libbcmath.bc_new_num(prodlen, 0)\n\n n1end = n1len - 1 // (char *) (n1->n_value + n1len - 1);\n n2end = n2len - 1 // (char *) (n2->n_value + n2len - 1);\n pvptr = prodlen - 1 // (char *) ((*prod)->n_value + prodlen - 1);\n sum = 0\n\n // Here is the loop...\n for (indx = 0; indx < prodlen - 1; indx++) {\n // (char *) (n1end - MAX(0, indx-n2len+1));\n n1ptr = n1end - Libbcmath.MAX(0, indx - n2len + 1)\n // (char *) (n2end - MIN(indx, n2len-1));\n n2ptr = n2end - Libbcmath.MIN(indx, n2len - 1)\n while (n1ptr >= 0 && n2ptr <= n2end) {\n // sum += *n1ptr-- * *n2ptr++;\n sum += n1.n_value[n1ptr--] * n2.n_value[n2ptr++]\n }\n //* pvptr-- = sum % BASE;\n prod.n_value[pvptr--] = Math.floor(sum % Libbcmath.BASE)\n sum = Math.floor(sum / Libbcmath.BASE) // sum = sum / BASE;\n }\n prod.n_value[pvptr] = sum //* pvptr = sum;\n return prod\n },\n\n /* A special adder/subtractor for the recursive divide and conquer\n multiply algorithm. Note: if sub is called, accum must\n be larger that what is being subtracted. Also, accum and val\n must have n_scale = 0. (e.g. they must look like integers. *) */\n _bc_shift_addsub: function (accum, val, shift, sub) {\n let accp, valp // signed char *accp, *valp;\n let count, carry // int count, carry;\n count = val.n_len\n if (val.n_value[0] === 0) {\n count--\n }\n\n // assert (accum->n_len+accum->n_scale >= shift+count);\n if (accum.n_len + accum.n_scale < shift + count) {\n throw new Error('len + scale < shift + count') // ?? I think that's what assert does :)\n }\n\n // Set up pointers and others\n // (signed char *)(accum->n_value + accum->n_len + accum->n_scale - shift - 1);\n accp = accum.n_len + accum.n_scale - shift - 1\n valp = val.n_len - 1 // (signed char *)(val->n_value + val->n_len - 1);\n carry = 0\n if (sub) {\n // Subtraction, carry is really borrow.\n while (count--) {\n accum.n_value[accp] -= val.n_value[valp--] + carry //* accp -= *valp-- + carry;\n if (accum.n_value[accp] < 0) {\n // if (*accp < 0)\n carry = 1\n accum.n_value[accp--] += Libbcmath.BASE //* accp-- += BASE;\n } else {\n carry = 0\n accp--\n }\n }\n while (carry) {\n accum.n_value[accp] -= carry //* accp -= carry;\n if (accum.n_value[accp] < 0) {\n // if (*accp < 0)\n accum.n_value[accp--] += Libbcmath.BASE // *accp-- += BASE;\n } else {\n carry = 0\n }\n }\n } else {\n // Addition\n while (count--) {\n accum.n_value[accp] += val.n_value[valp--] + carry //* accp += *valp-- + carry;\n if (accum.n_value[accp] > Libbcmath.BASE - 1) {\n // if (*accp > (BASE-1))\n carry = 1\n accum.n_value[accp--] -= Libbcmath.BASE //* accp-- -= BASE;\n } else {\n carry = 0\n accp--\n }\n }\n while (carry) {\n accum.n_value[accp] += carry //* accp += carry;\n if (accum.n_value[accp] > Libbcmath.BASE - 1) {\n // if (*accp > (BASE-1))\n accum.n_value[accp--] -= Libbcmath.BASE //* accp-- -= BASE;\n } else {\n carry = 0\n }\n }\n }\n return true // accum is the pass-by-reference return\n },\n\n /* Recursive divide and conquer multiply algorithm.\n based on\n Let u = u0 + u1*(b^n)\n Let v = v0 + v1*(b^n)\n Then uv = (B^2n+B^n)*u1*v1 + B^n*(u1-u0)*(v0-v1) + (B^n+1)*u0*v0\n\n B is the base of storage, number of digits in u1,u0 close to equal.\n */\n _bc_rec_mul: function (u, ulen, v, vlen, fullScale) {\n let prod // @return\n let u0, u1, v0, v1 // bc_num\n // var u0len,\n // var v0len // int\n let m1, m2, m3, d1, d2 // bc_num\n let n, prodlen, m1zero // int\n let d1len, d2len // int\n // Base case?\n if (\n ulen + vlen < Libbcmath.MUL_BASE_DIGITS ||\n ulen < Libbcmath.MUL_SMALL_DIGITS ||\n vlen < Libbcmath.MUL_SMALL_DIGITS\n ) {\n return Libbcmath._bc_simp_mul(u, ulen, v, vlen, fullScale)\n }\n\n // Calculate n -- the u and v split point in digits.\n n = Math.floor((Libbcmath.MAX(ulen, vlen) + 1) / 2)\n\n // Split u and v.\n if (ulen < n) {\n u1 = Libbcmath.bc_init_num() // u1 = bc_copy_num (BCG(_zero_));\n u0 = Libbcmath.new_sub_num(ulen, 0, u.n_value)\n } else {\n u1 = Libbcmath.new_sub_num(ulen - n, 0, u.n_value)\n u0 = Libbcmath.new_sub_num(n, 0, u.n_value, ulen - n)\n }\n if (vlen < n) {\n v1 = Libbcmath.bc_init_num() // bc_copy_num (BCG(_zero_));\n v0 = Libbcmath.new_sub_num(vlen, 0, v.n_value)\n } else {\n v1 = Libbcmath.new_sub_num(vlen - n, 0, v.n_value)\n v0 = Libbcmath.new_sub_num(n, 0, v.n_value, vlen - n)\n }\n Libbcmath._bc_rm_leading_zeros(u1)\n Libbcmath._bc_rm_leading_zeros(u0)\n // var u0len = u0.n_len\n Libbcmath._bc_rm_leading_zeros(v1)\n Libbcmath._bc_rm_leading_zeros(v0)\n // var v0len = v0.n_len\n\n m1zero = Libbcmath.bc_is_zero(u1) || Libbcmath.bc_is_zero(v1)\n\n // Calculate sub results ...\n d1 = Libbcmath.bc_init_num() // needed?\n d2 = Libbcmath.bc_init_num() // needed?\n d1 = Libbcmath.bc_sub(u1, u0, 0)\n d1len = d1.n_len\n\n d2 = Libbcmath.bc_sub(v0, v1, 0)\n d2len = d2.n_len\n\n // Do recursive multiplies and shifted adds.\n if (m1zero) {\n m1 = Libbcmath.bc_init_num() // bc_copy_num (BCG(_zero_));\n } else {\n // m1 = Libbcmath.bc_init_num(); //allow pass-by-ref\n m1 = Libbcmath._bc_rec_mul(u1, u1.n_len, v1, v1.n_len, 0)\n }\n if (Libbcmath.bc_is_zero(d1) || Libbcmath.bc_is_zero(d2)) {\n m2 = Libbcmath.bc_init_num() // bc_copy_num (BCG(_zero_));\n } else {\n // m2 = Libbcmath.bc_init_num(); //allow pass-by-ref\n m2 = Libbcmath._bc_rec_mul(d1, d1len, d2, d2len, 0)\n }\n\n if (Libbcmath.bc_is_zero(u0) || Libbcmath.bc_is_zero(v0)) {\n m3 = Libbcmath.bc_init_num() // bc_copy_num (BCG(_zero_));\n } else {\n // m3 = Libbcmath.bc_init_num(); //allow pass-by-ref\n m3 = Libbcmath._bc_rec_mul(u0, u0.n_len, v0, v0.n_len, 0)\n }\n\n // Initialize product\n prodlen = ulen + vlen + 1\n prod = Libbcmath.bc_new_num(prodlen, 0)\n\n if (!m1zero) {\n Libbcmath._bc_shift_addsub(prod, m1, 2 * n, 0)\n Libbcmath._bc_shift_addsub(prod, m1, n, 0)\n }\n Libbcmath._bc_shift_addsub(prod, m3, n, 0)\n Libbcmath._bc_shift_addsub(prod, m3, 0, 0)\n Libbcmath._bc_shift_addsub(prod, m2, n, d1.n_sign !== d2.n_sign)\n\n return prod\n // Now clean up!\n // bc_free_num (&u1);\n // bc_free_num (&u0);\n // bc_free_num (&v1);\n // bc_free_num (&m1);\n // bc_free_num (&v0);\n // bc_free_num (&m2);\n // bc_free_num (&m3);\n // bc_free_num (&d1);\n // bc_free_num (&d2);\n },\n\n /**\n *\n * @param {bc_num} n1\n * @param {bc_num} n2\n * @param {boolean} useSign\n * @param {boolean} ignoreLast\n * @return -1, 0, 1 (see bc_compare)\n */\n _bc_do_compare: function (n1, n2, useSign, ignoreLast) {\n let n1ptr, n2ptr // int\n let count // int\n // First, compare signs.\n if (useSign && n1.n_sign !== n2.n_sign) {\n if (n1.n_sign === Libbcmath.PLUS) {\n return 1 // Positive N1 > Negative N2\n } else {\n return -1 // Negative N1 < Positive N1\n }\n }\n\n // Now compare the magnitude.\n if (n1.n_len !== n2.n_len) {\n if (n1.n_len > n2.n_len) {\n // Magnitude of n1 > n2.\n if (!useSign || n1.n_sign === Libbcmath.PLUS) {\n return 1\n } else {\n return -1\n }\n } else {\n // Magnitude of n1 < n2.\n if (!useSign || n1.n_sign === Libbcmath.PLUS) {\n return -1\n } else {\n return 1\n }\n }\n }\n\n /* If we get here, they have the same number of integer digits.\n check the integer part and the equal length part of the fraction. */\n count = n1.n_len + Math.min(n1.n_scale, n2.n_scale)\n n1ptr = 0\n n2ptr = 0\n\n while (count > 0 && n1.n_value[n1ptr] === n2.n_value[n2ptr]) {\n n1ptr++\n n2ptr++\n count--\n }\n\n if (ignoreLast && count === 1 && n1.n_scale === n2.n_scale) {\n return 0\n }\n\n if (count !== 0) {\n if (n1.n_value[n1ptr] > n2.n_value[n2ptr]) {\n // Magnitude of n1 > n2.\n if (!useSign || n1.n_sign === Libbcmath.PLUS) {\n return 1\n } else {\n return -1\n }\n } else {\n // Magnitude of n1 < n2.\n if (!useSign || n1.n_sign === Libbcmath.PLUS) {\n return -1\n } else {\n return 1\n }\n }\n }\n\n // They are equal up to the last part of the equal part of the fraction.\n if (n1.n_scale !== n2.n_scale) {\n if (n1.n_scale > n2.n_scale) {\n for (count = n1.n_scale - n2.n_scale; count > 0; count--) {\n if (n1.n_value[n1ptr++] !== 0) {\n // Magnitude of n1 > n2.\n if (!useSign || n1.n_sign === Libbcmath.PLUS) {\n return 1\n } else {\n return -1\n }\n }\n }\n } else {\n for (count = n2.n_scale - n1.n_scale; count > 0; count--) {\n if (n2.n_value[n2ptr++] !== 0) {\n // Magnitude of n1 < n2.\n if (!useSign || n1.n_sign === Libbcmath.PLUS) {\n return -1\n } else {\n return 1\n }\n }\n }\n }\n }\n\n // They must be equal!\n return 0\n },\n\n /* Here is the full subtract routine that takes care of negative numbers.\n N2 is subtracted from N1 and the result placed in RESULT. SCALE_MIN\n is the minimum scale for the result. */\n bc_sub: function (n1, n2, scaleMin) {\n let diff // bc_num\n let cmpRes, resScale // int\n if (n1.n_sign !== n2.n_sign) {\n diff = Libbcmath._bc_do_add(n1, n2, scaleMin)\n diff.n_sign = n1.n_sign\n } else {\n // subtraction must be done.\n // Compare magnitudes.\n cmpRes = Libbcmath._bc_do_compare(n1, n2, false, false)\n switch (cmpRes) {\n case -1:\n // n1 is less than n2, subtract n1 from n2.\n diff = Libbcmath._bc_do_sub(n2, n1, scaleMin)\n diff.n_sign = n2.n_sign === Libbcmath.PLUS ? Libbcmath.MINUS : Libbcmath.PLUS\n break\n case 0:\n // They are equal! return zero!\n resScale = Libbcmath.MAX(scaleMin, Libbcmath.MAX(n1.n_scale, n2.n_scale))\n diff = Libbcmath.bc_new_num(1, resScale)\n Libbcmath.memset(diff.n_value, 0, 0, resScale + 1)\n break\n case 1:\n // n2 is less than n1, subtract n2 from n1.\n diff = Libbcmath._bc_do_sub(n1, n2, scaleMin)\n diff.n_sign = n1.n_sign\n break\n }\n }\n\n // Clean up and return.\n // bc_free_num (result);\n //* result = diff;\n return diff\n },\n\n _bc_do_add: function (n1, n2, scaleMin) {\n let sum // bc_num\n let sumScale, sumDigits // int\n let n1ptr, n2ptr, sumptr // int\n let carry, n1bytes, n2bytes // int\n let tmp // int\n\n // Prepare sum.\n sumScale = Libbcmath.MAX(n1.n_scale, n2.n_scale)\n sumDigits = Libbcmath.MAX(n1.n_len, n2.n_len) + 1\n sum = Libbcmath.bc_new_num(sumDigits, Libbcmath.MAX(sumScale, scaleMin))\n\n // Start with the fraction part. Initialize the pointers.\n n1bytes = n1.n_scale\n n2bytes = n2.n_scale\n n1ptr = n1.n_len + n1bytes - 1\n n2ptr = n2.n_len + n2bytes - 1\n sumptr = sumScale + sumDigits - 1\n\n // Add the fraction part. First copy the longer fraction\n // (ie when adding 1.2345 to 1 we know .2345 is correct already) .\n if (n1bytes !== n2bytes) {\n if (n1bytes > n2bytes) {\n // n1 has more dp then n2\n while (n1bytes > n2bytes) {\n sum.n_value[sumptr--] = n1.n_value[n1ptr--]\n // *sumptr-- = *n1ptr--;\n n1bytes--\n }\n } else {\n // n2 has more dp then n1\n while (n2bytes > n1bytes) {\n sum.n_value[sumptr--] = n2.n_value[n2ptr--]\n // *sumptr-- = *n2ptr--;\n n2bytes--\n }\n }\n }\n\n // Now add the remaining fraction part and equal size integer parts.\n n1bytes += n1.n_len\n n2bytes += n2.n_len\n carry = 0\n while (n1bytes > 0 && n2bytes > 0) {\n // add the two numbers together\n tmp = n1.n_value[n1ptr--] + n2.n_value[n2ptr--] + carry\n // *sumptr = *n1ptr-- + *n2ptr-- + carry;\n // check if they are >= 10 (impossible to be more then 18)\n if (tmp >= Libbcmath.BASE) {\n carry = 1\n tmp -= Libbcmath.BASE // yep, subtract 10, add a carry\n } else {\n carry = 0\n }\n sum.n_value[sumptr] = tmp\n sumptr--\n n1bytes--\n n2bytes--\n }\n\n // Now add carry the [rest of the] longer integer part.\n if (n1bytes === 0) {\n // n2 is a bigger number then n1\n while (n2bytes-- > 0) {\n tmp = n2.n_value[n2ptr--] + carry\n // *sumptr = *n2ptr-- + carry;\n if (tmp >= Libbcmath.BASE) {\n carry = 1\n tmp -= Libbcmath.BASE\n } else {\n carry = 0\n }\n sum.n_value[sumptr--] = tmp\n }\n } else {\n // n1 is bigger then n2..\n while (n1bytes-- > 0) {\n tmp = n1.n_value[n1ptr--] + carry\n // *sumptr = *n1ptr-- + carry;\n if (tmp >= Libbcmath.BASE) {\n carry = 1\n tmp -= Libbcmath.BASE\n } else {\n carry = 0\n }\n sum.n_value[sumptr--] = tmp\n }\n }\n\n // Set final carry.\n if (carry === 1) {\n sum.n_value[sumptr] += 1\n // *sumptr += 1;\n }\n\n // Adjust sum and return.\n Libbcmath._bc_rm_leading_zeros(sum)\n return sum\n },\n\n /**\n * Perform a subtraction\n *\n * Perform subtraction: N2 is subtracted from N1 and the value is\n * returned. The signs of N1 and N2 are ignored. Also, N1 is\n * assumed to be larger than N2. SCALE_MIN is the minimum scale\n * of the result.\n *\n * Basic school maths says to subtract 2 numbers..\n * 1. make them the same length, the decimal places, and the integer part\n * 2. start from the right and subtract the two numbers from each other\n * 3. if the sum of the 2 numbers < 0, carry -1 to the next set and add 10\n * (ie 18 > carry 1 becomes 8). thus 0.9 + 0.9 = 1.8\n *\n * @param {bc_num} n1\n * @param {bc_num} n2\n * @param {int} scaleMin\n * @return bc_num\n */\n _bc_do_sub: function (n1, n2, scaleMin) {\n let diff // bc_num\n let diffScale, diffLen // int\n let minScale, minLen // int\n let n1ptr, n2ptr, diffptr // int\n let borrow, count, val // int\n // Allocate temporary storage.\n diffLen = Libbcmath.MAX(n1.n_len, n2.n_len)\n diffScale = Libbcmath.MAX(n1.n_scale, n2.n_scale)\n minLen = Libbcmath.MIN(n1.n_len, n2.n_len)\n minScale = Libbcmath.MIN(n1.n_scale, n2.n_scale)\n diff = Libbcmath.bc_new_num(diffLen, Libbcmath.MAX(diffScale, scaleMin))\n\n /* Not needed?\n // Zero extra digits made by scaleMin.\n if (scaleMin > diffScale) {\n diffptr = (char *) (diff->n_value + diffLen + diffScale);\n for (count = scaleMin - diffScale; count > 0; count--) {\n *diffptr++ = 0;\n }\n }\n */\n\n // Initialize the subtract.\n n1ptr = n1.n_len + n1.n_scale - 1\n n2ptr = n2.n_len + n2.n_scale - 1\n diffptr = diffLen + diffScale - 1\n\n // Subtract the numbers.\n borrow = 0\n\n // Take care of the longer scaled number.\n if (n1.n_scale !== minScale) {\n // n1 has the longer scale\n for (count = n1.n_scale - minScale; count > 0; count--) {\n diff.n_value[diffptr--] = n1.n_value[n1ptr--]\n // *diffptr-- = *n1ptr--;\n }\n } else {\n // n2 has the longer scale\n for (count = n2.n_scale - minScale; count > 0; count--) {\n val = 0 - n2.n_value[n2ptr--] - borrow\n // val = - *n2ptr-- - borrow;\n if (val < 0) {\n val += Libbcmath.BASE\n borrow = 1\n } else {\n borrow = 0\n }\n diff.n_value[diffptr--] = val\n //* diffptr-- = val;\n }\n }\n\n // Now do the equal length scale and integer parts.\n for (count = 0; count < minLen + minScale; count++) {\n val = n1.n_value[n1ptr--] - n2.n_value[n2ptr--] - borrow\n // val = *n1ptr-- - *n2ptr-- - borrow;\n if (val < 0) {\n val += Libbcmath.BASE\n borrow = 1\n } else {\n borrow = 0\n }\n diff.n_value[diffptr--] = val\n //* diffptr-- = val;\n }\n\n // If n1 has more digits then n2, we now do that subtract.\n if (diffLen !== minLen) {\n for (count = diffLen - minLen; count > 0; count--) {\n val = n1.n_value[n1ptr--] - borrow\n // val = *n1ptr-- - borrow;\n if (val < 0) {\n val += Libbcmath.BASE\n borrow = 1\n } else {\n borrow = 0\n }\n diff.n_value[diffptr--] = val\n }\n }\n\n // Clean up and return.\n Libbcmath._bc_rm_leading_zeros(diff)\n return diff\n },\n\n /**\n *\n * @param {int} length\n * @param {int} scale\n * @return bc_num\n */\n bc_new_num: function (length, scale) {\n let temp // bc_num\n temp = new Libbcmath.bc_num() // eslint-disable-line new-cap\n temp.n_sign = Libbcmath.PLUS\n temp.n_len = length\n temp.n_scale = scale\n temp.n_value = Libbcmath.safe_emalloc(1, length + scale, 0)\n Libbcmath.memset(temp.n_value, 0, 0, length + scale)\n return temp\n },\n\n safe_emalloc: function (size, len, extra) {\n return Array(size * len + extra)\n },\n\n /**\n * Create a new number\n */\n bc_init_num: function () {\n return new Libbcmath.bc_new_num(1, 0) // eslint-disable-line new-cap\n },\n\n _bc_rm_leading_zeros: function (num) {\n // We can move n_value to point to the first non zero digit!\n while (num.n_value[0] === 0 && num.n_len > 1) {\n num.n_value.shift()\n num.n_len--\n }\n },\n\n /**\n * Convert to bc_num detecting scale\n */\n php_str2num: function (str) {\n let p\n p = str.indexOf('.')\n if (p === -1) {\n return Libbcmath.bc_str2num(str, 0)\n } else {\n return Libbcmath.bc_str2num(str, str.length - p)\n }\n },\n\n CH_VAL: function (c) {\n return c - '0' // ??\n },\n\n BCD_CHAR: function (d) {\n return d + '0' // ??\n },\n\n isdigit: function (c) {\n return isNaN(parseInt(c, 10))\n },\n\n bc_str2num: function (strIn, scale) {\n let str, num, ptr, digits, strscale, zeroInt, nptr\n // remove any non-expected characters\n // Check for valid number and count digits.\n\n str = strIn.split('') // convert to array\n ptr = 0 // str\n digits = 0\n strscale = 0\n zeroInt = false\n if (str[ptr] === '+' || str[ptr] === '-') {\n ptr++ // Sign\n }\n while (str[ptr] === '0') {\n ptr++ // Skip leading zeros.\n }\n // while (Libbcmath.isdigit(str[ptr])) {\n while (str[ptr] % 1 === 0) {\n // Libbcmath.isdigit(str[ptr])) {\n ptr++\n digits++ // digits\n }\n\n if (str[ptr] === '.') {\n ptr++ // decimal point\n }\n // while (Libbcmath.isdigit(str[ptr])) {\n while (str[ptr] % 1 === 0) {\n // Libbcmath.isdigit(str[ptr])) {\n ptr++\n strscale++ // digits\n }\n\n if (str[ptr] || digits + strscale === 0) {\n // invalid number, return 0\n return Libbcmath.bc_init_num()\n //* num = bc_copy_num (BCG(_zero_));\n }\n\n // Adjust numbers and allocate storage and initialize fields.\n strscale = Libbcmath.MIN(strscale, scale)\n if (digits === 0) {\n zeroInt = true\n digits = 1\n }\n\n num = Libbcmath.bc_new_num(digits, strscale)\n\n // Build the whole number.\n ptr = 0 // str\n if (str[ptr] === '-') {\n num.n_sign = Libbcmath.MINUS\n // (*num)->n_sign = MINUS;\n ptr++\n } else {\n num.n_sign = Libbcmath.PLUS\n // (*num)->n_sign = PLUS;\n if (str[ptr] === '+') {\n ptr++\n }\n }\n while (str[ptr] === '0') {\n ptr++ // Skip leading zeros.\n }\n\n nptr = 0 // (*num)->n_value;\n if (zeroInt) {\n num.n_value[nptr++] = 0\n digits = 0\n }\n for (; digits > 0; digits--) {\n num.n_value[nptr++] = Libbcmath.CH_VAL(str[ptr++])\n //* nptr++ = CH_VAL(*ptr++);\n }\n\n // Build the fractional part.\n if (strscale > 0) {\n ptr++ // skip the decimal point!\n for (; strscale > 0; strscale--) {\n num.n_value[nptr++] = Libbcmath.CH_VAL(str[ptr++])\n }\n }\n\n return num\n },\n\n cint: function (v) {\n if (typeof v === 'undefined') {\n v = 0\n }\n let x = parseInt(v, 10)\n if (isNaN(x)) {\n x = 0\n }\n return x\n },\n\n /**\n * Basic min function\n * @param {int} a\n * @param {int} b\n */\n MIN: function (a, b) {\n return a > b ? b : a\n },\n\n /**\n * Basic max function\n * @param {int} a\n * @param {int} b\n */\n MAX: function (a, b) {\n return a > b ? a : b\n },\n\n /**\n * Basic odd function\n * @param {int} a\n */\n ODD: function (a) {\n return a & 1\n },\n\n /**\n * replicate c function\n * @param {array} r return (by reference)\n * @param {int} ptr\n * @param {string} chr char to fill\n * @param {int} len length to fill\n */\n memset: function (r, ptr, chr, len) {\n let i\n for (i = 0; i < len; i++) {\n r[ptr + i] = chr\n }\n },\n\n /**\n * Replacement c function\n * Obviously can't work like c does, so we've added an \"offset\"\n * param so you could do memcpy(dest+1, src, len) as memcpy(dest, 1, src, len)\n * Also only works on arrays\n */\n memcpy: function (dest, ptr, src, srcptr, len) {\n let i\n for (i = 0; i < len; i++) {\n dest[ptr + i] = src[srcptr + i]\n }\n return true\n },\n\n /**\n * Determine if the number specified is zero or not\n * @param {bc_num} num number to check\n * @return boolean true when zero, false when not zero.\n */\n bc_is_zero: function (num) {\n let count // int\n let nptr // int\n // Quick check.\n // if (num === BCG(_zero_)) return TRUE;\n // Initialize\n count = num.n_len + num.n_scale\n nptr = 0 // num->n_value;\n // The check\n while (count > 0 && num.n_value[nptr++] === 0) {\n count--\n }\n\n if (count !== 0) {\n return false\n } else {\n return true\n }\n },\n\n bc_out_of_memory: function () {\n throw new Error('(BC) Out of memory')\n },\n }\n return Libbcmath\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/_helpers/_phpCastString.js"],"names":["module","exports","_phpCastString","value","type","isNaN","isFinite","Array","isArray","Error"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,cAAT,CAAwBC,KAAxB,EAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,cAAcD,KAAd,yCAAcA,KAAd,CAAN;;AAEA,UAAQC,IAAR;AACE,SAAK,SAAL;AACE,aAAOD,QAAQ,GAAR,GAAc,EAArB;AACF,SAAK,QAAL;AACE,aAAOA,KAAP;AACF,SAAK,QAAL;AACE,UAAIE,MAAMF,KAAN,CAAJ,EAAkB;AAChB,eAAO,KAAP;AACD;;AAED,UAAI,CAACG,SAASH,KAAT,CAAL,EAAsB;AACpB,eAAO,CAACA,QAAQ,CAAR,GAAY,GAAZ,GAAkB,EAAnB,IAAyB,KAAhC;AACD;;AAED,aAAOA,QAAQ,EAAf;AACF,SAAK,WAAL;AACE,aAAO,EAAP;AACF,SAAK,QAAL;AACE,UAAII,MAAMC,OAAN,CAAcL,KAAd,CAAJ,EAA0B;AACxB,eAAO,OAAP;AACD;;AAED,UAAIA,UAAU,IAAd,EAAoB;AAClB,eAAO,QAAP;AACD;;AAED,aAAO,EAAP;AACF,SAAK,UAAL;AACA;AACA;AACE,YAAM,IAAIM,KAAJ,CAAU,wBAAV,CAAN;AA9BJ;AAgCD,CA/DD","file":"_phpCastString.js","sourcesContent":["module.exports = function _phpCastString(value) {\n // original by: Rafał Kukawski\n // example 1: _phpCastString(true)\n // returns 1: '1'\n // example 2: _phpCastString(false)\n // returns 2: ''\n // example 3: _phpCastString('foo')\n // returns 3: 'foo'\n // example 4: _phpCastString(0/0)\n // returns 4: 'NAN'\n // example 5: _phpCastString(1/0)\n // returns 5: 'INF'\n // example 6: _phpCastString(-1/0)\n // returns 6: '-INF'\n // example 7: _phpCastString(null)\n // returns 7: ''\n // example 8: _phpCastString(undefined)\n // returns 8: ''\n // example 9: _phpCastString([])\n // returns 9: 'Array'\n // example 10: _phpCastString({})\n // returns 10: 'Object'\n // example 11: _phpCastString(0)\n // returns 11: '0'\n // example 12: _phpCastString(1)\n // returns 12: '1'\n // example 13: _phpCastString(3.14)\n // returns 13: '3.14'\n\n const type = typeof value\n\n switch (type) {\n case 'boolean':\n return value ? '1' : ''\n case 'string':\n return value\n case 'number':\n if (isNaN(value)) {\n return 'NAN'\n }\n\n if (!isFinite(value)) {\n return (value < 0 ? '-' : '') + 'INF'\n }\n\n return value + ''\n case 'undefined':\n return ''\n case 'object':\n if (Array.isArray(value)) {\n return 'Array'\n }\n\n if (value !== null) {\n return 'Object'\n }\n\n return ''\n case 'function':\n // fall through\n default:\n throw new Error('Unsupported value type')\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/_helpers/_php_cast_float.js"],"names":["module","exports","_php_cast_float","value","type","parseFloat","require"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAAyBC,KAAzB,EAAgC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,cAAcD,KAAd,yCAAcA,KAAd,CAAN;;AAEA,UAAQC,IAAR;AACE,SAAK,QAAL;AACE,aAAOD,KAAP;AACF,SAAK,QAAL;AACE,aAAOE,WAAWF,KAAX,KAAqB,CAA5B;AACF,SAAK,SAAL;AACA;AACA;AACE;AACA;AACA,aAAOG,QAAQ,iBAAR,EAA2BH,KAA3B,CAAP;AAVJ;AAYD,CA7CD","file":"_php_cast_float.js","sourcesContent":["module.exports = function _php_cast_float(value) {\n // original by: Rafał Kukawski\n // example 1: _php_cast_float(false)\n // returns 1: 0\n // example 2: _php_cast_float(true)\n // returns 2: 1\n // example 3: _php_cast_float(0)\n // returns 3: 0\n // example 4: _php_cast_float(1)\n // returns 4: 1\n // example 5: _php_cast_float(3.14)\n // returns 5: 3.14\n // example 6: _php_cast_float('')\n // returns 6: 0\n // example 7: _php_cast_float('0')\n // returns 7: 0\n // example 8: _php_cast_float('abc')\n // returns 8: 0\n // example 9: _php_cast_float(null)\n // returns 9: 0\n // example 10: _php_cast_float(undefined)\n // returns 10: 0\n // example 11: _php_cast_float('123abc')\n // returns 11: 123\n // example 12: _php_cast_float('123e4')\n // returns 12: 1230000\n // example 13: _php_cast_float(0x200000001)\n // returns 13: 8589934593\n // example 14: _php_cast_float('3.14abc')\n // returns 14: 3.14\n\n const type = typeof value\n\n switch (type) {\n case 'number':\n return value\n case 'string':\n return parseFloat(value) || 0\n case 'boolean':\n // fall through\n default:\n // PHP docs state, that for types other than string\n // conversion is {input type}->int->float\n return require('./_php_cast_int')(value)\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/_helpers/_php_cast_int.js"],"names":["module","exports","_php_cast_int","value","type","isNaN","isFinite","Math","ceil","floor","parseInt"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,aAAT,CAAuBC,KAAvB,EAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,cAAcD,KAAd,yCAAcA,KAAd,CAAN;;AAEA,UAAQC,IAAR;AACE,SAAK,QAAL;AACE,UAAIC,MAAMF,KAAN,KAAgB,CAACG,SAASH,KAAT,CAArB,EAAsC;AACpC;AACA,eAAO,CAAP;AACD;;AAED,aAAOA,QAAQ,CAAR,GAAYI,KAAKC,IAAL,CAAUL,KAAV,CAAZ,GAA+BI,KAAKE,KAAL,CAAWN,KAAX,CAAtC;AACF,SAAK,QAAL;AACE,aAAOO,SAASP,KAAT,EAAgB,EAAhB,KAAuB,CAA9B;AACF,SAAK,SAAL;AACA;AACA;AACE;AACA;AACA;AACA;AACA;AACA,aAAO,CAAC,CAAC,CAACA,KAAV;AAlBJ;AAoBD,CAnDD","file":"_php_cast_int.js","sourcesContent":["module.exports = function _php_cast_int(value) {\n // original by: Rafał Kukawski\n // example 1: _php_cast_int(false)\n // returns 1: 0\n // example 2: _php_cast_int(true)\n // returns 2: 1\n // example 3: _php_cast_int(0)\n // returns 3: 0\n // example 4: _php_cast_int(1)\n // returns 4: 1\n // example 5: _php_cast_int(3.14)\n // returns 5: 3\n // example 6: _php_cast_int('')\n // returns 6: 0\n // example 7: _php_cast_int('0')\n // returns 7: 0\n // example 8: _php_cast_int('abc')\n // returns 8: 0\n // example 9: _php_cast_int(null)\n // returns 9: 0\n // example 10: _php_cast_int(undefined)\n // returns 10: 0\n // example 11: _php_cast_int('123abc')\n // returns 11: 123\n // example 12: _php_cast_int('123e4')\n // returns 12: 123\n // example 13: _php_cast_int(0x200000001)\n // returns 13: 8589934593\n\n const type = typeof value\n\n switch (type) {\n case 'number':\n if (isNaN(value) || !isFinite(value)) {\n // from PHP 7, NaN and Infinity are casted to 0\n return 0\n }\n\n return value < 0 ? Math.ceil(value) : Math.floor(value)\n case 'string':\n return parseInt(value, 10) || 0\n case 'boolean':\n // fall through\n default:\n // Behaviour for types other than float, string, boolean\n // is undefined and can change any time.\n // To not invent complex logic\n // that mimics PHP 7.0 behaviour\n // casting value->bool->number is used\n return +!!value\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/_helpers/index.js"],"names":["module","exports","_bc","require","_phpCastString","_php_cast_float","_php_cast_int"],"mappings":";;AAAAA,OAAOC,OAAP,CAAeC,GAAf,GAAqBC,QAAQ,OAAR,CAArB;AACAH,OAAOC,OAAP,CAAeG,cAAf,GAAgCD,QAAQ,kBAAR,CAAhC;AACAH,OAAOC,OAAP,CAAeI,eAAf,GAAiCF,QAAQ,mBAAR,CAAjC;AACAH,OAAOC,OAAP,CAAeK,aAAf,GAA+BH,QAAQ,iBAAR,CAA/B","file":"index.js","sourcesContent":["module.exports._bc = require('./_bc')\nmodule.exports._phpCastString = require('./_phpCastString')\nmodule.exports._php_cast_float = require('./_php_cast_float')\nmodule.exports._php_cast_int = require('./_php_cast_int')\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_change_key_case.js"],"names":["module","exports","array_change_key_case","array","cs","caseFnc","key","tmpArr","Object","prototype","toString","call"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,qBAAT,CAA+BC,KAA/B,EAAsCC,EAAtC,EAA0C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,gBAAJ;AACA,MAAIC,YAAJ;AACA,MAAMC,SAAS,EAAf;;AAEA,MAAIC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BR,KAA/B,MAA0C,gBAA9C,EAAgE;AAC9D,WAAOA,KAAP;AACD;;AAED,MAAIA,SAAS,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAA9B,EAAwC;AACtCE,cAAU,CAACD,EAAD,IAAOA,OAAO,YAAd,GAA6B,aAA7B,GAA6C,aAAvD;AACA,SAAKE,GAAL,IAAYH,KAAZ,EAAmB;AACjBI,aAAOD,IAAID,OAAJ,GAAP,IAAyBF,MAAMG,GAAN,CAAzB;AACD;AACD,WAAOC,MAAP;AACD;;AAED,SAAO,KAAP;AACD,CAnCD","file":"array_change_key_case.js","sourcesContent":["module.exports = function array_change_key_case(array, cs) {\n // discuss at: https://locutus.io/php/array_change_key_case/\n // original by: Ates Goral (https://magnetiq.com)\n // improved by: marrtins\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: array_change_key_case(42)\n // returns 1: false\n // example 2: array_change_key_case([ 3, 5 ])\n // returns 2: [3, 5]\n // example 3: array_change_key_case({ FuBaR: 42 })\n // returns 3: {\"fubar\": 42}\n // example 4: array_change_key_case({ FuBaR: 42 }, 'CASE_LOWER')\n // returns 4: {\"fubar\": 42}\n // example 5: array_change_key_case({ FuBaR: 42 }, 'CASE_UPPER')\n // returns 5: {\"FUBAR\": 42}\n // example 6: array_change_key_case({ FuBaR: 42 }, 2)\n // returns 6: {\"FUBAR\": 42}\n\n let caseFnc\n let key\n const tmpArr = {}\n\n if (Object.prototype.toString.call(array) === '[object Array]') {\n return array\n }\n\n if (array && typeof array === 'object') {\n caseFnc = !cs || cs === 'CASE_LOWER' ? 'toLowerCase' : 'toUpperCase'\n for (key in array) {\n tmpArr[key[caseFnc]()] = array[key]\n }\n return tmpArr\n }\n\n return false\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_chunk.js"],"names":["module","exports","array_chunk","input","size","preserveKeys","x","p","i","c","l","length","n","Object","prototype","toString","call","hasOwnProperty"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAqBC,KAArB,EAA4BC,IAA5B,EAAkCC,YAAlC,EAAgD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,UAAJ;AACA,MAAIC,IAAI,EAAR;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,CAAC,CAAT;AACA,MAAMC,IAAIP,MAAMQ,MAAN,IAAgB,CAA1B;AACA,MAAMC,IAAI,EAAV;;AAEA,MAAIR,OAAO,CAAX,EAAc;AACZ,WAAO,IAAP;AACD;;AAED,MAAIS,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+Bb,KAA/B,MAA0C,gBAA9C,EAAgE;AAC9D,QAAIE,YAAJ,EAAkB;AAChB,aAAOG,IAAIE,CAAX,EAAc;AACZ,SAAC,CAACJ,IAAIE,IAAIJ,IAAT,IAAkBQ,EAAEH,CAAF,EAAKD,CAAL,IAAUL,MAAMK,CAAN,CAA5B,GAAyCI,EAAE,EAAEH,CAAJ,IAAS,EAAlD;AACDG,UAAEH,CAAF,EAAKD,CAAL,IAAUL,MAAMK,CAAN,CAAV;AACAA;AACD;AACF,KAND,MAMO;AACL,aAAOA,IAAIE,CAAX,EAAc;AACZ,SAAC,CAACJ,IAAIE,IAAIJ,IAAT,IAAkBQ,EAAEH,CAAF,EAAKH,CAAL,IAAUH,MAAMK,CAAN,CAA5B,GAAyCI,EAAE,EAAEH,CAAJ,IAAS,CAACN,MAAMK,CAAN,CAAD,CAAlD;AACDA;AACD;AACF;AACF,GAbD,MAaO;AACL,QAAIH,YAAJ,EAAkB;AAChB,WAAKE,CAAL,IAAUJ,KAAV,EAAiB;AACf,YAAIA,MAAMc,cAAN,CAAqBV,CAArB,CAAJ,EAA6B;AAC3B,WAAC,CAACD,IAAIE,IAAIJ,IAAT,IAAkBQ,EAAEH,CAAF,EAAKF,CAAL,IAAUJ,MAAMI,CAAN,CAA5B,GAAyCK,EAAE,EAAEH,CAAJ,IAAS,EAAlD;AACDG,YAAEH,CAAF,EAAKF,CAAL,IAAUJ,MAAMI,CAAN,CAAV;AACAC;AACD;AACF;AACF,KARD,MAQO;AACL,WAAKD,CAAL,IAAUJ,KAAV,EAAiB;AACf,YAAIA,MAAMc,cAAN,CAAqBV,CAArB,CAAJ,EAA6B;AAC3B,WAAC,CAACD,IAAIE,IAAIJ,IAAT,IAAkBQ,EAAEH,CAAF,EAAKH,CAAL,IAAUH,MAAMI,CAAN,CAA5B,GAAyCK,EAAE,EAAEH,CAAJ,IAAS,CAACN,MAAMI,CAAN,CAAD,CAAlD;AACDC;AACD;AACF;AACF;AACF;;AAED,SAAOI,CAAP;AACD,CA3DD","file":"array_chunk.js","sourcesContent":["module.exports = function array_chunk(input, size, preserveKeys) {\n // discuss at: https://locutus.io/php/array_chunk/\n // original by: Carlos R. L. Rodrigues (https://www.jsfromhell.com)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // note 1: Important note: Per the ECMAScript specification,\n // note 1: objects may not always iterate in a predictable order\n // example 1: array_chunk(['Kevin', 'van', 'Zonneveld'], 2)\n // returns 1: [['Kevin', 'van'], ['Zonneveld']]\n // example 2: array_chunk(['Kevin', 'van', 'Zonneveld'], 2, true)\n // returns 2: [{0:'Kevin', 1:'van'}, {2: 'Zonneveld'}]\n // example 3: array_chunk({1:'Kevin', 2:'van', 3:'Zonneveld'}, 2)\n // returns 3: [['Kevin', 'van'], ['Zonneveld']]\n // example 4: array_chunk({1:'Kevin', 2:'van', 3:'Zonneveld'}, 2, true)\n // returns 4: [{1: 'Kevin', 2: 'van'}, {3: 'Zonneveld'}]\n\n let x\n let p = ''\n let i = 0\n let c = -1\n const l = input.length || 0\n const n = []\n\n if (size < 1) {\n return null\n }\n\n if (Object.prototype.toString.call(input) === '[object Array]') {\n if (preserveKeys) {\n while (i < l) {\n ;(x = i % size) ? (n[c][i] = input[i]) : (n[++c] = {})\n n[c][i] = input[i]\n i++\n }\n } else {\n while (i < l) {\n ;(x = i % size) ? (n[c][x] = input[i]) : (n[++c] = [input[i]])\n i++\n }\n }\n } else {\n if (preserveKeys) {\n for (p in input) {\n if (input.hasOwnProperty(p)) {\n ;(x = i % size) ? (n[c][p] = input[p]) : (n[++c] = {})\n n[c][p] = input[p]\n i++\n }\n }\n } else {\n for (p in input) {\n if (input.hasOwnProperty(p)) {\n ;(x = i % size) ? (n[c][x] = input[p]) : (n[++c] = [input[p]])\n i++\n }\n }\n }\n }\n\n return n\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_column.js"],"names":["module","exports","array_column","input","ColumnKey","IndexKey","Array","isArray","newarray","temparray","Object","keys","key","push","assign"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,YAAT,CAAsBC,KAAtB,EAA6BC,SAA7B,EAAyD;AAAA,MAAjBC,QAAiB,uEAAN,IAAM;;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIF,UAAU,IAAV,KAAmB,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAAjB,IAA6BG,MAAMC,OAAN,CAAcJ,KAAd,CAAhD,CAAJ,EAA2E;AACzE,QAAMK,WAAW,EAAjB;AACA,QAAI,QAAOL,KAAP,yCAAOA,KAAP,OAAiB,QAArB,EAA+B;AAC7B,UAAMM,YAAY,EAAlB;AAD6B;AAAA;AAAA;;AAAA;AAE7B,6BAAkBC,OAAOC,IAAP,CAAYR,KAAZ,CAAlB,8HAAsC;AAAA,cAA3BS,GAA2B;;AACpCH,oBAAUI,IAAV,CAAeV,MAAMS,GAAN,CAAf;AACD;AAJ4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAK7BT,cAAQM,SAAR;AACD;AACD,QAAIH,MAAMC,OAAN,CAAcJ,KAAd,CAAJ,EAA0B;AAAA;AAAA;AAAA;;AAAA;AACxB,8BAAkBA,MAAMQ,IAAN,EAAlB,mIAAgC;AAAA,cAArBC,IAAqB;;AAC9B,cAAIP,YAAYF,MAAMS,IAAN,EAAWP,QAAX,CAAhB,EAAsC;AACpC,gBAAID,SAAJ,EAAe;AACbI,uBAASL,MAAMS,IAAN,EAAWP,QAAX,CAAT,IAAiCF,MAAMS,IAAN,EAAWR,SAAX,CAAjC;AACD,aAFD,MAEO;AACLI,uBAASL,MAAMS,IAAN,EAAWP,QAAX,CAAT,IAAiCF,MAAMS,IAAN,CAAjC;AACD;AACF,WAND,MAMO;AACL,gBAAIR,SAAJ,EAAe;AACbI,uBAASK,IAAT,CAAcV,MAAMS,IAAN,EAAWR,SAAX,CAAd;AACD,aAFD,MAEO;AACLI,uBAASK,IAAT,CAAcV,MAAMS,IAAN,CAAd;AACD;AACF;AACF;AAfuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBzB;AACD,WAAOF,OAAOI,MAAP,CAAc,EAAd,EAAkBN,QAAlB,CAAP;AACD;AACF,CAxCD","file":"array_column.js","sourcesContent":["module.exports = function array_column(input, ColumnKey, IndexKey = null) {\n // discuss at: https://locutus.io/php/array_column/\n // original by: Enzo Dañobeytía\n // example 1: array_column([{name: 'Alex', value: 1}, {name: 'Elvis', value: 2}, {name: 'Michael', value: 3}], 'name')\n // returns 1: {0: \"Alex\", 1: \"Elvis\", 2: \"Michael\"}\n // example 2: array_column({0: {name: 'Alex', value: 1}, 1: {name: 'Elvis', value: 2}, 2: {name: 'Michael', value: 3}}, 'name')\n // returns 2: {0: \"Alex\", 1: \"Elvis\", 2: \"Michael\"}\n // example 3: array_column([{name: 'Alex', value: 1}, {name: 'Elvis', value: 2}, {name: 'Michael', value: 3}], 'name', 'value')\n // returns 3: {1: \"Alex\", 2: \"Elvis\", 3: \"Michael\"}\n // example 4: array_column([{name: 'Alex', value: 1}, {name: 'Elvis', value: 2}, {name: 'Michael', value: 3}], null, 'value')\n // returns 4: {1: {name: 'Alex', value: 1}, 2: {name: 'Elvis', value: 2}, 3: {name: 'Michael', value: 3}}\n\n if (input !== null && (typeof input === 'object' || Array.isArray(input))) {\n const newarray = []\n if (typeof input === 'object') {\n const temparray = []\n for (const key of Object.keys(input)) {\n temparray.push(input[key])\n }\n input = temparray\n }\n if (Array.isArray(input)) {\n for (const key of input.keys()) {\n if (IndexKey && input[key][IndexKey]) {\n if (ColumnKey) {\n newarray[input[key][IndexKey]] = input[key][ColumnKey]\n } else {\n newarray[input[key][IndexKey]] = input[key]\n }\n } else {\n if (ColumnKey) {\n newarray.push(input[key][ColumnKey])\n } else {\n newarray.push(input[key])\n }\n }\n }\n }\n return Object.assign({}, newarray)\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_combine.js"],"names":["module","exports","array_combine","keys","values","newArray","i","length"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,aAAT,CAAuBC,IAAvB,EAA6BC,MAA7B,EAAqC;AACpD;AACA;AACA;AACA;AACA;;AAEA,MAAMC,WAAW,EAAjB;AACA,MAAIC,IAAI,CAAR;;AAEA;AACA;AACA;AACA,MAAI,QAAOH,IAAP,yCAAOA,IAAP,OAAgB,QAApB,EAA8B;AAC5B,WAAO,KAAP;AACD;AACD,MAAI,QAAOC,MAAP,yCAAOA,MAAP,OAAkB,QAAtB,EAAgC;AAC9B,WAAO,KAAP;AACD;AACD,MAAI,OAAOD,KAAKI,MAAZ,KAAuB,QAA3B,EAAqC;AACnC,WAAO,KAAP;AACD;AACD,MAAI,OAAOH,OAAOG,MAAd,KAAyB,QAA7B,EAAuC;AACrC,WAAO,KAAP;AACD;AACD,MAAI,CAACJ,KAAKI,MAAV,EAAkB;AAChB,WAAO,KAAP;AACD;;AAED;AACA,MAAIJ,KAAKI,MAAL,KAAgBH,OAAOG,MAA3B,EAAmC;AACjC,WAAO,KAAP;AACD;;AAED,OAAKD,IAAI,CAAT,EAAYA,IAAIH,KAAKI,MAArB,EAA6BD,GAA7B,EAAkC;AAChCD,aAASF,KAAKG,CAAL,CAAT,IAAoBF,OAAOE,CAAP,CAApB;AACD;;AAED,SAAOD,QAAP;AACD,CAvCD","file":"array_combine.js","sourcesContent":["module.exports = function array_combine(keys, values) {\n // discuss at: https://locutus.io/php/array_combine/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: array_combine([0,1,2], ['kevin','van','zonneveld'])\n // returns 1: {0: 'kevin', 1: 'van', 2: 'zonneveld'}\n\n const newArray = {}\n let i = 0\n\n // input sanitation\n // Only accept arrays or array-like objects\n // Require arrays to have a count\n if (typeof keys !== 'object') {\n return false\n }\n if (typeof values !== 'object') {\n return false\n }\n if (typeof keys.length !== 'number') {\n return false\n }\n if (typeof values.length !== 'number') {\n return false\n }\n if (!keys.length) {\n return false\n }\n\n // number of elements does not match\n if (keys.length !== values.length) {\n return false\n }\n\n for (i = 0; i < keys.length; i++) {\n newArray[keys[i]] = values[i]\n }\n\n return newArray\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_count_values.js"],"names":["module","exports","array_count_values","array","tmpArr","key","t","_getType","obj","toLowerCase","_countValue","value","Math","floor","hasOwnProperty","call"],"mappings":";;;;AAAAA,OAAOC,OAAP,GAAiB,SAASC,kBAAT,CAA4BC,KAA5B,EAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAIC,MAAM,EAAV;AACA,MAAIC,IAAI,EAAR;;AAEA,MAAMC,WAAW,SAAXA,QAAW,CAAUC,GAAV,EAAe;AAC9B;AACA,QAAIF,WAAWE,GAAX,yCAAWA,GAAX,CAAJ;AACAF,QAAIA,EAAEG,WAAF,EAAJ;AACA,QAAIH,MAAM,QAAV,EAAoB;AAClBA,UAAI,OAAJ;AACD;AACD,WAAOA,CAAP;AACD,GARD;;AAUA,MAAMI,cAAc,SAAdA,WAAc,CAAUN,MAAV,EAAkBO,KAAlB,EAAyB;AAC3C,QAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,UAAIC,KAAKC,KAAL,CAAWF,KAAX,MAAsBA,KAA1B,EAAiC;AAC/B;AACD;AACF,KAJD,MAIO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AACpC;AACD;;AAED,QAAIA,SAASP,MAAT,IAAmBA,OAAOU,cAAP,CAAsBH,KAAtB,CAAvB,EAAqD;AACnD,QAAEP,OAAOO,KAAP,CAAF;AACD,KAFD,MAEO;AACLP,aAAOO,KAAP,IAAgB,CAAhB;AACD;AACF,GAdD;;AAgBAL,MAAIC,SAASJ,KAAT,CAAJ;AACA,MAAIG,MAAM,OAAV,EAAmB;AACjB,SAAKD,GAAL,IAAYF,KAAZ,EAAmB;AACjB,UAAIA,MAAMW,cAAN,CAAqBT,GAArB,CAAJ,EAA+B;AAC7BK,oBAAYK,IAAZ,CAAiB,IAAjB,EAAuBX,MAAvB,EAA+BD,MAAME,GAAN,CAA/B;AACD;AACF;AACF;;AAED,SAAOD,MAAP;AACD,CAvDD","file":"array_count_values.js","sourcesContent":["module.exports = function array_count_values(array) {\n // discuss at: https://locutus.io/php/array_count_values/\n // original by: Ates Goral (https://magnetiq.com)\n // improved by: Michael White (https://getsprink.com)\n // improved by: Kevin van Zonneveld (https://kvz.io)\n // input by: sankai\n // input by: Shingo\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: array_count_values([ 3, 5, 3, \"foo\", \"bar\", \"foo\" ])\n // returns 1: {3:2, 5:1, \"foo\":2, \"bar\":1}\n // example 2: array_count_values({ p1: 3, p2: 5, p3: 3, p4: \"foo\", p5: \"bar\", p6: \"foo\" })\n // returns 2: {3:2, 5:1, \"foo\":2, \"bar\":1}\n // example 3: array_count_values([ true, 4.2, 42, \"fubar\" ])\n // returns 3: {42:1, \"fubar\":1}\n\n const tmpArr = {}\n let key = ''\n let t = ''\n\n const _getType = function (obj) {\n // Objects are php associative arrays.\n let t = typeof obj\n t = t.toLowerCase()\n if (t === 'object') {\n t = 'array'\n }\n return t\n }\n\n const _countValue = function (tmpArr, value) {\n if (typeof value === 'number') {\n if (Math.floor(value) !== value) {\n return\n }\n } else if (typeof value !== 'string') {\n return\n }\n\n if (value in tmpArr && tmpArr.hasOwnProperty(value)) {\n ++tmpArr[value]\n } else {\n tmpArr[value] = 1\n }\n }\n\n t = _getType(array)\n if (t === 'array') {\n for (key in array) {\n if (array.hasOwnProperty(key)) {\n _countValue.call(this, tmpArr, array[key])\n }\n }\n }\n\n return tmpArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_diff.js"],"names":["module","exports","array_diff","arr1","retArr","argl","arguments","length","k1","i","k","arr","arr1keys"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,IAApB,EAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAMC,OAAOC,UAAUC,MAAvB;AACA,MAAIC,KAAK,EAAT;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,EAAR;AACA,MAAIC,MAAM,EAAV;;AAEAC,YAAU,KAAKJ,EAAL,IAAWL,IAAX,EAAiB;AACzB,SAAKM,IAAI,CAAT,EAAYA,IAAIJ,IAAhB,EAAsBI,GAAtB,EAA2B;AACzBE,YAAML,UAAUG,CAAV,CAAN;AACA,WAAKC,CAAL,IAAUC,GAAV,EAAe;AACb,YAAIA,IAAID,CAAJ,MAAWP,KAAKK,EAAL,CAAf,EAAyB;AACvB;AACA,mBAASI,QAAT,CAFuB,CAEL;AACnB;AACF;AACDR,aAAOI,EAAP,IAAaL,KAAKK,EAAL,CAAb;AACD;AACF;;AAED,SAAOJ,MAAP;AACD,CA7BD","file":"array_diff.js","sourcesContent":["module.exports = function array_diff(arr1) {\n // discuss at: https://locutus.io/php/array_diff/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Sanjoy Roy\n // revised by: Brett Zamir (https://brett-zamir.me)\n // example 1: array_diff(['Kevin', 'van', 'Zonneveld'], ['van', 'Zonneveld'])\n // returns 1: {0:'Kevin'}\n\n const retArr = {}\n const argl = arguments.length\n let k1 = ''\n let i = 1\n let k = ''\n let arr = {}\n\n arr1keys: for (k1 in arr1) {\n for (i = 1; i < argl; i++) {\n arr = arguments[i]\n for (k in arr) {\n if (arr[k] === arr1[k1]) {\n // If it reaches here, it was found in at least one array, so try next value\n continue arr1keys // eslint-disable-line no-labels\n }\n }\n retArr[k1] = arr1[k1]\n }\n }\n\n return retArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_diff_assoc.js"],"names":["module","exports","array_diff_assoc","arr1","retArr","argl","arguments","length","k1","i","k","arr","arr1keys"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,gBAAT,CAA0BC,IAA1B,EAAgC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAMC,OAAOC,UAAUC,MAAvB;AACA,MAAIC,KAAK,EAAT;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,EAAR;AACA,MAAIC,MAAM,EAAV;;AAEAC,YAAU,KAAKJ,EAAL,IAAWL,IAAX,EAAiB;AACzB,SAAKM,IAAI,CAAT,EAAYA,IAAIJ,IAAhB,EAAsBI,GAAtB,EAA2B;AACzBE,YAAML,UAAUG,CAAV,CAAN;AACA,WAAKC,CAAL,IAAUC,GAAV,EAAe;AACb,YAAIA,IAAID,CAAJ,MAAWP,KAAKK,EAAL,CAAX,IAAuBE,MAAMF,EAAjC,EAAqC;AACnC;AACA,mBAASI,QAAT,CAFmC,CAEjB;AACnB;AACF;AACDR,aAAOI,EAAP,IAAaL,KAAKK,EAAL,CAAb;AACD;AACF;;AAED,SAAOJ,MAAP;AACD,CA7BD","file":"array_diff_assoc.js","sourcesContent":["module.exports = function array_diff_assoc(arr1) {\n // discuss at: https://locutus.io/php/array_diff_assoc/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // bugfixed by: 0m3r\n // revised by: Brett Zamir (https://brett-zamir.me)\n // example 1: array_diff_assoc({0: 'Kevin', 1: 'van', 2: 'Zonneveld'}, {0: 'Kevin', 4: 'van', 5: 'Zonneveld'})\n // returns 1: {1: 'van', 2: 'Zonneveld'}\n\n const retArr = {}\n const argl = arguments.length\n let k1 = ''\n let i = 1\n let k = ''\n let arr = {}\n\n arr1keys: for (k1 in arr1) {\n for (i = 1; i < argl; i++) {\n arr = arguments[i]\n for (k in arr) {\n if (arr[k] === arr1[k1] && k === k1) {\n // If it reaches here, it was found in at least one array, so try next value\n continue arr1keys // eslint-disable-line no-labels\n }\n }\n retArr[k1] = arr1[k1]\n }\n }\n\n return retArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_diff_key.js"],"names":["module","exports","array_diff_key","arr1","argl","arguments","length","retArr","k1","i","k","arr","arr1keys"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,cAAT,CAAwBC,IAAxB,EAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,OAAOC,UAAUC,MAAvB;AACA,MAAMC,SAAS,EAAf;AACA,MAAIC,KAAK,EAAT;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,EAAR;AACA,MAAIC,MAAM,EAAV;;AAEAC,YAAU,KAAKJ,EAAL,IAAWL,IAAX,EAAiB;AACzB,SAAKM,IAAI,CAAT,EAAYA,IAAIL,IAAhB,EAAsBK,GAAtB,EAA2B;AACzBE,YAAMN,UAAUI,CAAV,CAAN;AACA,WAAKC,CAAL,IAAUC,GAAV,EAAe;AACb,YAAID,MAAMF,EAAV,EAAc;AACZ;AACA,mBAASI,QAAT,CAFY,CAEM;AACnB;AACF;AACDL,aAAOC,EAAP,IAAaL,KAAKK,EAAL,CAAb;AACD;AACF;;AAED,SAAOD,MAAP;AACD,CA/BD","file":"array_diff_key.js","sourcesContent":["module.exports = function array_diff_key(arr1) {\n // discuss at: https://locutus.io/php/array_diff_key/\n // original by: Ates Goral (https://magnetiq.com)\n // revised by: Brett Zamir (https://brett-zamir.me)\n // input by: Everlasto\n // example 1: array_diff_key({red: 1, green: 2, blue: 3, white: 4}, {red: 5})\n // returns 1: {\"green\":2, \"blue\":3, \"white\":4}\n // example 2: array_diff_key({red: 1, green: 2, blue: 3, white: 4}, {red: 5}, {red: 5})\n // returns 2: {\"green\":2, \"blue\":3, \"white\":4}\n\n const argl = arguments.length\n const retArr = {}\n let k1 = ''\n let i = 1\n let k = ''\n let arr = {}\n\n arr1keys: for (k1 in arr1) {\n for (i = 1; i < argl; i++) {\n arr = arguments[i]\n for (k in arr) {\n if (k === k1) {\n // If it reaches here, it was found in at least one array, so try next value\n continue arr1keys // eslint-disable-line no-labels\n }\n }\n retArr[k1] = arr1[k1]\n }\n }\n\n return retArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_diff_uassoc.js"],"names":["module","exports","array_diff_uassoc","arr1","retArr","arglm1","arguments","length","cb","arr","i","k1","k","$global","window","global","Object","prototype","toString","call","arr1keys"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,iBAAT,CAA2BC,IAA3B,EAAiC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAMC,SAASC,UAAUC,MAAV,GAAmB,CAAlC;AACA,MAAIC,KAAKF,UAAUD,MAAV,CAAT;AACA,MAAII,MAAM,EAAV;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,KAAK,EAAT;AACA,MAAIC,IAAI,EAAR;;AAEA,MAAMC,UAAU,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCC,MAAzD;;AAEAP,OACE,OAAOA,EAAP,KAAc,QAAd,GACIK,QAAQL,EAAR,CADJ,GAEIQ,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BX,EAA/B,MAAuC,gBAAvC,GACEK,QAAQL,GAAG,CAAH,CAAR,EAAeA,GAAG,CAAH,CAAf,CADF,GAEEA,EALR;;AAOAY,YAAU,KAAKT,EAAL,IAAWR,IAAX,EAAiB;AACzB,SAAKO,IAAI,CAAT,EAAYA,IAAIL,MAAhB,EAAwBK,GAAxB,EAA6B;AAC3BD,YAAMH,UAAUI,CAAV,CAAN;AACA,WAAKE,CAAL,IAAUH,GAAV,EAAe;AACb,YAAIA,IAAIG,CAAJ,MAAWT,KAAKQ,EAAL,CAAX,IAAuBH,GAAGI,CAAH,EAAMD,EAAN,MAAc,CAAzC,EAA4C;AAC1C;AACA,mBAASS,QAAT,CAF0C,CAExB;AACnB;AACF;AACDhB,aAAOO,EAAP,IAAaR,KAAKQ,EAAL,CAAb;AACD;AACF;;AAED,SAAOP,MAAP;AACD,CAxCD","file":"array_diff_uassoc.js","sourcesContent":["module.exports = function array_diff_uassoc(arr1) {\n // discuss at: https://locutus.io/php/array_diff_uassoc/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: var $array1 = {a: 'green', b: 'brown', c: 'blue', 0: 'red'}\n // example 1: var $array2 = {a: 'GREEN', B: 'brown', 0: 'yellow', 1: 'red'}\n // example 1: array_diff_uassoc($array1, $array2, function (key1, key2) { return (key1 === key2 ? 0 : (key1 > key2 ? 1 : -1)) })\n // returns 1: {b: 'brown', c: 'blue', 0: 'red'}\n // test: skip-1\n\n const retArr = {}\n const arglm1 = arguments.length - 1\n let cb = arguments[arglm1]\n let arr = {}\n let i = 1\n let k1 = ''\n let k = ''\n\n const $global = typeof window !== 'undefined' ? window : global\n\n cb =\n typeof cb === 'string'\n ? $global[cb]\n : Object.prototype.toString.call(cb) === '[object Array]'\n ? $global[cb[0]][cb[1]]\n : cb\n\n arr1keys: for (k1 in arr1) {\n for (i = 1; i < arglm1; i++) {\n arr = arguments[i]\n for (k in arr) {\n if (arr[k] === arr1[k1] && cb(k, k1) === 0) {\n // If it reaches here, it was found in at least one array, so try next value\n continue arr1keys // eslint-disable-line no-labels\n }\n }\n retArr[k1] = arr1[k1]\n }\n }\n\n return retArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_diff_ukey.js"],"names":["module","exports","array_diff_ukey","arr1","retArr","arglm1","arguments","length","cb","k1","i","arr","k","$global","window","global","Object","prototype","toString","call","arr1keys"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAAyBC,IAAzB,EAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAMC,SAASC,UAAUC,MAAV,GAAmB,CAAlC;AACA;AACA,MAAIC,KAAKF,UAAUD,MAAV,CAAT;AACA,MAAII,KAAK,EAAT;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,MAAM,EAAV;AACA,MAAIC,IAAI,EAAR;;AAEA,MAAMC,UAAU,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCC,MAAzD;;AAEAP,OACE,OAAOA,EAAP,KAAc,QAAd,GACIK,QAAQL,EAAR,CADJ,GAEIQ,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BX,EAA/B,MAAuC,gBAAvC,GACEK,QAAQL,GAAG,CAAH,CAAR,EAAeA,GAAG,CAAH,CAAf,CADF,GAEEA,EALR;;AAOAY,YAAU,KAAKX,EAAL,IAAWN,IAAX,EAAiB;AACzB,SAAKO,IAAI,CAAT,EAAYA,IAAIL,MAAhB,EAAwBK,GAAxB,EAA6B;AAC3BC,YAAML,UAAUI,CAAV,CAAN;AACA,WAAKE,CAAL,IAAUD,GAAV,EAAe;AACb,YAAIH,GAAGI,CAAH,EAAMH,EAAN,MAAc,CAAlB,EAAqB;AACnB;AACA,mBAASW,QAAT,CAFmB,CAED;AACnB;AACF;AACDhB,aAAOK,EAAP,IAAaN,KAAKM,EAAL,CAAb;AACD;AACF;;AAED,SAAOL,MAAP;AACD,CAxCD","file":"array_diff_ukey.js","sourcesContent":["module.exports = function array_diff_ukey(arr1) {\n // discuss at: https://locutus.io/php/array_diff_ukey/\n // original by: Brett Zamir (https://brett-zamir.me)\n // example 1: var $array1 = {blue: 1, red: 2, green: 3, purple: 4}\n // example 1: var $array2 = {green: 5, blue: 6, yellow: 7, cyan: 8}\n // example 1: array_diff_ukey($array1, $array2, function (key1, key2){ return (key1 === key2 ? 0 : (key1 > key2 ? 1 : -1)); })\n // returns 1: {red: 2, purple: 4}\n\n const retArr = {}\n const arglm1 = arguments.length - 1\n // var arglm2 = arglm1 - 1\n let cb = arguments[arglm1]\n let k1 = ''\n let i = 1\n let arr = {}\n let k = ''\n\n const $global = typeof window !== 'undefined' ? window : global\n\n cb =\n typeof cb === 'string'\n ? $global[cb]\n : Object.prototype.toString.call(cb) === '[object Array]'\n ? $global[cb[0]][cb[1]]\n : cb\n\n arr1keys: for (k1 in arr1) {\n for (i = 1; i < arglm1; i++) {\n arr = arguments[i]\n for (k in arr) {\n if (cb(k, k1) === 0) {\n // If it reaches here, it was found in at least one array, so try next value\n continue arr1keys // eslint-disable-line no-labels\n }\n }\n retArr[k1] = arr1[k1]\n }\n }\n\n return retArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_fill.js"],"names":["module","exports","array_fill","startIndex","num","mixedVal","key","tmpArr","isNaN"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,UAApB,EAAgCC,GAAhC,EAAqCC,QAArC,EAA+C;AAC9D;AACA;AACA;AACA;AACA;;AAEA,MAAIC,YAAJ;AACA,MAAMC,SAAS,EAAf;;AAEA,MAAI,CAACC,MAAML,UAAN,CAAD,IAAsB,CAACK,MAAMJ,GAAN,CAA3B,EAAuC;AACrC,SAAKE,MAAM,CAAX,EAAcA,MAAMF,GAApB,EAAyBE,KAAzB,EAAgC;AAC9BC,aAAOD,MAAMH,UAAb,IAA2BE,QAA3B;AACD;AACF;;AAED,SAAOE,MAAP;AACD,CAjBD","file":"array_fill.js","sourcesContent":["module.exports = function array_fill(startIndex, num, mixedVal) {\n // discuss at: https://locutus.io/php/array_fill/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Waldo Malqui Silva (https://waldo.malqui.info)\n // example 1: array_fill(5, 6, 'banana')\n // returns 1: { 5: 'banana', 6: 'banana', 7: 'banana', 8: 'banana', 9: 'banana', 10: 'banana' }\n\n let key\n const tmpArr = {}\n\n if (!isNaN(startIndex) && !isNaN(num)) {\n for (key = 0; key < num; key++) {\n tmpArr[key + startIndex] = mixedVal\n }\n }\n\n return tmpArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_fill_keys.js"],"names":["module","exports","array_fill_keys","keys","value","retObj","key"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAAyBC,IAAzB,EAA+BC,KAA/B,EAAsC;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAIC,MAAM,EAAV;;AAEA,OAAKA,GAAL,IAAYH,IAAZ,EAAkB;AAChBE,WAAOF,KAAKG,GAAL,CAAP,IAAoBF,KAApB;AACD;;AAED,SAAOC,MAAP;AACD,CAhBD","file":"array_fill_keys.js","sourcesContent":["module.exports = function array_fill_keys(keys, value) {\n // discuss at: https://locutus.io/php/array_fill_keys/\n // original by: Brett Zamir (https://brett-zamir.me)\n // bugfixed by: Brett Zamir (https://brett-zamir.me)\n // example 1: var $keys = {'a': 'foo', 2: 5, 3: 10, 4: 'bar'}\n // example 1: array_fill_keys($keys, 'banana')\n // returns 1: {\"foo\": \"banana\", 5: \"banana\", 10: \"banana\", \"bar\": \"banana\"}\n\n const retObj = {}\n let key = ''\n\n for (key in keys) {\n retObj[keys[key]] = value\n }\n\n return retObj\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_filter.js"],"names":["module","exports","array_filter","arr","func","retObj","k","v","Object","prototype","toString","call"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,YAAT,CAAsBC,GAAtB,EAA2BC,IAA3B,EAAiC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,SAAS,EAAb;AACA,MAAIC,UAAJ;;AAEAF,SACEA,QACA,UAAUG,CAAV,EAAa;AACX,WAAOA,CAAP;AACD,GAJH;;AAMA;AACA,MAAIC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BR,GAA/B,MAAwC,gBAA5C,EAA8D;AAC5DE,aAAS,EAAT;AACD;;AAED,OAAKC,CAAL,IAAUH,GAAV,EAAe;AACb,QAAIC,KAAKD,IAAIG,CAAJ,CAAL,CAAJ,EAAkB;AAChBD,aAAOC,CAAP,IAAYH,IAAIG,CAAJ,CAAZ;AACD;AACF;;AAED,SAAOD,MAAP;AACD,CApCD","file":"array_filter.js","sourcesContent":["module.exports = function array_filter(arr, func) {\n // discuss at: https://locutus.io/php/array_filter/\n // original by: Brett Zamir (https://brett-zamir.me)\n // input by: max4ever\n // improved by: Brett Zamir (https://brett-zamir.me)\n // note 1: Takes a function as an argument, not a function's name\n // example 1: var odd = function (num) {return (num & 1);}\n // example 1: array_filter({\"a\": 1, \"b\": 2, \"c\": 3, \"d\": 4, \"e\": 5}, odd)\n // returns 1: {\"a\": 1, \"c\": 3, \"e\": 5}\n // example 2: var even = function (num) {return (!(num & 1));}\n // example 2: array_filter([6, 7, 8, 9, 10, 11, 12], even)\n // returns 2: [ 6, , 8, , 10, , 12 ]\n // example 3: array_filter({\"a\": 1, \"b\": false, \"c\": -1, \"d\": 0, \"e\": null, \"f\":'', \"g\":undefined})\n // returns 3: {\"a\":1, \"c\":-1}\n\n let retObj = {}\n let k\n\n func =\n func ||\n function (v) {\n return v\n }\n\n // @todo: Issue #73\n if (Object.prototype.toString.call(arr) === '[object Array]') {\n retObj = []\n }\n\n for (k in arr) {\n if (func(arr[k])) {\n retObj[k] = arr[k]\n }\n }\n\n return retObj\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_flip.js"],"names":["module","exports","array_flip","trans","key","tmpArr","hasOwnProperty"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAoBC,KAApB,EAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,YAAJ;AACA,MAAMC,SAAS,EAAf;;AAEA,OAAKD,GAAL,IAAYD,KAAZ,EAAmB;AACjB,QAAI,CAACA,MAAMG,cAAN,CAAqBF,GAArB,CAAL,EAAgC;AAC9B;AACD;AACDC,WAAOF,MAAMC,GAAN,CAAP,IAAqBA,GAArB;AACD;;AAED,SAAOC,MAAP;AACD,CAnBD","file":"array_flip.js","sourcesContent":["module.exports = function array_flip(trans) {\n // discuss at: https://locutus.io/php/array_flip/\n // original by: Kevin van Zonneveld (https://kvz.io)\n // improved by: Pier Paolo Ramon (https://www.mastersoup.com/)\n // improved by: Brett Zamir (https://brett-zamir.me)\n // example 1: array_flip( {a: 1, b: 1, c: 2} )\n // returns 1: {1: 'b', 2: 'c'}\n\n let key\n const tmpArr = {}\n\n for (key in trans) {\n if (!trans.hasOwnProperty(key)) {\n continue\n }\n tmpArr[trans[key]] = key\n }\n\n return tmpArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_intersect.js"],"names":["module","exports","array_intersect","arr1","retArr","argl","arguments","length","arglm1","k1","arr","i","k","arr1keys","arrs"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAAyBC,IAAzB,EAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAMC,OAAOC,UAAUC,MAAvB;AACA,MAAMC,SAASH,OAAO,CAAtB;AACA,MAAII,KAAK,EAAT;AACA,MAAIC,MAAM,EAAV;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,EAAR;;AAEAC,YAAU,KAAKJ,EAAL,IAAWN,IAAX,EAAiB;AACzBW,UAAM,KAAKH,IAAI,CAAT,EAAYA,IAAIN,IAAhB,EAAsBM,GAAtB,EAA2B;AAC/BD,YAAMJ,UAAUK,CAAV,CAAN;AACA,WAAKC,CAAL,IAAUF,GAAV,EAAe;AACb,YAAIA,IAAIE,CAAJ,MAAWT,KAAKM,EAAL,CAAf,EAAyB;AACvB,cAAIE,MAAMH,MAAV,EAAkB;AAChBJ,mBAAOK,EAAP,IAAaN,KAAKM,EAAL,CAAb;AACD;AACD;AACA;AACA,mBAASK,IAAT,CANuB,CAMT;AACf;AACF;AACD;AACA,eAASD,QAAT,CAb+B,CAab;AACnB;AACF;;AAED,SAAOT,MAAP;AACD,CAtCD","file":"array_intersect.js","sourcesContent":["module.exports = function array_intersect(arr1) {\n // discuss at: https://locutus.io/php/array_intersect/\n // original by: Brett Zamir (https://brett-zamir.me)\n // note 1: These only output associative arrays (would need to be\n // note 1: all numeric and counting from zero to be numeric)\n // example 1: var $array1 = {'a' : 'green', 0:'red', 1: 'blue'}\n // example 1: var $array2 = {'b' : 'green', 0:'yellow', 1:'red'}\n // example 1: var $array3 = ['green', 'red']\n // example 1: var $result = array_intersect($array1, $array2, $array3)\n // returns 1: {0: 'red', a: 'green'}\n\n const retArr = {}\n const argl = arguments.length\n const arglm1 = argl - 1\n let k1 = ''\n let arr = {}\n let i = 0\n let k = ''\n\n arr1keys: for (k1 in arr1) {\n arrs: for (i = 1; i < argl; i++) {\n arr = arguments[i]\n for (k in arr) {\n if (arr[k] === arr1[k1]) {\n if (i === arglm1) {\n retArr[k1] = arr1[k1]\n }\n // If the innermost loop always leads at least once to an equal value,\n // continue the loop until done\n continue arrs // eslint-disable-line no-labels\n }\n }\n // If it reaches here, it wasn't found in at least one array, so try next value\n continue arr1keys // eslint-disable-line no-labels\n }\n }\n\n return retArr\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/php/array/array_intersect_assoc.js"],"names":["module","exports","array_intersect_assoc","arr1","retArr","argl","arguments","length","arglm1","k1","arr","i","k","arr1keys","arrs"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,qBAAT,CAA+BC,IAA/B,EAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,SAAS,EAAf;AACA,MAAMC,OAAOC,UAAUC,MAAvB;AACA,MAAMC,SAASH,OAAO,CAAtB;AACA,MAAII,KAAK,EAAT;AACA,MAAIC,MAAM,EAAV;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,EAAR;;AAEAC,YAAU,KAAKJ,EAAL,IAAWN,IAAX,EAAiB;AACzBW,UAAM,KAAKH,IAAI,CAAT,EAAYA,IAAIN,IAAhB,EAAsBM,GAAtB,EAA2B;AAC/BD,YAAMJ,UAAUK,CAAV,CAAN;AACA,WAAKC,CAAL,IAAUF,GAAV,EAAe;AACb,YAAIA,IAAIE,CAAJ,MAAWT,KAAKM,EAAL,CAAX,IAAuBG,MAAMH,EAAjC,EAAqC;AACnC,cAAIE,MAAMH,MAAV,EAAkB;AAChBJ,mBAAOK,EAAP,IAAaN,KAAKM,EAAL,CAAb;AACD;AACD;AACA;AACA,mBAASK,IAAT,CANmC,CAMrB;AACf;AACF;AACD;AACA,eAASD,QAAT,CAb+B,CAab;AACnB;AACF;;AAED,SAAOT,MAAP;AACD,CArCD","file":"array_intersect_assoc.js","sourcesContent":["module.exports = function array_intersect_assoc(arr1) {\n // discuss at: https://locutus.io/php/array_intersect_assoc/\n // original by: Brett Zamir (https://brett-zamir.me)\n // note 1: These only output associative arrays (would need to be\n // note 1: all numeric and counting from zero to be numeric)\n // example 1: var $array1 = {a: 'green', b: 'brown', c: 'blue', 0: 'red'}\n // example 1: var $array2 = {a: 'green', 0: 'yellow', 1: 'red'}\n // example 1: array_intersect_assoc($array1, $array2)\n // returns 1: {a: 'green'}\n\n const retArr = {}\n const argl = arguments.length\n const arglm1 = argl - 1\n let k1 = ''\n let arr = {}\n let i = 0\n let k = ''\n\n arr1keys: for (k1 in arr1) {\n arrs: for (i = 1; i < argl; i++) {\n arr = arguments[i]\n for (k in arr) {\n if (arr[k] === arr1[k1] && k === k1) {\n if (i === arglm1) {\n retArr[k1] = arr1[k1]\n }\n // If the innermost loop always leads at least once to an equal value,\n // continue the loop until done\n continue arrs // eslint-disable-line no-labels\n }\n }\n // If it reaches here, it wasn't found in at least one array, so try next value\n continue arr1keys // eslint-disable-line no-labels\n }\n }\n\n return retArr\n}\n"]}
|