/*===========================================================================*/
/*   (Unsafe/bignumber.scm)                                                  */
/*   Bigloo (4.5b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Fri Dec 22 05:17:06 PM CET 2023     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/bigloo/bin/bigloo -ldopt -L/home/serrano/prgm/project/bigloo/bigloo/libbacktrace/home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b  -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -rm -copt -w -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Unsafe/bignumber.scm -indent -o objs/obj_u/Unsafe/bignumber.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

/* User header */
#if( BGL_HAVE_GMP == 0 )
#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___BIGNUM_TYPE_DEFINITIONS
#define BGL___BIGNUM_TYPE_DEFINITIONS
#endif													// BGL___BIGNUM_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	BGL_EXPORTED_DECL obj_t bgl_seed_rand(long);
	BGL_EXPORTED_DECL bool_t BXZERO(obj_t);
	extern obj_t BGl_u8vectorzd2ze3listz31zz__srfi4z00(obj_t);
	extern obj_t BGl_makezd2u8vectorzd2zz__srfi4z00(long, uint8_t);
	BGL_EXPORTED_DECL obj_t bgl_long_to_bignum(long);
	static obj_t BGl_fixnumzd2listzd2ze3bignumze3zz__bignumz00(obj_t, long);
	static obj_t BGl_z62z42z42bitlshbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	extern long BGl_modulofxz00zz__r4_numbers_6_5_fixnumz00(long, long);
	static obj_t BGl_z62z42z42divrembxz62zz__bignumz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62z42z42stringzd2ze3bignumz53zz__bignumz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62z42z42bitmaskbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_neg(obj_t);
	static obj_t BGl_z62z42z42remainderbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62z42z42negbxz62zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42stringzd2ze3integerzd2objz81zz__bignumz00(obj_t,
		obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_flonum_to_bignum(double);
	static obj_t BGl_bignumzd2ze3fixnumzd2listze3zz__bignumz00(obj_t, long);
	static obj_t BGl_requirezd2initializa7ationz75zz__bignumz00 = BUNSPEC;
	static obj_t BGl_z62z42z42za2bxzc0zz__bignumz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BXPOSITIVE(obj_t);
	extern obj_t BGl_makezd2u16vectorzd2zz__srfi4z00(long, uint16_t);
	static obj_t BGl_z62z42z42oddbxzf3z91zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42quotientbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	static int64_t BGl_bignumzd2minzd2int64zd2divzd2radixz00zz__bignumz00(void);
	BGL_EXPORTED_DECL obj_t bgl_bignum_to_string(obj_t, long);
	static obj_t BGl_z62z42z42randbxz62zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_not(obj_t);
	static obj_t BGl_bignumzd2sum2zd2zz__bignumz00(obj_t, obj_t, long, long);
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__bignumz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__threadz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	static obj_t BGl_z62z42z42bitorbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL long bgl_bignum_to_elong(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_sub(obj_t, obj_t);
	static obj_t BGl_z62z42z42bignumzd2ze3elongz53zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_bignumzd2exptzd2zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42zb2bxzd0zz__bignumz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_quotient(obj_t, obj_t);
	static obj_t BGl_z62z42z42exptbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	static obj_t BGl_toplevelzd2initzd2zz__bignumz00(void);
	static obj_t BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(long);
	static obj_t BGl_z62z42z42bitnotbxz62zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42bignumzd2ze3uint64z53zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42uint64zd2ze3bignumz53zz__bignumz00(obj_t, obj_t);
	static long BGl_bignumzd2integerzd2lengthz00zz__bignumz00(obj_t);
	static obj_t BGl_convertze70ze7zz__bignumz00(obj_t, obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zz__bignumz00(void);
	static obj_t BGl_makezd2randomzd2u8vectorz00zz__bignumz00(obj_t);
	static obj_t BGl_z62z42z42positivebxzf3z91zz__bignumz00(obj_t, obj_t);
	extern obj_t bgl_reverse(obj_t);
	extern obj_t BGl_assvz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zz__bignumz00(void);
	static long BGl_bignumzd2signzd2zz__bignumz00(obj_t);
	extern long bgl_bignum_to_long(obj_t);
	static obj_t BGl_importedzd2moduleszd2initz00zz__bignumz00(void);
	BGL_EXPORTED_DECL obj_t bgl_bignum_rsh(obj_t, long);
	static obj_t BGl_gczd2rootszd2initz00zz__bignumz00(void);
	static obj_t BGl_z62z42z42fixnumzd2ze3bignumz53zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zz__bignumz00(void);
	static obj_t BGl_bignumzd2signzd2setz12z12zz__bignumz00(obj_t, int);
	BGL_EXPORTED_DECL obj_t bgl_bignum_xor(obj_t, obj_t);
	extern obj_t BGl_listzd2ze3stringz31zz__r4_strings_6_7z00(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_or(obj_t, obj_t);
	extern obj_t bgl_bignum_mul(obj_t, obj_t);
	static obj_t BGl_z62z42z42flonumzd2ze3bignumz53zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42zd2bxzb0zz__bignumz00(obj_t, obj_t, obj_t);
	extern obj_t BGl_memvz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	static obj_t BGl_bignumzd2shrinkzd2zz__bignumz00(obj_t, long);
	static obj_t BGl_z62z42z42seedzd2randzb0zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00(obj_t);
	BGL_EXPORTED_DECL int64_t bgl_bignum_to_int64(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_elong_to_bignum(long);
	BGL_EXPORTED_DECL long bgl_bignum_to_long(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_mask(obj_t, long);
	static obj_t BGl_z62z42z42bignumzd2ze3int64z53zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42elongzd2ze3bignumz53zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_gcd(obj_t, obj_t);
	static obj_t BGl_z62z42z42bignumzd2ze3stringz53zz__bignumz00(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62z42z42bitrshbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62z42z42gcdbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	static obj_t BGl_z62z42z42bitxorbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL double bgl_bignum_to_flonum(obj_t);
	extern obj_t BGl_moduloz00zz__r4_numbers_6_5_fixnumz00(obj_t, obj_t);
	static obj_t BGl_preallocatedzd2bignumszd2zz__bignumz00 = BUNSPEC;
	extern obj_t make_vector(long, obj_t);
	static obj_t BGl_bignumzd2subzd2nonnegz00zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_string_to_bignum(char *, int);
	BGL_EXPORTED_DECL obj_t bgl_bignum_and(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t BXNEGATIVE(obj_t);
	static obj_t BGl_methodzd2initzd2zz__bignumz00(void);
	extern obj_t bgl_make_bignum(obj_t);
	static obj_t BGl_z62z42z42evenbxzf3z91zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t bgl_bignum_odd(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_abs(obj_t);
	static bool_t BGl_z42zc3bxz81zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42absbxz62zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42za7erobxzf3z36zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_rand_bignum(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_llong_to_bignum(BGL_LONGLONG_T);
	static obj_t BGl_z62z42z42llongzd2ze3bignumz53zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_remainder(obj_t, obj_t);
	static obj_t BGl_z62z42z42bitandbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_string_to_integer_obj(char *, long);
	static obj_t BGl_bignumzd2addzd2nonnegz00zz__bignumz00(obj_t, obj_t);
	static long BGl_bignumzd2minzd2elongzd2divzd2radixz00zz__bignumz00(void);
	BGL_EXPORTED_DECL obj_t bgl_int64_to_bignum(int64_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_mul(obj_t, obj_t);
	static obj_t BGl_z62z42z42int64zd2ze3bignumz53zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_bignumzd2divzd2zz__bignumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42bignumzd2cmpzb0zz__bignumz00(obj_t, obj_t, obj_t);
	extern int64_t BGl_expts64z00zz__r4_numbers_6_5_fixnumz00(int64_t, int64_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_expt(obj_t, obj_t);
	extern obj_t bgl_long_to_bignum(long);
	BGL_EXPORTED_DECL obj_t bgl_bignum_lsh(obj_t, long);
	BGL_EXPORTED_DECL obj_t bgl_bignum_div(obj_t, obj_t);
	static obj_t BGl_list2519z00zz__bignumz00 = BUNSPEC;
	extern bool_t BGl_evenzf3zf3zz__r4_numbers_6_5_fixnumz00(obj_t);
	static obj_t BGl_bignumzd2za7eroz75zz__bignumz00 = BUNSPEC;
	extern long BGl_stringzd2ze3integerz31zz__r4_numbers_6_5_fixnumz00(obj_t,
		long, long);
	static long BGl_bignumzd2lengthzd2zz__bignumz00(obj_t);
	static obj_t BGl_z62z42z42bignumzd2ze3fixnumz53zz__bignumz00(obj_t, obj_t);
	extern obj_t BGl_quotientz00zz__r4_numbers_6_5_fixnumz00(obj_t, obj_t);
	static obj_t BGl_z62z42z42negativebxzf3z91zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_lcm(obj_t, obj_t);
	BGL_EXPORTED_DECL uint64_t bgl_bignum_to_uint64(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_uint64_to_bignum(uint64_t);
	static obj_t BGl_z62z42z42lcmbxz62zz__bignumz00(obj_t, obj_t, obj_t);
	static obj_t BGl_list2522z00zz__bignumz00 = BUNSPEC;
	static obj_t BGl_list2523z00zz__bignumz00 = BUNSPEC;
	static obj_t BGl_list2524z00zz__bignumz00 = BUNSPEC;
	static obj_t BGl_list2525z00zz__bignumz00 = BUNSPEC;
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	static obj_t BGl_list2526z00zz__bignumz00 = BUNSPEC;
	static obj_t BGl_list2527z00zz__bignumz00 = BUNSPEC;
	static obj_t BGl_z62z42z42bignumzd2ze3flonumz53zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_bignum_add(obj_t, obj_t);
	BGL_EXPORTED_DECL bool_t bgl_bignum_even(obj_t);
	static BGL_LONGLONG_T
		BGl_bignumzd2minzd2llongzd2divzd2radixz00zz__bignumz00(void);
	BGL_EXPORTED_DECL BGL_LONGLONG_T bgl_bignum_to_llong(obj_t);
	static obj_t BGl_z62z42z42bignumzd2ze3llongz53zz__bignumz00(obj_t, obj_t);
	BGL_EXPORTED_DECL int bgl_bignum_cmp(obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42bignumzd2ze3flonumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72553z00,
		BGl_z62z42z42bignumzd2ze3flonumz53zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42positivebxzf3zd2envz21zz__bignumz00,
		BgL_bgl_za762za742za742positiv2554za7,
		BGl_z62z42z42positivebxzf3z91zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42divrembxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742divremb2555za7,
		BGl_z62z42z42divrembxz62zz__bignumz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42bignumzd2ze3stringzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72556z00,
		BGl_z62z42z42bignumzd2ze3stringz53zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42zb2bxzd2envz60zz__bignumz00,
		BgL_bgl_za762za742za742za7b2bxza7d2557za7,
		BGl_z62z42z42zb2bxzd0zz__bignumz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42bignumzd2ze3llongzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72558z00,
		BGl_z62z42z42bignumzd2ze3llongz53zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42za7erobxzf3zd2envz86zz__bignumz00,
		BgL_bgl_za762za742za742za7a7erob2559z00,
		BGl_z62z42z42za7erobxzf3z36zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42int64zd2ze3bignumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742int64za7d2560z00,
		BGl_z62z42z42int64zd2ze3bignumz53zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42lcmbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742lcmbxza762561z00, BGl_z62z42z42lcmbxz62zz__bignumz00,
		0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2500z00zz__bignumz00,
		BgL_bgl_string2500za700za7za7_2562za7, "bignum", 6);
	      DEFINE_STRING(BGl_string2501z00zz__bignumz00,
		BgL_bgl_string2501za700za7za7_2563za7, "&$$negativebx?", 14);
	      DEFINE_STRING(BGl_string2502z00zz__bignumz00,
		BgL_bgl_string2502za700za7za7_2564za7, "&$$positivebx?", 14);
	      DEFINE_STRING(BGl_string2503z00zz__bignumz00,
		BgL_bgl_string2503za700za7za7_2565za7, "&$$evenbx?", 10);
	      DEFINE_STRING(BGl_string2504z00zz__bignumz00,
		BgL_bgl_string2504za700za7za7_2566za7, "&$$oddbx?", 9);
	      DEFINE_STRING(BGl_string2505z00zz__bignumz00,
		BgL_bgl_string2505za700za7za7_2567za7, "&$$bignum-cmp", 13);
	      DEFINE_STRING(BGl_string2506z00zz__bignumz00,
		BgL_bgl_string2506za700za7za7_2568za7, "&$$+bx", 6);
	      DEFINE_STRING(BGl_string2507z00zz__bignumz00,
		BgL_bgl_string2507za700za7za7_2569za7, "&$$-bx", 6);
	      DEFINE_STRING(BGl_string2508z00zz__bignumz00,
		BgL_bgl_string2508za700za7za7_2570za7, "&$$negbx", 8);
	      DEFINE_STRING(BGl_string2509z00zz__bignumz00,
		BgL_bgl_string2509za700za7za7_2571za7, "&$$*bx", 6);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42randbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742randbxza72572z00,
		BGl_z62z42z42randbxz62zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2510z00zz__bignumz00,
		BgL_bgl_string2510za700za7za7_2573za7, "&$$exptbx", 9);
	      DEFINE_STRING(BGl_string2511z00zz__bignumz00,
		BgL_bgl_string2511za700za7za7_2574za7, "/bx", 3);
	      DEFINE_STRING(BGl_string2512z00zz__bignumz00,
		BgL_bgl_string2512za700za7za7_2575za7, "divide by zero", 14);
	      DEFINE_STRING(BGl_string2513z00zz__bignumz00,
		BgL_bgl_string2513za700za7za7_2576za7, "&$$divrembx", 11);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42bignumzd2ze3fixnumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72577z00,
		BGl_z62z42z42bignumzd2ze3fixnumz53zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2514z00zz__bignumz00,
		BgL_bgl_string2514za700za7za7_2578za7, "&$$quotientbx", 13);
	      DEFINE_STRING(BGl_string2515z00zz__bignumz00,
		BgL_bgl_string2515za700za7za7_2579za7, "&$$remainderbx", 14);
	      DEFINE_STRING(BGl_string2516z00zz__bignumz00,
		BgL_bgl_string2516za700za7za7_2580za7, "&$$absbx", 8);
	      DEFINE_STRING(BGl_string2517z00zz__bignumz00,
		BgL_bgl_string2517za700za7za7_2581za7, "&$$gcdbx", 8);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42gcdbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742gcdbxza762582z00, BGl_z62z42z42gcdbxz62zz__bignumz00,
		0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2518z00zz__bignumz00,
		BgL_bgl_string2518za700za7za7_2583za7, "&$$lcmbx", 8);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42flonumzd2ze3bignumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742flonumza72584z00,
		BGl_z62z42z42flonumzd2ze3bignumz53zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2520z00zz__bignumz00,
		BgL_bgl_string2520za700za7za7_2585za7,
		"0123456789abcdefghijklmnopqrstuvwxyz", 36);
	      DEFINE_STRING(BGl_string2521z00zz__bignumz00,
		BgL_bgl_string2521za700za7za7_2586za7, "&$$bignum->string", 17);
	      DEFINE_STRING(BGl_string2528z00zz__bignumz00,
		BgL_bgl_string2528za700za7za7_2587za7, "&$$string->bignum", 17);
	      DEFINE_STRING(BGl_string2529z00zz__bignumz00,
		BgL_bgl_string2529za700za7za7_2588za7, "&$$bignum->fixnum", 17);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42exptbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742exptbxza72589z00,
		BGl_z62z42z42exptbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2530z00zz__bignumz00,
		BgL_bgl_string2530za700za7za7_2590za7, "&$$bignum->elong", 16);
	      DEFINE_STRING(BGl_string2531z00zz__bignumz00,
		BgL_bgl_string2531za700za7za7_2591za7, "&$$bignum->llong", 16);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42stringzd2ze3bignumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742stringza72592z00,
		BGl_z62z42z42stringzd2ze3bignumz53zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2532z00zz__bignumz00,
		BgL_bgl_string2532za700za7za7_2593za7, "&$$bignum->int64", 16);
	      DEFINE_STRING(BGl_string2533z00zz__bignumz00,
		BgL_bgl_string2533za700za7za7_2594za7, "&$$bignum->uint64", 17);
	      DEFINE_STRING(BGl_string2534z00zz__bignumz00,
		BgL_bgl_string2534za700za7za7_2595za7, "&$$seed-rand", 12);
	      DEFINE_STRING(BGl_string2535z00zz__bignumz00,
		BgL_bgl_string2535za700za7za7_2596za7, "&$$randbx", 9);
	      DEFINE_STRING(BGl_string2536z00zz__bignumz00,
		BgL_bgl_string2536za700za7za7_2597za7, "&$$flonum->bignum", 17);
	      DEFINE_STRING(BGl_string2537z00zz__bignumz00,
		BgL_bgl_string2537za700za7za7_2598za7, "real", 4);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bitnotbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742bitnotb2599za7,
		BGl_z62z42z42bitnotbxz62zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2538z00zz__bignumz00,
		BgL_bgl_string2538za700za7za7_2600za7, "&$$bignum->flonum", 17);
	      DEFINE_STRING(BGl_string2539z00zz__bignumz00,
		BgL_bgl_string2539za700za7za7_2601za7, "&$$bitlshbx", 11);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bitandbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742bitandb2602za7,
		BGl_z62z42z42bitandbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42negativebxzf3zd2envz21zz__bignumz00,
		BgL_bgl_za762za742za742negativ2603za7,
		BGl_z62z42z42negativebxzf3z91zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42bignumzd2ze3uint64zd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72604z00,
		BGl_z62z42z42bignumzd2ze3uint64z53zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42uint64zd2ze3bignumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742uint64za72605z00,
		BGl_z62z42z42uint64zd2ze3bignumz53zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42bignumzd2ze3elongzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72606z00,
		BGl_z62z42z42bignumzd2ze3elongz53zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2540z00zz__bignumz00,
		BgL_bgl_string2540za700za7za7_2607za7, "&$$bitrshbx", 11);
	      DEFINE_STRING(BGl_string2541z00zz__bignumz00,
		BgL_bgl_string2541za700za7za7_2608za7, "bitmaskbx", 9);
	      DEFINE_STRING(BGl_string2542z00zz__bignumz00,
		BgL_bgl_string2542za700za7za7_2609za7, "not implemented", 15);
	      DEFINE_STRING(BGl_string2543z00zz__bignumz00,
		BgL_bgl_string2543za700za7za7_2610za7, "&$$bitmaskbx", 12);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42evenbxzf3zd2envz21zz__bignumz00,
		BgL_bgl_za762za742za742evenbxza72611z00,
		BGl_z62z42z42evenbxzf3z91zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2544z00zz__bignumz00,
		BgL_bgl_string2544za700za7za7_2612za7, "bitorbx", 7);
	      DEFINE_STRING(BGl_string2545z00zz__bignumz00,
		BgL_bgl_string2545za700za7za7_2613za7, "&$$bitorbx", 10);
	      DEFINE_STRING(BGl_string2546z00zz__bignumz00,
		BgL_bgl_string2546za700za7za7_2614za7, "bitxorbx", 8);
	      DEFINE_STRING(BGl_string2547z00zz__bignumz00,
		BgL_bgl_string2547za700za7za7_2615za7, "&$$bitxorbx", 11);
	      DEFINE_STRING(BGl_string2548z00zz__bignumz00,
		BgL_bgl_string2548za700za7za7_2616za7, "bitandbx", 8);
	      DEFINE_STRING(BGl_string2549z00zz__bignumz00,
		BgL_bgl_string2549za700za7za7_2617za7, "&$$bitandbx", 11);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bignumzd2cmpzd2envz00zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72618z00,
		BGl_z62z42z42bignumzd2cmpzb0zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42absbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742absbxza762619z00, BGl_z62z42z42absbxz62zz__bignumz00,
		0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42oddbxzf3zd2envz21zz__bignumz00,
		BgL_bgl_za762za742za742oddbxza7f2620z00,
		BGl_z62z42z42oddbxzf3z91zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42seedzd2randzd2envz00zz__bignumz00,
		BgL_bgl_za762za742za742seedza7d22621z00,
		BGl_z62z42z42seedzd2randzb0zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2550z00zz__bignumz00,
		BgL_bgl_string2550za700za7za7_2622za7, "bitnotbx", 8);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bitmaskbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742bitmask2623za7,
		BGl_z62z42z42bitmaskbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2551z00zz__bignumz00,
		BgL_bgl_string2551za700za7za7_2624za7, "&$$bitnotbx", 11);
	      DEFINE_STRING(BGl_string2552z00zz__bignumz00,
		BgL_bgl_string2552za700za7za7_2625za7, "__bignum", 8);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42stringzd2ze3integerzd2objzd2envz31zz__bignumz00,
		BgL_bgl_za762za742za742stringza72626z00,
		BGl_z62z42z42stringzd2ze3integerzd2objz81zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42za2bxzd2envz70zz__bignumz00,
		BgL_bgl_za762za742za742za7a2bxza7c2627za7,
		BGl_z62z42z42za2bxzc0zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2486z00zz__bignumz00,
		BgL_bgl_string2486za700za7za7_2628za7,
		"/tmp/bigloo/runtime/Unsafe/bignumber.scm", 40);
	      DEFINE_STRING(BGl_string2487z00zz__bignumz00,
		BgL_bgl_string2487za700za7za7_2629za7, "&$$string->integer-obj", 22);
	      DEFINE_STRING(BGl_string2488z00zz__bignumz00,
		BgL_bgl_string2488za700za7za7_2630za7, "bstring", 7);
	      DEFINE_STRING(BGl_string2489z00zz__bignumz00,
		BgL_bgl_string2489za700za7za7_2631za7, "bint", 4);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bitlshbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742bitlshb2632za7,
		BGl_z62z42z42bitlshbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bitrshbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742bitrshb2633za7,
		BGl_z62z42z42bitrshbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2490z00zz__bignumz00,
		BgL_bgl_string2490za700za7za7_2634za7, "&$$elong->bignum", 16);
	      DEFINE_STRING(BGl_string2491z00zz__bignumz00,
		BgL_bgl_string2491za700za7za7_2635za7, "belong", 6);
	      DEFINE_STRING(BGl_string2492z00zz__bignumz00,
		BgL_bgl_string2492za700za7za7_2636za7, "&$$llong->bignum", 16);
	      DEFINE_STRING(BGl_string2493z00zz__bignumz00,
		BgL_bgl_string2493za700za7za7_2637za7, "bllong", 6);
	      DEFINE_STRING(BGl_string2494z00zz__bignumz00,
		BgL_bgl_string2494za700za7za7_2638za7, "&$$int64->bignum", 16);
	      DEFINE_STRING(BGl_string2495z00zz__bignumz00,
		BgL_bgl_string2495za700za7za7_2639za7, "bint64", 6);
	      DEFINE_STRING(BGl_string2496z00zz__bignumz00,
		BgL_bgl_string2496za700za7za7_2640za7, "&$$uint64->bignum", 17);
	      DEFINE_STRING(BGl_string2497z00zz__bignumz00,
		BgL_bgl_string2497za700za7za7_2641za7, "buint64", 7);
	      DEFINE_STRING(BGl_string2498z00zz__bignumz00,
		BgL_bgl_string2498za700za7za7_2642za7, "&$$fixnum->bignum", 17);
	      DEFINE_STRING(BGl_string2499z00zz__bignumz00,
		BgL_bgl_string2499za700za7za7_2643za7, "&$$zerobx?", 10);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bitxorbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742bitxorb2644za7,
		BGl_z62z42z42bitxorbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42bitorbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742bitorbx2645za7, BGl_z62z42z42bitorbxz62zz__bignumz00,
		0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42zd2bxzd2envz00zz__bignumz00,
		BgL_bgl_za762za742za742za7d2bxza7b2646za7,
		BGl_z62z42z42zd2bxzb0zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42quotientbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742quotien2647za7,
		BGl_z62z42z42quotientbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42bignumzd2ze3int64zd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742bignumza72648z00,
		BGl_z62z42z42bignumzd2ze3int64z53zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42elongzd2ze3bignumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742elongza7d2649z00,
		BGl_z62z42z42elongzd2ze3bignumz53zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42fixnumzd2ze3bignumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742fixnumza72650z00,
		BGl_z62z42z42fixnumzd2ze3bignumz53zz__bignumz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42z42llongzd2ze3bignumzd2envze3zz__bignumz00,
		BgL_bgl_za762za742za742llongza7d2651z00,
		BGl_z62z42z42llongzd2ze3bignumz53zz__bignumz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42remainderbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742remaind2652za7,
		BGl_z62z42z42remainderbxz62zz__bignumz00, 0L, BUNSPEC, 2);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_z42z42negbxzd2envzd2zz__bignumz00,
		BgL_bgl_za762za742za742negbxza762653z00, BGl_z62z42z42negbxz62zz__bignumz00,
		0L, BUNSPEC, 1);

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;
		     ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_preallocatedzd2bignumszd2zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_list2519z00zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_bignumzd2za7eroz75zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_list2522z00zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_list2523z00zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_list2524z00zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_list2525z00zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_list2526z00zz__bignumz00));
		     ADD_ROOT((void *) (&BGl_list2527z00zz__bignumz00));
#undef ADD_ROOT
		if   (roots_max > 0)
			     GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		     return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__bignumz00(long
		BgL_checksumz00_5711, char *BgL_fromz00_5712)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__bignumz00))
				{
					BGl_requirezd2initializa7ationz75zz__bignumz00 = BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zz__bignumz00();
					BGl_cnstzd2initzd2zz__bignumz00();
					BGl_importedzd2moduleszd2initz00zz__bignumz00();
					return BGl_toplevelzd2initzd2zz__bignumz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 45 */
			BGl_list2519z00zz__bignumz00 = MAKE_YOUNG_PAIR(BINT(0L), BNIL);
			BGl_list2522z00zz__bignumz00 =
				MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '+')),
				MAKE_YOUNG_PAIR(BCHAR(((unsigned char) '-')), BNIL));
			BGl_list2524z00zz__bignumz00 =
				MAKE_YOUNG_PAIR(BCHAR(((unsigned char) 'x')), BINT(16L));
			BGl_list2525z00zz__bignumz00 =
				MAKE_YOUNG_PAIR(BCHAR(((unsigned char) 'd')), BINT(10L));
			BGl_list2526z00zz__bignumz00 =
				MAKE_YOUNG_PAIR(BCHAR(((unsigned char) 'o')), BINT(8L));
			BGl_list2527z00zz__bignumz00 =
				MAKE_YOUNG_PAIR(BCHAR(((unsigned char) 'b')), BINT(2L));
			return (BGl_list2523z00zz__bignumz00 =
				MAKE_YOUNG_PAIR(BGl_list2524z00zz__bignumz00,
					MAKE_YOUNG_PAIR(BGl_list2525z00zz__bignumz00,
						MAKE_YOUNG_PAIR(BGl_list2526z00zz__bignumz00,
							MAKE_YOUNG_PAIR(BGl_list2527z00zz__bignumz00, BNIL)))), BUNSPEC);
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 45 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 45 */
			{	/* Unsafe/bignumber.scm 406 */
				obj_t BgL_vz00_1281;

				BgL_vz00_1281 = make_vector(33L, BFALSE);
				{
					long BgL_iz00_2784;
					long BgL_nz00_2785;

					BgL_iz00_2784 = 0L;
					BgL_nz00_2785 = -16L;
				BgL_loopz00_2783:
					if ((16L < BgL_nz00_2785))
						{	/* Unsafe/bignumber.scm 408 */
							BGl_preallocatedzd2bignumszd2zz__bignumz00 = BgL_vz00_1281;
						}
					else
						{	/* Unsafe/bignumber.scm 408 */
							VECTOR_SET(BgL_vz00_1281, BgL_iz00_2784,
								BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00
								(BgL_nz00_2785));
							{
								long BgL_nz00_5750;
								long BgL_iz00_5748;

								BgL_iz00_5748 = (BgL_iz00_2784 + 1L);
								BgL_nz00_5750 = (BgL_nz00_2785 + 1L);
								BgL_nz00_2785 = BgL_nz00_5750;
								BgL_iz00_2784 = BgL_iz00_5748;
								goto BgL_loopz00_2783;
							}
						}
				}
			}
			{	/* Unsafe/bignumber.scm 420 */
				obj_t BgL_res2336z00_2804;

				{	/* Unsafe/bignumber.scm 415 */
					bool_t BgL_test2656z00_5752;

					if ((0L < -16L))
						{	/* Unsafe/bignumber.scm 415 */
							BgL_test2656z00_5752 = ((bool_t) 1);
						}
					else
						{	/* Unsafe/bignumber.scm 415 */
							BgL_test2656z00_5752 = (16L < 0L);
						}
					if (BgL_test2656z00_5752)
						{	/* Unsafe/bignumber.scm 415 */
							BgL_res2336z00_2804 =
								BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(0L);
						}
					else
						{	/* Unsafe/bignumber.scm 415 */
							BgL_res2336z00_2804 =
								VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
								(0L + 16L));
						}
				}
				return (BGl_bignumzd2za7eroz75zz__bignumz00 =
					BgL_res2336z00_2804, BUNSPEC);
			}
		}

	}



/* $$string->integer-obj */
	BGL_EXPORTED_DEF obj_t bgl_string_to_integer_obj(char *BgL_strz00_3,
		long BgL_radixz00_4)
	{
		{	/* Unsafe/bignumber.scm 194 */
			{	/* Unsafe/bignumber.scm 195 */

				return
					BINT(BGl_stringzd2ze3integerz31zz__r4_numbers_6_5_fixnumz00
					(string_to_bstring(BgL_strz00_3), BgL_radixz00_4, 0L));
			}
		}

	}



/* &$$string->integer-obj */
	obj_t BGl_z62z42z42stringzd2ze3integerzd2objz81zz__bignumz00(obj_t
		BgL_envz00_5498, obj_t BgL_strz00_5499, obj_t BgL_radixz00_5500)
	{
		{	/* Unsafe/bignumber.scm 194 */
			{	/* Unsafe/bignumber.scm 195 */
				long BgL_auxz00_5771;
				char *BgL_auxz00_5762;

				{	/* Unsafe/bignumber.scm 195 */
					obj_t BgL_tmpz00_5772;

					if (INTEGERP(BgL_radixz00_5500))
						{	/* Unsafe/bignumber.scm 195 */
							BgL_tmpz00_5772 = BgL_radixz00_5500;
						}
					else
						{
							obj_t BgL_auxz00_5775;

							BgL_auxz00_5775 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(8257L), BGl_string2487z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_radixz00_5500);
							FAILURE(BgL_auxz00_5775, BFALSE, BFALSE);
						}
					BgL_auxz00_5771 = (long) CINT(BgL_tmpz00_5772);
				}
				{	/* Unsafe/bignumber.scm 195 */
					obj_t BgL_tmpz00_5763;

					if (STRINGP(BgL_strz00_5499))
						{	/* Unsafe/bignumber.scm 195 */
							BgL_tmpz00_5763 = BgL_strz00_5499;
						}
					else
						{
							obj_t BgL_auxz00_5766;

							BgL_auxz00_5766 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(8257L), BGl_string2487z00zz__bignumz00,
								BGl_string2488z00zz__bignumz00, BgL_strz00_5499);
							FAILURE(BgL_auxz00_5766, BFALSE, BFALSE);
						}
					BgL_auxz00_5762 = BSTRING_TO_STRING(BgL_tmpz00_5763);
				}
				return bgl_string_to_integer_obj(BgL_auxz00_5762, BgL_auxz00_5771);
			}
		}

	}



/* bignum-min-elong-div-radix */
	long BGl_bignumzd2minzd2elongzd2divzd2radixz00zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 236 */
			{	/* Unsafe/bignumber.scm 237 */
				long BgL_arg1204z00_1303;

				BgL_arg1204z00_1303 = (((long) -2) * ((long) (1L) << (int) (30L)));
				return (BgL_arg1204z00_1303 / ((long) 16384));
		}}

	}



/* bignum-min-llong-div-radix */
	BGL_LONGLONG_T BGl_bignumzd2minzd2llongzd2divzd2radixz00zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 243 */
			{	/* Unsafe/bignumber.scm 244 */
				BGL_LONGLONG_T BgL_arg1207z00_1306;

				BgL_arg1207z00_1306 =
					((-((BGL_LONGLONG_T) 2)) * (LONG_TO_LLONG(1L) << (int) (60L)));
				return (BgL_arg1207z00_1306 / ((BGL_LONGLONG_T) 32768));
			}
		}

	}



/* bignum-min-int64-div-radix */
	int64_t BGl_bignumzd2minzd2int64zd2divzd2radixz00zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 252 */
			{	/* Unsafe/bignumber.scm 253 */
				int64_t BgL_arg1211z00_1309;

				BgL_arg1211z00_1309 =
					((int64_t) (-2) *
					BGl_expts64z00zz__r4_numbers_6_5_fixnumz00((int64_t) (2),
						(int64_t) (60L)));
				return (BgL_arg1211z00_1309 / (int64_t) (32768));
			}
		}

	}



/* bignum-length */
	long BGl_bignumzd2lengthzd2zz__bignumz00(obj_t BgL_bnz00_6)
	{
		{	/* Unsafe/bignumber.scm 260 */
			{	/* Unsafe/bignumber.scm 261 */
				long BgL_arg1217z00_2838;

				{	/* Unsafe/bignumber.scm 261 */
					obj_t BgL_arg1218z00_2839;

					BgL_arg1218z00_2839 = BGL_BIGNUM_U16VECT(BgL_bnz00_6);
					BgL_arg1217z00_2838 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_2839);
				}
				{	/* Unsafe/bignumber.scm 261 */
					uint16_t BgL_xz00_2841;

					BgL_xz00_2841 = (uint16_t) (BgL_arg1217z00_2838);
					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg2284z00_2842;

						BgL_arg2284z00_2842 = (long) (BgL_xz00_2841);
						return (long) (BgL_arg2284z00_2842);
		}}}}

	}



/* bignum-sign */
	long BGl_bignumzd2signzd2zz__bignumz00(obj_t BgL_bnz00_7)
	{
		{	/* Unsafe/bignumber.scm 262 */
			{	/* Unsafe/bignumber.scm 263 */
				uint16_t BgL_arg1219z00_2844;

				{	/* Unsafe/bignumber.scm 263 */
					obj_t BgL_arg1220z00_2845;

					BgL_arg1220z00_2845 = BGL_BIGNUM_U16VECT(BgL_bnz00_7);
					BgL_arg1219z00_2844 = BGL_U16VREF(BgL_arg1220z00_2845, 0L);
				}
				{	/* Unsafe/bignumber.scm 263 */
					long BgL_arg2284z00_2847;

					BgL_arg2284z00_2847 = (long) (BgL_arg1219z00_2844);
					return (long) (BgL_arg2284z00_2847);
		}}}

	}



/* bignum-sign-set! */
	obj_t BGl_bignumzd2signzd2setz12z12zz__bignumz00(obj_t BgL_bnz00_8,
		int BgL_signz00_9)
	{
		{	/* Unsafe/bignumber.scm 264 */
			{	/* Unsafe/bignumber.scm 265 */
				obj_t BgL_arg1221z00_2849;
				uint16_t BgL_arg1222z00_2850;

				BgL_arg1221z00_2849 = BGL_BIGNUM_U16VECT(BgL_bnz00_8);
				{	/* Unsafe/bignumber.scm 265 */
					long BgL_tmpz00_5805;

					BgL_tmpz00_5805 = (long) (BgL_signz00_9);
					BgL_arg1222z00_2850 = (uint16_t) (BgL_tmpz00_5805);
				}
				BGL_U16VSET(BgL_arg1221z00_2849, 0L, BgL_arg1222z00_2850);
				return BUNSPEC;
			}
		}

	}



/* bignum-shrink */
	obj_t BGl_bignumzd2shrinkzd2zz__bignumz00(obj_t BgL_xz00_17,
		long BgL_lenz00_18)
	{
		{	/* Unsafe/bignumber.scm 278 */
			{	/* Unsafe/bignumber.scm 279 */
				obj_t BgL_yz00_1324;

				{	/* Unsafe/bignumber.scm 279 */
					int BgL_lenz00_2866;

					BgL_lenz00_2866 = (int) (BgL_lenz00_18);
					{	/* Unsafe/bignumber.scm 259 */
						obj_t BgL_arg1214z00_2867;

						{	/* Unsafe/bignumber.scm 259 */

							BgL_arg1214z00_2867 =
								BGl_makezd2u16vectorzd2zz__srfi4z00(
								(long) (BgL_lenz00_2866), (uint16_t) (0));
						}
						BgL_yz00_1324 = bgl_make_bignum(BgL_arg1214z00_2867);
				}}
				{	/* Unsafe/bignumber.scm 280 */
					long BgL_g1042z00_1325;

					BgL_g1042z00_1325 = (BgL_lenz00_18 - 1L);
					{
						long BgL_iz00_1327;

						BgL_iz00_1327 = BgL_g1042z00_1325;
					BgL_zc3z04anonymousza31227ze3z87_1328:
						if ((BgL_iz00_1327 < 0L))
							{	/* Unsafe/bignumber.scm 281 */
								return BgL_yz00_1324;
							}
						else
							{	/* Unsafe/bignumber.scm 281 */
								{	/* Unsafe/bignumber.scm 284 */
									long BgL_arg1232z00_1330;

									{	/* Unsafe/bignumber.scm 284 */
										int BgL_iz00_2873;

										BgL_iz00_2873 = (int) (BgL_iz00_1327);
										{	/* Unsafe/bignumber.scm 267 */
											uint16_t BgL_arg1223z00_2874;

											{	/* Unsafe/bignumber.scm 267 */
												obj_t BgL_arg1224z00_2875;

												BgL_arg1224z00_2875 = BGL_BIGNUM_U16VECT(BgL_xz00_17);
												{	/* Unsafe/bignumber.scm 267 */
													long BgL_tmpz00_5818;

													BgL_tmpz00_5818 = (long) (BgL_iz00_2873);
													BgL_arg1223z00_2874 =
														BGL_U16VREF(BgL_arg1224z00_2875, BgL_tmpz00_5818);
											}}
											{	/* Unsafe/bignumber.scm 267 */
												long BgL_arg2284z00_2877;

												BgL_arg2284z00_2877 = (long) (BgL_arg1223z00_2874);
												BgL_arg1232z00_1330 = (long) (BgL_arg2284z00_2877);
									}}}
									{	/* Unsafe/bignumber.scm 284 */
										int BgL_iz00_2880;
										int BgL_digitz00_2881;

										BgL_iz00_2880 = (int) (BgL_iz00_1327);
										BgL_digitz00_2881 = (int) (BgL_arg1232z00_1330);
										{	/* Unsafe/bignumber.scm 269 */
											obj_t BgL_arg1225z00_2882;
											uint16_t BgL_arg1226z00_2883;

											BgL_arg1225z00_2882 = BGL_BIGNUM_U16VECT(BgL_yz00_1324);
											{	/* Unsafe/bignumber.scm 269 */
												long BgL_tmpz00_5826;

												BgL_tmpz00_5826 = (long) (BgL_digitz00_2881);
												BgL_arg1226z00_2883 = (uint16_t) (BgL_tmpz00_5826);
											}
											{	/* Unsafe/bignumber.scm 269 */
												long BgL_tmpz00_5829;

												BgL_tmpz00_5829 = (long) (BgL_iz00_2880);
												BGL_U16VSET(BgL_arg1225z00_2882, BgL_tmpz00_5829,
													BgL_arg1226z00_2883);
											} BUNSPEC;
								}}}
								{
									long BgL_iz00_5832;

									BgL_iz00_5832 = (BgL_iz00_1327 - 1L);
									BgL_iz00_1327 = BgL_iz00_5832;
									goto BgL_zc3z04anonymousza31227ze3z87_1328;
								}
							}
					}
				}
			}
		}

	}



/* bignum-remove-leading-zeroes */
	obj_t BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00(obj_t
		BgL_xz00_19)
	{
		{	/* Unsafe/bignumber.scm 287 */
			{	/* Unsafe/bignumber.scm 288 */
				long BgL_signz00_1333;

				{	/* Unsafe/bignumber.scm 263 */
					uint16_t BgL_arg1219z00_2887;

					{	/* Unsafe/bignumber.scm 263 */
						obj_t BgL_arg1220z00_2888;

						BgL_arg1220z00_2888 = BGL_BIGNUM_U16VECT(BgL_xz00_19);
						BgL_arg1219z00_2887 = BGL_U16VREF(BgL_arg1220z00_2888, 0L);
					}
					{	/* Unsafe/bignumber.scm 263 */
						long BgL_arg2284z00_2890;

						BgL_arg2284z00_2890 = (long) (BgL_arg1219z00_2887);
						BgL_signz00_1333 = (long) (BgL_arg2284z00_2890);
				}}
				{	/* Unsafe/bignumber.scm 265 */
					obj_t BgL_arg1221z00_2894;
					uint16_t BgL_arg1222z00_2895;

					BgL_arg1221z00_2894 = BGL_BIGNUM_U16VECT(BgL_xz00_19);
					BgL_arg1222z00_2895 = (uint16_t) (1L);
					BGL_U16VSET(BgL_arg1221z00_2894, 0L, BgL_arg1222z00_2895);
					BUNSPEC;
				}
				{	/* Unsafe/bignumber.scm 290 */
					long BgL_g1043z00_1334;

					{	/* Unsafe/bignumber.scm 290 */
						long BgL_arg1250z00_1350;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_2897;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_2898;

								BgL_arg1218z00_2898 = BGL_BIGNUM_U16VECT(BgL_xz00_19);
								BgL_arg1217z00_2897 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_2898);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_2900;

								BgL_xz00_2900 = (uint16_t) (BgL_arg1217z00_2897);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_2901;

									BgL_arg2284z00_2901 = (long) (BgL_xz00_2900);
									BgL_arg1250z00_1350 = (long) (BgL_arg2284z00_2901);
						}}}
						BgL_g1043z00_1334 = (BgL_arg1250z00_1350 - 1L);
					}
					{
						long BgL_iz00_1336;

						BgL_iz00_1336 = BgL_g1043z00_1334;
					BgL_zc3z04anonymousza31234ze3z87_1337:
						{	/* Unsafe/bignumber.scm 291 */
							bool_t BgL_test2661z00_5847;

							{	/* Unsafe/bignumber.scm 291 */
								long BgL_arg1249z00_1348;

								{	/* Unsafe/bignumber.scm 291 */
									int BgL_iz00_2905;

									BgL_iz00_2905 = (int) (BgL_iz00_1336);
									{	/* Unsafe/bignumber.scm 267 */
										uint16_t BgL_arg1223z00_2906;

										{	/* Unsafe/bignumber.scm 267 */
											obj_t BgL_arg1224z00_2907;

											BgL_arg1224z00_2907 = BGL_BIGNUM_U16VECT(BgL_xz00_19);
											{	/* Unsafe/bignumber.scm 267 */
												long BgL_tmpz00_5850;

												BgL_tmpz00_5850 = (long) (BgL_iz00_2905);
												BgL_arg1223z00_2906 =
													BGL_U16VREF(BgL_arg1224z00_2907, BgL_tmpz00_5850);
										}}
										{	/* Unsafe/bignumber.scm 267 */
											long BgL_arg2284z00_2909;

											BgL_arg2284z00_2909 = (long) (BgL_arg1223z00_2906);
											BgL_arg1249z00_1348 = (long) (BgL_arg2284z00_2909);
								}}}
								BgL_test2661z00_5847 = (BgL_arg1249z00_1348 == 0L);
							}
							if (BgL_test2661z00_5847)
								{
									long BgL_iz00_5856;

									BgL_iz00_5856 = (BgL_iz00_1336 - 1L);
									BgL_iz00_1336 = BgL_iz00_5856;
									goto BgL_zc3z04anonymousza31234ze3z87_1337;
								}
							else
								{	/* Unsafe/bignumber.scm 291 */
									if ((BgL_iz00_1336 == 0L))
										{	/* Unsafe/bignumber.scm 293 */
											return BGl_bignumzd2za7eroz75zz__bignumz00;
										}
									else
										{	/* Unsafe/bignumber.scm 293 */
											{	/* Unsafe/bignumber.scm 296 */
												int BgL_signz00_2915;

												BgL_signz00_2915 = (int) (BgL_signz00_1333);
												{	/* Unsafe/bignumber.scm 265 */
													obj_t BgL_arg1221z00_2916;
													uint16_t BgL_arg1222z00_2917;

													BgL_arg1221z00_2916 = BGL_BIGNUM_U16VECT(BgL_xz00_19);
													{	/* Unsafe/bignumber.scm 265 */
														long BgL_tmpz00_5862;

														BgL_tmpz00_5862 = (long) (BgL_signz00_2915);
														BgL_arg1222z00_2917 = (uint16_t) (BgL_tmpz00_5862);
													}
													BGL_U16VSET(BgL_arg1221z00_2916, 0L,
														BgL_arg1222z00_2917);
													BUNSPEC;
											}}
											{	/* Unsafe/bignumber.scm 297 */
												bool_t BgL_test2663z00_5866;

												{	/* Unsafe/bignumber.scm 297 */
													long BgL_arg1247z00_1346;

													{	/* Unsafe/bignumber.scm 297 */
														long BgL_arg1248z00_1347;

														{	/* Unsafe/bignumber.scm 261 */
															long BgL_arg1217z00_2920;

															{	/* Unsafe/bignumber.scm 261 */
																obj_t BgL_arg1218z00_2921;

																BgL_arg1218z00_2921 =
																	BGL_BIGNUM_U16VECT(BgL_xz00_19);
																BgL_arg1217z00_2920 =
																	BGL_HVECTOR_LENGTH(BgL_arg1218z00_2921);
															}
															{	/* Unsafe/bignumber.scm 261 */
																uint16_t BgL_xz00_2923;

																BgL_xz00_2923 =
																	(uint16_t) (BgL_arg1217z00_2920);
																{	/* Unsafe/bignumber.scm 261 */
																	long BgL_arg2284z00_2924;

																	BgL_arg2284z00_2924 = (long) (BgL_xz00_2923);
																	BgL_arg1248z00_1347 =
																		(long) (BgL_arg2284z00_2924);
														}}}
														BgL_arg1247z00_1346 = (BgL_arg1248z00_1347 - 1L);
													}
													BgL_test2663z00_5866 =
														(BgL_iz00_1336 == BgL_arg1247z00_1346);
												}
												if (BgL_test2663z00_5866)
													{	/* Unsafe/bignumber.scm 297 */
														return BgL_xz00_19;
													}
												else
													{	/* Unsafe/bignumber.scm 297 */
														return
															BGl_bignumzd2shrinkzd2zz__bignumz00(BgL_xz00_19,
															(BgL_iz00_1336 + 1L));
													}
											}
										}
								}
						}
					}
				}
			}
		}

	}



/* $$fixnum->bignum-fresh */
	obj_t BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(long BgL_nz00_21)
	{
		{	/* Unsafe/bignumber.scm 305 */
			{	/* Unsafe/bignumber.scm 306 */
				long BgL_negzd2nzd2_1351;

				if ((BgL_nz00_21 < 0L))
					{	/* Unsafe/bignumber.scm 306 */
						BgL_negzd2nzd2_1351 = BgL_nz00_21;
					}
				else
					{	/* Unsafe/bignumber.scm 306 */
						BgL_negzd2nzd2_1351 = (0L - BgL_nz00_21);
					}
				{
					long BgL_nbzd2digitszd2_1353;
					long BgL_xz00_1354;

					BgL_nbzd2digitszd2_1353 = 0L;
					BgL_xz00_1354 = BgL_negzd2nzd2_1351;
				BgL_zc3z04anonymousza31251ze3z87_1355:
					if ((BgL_xz00_1354 == 0L))
						{	/* Unsafe/bignumber.scm 311 */
							obj_t BgL_rz00_1357;

							{	/* Unsafe/bignumber.scm 311 */
								long BgL_arg1276z00_1371;

								BgL_arg1276z00_1371 = (BgL_nbzd2digitszd2_1353 + 1L);
								{	/* Unsafe/bignumber.scm 311 */
									int BgL_lenz00_2934;

									BgL_lenz00_2934 = (int) (BgL_arg1276z00_1371);
									{	/* Unsafe/bignumber.scm 259 */
										obj_t BgL_arg1214z00_2935;

										{	/* Unsafe/bignumber.scm 259 */

											BgL_arg1214z00_2935 =
												BGl_makezd2u16vectorzd2zz__srfi4z00(
												(long) (BgL_lenz00_2934), (uint16_t) (0));
										}
										BgL_rz00_1357 = bgl_make_bignum(BgL_arg1214z00_2935);
							}}}
							if ((BgL_nz00_21 < 0L))
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_2941;
									uint16_t BgL_arg1222z00_2942;

									BgL_arg1221z00_2941 = BGL_BIGNUM_U16VECT(BgL_rz00_1357);
									BgL_arg1222z00_2942 = (uint16_t) (0L);
									BGL_U16VSET(BgL_arg1221z00_2941, 0L, BgL_arg1222z00_2942);
									BUNSPEC;
								}
							else
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_2945;
									uint16_t BgL_arg1222z00_2946;

									BgL_arg1221z00_2945 = BGL_BIGNUM_U16VECT(BgL_rz00_1357);
									BgL_arg1222z00_2946 = (uint16_t) (1L);
									BGL_U16VSET(BgL_arg1221z00_2945, 0L, BgL_arg1222z00_2946);
									BUNSPEC;
								}
							{
								long BgL_iz00_2972;
								long BgL_xz00_2973;

								BgL_iz00_2972 = 1L;
								BgL_xz00_2973 = BgL_negzd2nzd2_1351;
							BgL_loop2z00_2971:
								if ((BgL_xz00_2973 == 0L))
									{	/* Unsafe/bignumber.scm 316 */
										return BgL_rz00_1357;
									}
								else
									{	/* Unsafe/bignumber.scm 316 */
										{	/* Unsafe/bignumber.scm 321 */
											long BgL_arg1256z00_2976;

											{	/* Unsafe/bignumber.scm 321 */
												long BgL_arg1257z00_2977;

												{	/* Unsafe/bignumber.scm 321 */
													long BgL_n1z00_2979;
													long BgL_n2z00_2980;

													BgL_n1z00_2979 = BgL_xz00_2973;
													BgL_n2z00_2980 = 16384L;
													{	/* Unsafe/bignumber.scm 321 */
														bool_t BgL_test2668z00_5896;

														{	/* Unsafe/bignumber.scm 321 */
															long BgL_arg2181z00_2982;

															BgL_arg2181z00_2982 =
																(((BgL_n1z00_2979) | (BgL_n2z00_2980)) &
																-2147483648);
															BgL_test2668z00_5896 =
																(BgL_arg2181z00_2982 == 0L);
														}
														if (BgL_test2668z00_5896)
															{	/* Unsafe/bignumber.scm 321 */
																int32_t BgL_arg2178z00_2984;

																{	/* Unsafe/bignumber.scm 321 */
																	int32_t BgL_arg2179z00_2985;
																	int32_t BgL_arg2180z00_2986;

																	BgL_arg2179z00_2985 =
																		(int32_t) (BgL_n1z00_2979);
																	BgL_arg2180z00_2986 =
																		(int32_t) (BgL_n2z00_2980);
																	BgL_arg2178z00_2984 =
																		(BgL_arg2179z00_2985 % BgL_arg2180z00_2986);
																}
																{	/* Unsafe/bignumber.scm 321 */
																	long BgL_arg2283z00_2990;

																	BgL_arg2283z00_2990 =
																		(long) (BgL_arg2178z00_2984);
																	BgL_arg1257z00_2977 =
																		(long) (BgL_arg2283z00_2990);
															}}
														else
															{	/* Unsafe/bignumber.scm 321 */
																BgL_arg1257z00_2977 =
																	(BgL_n1z00_2979 % BgL_n2z00_2980);
															}
													}
												}
												BgL_arg1256z00_2976 = (0L - BgL_arg1257z00_2977);
											}
											{	/* Unsafe/bignumber.scm 318 */
												int BgL_iz00_2994;
												int BgL_digitz00_2995;

												BgL_iz00_2994 = (int) (BgL_iz00_2972);
												BgL_digitz00_2995 = (int) (BgL_arg1256z00_2976);
												{	/* Unsafe/bignumber.scm 269 */
													obj_t BgL_arg1225z00_2996;
													uint16_t BgL_arg1226z00_2997;

													BgL_arg1225z00_2996 =
														BGL_BIGNUM_U16VECT(BgL_rz00_1357);
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_5909;

														BgL_tmpz00_5909 = (long) (BgL_digitz00_2995);
														BgL_arg1226z00_2997 = (uint16_t) (BgL_tmpz00_5909);
													}
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_5912;

														BgL_tmpz00_5912 = (long) (BgL_iz00_2994);
														BGL_U16VSET(BgL_arg1225z00_2996, BgL_tmpz00_5912,
															BgL_arg1226z00_2997);
													} BUNSPEC;
										}}}
										{	/* Unsafe/bignumber.scm 322 */
											long BgL_arg1260z00_2999;
											long BgL_arg1265z00_3000;

											BgL_arg1260z00_2999 = (BgL_iz00_2972 + 1L);
											BgL_arg1265z00_3000 = (BgL_xz00_2973 / 16384L);
											{
												long BgL_xz00_5918;
												long BgL_iz00_5917;

												BgL_iz00_5917 = BgL_arg1260z00_2999;
												BgL_xz00_5918 = BgL_arg1265z00_3000;
												BgL_xz00_2973 = BgL_xz00_5918;
												BgL_iz00_2972 = BgL_iz00_5917;
												goto BgL_loop2z00_2971;
											}
										}
									}
							}
						}
					else
						{	/* Unsafe/bignumber.scm 310 */
							long BgL_arg1277z00_1372;
							long BgL_arg1279z00_1373;

							BgL_arg1277z00_1372 = (BgL_nbzd2digitszd2_1353 + 1L);
							BgL_arg1279z00_1373 = (BgL_xz00_1354 / 16384L);
							{
								long BgL_xz00_5922;
								long BgL_nbzd2digitszd2_5921;

								BgL_nbzd2digitszd2_5921 = BgL_arg1277z00_1372;
								BgL_xz00_5922 = BgL_arg1279z00_1373;
								BgL_xz00_1354 = BgL_xz00_5922;
								BgL_nbzd2digitszd2_1353 = BgL_nbzd2digitszd2_5921;
								goto BgL_zc3z04anonymousza31251ze3z87_1355;
							}
						}
				}
			}
		}

	}



/* $$elong->bignum */
	BGL_EXPORTED_DEF obj_t bgl_elong_to_bignum(long BgL_nz00_22)
	{
		{	/* Unsafe/bignumber.scm 325 */
			{	/* Unsafe/bignumber.scm 326 */
				long BgL_negzd2nzd2_1377;

				if ((BgL_nz00_22 < ((long) 0)))
					{	/* Unsafe/bignumber.scm 326 */
						BgL_negzd2nzd2_1377 = BgL_nz00_22;
					}
				else
					{	/* Unsafe/bignumber.scm 326 */
						long BgL_res2337z00_3012;

						{	/* Unsafe/bignumber.scm 326 */
							long BgL_tmpz00_5925;

							BgL_tmpz00_5925 = (((long) 0) - BgL_nz00_22);
							BgL_res2337z00_3012 = (long) (BgL_tmpz00_5925);
						}
						BgL_negzd2nzd2_1377 = BgL_res2337z00_3012;
					}
				{
					long BgL_nbzd2digitszd2_1379;
					long BgL_xz00_1380;

					BgL_nbzd2digitszd2_1379 = 0L;
					BgL_xz00_1380 = BgL_negzd2nzd2_1377;
				BgL_zc3z04anonymousza31283ze3z87_1381:
					if ((BgL_xz00_1380 == (long) (0L)))
						{	/* Unsafe/bignumber.scm 331 */
							obj_t BgL_rz00_1383;

							{	/* Unsafe/bignumber.scm 331 */
								long BgL_arg1327z00_1399;

								BgL_arg1327z00_1399 = (BgL_nbzd2digitszd2_1379 + 1L);
								{	/* Unsafe/bignumber.scm 331 */
									int BgL_lenz00_3016;

									BgL_lenz00_3016 = (int) (BgL_arg1327z00_1399);
									{	/* Unsafe/bignumber.scm 259 */
										obj_t BgL_arg1214z00_3017;

										{	/* Unsafe/bignumber.scm 259 */

											BgL_arg1214z00_3017 =
												BGl_makezd2u16vectorzd2zz__srfi4z00(
												(long) (BgL_lenz00_3016), (uint16_t) (0));
										}
										BgL_rz00_1383 = bgl_make_bignum(BgL_arg1214z00_3017);
							}}}
							if ((BgL_nz00_22 < ((long) 0)))
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3024;
									uint16_t BgL_arg1222z00_3025;

									BgL_arg1221z00_3024 = BGL_BIGNUM_U16VECT(BgL_rz00_1383);
									BgL_arg1222z00_3025 = (uint16_t) (0L);
									BGL_U16VSET(BgL_arg1221z00_3024, 0L, BgL_arg1222z00_3025);
									BUNSPEC;
								}
							else
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3028;
									uint16_t BgL_arg1222z00_3029;

									BgL_arg1221z00_3028 = BGL_BIGNUM_U16VECT(BgL_rz00_1383);
									BgL_arg1222z00_3029 = (uint16_t) (1L);
									BGL_U16VSET(BgL_arg1221z00_3028, 0L, BgL_arg1222z00_3029);
									BUNSPEC;
								}
							{
								int BgL_iz00_3045;
								long BgL_xz00_3046;

								BgL_iz00_3045 = (int) (1L);
								BgL_xz00_3046 = BgL_negzd2nzd2_1377;
							BgL_loop2z00_3044:
								if ((BgL_xz00_3046 == ((long) 0)))
									{	/* Unsafe/bignumber.scm 336 */
										return BgL_rz00_1383;
									}
								else
									{	/* Unsafe/bignumber.scm 336 */
										{	/* Unsafe/bignumber.scm 341 */
											long BgL_arg1289z00_3050;

											{	/* Unsafe/bignumber.scm 341 */
												long BgL_arg1291z00_3051;

												{	/* Unsafe/bignumber.scm 341 */
													long BgL_arg1292z00_3052;

													{	/* Unsafe/bignumber.scm 341 */
														long BgL_arg1294z00_3053;

														BgL_arg1294z00_3053 = (long) (16384L);
														BgL_arg1292z00_3052 =
															(BgL_xz00_3046 % BgL_arg1294z00_3053);
													}
													BgL_arg1291z00_3051 = (long) (BgL_arg1292z00_3052);
												}
												BgL_arg1289z00_3050 = (0L - BgL_arg1291z00_3051);
											}
											{	/* Unsafe/bignumber.scm 338 */
												int BgL_digitz00_3060;

												BgL_digitz00_3060 = (int) (BgL_arg1289z00_3050);
												{	/* Unsafe/bignumber.scm 269 */
													obj_t BgL_arg1225z00_3061;
													uint16_t BgL_arg1226z00_3062;

													BgL_arg1225z00_3061 =
														BGL_BIGNUM_U16VECT(BgL_rz00_1383);
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_5952;

														BgL_tmpz00_5952 = (long) (BgL_digitz00_3060);
														BgL_arg1226z00_3062 = (uint16_t) (BgL_tmpz00_5952);
													}
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_5955;

														BgL_tmpz00_5955 = (long) (BgL_iz00_3045);
														BGL_U16VSET(BgL_arg1225z00_3061, BgL_tmpz00_5955,
															BgL_arg1226z00_3062);
													} BUNSPEC;
										}}}
										{	/* Unsafe/bignumber.scm 342 */
											long BgL_arg1323z00_3064;
											long BgL_arg1324z00_3065;

											BgL_arg1323z00_3064 = ((long) (BgL_iz00_3045) + 1L);
											{	/* Unsafe/bignumber.scm 342 */
												long BgL_n2z00_3069;

												BgL_n2z00_3069 = (long) (16384L);
												BgL_arg1324z00_3065 = (BgL_xz00_3046 / BgL_n2z00_3069);
											}
											{
												long BgL_xz00_5964;
												int BgL_iz00_5962;

												BgL_iz00_5962 = (int) (BgL_arg1323z00_3064);
												BgL_xz00_5964 = BgL_arg1324z00_3065;
												BgL_xz00_3046 = BgL_xz00_5964;
												BgL_iz00_3045 = BgL_iz00_5962;
												goto BgL_loop2z00_3044;
											}
										}
									}
							}
						}
					else
						{	/* Unsafe/bignumber.scm 330 */
							long BgL_arg1330z00_1400;
							long BgL_arg1331z00_1401;

							BgL_arg1330z00_1400 = (BgL_nbzd2digitszd2_1379 + 1L);
							{	/* Unsafe/bignumber.scm 330 */
								long BgL_arg1332z00_1402;

								BgL_arg1332z00_1402 = ((long) (1L) << (int) (15L));
								BgL_arg1331z00_1401 = (BgL_xz00_1380 / BgL_arg1332z00_1402);
							}
							{
								long BgL_xz00_5972;
								long BgL_nbzd2digitszd2_5971;

								BgL_nbzd2digitszd2_5971 = BgL_arg1330z00_1400;
								BgL_xz00_5972 = BgL_arg1331z00_1401;
								BgL_xz00_1380 = BgL_xz00_5972;
								BgL_nbzd2digitszd2_1379 = BgL_nbzd2digitszd2_5971;
								goto BgL_zc3z04anonymousza31283ze3z87_1381;
							}
						}
				}
			}
		}

	}



/* &$$elong->bignum */
	obj_t BGl_z62z42z42elongzd2ze3bignumz53zz__bignumz00(obj_t BgL_envz00_5501,
		obj_t BgL_nz00_5502)
	{
		{	/* Unsafe/bignumber.scm 325 */
			{	/* Unsafe/bignumber.scm 326 */
				long BgL_auxz00_5973;

				{	/* Unsafe/bignumber.scm 326 */
					obj_t BgL_tmpz00_5974;

					if (ELONGP(BgL_nz00_5502))
						{	/* Unsafe/bignumber.scm 326 */
							BgL_tmpz00_5974 = BgL_nz00_5502;
						}
					else
						{
							obj_t BgL_auxz00_5977;

							BgL_auxz00_5977 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(12664L), BGl_string2490z00zz__bignumz00,
								BGl_string2491z00zz__bignumz00, BgL_nz00_5502);
							FAILURE(BgL_auxz00_5977, BFALSE, BFALSE);
						}
					BgL_auxz00_5973 = BELONG_TO_LONG(BgL_tmpz00_5974);
				}
				return bgl_elong_to_bignum(BgL_auxz00_5973);
			}
		}

	}



/* $$llong->bignum */
	BGL_EXPORTED_DEF obj_t bgl_llong_to_bignum(BGL_LONGLONG_T BgL_nz00_23)
	{
		{	/* Unsafe/bignumber.scm 345 */
			{	/* Unsafe/bignumber.scm 346 */
				BGL_LONGLONG_T BgL_negzd2nzd2_1405;

				if ((BgL_nz00_23 < ((BGL_LONGLONG_T) 0)))
					{	/* Unsafe/bignumber.scm 346 */
						BgL_negzd2nzd2_1405 = BgL_nz00_23;
					}
				else
					{	/* Unsafe/bignumber.scm 346 */
						BgL_negzd2nzd2_1405 = (((BGL_LONGLONG_T) 0) - BgL_nz00_23);
					}
				{
					long BgL_nbzd2digitszd2_1407;
					BGL_LONGLONG_T BgL_xz00_1408;

					BgL_nbzd2digitszd2_1407 = 0L;
					BgL_xz00_1408 = BgL_negzd2nzd2_1405;
				BgL_zc3z04anonymousza31334ze3z87_1409:
					if ((BgL_xz00_1408 == LONG_TO_LLONG(0L)))
						{	/* Unsafe/bignumber.scm 351 */
							obj_t BgL_rz00_1411;

							{	/* Unsafe/bignumber.scm 351 */
								long BgL_arg1348z00_1427;

								BgL_arg1348z00_1427 = (BgL_nbzd2digitszd2_1407 + 1L);
								{	/* Unsafe/bignumber.scm 351 */
									int BgL_lenz00_3081;

									BgL_lenz00_3081 = (int) (BgL_arg1348z00_1427);
									{	/* Unsafe/bignumber.scm 259 */
										obj_t BgL_arg1214z00_3082;

										{	/* Unsafe/bignumber.scm 259 */

											BgL_arg1214z00_3082 =
												BGl_makezd2u16vectorzd2zz__srfi4z00(
												(long) (BgL_lenz00_3081), (uint16_t) (0));
										}
										BgL_rz00_1411 = bgl_make_bignum(BgL_arg1214z00_3082);
							}}}
							if ((BgL_nz00_23 < ((BGL_LONGLONG_T) 0)))
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3089;
									uint16_t BgL_arg1222z00_3090;

									BgL_arg1221z00_3089 = BGL_BIGNUM_U16VECT(BgL_rz00_1411);
									BgL_arg1222z00_3090 = (uint16_t) (0L);
									BGL_U16VSET(BgL_arg1221z00_3089, 0L, BgL_arg1222z00_3090);
									BUNSPEC;
								}
							else
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3093;
									uint16_t BgL_arg1222z00_3094;

									BgL_arg1221z00_3093 = BGL_BIGNUM_U16VECT(BgL_rz00_1411);
									BgL_arg1222z00_3094 = (uint16_t) (1L);
									BGL_U16VSET(BgL_arg1221z00_3093, 0L, BgL_arg1222z00_3094);
									BUNSPEC;
								}
							{
								long BgL_iz00_3110;
								BGL_LONGLONG_T BgL_xz00_3111;

								BgL_iz00_3110 = 1L;
								BgL_xz00_3111 = BgL_negzd2nzd2_1405;
							BgL_loop2z00_3109:
								if ((BgL_xz00_3111 == ((BGL_LONGLONG_T) 0)))
									{	/* Unsafe/bignumber.scm 356 */
										return BgL_rz00_1411;
									}
								else
									{	/* Unsafe/bignumber.scm 356 */
										{	/* Unsafe/bignumber.scm 361 */
											long BgL_arg1339z00_3115;

											{	/* Unsafe/bignumber.scm 361 */
												long BgL_arg1341z00_3116;

												{	/* Unsafe/bignumber.scm 361 */
													BGL_LONGLONG_T BgL_arg1342z00_3117;

													{	/* Unsafe/bignumber.scm 361 */
														BGL_LONGLONG_T BgL_arg1343z00_3118;

														BgL_arg1343z00_3118 = LONG_TO_LLONG(16384L);
														BgL_arg1342z00_3117 =
															(BgL_xz00_3111 % BgL_arg1343z00_3118);
													}
													BgL_arg1341z00_3116 =
														LLONG_TO_LONG(BgL_arg1342z00_3117);
												}
												BgL_arg1339z00_3115 = (0L - BgL_arg1341z00_3116);
											}
											{	/* Unsafe/bignumber.scm 358 */
												int BgL_iz00_3124;
												int BgL_digitz00_3125;

												BgL_iz00_3124 = (int) (BgL_iz00_3110);
												BgL_digitz00_3125 = (int) (BgL_arg1339z00_3115);
												{	/* Unsafe/bignumber.scm 269 */
													obj_t BgL_arg1225z00_3126;
													uint16_t BgL_arg1226z00_3127;

													BgL_arg1225z00_3126 =
														BGL_BIGNUM_U16VECT(BgL_rz00_1411);
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6011;

														BgL_tmpz00_6011 = (long) (BgL_digitz00_3125);
														BgL_arg1226z00_3127 = (uint16_t) (BgL_tmpz00_6011);
													}
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6014;

														BgL_tmpz00_6014 = (long) (BgL_iz00_3124);
														BGL_U16VSET(BgL_arg1225z00_3126, BgL_tmpz00_6014,
															BgL_arg1226z00_3127);
													} BUNSPEC;
										}}}
										{	/* Unsafe/bignumber.scm 362 */
											long BgL_arg1345z00_3129;
											BGL_LONGLONG_T BgL_arg1346z00_3130;

											BgL_arg1345z00_3129 = (BgL_iz00_3110 + 1L);
											{	/* Unsafe/bignumber.scm 362 */
												BGL_LONGLONG_T BgL_n2z00_3134;

												BgL_n2z00_3134 = LONG_TO_LLONG(16384L);
												BgL_arg1346z00_3130 = (BgL_xz00_3111 / BgL_n2z00_3134);
											}
											{
												BGL_LONGLONG_T BgL_xz00_6021;
												long BgL_iz00_6020;

												BgL_iz00_6020 = BgL_arg1345z00_3129;
												BgL_xz00_6021 = BgL_arg1346z00_3130;
												BgL_xz00_3111 = BgL_xz00_6021;
												BgL_iz00_3110 = BgL_iz00_6020;
												goto BgL_loop2z00_3109;
											}
										}
									}
							}
						}
					else
						{	/* Unsafe/bignumber.scm 350 */
							long BgL_arg1349z00_1428;
							BGL_LONGLONG_T BgL_arg1352z00_1429;

							BgL_arg1349z00_1428 = (BgL_nbzd2digitszd2_1407 + 1L);
							{	/* Unsafe/bignumber.scm 350 */
								BGL_LONGLONG_T BgL_arg1353z00_1430;

								BgL_arg1353z00_1430 = (LONG_TO_LLONG(1L) << (int) (30L));
								BgL_arg1352z00_1429 = (BgL_xz00_1408 / BgL_arg1353z00_1430);
							}
							{
								BGL_LONGLONG_T BgL_xz00_6028;
								long BgL_nbzd2digitszd2_6027;

								BgL_nbzd2digitszd2_6027 = BgL_arg1349z00_1428;
								BgL_xz00_6028 = BgL_arg1352z00_1429;
								BgL_xz00_1408 = BgL_xz00_6028;
								BgL_nbzd2digitszd2_1407 = BgL_nbzd2digitszd2_6027;
								goto BgL_zc3z04anonymousza31334ze3z87_1409;
							}
						}
				}
			}
		}

	}



/* &$$llong->bignum */
	obj_t BGl_z62z42z42llongzd2ze3bignumz53zz__bignumz00(obj_t BgL_envz00_5503,
		obj_t BgL_nz00_5504)
	{
		{	/* Unsafe/bignumber.scm 345 */
			{	/* Unsafe/bignumber.scm 346 */
				BGL_LONGLONG_T BgL_auxz00_6029;

				{	/* Unsafe/bignumber.scm 346 */
					obj_t BgL_tmpz00_6030;

					if (LLONGP(BgL_nz00_5504))
						{	/* Unsafe/bignumber.scm 346 */
							BgL_tmpz00_6030 = BgL_nz00_5504;
						}
					else
						{
							obj_t BgL_auxz00_6033;

							BgL_auxz00_6033 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(13354L), BGl_string2492z00zz__bignumz00,
								BGl_string2493z00zz__bignumz00, BgL_nz00_5504);
							FAILURE(BgL_auxz00_6033, BFALSE, BFALSE);
						}
					BgL_auxz00_6029 = BLLONG_TO_LLONG(BgL_tmpz00_6030);
				}
				return bgl_llong_to_bignum(BgL_auxz00_6029);
			}
		}

	}



/* $$int64->bignum */
	BGL_EXPORTED_DEF obj_t bgl_int64_to_bignum(int64_t BgL_nz00_24)
	{
		{	/* Unsafe/bignumber.scm 365 */
			{	/* Unsafe/bignumber.scm 366 */
				int64_t BgL_negzd2nzd2_1433;

				if ((BgL_nz00_24 < (int64_t) (0)))
					{	/* Unsafe/bignumber.scm 366 */
						BgL_negzd2nzd2_1433 = BgL_nz00_24;
					}
				else
					{	/* Unsafe/bignumber.scm 366 */
						BgL_negzd2nzd2_1433 = ((int64_t) (0) - BgL_nz00_24);
					}
				{
					long BgL_nbzd2digitszd2_1435;
					int64_t BgL_xz00_1436;

					BgL_nbzd2digitszd2_1435 = 0L;
					BgL_xz00_1436 = BgL_negzd2nzd2_1433;
				BgL_zc3z04anonymousza31355ze3z87_1437:
					if ((BgL_xz00_1436 == (int64_t) (0)))
						{	/* Unsafe/bignumber.scm 371 */
							obj_t BgL_rz00_1439;

							{	/* Unsafe/bignumber.scm 371 */
								long BgL_arg1368z00_1455;

								BgL_arg1368z00_1455 = (BgL_nbzd2digitszd2_1435 + 1L);
								{	/* Unsafe/bignumber.scm 371 */
									int BgL_lenz00_3146;

									BgL_lenz00_3146 = (int) (BgL_arg1368z00_1455);
									{	/* Unsafe/bignumber.scm 259 */
										obj_t BgL_arg1214z00_3147;

										{	/* Unsafe/bignumber.scm 259 */

											BgL_arg1214z00_3147 =
												BGl_makezd2u16vectorzd2zz__srfi4z00(
												(long) (BgL_lenz00_3146), (uint16_t) (0));
										}
										BgL_rz00_1439 = bgl_make_bignum(BgL_arg1214z00_3147);
							}}}
							if ((BgL_nz00_24 < (int64_t) (0)))
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3154;
									uint16_t BgL_arg1222z00_3155;

									BgL_arg1221z00_3154 = BGL_BIGNUM_U16VECT(BgL_rz00_1439);
									BgL_arg1222z00_3155 = (uint16_t) (0L);
									BGL_U16VSET(BgL_arg1221z00_3154, 0L, BgL_arg1222z00_3155);
									BUNSPEC;
								}
							else
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3158;
									uint16_t BgL_arg1222z00_3159;

									BgL_arg1221z00_3158 = BGL_BIGNUM_U16VECT(BgL_rz00_1439);
									BgL_arg1222z00_3159 = (uint16_t) (1L);
									BGL_U16VSET(BgL_arg1221z00_3158, 0L, BgL_arg1222z00_3159);
									BUNSPEC;
								}
							{
								long BgL_iz00_3179;
								int64_t BgL_xz00_3180;

								BgL_iz00_3179 = 1L;
								BgL_xz00_3180 = BgL_negzd2nzd2_1433;
							BgL_loop2z00_3178:
								if ((BgL_xz00_3180 == (int64_t) (0)))
									{	/* Unsafe/bignumber.scm 376 */
										return BgL_rz00_1439;
									}
								else
									{	/* Unsafe/bignumber.scm 376 */
										{	/* Unsafe/bignumber.scm 381 */
											long BgL_arg1360z00_3184;

											{	/* Unsafe/bignumber.scm 381 */
												long BgL_arg1361z00_3185;

												{	/* Unsafe/bignumber.scm 381 */
													int64_t BgL_arg1362z00_3186;

													{	/* Unsafe/bignumber.scm 381 */
														int64_t BgL_arg1363z00_3187;

														BgL_arg1363z00_3187 = (int64_t) (16384L);
														BgL_arg1362z00_3186 =
															(BgL_xz00_3180 % BgL_arg1363z00_3187);
													}
													{	/* Unsafe/bignumber.scm 381 */
														long BgL_arg2282z00_3193;

														BgL_arg2282z00_3193 = (long) (BgL_arg1362z00_3186);
														BgL_arg1361z00_3185 = (long) (BgL_arg2282z00_3193);
												}}
												BgL_arg1360z00_3184 = (0L - BgL_arg1361z00_3185);
											}
											{	/* Unsafe/bignumber.scm 378 */
												int BgL_iz00_3197;
												int BgL_digitz00_3198;

												BgL_iz00_3197 = (int) (BgL_iz00_3179);
												BgL_digitz00_3198 = (int) (BgL_arg1360z00_3184);
												{	/* Unsafe/bignumber.scm 269 */
													obj_t BgL_arg1225z00_3199;
													uint16_t BgL_arg1226z00_3200;

													BgL_arg1225z00_3199 =
														BGL_BIGNUM_U16VECT(BgL_rz00_1439);
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6067;

														BgL_tmpz00_6067 = (long) (BgL_digitz00_3198);
														BgL_arg1226z00_3200 = (uint16_t) (BgL_tmpz00_6067);
													}
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6070;

														BgL_tmpz00_6070 = (long) (BgL_iz00_3197);
														BGL_U16VSET(BgL_arg1225z00_3199, BgL_tmpz00_6070,
															BgL_arg1226z00_3200);
													} BUNSPEC;
										}}}
										{	/* Unsafe/bignumber.scm 382 */
											long BgL_arg1365z00_3202;
											int64_t BgL_arg1366z00_3203;

											BgL_arg1365z00_3202 = (BgL_iz00_3179 + 1L);
											{	/* Unsafe/bignumber.scm 382 */
												int64_t BgL_n2z00_3207;

												BgL_n2z00_3207 = (int64_t) (16384L);
												BgL_arg1366z00_3203 = (BgL_xz00_3180 / BgL_n2z00_3207);
											}
											{
												int64_t BgL_xz00_6077;
												long BgL_iz00_6076;

												BgL_iz00_6076 = BgL_arg1365z00_3202;
												BgL_xz00_6077 = BgL_arg1366z00_3203;
												BgL_xz00_3180 = BgL_xz00_6077;
												BgL_iz00_3179 = BgL_iz00_6076;
												goto BgL_loop2z00_3178;
											}
										}
									}
							}
						}
					else
						{	/* Unsafe/bignumber.scm 370 */
							long BgL_arg1369z00_1456;
							int64_t BgL_arg1370z00_1457;

							BgL_arg1369z00_1456 = (BgL_nbzd2digitszd2_1435 + 1L);
							{	/* Unsafe/bignumber.scm 370 */
								int64_t BgL_arg1371z00_1458;

								BgL_arg1371z00_1458 =
									BGl_expts64z00zz__r4_numbers_6_5_fixnumz00((int64_t) (2),
									(int64_t) (30L));
								BgL_arg1370z00_1457 = (BgL_xz00_1436 / BgL_arg1371z00_1458);
							}
							{
								int64_t BgL_xz00_6083;
								long BgL_nbzd2digitszd2_6082;

								BgL_nbzd2digitszd2_6082 = BgL_arg1369z00_1456;
								BgL_xz00_6083 = BgL_arg1370z00_1457;
								BgL_xz00_1436 = BgL_xz00_6083;
								BgL_nbzd2digitszd2_1435 = BgL_nbzd2digitszd2_6082;
								goto BgL_zc3z04anonymousza31355ze3z87_1437;
							}
						}
				}
			}
		}

	}



/* &$$int64->bignum */
	obj_t BGl_z62z42z42int64zd2ze3bignumz53zz__bignumz00(obj_t BgL_envz00_5505,
		obj_t BgL_nz00_5506)
	{
		{	/* Unsafe/bignumber.scm 365 */
			{	/* Unsafe/bignumber.scm 366 */
				int64_t BgL_auxz00_6084;

				{	/* Unsafe/bignumber.scm 366 */
					obj_t BgL_tmpz00_6085;

					if (BGL_INT64P(BgL_nz00_5506))
						{	/* Unsafe/bignumber.scm 366 */
							BgL_tmpz00_6085 = BgL_nz00_5506;
						}
					else
						{
							obj_t BgL_auxz00_6088;

							BgL_auxz00_6088 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(14032L), BGl_string2494z00zz__bignumz00,
								BGl_string2495z00zz__bignumz00, BgL_nz00_5506);
							FAILURE(BgL_auxz00_6088, BFALSE, BFALSE);
						}
					BgL_auxz00_6084 = BGL_BINT64_TO_INT64(BgL_tmpz00_6085);
				}
				return bgl_int64_to_bignum(BgL_auxz00_6084);
			}
		}

	}



/* $$uint64->bignum */
	BGL_EXPORTED_DEF obj_t bgl_uint64_to_bignum(uint64_t BgL_nz00_25)
	{
		{	/* Unsafe/bignumber.scm 385 */
			{	/* Unsafe/bignumber.scm 386 */
				uint64_t BgL_negzd2nzd2_1461;

				if ((BgL_nz00_25 < (uint64_t) (0)))
					{	/* Unsafe/bignumber.scm 386 */
						BgL_negzd2nzd2_1461 = BgL_nz00_25;
					}
				else
					{	/* Unsafe/bignumber.scm 386 */
						BgL_negzd2nzd2_1461 = ((uint64_t) (0) - BgL_nz00_25);
					}
				{
					long BgL_nbzd2digitszd2_1463;
					uint64_t BgL_xz00_1464;

					BgL_nbzd2digitszd2_1463 = 0L;
					BgL_xz00_1464 = BgL_negzd2nzd2_1461;
				BgL_zc3z04anonymousza31373ze3z87_1465:
					if ((BgL_xz00_1464 == (uint64_t) (0)))
						{	/* Unsafe/bignumber.scm 391 */
							obj_t BgL_rz00_1467;

							{	/* Unsafe/bignumber.scm 391 */
								long BgL_arg1389z00_1483;

								BgL_arg1389z00_1483 = (BgL_nbzd2digitszd2_1463 + 1L);
								{	/* Unsafe/bignumber.scm 391 */
									int BgL_lenz00_3218;

									BgL_lenz00_3218 = (int) (BgL_arg1389z00_1483);
									{	/* Unsafe/bignumber.scm 259 */
										obj_t BgL_arg1214z00_3219;

										{	/* Unsafe/bignumber.scm 259 */

											BgL_arg1214z00_3219 =
												BGl_makezd2u16vectorzd2zz__srfi4z00(
												(long) (BgL_lenz00_3218), (uint16_t) (0));
										}
										BgL_rz00_1467 = bgl_make_bignum(BgL_arg1214z00_3219);
							}}}
							if ((BgL_nz00_25 < (uint64_t) (0)))
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3226;
									uint16_t BgL_arg1222z00_3227;

									BgL_arg1221z00_3226 = BGL_BIGNUM_U16VECT(BgL_rz00_1467);
									BgL_arg1222z00_3227 = (uint16_t) (0L);
									BGL_U16VSET(BgL_arg1221z00_3226, 0L, BgL_arg1222z00_3227);
									BUNSPEC;
								}
							else
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3230;
									uint16_t BgL_arg1222z00_3231;

									BgL_arg1221z00_3230 = BGL_BIGNUM_U16VECT(BgL_rz00_1467);
									BgL_arg1222z00_3231 = (uint16_t) (1L);
									BGL_U16VSET(BgL_arg1221z00_3230, 0L, BgL_arg1222z00_3231);
									BUNSPEC;
								}
							{
								long BgL_iz00_3250;
								uint64_t BgL_xz00_3251;

								BgL_iz00_3250 = 1L;
								BgL_xz00_3251 = BgL_negzd2nzd2_1461;
							BgL_loop2z00_3249:
								if ((BgL_xz00_3251 == (uint64_t) (0)))
									{	/* Unsafe/bignumber.scm 396 */
										return BgL_rz00_1467;
									}
								else
									{	/* Unsafe/bignumber.scm 396 */
										{	/* Unsafe/bignumber.scm 401 */
											long BgL_arg1379z00_3255;

											{	/* Unsafe/bignumber.scm 401 */
												long BgL_arg1382z00_3256;

												{	/* Unsafe/bignumber.scm 401 */
													uint64_t BgL_arg1383z00_3257;

													{	/* Unsafe/bignumber.scm 401 */
														uint64_t BgL_arg1384z00_3258;

														BgL_arg1384z00_3258 = (uint64_t) (16384L);
														{	/* Unsafe/bignumber.scm 401 */
															int64_t BgL_tmpz00_6115;

															BgL_tmpz00_6115 = (int64_t) (BgL_arg1384z00_3258);
															BgL_arg1383z00_3257 =
																(BgL_xz00_3251 % BgL_tmpz00_6115);
													}}
													{	/* Unsafe/bignumber.scm 401 */
														long BgL_arg2281z00_3263;

														BgL_arg2281z00_3263 = (long) (BgL_arg1383z00_3257);
														BgL_arg1382z00_3256 = (long) (BgL_arg2281z00_3263);
												}}
												BgL_arg1379z00_3255 = (0L - BgL_arg1382z00_3256);
											}
											{	/* Unsafe/bignumber.scm 398 */
												int BgL_iz00_3267;
												int BgL_digitz00_3268;

												BgL_iz00_3267 = (int) (BgL_iz00_3250);
												BgL_digitz00_3268 = (int) (BgL_arg1379z00_3255);
												{	/* Unsafe/bignumber.scm 269 */
													obj_t BgL_arg1225z00_3269;
													uint16_t BgL_arg1226z00_3270;

													BgL_arg1225z00_3269 =
														BGL_BIGNUM_U16VECT(BgL_rz00_1467);
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6124;

														BgL_tmpz00_6124 = (long) (BgL_digitz00_3268);
														BgL_arg1226z00_3270 = (uint16_t) (BgL_tmpz00_6124);
													}
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6127;

														BgL_tmpz00_6127 = (long) (BgL_iz00_3267);
														BGL_U16VSET(BgL_arg1225z00_3269, BgL_tmpz00_6127,
															BgL_arg1226z00_3270);
													} BUNSPEC;
										}}}
										{	/* Unsafe/bignumber.scm 402 */
											long BgL_arg1386z00_3272;
											uint64_t BgL_arg1387z00_3273;

											BgL_arg1386z00_3272 = (BgL_iz00_3250 + 1L);
											{	/* Unsafe/bignumber.scm 402 */
												uint64_t BgL_n2z00_3277;

												BgL_n2z00_3277 = (uint64_t) (16384L);
												{	/* Unsafe/bignumber.scm 402 */
													int64_t BgL_tmpz00_6132;

													BgL_tmpz00_6132 = (int64_t) (BgL_n2z00_3277);
													BgL_arg1387z00_3273 =
														(BgL_xz00_3251 / BgL_tmpz00_6132);
											}}
											{
												uint64_t BgL_xz00_6136;
												long BgL_iz00_6135;

												BgL_iz00_6135 = BgL_arg1386z00_3272;
												BgL_xz00_6136 = BgL_arg1387z00_3273;
												BgL_xz00_3251 = BgL_xz00_6136;
												BgL_iz00_3250 = BgL_iz00_6135;
												goto BgL_loop2z00_3249;
											}
										}
									}
							}
						}
					else
						{	/* Unsafe/bignumber.scm 390 */
							long BgL_arg1390z00_1484;
							uint64_t BgL_arg1391z00_1485;

							BgL_arg1390z00_1484 = (BgL_nbzd2digitszd2_1463 + 1L);
							{	/* Unsafe/bignumber.scm 390 */
								int64_t BgL_arg1392z00_1486;

								BgL_arg1392z00_1486 =
									BGl_expts64z00zz__r4_numbers_6_5_fixnumz00((int64_t) (2),
									(int64_t) (30L));
								{	/* Unsafe/bignumber.scm 390 */
									uint64_t BgL_n2z00_3280;

									BgL_n2z00_3280 = (uint64_t) (BgL_arg1392z00_1486);
									{	/* Unsafe/bignumber.scm 390 */
										int64_t BgL_tmpz00_6141;

										BgL_tmpz00_6141 = (int64_t) (BgL_n2z00_3280);
										BgL_arg1391z00_1485 = (BgL_xz00_1464 / BgL_tmpz00_6141);
							}}}
							{
								uint64_t BgL_xz00_6145;
								long BgL_nbzd2digitszd2_6144;

								BgL_nbzd2digitszd2_6144 = BgL_arg1390z00_1484;
								BgL_xz00_6145 = BgL_arg1391z00_1485;
								BgL_xz00_1464 = BgL_xz00_6145;
								BgL_nbzd2digitszd2_1463 = BgL_nbzd2digitszd2_6144;
								goto BgL_zc3z04anonymousza31373ze3z87_1465;
							}
						}
				}
			}
		}

	}



/* &$$uint64->bignum */
	obj_t BGl_z62z42z42uint64zd2ze3bignumz53zz__bignumz00(obj_t BgL_envz00_5507,
		obj_t BgL_nz00_5508)
	{
		{	/* Unsafe/bignumber.scm 385 */
			{	/* Unsafe/bignumber.scm 386 */
				uint64_t BgL_auxz00_6146;

				{	/* Unsafe/bignumber.scm 386 */
					obj_t BgL_tmpz00_6147;

					if (BGL_UINT64P(BgL_nz00_5508))
						{	/* Unsafe/bignumber.scm 386 */
							BgL_tmpz00_6147 = BgL_nz00_5508;
						}
					else
						{
							obj_t BgL_auxz00_6150;

							BgL_auxz00_6150 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(14714L), BGl_string2496z00zz__bignumz00,
								BGl_string2497z00zz__bignumz00, BgL_nz00_5508);
							FAILURE(BgL_auxz00_6150, BFALSE, BFALSE);
						}
					BgL_auxz00_6146 = BGL_BINT64_TO_INT64(BgL_tmpz00_6147);
				}
				return bgl_uint64_to_bignum(BgL_auxz00_6146);
			}
		}

	}



/* $$fixnum->bignum */
	BGL_EXPORTED_DEF obj_t bgl_long_to_bignum(long BgL_nz00_26)
	{
		{	/* Unsafe/bignumber.scm 414 */
			{	/* Unsafe/bignumber.scm 415 */
				bool_t BgL_test2689z00_6156;

				if ((BgL_nz00_26 < -16L))
					{	/* Unsafe/bignumber.scm 415 */
						BgL_test2689z00_6156 = ((bool_t) 1);
					}
				else
					{	/* Unsafe/bignumber.scm 415 */
						BgL_test2689z00_6156 = (16L < BgL_nz00_26);
					}
				if (BgL_test2689z00_6156)
					{	/* Unsafe/bignumber.scm 415 */
						BGL_TAIL return
							BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(BgL_nz00_26);
					}
				else
					{	/* Unsafe/bignumber.scm 415 */
						return
							VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
							(BgL_nz00_26 + 16L));
					}
			}
		}

	}



/* &$$fixnum->bignum */
	obj_t BGl_z62z42z42fixnumzd2ze3bignumz53zz__bignumz00(obj_t BgL_envz00_5509,
		obj_t BgL_nz00_5510)
	{
		{	/* Unsafe/bignumber.scm 414 */
			{	/* Unsafe/bignumber.scm 415 */
				long BgL_auxz00_6163;

				{	/* Unsafe/bignumber.scm 415 */
					obj_t BgL_tmpz00_6164;

					if (INTEGERP(BgL_nz00_5510))
						{	/* Unsafe/bignumber.scm 415 */
							BgL_tmpz00_6164 = BgL_nz00_5510;
						}
					else
						{
							obj_t BgL_auxz00_6167;

							BgL_auxz00_6167 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(15614L), BGl_string2498z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_nz00_5510);
							FAILURE(BgL_auxz00_6167, BFALSE, BFALSE);
						}
					BgL_auxz00_6163 = (long) CINT(BgL_tmpz00_6164);
				}
				return bgl_long_to_bignum(BgL_auxz00_6163);
			}
		}

	}



/* $<bx */
	bool_t BGl_z42zc3bxz81zz__bignumz00(obj_t BgL_xz00_29, obj_t BgL_yz00_30)
	{
		{	/* Unsafe/bignumber.scm 439 */
			{	/* Unsafe/bignumber.scm 440 */
				bool_t BgL_test2692z00_6173;

				{	/* Unsafe/bignumber.scm 440 */
					long BgL_arg1426z00_1534;
					long BgL_arg1427z00_1535;

					{	/* Unsafe/bignumber.scm 263 */
						uint16_t BgL_arg1219z00_3287;

						{	/* Unsafe/bignumber.scm 263 */
							obj_t BgL_arg1220z00_3288;

							BgL_arg1220z00_3288 = BGL_BIGNUM_U16VECT(BgL_xz00_29);
							BgL_arg1219z00_3287 = BGL_U16VREF(BgL_arg1220z00_3288, 0L);
						}
						{	/* Unsafe/bignumber.scm 263 */
							long BgL_arg2284z00_3290;

							BgL_arg2284z00_3290 = (long) (BgL_arg1219z00_3287);
							BgL_arg1426z00_1534 = (long) (BgL_arg2284z00_3290);
					}}
					{	/* Unsafe/bignumber.scm 263 */
						uint16_t BgL_arg1219z00_3293;

						{	/* Unsafe/bignumber.scm 263 */
							obj_t BgL_arg1220z00_3294;

							BgL_arg1220z00_3294 = BGL_BIGNUM_U16VECT(BgL_yz00_30);
							BgL_arg1219z00_3293 = BGL_U16VREF(BgL_arg1220z00_3294, 0L);
						}
						{	/* Unsafe/bignumber.scm 263 */
							long BgL_arg2284z00_3296;

							BgL_arg2284z00_3296 = (long) (BgL_arg1219z00_3293);
							BgL_arg1427z00_1535 = (long) (BgL_arg2284z00_3296);
					}}
					BgL_test2692z00_6173 = (BgL_arg1426z00_1534 == BgL_arg1427z00_1535);
				}
				if (BgL_test2692z00_6173)
					{	/* Unsafe/bignumber.scm 442 */
						long BgL_lenxz00_1517;
						long BgL_lenyz00_1518;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_3301;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_3302;

								BgL_arg1218z00_3302 = BGL_BIGNUM_U16VECT(BgL_xz00_29);
								BgL_arg1217z00_3301 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3302);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_3304;

								BgL_xz00_3304 = (uint16_t) (BgL_arg1217z00_3301);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_3305;

									BgL_arg2284z00_3305 = (long) (BgL_xz00_3304);
									BgL_lenxz00_1517 = (long) (BgL_arg2284z00_3305);
						}}}
						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_3308;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_3309;

								BgL_arg1218z00_3309 = BGL_BIGNUM_U16VECT(BgL_yz00_30);
								BgL_arg1217z00_3308 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3309);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_3311;

								BgL_xz00_3311 = (uint16_t) (BgL_arg1217z00_3308);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_3312;

									BgL_arg2284z00_3312 = (long) (BgL_xz00_3311);
									BgL_lenyz00_1518 = (long) (BgL_arg2284z00_3312);
						}}}
						if ((BgL_lenxz00_1517 < BgL_lenyz00_1518))
							{	/* Unsafe/bignumber.scm 445 */
								bool_t BgL_test2694z00_6195;

								{	/* Unsafe/bignumber.scm 471 */
									long BgL_arg1431z00_3317;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_3319;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_3320;

											BgL_arg1220z00_3320 = BGL_BIGNUM_U16VECT(BgL_xz00_29);
											BgL_arg1219z00_3319 =
												BGL_U16VREF(BgL_arg1220z00_3320, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_3322;

											BgL_arg2284z00_3322 = (long) (BgL_arg1219z00_3319);
											BgL_arg1431z00_3317 = (long) (BgL_arg2284z00_3322);
									}}
									BgL_test2694z00_6195 = (BgL_arg1431z00_3317 == 0L);
								}
								if (BgL_test2694z00_6195)
									{	/* Unsafe/bignumber.scm 445 */
										return ((bool_t) 0);
									}
								else
									{	/* Unsafe/bignumber.scm 445 */
										return ((bool_t) 1);
									}
							}
						else
							{	/* Unsafe/bignumber.scm 444 */
								if ((BgL_lenyz00_1518 < BgL_lenxz00_1517))
									{	/* Unsafe/bignumber.scm 471 */
										long BgL_arg1431z00_3328;

										{	/* Unsafe/bignumber.scm 263 */
											uint16_t BgL_arg1219z00_3330;

											{	/* Unsafe/bignumber.scm 263 */
												obj_t BgL_arg1220z00_3331;

												BgL_arg1220z00_3331 = BGL_BIGNUM_U16VECT(BgL_xz00_29);
												BgL_arg1219z00_3330 =
													BGL_U16VREF(BgL_arg1220z00_3331, 0L);
											}
											{	/* Unsafe/bignumber.scm 263 */
												long BgL_arg2284z00_3333;

												BgL_arg2284z00_3333 = (long) (BgL_arg1219z00_3330);
												BgL_arg1431z00_3328 = (long) (BgL_arg2284z00_3333);
										}}
										return (BgL_arg1431z00_3328 == 0L);
									}
								else
									{	/* Unsafe/bignumber.scm 449 */
										long BgL_g1045z00_1522;

										BgL_g1045z00_1522 = (BgL_lenxz00_1517 - 1L);
										{
											long BgL_iz00_1524;

											BgL_iz00_1524 = BgL_g1045z00_1522;
										BgL_zc3z04anonymousza31420ze3z87_1525:
											if ((0L < BgL_iz00_1524))
												{	/* Unsafe/bignumber.scm 451 */
													long BgL_dxz00_1527;
													long BgL_dyz00_1528;

													{	/* Unsafe/bignumber.scm 451 */
														int BgL_iz00_3339;

														BgL_iz00_3339 = (int) (BgL_iz00_1524);
														{	/* Unsafe/bignumber.scm 267 */
															uint16_t BgL_arg1223z00_3340;

															{	/* Unsafe/bignumber.scm 267 */
																obj_t BgL_arg1224z00_3341;

																BgL_arg1224z00_3341 =
																	BGL_BIGNUM_U16VECT(BgL_xz00_29);
																{	/* Unsafe/bignumber.scm 267 */
																	long BgL_tmpz00_6213;

																	BgL_tmpz00_6213 = (long) (BgL_iz00_3339);
																	BgL_arg1223z00_3340 =
																		BGL_U16VREF(BgL_arg1224z00_3341,
																		BgL_tmpz00_6213);
															}}
															{	/* Unsafe/bignumber.scm 267 */
																long BgL_arg2284z00_3343;

																BgL_arg2284z00_3343 =
																	(long) (BgL_arg1223z00_3340);
																BgL_dxz00_1527 = (long) (BgL_arg2284z00_3343);
													}}}
													{	/* Unsafe/bignumber.scm 452 */
														int BgL_iz00_3346;

														BgL_iz00_3346 = (int) (BgL_iz00_1524);
														{	/* Unsafe/bignumber.scm 267 */
															uint16_t BgL_arg1223z00_3347;

															{	/* Unsafe/bignumber.scm 267 */
																obj_t BgL_arg1224z00_3348;

																BgL_arg1224z00_3348 =
																	BGL_BIGNUM_U16VECT(BgL_yz00_30);
																{	/* Unsafe/bignumber.scm 267 */
																	long BgL_tmpz00_6220;

																	BgL_tmpz00_6220 = (long) (BgL_iz00_3346);
																	BgL_arg1223z00_3347 =
																		BGL_U16VREF(BgL_arg1224z00_3348,
																		BgL_tmpz00_6220);
															}}
															{	/* Unsafe/bignumber.scm 267 */
																long BgL_arg2284z00_3350;

																BgL_arg2284z00_3350 =
																	(long) (BgL_arg1223z00_3347);
																BgL_dyz00_1528 = (long) (BgL_arg2284z00_3350);
													}}}
													if ((BgL_dxz00_1527 < BgL_dyz00_1528))
														{	/* Unsafe/bignumber.scm 453 */
															bool_t BgL_test2698z00_6227;

															{	/* Unsafe/bignumber.scm 471 */
																long BgL_arg1431z00_3355;

																{	/* Unsafe/bignumber.scm 263 */
																	uint16_t BgL_arg1219z00_3357;

																	{	/* Unsafe/bignumber.scm 263 */
																		obj_t BgL_arg1220z00_3358;

																		BgL_arg1220z00_3358 =
																			BGL_BIGNUM_U16VECT(BgL_xz00_29);
																		BgL_arg1219z00_3357 =
																			BGL_U16VREF(BgL_arg1220z00_3358, 0L);
																	}
																	{	/* Unsafe/bignumber.scm 263 */
																		long BgL_arg2284z00_3360;

																		BgL_arg2284z00_3360 =
																			(long) (BgL_arg1219z00_3357);
																		BgL_arg1431z00_3355 =
																			(long) (BgL_arg2284z00_3360);
																}}
																BgL_test2698z00_6227 =
																	(BgL_arg1431z00_3355 == 0L);
															}
															if (BgL_test2698z00_6227)
																{	/* Unsafe/bignumber.scm 453 */
																	return ((bool_t) 0);
																}
															else
																{	/* Unsafe/bignumber.scm 453 */
																	return ((bool_t) 1);
																}
														}
													else
														{	/* Unsafe/bignumber.scm 453 */
															if ((BgL_dyz00_1528 < BgL_dxz00_1527))
																{	/* Unsafe/bignumber.scm 471 */
																	long BgL_arg1431z00_3366;

																	{	/* Unsafe/bignumber.scm 263 */
																		uint16_t BgL_arg1219z00_3368;

																		{	/* Unsafe/bignumber.scm 263 */
																			obj_t BgL_arg1220z00_3369;

																			BgL_arg1220z00_3369 =
																				BGL_BIGNUM_U16VECT(BgL_xz00_29);
																			BgL_arg1219z00_3368 =
																				BGL_U16VREF(BgL_arg1220z00_3369, 0L);
																		}
																		{	/* Unsafe/bignumber.scm 263 */
																			long BgL_arg2284z00_3371;

																			BgL_arg2284z00_3371 =
																				(long) (BgL_arg1219z00_3368);
																			BgL_arg1431z00_3366 =
																				(long) (BgL_arg2284z00_3371);
																	}}
																	return (BgL_arg1431z00_3366 == 0L);
																}
															else
																{
																	long BgL_iz00_6240;

																	BgL_iz00_6240 = (BgL_iz00_1524 - 1L);
																	BgL_iz00_1524 = BgL_iz00_6240;
																	goto BgL_zc3z04anonymousza31420ze3z87_1525;
																}
														}
												}
											else
												{	/* Unsafe/bignumber.scm 450 */
													return ((bool_t) 0);
												}
										}
									}
							}
					}
				else
					{	/* Unsafe/bignumber.scm 471 */
						long BgL_arg1431z00_3376;

						{	/* Unsafe/bignumber.scm 263 */
							uint16_t BgL_arg1219z00_3378;

							{	/* Unsafe/bignumber.scm 263 */
								obj_t BgL_arg1220z00_3379;

								BgL_arg1220z00_3379 = BGL_BIGNUM_U16VECT(BgL_xz00_29);
								BgL_arg1219z00_3378 = BGL_U16VREF(BgL_arg1220z00_3379, 0L);
							}
							{	/* Unsafe/bignumber.scm 263 */
								long BgL_arg2284z00_3381;

								BgL_arg2284z00_3381 = (long) (BgL_arg1219z00_3378);
								BgL_arg1431z00_3376 = (long) (BgL_arg2284z00_3381);
						}}
						return (BgL_arg1431z00_3376 == 0L);
					}
			}
		}

	}



/* $$zerobx? */
	BGL_EXPORTED_DEF bool_t BXZERO(obj_t BgL_xz00_37)
	{
		{	/* Unsafe/bignumber.scm 467 */
			{	/* Unsafe/bignumber.scm 468 */
				long BgL_arg1430z00_3385;

				{	/* Unsafe/bignumber.scm 261 */
					long BgL_arg1217z00_3387;

					{	/* Unsafe/bignumber.scm 261 */
						obj_t BgL_arg1218z00_3388;

						BgL_arg1218z00_3388 = BGL_BIGNUM_U16VECT(BgL_xz00_37);
						BgL_arg1217z00_3387 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3388);
					}
					{	/* Unsafe/bignumber.scm 261 */
						uint16_t BgL_xz00_3390;

						BgL_xz00_3390 = (uint16_t) (BgL_arg1217z00_3387);
						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg2284z00_3391;

							BgL_arg2284z00_3391 = (long) (BgL_xz00_3390);
							BgL_arg1430z00_3385 = (long) (BgL_arg2284z00_3391);
				}}}
				return (BgL_arg1430z00_3385 == 1L);
			}
		}

	}



/* &$$zerobx? */
	obj_t BGl_z62z42z42za7erobxzf3z36zz__bignumz00(obj_t BgL_envz00_5511,
		obj_t BgL_xz00_5512)
	{
		{	/* Unsafe/bignumber.scm 467 */
			{	/* Unsafe/bignumber.scm 468 */
				bool_t BgL_tmpz00_6253;

				{	/* Unsafe/bignumber.scm 468 */
					obj_t BgL_auxz00_6254;

					if (BIGNUMP(BgL_xz00_5512))
						{	/* Unsafe/bignumber.scm 468 */
							BgL_auxz00_6254 = BgL_xz00_5512;
						}
					else
						{
							obj_t BgL_auxz00_6257;

							BgL_auxz00_6257 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(17040L), BGl_string2499z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5512);
							FAILURE(BgL_auxz00_6257, BFALSE, BFALSE);
						}
					BgL_tmpz00_6253 = BXZERO(BgL_auxz00_6254);
				}
				return BBOOL(BgL_tmpz00_6253);
			}
		}

	}



/* $$negativebx? */
	BGL_EXPORTED_DEF bool_t BXNEGATIVE(obj_t BgL_xz00_38)
	{
		{	/* Unsafe/bignumber.scm 470 */
			{	/* Unsafe/bignumber.scm 471 */
				long BgL_arg1431z00_3394;

				{	/* Unsafe/bignumber.scm 263 */
					uint16_t BgL_arg1219z00_3396;

					{	/* Unsafe/bignumber.scm 263 */
						obj_t BgL_arg1220z00_3397;

						BgL_arg1220z00_3397 = BGL_BIGNUM_U16VECT(BgL_xz00_38);
						BgL_arg1219z00_3396 = BGL_U16VREF(BgL_arg1220z00_3397, 0L);
					}
					{	/* Unsafe/bignumber.scm 263 */
						long BgL_arg2284z00_3399;

						BgL_arg2284z00_3399 = (long) (BgL_arg1219z00_3396);
						BgL_arg1431z00_3394 = (long) (BgL_arg2284z00_3399);
				}}
				return (BgL_arg1431z00_3394 == 0L);
			}
		}

	}



/* &$$negativebx? */
	obj_t BGl_z62z42z42negativebxzf3z91zz__bignumz00(obj_t BgL_envz00_5513,
		obj_t BgL_xz00_5514)
	{
		{	/* Unsafe/bignumber.scm 470 */
			{	/* Unsafe/bignumber.scm 471 */
				bool_t BgL_tmpz00_6268;

				{	/* Unsafe/bignumber.scm 471 */
					obj_t BgL_auxz00_6269;

					if (BIGNUMP(BgL_xz00_5514))
						{	/* Unsafe/bignumber.scm 471 */
							BgL_auxz00_6269 = BgL_xz00_5514;
						}
					else
						{
							obj_t BgL_auxz00_6272;

							BgL_auxz00_6272 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(17097L), BGl_string2501z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5514);
							FAILURE(BgL_auxz00_6272, BFALSE, BFALSE);
						}
					BgL_tmpz00_6268 = BXNEGATIVE(BgL_auxz00_6269);
				}
				return BBOOL(BgL_tmpz00_6268);
			}
		}

	}



/* $$positivebx? */
	BGL_EXPORTED_DEF bool_t BXPOSITIVE(obj_t BgL_xz00_39)
	{
		{	/* Unsafe/bignumber.scm 473 */
			{	/* Unsafe/bignumber.scm 474 */
				bool_t BgL_test2702z00_6278;

				{	/* Unsafe/bignumber.scm 474 */
					bool_t BgL_test2703z00_6279;

					{	/* Unsafe/bignumber.scm 468 */
						long BgL_arg1430z00_3405;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_3407;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_3408;

								BgL_arg1218z00_3408 = BGL_BIGNUM_U16VECT(BgL_xz00_39);
								BgL_arg1217z00_3407 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3408);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_3410;

								BgL_xz00_3410 = (uint16_t) (BgL_arg1217z00_3407);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_3411;

									BgL_arg2284z00_3411 = (long) (BgL_xz00_3410);
									BgL_arg1430z00_3405 = (long) (BgL_arg2284z00_3411);
						}}}
						BgL_test2703z00_6279 = (BgL_arg1430z00_3405 == 1L);
					}
					if (BgL_test2703z00_6279)
						{	/* Unsafe/bignumber.scm 474 */
							BgL_test2702z00_6278 = ((bool_t) 1);
						}
					else
						{	/* Unsafe/bignumber.scm 471 */
							long BgL_arg1431z00_3415;

							{	/* Unsafe/bignumber.scm 263 */
								uint16_t BgL_arg1219z00_3417;

								{	/* Unsafe/bignumber.scm 263 */
									obj_t BgL_arg1220z00_3418;

									BgL_arg1220z00_3418 = BGL_BIGNUM_U16VECT(BgL_xz00_39);
									BgL_arg1219z00_3417 = BGL_U16VREF(BgL_arg1220z00_3418, 0L);
								}
								{	/* Unsafe/bignumber.scm 263 */
									long BgL_arg2284z00_3420;

									BgL_arg2284z00_3420 = (long) (BgL_arg1219z00_3417);
									BgL_arg1431z00_3415 = (long) (BgL_arg2284z00_3420);
							}}
							BgL_test2702z00_6278 = (BgL_arg1431z00_3415 == 0L);
				}}
				if (BgL_test2702z00_6278)
					{	/* Unsafe/bignumber.scm 474 */
						return ((bool_t) 0);
					}
				else
					{	/* Unsafe/bignumber.scm 474 */
						return ((bool_t) 1);
					}
			}
		}

	}



/* &$$positivebx? */
	obj_t BGl_z62z42z42positivebxzf3z91zz__bignumz00(obj_t BgL_envz00_5515,
		obj_t BgL_xz00_5516)
	{
		{	/* Unsafe/bignumber.scm 473 */
			{	/* Unsafe/bignumber.scm 474 */
				bool_t BgL_tmpz00_6291;

				{	/* Unsafe/bignumber.scm 474 */
					obj_t BgL_auxz00_6292;

					if (BIGNUMP(BgL_xz00_5516))
						{	/* Unsafe/bignumber.scm 474 */
							BgL_auxz00_6292 = BgL_xz00_5516;
						}
					else
						{
							obj_t BgL_auxz00_6295;

							BgL_auxz00_6295 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(17147L), BGl_string2502z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5516);
							FAILURE(BgL_auxz00_6295, BFALSE, BFALSE);
						}
					BgL_tmpz00_6291 = BXPOSITIVE(BgL_auxz00_6292);
				}
				return BBOOL(BgL_tmpz00_6291);
			}
		}

	}



/* $$evenbx? */
	BGL_EXPORTED_DEF bool_t bgl_bignum_even(obj_t BgL_xz00_40)
	{
		{	/* Unsafe/bignumber.scm 476 */
			{	/* Unsafe/bignumber.scm 477 */
				bool_t BgL__ortest_1046z00_3423;

				{	/* Unsafe/bignumber.scm 468 */
					long BgL_arg1430z00_3426;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_3428;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_3429;

							BgL_arg1218z00_3429 = BGL_BIGNUM_U16VECT(BgL_xz00_40);
							BgL_arg1217z00_3428 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3429);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_3431;

							BgL_xz00_3431 = (uint16_t) (BgL_arg1217z00_3428);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_3432;

								BgL_arg2284z00_3432 = (long) (BgL_xz00_3431);
								BgL_arg1430z00_3426 = (long) (BgL_arg2284z00_3432);
					}}}
					BgL__ortest_1046z00_3423 = (BgL_arg1430z00_3426 == 1L);
				}
				if (BgL__ortest_1046z00_3423)
					{	/* Unsafe/bignumber.scm 477 */
						return BgL__ortest_1046z00_3423;
					}
				else
					{	/* Unsafe/bignumber.scm 477 */
						long BgL_arg1434z00_3424;

						{	/* Unsafe/bignumber.scm 267 */
							uint16_t BgL_arg1223z00_3436;

							{	/* Unsafe/bignumber.scm 267 */
								obj_t BgL_arg1224z00_3437;

								BgL_arg1224z00_3437 = BGL_BIGNUM_U16VECT(BgL_xz00_40);
								BgL_arg1223z00_3436 = BGL_U16VREF(BgL_arg1224z00_3437, 1L);
							}
							{	/* Unsafe/bignumber.scm 267 */
								long BgL_arg2284z00_3439;

								BgL_arg2284z00_3439 = (long) (BgL_arg1223z00_3436);
								BgL_arg1434z00_3424 = (long) (BgL_arg2284z00_3439);
						}}
						return
							BGl_evenzf3zf3zz__r4_numbers_6_5_fixnumz00(BINT
							(BgL_arg1434z00_3424));
					}
			}
		}

	}



/* &$$evenbx? */
	obj_t BGl_z62z42z42evenbxzf3z91zz__bignumz00(obj_t BgL_envz00_5517,
		obj_t BgL_xz00_5518)
	{
		{	/* Unsafe/bignumber.scm 476 */
			{	/* Unsafe/bignumber.scm 477 */
				bool_t BgL_tmpz00_6314;

				{	/* Unsafe/bignumber.scm 477 */
					obj_t BgL_auxz00_6315;

					if (BIGNUMP(BgL_xz00_5518))
						{	/* Unsafe/bignumber.scm 477 */
							BgL_auxz00_6315 = BgL_xz00_5518;
						}
					else
						{
							obj_t BgL_auxz00_6318;

							BgL_auxz00_6318 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(17221L), BGl_string2503z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5518);
							FAILURE(BgL_auxz00_6318, BFALSE, BFALSE);
						}
					BgL_tmpz00_6314 = bgl_bignum_even(BgL_auxz00_6315);
				}
				return BBOOL(BgL_tmpz00_6314);
			}
		}

	}



/* $$oddbx? */
	BGL_EXPORTED_DEF bool_t bgl_bignum_odd(obj_t BgL_xz00_41)
	{
		{	/* Unsafe/bignumber.scm 479 */
			{	/* Unsafe/bignumber.scm 480 */
				bool_t BgL_test2707z00_6324;

				{	/* Unsafe/bignumber.scm 480 */
					bool_t BgL_res2338z00_3454;

					{	/* Unsafe/bignumber.scm 477 */
						bool_t BgL__ortest_1046z00_3443;

						BgL__ortest_1046z00_3443 =
							(BGl_bignumzd2lengthzd2zz__bignumz00(BgL_xz00_41) == 1L);
						if (BgL__ortest_1046z00_3443)
							{	/* Unsafe/bignumber.scm 477 */
								BgL_res2338z00_3454 = BgL__ortest_1046z00_3443;
							}
						else
							{	/* Unsafe/bignumber.scm 477 */
								long BgL_arg1434z00_3444;

								{	/* Unsafe/bignumber.scm 267 */
									uint16_t BgL_arg1223z00_3449;

									{	/* Unsafe/bignumber.scm 267 */
										obj_t BgL_arg1224z00_3450;

										BgL_arg1224z00_3450 = BGL_BIGNUM_U16VECT(BgL_xz00_41);
										BgL_arg1223z00_3449 = BGL_U16VREF(BgL_arg1224z00_3450, 1L);
									}
									{	/* Unsafe/bignumber.scm 267 */
										long BgL_arg2284z00_3452;

										BgL_arg2284z00_3452 = (long) (BgL_arg1223z00_3449);
										BgL_arg1434z00_3444 = (long) (BgL_arg2284z00_3452);
								}}
								BgL_res2338z00_3454 =
									BGl_evenzf3zf3zz__r4_numbers_6_5_fixnumz00(BINT
									(BgL_arg1434z00_3444));
					}}
					BgL_test2707z00_6324 = BgL_res2338z00_3454;
				}
				if (BgL_test2707z00_6324)
					{	/* Unsafe/bignumber.scm 480 */
						return ((bool_t) 0);
					}
				else
					{	/* Unsafe/bignumber.scm 480 */
						return ((bool_t) 1);
					}
			}
		}

	}



/* &$$oddbx? */
	obj_t BGl_z62z42z42oddbxzf3z91zz__bignumz00(obj_t BgL_envz00_5519,
		obj_t BgL_xz00_5520)
	{
		{	/* Unsafe/bignumber.scm 479 */
			{	/* Unsafe/bignumber.scm 480 */
				bool_t BgL_tmpz00_6334;

				{	/* Unsafe/bignumber.scm 480 */
					obj_t BgL_auxz00_6335;

					if (BIGNUMP(BgL_xz00_5520))
						{	/* Unsafe/bignumber.scm 480 */
							BgL_auxz00_6335 = BgL_xz00_5520;
						}
					else
						{
							obj_t BgL_auxz00_6338;

							BgL_auxz00_6338 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(17293L), BGl_string2504z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5520);
							FAILURE(BgL_auxz00_6338, BFALSE, BFALSE);
						}
					BgL_tmpz00_6334 = bgl_bignum_odd(BgL_auxz00_6335);
				}
				return BBOOL(BgL_tmpz00_6334);
			}
		}

	}



/* $$bignum-cmp */
	BGL_EXPORTED_DEF int bgl_bignum_cmp(obj_t BgL_n1z00_42, obj_t BgL_n2z00_43)
	{
		{	/* Unsafe/bignumber.scm 482 */
			if (BGl_z42zc3bxz81zz__bignumz00(BgL_n1z00_42, BgL_n2z00_43))
				{	/* Unsafe/bignumber.scm 484 */
					return (int) (-1L);
				}
			else
				{	/* Unsafe/bignumber.scm 484 */
					if (BGl_z42zc3bxz81zz__bignumz00(BgL_n2z00_43, BgL_n1z00_42))
						{	/* Unsafe/bignumber.scm 485 */
							return (int) (1L);
						}
					else
						{	/* Unsafe/bignumber.scm 485 */
							return (int) (0L);
		}}}

	}



/* &$$bignum-cmp */
	obj_t BGl_z62z42z42bignumzd2cmpzb0zz__bignumz00(obj_t BgL_envz00_5521,
		obj_t BgL_n1z00_5522, obj_t BgL_n2z00_5523)
	{
		{	/* Unsafe/bignumber.scm 482 */
			{	/* Unsafe/bignumber.scm 484 */
				int BgL_tmpz00_6351;

				{	/* Unsafe/bignumber.scm 484 */
					obj_t BgL_auxz00_6359;
					obj_t BgL_auxz00_6352;

					if (BIGNUMP(BgL_n2z00_5523))
						{	/* Unsafe/bignumber.scm 484 */
							BgL_auxz00_6359 = BgL_n2z00_5523;
						}
					else
						{
							obj_t BgL_auxz00_6362;

							BgL_auxz00_6362 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(17359L), BGl_string2505z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_n2z00_5523);
							FAILURE(BgL_auxz00_6362, BFALSE, BFALSE);
						}
					if (BIGNUMP(BgL_n1z00_5522))
						{	/* Unsafe/bignumber.scm 484 */
							BgL_auxz00_6352 = BgL_n1z00_5522;
						}
					else
						{
							obj_t BgL_auxz00_6355;

							BgL_auxz00_6355 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(17359L), BGl_string2505z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_n1z00_5522);
							FAILURE(BgL_auxz00_6355, BFALSE, BFALSE);
						}
					BgL_tmpz00_6351 = bgl_bignum_cmp(BgL_auxz00_6352, BgL_auxz00_6359);
				}
				return BINT(BgL_tmpz00_6351);
			}
		}

	}



/* bignum-add-nonneg */
	obj_t BGl_bignumzd2addzd2nonnegz00zz__bignumz00(obj_t BgL_xz00_44,
		obj_t BgL_yz00_45)
	{
		{	/* Unsafe/bignumber.scm 491 */
			{
				obj_t BgL_xz00_1552;
				obj_t BgL_yz00_1553;
				long BgL_lenxz00_1554;
				long BgL_lenyz00_1555;

				{	/* Unsafe/bignumber.scm 530 */
					long BgL_lenxz00_1549;
					long BgL_lenyz00_1550;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_3541;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_3542;

							BgL_arg1218z00_3542 = BGL_BIGNUM_U16VECT(BgL_xz00_44);
							BgL_arg1217z00_3541 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3542);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_3544;

							BgL_xz00_3544 = (uint16_t) (BgL_arg1217z00_3541);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_3545;

								BgL_arg2284z00_3545 = (long) (BgL_xz00_3544);
								BgL_lenxz00_1549 = (long) (BgL_arg2284z00_3545);
					}}}
					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_3548;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_3549;

							BgL_arg1218z00_3549 = BGL_BIGNUM_U16VECT(BgL_yz00_45);
							BgL_arg1217z00_3548 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3549);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_3551;

							BgL_xz00_3551 = (uint16_t) (BgL_arg1217z00_3548);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_3552;

								BgL_arg2284z00_3552 = (long) (BgL_xz00_3551);
								BgL_lenyz00_1550 = (long) (BgL_arg2284z00_3552);
					}}}
					if ((BgL_lenxz00_1549 < BgL_lenyz00_1550))
						{	/* Unsafe/bignumber.scm 532 */
							BgL_xz00_1552 = BgL_yz00_45;
							BgL_yz00_1553 = BgL_xz00_44;
							BgL_lenxz00_1554 = BgL_lenyz00_1550;
							BgL_lenyz00_1555 = BgL_lenxz00_1549;
						BgL_zc3z04anonymousza31439ze3z87_1556:
							{	/* Unsafe/bignumber.scm 494 */
								obj_t BgL_rz00_1557;

								{	/* Unsafe/bignumber.scm 494 */
									long BgL_arg1463z00_1591;

									BgL_arg1463z00_1591 = (BgL_lenxz00_1554 + 1L);
									{	/* Unsafe/bignumber.scm 494 */
										int BgL_lenz00_3458;

										BgL_lenz00_3458 = (int) (BgL_arg1463z00_1591);
										{	/* Unsafe/bignumber.scm 259 */
											obj_t BgL_arg1214z00_3459;

											{	/* Unsafe/bignumber.scm 259 */

												BgL_arg1214z00_3459 =
													BGl_makezd2u16vectorzd2zz__srfi4z00(
													(long) (BgL_lenz00_3458), (uint16_t) (0));
											}
											BgL_rz00_1557 = bgl_make_bignum(BgL_arg1214z00_3459);
								}}}
								{	/* Unsafe/bignumber.scm 265 */
									obj_t BgL_arg1221z00_3464;
									uint16_t BgL_arg1222z00_3465;

									BgL_arg1221z00_3464 = BGL_BIGNUM_U16VECT(BgL_rz00_1557);
									BgL_arg1222z00_3465 = (uint16_t) (1L);
									BGL_U16VSET(BgL_arg1221z00_3464, 0L, BgL_arg1222z00_3465);
									BUNSPEC;
								}
								{
									long BgL_iz00_1559;
									long BgL_cz00_1560;

									BgL_iz00_1559 = 1L;
									BgL_cz00_1560 = 0L;
								BgL_zc3z04anonymousza31440ze3z87_1561:
									if ((BgL_iz00_1559 < BgL_lenyz00_1555))
										{	/* Unsafe/bignumber.scm 501 */
											long BgL_wz00_1563;

											{	/* Unsafe/bignumber.scm 501 */
												long BgL_arg1449z00_1571;

												{	/* Unsafe/bignumber.scm 501 */
													long BgL_arg1450z00_1572;
													long BgL_arg1451z00_1573;

													{	/* Unsafe/bignumber.scm 501 */
														int BgL_iz00_3469;

														BgL_iz00_3469 = (int) (BgL_iz00_1559);
														{	/* Unsafe/bignumber.scm 267 */
															uint16_t BgL_arg1223z00_3470;

															{	/* Unsafe/bignumber.scm 267 */
																obj_t BgL_arg1224z00_3471;

																BgL_arg1224z00_3471 =
																	BGL_BIGNUM_U16VECT(BgL_xz00_1552);
																{	/* Unsafe/bignumber.scm 267 */
																	long BgL_tmpz00_6392;

																	BgL_tmpz00_6392 = (long) (BgL_iz00_3469);
																	BgL_arg1223z00_3470 =
																		BGL_U16VREF(BgL_arg1224z00_3471,
																		BgL_tmpz00_6392);
															}}
															{	/* Unsafe/bignumber.scm 267 */
																long BgL_arg2284z00_3473;

																BgL_arg2284z00_3473 =
																	(long) (BgL_arg1223z00_3470);
																BgL_arg1450z00_1572 =
																	(long) (BgL_arg2284z00_3473);
													}}}
													{	/* Unsafe/bignumber.scm 502 */
														int BgL_iz00_3476;

														BgL_iz00_3476 = (int) (BgL_iz00_1559);
														{	/* Unsafe/bignumber.scm 267 */
															uint16_t BgL_arg1223z00_3477;

															{	/* Unsafe/bignumber.scm 267 */
																obj_t BgL_arg1224z00_3478;

																BgL_arg1224z00_3478 =
																	BGL_BIGNUM_U16VECT(BgL_yz00_1553);
																{	/* Unsafe/bignumber.scm 267 */
																	long BgL_tmpz00_6399;

																	BgL_tmpz00_6399 = (long) (BgL_iz00_3476);
																	BgL_arg1223z00_3477 =
																		BGL_U16VREF(BgL_arg1224z00_3478,
																		BgL_tmpz00_6399);
															}}
															{	/* Unsafe/bignumber.scm 267 */
																long BgL_arg2284z00_3480;

																BgL_arg2284z00_3480 =
																	(long) (BgL_arg1223z00_3477);
																BgL_arg1451z00_1573 =
																	(long) (BgL_arg2284z00_3480);
													}}}
													BgL_arg1449z00_1571 =
														(BgL_arg1450z00_1572 + BgL_arg1451z00_1573);
												}
												BgL_wz00_1563 = (BgL_arg1449z00_1571 + BgL_cz00_1560);
											}
											if ((BgL_wz00_1563 < 16384L))
												{	/* Unsafe/bignumber.scm 504 */
													{	/* Unsafe/bignumber.scm 506 */
														int BgL_iz00_3489;
														int BgL_digitz00_3490;

														BgL_iz00_3489 = (int) (BgL_iz00_1559);
														BgL_digitz00_3490 = (int) (BgL_wz00_1563);
														{	/* Unsafe/bignumber.scm 269 */
															obj_t BgL_arg1225z00_3491;
															uint16_t BgL_arg1226z00_3492;

															BgL_arg1225z00_3491 =
																BGL_BIGNUM_U16VECT(BgL_rz00_1557);
															{	/* Unsafe/bignumber.scm 269 */
																long BgL_tmpz00_6411;

																BgL_tmpz00_6411 = (long) (BgL_digitz00_3490);
																BgL_arg1226z00_3492 =
																	(uint16_t) (BgL_tmpz00_6411);
															}
															{	/* Unsafe/bignumber.scm 269 */
																long BgL_tmpz00_6414;

																BgL_tmpz00_6414 = (long) (BgL_iz00_3489);
																BGL_U16VSET(BgL_arg1225z00_3491,
																	BgL_tmpz00_6414, BgL_arg1226z00_3492);
															} BUNSPEC;
													}}
													{
														long BgL_cz00_6419;
														long BgL_iz00_6417;

														BgL_iz00_6417 = (BgL_iz00_1559 + 1L);
														BgL_cz00_6419 = 0L;
														BgL_cz00_1560 = BgL_cz00_6419;
														BgL_iz00_1559 = BgL_iz00_6417;
														goto BgL_zc3z04anonymousza31440ze3z87_1561;
													}
												}
											else
												{	/* Unsafe/bignumber.scm 504 */
													{	/* Unsafe/bignumber.scm 509 */
														long BgL_arg1445z00_1567;

														BgL_arg1445z00_1567 = (BgL_wz00_1563 - 16384L);
														{	/* Unsafe/bignumber.scm 509 */
															int BgL_iz00_3498;
															int BgL_digitz00_3499;

															BgL_iz00_3498 = (int) (BgL_iz00_1559);
															BgL_digitz00_3499 = (int) (BgL_arg1445z00_1567);
															{	/* Unsafe/bignumber.scm 269 */
																obj_t BgL_arg1225z00_3500;
																uint16_t BgL_arg1226z00_3501;

																BgL_arg1225z00_3500 =
																	BGL_BIGNUM_U16VECT(BgL_rz00_1557);
																{	/* Unsafe/bignumber.scm 269 */
																	long BgL_tmpz00_6424;

																	BgL_tmpz00_6424 = (long) (BgL_digitz00_3499);
																	BgL_arg1226z00_3501 =
																		(uint16_t) (BgL_tmpz00_6424);
																}
																{	/* Unsafe/bignumber.scm 269 */
																	long BgL_tmpz00_6427;

																	BgL_tmpz00_6427 = (long) (BgL_iz00_3498);
																	BGL_U16VSET(BgL_arg1225z00_3500,
																		BgL_tmpz00_6427, BgL_arg1226z00_3501);
																} BUNSPEC;
													}}}
													{
														long BgL_cz00_6432;
														long BgL_iz00_6430;

														BgL_iz00_6430 = (BgL_iz00_1559 + 1L);
														BgL_cz00_6432 = 1L;
														BgL_cz00_1560 = BgL_cz00_6432;
														BgL_iz00_1559 = BgL_iz00_6430;
														goto BgL_zc3z04anonymousza31440ze3z87_1561;
													}
												}
										}
									else
										{
											long BgL_iz00_1575;
											long BgL_cz00_1576;

											BgL_iz00_1575 = BgL_iz00_1559;
											BgL_cz00_1576 = BgL_cz00_1560;
										BgL_zc3z04anonymousza31452ze3z87_1577:
											if ((BgL_iz00_1575 < BgL_lenxz00_1554))
												{	/* Unsafe/bignumber.scm 515 */
													long BgL_wz00_1579;

													{	/* Unsafe/bignumber.scm 515 */
														long BgL_arg1461z00_1587;

														{	/* Unsafe/bignumber.scm 515 */
															int BgL_iz00_3507;

															BgL_iz00_3507 = (int) (BgL_iz00_1575);
															{	/* Unsafe/bignumber.scm 267 */
																uint16_t BgL_arg1223z00_3508;

																{	/* Unsafe/bignumber.scm 267 */
																	obj_t BgL_arg1224z00_3509;

																	BgL_arg1224z00_3509 =
																		BGL_BIGNUM_U16VECT(BgL_xz00_1552);
																	{	/* Unsafe/bignumber.scm 267 */
																		long BgL_tmpz00_6437;

																		BgL_tmpz00_6437 = (long) (BgL_iz00_3507);
																		BgL_arg1223z00_3508 =
																			BGL_U16VREF(BgL_arg1224z00_3509,
																			BgL_tmpz00_6437);
																}}
																{	/* Unsafe/bignumber.scm 267 */
																	long BgL_arg2284z00_3511;

																	BgL_arg2284z00_3511 =
																		(long) (BgL_arg1223z00_3508);
																	BgL_arg1461z00_1587 =
																		(long) (BgL_arg2284z00_3511);
														}}}
														BgL_wz00_1579 =
															(BgL_arg1461z00_1587 + BgL_cz00_1576);
													}
													if ((BgL_wz00_1579 < 16384L))
														{	/* Unsafe/bignumber.scm 516 */
															{	/* Unsafe/bignumber.scm 518 */
																int BgL_iz00_3518;
																int BgL_digitz00_3519;

																BgL_iz00_3518 = (int) (BgL_iz00_1575);
																BgL_digitz00_3519 = (int) (BgL_wz00_1579);
																{	/* Unsafe/bignumber.scm 269 */
																	obj_t BgL_arg1225z00_3520;
																	uint16_t BgL_arg1226z00_3521;

																	BgL_arg1225z00_3520 =
																		BGL_BIGNUM_U16VECT(BgL_rz00_1557);
																	{	/* Unsafe/bignumber.scm 269 */
																		long BgL_tmpz00_6448;

																		BgL_tmpz00_6448 =
																			(long) (BgL_digitz00_3519);
																		BgL_arg1226z00_3521 =
																			(uint16_t) (BgL_tmpz00_6448);
																	}
																	{	/* Unsafe/bignumber.scm 269 */
																		long BgL_tmpz00_6451;

																		BgL_tmpz00_6451 = (long) (BgL_iz00_3518);
																		BGL_U16VSET(BgL_arg1225z00_3520,
																			BgL_tmpz00_6451, BgL_arg1226z00_3521);
																	} BUNSPEC;
															}}
															{
																long BgL_cz00_6456;
																long BgL_iz00_6454;

																BgL_iz00_6454 = (BgL_iz00_1575 + 1L);
																BgL_cz00_6456 = 0L;
																BgL_cz00_1576 = BgL_cz00_6456;
																BgL_iz00_1575 = BgL_iz00_6454;
																goto BgL_zc3z04anonymousza31452ze3z87_1577;
															}
														}
													else
														{	/* Unsafe/bignumber.scm 516 */
															{	/* Unsafe/bignumber.scm 521 */
																long BgL_arg1457z00_1583;

																BgL_arg1457z00_1583 = (BgL_wz00_1579 - 16384L);
																{	/* Unsafe/bignumber.scm 521 */
																	int BgL_iz00_3527;
																	int BgL_digitz00_3528;

																	BgL_iz00_3527 = (int) (BgL_iz00_1575);
																	BgL_digitz00_3528 =
																		(int) (BgL_arg1457z00_1583);
																	{	/* Unsafe/bignumber.scm 269 */
																		obj_t BgL_arg1225z00_3529;
																		uint16_t BgL_arg1226z00_3530;

																		BgL_arg1225z00_3529 =
																			BGL_BIGNUM_U16VECT(BgL_rz00_1557);
																		{	/* Unsafe/bignumber.scm 269 */
																			long BgL_tmpz00_6461;

																			BgL_tmpz00_6461 =
																				(long) (BgL_digitz00_3528);
																			BgL_arg1226z00_3530 =
																				(uint16_t) (BgL_tmpz00_6461);
																		}
																		{	/* Unsafe/bignumber.scm 269 */
																			long BgL_tmpz00_6464;

																			BgL_tmpz00_6464 = (long) (BgL_iz00_3527);
																			BGL_U16VSET(BgL_arg1225z00_3529,
																				BgL_tmpz00_6464, BgL_arg1226z00_3530);
																		} BUNSPEC;
															}}}
															{
																long BgL_cz00_6469;
																long BgL_iz00_6467;

																BgL_iz00_6467 = (BgL_iz00_1575 + 1L);
																BgL_cz00_6469 = 1L;
																BgL_cz00_1576 = BgL_cz00_6469;
																BgL_iz00_1575 = BgL_iz00_6467;
																goto BgL_zc3z04anonymousza31452ze3z87_1577;
															}
														}
												}
											else
												{	/* Unsafe/bignumber.scm 513 */
													if ((BgL_cz00_1576 == 0L))
														{	/* Unsafe/bignumber.scm 524 */
															return
																BGl_bignumzd2shrinkzd2zz__bignumz00
																(BgL_rz00_1557, BgL_lenxz00_1554);
														}
													else
														{	/* Unsafe/bignumber.scm 524 */
															{	/* Unsafe/bignumber.scm 527 */
																int BgL_iz00_3535;
																int BgL_digitz00_3536;

																BgL_iz00_3535 = (int) (BgL_lenxz00_1554);
																BgL_digitz00_3536 = (int) (BgL_cz00_1576);
																{	/* Unsafe/bignumber.scm 269 */
																	obj_t BgL_arg1225z00_3537;
																	uint16_t BgL_arg1226z00_3538;

																	BgL_arg1225z00_3537 =
																		BGL_BIGNUM_U16VECT(BgL_rz00_1557);
																	{	/* Unsafe/bignumber.scm 269 */
																		long BgL_tmpz00_6476;

																		BgL_tmpz00_6476 =
																			(long) (BgL_digitz00_3536);
																		BgL_arg1226z00_3538 =
																			(uint16_t) (BgL_tmpz00_6476);
																	}
																	{	/* Unsafe/bignumber.scm 269 */
																		long BgL_tmpz00_6479;

																		BgL_tmpz00_6479 = (long) (BgL_iz00_3535);
																		BGL_U16VSET(BgL_arg1225z00_3537,
																			BgL_tmpz00_6479, BgL_arg1226z00_3538);
																	} BUNSPEC;
															}}
															return BgL_rz00_1557;
														}
												}
										}
								}
							}
						}
					else
						{
							long BgL_lenyz00_6485;
							long BgL_lenxz00_6484;
							obj_t BgL_yz00_6483;
							obj_t BgL_xz00_6482;

							BgL_xz00_6482 = BgL_xz00_44;
							BgL_yz00_6483 = BgL_yz00_45;
							BgL_lenxz00_6484 = BgL_lenxz00_1549;
							BgL_lenyz00_6485 = BgL_lenyz00_1550;
							BgL_lenyz00_1555 = BgL_lenyz00_6485;
							BgL_lenxz00_1554 = BgL_lenxz00_6484;
							BgL_yz00_1553 = BgL_yz00_6483;
							BgL_xz00_1552 = BgL_xz00_6482;
							goto BgL_zc3z04anonymousza31439ze3z87_1556;
						}
				}
			}
		}

	}



/* bignum-sub-nonneg */
	obj_t BGl_bignumzd2subzd2nonnegz00zz__bignumz00(obj_t BgL_xz00_46,
		obj_t BgL_yz00_47)
	{
		{	/* Unsafe/bignumber.scm 536 */
			{
				obj_t BgL_xz00_1613;
				obj_t BgL_yz00_1614;
				long BgL_lenxz00_1615;
				long BgL_lenyz00_1616;
				obj_t BgL_rz00_1597;

				{	/* Unsafe/bignumber.scm 589 */
					long BgL_arg1464z00_1595;
					long BgL_arg1465z00_1596;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_3668;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_3669;

							BgL_arg1218z00_3669 = BGL_BIGNUM_U16VECT(BgL_xz00_46);
							BgL_arg1217z00_3668 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3669);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_3671;

							BgL_xz00_3671 = (uint16_t) (BgL_arg1217z00_3668);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_3672;

								BgL_arg2284z00_3672 = (long) (BgL_xz00_3671);
								BgL_arg1464z00_1595 = (long) (BgL_arg2284z00_3672);
					}}}
					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_3675;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_3676;

							BgL_arg1218z00_3676 = BGL_BIGNUM_U16VECT(BgL_yz00_47);
							BgL_arg1217z00_3675 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3676);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_3678;

							BgL_xz00_3678 = (uint16_t) (BgL_arg1217z00_3675);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_3679;

								BgL_arg2284z00_3679 = (long) (BgL_xz00_3678);
								BgL_arg1465z00_1596 = (long) (BgL_arg2284z00_3679);
					}}}
					BgL_xz00_1613 = BgL_xz00_46;
					BgL_yz00_1614 = BgL_yz00_47;
					BgL_lenxz00_1615 = BgL_arg1464z00_1595;
					BgL_lenyz00_1616 = BgL_arg1465z00_1596;
					{	/* Unsafe/bignumber.scm 553 */
						obj_t BgL_rz00_1618;

						{	/* Unsafe/bignumber.scm 553 */
							int BgL_lenz00_3589;

							BgL_lenz00_3589 = (int) (BgL_lenxz00_1615);
							{	/* Unsafe/bignumber.scm 259 */
								obj_t BgL_arg1214z00_3590;

								{	/* Unsafe/bignumber.scm 259 */

									BgL_arg1214z00_3590 =
										BGl_makezd2u16vectorzd2zz__srfi4z00(
										(long) (BgL_lenz00_3589), (uint16_t) (0));
								}
								BgL_rz00_1618 = bgl_make_bignum(BgL_arg1214z00_3590);
						}}
						{
							long BgL_iz00_1620;
							long BgL_bz00_1621;

							BgL_iz00_1620 = 1L;
							BgL_bz00_1621 = 0L;
						BgL_zc3z04anonymousza31477ze3z87_1622:
							if ((BgL_iz00_1620 < BgL_lenyz00_1616))
								{	/* Unsafe/bignumber.scm 558 */
									long BgL_wz00_1624;

									{	/* Unsafe/bignumber.scm 558 */
										long BgL_arg1485z00_1630;

										{	/* Unsafe/bignumber.scm 558 */
											long BgL_arg1487z00_1631;
											long BgL_arg1488z00_1632;

											{	/* Unsafe/bignumber.scm 558 */
												int BgL_iz00_3596;

												BgL_iz00_3596 = (int) (BgL_iz00_1620);
												{	/* Unsafe/bignumber.scm 267 */
													uint16_t BgL_arg1223z00_3597;

													{	/* Unsafe/bignumber.scm 267 */
														obj_t BgL_arg1224z00_3598;

														BgL_arg1224z00_3598 =
															BGL_BIGNUM_U16VECT(BgL_xz00_1613);
														{	/* Unsafe/bignumber.scm 267 */
															long BgL_tmpz00_6504;

															BgL_tmpz00_6504 = (long) (BgL_iz00_3596);
															BgL_arg1223z00_3597 =
																BGL_U16VREF(BgL_arg1224z00_3598,
																BgL_tmpz00_6504);
													}}
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_arg2284z00_3600;

														BgL_arg2284z00_3600 = (long) (BgL_arg1223z00_3597);
														BgL_arg1487z00_1631 = (long) (BgL_arg2284z00_3600);
											}}}
											{	/* Unsafe/bignumber.scm 559 */
												int BgL_iz00_3603;

												BgL_iz00_3603 = (int) (BgL_iz00_1620);
												{	/* Unsafe/bignumber.scm 267 */
													uint16_t BgL_arg1223z00_3604;

													{	/* Unsafe/bignumber.scm 267 */
														obj_t BgL_arg1224z00_3605;

														BgL_arg1224z00_3605 =
															BGL_BIGNUM_U16VECT(BgL_yz00_1614);
														{	/* Unsafe/bignumber.scm 267 */
															long BgL_tmpz00_6511;

															BgL_tmpz00_6511 = (long) (BgL_iz00_3603);
															BgL_arg1223z00_3604 =
																BGL_U16VREF(BgL_arg1224z00_3605,
																BgL_tmpz00_6511);
													}}
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_arg2284z00_3607;

														BgL_arg2284z00_3607 = (long) (BgL_arg1223z00_3604);
														BgL_arg1488z00_1632 = (long) (BgL_arg2284z00_3607);
											}}}
											BgL_arg1485z00_1630 =
												(BgL_arg1487z00_1631 - BgL_arg1488z00_1632);
										}
										BgL_wz00_1624 = (BgL_arg1485z00_1630 - BgL_bz00_1621);
									}
									if ((BgL_wz00_1624 < 0L))
										{	/* Unsafe/bignumber.scm 561 */
											{	/* Unsafe/bignumber.scm 563 */
												long BgL_arg1480z00_1626;

												BgL_arg1480z00_1626 = (BgL_wz00_1624 + 16384L);
												{	/* Unsafe/bignumber.scm 563 */
													int BgL_iz00_3617;
													int BgL_digitz00_3618;

													BgL_iz00_3617 = (int) (BgL_iz00_1620);
													BgL_digitz00_3618 = (int) (BgL_arg1480z00_1626);
													{	/* Unsafe/bignumber.scm 269 */
														obj_t BgL_arg1225z00_3619;
														uint16_t BgL_arg1226z00_3620;

														BgL_arg1225z00_3619 =
															BGL_BIGNUM_U16VECT(BgL_rz00_1618);
														{	/* Unsafe/bignumber.scm 269 */
															long BgL_tmpz00_6524;

															BgL_tmpz00_6524 = (long) (BgL_digitz00_3618);
															BgL_arg1226z00_3620 =
																(uint16_t) (BgL_tmpz00_6524);
														}
														{	/* Unsafe/bignumber.scm 269 */
															long BgL_tmpz00_6527;

															BgL_tmpz00_6527 = (long) (BgL_iz00_3617);
															BGL_U16VSET(BgL_arg1225z00_3619, BgL_tmpz00_6527,
																BgL_arg1226z00_3620);
														} BUNSPEC;
											}}}
											{
												long BgL_bz00_6532;
												long BgL_iz00_6530;

												BgL_iz00_6530 = (BgL_iz00_1620 + 1L);
												BgL_bz00_6532 = 1L;
												BgL_bz00_1621 = BgL_bz00_6532;
												BgL_iz00_1620 = BgL_iz00_6530;
												goto BgL_zc3z04anonymousza31477ze3z87_1622;
											}
										}
									else
										{	/* Unsafe/bignumber.scm 561 */
											{	/* Unsafe/bignumber.scm 566 */
												int BgL_iz00_3624;
												int BgL_digitz00_3625;

												BgL_iz00_3624 = (int) (BgL_iz00_1620);
												BgL_digitz00_3625 = (int) (BgL_wz00_1624);
												{	/* Unsafe/bignumber.scm 269 */
													obj_t BgL_arg1225z00_3626;
													uint16_t BgL_arg1226z00_3627;

													BgL_arg1225z00_3626 =
														BGL_BIGNUM_U16VECT(BgL_rz00_1618);
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6536;

														BgL_tmpz00_6536 = (long) (BgL_digitz00_3625);
														BgL_arg1226z00_3627 = (uint16_t) (BgL_tmpz00_6536);
													}
													{	/* Unsafe/bignumber.scm 269 */
														long BgL_tmpz00_6539;

														BgL_tmpz00_6539 = (long) (BgL_iz00_3624);
														BGL_U16VSET(BgL_arg1225z00_3626, BgL_tmpz00_6539,
															BgL_arg1226z00_3627);
													} BUNSPEC;
											}}
											{
												long BgL_bz00_6544;
												long BgL_iz00_6542;

												BgL_iz00_6542 = (BgL_iz00_1620 + 1L);
												BgL_bz00_6544 = 0L;
												BgL_bz00_1621 = BgL_bz00_6544;
												BgL_iz00_1620 = BgL_iz00_6542;
												goto BgL_zc3z04anonymousza31477ze3z87_1622;
											}
										}
								}
							else
								{
									long BgL_iz00_1634;
									long BgL_bz00_1635;

									BgL_iz00_1634 = BgL_iz00_1620;
									BgL_bz00_1635 = BgL_bz00_1621;
								BgL_zc3z04anonymousza31489ze3z87_1636:
									if ((BgL_iz00_1634 < BgL_lenxz00_1615))
										{	/* Unsafe/bignumber.scm 572 */
											long BgL_wz00_1638;

											{	/* Unsafe/bignumber.scm 572 */
												long BgL_arg1496z00_1644;

												{	/* Unsafe/bignumber.scm 572 */
													int BgL_iz00_3633;

													BgL_iz00_3633 = (int) (BgL_iz00_1634);
													{	/* Unsafe/bignumber.scm 267 */
														uint16_t BgL_arg1223z00_3634;

														{	/* Unsafe/bignumber.scm 267 */
															obj_t BgL_arg1224z00_3635;

															BgL_arg1224z00_3635 =
																BGL_BIGNUM_U16VECT(BgL_xz00_1613);
															{	/* Unsafe/bignumber.scm 267 */
																long BgL_tmpz00_6549;

																BgL_tmpz00_6549 = (long) (BgL_iz00_3633);
																BgL_arg1223z00_3634 =
																	BGL_U16VREF(BgL_arg1224z00_3635,
																	BgL_tmpz00_6549);
														}}
														{	/* Unsafe/bignumber.scm 267 */
															long BgL_arg2284z00_3637;

															BgL_arg2284z00_3637 =
																(long) (BgL_arg1223z00_3634);
															BgL_arg1496z00_1644 =
																(long) (BgL_arg2284z00_3637);
												}}}
												BgL_wz00_1638 = (BgL_arg1496z00_1644 - BgL_bz00_1635);
											}
											if ((BgL_wz00_1638 < 0L))
												{	/* Unsafe/bignumber.scm 573 */
													{	/* Unsafe/bignumber.scm 575 */
														long BgL_arg1492z00_1640;

														BgL_arg1492z00_1640 = (BgL_wz00_1638 + 16384L);
														{	/* Unsafe/bignumber.scm 575 */
															int BgL_iz00_3645;
															int BgL_digitz00_3646;

															BgL_iz00_3645 = (int) (BgL_iz00_1634);
															BgL_digitz00_3646 = (int) (BgL_arg1492z00_1640);
															{	/* Unsafe/bignumber.scm 269 */
																obj_t BgL_arg1225z00_3647;
																uint16_t BgL_arg1226z00_3648;

																BgL_arg1225z00_3647 =
																	BGL_BIGNUM_U16VECT(BgL_rz00_1618);
																{	/* Unsafe/bignumber.scm 269 */
																	long BgL_tmpz00_6561;

																	BgL_tmpz00_6561 = (long) (BgL_digitz00_3646);
																	BgL_arg1226z00_3648 =
																		(uint16_t) (BgL_tmpz00_6561);
																}
																{	/* Unsafe/bignumber.scm 269 */
																	long BgL_tmpz00_6564;

																	BgL_tmpz00_6564 = (long) (BgL_iz00_3645);
																	BGL_U16VSET(BgL_arg1225z00_3647,
																		BgL_tmpz00_6564, BgL_arg1226z00_3648);
																} BUNSPEC;
													}}}
													{
														long BgL_bz00_6569;
														long BgL_iz00_6567;

														BgL_iz00_6567 = (BgL_iz00_1634 + 1L);
														BgL_bz00_6569 = 1L;
														BgL_bz00_1635 = BgL_bz00_6569;
														BgL_iz00_1634 = BgL_iz00_6567;
														goto BgL_zc3z04anonymousza31489ze3z87_1636;
													}
												}
											else
												{	/* Unsafe/bignumber.scm 573 */
													{	/* Unsafe/bignumber.scm 578 */
														int BgL_iz00_3652;
														int BgL_digitz00_3653;

														BgL_iz00_3652 = (int) (BgL_iz00_1634);
														BgL_digitz00_3653 = (int) (BgL_wz00_1638);
														{	/* Unsafe/bignumber.scm 269 */
															obj_t BgL_arg1225z00_3654;
															uint16_t BgL_arg1226z00_3655;

															BgL_arg1225z00_3654 =
																BGL_BIGNUM_U16VECT(BgL_rz00_1618);
															{	/* Unsafe/bignumber.scm 269 */
																long BgL_tmpz00_6573;

																BgL_tmpz00_6573 = (long) (BgL_digitz00_3653);
																BgL_arg1226z00_3655 =
																	(uint16_t) (BgL_tmpz00_6573);
															}
															{	/* Unsafe/bignumber.scm 269 */
																long BgL_tmpz00_6576;

																BgL_tmpz00_6576 = (long) (BgL_iz00_3652);
																BGL_U16VSET(BgL_arg1225z00_3654,
																	BgL_tmpz00_6576, BgL_arg1226z00_3655);
															} BUNSPEC;
													}}
													{
														long BgL_bz00_6581;
														long BgL_iz00_6579;

														BgL_iz00_6579 = (BgL_iz00_1634 + 1L);
														BgL_bz00_6581 = 0L;
														BgL_bz00_1635 = BgL_bz00_6581;
														BgL_iz00_1634 = BgL_iz00_6579;
														goto BgL_zc3z04anonymousza31489ze3z87_1636;
													}
												}
										}
									else
										{	/* Unsafe/bignumber.scm 570 */
											if ((BgL_bz00_1635 == 0L))
												{	/* Unsafe/bignumber.scm 265 */
													obj_t BgL_arg1221z00_3661;
													uint16_t BgL_arg1222z00_3662;

													BgL_arg1221z00_3661 =
														BGL_BIGNUM_U16VECT(BgL_rz00_1618);
													BgL_arg1222z00_3662 = (uint16_t) (1L);
													BGL_U16VSET(BgL_arg1221z00_3661, 0L,
														BgL_arg1222z00_3662);
													BUNSPEC;
												}
											else
												{	/* Unsafe/bignumber.scm 581 */
													{	/* Unsafe/bignumber.scm 265 */
														obj_t BgL_arg1221z00_3665;
														uint16_t BgL_arg1222z00_3666;

														BgL_arg1221z00_3665 =
															BGL_BIGNUM_U16VECT(BgL_rz00_1618);
														BgL_arg1222z00_3666 = (uint16_t) (0L);
														BGL_U16VSET(BgL_arg1221z00_3665, 0L,
															BgL_arg1222z00_3666);
														BUNSPEC;
													}
													{	/* Unsafe/bignumber.scm 585 */
														bool_t BgL_tmpz00_6590;

														BgL_rz00_1597 = BgL_rz00_1618;
														{	/* Unsafe/bignumber.scm 539 */
															long BgL_lrz00_1599;

															{	/* Unsafe/bignumber.scm 261 */
																long BgL_arg1217z00_3557;

																{	/* Unsafe/bignumber.scm 261 */
																	obj_t BgL_arg1218z00_3558;

																	BgL_arg1218z00_3558 =
																		BGL_BIGNUM_U16VECT(BgL_rz00_1597);
																	BgL_arg1217z00_3557 =
																		BGL_HVECTOR_LENGTH(BgL_arg1218z00_3558);
																}
																{	/* Unsafe/bignumber.scm 261 */
																	uint16_t BgL_xz00_3560;

																	BgL_xz00_3560 =
																		(uint16_t) (BgL_arg1217z00_3557);
																	{	/* Unsafe/bignumber.scm 261 */
																		long BgL_arg2284z00_3561;

																		BgL_arg2284z00_3561 =
																			(long) (BgL_xz00_3560);
																		BgL_lrz00_1599 =
																			(long) (BgL_arg2284z00_3561);
															}}}
															{
																long BgL_iz00_1601;
																long BgL_cz00_1602;

																BgL_iz00_1601 = 1L;
																BgL_cz00_1602 = 0L;
															BgL_zc3z04anonymousza31467ze3z87_1603:
																if ((BgL_iz00_1601 < BgL_lrz00_1599))
																	{	/* Unsafe/bignumber.scm 543 */
																		long BgL_wz00_1605;

																		{	/* Unsafe/bignumber.scm 543 */
																			long BgL_arg1475z00_1611;

																			{	/* Unsafe/bignumber.scm 543 */
																				int BgL_iz00_3566;

																				BgL_iz00_3566 = (int) (BgL_iz00_1601);
																				{	/* Unsafe/bignumber.scm 267 */
																					uint16_t BgL_arg1223z00_3567;

																					{	/* Unsafe/bignumber.scm 267 */
																						obj_t BgL_arg1224z00_3568;

																						BgL_arg1224z00_3568 =
																							BGL_BIGNUM_U16VECT(BgL_rz00_1597);
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_tmpz00_6600;

																							BgL_tmpz00_6600 =
																								(long) (BgL_iz00_3566);
																							BgL_arg1223z00_3567 =
																								BGL_U16VREF(BgL_arg1224z00_3568,
																								BgL_tmpz00_6600);
																					}}
																					{	/* Unsafe/bignumber.scm 267 */
																						long BgL_arg2284z00_3570;

																						BgL_arg2284z00_3570 =
																							(long) (BgL_arg1223z00_3567);
																						BgL_arg1475z00_1611 =
																							(long) (BgL_arg2284z00_3570);
																			}}}
																			BgL_wz00_1605 =
																				(BgL_arg1475z00_1611 + BgL_cz00_1602);
																		}
																		if ((0L < BgL_wz00_1605))
																			{	/* Unsafe/bignumber.scm 544 */
																				{	/* Unsafe/bignumber.scm 546 */
																					long BgL_arg1471z00_1607;

																					BgL_arg1471z00_1607 =
																						(16384L - BgL_wz00_1605);
																					{	/* Unsafe/bignumber.scm 546 */
																						int BgL_iz00_3578;
																						int BgL_digitz00_3579;

																						BgL_iz00_3578 =
																							(int) (BgL_iz00_1601);
																						BgL_digitz00_3579 =
																							(int) (BgL_arg1471z00_1607);
																						{	/* Unsafe/bignumber.scm 269 */
																							obj_t BgL_arg1225z00_3580;
																							uint16_t BgL_arg1226z00_3581;

																							BgL_arg1225z00_3580 =
																								BGL_BIGNUM_U16VECT
																								(BgL_rz00_1597);
																							{	/* Unsafe/bignumber.scm 269 */
																								long BgL_tmpz00_6612;

																								BgL_tmpz00_6612 =
																									(long) (BgL_digitz00_3579);
																								BgL_arg1226z00_3581 =
																									(uint16_t) (BgL_tmpz00_6612);
																							}
																							{	/* Unsafe/bignumber.scm 269 */
																								long BgL_tmpz00_6615;

																								BgL_tmpz00_6615 =
																									(long) (BgL_iz00_3578);
																								BGL_U16VSET(BgL_arg1225z00_3580,
																									BgL_tmpz00_6615,
																									BgL_arg1226z00_3581);
																							} BUNSPEC;
																				}}}
																				{
																					long BgL_cz00_6620;
																					long BgL_iz00_6618;

																					BgL_iz00_6618 = (BgL_iz00_1601 + 1L);
																					BgL_cz00_6620 = 1L;
																					BgL_cz00_1602 = BgL_cz00_6620;
																					BgL_iz00_1601 = BgL_iz00_6618;
																					goto
																						BgL_zc3z04anonymousza31467ze3z87_1603;
																				}
																			}
																		else
																			{	/* Unsafe/bignumber.scm 544 */
																				{	/* Unsafe/bignumber.scm 549 */
																					int BgL_iz00_3585;

																					BgL_iz00_3585 = (int) (BgL_iz00_1601);
																					{	/* Unsafe/bignumber.scm 269 */
																						obj_t BgL_arg1225z00_3586;
																						uint16_t BgL_arg1226z00_3587;

																						BgL_arg1225z00_3586 =
																							BGL_BIGNUM_U16VECT(BgL_rz00_1597);
																						BgL_arg1226z00_3587 =
																							(uint16_t) (0L);
																						{	/* Unsafe/bignumber.scm 269 */
																							long BgL_tmpz00_6624;

																							BgL_tmpz00_6624 =
																								(long) (BgL_iz00_3585);
																							BGL_U16VSET(BgL_arg1225z00_3586,
																								BgL_tmpz00_6624,
																								BgL_arg1226z00_3587);
																						} BUNSPEC;
																				}}
																				{
																					long BgL_cz00_6629;
																					long BgL_iz00_6627;

																					BgL_iz00_6627 = (BgL_iz00_1601 + 1L);
																					BgL_cz00_6629 = 0L;
																					BgL_cz00_1602 = BgL_cz00_6629;
																					BgL_iz00_1601 = BgL_iz00_6627;
																					goto
																						BgL_zc3z04anonymousza31467ze3z87_1603;
																				}
																			}
																	}
																else
																	{	/* Unsafe/bignumber.scm 541 */
																		BgL_tmpz00_6590 = ((bool_t) 0);
																	}
															}
														}
														BBOOL(BgL_tmpz00_6590);
													}
												}
										}
								}
						}
						return
							BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
							(BgL_rz00_1618);
					}
				}
			}
		}

	}



/* bignum-sum2 */
	obj_t BGl_bignumzd2sum2zd2zz__bignumz00(obj_t BgL_xz00_48, obj_t BgL_yz00_49,
		long BgL_signzd2xzd2_50, long BgL_signzd2yzd2_51)
	{
		{	/* Unsafe/bignumber.scm 591 */
			if ((BgL_signzd2xzd2_50 == BgL_signzd2yzd2_51))
				{	/* Unsafe/bignumber.scm 600 */
					obj_t BgL_arg1499z00_1652;

					BgL_arg1499z00_1652 =
						BGl_bignumzd2addzd2nonnegz00zz__bignumz00(BgL_xz00_48, BgL_yz00_49);
					{	/* Unsafe/bignumber.scm 594 */
						bool_t BgL_test2728z00_6635;

						{	/* Unsafe/bignumber.scm 594 */
							long BgL_arg1512z00_3703;

							{	/* Unsafe/bignumber.scm 263 */
								uint16_t BgL_arg1219z00_3706;

								{	/* Unsafe/bignumber.scm 263 */
									obj_t BgL_arg1220z00_3707;

									BgL_arg1220z00_3707 = BGL_BIGNUM_U16VECT(BgL_arg1499z00_1652);
									BgL_arg1219z00_3706 = BGL_U16VREF(BgL_arg1220z00_3707, 0L);
								}
								{	/* Unsafe/bignumber.scm 263 */
									long BgL_arg2284z00_3709;

									BgL_arg2284z00_3709 = (long) (BgL_arg1219z00_3706);
									BgL_arg1512z00_3703 = (long) (BgL_arg2284z00_3709);
							}}
							BgL_test2728z00_6635 =
								(BgL_arg1512z00_3703 == BgL_signzd2xzd2_50);
						}
						if (BgL_test2728z00_6635)
							{	/* Unsafe/bignumber.scm 594 */
								BGl_bignumzd2signzd2setz12z12zz__bignumz00(BgL_arg1499z00_1652,
									(int) (1L));
							}
						else
							{	/* Unsafe/bignumber.scm 594 */
								BGl_bignumzd2signzd2setz12z12zz__bignumz00(BgL_arg1499z00_1652,
									(int) (0L));
					}}
					return
						BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
						(BgL_arg1499z00_1652);
				}
			else
				{	/* Unsafe/bignumber.scm 601 */
					bool_t BgL_test2729z00_6646;

					{	/* Unsafe/bignumber.scm 601 */
						long BgL_arg1505z00_1658;
						long BgL_arg1506z00_1659;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_3716;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_3717;

								BgL_arg1218z00_3717 = BGL_BIGNUM_U16VECT(BgL_xz00_48);
								BgL_arg1217z00_3716 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3717);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_3719;

								BgL_xz00_3719 = (uint16_t) (BgL_arg1217z00_3716);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_3720;

									BgL_arg2284z00_3720 = (long) (BgL_xz00_3719);
									BgL_arg1505z00_1658 = (long) (BgL_arg2284z00_3720);
						}}}
						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_3723;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_3724;

								BgL_arg1218z00_3724 = BGL_BIGNUM_U16VECT(BgL_yz00_49);
								BgL_arg1217z00_3723 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3724);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_3726;

								BgL_xz00_3726 = (uint16_t) (BgL_arg1217z00_3723);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_3727;

									BgL_arg2284z00_3727 = (long) (BgL_xz00_3726);
									BgL_arg1506z00_1659 = (long) (BgL_arg2284z00_3727);
						}}}
						BgL_test2729z00_6646 = (BgL_arg1505z00_1658 < BgL_arg1506z00_1659);
					}
					if (BgL_test2729z00_6646)
						{	/* Unsafe/bignumber.scm 602 */
							obj_t BgL_arg1503z00_1656;

							BgL_arg1503z00_1656 =
								BGl_bignumzd2subzd2nonnegz00zz__bignumz00(BgL_yz00_49,
								BgL_xz00_48);
							{	/* Unsafe/bignumber.scm 594 */
								bool_t BgL_test2730z00_6659;

								{	/* Unsafe/bignumber.scm 594 */
									long BgL_arg1512z00_3732;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_3735;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_3736;

											BgL_arg1220z00_3736 =
												BGL_BIGNUM_U16VECT(BgL_arg1503z00_1656);
											BgL_arg1219z00_3735 =
												BGL_U16VREF(BgL_arg1220z00_3736, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_3738;

											BgL_arg2284z00_3738 = (long) (BgL_arg1219z00_3735);
											BgL_arg1512z00_3732 = (long) (BgL_arg2284z00_3738);
									}}
									BgL_test2730z00_6659 =
										(BgL_arg1512z00_3732 == BgL_signzd2yzd2_51);
								}
								if (BgL_test2730z00_6659)
									{	/* Unsafe/bignumber.scm 594 */
										BGl_bignumzd2signzd2setz12z12zz__bignumz00
											(BgL_arg1503z00_1656, (int) (1L));
									}
								else
									{	/* Unsafe/bignumber.scm 594 */
										BGl_bignumzd2signzd2setz12z12zz__bignumz00
											(BgL_arg1503z00_1656, (int) (0L));
							}}
							return
								BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
								(BgL_arg1503z00_1656);
						}
					else
						{	/* Unsafe/bignumber.scm 604 */
							obj_t BgL_arg1504z00_1657;

							BgL_arg1504z00_1657 =
								BGl_bignumzd2subzd2nonnegz00zz__bignumz00(BgL_xz00_48,
								BgL_yz00_49);
							{	/* Unsafe/bignumber.scm 594 */
								bool_t BgL_test2731z00_6671;

								{	/* Unsafe/bignumber.scm 594 */
									long BgL_arg1512z00_3745;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_3748;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_3749;

											BgL_arg1220z00_3749 =
												BGL_BIGNUM_U16VECT(BgL_arg1504z00_1657);
											BgL_arg1219z00_3748 =
												BGL_U16VREF(BgL_arg1220z00_3749, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_3751;

											BgL_arg2284z00_3751 = (long) (BgL_arg1219z00_3748);
											BgL_arg1512z00_3745 = (long) (BgL_arg2284z00_3751);
									}}
									BgL_test2731z00_6671 =
										(BgL_arg1512z00_3745 == BgL_signzd2xzd2_50);
								}
								if (BgL_test2731z00_6671)
									{	/* Unsafe/bignumber.scm 594 */
										BGl_bignumzd2signzd2setz12z12zz__bignumz00
											(BgL_arg1504z00_1657, (int) (1L));
									}
								else
									{	/* Unsafe/bignumber.scm 594 */
										BGl_bignumzd2signzd2setz12z12zz__bignumz00
											(BgL_arg1504z00_1657, (int) (0L));
							}}
							return
								BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
								(BgL_arg1504z00_1657);
						}
				}
		}

	}



/* $$+bx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_add(obj_t BgL_xz00_52, obj_t BgL_yz00_53)
	{
		{	/* Unsafe/bignumber.scm 606 */
			{	/* Unsafe/bignumber.scm 607 */
				long BgL_arg1516z00_3757;
				long BgL_arg1518z00_3758;

				{	/* Unsafe/bignumber.scm 263 */
					uint16_t BgL_arg1219z00_3760;

					{	/* Unsafe/bignumber.scm 263 */
						obj_t BgL_arg1220z00_3761;

						BgL_arg1220z00_3761 = BGL_BIGNUM_U16VECT(BgL_xz00_52);
						BgL_arg1219z00_3760 = BGL_U16VREF(BgL_arg1220z00_3761, 0L);
					}
					{	/* Unsafe/bignumber.scm 263 */
						long BgL_arg2284z00_3763;

						BgL_arg2284z00_3763 = (long) (BgL_arg1219z00_3760);
						BgL_arg1516z00_3757 = (long) (BgL_arg2284z00_3763);
				}}
				{	/* Unsafe/bignumber.scm 263 */
					uint16_t BgL_arg1219z00_3766;

					{	/* Unsafe/bignumber.scm 263 */
						obj_t BgL_arg1220z00_3767;

						BgL_arg1220z00_3767 = BGL_BIGNUM_U16VECT(BgL_yz00_53);
						BgL_arg1219z00_3766 = BGL_U16VREF(BgL_arg1220z00_3767, 0L);
					}
					{	/* Unsafe/bignumber.scm 263 */
						long BgL_arg2284z00_3769;

						BgL_arg2284z00_3769 = (long) (BgL_arg1219z00_3766);
						BgL_arg1518z00_3758 = (long) (BgL_arg2284z00_3769);
				}}
				return
					BGl_bignumzd2sum2zd2zz__bignumz00(BgL_xz00_52, BgL_yz00_53,
					BgL_arg1516z00_3757, BgL_arg1518z00_3758);
			}
		}

	}



/* &$$+bx */
	obj_t BGl_z62z42z42zb2bxzd0zz__bignumz00(obj_t BgL_envz00_5524,
		obj_t BgL_xz00_5525, obj_t BgL_yz00_5526)
	{
		{	/* Unsafe/bignumber.scm 606 */
			{	/* Unsafe/bignumber.scm 607 */
				obj_t BgL_auxz00_6698;
				obj_t BgL_auxz00_6691;

				if (BIGNUMP(BgL_yz00_5526))
					{	/* Unsafe/bignumber.scm 607 */
						BgL_auxz00_6698 = BgL_yz00_5526;
					}
				else
					{
						obj_t BgL_auxz00_6701;

						BgL_auxz00_6701 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(20617L), BGl_string2506z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5526);
						FAILURE(BgL_auxz00_6701, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5525))
					{	/* Unsafe/bignumber.scm 607 */
						BgL_auxz00_6691 = BgL_xz00_5525;
					}
				else
					{
						obj_t BgL_auxz00_6694;

						BgL_auxz00_6694 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(20617L), BGl_string2506z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5525);
						FAILURE(BgL_auxz00_6694, BFALSE, BFALSE);
					}
				return bgl_bignum_add(BgL_auxz00_6691, BgL_auxz00_6698);
			}
		}

	}



/* $$-bx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_sub(obj_t BgL_xz00_54, obj_t BgL_yz00_55)
	{
		{	/* Unsafe/bignumber.scm 609 */
			{	/* Unsafe/bignumber.scm 610 */
				long BgL_arg1519z00_3771;
				long BgL_arg1520z00_3772;

				{	/* Unsafe/bignumber.scm 263 */
					uint16_t BgL_arg1219z00_3775;

					{	/* Unsafe/bignumber.scm 263 */
						obj_t BgL_arg1220z00_3776;

						BgL_arg1220z00_3776 = BGL_BIGNUM_U16VECT(BgL_xz00_54);
						BgL_arg1219z00_3775 = BGL_U16VREF(BgL_arg1220z00_3776, 0L);
					}
					{	/* Unsafe/bignumber.scm 263 */
						long BgL_arg2284z00_3778;

						BgL_arg2284z00_3778 = (long) (BgL_arg1219z00_3775);
						BgL_arg1519z00_3771 = (long) (BgL_arg2284z00_3778);
				}}
				{	/* Unsafe/bignumber.scm 610 */
					long BgL_arg1521z00_3773;

					{	/* Unsafe/bignumber.scm 263 */
						uint16_t BgL_arg1219z00_3781;

						{	/* Unsafe/bignumber.scm 263 */
							obj_t BgL_arg1220z00_3782;

							BgL_arg1220z00_3782 = BGL_BIGNUM_U16VECT(BgL_yz00_55);
							BgL_arg1219z00_3781 = BGL_U16VREF(BgL_arg1220z00_3782, 0L);
						}
						{	/* Unsafe/bignumber.scm 263 */
							long BgL_arg2284z00_3784;

							BgL_arg2284z00_3784 = (long) (BgL_arg1219z00_3781);
							BgL_arg1521z00_3773 = (long) (BgL_arg2284z00_3784);
					}}
					BgL_arg1520z00_3772 = (1L - BgL_arg1521z00_3773);
				}
				return
					BGl_bignumzd2sum2zd2zz__bignumz00(BgL_xz00_54, BgL_yz00_55,
					BgL_arg1519z00_3771, BgL_arg1520z00_3772);
			}
		}

	}



/* &$$-bx */
	obj_t BGl_z62z42z42zd2bxzb0zz__bignumz00(obj_t BgL_envz00_5527,
		obj_t BgL_xz00_5528, obj_t BgL_yz00_5529)
	{
		{	/* Unsafe/bignumber.scm 609 */
			{	/* Unsafe/bignumber.scm 610 */
				obj_t BgL_auxz00_6723;
				obj_t BgL_auxz00_6716;

				if (BIGNUMP(BgL_yz00_5529))
					{	/* Unsafe/bignumber.scm 610 */
						BgL_auxz00_6723 = BgL_yz00_5529;
					}
				else
					{
						obj_t BgL_auxz00_6726;

						BgL_auxz00_6726 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(20692L), BGl_string2507z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5529);
						FAILURE(BgL_auxz00_6726, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5528))
					{	/* Unsafe/bignumber.scm 610 */
						BgL_auxz00_6716 = BgL_xz00_5528;
					}
				else
					{
						obj_t BgL_auxz00_6719;

						BgL_auxz00_6719 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(20692L), BGl_string2507z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5528);
						FAILURE(BgL_auxz00_6719, BFALSE, BFALSE);
					}
				return bgl_bignum_sub(BgL_auxz00_6716, BgL_auxz00_6723);
			}
		}

	}



/* $$negbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_neg(obj_t BgL_xz00_56)
	{
		{	/* Unsafe/bignumber.scm 612 */
			{	/* Unsafe/bignumber.scm 613 */
				obj_t BgL_res2339z00_3805;

				{	/* Unsafe/bignumber.scm 613 */
					obj_t BgL_xz00_3787;

					BgL_xz00_3787 = BGl_bignumzd2za7eroz75zz__bignumz00;
					{	/* Unsafe/bignumber.scm 610 */
						long BgL_arg1519z00_3789;
						long BgL_arg1520z00_3790;

						{	/* Unsafe/bignumber.scm 263 */
							uint16_t BgL_arg1219z00_3793;

							{	/* Unsafe/bignumber.scm 263 */
								obj_t BgL_arg1220z00_3794;

								BgL_arg1220z00_3794 = BGL_BIGNUM_U16VECT(BgL_xz00_3787);
								BgL_arg1219z00_3793 = BGL_U16VREF(BgL_arg1220z00_3794, 0L);
							}
							{	/* Unsafe/bignumber.scm 263 */
								long BgL_arg2284z00_3796;

								BgL_arg2284z00_3796 = (long) (BgL_arg1219z00_3793);
								BgL_arg1519z00_3789 = (long) (BgL_arg2284z00_3796);
						}}
						{	/* Unsafe/bignumber.scm 610 */
							long BgL_arg1521z00_3791;

							{	/* Unsafe/bignumber.scm 263 */
								uint16_t BgL_arg1219z00_3799;

								{	/* Unsafe/bignumber.scm 263 */
									obj_t BgL_arg1220z00_3800;

									BgL_arg1220z00_3800 = BGL_BIGNUM_U16VECT(BgL_xz00_56);
									BgL_arg1219z00_3799 = BGL_U16VREF(BgL_arg1220z00_3800, 0L);
								}
								{	/* Unsafe/bignumber.scm 263 */
									long BgL_arg2284z00_3802;

									BgL_arg2284z00_3802 = (long) (BgL_arg1219z00_3799);
									BgL_arg1521z00_3791 = (long) (BgL_arg2284z00_3802);
							}}
							BgL_arg1520z00_3790 = (1L - BgL_arg1521z00_3791);
						}
						BgL_res2339z00_3805 =
							BGl_bignumzd2sum2zd2zz__bignumz00(BgL_xz00_3787, BgL_xz00_56,
							BgL_arg1519z00_3789, BgL_arg1520z00_3790);
				}}
				return BgL_res2339z00_3805;
			}
		}

	}



/* &$$negbx */
	obj_t BGl_z62z42z42negbxz62zz__bignumz00(obj_t BgL_envz00_5530,
		obj_t BgL_xz00_5531)
	{
		{	/* Unsafe/bignumber.scm 612 */
			{	/* Unsafe/bignumber.scm 613 */
				obj_t BgL_auxz00_6741;

				if (BIGNUMP(BgL_xz00_5531))
					{	/* Unsafe/bignumber.scm 613 */
						BgL_auxz00_6741 = BgL_xz00_5531;
					}
				else
					{
						obj_t BgL_auxz00_6744;

						BgL_auxz00_6744 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(20758L), BGl_string2508z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5531);
						FAILURE(BgL_auxz00_6744, BFALSE, BFALSE);
					}
				return bgl_bignum_neg(BgL_auxz00_6741);
			}
		}

	}



/* $$*bx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_mul(obj_t BgL_xz00_60, obj_t BgL_yz00_61)
	{
		{	/* Unsafe/bignumber.scm 634 */
			{
				obj_t BgL_xz00_1699;
				obj_t BgL_yz00_1700;
				long BgL_lenxz00_1701;
				long BgL_lenyz00_1702;

				{	/* Unsafe/bignumber.scm 665 */
					obj_t BgL_arg1536z00_1696;

					{	/* Unsafe/bignumber.scm 665 */
						long BgL_arg1541z00_1697;
						long BgL_arg1542z00_1698;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_3886;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_3887;

								BgL_arg1218z00_3887 = BGL_BIGNUM_U16VECT(BgL_xz00_60);
								BgL_arg1217z00_3886 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3887);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_3889;

								BgL_xz00_3889 = (uint16_t) (BgL_arg1217z00_3886);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_3890;

									BgL_arg2284z00_3890 = (long) (BgL_xz00_3889);
									BgL_arg1541z00_1697 = (long) (BgL_arg2284z00_3890);
						}}}
						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_3893;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_3894;

								BgL_arg1218z00_3894 = BGL_BIGNUM_U16VECT(BgL_yz00_61);
								BgL_arg1217z00_3893 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3894);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_3896;

								BgL_xz00_3896 = (uint16_t) (BgL_arg1217z00_3893);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_3897;

									BgL_arg2284z00_3897 = (long) (BgL_xz00_3896);
									BgL_arg1542z00_1698 = (long) (BgL_arg2284z00_3897);
						}}}
						BgL_xz00_1699 = BgL_xz00_60;
						BgL_yz00_1700 = BgL_yz00_61;
						BgL_lenxz00_1701 = BgL_arg1541z00_1697;
						BgL_lenyz00_1702 = BgL_arg1542z00_1698;
						{	/* Unsafe/bignumber.scm 637 */
							obj_t BgL_rz00_1704;

							{	/* Unsafe/bignumber.scm 637 */
								long BgL_arg1569z00_1737;

								BgL_arg1569z00_1737 =
									((BgL_lenxz00_1701 + BgL_lenyz00_1702) - 1L);
								{	/* Unsafe/bignumber.scm 637 */
									int BgL_lenz00_3809;

									BgL_lenz00_3809 = (int) (BgL_arg1569z00_1737);
									{	/* Unsafe/bignumber.scm 259 */
										obj_t BgL_arg1214z00_3810;

										{	/* Unsafe/bignumber.scm 259 */

											BgL_arg1214z00_3810 =
												BGl_makezd2u16vectorzd2zz__srfi4z00(
												(long) (BgL_lenz00_3809), (uint16_t) (0));
										}
										BgL_rz00_1704 = bgl_make_bignum(BgL_arg1214z00_3810);
							}}}
							{	/* Unsafe/bignumber.scm 639 */
								bool_t BgL_test2737z00_6765;

								{	/* Unsafe/bignumber.scm 639 */
									long BgL_arg1547z00_1708;
									long BgL_arg1548z00_1709;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_3814;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_3815;

											BgL_arg1220z00_3815 = BGL_BIGNUM_U16VECT(BgL_xz00_1699);
											BgL_arg1219z00_3814 =
												BGL_U16VREF(BgL_arg1220z00_3815, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_3817;

											BgL_arg2284z00_3817 = (long) (BgL_arg1219z00_3814);
											BgL_arg1547z00_1708 = (long) (BgL_arg2284z00_3817);
									}}
									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_3820;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_3821;

											BgL_arg1220z00_3821 = BGL_BIGNUM_U16VECT(BgL_yz00_1700);
											BgL_arg1219z00_3820 =
												BGL_U16VREF(BgL_arg1220z00_3821, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_3823;

											BgL_arg2284z00_3823 = (long) (BgL_arg1219z00_3820);
											BgL_arg1548z00_1709 = (long) (BgL_arg2284z00_3823);
									}}
									BgL_test2737z00_6765 =
										(BgL_arg1547z00_1708 == BgL_arg1548z00_1709);
								}
								if (BgL_test2737z00_6765)
									{	/* Unsafe/bignumber.scm 265 */
										obj_t BgL_arg1221z00_3829;
										uint16_t BgL_arg1222z00_3830;

										BgL_arg1221z00_3829 = BGL_BIGNUM_U16VECT(BgL_rz00_1704);
										BgL_arg1222z00_3830 = (uint16_t) (1L);
										BGL_U16VSET(BgL_arg1221z00_3829, 0L, BgL_arg1222z00_3830);
										BUNSPEC;
									}
								else
									{	/* Unsafe/bignumber.scm 265 */
										obj_t BgL_arg1221z00_3833;
										uint16_t BgL_arg1222z00_3834;

										BgL_arg1221z00_3833 = BGL_BIGNUM_U16VECT(BgL_rz00_1704);
										BgL_arg1222z00_3834 = (uint16_t) (0L);
										BGL_U16VSET(BgL_arg1221z00_3833, 0L, BgL_arg1222z00_3834);
										BUNSPEC;
									}
							}
							{
								long BgL_jz00_1711;

								BgL_jz00_1711 = 1L;
							BgL_zc3z04anonymousza31549ze3z87_1712:
								if ((BgL_jz00_1711 < BgL_lenyz00_1702))
									{	/* Unsafe/bignumber.scm 646 */
										long BgL_dz00_1714;

										{	/* Unsafe/bignumber.scm 646 */
											int BgL_iz00_3838;

											BgL_iz00_3838 = (int) (BgL_jz00_1711);
											{	/* Unsafe/bignumber.scm 267 */
												uint16_t BgL_arg1223z00_3839;

												{	/* Unsafe/bignumber.scm 267 */
													obj_t BgL_arg1224z00_3840;

													BgL_arg1224z00_3840 =
														BGL_BIGNUM_U16VECT(BgL_yz00_1700);
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_tmpz00_6785;

														BgL_tmpz00_6785 = (long) (BgL_iz00_3838);
														BgL_arg1223z00_3839 =
															BGL_U16VREF(BgL_arg1224z00_3840, BgL_tmpz00_6785);
												}}
												{	/* Unsafe/bignumber.scm 267 */
													long BgL_arg2284z00_3842;

													BgL_arg2284z00_3842 = (long) (BgL_arg1223z00_3839);
													BgL_dz00_1714 = (long) (BgL_arg2284z00_3842);
										}}}
										if ((BgL_dz00_1714 == 0L))
											{
												long BgL_jz00_6792;

												BgL_jz00_6792 = (BgL_jz00_1711 + 1L);
												BgL_jz00_1711 = BgL_jz00_6792;
												goto BgL_zc3z04anonymousza31549ze3z87_1712;
											}
										else
											{
												long BgL_iz00_1718;
												long BgL_kz00_1719;
												long BgL_cz00_1720;

												BgL_iz00_1718 = 1L;
												BgL_kz00_1719 = BgL_jz00_1711;
												BgL_cz00_1720 = 0L;
											BgL_zc3z04anonymousza31553ze3z87_1721:
												if ((BgL_iz00_1718 < BgL_lenxz00_1701))
													{	/* Unsafe/bignumber.scm 652 */
														long BgL_wz00_1723;

														{	/* Unsafe/bignumber.scm 652 */
															long BgL_arg1563z00_1730;
															long BgL_arg1564z00_1731;

															{	/* Unsafe/bignumber.scm 652 */
																long BgL_arg1565z00_1732;

																{	/* Unsafe/bignumber.scm 652 */
																	int BgL_iz00_3849;

																	BgL_iz00_3849 = (int) (BgL_kz00_1719);
																	{	/* Unsafe/bignumber.scm 267 */
																		uint16_t BgL_arg1223z00_3850;

																		{	/* Unsafe/bignumber.scm 267 */
																			obj_t BgL_arg1224z00_3851;

																			BgL_arg1224z00_3851 =
																				BGL_BIGNUM_U16VECT(BgL_rz00_1704);
																			{	/* Unsafe/bignumber.scm 267 */
																				long BgL_tmpz00_6798;

																				BgL_tmpz00_6798 =
																					(long) (BgL_iz00_3849);
																				BgL_arg1223z00_3850 =
																					BGL_U16VREF(BgL_arg1224z00_3851,
																					BgL_tmpz00_6798);
																		}}
																		{	/* Unsafe/bignumber.scm 267 */
																			long BgL_arg2284z00_3853;

																			BgL_arg2284z00_3853 =
																				(long) (BgL_arg1223z00_3850);
																			BgL_arg1565z00_1732 =
																				(long) (BgL_arg2284z00_3853);
																}}}
																BgL_arg1563z00_1730 =
																	(BgL_arg1565z00_1732 + BgL_cz00_1720);
															}
															{	/* Unsafe/bignumber.scm 653 */
																long BgL_arg1567z00_1733;

																{	/* Unsafe/bignumber.scm 653 */
																	int BgL_iz00_3858;

																	BgL_iz00_3858 = (int) (BgL_iz00_1718);
																	{	/* Unsafe/bignumber.scm 267 */
																		uint16_t BgL_arg1223z00_3859;

																		{	/* Unsafe/bignumber.scm 267 */
																			obj_t BgL_arg1224z00_3860;

																			BgL_arg1224z00_3860 =
																				BGL_BIGNUM_U16VECT(BgL_xz00_1699);
																			{	/* Unsafe/bignumber.scm 267 */
																				long BgL_tmpz00_6806;

																				BgL_tmpz00_6806 =
																					(long) (BgL_iz00_3858);
																				BgL_arg1223z00_3859 =
																					BGL_U16VREF(BgL_arg1224z00_3860,
																					BgL_tmpz00_6806);
																		}}
																		{	/* Unsafe/bignumber.scm 267 */
																			long BgL_arg2284z00_3862;

																			BgL_arg2284z00_3862 =
																				(long) (BgL_arg1223z00_3859);
																			BgL_arg1567z00_1733 =
																				(long) (BgL_arg2284z00_3862);
																}}}
																BgL_arg1564z00_1731 =
																	(BgL_arg1567z00_1733 * BgL_dz00_1714);
															}
															BgL_wz00_1723 =
																(BgL_arg1563z00_1730 + BgL_arg1564z00_1731);
														}
														{	/* Unsafe/bignumber.scm 654 */
															obj_t BgL_arg1555z00_1724;

															BgL_arg1555z00_1724 =
																BGl_moduloz00zz__r4_numbers_6_5_fixnumz00(BINT
																(BgL_wz00_1723), BINT(16384L));
															{	/* Unsafe/bignumber.scm 654 */
																int BgL_iz00_3869;
																int BgL_digitz00_3870;

																BgL_iz00_3869 = (int) (BgL_kz00_1719);
																BgL_digitz00_3870 = CINT(BgL_arg1555z00_1724);
																{	/* Unsafe/bignumber.scm 269 */
																	obj_t BgL_arg1225z00_3871;
																	uint16_t BgL_arg1226z00_3872;

																	BgL_arg1225z00_3871 =
																		BGL_BIGNUM_U16VECT(BgL_rz00_1704);
																	{	/* Unsafe/bignumber.scm 269 */
																		long BgL_tmpz00_6819;

																		BgL_tmpz00_6819 =
																			(long) (BgL_digitz00_3870);
																		BgL_arg1226z00_3872 =
																			(uint16_t) (BgL_tmpz00_6819);
																	}
																	{	/* Unsafe/bignumber.scm 269 */
																		long BgL_tmpz00_6822;

																		BgL_tmpz00_6822 = (long) (BgL_iz00_3869);
																		BGL_U16VSET(BgL_arg1225z00_3871,
																			BgL_tmpz00_6822, BgL_arg1226z00_3872);
																	} BUNSPEC;
														}}}
														{	/* Unsafe/bignumber.scm 655 */
															long BgL_arg1557z00_1726;
															long BgL_arg1558z00_1727;
															long BgL_arg1559z00_1728;

															BgL_arg1557z00_1726 = (BgL_iz00_1718 + 1L);
															BgL_arg1558z00_1727 = (BgL_kz00_1719 + 1L);
															BgL_arg1559z00_1728 = (BgL_wz00_1723 / 16384L);
															{
																long BgL_cz00_6830;
																long BgL_kz00_6829;
																long BgL_iz00_6828;

																BgL_iz00_6828 = BgL_arg1557z00_1726;
																BgL_kz00_6829 = BgL_arg1558z00_1727;
																BgL_cz00_6830 = BgL_arg1559z00_1728;
																BgL_cz00_1720 = BgL_cz00_6830;
																BgL_kz00_1719 = BgL_kz00_6829;
																BgL_iz00_1718 = BgL_iz00_6828;
																goto BgL_zc3z04anonymousza31553ze3z87_1721;
															}
														}
													}
												else
													{	/* Unsafe/bignumber.scm 650 */
														{	/* Unsafe/bignumber.scm 660 */
															int BgL_iz00_3879;
															int BgL_digitz00_3880;

															BgL_iz00_3879 = (int) (BgL_kz00_1719);
															BgL_digitz00_3880 = (int) (BgL_cz00_1720);
															{	/* Unsafe/bignumber.scm 269 */
																obj_t BgL_arg1225z00_3881;
																uint16_t BgL_arg1226z00_3882;

																BgL_arg1225z00_3881 =
																	BGL_BIGNUM_U16VECT(BgL_rz00_1704);
																{	/* Unsafe/bignumber.scm 269 */
																	long BgL_tmpz00_6834;

																	BgL_tmpz00_6834 = (long) (BgL_digitz00_3880);
																	BgL_arg1226z00_3882 =
																		(uint16_t) (BgL_tmpz00_6834);
																}
																{	/* Unsafe/bignumber.scm 269 */
																	long BgL_tmpz00_6837;

																	BgL_tmpz00_6837 = (long) (BgL_iz00_3879);
																	BGL_U16VSET(BgL_arg1225z00_3881,
																		BgL_tmpz00_6837, BgL_arg1226z00_3882);
																} BUNSPEC;
														}}
														{
															long BgL_jz00_6840;

															BgL_jz00_6840 = (BgL_jz00_1711 + 1L);
															BgL_jz00_1711 = BgL_jz00_6840;
															goto BgL_zc3z04anonymousza31549ze3z87_1712;
														}
													}
											}
									}
								else
									{	/* Unsafe/bignumber.scm 644 */
										((bool_t) 0);
									}
							}
							BgL_arg1536z00_1696 =
								BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
								(BgL_rz00_1704);
						}
					}
					return BgL_arg1536z00_1696;
				}
			}
		}

	}



/* &$$*bx */
	obj_t BGl_z62z42z42za2bxzc0zz__bignumz00(obj_t BgL_envz00_5532,
		obj_t BgL_xz00_5533, obj_t BgL_yz00_5534)
	{
		{	/* Unsafe/bignumber.scm 634 */
			{	/* Unsafe/bignumber.scm 637 */
				obj_t BgL_auxz00_6850;
				obj_t BgL_auxz00_6843;

				if (BIGNUMP(BgL_yz00_5534))
					{	/* Unsafe/bignumber.scm 637 */
						BgL_auxz00_6850 = BgL_yz00_5534;
					}
				else
					{
						obj_t BgL_auxz00_6853;

						BgL_auxz00_6853 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(21436L), BGl_string2509z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5534);
						FAILURE(BgL_auxz00_6853, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5533))
					{	/* Unsafe/bignumber.scm 637 */
						BgL_auxz00_6843 = BgL_xz00_5533;
					}
				else
					{
						obj_t BgL_auxz00_6846;

						BgL_auxz00_6846 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(21436L), BGl_string2509z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5533);
						FAILURE(BgL_auxz00_6846, BFALSE, BFALSE);
					}
				return bgl_bignum_mul(BgL_auxz00_6843, BgL_auxz00_6850);
			}
		}

	}



/* $$exptbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_expt(obj_t BgL_xz00_63, obj_t BgL_yz00_64)
	{
		{	/* Unsafe/bignumber.scm 678 */
		bgl_bignum_expt:
			{	/* Unsafe/bignumber.scm 680 */
				bool_t BgL_test2743z00_6858;

				{	/* Unsafe/bignumber.scm 468 */
					long BgL_arg1430z00_3900;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_3902;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_3903;

							BgL_arg1218z00_3903 = BGL_BIGNUM_U16VECT(BgL_yz00_64);
							BgL_arg1217z00_3902 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_3903);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_3905;

							BgL_xz00_3905 = (uint16_t) (BgL_arg1217z00_3902);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_3906;

								BgL_arg2284z00_3906 = (long) (BgL_xz00_3905);
								BgL_arg1430z00_3900 = (long) (BgL_arg2284z00_3906);
					}}}
					BgL_test2743z00_6858 = (BgL_arg1430z00_3900 == 1L);
				}
				if (BgL_test2743z00_6858)
					{	/* Unsafe/bignumber.scm 680 */
						obj_t BgL_res2340z00_3917;

						{	/* Unsafe/bignumber.scm 415 */
							bool_t BgL_test2744z00_6865;

							if ((1L < -16L))
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2744z00_6865 = ((bool_t) 1);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2744z00_6865 = (16L < 1L);
								}
							if (BgL_test2744z00_6865)
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2340z00_3917 =
										BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(1L);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2340z00_3917 =
										VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
										(1L + 16L));
								}
						}
						return BgL_res2340z00_3917;
					}
				else
					{	/* Unsafe/bignumber.scm 681 */
						bool_t BgL_test2746z00_6872;

						{	/* Unsafe/bignumber.scm 681 */
							bool_t BgL_res2341z00_3930;

							{	/* Unsafe/bignumber.scm 477 */
								bool_t BgL__ortest_1046z00_3919;

								BgL__ortest_1046z00_3919 =
									(BGl_bignumzd2lengthzd2zz__bignumz00(BgL_yz00_64) == 1L);
								if (BgL__ortest_1046z00_3919)
									{	/* Unsafe/bignumber.scm 477 */
										BgL_res2341z00_3930 = BgL__ortest_1046z00_3919;
									}
								else
									{	/* Unsafe/bignumber.scm 477 */
										long BgL_arg1434z00_3920;

										{	/* Unsafe/bignumber.scm 267 */
											uint16_t BgL_arg1223z00_3925;

											{	/* Unsafe/bignumber.scm 267 */
												obj_t BgL_arg1224z00_3926;

												BgL_arg1224z00_3926 = BGL_BIGNUM_U16VECT(BgL_yz00_64);
												BgL_arg1223z00_3925 =
													BGL_U16VREF(BgL_arg1224z00_3926, 1L);
											}
											{	/* Unsafe/bignumber.scm 267 */
												long BgL_arg2284z00_3928;

												BgL_arg2284z00_3928 = (long) (BgL_arg1223z00_3925);
												BgL_arg1434z00_3920 = (long) (BgL_arg2284z00_3928);
										}}
										BgL_res2341z00_3930 =
											BGl_evenzf3zf3zz__r4_numbers_6_5_fixnumz00(BINT
											(BgL_arg1434z00_3920));
							}}
							BgL_test2746z00_6872 = BgL_res2341z00_3930;
						}
						if (BgL_test2746z00_6872)
							{	/* Unsafe/bignumber.scm 681 */
								obj_t BgL_arg1586z00_1754;
								obj_t BgL_arg1587z00_1755;

								BgL_arg1586z00_1754 = bgl_bignum_mul(BgL_xz00_63, BgL_xz00_63);
								{	/* Unsafe/bignumber.scm 681 */
									obj_t BgL_arg1589z00_1756;

									{	/* Unsafe/bignumber.scm 681 */
										obj_t BgL_res2342z00_3939;

										{	/* Unsafe/bignumber.scm 415 */
											bool_t BgL_test2748z00_6883;

											if ((2L < -16L))
												{	/* Unsafe/bignumber.scm 415 */
													BgL_test2748z00_6883 = ((bool_t) 1);
												}
											else
												{	/* Unsafe/bignumber.scm 415 */
													BgL_test2748z00_6883 = (16L < 2L);
												}
											if (BgL_test2748z00_6883)
												{	/* Unsafe/bignumber.scm 415 */
													BgL_res2342z00_3939 =
														BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00
														(2L);
												}
											else
												{	/* Unsafe/bignumber.scm 415 */
													BgL_res2342z00_3939 =
														VECTOR_REF
														(BGl_preallocatedzd2bignumszd2zz__bignumz00,
														(2L + 16L));
												}
										}
										BgL_arg1589z00_1756 = BgL_res2342z00_3939;
									}
									{	/* Unsafe/bignumber.scm 681 */
										obj_t BgL_res2343z00_3945;

										{	/* Unsafe/bignumber.scm 859 */
											obj_t BgL_arg1762z00_3942;

											{	/* Unsafe/bignumber.scm 859 */
												obj_t BgL_arg1763z00_3943;

												BgL_arg1763z00_3943 =
													BGl_bignumzd2divzd2zz__bignumz00(BgL_yz00_64,
													BgL_arg1589z00_1756);
												BgL_arg1762z00_3942 =
													CAR(((obj_t) BgL_arg1763z00_3943));
											}
											BgL_res2343z00_3945 = BgL_arg1762z00_3942;
										}
										BgL_arg1587z00_1755 = BgL_res2343z00_3945;
									}
								}
								{
									obj_t BgL_yz00_6894;
									obj_t BgL_xz00_6893;

									BgL_xz00_6893 = BgL_arg1586z00_1754;
									BgL_yz00_6894 = BgL_arg1587z00_1755;
									BgL_yz00_64 = BgL_yz00_6894;
									BgL_xz00_63 = BgL_xz00_6893;
									goto bgl_bignum_expt;
								}
							}
						else
							{	/* Unsafe/bignumber.scm 682 */
								obj_t BgL_arg1590z00_1757;

								{	/* Unsafe/bignumber.scm 682 */
									obj_t BgL_arg1591z00_1758;

									{	/* Unsafe/bignumber.scm 682 */
										obj_t BgL_arg1592z00_1759;

										{	/* Unsafe/bignumber.scm 682 */
											obj_t BgL_res2344z00_3954;

											{	/* Unsafe/bignumber.scm 415 */
												bool_t BgL_test2750z00_6895;

												if ((1L < -16L))
													{	/* Unsafe/bignumber.scm 415 */
														BgL_test2750z00_6895 = ((bool_t) 1);
													}
												else
													{	/* Unsafe/bignumber.scm 415 */
														BgL_test2750z00_6895 = (16L < 1L);
													}
												if (BgL_test2750z00_6895)
													{	/* Unsafe/bignumber.scm 415 */
														BgL_res2344z00_3954 =
															BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00
															(1L);
													}
												else
													{	/* Unsafe/bignumber.scm 415 */
														BgL_res2344z00_3954 =
															VECTOR_REF
															(BGl_preallocatedzd2bignumszd2zz__bignumz00,
															(1L + 16L));
													}
											}
											BgL_arg1592z00_1759 = BgL_res2344z00_3954;
										}
										{	/* Unsafe/bignumber.scm 682 */
											obj_t BgL_res2345z00_3973;

											{	/* Unsafe/bignumber.scm 610 */
												long BgL_arg1519z00_3957;
												long BgL_arg1520z00_3958;

												{	/* Unsafe/bignumber.scm 263 */
													uint16_t BgL_arg1219z00_3961;

													{	/* Unsafe/bignumber.scm 263 */
														obj_t BgL_arg1220z00_3962;

														BgL_arg1220z00_3962 =
															BGL_BIGNUM_U16VECT(BgL_yz00_64);
														BgL_arg1219z00_3961 =
															BGL_U16VREF(BgL_arg1220z00_3962, 0L);
													}
													{	/* Unsafe/bignumber.scm 263 */
														long BgL_arg2284z00_3964;

														BgL_arg2284z00_3964 = (long) (BgL_arg1219z00_3961);
														BgL_arg1519z00_3957 = (long) (BgL_arg2284z00_3964);
												}}
												{	/* Unsafe/bignumber.scm 610 */
													long BgL_arg1521z00_3959;

													{	/* Unsafe/bignumber.scm 263 */
														uint16_t BgL_arg1219z00_3967;

														{	/* Unsafe/bignumber.scm 263 */
															obj_t BgL_arg1220z00_3968;

															BgL_arg1220z00_3968 =
																BGL_BIGNUM_U16VECT(BgL_arg1592z00_1759);
															BgL_arg1219z00_3967 =
																BGL_U16VREF(BgL_arg1220z00_3968, 0L);
														}
														{	/* Unsafe/bignumber.scm 263 */
															long BgL_arg2284z00_3970;

															BgL_arg2284z00_3970 =
																(long) (BgL_arg1219z00_3967);
															BgL_arg1521z00_3959 =
																(long) (BgL_arg2284z00_3970);
													}}
													BgL_arg1520z00_3958 = (1L - BgL_arg1521z00_3959);
												}
												BgL_res2345z00_3973 =
													BGl_bignumzd2sum2zd2zz__bignumz00(BgL_yz00_64,
													BgL_arg1592z00_1759, BgL_arg1519z00_3957,
													BgL_arg1520z00_3958);
											}
											BgL_arg1591z00_1758 = BgL_res2345z00_3973;
									}}
									BgL_arg1590z00_1757 =
										bgl_bignum_expt(BgL_xz00_63, BgL_arg1591z00_1758);
								}
								BGL_TAIL return
									bgl_bignum_mul(BgL_xz00_63, BgL_arg1590z00_1757);
							}
					}
			}
		}

	}



/* &$$exptbx */
	obj_t BGl_z62z42z42exptbxz62zz__bignumz00(obj_t BgL_envz00_5535,
		obj_t BgL_xz00_5536, obj_t BgL_yz00_5537)
	{
		{	/* Unsafe/bignumber.scm 678 */
			{	/* Unsafe/bignumber.scm 680 */
				obj_t BgL_auxz00_6921;
				obj_t BgL_auxz00_6914;

				if (BIGNUMP(BgL_yz00_5537))
					{	/* Unsafe/bignumber.scm 680 */
						BgL_auxz00_6921 = BgL_yz00_5537;
					}
				else
					{
						obj_t BgL_auxz00_6924;

						BgL_auxz00_6924 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(22761L), BGl_string2510z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5537);
						FAILURE(BgL_auxz00_6924, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5536))
					{	/* Unsafe/bignumber.scm 680 */
						BgL_auxz00_6914 = BgL_xz00_5536;
					}
				else
					{
						obj_t BgL_auxz00_6917;

						BgL_auxz00_6917 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(22761L), BGl_string2510z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5536);
						FAILURE(BgL_auxz00_6917, BFALSE, BFALSE);
					}
				return bgl_bignum_expt(BgL_auxz00_6914, BgL_auxz00_6921);
			}
		}

	}



/* bignum-div */
	obj_t BGl_bignumzd2divzd2zz__bignumz00(obj_t BgL_xz00_65, obj_t BgL_yz00_66)
	{
		{	/* Unsafe/bignumber.scm 687 */
			{
				obj_t BgL_xz00_1959;
				obj_t BgL_yz00_1960;
				long BgL_lenxz00_1961;
				long BgL_lenyz00_1962;
				obj_t BgL_xz00_1791;
				obj_t BgL_yz00_1792;
				long BgL_lenxz00_1793;
				long BgL_lenyz00_1794;
				obj_t BgL_rz00_1795;
				obj_t BgL_xz00_1766;
				obj_t BgL_yz00_1767;
				long BgL_lenxz00_1768;
				long BgL_lenyz00_1769;
				obj_t BgL_rz00_1770;

				{	/* Unsafe/bignumber.scm 850 */
					bool_t BgL_test2754z00_6929;

					{	/* Unsafe/bignumber.scm 468 */
						long BgL_arg1430z00_4450;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_4452;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_4453;

								{	/* Unsafe/bignumber.scm 261 */
									obj_t BgL_tmpz00_6930;

									BgL_tmpz00_6930 = ((obj_t) BgL_yz00_66);
									BgL_arg1218z00_4453 = BGL_BIGNUM_U16VECT(BgL_tmpz00_6930);
								}
								BgL_arg1217z00_4452 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_4453);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_4455;

								BgL_xz00_4455 = (uint16_t) (BgL_arg1217z00_4452);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_4456;

									BgL_arg2284z00_4456 = (long) (BgL_xz00_4455);
									BgL_arg1430z00_4450 = (long) (BgL_arg2284z00_4456);
						}}}
						BgL_test2754z00_6929 = (BgL_arg1430z00_4450 == 1L);
					}
					if (BgL_test2754z00_6929)
						{	/* Unsafe/bignumber.scm 850 */
							return
								BGl_errorz00zz__errorz00(BGl_string2511z00zz__bignumz00,
								BGl_string2512z00zz__bignumz00, BgL_xz00_65);
						}
					else
						{	/* Unsafe/bignumber.scm 852 */
							long BgL_arg1595z00_1764;
							long BgL_arg1597z00_1765;

							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg1217z00_4460;

								{	/* Unsafe/bignumber.scm 261 */
									obj_t BgL_arg1218z00_4461;

									{	/* Unsafe/bignumber.scm 261 */
										obj_t BgL_tmpz00_6939;

										BgL_tmpz00_6939 = ((obj_t) BgL_xz00_65);
										BgL_arg1218z00_4461 = BGL_BIGNUM_U16VECT(BgL_tmpz00_6939);
									}
									BgL_arg1217z00_4460 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_4461);
								}
								{	/* Unsafe/bignumber.scm 261 */
									uint16_t BgL_xz00_4463;

									BgL_xz00_4463 = (uint16_t) (BgL_arg1217z00_4460);
									{	/* Unsafe/bignumber.scm 261 */
										long BgL_arg2284z00_4464;

										BgL_arg2284z00_4464 = (long) (BgL_xz00_4463);
										BgL_arg1595z00_1764 = (long) (BgL_arg2284z00_4464);
							}}}
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg1217z00_4467;

								{	/* Unsafe/bignumber.scm 261 */
									obj_t BgL_arg1218z00_4468;

									{	/* Unsafe/bignumber.scm 261 */
										obj_t BgL_tmpz00_6946;

										BgL_tmpz00_6946 = ((obj_t) BgL_yz00_66);
										BgL_arg1218z00_4468 = BGL_BIGNUM_U16VECT(BgL_tmpz00_6946);
									}
									BgL_arg1217z00_4467 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_4468);
								}
								{	/* Unsafe/bignumber.scm 261 */
									uint16_t BgL_xz00_4470;

									BgL_xz00_4470 = (uint16_t) (BgL_arg1217z00_4467);
									{	/* Unsafe/bignumber.scm 261 */
										long BgL_arg2284z00_4471;

										BgL_arg2284z00_4471 = (long) (BgL_xz00_4470);
										BgL_arg1597z00_1765 = (long) (BgL_arg2284z00_4471);
							}}}
							BgL_xz00_1959 = BgL_xz00_65;
							BgL_yz00_1960 = BgL_yz00_66;
							BgL_lenxz00_1961 = BgL_arg1595z00_1764;
							BgL_lenyz00_1962 = BgL_arg1597z00_1765;
							if ((BgL_lenxz00_1961 < BgL_lenyz00_1962))
								{	/* Unsafe/bignumber.scm 836 */
									return
										MAKE_YOUNG_PAIR(BGl_bignumzd2za7eroz75zz__bignumz00,
										BgL_xz00_1959);
								}
							else
								{	/* Unsafe/bignumber.scm 840 */
									obj_t BgL_rz00_1965;

									{	/* Unsafe/bignumber.scm 840 */
										long BgL_arg1760z00_1972;

										BgL_arg1760z00_1972 =
											((BgL_lenxz00_1961 - BgL_lenyz00_1962) + 2L);
										{	/* Unsafe/bignumber.scm 840 */
											int BgL_lenz00_4422;

											BgL_lenz00_4422 = (int) (BgL_arg1760z00_1972);
											{	/* Unsafe/bignumber.scm 259 */
												obj_t BgL_arg1214z00_4423;

												{	/* Unsafe/bignumber.scm 259 */

													BgL_arg1214z00_4423 =
														BGl_makezd2u16vectorzd2zz__srfi4z00(
														(long) (BgL_lenz00_4422), (uint16_t) (0));
												}
												BgL_rz00_1965 = bgl_make_bignum(BgL_arg1214z00_4423);
									}}}
									{	/* Unsafe/bignumber.scm 842 */
										bool_t BgL_test2756z00_6962;

										{	/* Unsafe/bignumber.scm 842 */
											long BgL_arg1757z00_1969;
											long BgL_arg1758z00_1970;

											{	/* Unsafe/bignumber.scm 263 */
												uint16_t BgL_arg1219z00_4427;

												{	/* Unsafe/bignumber.scm 263 */
													obj_t BgL_arg1220z00_4428;

													{	/* Unsafe/bignumber.scm 263 */
														obj_t BgL_tmpz00_6963;

														BgL_tmpz00_6963 = ((obj_t) BgL_xz00_1959);
														BgL_arg1220z00_4428 =
															BGL_BIGNUM_U16VECT(BgL_tmpz00_6963);
													}
													BgL_arg1219z00_4427 =
														BGL_U16VREF(BgL_arg1220z00_4428, 0L);
												}
												{	/* Unsafe/bignumber.scm 263 */
													long BgL_arg2284z00_4430;

													BgL_arg2284z00_4430 = (long) (BgL_arg1219z00_4427);
													BgL_arg1757z00_1969 = (long) (BgL_arg2284z00_4430);
											}}
											{	/* Unsafe/bignumber.scm 263 */
												uint16_t BgL_arg1219z00_4433;

												{	/* Unsafe/bignumber.scm 263 */
													obj_t BgL_arg1220z00_4434;

													{	/* Unsafe/bignumber.scm 263 */
														obj_t BgL_tmpz00_6969;

														BgL_tmpz00_6969 = ((obj_t) BgL_yz00_1960);
														BgL_arg1220z00_4434 =
															BGL_BIGNUM_U16VECT(BgL_tmpz00_6969);
													}
													BgL_arg1219z00_4433 =
														BGL_U16VREF(BgL_arg1220z00_4434, 0L);
												}
												{	/* Unsafe/bignumber.scm 263 */
													long BgL_arg2284z00_4436;

													BgL_arg2284z00_4436 = (long) (BgL_arg1219z00_4433);
													BgL_arg1758z00_1970 = (long) (BgL_arg2284z00_4436);
											}}
											BgL_test2756z00_6962 =
												(BgL_arg1757z00_1969 == BgL_arg1758z00_1970);
										}
										if (BgL_test2756z00_6962)
											{	/* Unsafe/bignumber.scm 265 */
												obj_t BgL_arg1221z00_4442;
												uint16_t BgL_arg1222z00_4443;

												BgL_arg1221z00_4442 = BGL_BIGNUM_U16VECT(BgL_rz00_1965);
												BgL_arg1222z00_4443 = (uint16_t) (1L);
												BGL_U16VSET(BgL_arg1221z00_4442, 0L,
													BgL_arg1222z00_4443);
												BUNSPEC;
											}
										else
											{	/* Unsafe/bignumber.scm 265 */
												obj_t BgL_arg1221z00_4446;
												uint16_t BgL_arg1222z00_4447;

												BgL_arg1221z00_4446 = BGL_BIGNUM_U16VECT(BgL_rz00_1965);
												BgL_arg1222z00_4447 = (uint16_t) (0L);
												BGL_U16VSET(BgL_arg1221z00_4446, 0L,
													BgL_arg1222z00_4447);
												BUNSPEC;
											}
									}
									if ((BgL_lenyz00_1962 == 2L))
										{	/* Unsafe/bignumber.scm 846 */
											BgL_xz00_1766 = BgL_xz00_1959;
											BgL_yz00_1767 = BgL_yz00_1960;
											BgL_lenxz00_1768 = BgL_lenxz00_1961;
											BgL_lenyz00_1769 = BgL_lenyz00_1962;
											BgL_rz00_1770 = BgL_rz00_1965;
											{	/* Unsafe/bignumber.scm 693 */
												long BgL_dz00_1772;

												{	/* Unsafe/bignumber.scm 267 */
													uint16_t BgL_arg1223z00_3975;

													{	/* Unsafe/bignumber.scm 267 */
														obj_t BgL_arg1224z00_3976;

														{	/* Unsafe/bignumber.scm 267 */
															obj_t BgL_tmpz00_6984;

															BgL_tmpz00_6984 = ((obj_t) BgL_yz00_1767);
															BgL_arg1224z00_3976 =
																BGL_BIGNUM_U16VECT(BgL_tmpz00_6984);
														}
														BgL_arg1223z00_3975 =
															BGL_U16VREF(BgL_arg1224z00_3976, 1L);
													}
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_arg2284z00_3978;

														BgL_arg2284z00_3978 = (long) (BgL_arg1223z00_3975);
														BgL_dz00_1772 = (long) (BgL_arg2284z00_3978);
												}}
												{	/* Unsafe/bignumber.scm 694 */
													long BgL_g1051z00_1773;

													BgL_g1051z00_1773 = (BgL_lenxz00_1768 - 1L);
													{
														long BgL_iz00_1775;
														long BgL_kz00_1776;

														BgL_iz00_1775 = BgL_g1051z00_1773;
														BgL_kz00_1776 = 0L;
													BgL_zc3z04anonymousza31599ze3z87_1777:
														if ((0L < BgL_iz00_1775))
															{	/* Unsafe/bignumber.scm 696 */
																long BgL_wz00_1779;

																{	/* Unsafe/bignumber.scm 696 */
																	long BgL_arg1605z00_1783;
																	long BgL_arg1606z00_1784;

																	BgL_arg1605z00_1783 =
																		(BgL_kz00_1776 * 16384L);
																	{	/* Unsafe/bignumber.scm 696 */
																		int BgL_iz00_3985;

																		BgL_iz00_3985 = (int) (BgL_iz00_1775);
																		{	/* Unsafe/bignumber.scm 267 */
																			uint16_t BgL_arg1223z00_3986;

																			{	/* Unsafe/bignumber.scm 267 */
																				obj_t BgL_arg1224z00_3987;

																				{	/* Unsafe/bignumber.scm 267 */
																					obj_t BgL_tmpz00_6995;

																					BgL_tmpz00_6995 =
																						((obj_t) BgL_xz00_1766);
																					BgL_arg1224z00_3987 =
																						BGL_BIGNUM_U16VECT(BgL_tmpz00_6995);
																				}
																				{	/* Unsafe/bignumber.scm 267 */
																					long BgL_tmpz00_6998;

																					BgL_tmpz00_6998 =
																						(long) (BgL_iz00_3985);
																					BgL_arg1223z00_3986 =
																						BGL_U16VREF(BgL_arg1224z00_3987,
																						BgL_tmpz00_6998);
																			}}
																			{	/* Unsafe/bignumber.scm 267 */
																				long BgL_arg2284z00_3989;

																				BgL_arg2284z00_3989 =
																					(long) (BgL_arg1223z00_3986);
																				BgL_arg1606z00_1784 =
																					(long) (BgL_arg2284z00_3989);
																	}}}
																	BgL_wz00_1779 =
																		(BgL_arg1605z00_1783 + BgL_arg1606z00_1784);
																}
																{	/* Unsafe/bignumber.scm 697 */
																	long BgL_arg1602z00_1780;

																	BgL_arg1602z00_1780 =
																		(BgL_wz00_1779 / BgL_dz00_1772);
																	{	/* Unsafe/bignumber.scm 697 */
																		int BgL_iz00_3996;
																		int BgL_digitz00_3997;

																		BgL_iz00_3996 = (int) (BgL_iz00_1775);
																		BgL_digitz00_3997 =
																			(int) (BgL_arg1602z00_1780);
																		{	/* Unsafe/bignumber.scm 269 */
																			obj_t BgL_arg1225z00_3998;
																			uint16_t BgL_arg1226z00_3999;

																			BgL_arg1225z00_3998 =
																				BGL_BIGNUM_U16VECT(BgL_rz00_1770);
																			{	/* Unsafe/bignumber.scm 269 */
																				long BgL_tmpz00_7008;

																				BgL_tmpz00_7008 =
																					(long) (BgL_digitz00_3997);
																				BgL_arg1226z00_3999 =
																					(uint16_t) (BgL_tmpz00_7008);
																			}
																			{	/* Unsafe/bignumber.scm 269 */
																				long BgL_tmpz00_7011;

																				BgL_tmpz00_7011 =
																					(long) (BgL_iz00_3996);
																				BGL_U16VSET(BgL_arg1225z00_3998,
																					BgL_tmpz00_7011, BgL_arg1226z00_3999);
																			} BUNSPEC;
																}}}
																{	/* Unsafe/bignumber.scm 698 */
																	long BgL_arg1603z00_1781;
																	long BgL_arg1604z00_1782;

																	BgL_arg1603z00_1781 = (BgL_iz00_1775 - 1L);
																	{	/* Unsafe/bignumber.scm 698 */
																		long BgL_n1z00_4002;
																		long BgL_n2z00_4003;

																		BgL_n1z00_4002 = BgL_wz00_1779;
																		BgL_n2z00_4003 = BgL_dz00_1772;
																		{	/* Unsafe/bignumber.scm 698 */
																			bool_t BgL_test2759z00_7015;

																			{	/* Unsafe/bignumber.scm 698 */
																				long BgL_arg2181z00_4005;

																				BgL_arg2181z00_4005 =
																					(((BgL_n1z00_4002) | (BgL_n2z00_4003))
																					& -2147483648);
																				BgL_test2759z00_7015 =
																					(BgL_arg2181z00_4005 == 0L);
																			}
																			if (BgL_test2759z00_7015)
																				{	/* Unsafe/bignumber.scm 698 */
																					int32_t BgL_arg2178z00_4006;

																					{	/* Unsafe/bignumber.scm 698 */
																						int32_t BgL_arg2179z00_4007;
																						int32_t BgL_arg2180z00_4008;

																						BgL_arg2179z00_4007 =
																							(int32_t) (BgL_n1z00_4002);
																						BgL_arg2180z00_4008 =
																							(int32_t) (BgL_n2z00_4003);
																						BgL_arg2178z00_4006 =
																							(BgL_arg2179z00_4007 %
																							BgL_arg2180z00_4008);
																					}
																					{	/* Unsafe/bignumber.scm 698 */
																						long BgL_arg2283z00_4013;

																						BgL_arg2283z00_4013 =
																							(long) (BgL_arg2178z00_4006);
																						BgL_arg1604z00_1782 =
																							(long) (BgL_arg2283z00_4013);
																				}}
																			else
																				{	/* Unsafe/bignumber.scm 698 */
																					BgL_arg1604z00_1782 =
																						(BgL_n1z00_4002 % BgL_n2z00_4003);
																				}
																		}
																	}
																	{
																		long BgL_kz00_7025;
																		long BgL_iz00_7024;

																		BgL_iz00_7024 = BgL_arg1603z00_1781;
																		BgL_kz00_7025 = BgL_arg1604z00_1782;
																		BgL_kz00_1776 = BgL_kz00_7025;
																		BgL_iz00_1775 = BgL_iz00_7024;
																		goto BgL_zc3z04anonymousza31599ze3z87_1777;
																	}
																}
															}
														else
															{	/* Unsafe/bignumber.scm 699 */
																obj_t BgL_arg1608z00_1786;
																obj_t BgL_arg1609z00_1787;

																BgL_arg1608z00_1786 =
																	BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
																	(BgL_rz00_1770);
																{	/* Unsafe/bignumber.scm 701 */
																	long BgL_arg1610z00_1788;

																	{	/* Unsafe/bignumber.scm 701 */
																		bool_t BgL_test2760z00_7027;

																		{	/* Unsafe/bignumber.scm 471 */
																			long BgL_arg1431z00_4016;

																			{	/* Unsafe/bignumber.scm 263 */
																				uint16_t BgL_arg1219z00_4018;

																				{	/* Unsafe/bignumber.scm 263 */
																					obj_t BgL_arg1220z00_4019;

																					{	/* Unsafe/bignumber.scm 263 */
																						obj_t BgL_tmpz00_7028;

																						BgL_tmpz00_7028 =
																							((obj_t) BgL_xz00_1766);
																						BgL_arg1220z00_4019 =
																							BGL_BIGNUM_U16VECT
																							(BgL_tmpz00_7028);
																					}
																					BgL_arg1219z00_4018 =
																						BGL_U16VREF(BgL_arg1220z00_4019,
																						0L);
																				}
																				{	/* Unsafe/bignumber.scm 263 */
																					long BgL_arg2284z00_4021;

																					BgL_arg2284z00_4021 =
																						(long) (BgL_arg1219z00_4018);
																					BgL_arg1431z00_4016 =
																						(long) (BgL_arg2284z00_4021);
																			}}
																			BgL_test2760z00_7027 =
																				(BgL_arg1431z00_4016 == 0L);
																		}
																		if (BgL_test2760z00_7027)
																			{	/* Unsafe/bignumber.scm 701 */
																				BgL_arg1610z00_1788 =
																					(0L - BgL_kz00_1776);
																			}
																		else
																			{	/* Unsafe/bignumber.scm 701 */
																				BgL_arg1610z00_1788 = BgL_kz00_1776;
																			}
																	}
																	BgL_arg1609z00_1787 =
																		bgl_long_to_bignum(BgL_arg1610z00_1788);
																}
																return
																	MAKE_YOUNG_PAIR(BgL_arg1608z00_1786,
																	BgL_arg1609z00_1787);
															}
													}
												}
											}
										}
									else
										{	/* Unsafe/bignumber.scm 846 */
											BgL_xz00_1791 = BgL_xz00_1959;
											BgL_yz00_1792 = BgL_yz00_1960;
											BgL_lenxz00_1793 = BgL_lenxz00_1961;
											BgL_lenyz00_1794 = BgL_lenyz00_1962;
											BgL_rz00_1795 = BgL_rz00_1965;
											{	/* Unsafe/bignumber.scm 709 */
												long BgL_g1052z00_1797;

												{	/* Unsafe/bignumber.scm 710 */
													long BgL_arg1750z00_1957;

													{	/* Unsafe/bignumber.scm 710 */
														long BgL_arg1751z00_1958;

														BgL_arg1751z00_1958 = (BgL_lenyz00_1794 - 1L);
														{	/* Unsafe/bignumber.scm 710 */
															int BgL_iz00_4027;

															BgL_iz00_4027 = (int) (BgL_arg1751z00_1958);
															{	/* Unsafe/bignumber.scm 267 */
																uint16_t BgL_arg1223z00_4028;

																{	/* Unsafe/bignumber.scm 267 */
																	obj_t BgL_arg1224z00_4029;

																	{	/* Unsafe/bignumber.scm 267 */
																		obj_t BgL_tmpz00_7040;

																		BgL_tmpz00_7040 = ((obj_t) BgL_yz00_1792);
																		BgL_arg1224z00_4029 =
																			BGL_BIGNUM_U16VECT(BgL_tmpz00_7040);
																	}
																	{	/* Unsafe/bignumber.scm 267 */
																		long BgL_tmpz00_7043;

																		BgL_tmpz00_7043 = (long) (BgL_iz00_4027);
																		BgL_arg1223z00_4028 =
																			BGL_U16VREF(BgL_arg1224z00_4029,
																			BgL_tmpz00_7043);
																}}
																{	/* Unsafe/bignumber.scm 267 */
																	long BgL_arg2284z00_4031;

																	BgL_arg2284z00_4031 =
																		(long) (BgL_arg1223z00_4028);
																	BgL_arg1750z00_1957 =
																		(long) (BgL_arg2284z00_4031);
													}}}}
													BgL_g1052z00_1797 = (BgL_arg1750z00_1957 * 2L);
												}
												{
													long BgL_shiftz00_1799;
													long BgL_nz00_1800;

													BgL_shiftz00_1799 = 1L;
													BgL_nz00_1800 = BgL_g1052z00_1797;
												BgL_zc3z04anonymousza31613ze3z87_1801:
													if ((BgL_nz00_1800 < 16384L))
														{
															long BgL_nz00_7053;
															long BgL_shiftz00_7051;

															BgL_shiftz00_7051 = (BgL_shiftz00_1799 * 2L);
															BgL_nz00_7053 = (BgL_nz00_1800 * 2L);
															BgL_nz00_1800 = BgL_nz00_7053;
															BgL_shiftz00_1799 = BgL_shiftz00_7051;
															goto BgL_zc3z04anonymousza31613ze3z87_1801;
														}
													else
														{	/* Unsafe/bignumber.scm 714 */
															obj_t BgL_nxz00_1806;
															obj_t BgL_nyz00_1807;

															{	/* Unsafe/bignumber.scm 714 */
																long BgL_arg1748z00_1954;

																BgL_arg1748z00_1954 = (BgL_lenxz00_1793 + 1L);
																{	/* Unsafe/bignumber.scm 714 */
																	int BgL_lenz00_4039;

																	BgL_lenz00_4039 = (int) (BgL_arg1748z00_1954);
																	{	/* Unsafe/bignumber.scm 259 */
																		obj_t BgL_arg1214z00_4040;

																		{	/* Unsafe/bignumber.scm 259 */

																			BgL_arg1214z00_4040 =
																				BGl_makezd2u16vectorzd2zz__srfi4z00(
																				(long) (BgL_lenz00_4039),
																				(uint16_t) (0));
																		}
																		BgL_nxz00_1806 =
																			bgl_make_bignum(BgL_arg1214z00_4040);
															}}}
															{	/* Unsafe/bignumber.scm 715 */
																int BgL_lenz00_4043;

																BgL_lenz00_4043 = (int) (BgL_lenyz00_1794);
																{	/* Unsafe/bignumber.scm 259 */
																	obj_t BgL_arg1214z00_4044;

																	{	/* Unsafe/bignumber.scm 259 */

																		BgL_arg1214z00_4044 =
																			BGl_makezd2u16vectorzd2zz__srfi4z00(
																			(long) (BgL_lenz00_4043), (uint16_t) (0));
																	}
																	BgL_nyz00_1807 =
																		bgl_make_bignum(BgL_arg1214z00_4044);
															}}
															{	/* Unsafe/bignumber.scm 717 */
																long BgL_arg1618z00_1808;

																{	/* Unsafe/bignumber.scm 263 */
																	uint16_t BgL_arg1219z00_4048;

																	{	/* Unsafe/bignumber.scm 263 */
																		obj_t BgL_arg1220z00_4049;

																		{	/* Unsafe/bignumber.scm 263 */
																			obj_t BgL_tmpz00_7064;

																			BgL_tmpz00_7064 = ((obj_t) BgL_xz00_1791);
																			BgL_arg1220z00_4049 =
																				BGL_BIGNUM_U16VECT(BgL_tmpz00_7064);
																		}
																		BgL_arg1219z00_4048 =
																			BGL_U16VREF(BgL_arg1220z00_4049, 0L);
																	}
																	{	/* Unsafe/bignumber.scm 263 */
																		long BgL_arg2284z00_4051;

																		BgL_arg2284z00_4051 =
																			(long) (BgL_arg1219z00_4048);
																		BgL_arg1618z00_1808 =
																			(long) (BgL_arg2284z00_4051);
																}}
																{	/* Unsafe/bignumber.scm 717 */
																	int BgL_signz00_4054;

																	BgL_signz00_4054 =
																		(int) (BgL_arg1618z00_1808);
																	{	/* Unsafe/bignumber.scm 265 */
																		obj_t BgL_arg1221z00_4055;
																		uint16_t BgL_arg1222z00_4056;

																		BgL_arg1221z00_4055 =
																			BGL_BIGNUM_U16VECT(BgL_nxz00_1806);
																		{	/* Unsafe/bignumber.scm 265 */
																			long BgL_tmpz00_7072;

																			BgL_tmpz00_7072 =
																				(long) (BgL_signz00_4054);
																			BgL_arg1222z00_4056 =
																				(uint16_t) (BgL_tmpz00_7072);
																		}
																		BGL_U16VSET(BgL_arg1221z00_4055, 0L,
																			BgL_arg1222z00_4056);
																		BUNSPEC;
															}}}
															{
																long BgL_iz00_4087;
																long BgL_cz00_4088;

																BgL_iz00_4087 = 1L;
																BgL_cz00_4088 = 0L;
															BgL_loop3z00_4086:
																if ((BgL_iz00_4087 < BgL_lenxz00_1793))
																	{	/* Unsafe/bignumber.scm 721 */
																		long BgL_wz00_4092;

																		{	/* Unsafe/bignumber.scm 721 */
																			long BgL_arg1627z00_4093;

																			{	/* Unsafe/bignumber.scm 721 */
																				long BgL_arg1628z00_4094;

																				{	/* Unsafe/bignumber.scm 721 */
																					int BgL_iz00_4096;

																					BgL_iz00_4096 = (int) (BgL_iz00_4087);
																					{	/* Unsafe/bignumber.scm 267 */
																						uint16_t BgL_arg1223z00_4097;

																						{	/* Unsafe/bignumber.scm 267 */
																							obj_t BgL_arg1224z00_4098;

																							{	/* Unsafe/bignumber.scm 267 */
																								obj_t BgL_tmpz00_7079;

																								BgL_tmpz00_7079 =
																									((obj_t) BgL_xz00_1791);
																								BgL_arg1224z00_4098 =
																									BGL_BIGNUM_U16VECT
																									(BgL_tmpz00_7079);
																							}
																							{	/* Unsafe/bignumber.scm 267 */
																								long BgL_tmpz00_7082;

																								BgL_tmpz00_7082 =
																									(long) (BgL_iz00_4096);
																								BgL_arg1223z00_4097 =
																									BGL_U16VREF
																									(BgL_arg1224z00_4098,
																									BgL_tmpz00_7082);
																						}}
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_arg2284z00_4100;

																							BgL_arg2284z00_4100 =
																								(long) (BgL_arg1223z00_4097);
																							BgL_arg1628z00_4094 =
																								(long) (BgL_arg2284z00_4100);
																				}}}
																				BgL_arg1627z00_4093 =
																					(BgL_arg1628z00_4094 *
																					BgL_shiftz00_1799);
																			}
																			BgL_wz00_4092 =
																				(BgL_arg1627z00_4093 + BgL_cz00_4088);
																		}
																		{	/* Unsafe/bignumber.scm 722 */
																			obj_t BgL_arg1621z00_4106;

																			BgL_arg1621z00_4106 =
																				BGl_moduloz00zz__r4_numbers_6_5_fixnumz00
																				(BINT(BgL_wz00_4092), BINT(16384L));
																			{	/* Unsafe/bignumber.scm 722 */
																				int BgL_iz00_4109;
																				int BgL_digitz00_4110;

																				BgL_iz00_4109 = (int) (BgL_iz00_4087);
																				BgL_digitz00_4110 =
																					CINT(BgL_arg1621z00_4106);
																				{	/* Unsafe/bignumber.scm 269 */
																					obj_t BgL_arg1225z00_4111;
																					uint16_t BgL_arg1226z00_4112;

																					BgL_arg1225z00_4111 =
																						BGL_BIGNUM_U16VECT(BgL_nxz00_1806);
																					{	/* Unsafe/bignumber.scm 269 */
																						long BgL_tmpz00_7095;

																						BgL_tmpz00_7095 =
																							(long) (BgL_digitz00_4110);
																						BgL_arg1226z00_4112 =
																							(uint16_t) (BgL_tmpz00_7095);
																					}
																					{	/* Unsafe/bignumber.scm 269 */
																						long BgL_tmpz00_7098;

																						BgL_tmpz00_7098 =
																							(long) (BgL_iz00_4109);
																						BGL_U16VSET(BgL_arg1225z00_4111,
																							BgL_tmpz00_7098,
																							BgL_arg1226z00_4112);
																					} BUNSPEC;
																		}}}
																		{	/* Unsafe/bignumber.scm 723 */
																			long BgL_arg1623z00_4114;
																			long BgL_arg1625z00_4115;

																			BgL_arg1623z00_4114 =
																				(BgL_iz00_4087 + 1L);
																			BgL_arg1625z00_4115 =
																				(BgL_wz00_4092 / 16384L);
																			{
																				long BgL_cz00_7104;
																				long BgL_iz00_7103;

																				BgL_iz00_7103 = BgL_arg1623z00_4114;
																				BgL_cz00_7104 = BgL_arg1625z00_4115;
																				BgL_cz00_4088 = BgL_cz00_7104;
																				BgL_iz00_4087 = BgL_iz00_7103;
																				goto BgL_loop3z00_4086;
																			}
																		}
																	}
																else
																	{	/* Unsafe/bignumber.scm 724 */
																		int BgL_iz00_4121;
																		int BgL_digitz00_4122;

																		BgL_iz00_4121 = (int) (BgL_iz00_4087);
																		BgL_digitz00_4122 = (int) (BgL_cz00_4088);
																		{	/* Unsafe/bignumber.scm 269 */
																			obj_t BgL_arg1225z00_4123;
																			uint16_t BgL_arg1226z00_4124;

																			BgL_arg1225z00_4123 =
																				BGL_BIGNUM_U16VECT(BgL_nxz00_1806);
																			{	/* Unsafe/bignumber.scm 269 */
																				long BgL_tmpz00_7108;

																				BgL_tmpz00_7108 =
																					(long) (BgL_digitz00_4122);
																				BgL_arg1226z00_4124 =
																					(uint16_t) (BgL_tmpz00_7108);
																			}
																			{	/* Unsafe/bignumber.scm 269 */
																				long BgL_tmpz00_7111;

																				BgL_tmpz00_7111 =
																					(long) (BgL_iz00_4121);
																				BGL_U16VSET(BgL_arg1225z00_4123,
																					BgL_tmpz00_7111, BgL_arg1226z00_4124);
																			} BUNSPEC;
															}}}
															{
																long BgL_iz00_4149;
																long BgL_cz00_4150;

																BgL_iz00_4149 = 1L;
																BgL_cz00_4150 = 0L;
															BgL_loop4z00_4148:
																if ((BgL_iz00_4149 < BgL_lenyz00_1794))
																	{	/* Unsafe/bignumber.scm 728 */
																		long BgL_wz00_4154;

																		{	/* Unsafe/bignumber.scm 728 */
																			long BgL_arg1637z00_4155;

																			{	/* Unsafe/bignumber.scm 728 */
																				long BgL_arg1638z00_4156;

																				{	/* Unsafe/bignumber.scm 728 */
																					int BgL_iz00_4158;

																					BgL_iz00_4158 = (int) (BgL_iz00_4149);
																					{	/* Unsafe/bignumber.scm 267 */
																						uint16_t BgL_arg1223z00_4159;

																						{	/* Unsafe/bignumber.scm 267 */
																							obj_t BgL_arg1224z00_4160;

																							{	/* Unsafe/bignumber.scm 267 */
																								obj_t BgL_tmpz00_7117;

																								BgL_tmpz00_7117 =
																									((obj_t) BgL_yz00_1792);
																								BgL_arg1224z00_4160 =
																									BGL_BIGNUM_U16VECT
																									(BgL_tmpz00_7117);
																							}
																							{	/* Unsafe/bignumber.scm 267 */
																								long BgL_tmpz00_7120;

																								BgL_tmpz00_7120 =
																									(long) (BgL_iz00_4158);
																								BgL_arg1223z00_4159 =
																									BGL_U16VREF
																									(BgL_arg1224z00_4160,
																									BgL_tmpz00_7120);
																						}}
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_arg2284z00_4162;

																							BgL_arg2284z00_4162 =
																								(long) (BgL_arg1223z00_4159);
																							BgL_arg1638z00_4156 =
																								(long) (BgL_arg2284z00_4162);
																				}}}
																				BgL_arg1637z00_4155 =
																					(BgL_arg1638z00_4156 *
																					BgL_shiftz00_1799);
																			}
																			BgL_wz00_4154 =
																				(BgL_arg1637z00_4155 + BgL_cz00_4150);
																		}
																		{	/* Unsafe/bignumber.scm 729 */
																			obj_t BgL_arg1632z00_4168;

																			BgL_arg1632z00_4168 =
																				BGl_moduloz00zz__r4_numbers_6_5_fixnumz00
																				(BINT(BgL_wz00_4154), BINT(16384L));
																			{	/* Unsafe/bignumber.scm 729 */
																				int BgL_iz00_4171;
																				int BgL_digitz00_4172;

																				BgL_iz00_4171 = (int) (BgL_iz00_4149);
																				BgL_digitz00_4172 =
																					CINT(BgL_arg1632z00_4168);
																				{	/* Unsafe/bignumber.scm 269 */
																					obj_t BgL_arg1225z00_4173;
																					uint16_t BgL_arg1226z00_4174;

																					BgL_arg1225z00_4173 =
																						BGL_BIGNUM_U16VECT(BgL_nyz00_1807);
																					{	/* Unsafe/bignumber.scm 269 */
																						long BgL_tmpz00_7133;

																						BgL_tmpz00_7133 =
																							(long) (BgL_digitz00_4172);
																						BgL_arg1226z00_4174 =
																							(uint16_t) (BgL_tmpz00_7133);
																					}
																					{	/* Unsafe/bignumber.scm 269 */
																						long BgL_tmpz00_7136;

																						BgL_tmpz00_7136 =
																							(long) (BgL_iz00_4171);
																						BGL_U16VSET(BgL_arg1225z00_4173,
																							BgL_tmpz00_7136,
																							BgL_arg1226z00_4174);
																					} BUNSPEC;
																		}}}
																		{	/* Unsafe/bignumber.scm 730 */
																			long BgL_arg1634z00_4176;
																			long BgL_arg1635z00_4177;

																			BgL_arg1634z00_4176 =
																				(BgL_iz00_4149 + 1L);
																			BgL_arg1635z00_4177 =
																				(BgL_wz00_4154 / 16384L);
																			{
																				long BgL_cz00_7142;
																				long BgL_iz00_7141;

																				BgL_iz00_7141 = BgL_arg1634z00_4176;
																				BgL_cz00_7142 = BgL_arg1635z00_4177;
																				BgL_cz00_4150 = BgL_cz00_7142;
																				BgL_iz00_4149 = BgL_iz00_7141;
																				goto BgL_loop4z00_4148;
																			}
																		}
																	}
																else
																	{	/* Unsafe/bignumber.scm 727 */
																		((bool_t) 0);
																	}
															}
															{
																long BgL_iz00_1838;

																BgL_iz00_1838 = BgL_lenxz00_1793;
															BgL_zc3z04anonymousza31639ze3z87_1839:
																if ((BgL_iz00_1838 < BgL_lenyz00_1794))
																	{	/* Unsafe/bignumber.scm 733 */
																		((bool_t) 0);
																	}
																else
																	{	/* Unsafe/bignumber.scm 737 */
																		long BgL_msdzd2ofzd2nyz00_1841;
																		long BgL_nextzd2msdzd2ofzd2nyzd2_1842;
																		long BgL_msdzd2ofzd2nxz00_1843;
																		long BgL_nextzd2msdzd2ofzd2nxzd2_1844;
																		long
																			BgL_nextzd2nextzd2msdzd2ofzd2nxz00_1845;
																		{	/* Unsafe/bignumber.scm 738 */
																			long BgL_arg1733z00_1933;

																			BgL_arg1733z00_1933 =
																				(BgL_lenyz00_1794 - 1L);
																			{	/* Unsafe/bignumber.scm 738 */
																				int BgL_iz00_4186;

																				BgL_iz00_4186 =
																					(int) (BgL_arg1733z00_1933);
																				{	/* Unsafe/bignumber.scm 267 */
																					uint16_t BgL_arg1223z00_4187;

																					{	/* Unsafe/bignumber.scm 267 */
																						obj_t BgL_arg1224z00_4188;

																						BgL_arg1224z00_4188 =
																							BGL_BIGNUM_U16VECT
																							(BgL_nyz00_1807);
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_tmpz00_7148;

																							BgL_tmpz00_7148 =
																								(long) (BgL_iz00_4186);
																							BgL_arg1223z00_4187 =
																								BGL_U16VREF(BgL_arg1224z00_4188,
																								BgL_tmpz00_7148);
																					}}
																					{	/* Unsafe/bignumber.scm 267 */
																						long BgL_arg2284z00_4190;

																						BgL_arg2284z00_4190 =
																							(long) (BgL_arg1223z00_4187);
																						BgL_msdzd2ofzd2nyz00_1841 =
																							(long) (BgL_arg2284z00_4190);
																		}}}}
																		{	/* Unsafe/bignumber.scm 740 */
																			long BgL_arg1734z00_1934;

																			BgL_arg1734z00_1934 =
																				(BgL_lenyz00_1794 - 2L);
																			{	/* Unsafe/bignumber.scm 740 */
																				int BgL_iz00_4194;

																				BgL_iz00_4194 =
																					(int) (BgL_arg1734z00_1934);
																				{	/* Unsafe/bignumber.scm 267 */
																					uint16_t BgL_arg1223z00_4195;

																					{	/* Unsafe/bignumber.scm 267 */
																						obj_t BgL_arg1224z00_4196;

																						BgL_arg1224z00_4196 =
																							BGL_BIGNUM_U16VECT
																							(BgL_nyz00_1807);
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_tmpz00_7156;

																							BgL_tmpz00_7156 =
																								(long) (BgL_iz00_4194);
																							BgL_arg1223z00_4195 =
																								BGL_U16VREF(BgL_arg1224z00_4196,
																								BgL_tmpz00_7156);
																					}}
																					{	/* Unsafe/bignumber.scm 267 */
																						long BgL_arg2284z00_4198;

																						BgL_arg2284z00_4198 =
																							(long) (BgL_arg1223z00_4195);
																						BgL_nextzd2msdzd2ofzd2nyzd2_1842 =
																							(long) (BgL_arg2284z00_4198);
																		}}}}
																		{	/* Unsafe/bignumber.scm 742 */
																			int BgL_iz00_4201;

																			BgL_iz00_4201 = (int) (BgL_iz00_1838);
																			{	/* Unsafe/bignumber.scm 267 */
																				uint16_t BgL_arg1223z00_4202;

																				{	/* Unsafe/bignumber.scm 267 */
																					obj_t BgL_arg1224z00_4203;

																					BgL_arg1224z00_4203 =
																						BGL_BIGNUM_U16VECT(BgL_nxz00_1806);
																					{	/* Unsafe/bignumber.scm 267 */
																						long BgL_tmpz00_7163;

																						BgL_tmpz00_7163 =
																							(long) (BgL_iz00_4201);
																						BgL_arg1223z00_4202 =
																							BGL_U16VREF(BgL_arg1224z00_4203,
																							BgL_tmpz00_7163);
																				}}
																				{	/* Unsafe/bignumber.scm 267 */
																					long BgL_arg2284z00_4205;

																					BgL_arg2284z00_4205 =
																						(long) (BgL_arg1223z00_4202);
																					BgL_msdzd2ofzd2nxz00_1843 =
																						(long) (BgL_arg2284z00_4205);
																		}}}
																		{	/* Unsafe/bignumber.scm 744 */
																			long BgL_arg1735z00_1935;

																			BgL_arg1735z00_1935 =
																				(BgL_iz00_1838 - 1L);
																			{	/* Unsafe/bignumber.scm 744 */
																				int BgL_iz00_4209;

																				BgL_iz00_4209 =
																					(int) (BgL_arg1735z00_1935);
																				{	/* Unsafe/bignumber.scm 267 */
																					uint16_t BgL_arg1223z00_4210;

																					{	/* Unsafe/bignumber.scm 267 */
																						obj_t BgL_arg1224z00_4211;

																						BgL_arg1224z00_4211 =
																							BGL_BIGNUM_U16VECT
																							(BgL_nxz00_1806);
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_tmpz00_7171;

																							BgL_tmpz00_7171 =
																								(long) (BgL_iz00_4209);
																							BgL_arg1223z00_4210 =
																								BGL_U16VREF(BgL_arg1224z00_4211,
																								BgL_tmpz00_7171);
																					}}
																					{	/* Unsafe/bignumber.scm 267 */
																						long BgL_arg2284z00_4213;

																						BgL_arg2284z00_4213 =
																							(long) (BgL_arg1223z00_4210);
																						BgL_nextzd2msdzd2ofzd2nxzd2_1844 =
																							(long) (BgL_arg2284z00_4213);
																		}}}}
																		{	/* Unsafe/bignumber.scm 746 */
																			long BgL_arg1736z00_1936;

																			BgL_arg1736z00_1936 =
																				(BgL_iz00_1838 - 2L);
																			{	/* Unsafe/bignumber.scm 746 */
																				int BgL_iz00_4217;

																				BgL_iz00_4217 =
																					(int) (BgL_arg1736z00_1936);
																				{	/* Unsafe/bignumber.scm 267 */
																					uint16_t BgL_arg1223z00_4218;

																					{	/* Unsafe/bignumber.scm 267 */
																						obj_t BgL_arg1224z00_4219;

																						BgL_arg1224z00_4219 =
																							BGL_BIGNUM_U16VECT
																							(BgL_nxz00_1806);
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_tmpz00_7179;

																							BgL_tmpz00_7179 =
																								(long) (BgL_iz00_4217);
																							BgL_arg1223z00_4218 =
																								BGL_U16VREF(BgL_arg1224z00_4219,
																								BgL_tmpz00_7179);
																					}}
																					{	/* Unsafe/bignumber.scm 267 */
																						long BgL_arg2284z00_4221;

																						BgL_arg2284z00_4221 =
																							(long) (BgL_arg1223z00_4218);
																						BgL_nextzd2nextzd2msdzd2ofzd2nxz00_1845
																							= (long) (BgL_arg2284z00_4221);
																		}}}}
																		{
																			long BgL_qz00_1912;
																			long BgL_uz00_1913;

																			{	/* Unsafe/bignumber.scm 760 */
																				long BgL_qz00_1847;

																				if (
																					(BgL_msdzd2ofzd2nxz00_1843 ==
																						BgL_msdzd2ofzd2nyz00_1841))
																					{	/* Unsafe/bignumber.scm 760 */
																						BgL_qz00_1912 = 16383L;
																						BgL_uz00_1913 =
																							(BgL_msdzd2ofzd2nyz00_1841 +
																							BgL_nextzd2msdzd2ofzd2nxzd2_1844);
																					BgL_zc3z04anonymousza31718ze3z87_1914:
																						if (
																							(BgL_uz00_1913 < 16384L))
																							{	/* Unsafe/bignumber.scm 750 */
																								long BgL_temp1z00_1917;

																								BgL_temp1z00_1917 =
																									(BgL_qz00_1912 *
																									BgL_nextzd2msdzd2ofzd2nyzd2_1842);
																								{	/* Unsafe/bignumber.scm 750 */
																									long BgL_temp2z00_1918;

																									BgL_temp2z00_1918 =
																										(BgL_temp1z00_1917 /
																										16384L);
																									{	/* Unsafe/bignumber.scm 751 */

																										{	/* Unsafe/bignumber.scm 752 */
																											bool_t
																												BgL_test2767z00_7190;
																											if ((BgL_uz00_1913 <
																													BgL_temp2z00_1918))
																												{	/* Unsafe/bignumber.scm 752 */
																													BgL_test2767z00_7190 =
																														((bool_t) 1);
																												}
																											else
																												{	/* Unsafe/bignumber.scm 752 */
																													if (
																														(BgL_temp2z00_1918
																															== BgL_uz00_1913))
																														{	/* Unsafe/bignumber.scm 755 */
																															long
																																BgL_arg1729z00_1928;
																															{	/* Unsafe/bignumber.scm 755 */
																																long
																																	BgL_n1z00_4233;
																																long
																																	BgL_n2z00_4234;
																																BgL_n1z00_4233 =
																																	BgL_temp1z00_1917;
																																BgL_n2z00_4234 =
																																	16384L;
																																{	/* Unsafe/bignumber.scm 755 */
																																	bool_t
																																		BgL_test2770z00_7195;
																																	{	/* Unsafe/bignumber.scm 755 */
																																		long
																																			BgL_arg2181z00_4236;
																																		BgL_arg2181z00_4236
																																			=
																																			(((BgL_n1z00_4233) | (BgL_n2z00_4234)) & -2147483648);
																																		BgL_test2770z00_7195
																																			=
																																			(BgL_arg2181z00_4236
																																			== 0L);
																																	}
																																	if (BgL_test2770z00_7195)
																																		{	/* Unsafe/bignumber.scm 755 */
																																			int32_t
																																				BgL_arg2178z00_4237;
																																			{	/* Unsafe/bignumber.scm 755 */
																																				int32_t
																																					BgL_arg2179z00_4238;
																																				int32_t
																																					BgL_arg2180z00_4239;
																																				BgL_arg2179z00_4238
																																					=
																																					(int32_t)
																																					(BgL_n1z00_4233);
																																				BgL_arg2180z00_4239
																																					=
																																					(int32_t)
																																					(BgL_n2z00_4234);
																																				BgL_arg2178z00_4237
																																					=
																																					(BgL_arg2179z00_4238
																																					%
																																					BgL_arg2180z00_4239);
																																			}
																																			{	/* Unsafe/bignumber.scm 755 */
																																				long
																																					BgL_arg2283z00_4244;
																																				BgL_arg2283z00_4244
																																					=
																																					(long)
																																					(BgL_arg2178z00_4237);
																																				BgL_arg1729z00_1928
																																					=
																																					(long)
																																					(BgL_arg2283z00_4244);
																																		}}
																																	else
																																		{	/* Unsafe/bignumber.scm 755 */
																																			BgL_arg1729z00_1928
																																				=
																																				(BgL_n1z00_4233
																																				%
																																				BgL_n2z00_4234);
																																		}
																																}
																															}
																															BgL_test2767z00_7190
																																=
																																(BgL_nextzd2nextzd2msdzd2ofzd2nxz00_1845
																																<
																																BgL_arg1729z00_1928);
																														}
																													else
																														{	/* Unsafe/bignumber.scm 753 */
																															BgL_test2767z00_7190
																																= ((bool_t) 0);
																														}
																												}
																											if (BgL_test2767z00_7190)
																												{
																													long BgL_uz00_7207;
																													long BgL_qz00_7205;

																													BgL_qz00_7205 =
																														(BgL_qz00_1912 -
																														1L);
																													BgL_uz00_7207 =
																														(BgL_uz00_1913 +
																														BgL_msdzd2ofzd2nyz00_1841);
																													BgL_uz00_1913 =
																														BgL_uz00_7207;
																													BgL_qz00_1912 =
																														BgL_qz00_7205;
																													goto
																														BgL_zc3z04anonymousza31718ze3z87_1914;
																												}
																											else
																												{	/* Unsafe/bignumber.scm 752 */
																													BgL_qz00_1847 =
																														BgL_qz00_1912;
																												}
																										}
																									}
																								}
																							}
																						else
																							{	/* Unsafe/bignumber.scm 749 */
																								BgL_qz00_1847 = BgL_qz00_1912;
																							}
																					}
																				else
																					{	/* Unsafe/bignumber.scm 763 */
																						long BgL_tempz00_1907;

																						BgL_tempz00_1907 =
																							(
																							(BgL_msdzd2ofzd2nxz00_1843 *
																								16384L) +
																							BgL_nextzd2msdzd2ofzd2nxzd2_1844);
																						{	/* Unsafe/bignumber.scm 765 */
																							long BgL_arg1714z00_1908;
																							long BgL_arg1715z00_1909;

																							BgL_arg1714z00_1908 =
																								(BgL_tempz00_1907 /
																								BgL_msdzd2ofzd2nyz00_1841);
																							BgL_arg1715z00_1909 =
																								BGl_modulofxz00zz__r4_numbers_6_5_fixnumz00
																								(BgL_tempz00_1907,
																								BgL_msdzd2ofzd2nyz00_1841);
																							{
																								long BgL_uz00_7215;
																								long BgL_qz00_7214;

																								BgL_qz00_7214 =
																									BgL_arg1714z00_1908;
																								BgL_uz00_7215 =
																									BgL_arg1715z00_1909;
																								BgL_uz00_1913 = BgL_uz00_7215;
																								BgL_qz00_1912 = BgL_qz00_7214;
																								goto
																									BgL_zc3z04anonymousza31718ze3z87_1914;
																							}
																						}
																					}
																				{	/* Unsafe/bignumber.scm 770 */
																					long BgL_g1054z00_1848;

																					BgL_g1054z00_1848 =
																						(BgL_iz00_1838 -
																						(BgL_lenyz00_1794 - 1L));
																					{
																						long BgL_jz00_1850;
																						long BgL_kz00_1851;
																						long BgL_bz00_1852;

																						BgL_jz00_1850 = 1L;
																						BgL_kz00_1851 = BgL_g1054z00_1848;
																						BgL_bz00_1852 = 0L;
																					BgL_zc3z04anonymousza31641ze3z87_1853:
																						if (
																							(BgL_jz00_1850 <
																								BgL_lenyz00_1794))
																							{	/* Unsafe/bignumber.scm 775 */
																								long BgL_wz00_1855;

																								{	/* Unsafe/bignumber.scm 775 */
																									long BgL_arg1658z00_1864;
																									long BgL_arg1659z00_1865;

																									{	/* Unsafe/bignumber.scm 775 */
																										long BgL_arg1661z00_1866;

																										{	/* Unsafe/bignumber.scm 775 */
																											int BgL_iz00_4267;

																											BgL_iz00_4267 =
																												(int) (BgL_kz00_1851);
																											{	/* Unsafe/bignumber.scm 267 */
																												uint16_t
																													BgL_arg1223z00_4268;
																												{	/* Unsafe/bignumber.scm 267 */
																													obj_t
																														BgL_arg1224z00_4269;
																													BgL_arg1224z00_4269 =
																														BGL_BIGNUM_U16VECT
																														(BgL_nxz00_1806);
																													{	/* Unsafe/bignumber.scm 267 */
																														long
																															BgL_tmpz00_7222;
																														BgL_tmpz00_7222 =
																															(long)
																															(BgL_iz00_4267);
																														BgL_arg1223z00_4268
																															=
																															BGL_U16VREF
																															(BgL_arg1224z00_4269,
																															BgL_tmpz00_7222);
																												}}
																												{	/* Unsafe/bignumber.scm 267 */
																													long
																														BgL_arg2284z00_4271;
																													BgL_arg2284z00_4271 =
																														(long)
																														(BgL_arg1223z00_4268);
																													BgL_arg1661z00_1866 =
																														(long)
																														(BgL_arg2284z00_4271);
																										}}}
																										BgL_arg1658z00_1864 =
																											(BgL_arg1661z00_1866 +
																											BgL_bz00_1852);
																									}
																									{	/* Unsafe/bignumber.scm 776 */
																										long BgL_arg1662z00_1867;

																										{	/* Unsafe/bignumber.scm 776 */
																											int BgL_iz00_4276;

																											BgL_iz00_4276 =
																												(int) (BgL_jz00_1850);
																											{	/* Unsafe/bignumber.scm 267 */
																												uint16_t
																													BgL_arg1223z00_4277;
																												{	/* Unsafe/bignumber.scm 267 */
																													obj_t
																														BgL_arg1224z00_4278;
																													BgL_arg1224z00_4278 =
																														BGL_BIGNUM_U16VECT
																														(BgL_nyz00_1807);
																													{	/* Unsafe/bignumber.scm 267 */
																														long
																															BgL_tmpz00_7230;
																														BgL_tmpz00_7230 =
																															(long)
																															(BgL_iz00_4276);
																														BgL_arg1223z00_4277
																															=
																															BGL_U16VREF
																															(BgL_arg1224z00_4278,
																															BgL_tmpz00_7230);
																												}}
																												{	/* Unsafe/bignumber.scm 267 */
																													long
																														BgL_arg2284z00_4280;
																													BgL_arg2284z00_4280 =
																														(long)
																														(BgL_arg1223z00_4277);
																													BgL_arg1662z00_1867 =
																														(long)
																														(BgL_arg2284z00_4280);
																										}}}
																										BgL_arg1659z00_1865 =
																											(BgL_arg1662z00_1867 *
																											BgL_qz00_1847);
																									}
																									BgL_wz00_1855 =
																										(BgL_arg1658z00_1864 -
																										BgL_arg1659z00_1865);
																								}
																								{	/* Unsafe/bignumber.scm 780 */
																									obj_t BgL_arg1643z00_1856;

																									BgL_arg1643z00_1856 =
																										BGl_moduloz00zz__r4_numbers_6_5_fixnumz00
																										(BINT(BgL_wz00_1855),
																										BINT(16384L));
																									{	/* Unsafe/bignumber.scm 777 */
																										int BgL_iz00_4287;
																										int BgL_digitz00_4288;

																										BgL_iz00_4287 =
																											(int) (BgL_kz00_1851);
																										BgL_digitz00_4288 =
																											CINT(BgL_arg1643z00_1856);
																										{	/* Unsafe/bignumber.scm 269 */
																											obj_t BgL_arg1225z00_4289;
																											uint16_t
																												BgL_arg1226z00_4290;
																											BgL_arg1225z00_4289 =
																												BGL_BIGNUM_U16VECT
																												(BgL_nxz00_1806);
																											{	/* Unsafe/bignumber.scm 269 */
																												long BgL_tmpz00_7243;

																												BgL_tmpz00_7243 =
																													(long)
																													(BgL_digitz00_4288);
																												BgL_arg1226z00_4290 =
																													(uint16_t)
																													(BgL_tmpz00_7243);
																											}
																											{	/* Unsafe/bignumber.scm 269 */
																												long BgL_tmpz00_7246;

																												BgL_tmpz00_7246 =
																													(long)
																													(BgL_iz00_4287);
																												BGL_U16VSET
																													(BgL_arg1225z00_4289,
																													BgL_tmpz00_7246,
																													BgL_arg1226z00_4290);
																											} BUNSPEC;
																								}}}
																								{	/* Unsafe/bignumber.scm 781 */
																									long BgL_arg1645z00_1858;
																									long BgL_arg1649z00_1859;
																									long BgL_arg1651z00_1860;

																									BgL_arg1645z00_1858 =
																										(BgL_jz00_1850 + 1L);
																									BgL_arg1649z00_1859 =
																										(BgL_kz00_1851 + 1L);
																									{	/* Unsafe/bignumber.scm 783 */
																										long BgL_tmpz00_7251;

																										BgL_tmpz00_7251 =
																											(BgL_wz00_1855 - 16383L);
																										BgL_arg1651z00_1860 =
																											(BgL_tmpz00_7251 /
																											16384L);
																									}
																									{
																										long BgL_bz00_7256;
																										long BgL_kz00_7255;
																										long BgL_jz00_7254;

																										BgL_jz00_7254 =
																											BgL_arg1645z00_1858;
																										BgL_kz00_7255 =
																											BgL_arg1649z00_1859;
																										BgL_bz00_7256 =
																											BgL_arg1651z00_1860;
																										BgL_bz00_1852 =
																											BgL_bz00_7256;
																										BgL_kz00_1851 =
																											BgL_kz00_7255;
																										BgL_jz00_1850 =
																											BgL_jz00_7254;
																										goto
																											BgL_zc3z04anonymousza31641ze3z87_1853;
																									}
																								}
																							}
																						else
																							{	/* Unsafe/bignumber.scm 786 */
																								long BgL_wz00_1868;

																								{	/* Unsafe/bignumber.scm 786 */
																									long BgL_arg1709z00_1901;

																									{	/* Unsafe/bignumber.scm 786 */
																										int BgL_iz00_4299;

																										BgL_iz00_4299 =
																											(int) (BgL_kz00_1851);
																										{	/* Unsafe/bignumber.scm 267 */
																											uint16_t
																												BgL_arg1223z00_4300;
																											{	/* Unsafe/bignumber.scm 267 */
																												obj_t
																													BgL_arg1224z00_4301;
																												BgL_arg1224z00_4301 =
																													BGL_BIGNUM_U16VECT
																													(BgL_nxz00_1806);
																												{	/* Unsafe/bignumber.scm 267 */
																													long BgL_tmpz00_7259;

																													BgL_tmpz00_7259 =
																														(long)
																														(BgL_iz00_4299);
																													BgL_arg1223z00_4300 =
																														BGL_U16VREF
																														(BgL_arg1224z00_4301,
																														BgL_tmpz00_7259);
																											}}
																											{	/* Unsafe/bignumber.scm 267 */
																												long
																													BgL_arg2284z00_4303;
																												BgL_arg2284z00_4303 =
																													(long)
																													(BgL_arg1223z00_4300);
																												BgL_arg1709z00_1901 =
																													(long)
																													(BgL_arg2284z00_4303);
																									}}}
																									BgL_wz00_1868 =
																										(BgL_arg1709z00_1901 +
																										BgL_bz00_1852);
																								}
																								{	/* Unsafe/bignumber.scm 790 */
																									obj_t BgL_arg1663z00_1869;

																									BgL_arg1663z00_1869 =
																										BGl_moduloz00zz__r4_numbers_6_5_fixnumz00
																										(BINT(BgL_wz00_1868),
																										BINT(16384L));
																									{	/* Unsafe/bignumber.scm 787 */
																										int BgL_iz00_4308;
																										int BgL_digitz00_4309;

																										BgL_iz00_4308 =
																											(int) (BgL_kz00_1851);
																										BgL_digitz00_4309 =
																											CINT(BgL_arg1663z00_1869);
																										{	/* Unsafe/bignumber.scm 269 */
																											obj_t BgL_arg1225z00_4310;
																											uint16_t
																												BgL_arg1226z00_4311;
																											BgL_arg1225z00_4310 =
																												BGL_BIGNUM_U16VECT
																												(BgL_nxz00_1806);
																											{	/* Unsafe/bignumber.scm 269 */
																												long BgL_tmpz00_7271;

																												BgL_tmpz00_7271 =
																													(long)
																													(BgL_digitz00_4309);
																												BgL_arg1226z00_4311 =
																													(uint16_t)
																													(BgL_tmpz00_7271);
																											}
																											{	/* Unsafe/bignumber.scm 269 */
																												long BgL_tmpz00_7274;

																												BgL_tmpz00_7274 =
																													(long)
																													(BgL_iz00_4308);
																												BGL_U16VSET
																													(BgL_arg1225z00_4310,
																													BgL_tmpz00_7274,
																													BgL_arg1226z00_4311);
																											} BUNSPEC;
																								}}}
																								if ((BgL_wz00_1868 < 0L))
																									{	/* Unsafe/bignumber.scm 791 */
																										{	/* Unsafe/bignumber.scm 795 */
																											long BgL_arg1670z00_1872;
																											long BgL_arg1671z00_1873;

																											BgL_arg1670z00_1872 =
																												(BgL_iz00_1838 -
																												(BgL_lenyz00_1794 -
																													1L));
																											BgL_arg1671z00_1873 =
																												(BgL_qz00_1847 - 1L);
																											{	/* Unsafe/bignumber.scm 793 */
																												int BgL_iz00_4319;
																												int BgL_digitz00_4320;

																												BgL_iz00_4319 =
																													(int)
																													(BgL_arg1670z00_1872);
																												BgL_digitz00_4320 =
																													(int)
																													(BgL_arg1671z00_1873);
																												{	/* Unsafe/bignumber.scm 269 */
																													obj_t
																														BgL_arg1225z00_4321;
																													uint16_t
																														BgL_arg1226z00_4322;
																													BgL_arg1225z00_4321 =
																														BGL_BIGNUM_U16VECT
																														(BgL_rz00_1795);
																													{	/* Unsafe/bignumber.scm 269 */
																														long
																															BgL_tmpz00_7285;
																														BgL_tmpz00_7285 =
																															(long)
																															(BgL_digitz00_4320);
																														BgL_arg1226z00_4322
																															=
																															(uint16_t)
																															(BgL_tmpz00_7285);
																													}
																													{	/* Unsafe/bignumber.scm 269 */
																														long
																															BgL_tmpz00_7288;
																														BgL_tmpz00_7288 =
																															(long)
																															(BgL_iz00_4319);
																														BGL_U16VSET
																															(BgL_arg1225z00_4321,
																															BgL_tmpz00_7288,
																															BgL_arg1226z00_4322);
																													} BUNSPEC;
																										}}}
																										{	/* Unsafe/bignumber.scm 797 */
																											long BgL_g1055z00_1875;

																											BgL_g1055z00_1875 =
																												(BgL_iz00_1838 -
																												(BgL_lenyz00_1794 -
																													1L));
																											{
																												long BgL_jz00_1877;
																												long BgL_kz00_1878;
																												long BgL_cz00_1879;

																												BgL_jz00_1877 = 1L;
																												BgL_kz00_1878 =
																													BgL_g1055z00_1875;
																												BgL_cz00_1879 = 0L;
																											BgL_zc3z04anonymousza31673ze3z87_1880:
																												if (
																													(BgL_jz00_1877 <
																														BgL_lenyz00_1794))
																													{	/* Unsafe/bignumber.scm 802 */
																														long BgL_wz00_1882;

																														{	/* Unsafe/bignumber.scm 804 */
																															long
																																BgL_arg1689z00_1889;
																															{	/* Unsafe/bignumber.scm 804 */
																																long
																																	BgL_arg1690z00_1890;
																																long
																																	BgL_arg1693z00_1891;
																																{	/* Unsafe/bignumber.scm 804 */
																																	int
																																		BgL_iz00_4330;
																																	BgL_iz00_4330
																																		=
																																		(int)
																																		(BgL_kz00_1878);
																																	{	/* Unsafe/bignumber.scm 267 */
																																		uint16_t
																																			BgL_arg1223z00_4331;
																																		{	/* Unsafe/bignumber.scm 267 */
																																			obj_t
																																				BgL_arg1224z00_4332;
																																			BgL_arg1224z00_4332
																																				=
																																				BGL_BIGNUM_U16VECT
																																				(BgL_nxz00_1806);
																																			{	/* Unsafe/bignumber.scm 267 */
																																				long
																																					BgL_tmpz00_7297;
																																				BgL_tmpz00_7297
																																					=
																																					(long)
																																					(BgL_iz00_4330);
																																				BgL_arg1223z00_4331
																																					=
																																					BGL_U16VREF
																																					(BgL_arg1224z00_4332,
																																					BgL_tmpz00_7297);
																																		}}
																																		{	/* Unsafe/bignumber.scm 267 */
																																			long
																																				BgL_arg2284z00_4334;
																																			BgL_arg2284z00_4334
																																				=
																																				(long)
																																				(BgL_arg1223z00_4331);
																																			BgL_arg1690z00_1890
																																				=
																																				(long)
																																				(BgL_arg2284z00_4334);
																																}}}
																																{	/* Unsafe/bignumber.scm 805 */
																																	int
																																		BgL_iz00_4337;
																																	BgL_iz00_4337
																																		=
																																		(int)
																																		(BgL_jz00_1877);
																																	{	/* Unsafe/bignumber.scm 267 */
																																		uint16_t
																																			BgL_arg1223z00_4338;
																																		{	/* Unsafe/bignumber.scm 267 */
																																			obj_t
																																				BgL_arg1224z00_4339;
																																			BgL_arg1224z00_4339
																																				=
																																				BGL_BIGNUM_U16VECT
																																				(BgL_nyz00_1807);
																																			{	/* Unsafe/bignumber.scm 267 */
																																				long
																																					BgL_tmpz00_7304;
																																				BgL_tmpz00_7304
																																					=
																																					(long)
																																					(BgL_iz00_4337);
																																				BgL_arg1223z00_4338
																																					=
																																					BGL_U16VREF
																																					(BgL_arg1224z00_4339,
																																					BgL_tmpz00_7304);
																																		}}
																																		{	/* Unsafe/bignumber.scm 267 */
																																			long
																																				BgL_arg2284z00_4341;
																																			BgL_arg2284z00_4341
																																				=
																																				(long)
																																				(BgL_arg1223z00_4338);
																																			BgL_arg1693z00_1891
																																				=
																																				(long)
																																				(BgL_arg2284z00_4341);
																																}}}
																																BgL_arg1689z00_1889
																																	=
																																	(BgL_arg1690z00_1890
																																	+
																																	BgL_arg1693z00_1891);
																															}
																															BgL_wz00_1882 =
																																(BgL_arg1689z00_1889
																																+
																																BgL_cz00_1879);
																														}
																														{	/* Unsafe/bignumber.scm 810 */
																															obj_t
																																BgL_arg1675z00_1883;
																															BgL_arg1675z00_1883
																																=
																																BGl_moduloz00zz__r4_numbers_6_5_fixnumz00
																																(BINT
																																(BgL_wz00_1882),
																																BINT(16384L));
																															{	/* Unsafe/bignumber.scm 807 */
																																int
																																	BgL_iz00_4348;
																																int
																																	BgL_digitz00_4349;
																																BgL_iz00_4348 =
																																	(int)
																																	(BgL_kz00_1878);
																																BgL_digitz00_4349
																																	=
																																	CINT
																																	(BgL_arg1675z00_1883);
																																{	/* Unsafe/bignumber.scm 269 */
																																	obj_t
																																		BgL_arg1225z00_4350;
																																	uint16_t
																																		BgL_arg1226z00_4351;
																																	BgL_arg1225z00_4350
																																		=
																																		BGL_BIGNUM_U16VECT
																																		(BgL_nxz00_1806);
																																	{	/* Unsafe/bignumber.scm 269 */
																																		long
																																			BgL_tmpz00_7317;
																																		BgL_tmpz00_7317
																																			=
																																			(long)
																																			(BgL_digitz00_4349);
																																		BgL_arg1226z00_4351
																																			=
																																			(uint16_t)
																																			(BgL_tmpz00_7317);
																																	}
																																	{	/* Unsafe/bignumber.scm 269 */
																																		long
																																			BgL_tmpz00_7320;
																																		BgL_tmpz00_7320
																																			=
																																			(long)
																																			(BgL_iz00_4348);
																																		BGL_U16VSET
																																			(BgL_arg1225z00_4350,
																																			BgL_tmpz00_7320,
																																			BgL_arg1226z00_4351);
																																	} BUNSPEC;
																														}}}
																														{	/* Unsafe/bignumber.scm 812 */
																															long
																																BgL_arg1681z00_1885;
																															long
																																BgL_arg1684z00_1886;
																															long
																																BgL_arg1685z00_1887;
																															BgL_arg1681z00_1885
																																=
																																(BgL_jz00_1877 +
																																1L);
																															BgL_arg1684z00_1886
																																=
																																(BgL_kz00_1878 +
																																1L);
																															BgL_arg1685z00_1887
																																=
																																(BgL_wz00_1882 /
																																16384L);
																															{
																																long
																																	BgL_cz00_7328;
																																long
																																	BgL_kz00_7327;
																																long
																																	BgL_jz00_7326;
																																BgL_jz00_7326 =
																																	BgL_arg1681z00_1885;
																																BgL_kz00_7327 =
																																	BgL_arg1684z00_1886;
																																BgL_cz00_7328 =
																																	BgL_arg1685z00_1887;
																																BgL_cz00_1879 =
																																	BgL_cz00_7328;
																																BgL_kz00_1878 =
																																	BgL_kz00_7327;
																																BgL_jz00_1877 =
																																	BgL_jz00_7326;
																																goto
																																	BgL_zc3z04anonymousza31673ze3z87_1880;
																															}
																														}
																													}
																												else
																													{	/* Unsafe/bignumber.scm 819 */
																														obj_t
																															BgL_arg1695z00_1892;
																														{	/* Unsafe/bignumber.scm 819 */
																															long
																																BgL_arg1696z00_1893;
																															{	/* Unsafe/bignumber.scm 819 */
																																long
																																	BgL_arg1703z00_1895;
																																{	/* Unsafe/bignumber.scm 819 */
																																	int
																																		BgL_iz00_4358;
																																	BgL_iz00_4358
																																		=
																																		(int)
																																		(BgL_kz00_1878);
																																	{	/* Unsafe/bignumber.scm 267 */
																																		uint16_t
																																			BgL_arg1223z00_4359;
																																		{	/* Unsafe/bignumber.scm 267 */
																																			obj_t
																																				BgL_arg1224z00_4360;
																																			BgL_arg1224z00_4360
																																				=
																																				BGL_BIGNUM_U16VECT
																																				(BgL_nxz00_1806);
																																			{	/* Unsafe/bignumber.scm 267 */
																																				long
																																					BgL_tmpz00_7331;
																																				BgL_tmpz00_7331
																																					=
																																					(long)
																																					(BgL_iz00_4358);
																																				BgL_arg1223z00_4359
																																					=
																																					BGL_U16VREF
																																					(BgL_arg1224z00_4360,
																																					BgL_tmpz00_7331);
																																		}}
																																		{	/* Unsafe/bignumber.scm 267 */
																																			long
																																				BgL_arg2284z00_4362;
																																			BgL_arg2284z00_4362
																																				=
																																				(long)
																																				(BgL_arg1223z00_4359);
																																			BgL_arg1703z00_1895
																																				=
																																				(long)
																																				(BgL_arg2284z00_4362);
																																}}}
																																BgL_arg1696z00_1893
																																	=
																																	(BgL_arg1703z00_1895
																																	+
																																	BgL_cz00_1879);
																															}
																															BgL_arg1695z00_1892
																																=
																																BGl_moduloz00zz__r4_numbers_6_5_fixnumz00
																																(BINT
																																(BgL_arg1696z00_1893),
																																BINT(16384L));
																														}
																														{	/* Unsafe/bignumber.scm 815 */
																															int BgL_iz00_4367;
																															int
																																BgL_digitz00_4368;
																															BgL_iz00_4367 =
																																(int)
																																(BgL_kz00_1878);
																															BgL_digitz00_4368
																																=
																																CINT
																																(BgL_arg1695z00_1892);
																															{	/* Unsafe/bignumber.scm 269 */
																																obj_t
																																	BgL_arg1225z00_4369;
																																uint16_t
																																	BgL_arg1226z00_4370;
																																BgL_arg1225z00_4369
																																	=
																																	BGL_BIGNUM_U16VECT
																																	(BgL_nxz00_1806);
																																{	/* Unsafe/bignumber.scm 269 */
																																	long
																																		BgL_tmpz00_7343;
																																	BgL_tmpz00_7343
																																		=
																																		(long)
																																		(BgL_digitz00_4368);
																																	BgL_arg1226z00_4370
																																		=
																																		(uint16_t)
																																		(BgL_tmpz00_7343);
																																}
																																{	/* Unsafe/bignumber.scm 269 */
																																	long
																																		BgL_tmpz00_7346;
																																	BgL_tmpz00_7346
																																		=
																																		(long)
																																		(BgL_iz00_4367);
																																	BGL_U16VSET
																																		(BgL_arg1225z00_4369,
																																		BgL_tmpz00_7346,
																																		BgL_arg1226z00_4370);
																																} BUNSPEC;
																									}}}}}}
																								else
																									{	/* Unsafe/bignumber.scm 821 */
																										long BgL_arg1706z00_1898;

																										BgL_arg1706z00_1898 =
																											(BgL_iz00_1838 -
																											(BgL_lenyz00_1794 - 1L));
																										{	/* Unsafe/bignumber.scm 821 */
																											int BgL_iz00_4376;
																											int BgL_digitz00_4377;

																											BgL_iz00_4376 =
																												(int)
																												(BgL_arg1706z00_1898);
																											BgL_digitz00_4377 =
																												(int) (BgL_qz00_1847);
																											{	/* Unsafe/bignumber.scm 269 */
																												obj_t
																													BgL_arg1225z00_4378;
																												uint16_t
																													BgL_arg1226z00_4379;
																												BgL_arg1225z00_4378 =
																													BGL_BIGNUM_U16VECT
																													(BgL_rz00_1795);
																												{	/* Unsafe/bignumber.scm 269 */
																													long BgL_tmpz00_7354;

																													BgL_tmpz00_7354 =
																														(long)
																														(BgL_digitz00_4377);
																													BgL_arg1226z00_4379 =
																														(uint16_t)
																														(BgL_tmpz00_7354);
																												}
																												{	/* Unsafe/bignumber.scm 269 */
																													long BgL_tmpz00_7357;

																													BgL_tmpz00_7357 =
																														(long)
																														(BgL_iz00_4376);
																													BGL_U16VSET
																														(BgL_arg1225z00_4378,
																														BgL_tmpz00_7357,
																														BgL_arg1226z00_4379);
																												} BUNSPEC;
																									}}}
																								{
																									long BgL_iz00_7360;

																									BgL_iz00_7360 =
																										(BgL_iz00_1838 - 1L);
																									BgL_iz00_1838 = BgL_iz00_7360;
																									goto
																										BgL_zc3z04anonymousza31639ze3z87_1839;
																								}
																							}
																					}
																				}
																			}
																		}
																	}
															}
															{	/* Unsafe/bignumber.scm 824 */
																long BgL_g1056z00_1938;

																BgL_g1056z00_1938 = (BgL_lenyz00_1794 - 1L);
																{
																	long BgL_iz00_1940;
																	long BgL_kz00_1941;

																	BgL_iz00_1940 = BgL_g1056z00_1938;
																	BgL_kz00_1941 = 0L;
																BgL_zc3z04anonymousza31737ze3z87_1942:
																	if ((0L < BgL_iz00_1940))
																		{	/* Unsafe/bignumber.scm 826 */
																			long BgL_wz00_1944;

																			{	/* Unsafe/bignumber.scm 826 */
																				long BgL_arg1743z00_1948;
																				long BgL_arg1744z00_1949;

																				BgL_arg1743z00_1948 =
																					(BgL_kz00_1941 * 16384L);
																				{	/* Unsafe/bignumber.scm 827 */
																					int BgL_iz00_4387;

																					BgL_iz00_4387 = (int) (BgL_iz00_1940);
																					{	/* Unsafe/bignumber.scm 267 */
																						uint16_t BgL_arg1223z00_4388;

																						{	/* Unsafe/bignumber.scm 267 */
																							obj_t BgL_arg1224z00_4389;

																							BgL_arg1224z00_4389 =
																								BGL_BIGNUM_U16VECT
																								(BgL_nxz00_1806);
																							{	/* Unsafe/bignumber.scm 267 */
																								long BgL_tmpz00_7368;

																								BgL_tmpz00_7368 =
																									(long) (BgL_iz00_4387);
																								BgL_arg1223z00_4388 =
																									BGL_U16VREF
																									(BgL_arg1224z00_4389,
																									BgL_tmpz00_7368);
																						}}
																						{	/* Unsafe/bignumber.scm 267 */
																							long BgL_arg2284z00_4391;

																							BgL_arg2284z00_4391 =
																								(long) (BgL_arg1223z00_4388);
																							BgL_arg1744z00_1949 =
																								(long) (BgL_arg2284z00_4391);
																				}}}
																				BgL_wz00_1944 =
																					(BgL_arg1743z00_1948 +
																					BgL_arg1744z00_1949);
																			}
																			{	/* Unsafe/bignumber.scm 828 */
																				long BgL_arg1739z00_1945;

																				BgL_arg1739z00_1945 =
																					(BgL_wz00_1944 / BgL_shiftz00_1799);
																				{	/* Unsafe/bignumber.scm 828 */
																					int BgL_iz00_4398;
																					int BgL_digitz00_4399;

																					BgL_iz00_4398 = (int) (BgL_iz00_1940);
																					BgL_digitz00_4399 =
																						(int) (BgL_arg1739z00_1945);
																					{	/* Unsafe/bignumber.scm 269 */
																						obj_t BgL_arg1225z00_4400;
																						uint16_t BgL_arg1226z00_4401;

																						BgL_arg1225z00_4400 =
																							BGL_BIGNUM_U16VECT
																							(BgL_nxz00_1806);
																						{	/* Unsafe/bignumber.scm 269 */
																							long BgL_tmpz00_7378;

																							BgL_tmpz00_7378 =
																								(long) (BgL_digitz00_4399);
																							BgL_arg1226z00_4401 =
																								(uint16_t) (BgL_tmpz00_7378);
																						}
																						{	/* Unsafe/bignumber.scm 269 */
																							long BgL_tmpz00_7381;

																							BgL_tmpz00_7381 =
																								(long) (BgL_iz00_4398);
																							BGL_U16VSET(BgL_arg1225z00_4400,
																								BgL_tmpz00_7381,
																								BgL_arg1226z00_4401);
																						} BUNSPEC;
																			}}}
																			{	/* Unsafe/bignumber.scm 829 */
																				long BgL_arg1741z00_1946;
																				long BgL_arg1742z00_1947;

																				BgL_arg1741z00_1946 =
																					(BgL_iz00_1940 - 1L);
																				{	/* Unsafe/bignumber.scm 830 */
																					long BgL_n1z00_4404;
																					long BgL_n2z00_4405;

																					BgL_n1z00_4404 = BgL_wz00_1944;
																					BgL_n2z00_4405 = BgL_shiftz00_1799;
																					{	/* Unsafe/bignumber.scm 830 */
																						bool_t BgL_test2775z00_7385;

																						{	/* Unsafe/bignumber.scm 830 */
																							long BgL_arg2181z00_4407;

																							BgL_arg2181z00_4407 =
																								(((BgL_n1z00_4404) |
																									(BgL_n2z00_4405)) &
																								-2147483648);
																							BgL_test2775z00_7385 =
																								(BgL_arg2181z00_4407 == 0L);
																						}
																						if (BgL_test2775z00_7385)
																							{	/* Unsafe/bignumber.scm 830 */
																								int32_t BgL_arg2178z00_4408;

																								{	/* Unsafe/bignumber.scm 830 */
																									int32_t BgL_arg2179z00_4409;
																									int32_t BgL_arg2180z00_4410;

																									BgL_arg2179z00_4409 =
																										(int32_t) (BgL_n1z00_4404);
																									BgL_arg2180z00_4410 =
																										(int32_t) (BgL_n2z00_4405);
																									BgL_arg2178z00_4408 =
																										(BgL_arg2179z00_4409 %
																										BgL_arg2180z00_4410);
																								}
																								{	/* Unsafe/bignumber.scm 830 */
																									long BgL_arg2283z00_4415;

																									BgL_arg2283z00_4415 =
																										(long)
																										(BgL_arg2178z00_4408);
																									BgL_arg1742z00_1947 =
																										(long)
																										(BgL_arg2283z00_4415);
																							}}
																						else
																							{	/* Unsafe/bignumber.scm 830 */
																								BgL_arg1742z00_1947 =
																									(BgL_n1z00_4404 %
																									BgL_n2z00_4405);
																							}
																					}
																				}
																				{
																					long BgL_kz00_7395;
																					long BgL_iz00_7394;

																					BgL_iz00_7394 = BgL_arg1741z00_1946;
																					BgL_kz00_7395 = BgL_arg1742z00_1947;
																					BgL_kz00_1941 = BgL_kz00_7395;
																					BgL_iz00_1940 = BgL_iz00_7394;
																					goto
																						BgL_zc3z04anonymousza31737ze3z87_1942;
																				}
																			}
																		}
																	else
																		{	/* Unsafe/bignumber.scm 825 */
																			((bool_t) 0);
																		}
																}
															}
															return
																MAKE_YOUNG_PAIR
																(BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
																(BgL_rz00_1795),
																BGl_bignumzd2removezd2leadingzd2za7eroesz75zz__bignumz00
																(BgL_nxz00_1806));
														}
												}
											}
										}
								}
						}
				}
			}
		}

	}



/* $$divrembx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_div(obj_t BgL_xz00_67, obj_t BgL_yz00_68)
	{
		{	/* Unsafe/bignumber.scm 854 */
			{	/* Unsafe/bignumber.scm 855 */
				obj_t BgL_vz00_4473;

				BgL_vz00_4473 =
					BGl_bignumzd2divzd2zz__bignumz00(BgL_xz00_67, BgL_yz00_68);
				{	/* Unsafe/bignumber.scm 856 */
					obj_t BgL_val0_1099z00_4474;
					obj_t BgL_val1_1100z00_4475;

					BgL_val0_1099z00_4474 = CAR(((obj_t) BgL_vz00_4473));
					BgL_val1_1100z00_4475 = CDR(((obj_t) BgL_vz00_4473));
					{	/* Unsafe/bignumber.scm 856 */
						int BgL_tmpz00_7404;

						BgL_tmpz00_7404 = (int) (2L);
						BGL_MVALUES_NUMBER_SET(BgL_tmpz00_7404);
					}
					{	/* Unsafe/bignumber.scm 856 */
						int BgL_tmpz00_7407;

						BgL_tmpz00_7407 = (int) (1L);
						BGL_MVALUES_VAL_SET(BgL_tmpz00_7407, BgL_val1_1100z00_4475);
					}
					return BgL_val0_1099z00_4474;
				}
			}
		}

	}



/* &$$divrembx */
	obj_t BGl_z62z42z42divrembxz62zz__bignumz00(obj_t BgL_envz00_5538,
		obj_t BgL_xz00_5539, obj_t BgL_yz00_5540)
	{
		{	/* Unsafe/bignumber.scm 854 */
			{	/* Unsafe/bignumber.scm 855 */
				obj_t BgL_auxz00_7417;
				obj_t BgL_auxz00_7410;

				if (BIGNUMP(BgL_yz00_5540))
					{	/* Unsafe/bignumber.scm 855 */
						BgL_auxz00_7417 = BgL_yz00_5540;
					}
				else
					{
						obj_t BgL_auxz00_7420;

						BgL_auxz00_7420 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(27993L), BGl_string2513z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5540);
						FAILURE(BgL_auxz00_7420, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5539))
					{	/* Unsafe/bignumber.scm 855 */
						BgL_auxz00_7410 = BgL_xz00_5539;
					}
				else
					{
						obj_t BgL_auxz00_7413;

						BgL_auxz00_7413 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(27993L), BGl_string2513z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5539);
						FAILURE(BgL_auxz00_7413, BFALSE, BFALSE);
					}
				return bgl_bignum_div(BgL_auxz00_7410, BgL_auxz00_7417);
			}
		}

	}



/* $$quotientbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_quotient(obj_t BgL_xz00_69,
		obj_t BgL_yz00_70)
	{
		{	/* Unsafe/bignumber.scm 858 */
			{	/* Unsafe/bignumber.scm 859 */
				obj_t BgL_arg1762z00_4478;

				{	/* Unsafe/bignumber.scm 859 */
					obj_t BgL_arg1763z00_4479;

					BgL_arg1763z00_4479 =
						BGl_bignumzd2divzd2zz__bignumz00(BgL_xz00_69, BgL_yz00_70);
					BgL_arg1762z00_4478 = CAR(((obj_t) BgL_arg1763z00_4479));
				}
				return BgL_arg1762z00_4478;
			}
		}

	}



/* &$$quotientbx */
	obj_t BGl_z62z42z42quotientbxz62zz__bignumz00(obj_t BgL_envz00_5541,
		obj_t BgL_xz00_5542, obj_t BgL_yz00_5543)
	{
		{	/* Unsafe/bignumber.scm 858 */
			{	/* Unsafe/bignumber.scm 859 */
				obj_t BgL_auxz00_7435;
				obj_t BgL_auxz00_7428;

				if (BIGNUMP(BgL_yz00_5543))
					{	/* Unsafe/bignumber.scm 859 */
						BgL_auxz00_7435 = BgL_yz00_5543;
					}
				else
					{
						obj_t BgL_auxz00_7438;

						BgL_auxz00_7438 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(28108L), BGl_string2514z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5543);
						FAILURE(BgL_auxz00_7438, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5542))
					{	/* Unsafe/bignumber.scm 859 */
						BgL_auxz00_7428 = BgL_xz00_5542;
					}
				else
					{
						obj_t BgL_auxz00_7431;

						BgL_auxz00_7431 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(28108L), BGl_string2514z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5542);
						FAILURE(BgL_auxz00_7431, BFALSE, BFALSE);
					}
				return bgl_bignum_quotient(BgL_auxz00_7428, BgL_auxz00_7435);
			}
		}

	}



/* $$remainderbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_remainder(obj_t BgL_xz00_71,
		obj_t BgL_yz00_72)
	{
		{	/* Unsafe/bignumber.scm 861 */
			{	/* Unsafe/bignumber.scm 862 */
				obj_t BgL_arg1765z00_4481;

				{	/* Unsafe/bignumber.scm 862 */
					obj_t BgL_arg1766z00_4482;

					BgL_arg1766z00_4482 =
						BGl_bignumzd2divzd2zz__bignumz00(BgL_xz00_71, BgL_yz00_72);
					BgL_arg1765z00_4481 = CDR(((obj_t) BgL_arg1766z00_4482));
				}
				return BgL_arg1765z00_4481;
			}
		}

	}



/* &$$remainderbx */
	obj_t BGl_z62z42z42remainderbxz62zz__bignumz00(obj_t BgL_envz00_5544,
		obj_t BgL_xz00_5545, obj_t BgL_yz00_5546)
	{
		{	/* Unsafe/bignumber.scm 861 */
			{	/* Unsafe/bignumber.scm 862 */
				obj_t BgL_auxz00_7453;
				obj_t BgL_auxz00_7446;

				if (BIGNUMP(BgL_yz00_5546))
					{	/* Unsafe/bignumber.scm 862 */
						BgL_auxz00_7453 = BgL_yz00_5546;
					}
				else
					{
						obj_t BgL_auxz00_7456;

						BgL_auxz00_7456 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(28183L), BGl_string2515z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5546);
						FAILURE(BgL_auxz00_7456, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5545))
					{	/* Unsafe/bignumber.scm 862 */
						BgL_auxz00_7446 = BgL_xz00_5545;
					}
				else
					{
						obj_t BgL_auxz00_7449;

						BgL_auxz00_7449 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(28183L), BGl_string2515z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5545);
						FAILURE(BgL_auxz00_7449, BFALSE, BFALSE);
					}
				return bgl_bignum_remainder(BgL_auxz00_7446, BgL_auxz00_7453);
			}
		}

	}



/* $$absbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_abs(obj_t BgL_xz00_83)
	{
		{	/* Unsafe/bignumber.scm 893 */
			{	/* Unsafe/bignumber.scm 894 */
				bool_t BgL_test2782z00_7461;

				{	/* Unsafe/bignumber.scm 471 */
					long BgL_arg1431z00_4486;

					{	/* Unsafe/bignumber.scm 263 */
						uint16_t BgL_arg1219z00_4488;

						{	/* Unsafe/bignumber.scm 263 */
							obj_t BgL_arg1220z00_4489;

							BgL_arg1220z00_4489 = BGL_BIGNUM_U16VECT(BgL_xz00_83);
							BgL_arg1219z00_4488 = BGL_U16VREF(BgL_arg1220z00_4489, 0L);
						}
						{	/* Unsafe/bignumber.scm 263 */
							long BgL_arg2284z00_4491;

							BgL_arg2284z00_4491 = (long) (BgL_arg1219z00_4488);
							BgL_arg1431z00_4486 = (long) (BgL_arg2284z00_4491);
					}}
					BgL_test2782z00_7461 = (BgL_arg1431z00_4486 == 0L);
				}
				if (BgL_test2782z00_7461)
					{	/* Unsafe/bignumber.scm 894 */
						return
							bgl_bignum_sub(BGl_bignumzd2za7eroz75zz__bignumz00, BgL_xz00_83);
					}
				else
					{	/* Unsafe/bignumber.scm 894 */
						return BgL_xz00_83;
					}
			}
		}

	}



/* &$$absbx */
	obj_t BGl_z62z42z42absbxz62zz__bignumz00(obj_t BgL_envz00_5547,
		obj_t BgL_xz00_5548)
	{
		{	/* Unsafe/bignumber.scm 893 */
			{	/* Unsafe/bignumber.scm 894 */
				obj_t BgL_auxz00_7468;

				if (BIGNUMP(BgL_xz00_5548))
					{	/* Unsafe/bignumber.scm 894 */
						BgL_auxz00_7468 = BgL_xz00_5548;
					}
				else
					{
						obj_t BgL_auxz00_7471;

						BgL_auxz00_7471 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(29024L), BGl_string2516z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5548);
						FAILURE(BgL_auxz00_7471, BFALSE, BFALSE);
					}
				return bgl_bignum_abs(BgL_auxz00_7468);
			}
		}

	}



/* $$gcdbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_gcd(obj_t BgL_xz00_84, obj_t BgL_yz00_85)
	{
		{	/* Unsafe/bignumber.scm 898 */
			{	/* Unsafe/bignumber.scm 899 */
				obj_t BgL_g1057z00_4495;
				obj_t BgL_g1058z00_4496;

				if ((BGl_bignumzd2signzd2zz__bignumz00(BgL_xz00_84) == 0L))
					{	/* Unsafe/bignumber.scm 894 */
						BgL_g1057z00_4495 =
							bgl_bignum_sub(BGl_bignumzd2za7eroz75zz__bignumz00, BgL_xz00_84);
					}
				else
					{	/* Unsafe/bignumber.scm 894 */
						BgL_g1057z00_4495 = BgL_xz00_84;
					}
				if ((BGl_bignumzd2signzd2zz__bignumz00(BgL_yz00_85) == 0L))
					{	/* Unsafe/bignumber.scm 894 */
						BgL_g1058z00_4496 =
							bgl_bignum_sub(BGl_bignumzd2za7eroz75zz__bignumz00, BgL_yz00_85);
					}
				else
					{	/* Unsafe/bignumber.scm 894 */
						BgL_g1058z00_4496 = BgL_yz00_85;
					}
				if (BXZERO(BgL_g1058z00_4496))
					{	/* Unsafe/bignumber.scm 900 */
						return BgL_g1057z00_4495;
					}
				else
					{	/* Unsafe/bignumber.scm 902 */
						obj_t BgL_arg1792z00_4564;

						BgL_arg1792z00_4564 =
							bgl_bignum_remainder(BgL_g1057z00_4495, BgL_g1058z00_4496);
						{
							obj_t BgL_xz00_4546;
							obj_t BgL_yz00_4547;

							BgL_xz00_4546 = BgL_g1058z00_4496;
							BgL_yz00_4547 = BgL_arg1792z00_4564;
						BgL_loopz00_4545:
							if ((BGl_bignumzd2lengthzd2zz__bignumz00(BgL_yz00_4547) == 1L))
								{	/* Unsafe/bignumber.scm 900 */
									return BgL_xz00_4546;
								}
							else
								{	/* Unsafe/bignumber.scm 902 */
									obj_t BgL_arg1792z00_4551;

									{	/* Unsafe/bignumber.scm 902 */
										obj_t BgL_res2348z00_4560;

										{	/* Unsafe/bignumber.scm 862 */
											obj_t BgL_arg1765z00_4557;

											{	/* Unsafe/bignumber.scm 862 */
												obj_t BgL_arg1766z00_4558;

												BgL_arg1766z00_4558 =
													BGl_bignumzd2divzd2zz__bignumz00(BgL_xz00_4546,
													BgL_yz00_4547);
												BgL_arg1765z00_4557 =
													CDR(((obj_t) BgL_arg1766z00_4558));
											}
											BgL_res2348z00_4560 = BgL_arg1765z00_4557;
										}
										BgL_arg1792z00_4551 = BgL_res2348z00_4560;
									}
									if (BXZERO(BgL_arg1792z00_4551))
										{	/* Unsafe/bignumber.scm 900 */
											return BgL_yz00_4547;
										}
									else
										{
											obj_t BgL_yz00_7496;
											obj_t BgL_xz00_7495;

											BgL_xz00_7495 = BgL_arg1792z00_4551;
											BgL_yz00_7496 =
												bgl_bignum_remainder(BgL_yz00_4547,
												BgL_arg1792z00_4551);
											BgL_yz00_4547 = BgL_yz00_7496;
											BgL_xz00_4546 = BgL_xz00_7495;
											goto BgL_loopz00_4545;
										}
								}
						}
					}
			}
		}

	}



/* &$$gcdbx */
	obj_t BGl_z62z42z42gcdbxz62zz__bignumz00(obj_t BgL_envz00_5549,
		obj_t BgL_xz00_5550, obj_t BgL_yz00_5551)
	{
		{	/* Unsafe/bignumber.scm 898 */
			{	/* Unsafe/bignumber.scm 899 */
				obj_t BgL_auxz00_7505;
				obj_t BgL_auxz00_7498;

				if (BIGNUMP(BgL_yz00_5551))
					{	/* Unsafe/bignumber.scm 899 */
						BgL_auxz00_7505 = BgL_yz00_5551;
					}
				else
					{
						obj_t BgL_auxz00_7508;

						BgL_auxz00_7508 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(29102L), BGl_string2517z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5551);
						FAILURE(BgL_auxz00_7508, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5550))
					{	/* Unsafe/bignumber.scm 899 */
						BgL_auxz00_7498 = BgL_xz00_5550;
					}
				else
					{
						obj_t BgL_auxz00_7501;

						BgL_auxz00_7501 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(29102L), BGl_string2517z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5550);
						FAILURE(BgL_auxz00_7501, BFALSE, BFALSE);
					}
				return bgl_bignum_gcd(BgL_auxz00_7498, BgL_auxz00_7505);
			}
		}

	}



/* $$lcmbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_lcm(obj_t BgL_xz00_86, obj_t BgL_yz00_87)
	{
		{	/* Unsafe/bignumber.scm 904 */
			{	/* Unsafe/bignumber.scm 905 */
				bool_t BgL_test2791z00_7513;

				{	/* Unsafe/bignumber.scm 905 */
					bool_t BgL_test2792z00_7514;

					{	/* Unsafe/bignumber.scm 468 */
						long BgL_arg1430z00_4571;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_4573;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_4574;

								BgL_arg1218z00_4574 = BGL_BIGNUM_U16VECT(BgL_xz00_86);
								BgL_arg1217z00_4573 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_4574);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_4576;

								BgL_xz00_4576 = (uint16_t) (BgL_arg1217z00_4573);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_4577;

									BgL_arg2284z00_4577 = (long) (BgL_xz00_4576);
									BgL_arg1430z00_4571 = (long) (BgL_arg2284z00_4577);
						}}}
						BgL_test2792z00_7514 = (BgL_arg1430z00_4571 == 1L);
					}
					if (BgL_test2792z00_7514)
						{	/* Unsafe/bignumber.scm 905 */
							BgL_test2791z00_7513 = ((bool_t) 1);
						}
					else
						{	/* Unsafe/bignumber.scm 468 */
							long BgL_arg1430z00_4581;

							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg1217z00_4583;

								{	/* Unsafe/bignumber.scm 261 */
									obj_t BgL_arg1218z00_4584;

									BgL_arg1218z00_4584 = BGL_BIGNUM_U16VECT(BgL_yz00_87);
									BgL_arg1217z00_4583 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_4584);
								}
								{	/* Unsafe/bignumber.scm 261 */
									uint16_t BgL_xz00_4586;

									BgL_xz00_4586 = (uint16_t) (BgL_arg1217z00_4583);
									{	/* Unsafe/bignumber.scm 261 */
										long BgL_arg2284z00_4587;

										BgL_arg2284z00_4587 = (long) (BgL_xz00_4586);
										BgL_arg1430z00_4581 = (long) (BgL_arg2284z00_4587);
							}}}
							BgL_test2791z00_7513 = (BgL_arg1430z00_4581 == 1L);
				}}
				if (BgL_test2791z00_7513)
					{	/* Unsafe/bignumber.scm 905 */
						return BGl_bignumzd2za7eroz75zz__bignumz00;
					}
				else
					{	/* Unsafe/bignumber.scm 908 */
						obj_t BgL_arg1795z00_4567;
						obj_t BgL_arg1796z00_4568;

						{	/* Unsafe/bignumber.scm 908 */
							obj_t BgL_arg1797z00_4569;

							BgL_arg1797z00_4569 = bgl_bignum_mul(BgL_xz00_86, BgL_yz00_87);
							if (
								(BGl_bignumzd2signzd2zz__bignumz00(BgL_arg1797z00_4569) == 0L))
								{	/* Unsafe/bignumber.scm 894 */
									BgL_arg1795z00_4567 =
										bgl_bignum_sub(BGl_bignumzd2za7eroz75zz__bignumz00,
										BgL_arg1797z00_4569);
								}
							else
								{	/* Unsafe/bignumber.scm 894 */
									BgL_arg1795z00_4567 = BgL_arg1797z00_4569;
								}
						}
						{	/* Unsafe/bignumber.scm 909 */
							obj_t BgL_res2350z00_4631;

							{	/* Unsafe/bignumber.scm 899 */
								obj_t BgL_g1057z00_4598;
								obj_t BgL_g1058z00_4599;

								if (BXNEGATIVE(BgL_xz00_86))
									{	/* Unsafe/bignumber.scm 894 */
										BgL_g1057z00_4598 =
											bgl_bignum_sub(BGl_bignumzd2za7eroz75zz__bignumz00,
											BgL_xz00_86);
									}
								else
									{	/* Unsafe/bignumber.scm 894 */
										BgL_g1057z00_4598 = BgL_xz00_86;
									}
								if (BXNEGATIVE(BgL_yz00_87))
									{	/* Unsafe/bignumber.scm 894 */
										BgL_g1058z00_4599 =
											bgl_bignum_sub(BGl_bignumzd2za7eroz75zz__bignumz00,
											BgL_yz00_87);
									}
								else
									{	/* Unsafe/bignumber.scm 894 */
										BgL_g1058z00_4599 = BgL_yz00_87;
									}
								{
									obj_t BgL_xz00_4625;
									obj_t BgL_yz00_4626;

									BgL_xz00_4625 = BgL_g1057z00_4598;
									BgL_yz00_4626 = BgL_g1058z00_4599;
								BgL_loopz00_4624:
									if (BXZERO(BgL_yz00_4626))
										{	/* Unsafe/bignumber.scm 900 */
											BgL_res2350z00_4631 = BgL_xz00_4625;
										}
									else
										{
											obj_t BgL_yz00_7541;
											obj_t BgL_xz00_7540;

											BgL_xz00_7540 = BgL_yz00_4626;
											BgL_yz00_7541 =
												bgl_bignum_remainder(BgL_xz00_4625, BgL_yz00_4626);
											BgL_yz00_4626 = BgL_yz00_7541;
											BgL_xz00_4625 = BgL_xz00_7540;
											goto BgL_loopz00_4624;
										}
								}
							}
							BgL_arg1796z00_4568 = BgL_res2350z00_4631;
						}
						{	/* Unsafe/bignumber.scm 907 */
							obj_t BgL_res2351z00_4637;

							{	/* Unsafe/bignumber.scm 859 */
								obj_t BgL_arg1762z00_4634;

								{	/* Unsafe/bignumber.scm 859 */
									obj_t BgL_arg1763z00_4635;

									BgL_arg1763z00_4635 =
										BGl_bignumzd2divzd2zz__bignumz00(BgL_arg1795z00_4567,
										BgL_arg1796z00_4568);
									BgL_arg1762z00_4634 = CAR(((obj_t) BgL_arg1763z00_4635));
								}
								BgL_res2351z00_4637 = BgL_arg1762z00_4634;
							}
							return BgL_res2351z00_4637;
						}
					}
			}
		}

	}



/* &$$lcmbx */
	obj_t BGl_z62z42z42lcmbxz62zz__bignumz00(obj_t BgL_envz00_5552,
		obj_t BgL_xz00_5553, obj_t BgL_yz00_5554)
	{
		{	/* Unsafe/bignumber.scm 904 */
			{	/* Unsafe/bignumber.scm 905 */
				obj_t BgL_auxz00_7553;
				obj_t BgL_auxz00_7546;

				if (BIGNUMP(BgL_yz00_5554))
					{	/* Unsafe/bignumber.scm 905 */
						BgL_auxz00_7553 = BgL_yz00_5554;
					}
				else
					{
						obj_t BgL_auxz00_7556;

						BgL_auxz00_7556 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(29236L), BGl_string2518z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5554);
						FAILURE(BgL_auxz00_7556, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5553))
					{	/* Unsafe/bignumber.scm 905 */
						BgL_auxz00_7546 = BgL_xz00_5553;
					}
				else
					{
						obj_t BgL_auxz00_7549;

						BgL_auxz00_7549 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(29236L), BGl_string2518z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5553);
						FAILURE(BgL_auxz00_7549, BFALSE, BFALSE);
					}
				return bgl_bignum_lcm(BgL_auxz00_7546, BgL_auxz00_7553);
			}
		}

	}



/* bignum-expt */
	obj_t BGl_bignumzd2exptzd2zz__bignumz00(obj_t BgL_xz00_88, obj_t BgL_yz00_89)
	{
		{	/* Unsafe/bignumber.scm 914 */
		BGl_bignumzd2exptzd2zz__bignumz00:
			{	/* Unsafe/bignumber.scm 915 */
				bool_t BgL_test2799z00_7561;

				{	/* Unsafe/bignumber.scm 468 */
					long BgL_arg1430z00_4639;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_4641;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_4642;

							BgL_arg1218z00_4642 = BGL_BIGNUM_U16VECT(BgL_yz00_89);
							BgL_arg1217z00_4641 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_4642);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_4644;

							BgL_xz00_4644 = (uint16_t) (BgL_arg1217z00_4641);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_4645;

								BgL_arg2284z00_4645 = (long) (BgL_xz00_4644);
								BgL_arg1430z00_4639 = (long) (BgL_arg2284z00_4645);
					}}}
					BgL_test2799z00_7561 = (BgL_arg1430z00_4639 == 1L);
				}
				if (BgL_test2799z00_7561)
					{	/* Unsafe/bignumber.scm 916 */
						obj_t BgL_res2352z00_4656;

						{	/* Unsafe/bignumber.scm 415 */
							bool_t BgL_test2800z00_7568;

							if ((1L < -16L))
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2800z00_7568 = ((bool_t) 1);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2800z00_7568 = (16L < 1L);
								}
							if (BgL_test2800z00_7568)
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2352z00_4656 =
										BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(1L);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2352z00_4656 =
										VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
										(1L + 16L));
								}
						}
						return BgL_res2352z00_4656;
					}
				else
					{	/* Unsafe/bignumber.scm 917 */
						bool_t BgL_test2802z00_7575;

						{	/* Unsafe/bignumber.scm 917 */
							bool_t BgL_res2353z00_4669;

							{	/* Unsafe/bignumber.scm 477 */
								bool_t BgL__ortest_1046z00_4658;

								BgL__ortest_1046z00_4658 =
									(BGl_bignumzd2lengthzd2zz__bignumz00(BgL_yz00_89) == 1L);
								if (BgL__ortest_1046z00_4658)
									{	/* Unsafe/bignumber.scm 477 */
										BgL_res2353z00_4669 = BgL__ortest_1046z00_4658;
									}
								else
									{	/* Unsafe/bignumber.scm 477 */
										long BgL_arg1434z00_4659;

										{	/* Unsafe/bignumber.scm 267 */
											uint16_t BgL_arg1223z00_4664;

											{	/* Unsafe/bignumber.scm 267 */
												obj_t BgL_arg1224z00_4665;

												BgL_arg1224z00_4665 = BGL_BIGNUM_U16VECT(BgL_yz00_89);
												BgL_arg1223z00_4664 =
													BGL_U16VREF(BgL_arg1224z00_4665, 1L);
											}
											{	/* Unsafe/bignumber.scm 267 */
												long BgL_arg2284z00_4667;

												BgL_arg2284z00_4667 = (long) (BgL_arg1223z00_4664);
												BgL_arg1434z00_4659 = (long) (BgL_arg2284z00_4667);
										}}
										BgL_res2353z00_4669 =
											BGl_evenzf3zf3zz__r4_numbers_6_5_fixnumz00(BINT
											(BgL_arg1434z00_4659));
							}}
							BgL_test2802z00_7575 = BgL_res2353z00_4669;
						}
						if (BgL_test2802z00_7575)
							{	/* Unsafe/bignumber.scm 919 */
								obj_t BgL_arg1800z00_2033;
								obj_t BgL_arg1801z00_2034;

								BgL_arg1800z00_2033 = bgl_bignum_mul(BgL_xz00_88, BgL_xz00_88);
								{	/* Unsafe/bignumber.scm 920 */
									obj_t BgL_arg1802z00_2035;

									{	/* Unsafe/bignumber.scm 920 */
										obj_t BgL_res2354z00_4678;

										{	/* Unsafe/bignumber.scm 415 */
											bool_t BgL_test2804z00_7586;

											if ((2L < -16L))
												{	/* Unsafe/bignumber.scm 415 */
													BgL_test2804z00_7586 = ((bool_t) 1);
												}
											else
												{	/* Unsafe/bignumber.scm 415 */
													BgL_test2804z00_7586 = (16L < 2L);
												}
											if (BgL_test2804z00_7586)
												{	/* Unsafe/bignumber.scm 415 */
													BgL_res2354z00_4678 =
														BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00
														(2L);
												}
											else
												{	/* Unsafe/bignumber.scm 415 */
													BgL_res2354z00_4678 =
														VECTOR_REF
														(BGl_preallocatedzd2bignumszd2zz__bignumz00,
														(2L + 16L));
												}
										}
										BgL_arg1802z00_2035 = BgL_res2354z00_4678;
									}
									{	/* Unsafe/bignumber.scm 920 */
										obj_t BgL_res2355z00_4684;

										{	/* Unsafe/bignumber.scm 859 */
											obj_t BgL_arg1762z00_4681;

											{	/* Unsafe/bignumber.scm 859 */
												obj_t BgL_arg1763z00_4682;

												BgL_arg1763z00_4682 =
													BGl_bignumzd2divzd2zz__bignumz00(BgL_yz00_89,
													BgL_arg1802z00_2035);
												BgL_arg1762z00_4681 =
													CAR(((obj_t) BgL_arg1763z00_4682));
											}
											BgL_res2355z00_4684 = BgL_arg1762z00_4681;
										}
										BgL_arg1801z00_2034 = BgL_res2355z00_4684;
									}
								}
								{
									obj_t BgL_yz00_7597;
									obj_t BgL_xz00_7596;

									BgL_xz00_7596 = BgL_arg1800z00_2033;
									BgL_yz00_7597 = BgL_arg1801z00_2034;
									BgL_yz00_89 = BgL_yz00_7597;
									BgL_xz00_88 = BgL_xz00_7596;
									goto BGl_bignumzd2exptzd2zz__bignumz00;
								}
							}
						else
							{	/* Unsafe/bignumber.scm 922 */
								obj_t BgL_arg1803z00_2036;

								{	/* Unsafe/bignumber.scm 922 */
									obj_t BgL_arg1804z00_2037;

									{	/* Unsafe/bignumber.scm 922 */
										obj_t BgL_arg1805z00_2038;

										{	/* Unsafe/bignumber.scm 922 */
											obj_t BgL_res2356z00_4693;

											{	/* Unsafe/bignumber.scm 415 */
												bool_t BgL_test2806z00_7598;

												if ((1L < -16L))
													{	/* Unsafe/bignumber.scm 415 */
														BgL_test2806z00_7598 = ((bool_t) 1);
													}
												else
													{	/* Unsafe/bignumber.scm 415 */
														BgL_test2806z00_7598 = (16L < 1L);
													}
												if (BgL_test2806z00_7598)
													{	/* Unsafe/bignumber.scm 415 */
														BgL_res2356z00_4693 =
															BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00
															(1L);
													}
												else
													{	/* Unsafe/bignumber.scm 415 */
														BgL_res2356z00_4693 =
															VECTOR_REF
															(BGl_preallocatedzd2bignumszd2zz__bignumz00,
															(1L + 16L));
													}
											}
											BgL_arg1805z00_2038 = BgL_res2356z00_4693;
										}
										{	/* Unsafe/bignumber.scm 922 */
											obj_t BgL_res2357z00_4712;

											{	/* Unsafe/bignumber.scm 610 */
												long BgL_arg1519z00_4696;
												long BgL_arg1520z00_4697;

												{	/* Unsafe/bignumber.scm 263 */
													uint16_t BgL_arg1219z00_4700;

													{	/* Unsafe/bignumber.scm 263 */
														obj_t BgL_arg1220z00_4701;

														BgL_arg1220z00_4701 =
															BGL_BIGNUM_U16VECT(BgL_yz00_89);
														BgL_arg1219z00_4700 =
															BGL_U16VREF(BgL_arg1220z00_4701, 0L);
													}
													{	/* Unsafe/bignumber.scm 263 */
														long BgL_arg2284z00_4703;

														BgL_arg2284z00_4703 = (long) (BgL_arg1219z00_4700);
														BgL_arg1519z00_4696 = (long) (BgL_arg2284z00_4703);
												}}
												{	/* Unsafe/bignumber.scm 610 */
													long BgL_arg1521z00_4698;

													{	/* Unsafe/bignumber.scm 263 */
														uint16_t BgL_arg1219z00_4706;

														{	/* Unsafe/bignumber.scm 263 */
															obj_t BgL_arg1220z00_4707;

															BgL_arg1220z00_4707 =
																BGL_BIGNUM_U16VECT(BgL_arg1805z00_2038);
															BgL_arg1219z00_4706 =
																BGL_U16VREF(BgL_arg1220z00_4707, 0L);
														}
														{	/* Unsafe/bignumber.scm 263 */
															long BgL_arg2284z00_4709;

															BgL_arg2284z00_4709 =
																(long) (BgL_arg1219z00_4706);
															BgL_arg1521z00_4698 =
																(long) (BgL_arg2284z00_4709);
													}}
													BgL_arg1520z00_4697 = (1L - BgL_arg1521z00_4698);
												}
												BgL_res2357z00_4712 =
													BGl_bignumzd2sum2zd2zz__bignumz00(BgL_yz00_89,
													BgL_arg1805z00_2038, BgL_arg1519z00_4696,
													BgL_arg1520z00_4697);
											}
											BgL_arg1804z00_2037 = BgL_res2357z00_4712;
									}}
									BgL_arg1803z00_2036 =
										BGl_bignumzd2exptzd2zz__bignumz00(BgL_xz00_88,
										BgL_arg1804z00_2037);
								}
								BGL_TAIL return
									bgl_bignum_mul(BgL_xz00_88, BgL_arg1803z00_2036);
							}
					}
			}
		}

	}



/* bignum-integer-length */
	long BGl_bignumzd2integerzd2lengthz00zz__bignumz00(obj_t BgL_xz00_91)
	{
		{	/* Unsafe/bignumber.scm 933 */
			{	/* Unsafe/bignumber.scm 934 */
				obj_t BgL_nz00_2040;

				{	/* Unsafe/bignumber.scm 934 */
					bool_t BgL_test2808z00_7617;

					{	/* Unsafe/bignumber.scm 471 */
						long BgL_arg1431z00_4743;

						{	/* Unsafe/bignumber.scm 263 */
							uint16_t BgL_arg1219z00_4745;

							{	/* Unsafe/bignumber.scm 263 */
								obj_t BgL_arg1220z00_4746;

								BgL_arg1220z00_4746 = BGL_BIGNUM_U16VECT(BgL_xz00_91);
								BgL_arg1219z00_4745 = BGL_U16VREF(BgL_arg1220z00_4746, 0L);
							}
							{	/* Unsafe/bignumber.scm 263 */
								long BgL_arg2284z00_4748;

								BgL_arg2284z00_4748 = (long) (BgL_arg1219z00_4745);
								BgL_arg1431z00_4743 = (long) (BgL_arg2284z00_4748);
						}}
						BgL_test2808z00_7617 = (BgL_arg1431z00_4743 == 0L);
					}
					if (BgL_test2808z00_7617)
						{	/* Unsafe/bignumber.scm 934 */
							BgL_nz00_2040 =
								bgl_bignum_sub(bgl_long_to_bignum(-1L), BgL_xz00_91);
						}
					else
						{	/* Unsafe/bignumber.scm 934 */
							BgL_nz00_2040 = BgL_xz00_91;
						}
				}
				{	/* Unsafe/bignumber.scm 934 */
					long BgL_nbzd2digitszd2_2041;

					{	/* Unsafe/bignumber.scm 935 */
						long BgL_arg1817z00_2055;

						{	/* Unsafe/bignumber.scm 261 */
							long BgL_arg1217z00_4753;

							{	/* Unsafe/bignumber.scm 261 */
								obj_t BgL_arg1218z00_4754;

								BgL_arg1218z00_4754 = BGL_BIGNUM_U16VECT(BgL_nz00_2040);
								BgL_arg1217z00_4753 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_4754);
							}
							{	/* Unsafe/bignumber.scm 261 */
								uint16_t BgL_xz00_4756;

								BgL_xz00_4756 = (uint16_t) (BgL_arg1217z00_4753);
								{	/* Unsafe/bignumber.scm 261 */
									long BgL_arg2284z00_4757;

									BgL_arg2284z00_4757 = (long) (BgL_xz00_4756);
									BgL_arg1817z00_2055 = (long) (BgL_arg2284z00_4757);
						}}}
						BgL_nbzd2digitszd2_2041 = (BgL_arg1817z00_2055 - 1L);
					}
					{	/* Unsafe/bignumber.scm 935 */

						if ((BgL_nbzd2digitszd2_2041 == 0L))
							{	/* Unsafe/bignumber.scm 936 */
								return 0L;
							}
						else
							{	/* Unsafe/bignumber.scm 938 */
								long BgL_g1059z00_2043;
								long BgL_g1060z00_2044;

								{	/* Unsafe/bignumber.scm 938 */
									int BgL_iz00_4762;

									BgL_iz00_4762 = (int) (BgL_nbzd2digitszd2_2041);
									{	/* Unsafe/bignumber.scm 267 */
										uint16_t BgL_arg1223z00_4763;

										{	/* Unsafe/bignumber.scm 267 */
											obj_t BgL_arg1224z00_4764;

											BgL_arg1224z00_4764 = BGL_BIGNUM_U16VECT(BgL_nz00_2040);
											{	/* Unsafe/bignumber.scm 267 */
												long BgL_tmpz00_7635;

												BgL_tmpz00_7635 = (long) (BgL_iz00_4762);
												BgL_arg1223z00_4763 =
													BGL_U16VREF(BgL_arg1224z00_4764, BgL_tmpz00_7635);
										}}
										{	/* Unsafe/bignumber.scm 267 */
											long BgL_arg2284z00_4766;

											BgL_arg2284z00_4766 = (long) (BgL_arg1223z00_4763);
											BgL_g1059z00_2043 = (long) (BgL_arg2284z00_4766);
								}}}
								BgL_g1060z00_2044 = ((BgL_nbzd2digitszd2_2041 - 1L) * 14L);
								{
									long BgL_dz00_4784;
									long BgL_lenz00_4785;

									BgL_dz00_4784 = BgL_g1059z00_2043;
									BgL_lenz00_4785 = BgL_g1060z00_2044;
								BgL_loopz00_4783:
									if ((0L < BgL_dz00_4784))
										{	/* Unsafe/bignumber.scm 941 */
											long BgL_arg1810z00_4790;
											long BgL_arg1812z00_4791;

											BgL_arg1810z00_4790 = (BgL_dz00_4784 / 2L);
											BgL_arg1812z00_4791 = (BgL_lenz00_4785 + 1L);
											{
												long BgL_lenz00_7647;
												long BgL_dz00_7646;

												BgL_dz00_7646 = BgL_arg1810z00_4790;
												BgL_lenz00_7647 = BgL_arg1812z00_4791;
												BgL_lenz00_4785 = BgL_lenz00_7647;
												BgL_dz00_4784 = BgL_dz00_7646;
												goto BgL_loopz00_4783;
											}
										}
									else
										{	/* Unsafe/bignumber.scm 940 */
											return BgL_lenz00_4785;
										}
								}
							}
					}
				}
			}
		}

	}



/* $$bignum->string */
	BGL_EXPORTED_DEF obj_t bgl_bignum_to_string(obj_t BgL_xz00_92,
		long BgL_radixz00_93)
	{
		{	/* Unsafe/bignumber.scm 948 */
			{
				obj_t BgL_signz00_2063;
				obj_t BgL_nz00_2064;

				{	/* Unsafe/bignumber.scm 961 */
					bool_t BgL_test2811z00_7648;

					{	/* Unsafe/bignumber.scm 471 */
						long BgL_arg1431z00_4851;

						{	/* Unsafe/bignumber.scm 263 */
							uint16_t BgL_arg1219z00_4853;

							{	/* Unsafe/bignumber.scm 263 */
								obj_t BgL_arg1220z00_4854;

								BgL_arg1220z00_4854 = BGL_BIGNUM_U16VECT(BgL_xz00_92);
								BgL_arg1219z00_4853 = BGL_U16VREF(BgL_arg1220z00_4854, 0L);
							}
							{	/* Unsafe/bignumber.scm 263 */
								long BgL_arg2284z00_4856;

								BgL_arg2284z00_4856 = (long) (BgL_arg1219z00_4853);
								BgL_arg1431z00_4851 = (long) (BgL_arg2284z00_4856);
						}}
						BgL_test2811z00_7648 = (BgL_arg1431z00_4851 == 0L);
					}
					if (BgL_test2811z00_7648)
						{	/* Unsafe/bignumber.scm 961 */
							BgL_signz00_2063 = BCHAR(((unsigned char) '-'));
							BgL_nz00_2064 =
								bgl_bignum_sub(BGl_bignumzd2za7eroz75zz__bignumz00,
								BgL_xz00_92);
						BgL_zc3z04anonymousza31822ze3z87_2065:
							{	/* Unsafe/bignumber.scm 954 */
								obj_t BgL_digitsz00_2066;

								{	/* Unsafe/bignumber.scm 955 */
									obj_t BgL_l1101z00_2068;

									{	/* Unsafe/bignumber.scm 956 */
										bool_t BgL_test2812z00_7654;

										{	/* Unsafe/bignumber.scm 468 */
											long BgL_arg1430z00_4798;

											{	/* Unsafe/bignumber.scm 261 */
												long BgL_arg1217z00_4800;

												{	/* Unsafe/bignumber.scm 261 */
													obj_t BgL_arg1218z00_4801;

													BgL_arg1218z00_4801 =
														BGL_BIGNUM_U16VECT(BgL_nz00_2064);
													BgL_arg1217z00_4800 =
														BGL_HVECTOR_LENGTH(BgL_arg1218z00_4801);
												}
												{	/* Unsafe/bignumber.scm 261 */
													uint16_t BgL_xz00_4803;

													BgL_xz00_4803 = (uint16_t) (BgL_arg1217z00_4800);
													{	/* Unsafe/bignumber.scm 261 */
														long BgL_arg2284z00_4804;

														BgL_arg2284z00_4804 = (long) (BgL_xz00_4803);
														BgL_arg1430z00_4798 = (long) (BgL_arg2284z00_4804);
											}}}
											BgL_test2812z00_7654 = (BgL_arg1430z00_4798 == 1L);
										}
										if (BgL_test2812z00_7654)
											{	/* Unsafe/bignumber.scm 956 */
												BgL_l1101z00_2068 = BGl_list2519z00zz__bignumz00;
											}
										else
											{	/* Unsafe/bignumber.scm 956 */
												BgL_l1101z00_2068 =
													bgl_reverse
													(BGl_bignumzd2ze3fixnumzd2listze3zz__bignumz00
													(BgL_nz00_2064, (BgL_radixz00_93 - 1L)));
											}
									}
									if (NULLP(BgL_l1101z00_2068))
										{	/* Unsafe/bignumber.scm 955 */
											BgL_digitsz00_2066 = BNIL;
										}
									else
										{	/* Unsafe/bignumber.scm 955 */
											obj_t BgL_head1103z00_2070;

											{	/* Unsafe/bignumber.scm 955 */
												unsigned char BgL_arg1830z00_2082;

												BgL_arg1830z00_2082 =
													STRING_REF(BGl_string2520z00zz__bignumz00,
													(long) CINT(CAR(BgL_l1101z00_2068)));
												BgL_head1103z00_2070 =
													MAKE_YOUNG_PAIR(BCHAR(BgL_arg1830z00_2082), BNIL);
											}
											{	/* Unsafe/bignumber.scm 955 */
												obj_t BgL_g1106z00_2071;

												BgL_g1106z00_2071 = CDR(BgL_l1101z00_2068);
												{
													obj_t BgL_l1101z00_4833;
													obj_t BgL_tail1104z00_4834;

													BgL_l1101z00_4833 = BgL_g1106z00_2071;
													BgL_tail1104z00_4834 = BgL_head1103z00_2070;
												BgL_zc3z04anonymousza31825ze3z87_4832:
													if (NULLP(BgL_l1101z00_4833))
														{	/* Unsafe/bignumber.scm 955 */
															BgL_digitsz00_2066 = BgL_head1103z00_2070;
														}
													else
														{	/* Unsafe/bignumber.scm 955 */
															obj_t BgL_newtail1105z00_4841;

															{	/* Unsafe/bignumber.scm 955 */
																unsigned char BgL_arg1828z00_4842;

																BgL_arg1828z00_4842 =
																	STRING_REF(BGl_string2520z00zz__bignumz00,
																	(long) CINT(CAR(
																			((obj_t) BgL_l1101z00_4833))));
																BgL_newtail1105z00_4841 =
																	MAKE_YOUNG_PAIR(BCHAR(BgL_arg1828z00_4842),
																	BNIL);
															}
															SET_CDR(BgL_tail1104z00_4834,
																BgL_newtail1105z00_4841);
															{	/* Unsafe/bignumber.scm 955 */
																obj_t BgL_arg1827z00_4844;

																BgL_arg1827z00_4844 =
																	CDR(((obj_t) BgL_l1101z00_4833));
																{
																	obj_t BgL_tail1104z00_7684;
																	obj_t BgL_l1101z00_7683;

																	BgL_l1101z00_7683 = BgL_arg1827z00_4844;
																	BgL_tail1104z00_7684 =
																		BgL_newtail1105z00_4841;
																	BgL_tail1104z00_4834 = BgL_tail1104z00_7684;
																	BgL_l1101z00_4833 = BgL_l1101z00_7683;
																	goto BgL_zc3z04anonymousza31825ze3z87_4832;
																}
															}
														}
												}
											}
										}
								}
								{	/* Unsafe/bignumber.scm 959 */
									obj_t BgL_arg1823z00_2067;

									if (CBOOL(BgL_signz00_2063))
										{	/* Unsafe/bignumber.scm 959 */
											BgL_arg1823z00_2067 =
												MAKE_YOUNG_PAIR(BgL_signz00_2063, BgL_digitsz00_2066);
										}
									else
										{	/* Unsafe/bignumber.scm 959 */
											BgL_arg1823z00_2067 = BgL_digitsz00_2066;
										}
									return
										BGl_listzd2ze3stringz31zz__r4_strings_6_7z00
										(BgL_arg1823z00_2067);
								}
							}
						}
					else
						{
							obj_t BgL_nz00_7692;
							obj_t BgL_signz00_7691;

							BgL_signz00_7691 = BFALSE;
							BgL_nz00_7692 = BgL_xz00_92;
							BgL_nz00_2064 = BgL_nz00_7692;
							BgL_signz00_2063 = BgL_signz00_7691;
							goto BgL_zc3z04anonymousza31822ze3z87_2065;
						}
				}
			}
		}

	}



/* &$$bignum->string */
	obj_t BGl_z62z42z42bignumzd2ze3stringz53zz__bignumz00(obj_t BgL_envz00_5555,
		obj_t BgL_xz00_5556, obj_t BgL_radixz00_5557)
	{
		{	/* Unsafe/bignumber.scm 948 */
			{	/* Unsafe/bignumber.scm 951 */
				long BgL_auxz00_7700;
				obj_t BgL_auxz00_7693;

				{	/* Unsafe/bignumber.scm 951 */
					obj_t BgL_tmpz00_7701;

					if (INTEGERP(BgL_radixz00_5557))
						{	/* Unsafe/bignumber.scm 951 */
							BgL_tmpz00_7701 = BgL_radixz00_5557;
						}
					else
						{
							obj_t BgL_auxz00_7704;

							BgL_auxz00_7704 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(31011L), BGl_string2521z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_radixz00_5557);
							FAILURE(BgL_auxz00_7704, BFALSE, BFALSE);
						}
					BgL_auxz00_7700 = (long) CINT(BgL_tmpz00_7701);
				}
				if (BIGNUMP(BgL_xz00_5556))
					{	/* Unsafe/bignumber.scm 951 */
						BgL_auxz00_7693 = BgL_xz00_5556;
					}
				else
					{
						obj_t BgL_auxz00_7696;

						BgL_auxz00_7696 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(31011L), BGl_string2521z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5556);
						FAILURE(BgL_auxz00_7696, BFALSE, BFALSE);
					}
				return bgl_bignum_to_string(BgL_auxz00_7693, BgL_auxz00_7700);
			}
		}

	}



/* $$string->bignum */
	BGL_EXPORTED_DEF obj_t bgl_string_to_bignum(char *BgL_strz00_94,
		int BgL_radixz00_95)
	{
		{	/* Unsafe/bignumber.scm 965 */
			{
				long BgL_iz00_2159;
				obj_t BgL_radz00_2143;
				long BgL_iz00_2144;
				obj_t BgL_radz00_2118;
				obj_t BgL_signz00_2119;
				long BgL_iz00_2120;
				unsigned char BgL_cz00_2093;
				obj_t BgL_radz00_2094;

				BgL_iz00_2159 = 0L;
				{	/* Unsafe/bignumber.scm 1005 */
					obj_t BgL_g1064z00_2161;

					if (
						((BgL_iz00_2159 + 3L) <=
							STRING_LENGTH(string_to_bstring(BgL_strz00_94))))
						{	/* Unsafe/bignumber.scm 1005 */
							if (
								(STRING_REF(string_to_bstring(BgL_strz00_94),
										BgL_iz00_2159) == ((unsigned char) '#')))
								{	/* Unsafe/bignumber.scm 1006 */
									BgL_g1064z00_2161 =
										BGl_assvz00zz__r4_pairs_and_lists_6_3z00(BCHAR(tolower
											(STRING_REF(string_to_bstring(BgL_strz00_94),
													(BgL_iz00_2159 + 1L)))),
										BGl_list2523z00zz__bignumz00);
								}
							else
								{	/* Unsafe/bignumber.scm 1006 */
									BgL_g1064z00_2161 = BFALSE;
								}
						}
					else
						{	/* Unsafe/bignumber.scm 1005 */
							BgL_g1064z00_2161 = BFALSE;
						}
					if (CBOOL(BgL_g1064z00_2161))
						{	/* Unsafe/bignumber.scm 1014 */
							obj_t BgL_arg1892z00_2164;
							long BgL_arg1893z00_2165;

							BgL_arg1892z00_2164 = CDR(((obj_t) BgL_g1064z00_2161));
							BgL_arg1893z00_2165 = (BgL_iz00_2159 + 2L);
							BgL_radz00_2143 = BgL_arg1892z00_2164;
							BgL_iz00_2144 = BgL_arg1893z00_2165;
						BgL_zc3z04anonymousza31876ze3z87_2145:
							{	/* Unsafe/bignumber.scm 998 */
								bool_t BgL_test2821z00_7730;

								if (
									((BgL_iz00_2144 + 2L) <=
										STRING_LENGTH(string_to_bstring(BgL_strz00_94))))
									{	/* Unsafe/bignumber.scm 998 */
										BgL_test2821z00_7730 =
											CBOOL(BGl_memvz00zz__r4_pairs_and_lists_6_3z00(BCHAR
												(STRING_REF(string_to_bstring(BgL_strz00_94),
														BgL_iz00_2144)), BGl_list2522z00zz__bignumz00));
									}
								else
									{	/* Unsafe/bignumber.scm 998 */
										BgL_test2821z00_7730 = ((bool_t) 0);
									}
								if (BgL_test2821z00_7730)
									{	/* Unsafe/bignumber.scm 1000 */
										unsigned char BgL_arg1885z00_2153;
										long BgL_arg1886z00_2154;

										BgL_arg1885z00_2153 =
											STRING_REF(string_to_bstring(BgL_strz00_94),
											BgL_iz00_2144);
										BgL_arg1886z00_2154 = (BgL_iz00_2144 + 1L);
										BgL_radz00_2118 = BgL_radz00_2143;
										BgL_signz00_2119 = BCHAR(BgL_arg1885z00_2153);
										BgL_iz00_2120 = BgL_arg1886z00_2154;
									BgL_zc3z04anonymousza31854ze3z87_2121:
										if (
											((BgL_iz00_2120 + 1L) <=
												STRING_LENGTH(string_to_bstring(BgL_strz00_94))))
											{
												long BgL_iz00_2127;
												obj_t BgL_digitsz00_2128;

												BgL_iz00_2127 = BgL_iz00_2120;
												BgL_digitsz00_2128 = BNIL;
											BgL_zc3z04anonymousza31858ze3z87_2129:
												if (
													(BgL_iz00_2127 <
														STRING_LENGTH(string_to_bstring(BgL_strz00_94))))
													{	/* Unsafe/bignumber.scm 987 */
														obj_t BgL_dz00_2132;

														BgL_cz00_2093 =
															STRING_REF(string_to_bstring(BgL_strz00_94),
															BgL_iz00_2127);
														BgL_radz00_2094 = BgL_radz00_2118;
														{	/* Unsafe/bignumber.scm 974 */
															bool_t BgL_test2825z00_7753;

															if ((BgL_cz00_2093 >= ((unsigned char) '0')))
																{	/* Unsafe/bignumber.scm 974 */
																	BgL_test2825z00_7753 =
																		(BgL_cz00_2093 <= ((unsigned char) '9'));
																}
															else
																{	/* Unsafe/bignumber.scm 974 */
																	BgL_test2825z00_7753 = ((bool_t) 0);
																}
															if (BgL_test2825z00_7753)
																{	/* Unsafe/bignumber.scm 975 */
																	long BgL_arg1838z00_2099;

																	BgL_arg1838z00_2099 = ((BgL_cz00_2093) - 48L);
																	if (
																		(BgL_arg1838z00_2099 <
																			(long) CINT(BgL_radz00_2094)))
																		{	/* Unsafe/bignumber.scm 970 */
																			BgL_dz00_2132 = BINT(BgL_arg1838z00_2099);
																		}
																	else
																		{	/* Unsafe/bignumber.scm 970 */
																			BgL_dz00_2132 = BFALSE;
																		}
																}
															else
																{	/* Unsafe/bignumber.scm 976 */
																	bool_t BgL_test2828z00_7763;

																	if ((BgL_cz00_2093 >= ((unsigned char) 'a')))
																		{	/* Unsafe/bignumber.scm 976 */
																			BgL_test2828z00_7763 =
																				(BgL_cz00_2093 <=
																				((unsigned char) 'z'));
																		}
																	else
																		{	/* Unsafe/bignumber.scm 976 */
																			BgL_test2828z00_7763 = ((bool_t) 0);
																		}
																	if (BgL_test2828z00_7763)
																		{	/* Unsafe/bignumber.scm 977 */
																			long BgL_arg1842z00_2103;

																			BgL_arg1842z00_2103 =
																				(10L + ((BgL_cz00_2093) - 97L));
																			if (
																				(BgL_arg1842z00_2103 <
																					(long) CINT(BgL_radz00_2094)))
																				{	/* Unsafe/bignumber.scm 970 */
																					BgL_dz00_2132 =
																						BINT(BgL_arg1842z00_2103);
																				}
																			else
																				{	/* Unsafe/bignumber.scm 970 */
																					BgL_dz00_2132 = BFALSE;
																				}
																		}
																	else
																		{	/* Unsafe/bignumber.scm 978 */
																			bool_t BgL_test2831z00_7774;

																			if (
																				(BgL_cz00_2093 >=
																					((unsigned char) 'A')))
																				{	/* Unsafe/bignumber.scm 978 */
																					BgL_test2831z00_7774 =
																						(BgL_cz00_2093 <=
																						((unsigned char) 'Z'));
																				}
																			else
																				{	/* Unsafe/bignumber.scm 978 */
																					BgL_test2831z00_7774 = ((bool_t) 0);
																				}
																			if (BgL_test2831z00_7774)
																				{	/* Unsafe/bignumber.scm 979 */
																					long BgL_arg1848z00_2108;

																					BgL_arg1848z00_2108 =
																						(10L + ((BgL_cz00_2093) - 65L));
																					if (
																						(BgL_arg1848z00_2108 <
																							(long) CINT(BgL_radz00_2094)))
																						{	/* Unsafe/bignumber.scm 970 */
																							BgL_dz00_2132 =
																								BINT(BgL_arg1848z00_2108);
																						}
																					else
																						{	/* Unsafe/bignumber.scm 970 */
																							BgL_dz00_2132 = BFALSE;
																						}
																				}
																			else
																				{	/* Unsafe/bignumber.scm 978 */
																					BgL_dz00_2132 = BFALSE;
																				}
																		}
																}
														}
														if (CBOOL(BgL_dz00_2132))
															{	/* Unsafe/bignumber.scm 989 */
																long BgL_arg1864z00_2133;
																obj_t BgL_arg1866z00_2134;

																BgL_arg1864z00_2133 = (BgL_iz00_2127 + 1L);
																BgL_arg1866z00_2134 =
																	MAKE_YOUNG_PAIR(BgL_dz00_2132,
																	BgL_digitsz00_2128);
																{
																	obj_t BgL_digitsz00_7792;
																	long BgL_iz00_7791;

																	BgL_iz00_7791 = BgL_arg1864z00_2133;
																	BgL_digitsz00_7792 = BgL_arg1866z00_2134;
																	BgL_digitsz00_2128 = BgL_digitsz00_7792;
																	BgL_iz00_2127 = BgL_iz00_7791;
																	goto BgL_zc3z04anonymousza31858ze3z87_2129;
																}
															}
														else
															{	/* Unsafe/bignumber.scm 988 */
																return
																	BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00
																	(0L);
															}
													}
												else
													{	/* Unsafe/bignumber.scm 991 */
														obj_t BgL_nz00_2136;

														BgL_nz00_2136 =
															BGl_fixnumzd2listzd2ze3bignumze3zz__bignumz00
															(BgL_digitsz00_2128,
															((long) CINT(BgL_radz00_2118) - 1L));
														{	/* Unsafe/bignumber.scm 992 */
															bool_t BgL_test2835z00_7797;

															if (CBOOL(BgL_signz00_2119))
																{	/* Unsafe/bignumber.scm 992 */
																	BgL_test2835z00_7797 =
																		(CCHAR(BgL_signz00_2119) ==
																		((unsigned char) '-'));
																}
															else
																{	/* Unsafe/bignumber.scm 992 */
																	BgL_test2835z00_7797 = ((bool_t) 0);
																}
															if (BgL_test2835z00_7797)
																{	/* Unsafe/bignumber.scm 992 */
																	return
																		bgl_bignum_sub
																		(BGl_bignumzd2za7eroz75zz__bignumz00,
																		BgL_nz00_2136);
																}
															else
																{	/* Unsafe/bignumber.scm 992 */
																	return BgL_nz00_2136;
																}
														}
													}
											}
										else
											{	/* Unsafe/bignumber.scm 984 */
												return
													BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00
													(0L);
											}
									}
								else
									{
										long BgL_iz00_7807;
										obj_t BgL_signz00_7806;
										obj_t BgL_radz00_7805;

										BgL_radz00_7805 = BgL_radz00_2143;
										BgL_signz00_7806 = BFALSE;
										BgL_iz00_7807 = BgL_iz00_2144;
										BgL_iz00_2120 = BgL_iz00_7807;
										BgL_signz00_2119 = BgL_signz00_7806;
										BgL_radz00_2118 = BgL_radz00_7805;
										goto BgL_zc3z04anonymousza31854ze3z87_2121;
									}
							}
						}
					else
						{
							long BgL_iz00_7810;
							obj_t BgL_radz00_7808;

							BgL_radz00_7808 = BINT(BgL_radixz00_95);
							BgL_iz00_7810 = BgL_iz00_2159;
							BgL_iz00_2144 = BgL_iz00_7810;
							BgL_radz00_2143 = BgL_radz00_7808;
							goto BgL_zc3z04anonymousza31876ze3z87_2145;
						}
				}
			}
		}

	}



/* &$$string->bignum */
	obj_t BGl_z62z42z42stringzd2ze3bignumz53zz__bignumz00(obj_t BgL_envz00_5558,
		obj_t BgL_strz00_5559, obj_t BgL_radixz00_5560)
	{
		{	/* Unsafe/bignumber.scm 965 */
			{	/* Unsafe/bignumber.scm 970 */
				int BgL_auxz00_7820;
				char *BgL_auxz00_7811;

				{	/* Unsafe/bignumber.scm 970 */
					obj_t BgL_tmpz00_7821;

					if (INTEGERP(BgL_radixz00_5560))
						{	/* Unsafe/bignumber.scm 970 */
							BgL_tmpz00_7821 = BgL_radixz00_5560;
						}
					else
						{
							obj_t BgL_auxz00_7824;

							BgL_auxz00_7824 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(31576L), BGl_string2528z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_radixz00_5560);
							FAILURE(BgL_auxz00_7824, BFALSE, BFALSE);
						}
					BgL_auxz00_7820 = CINT(BgL_tmpz00_7821);
				}
				{	/* Unsafe/bignumber.scm 970 */
					obj_t BgL_tmpz00_7812;

					if (STRINGP(BgL_strz00_5559))
						{	/* Unsafe/bignumber.scm 970 */
							BgL_tmpz00_7812 = BgL_strz00_5559;
						}
					else
						{
							obj_t BgL_auxz00_7815;

							BgL_auxz00_7815 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(31576L), BGl_string2528z00zz__bignumz00,
								BGl_string2488z00zz__bignumz00, BgL_strz00_5559);
							FAILURE(BgL_auxz00_7815, BFALSE, BFALSE);
						}
					BgL_auxz00_7811 = BSTRING_TO_STRING(BgL_tmpz00_7812);
				}
				return bgl_string_to_bignum(BgL_auxz00_7811, BgL_auxz00_7820);
			}
		}

	}



/* bignum->fixnum-list */
	obj_t BGl_bignumzd2ze3fixnumzd2listze3zz__bignumz00(obj_t BgL_xz00_96,
		long BgL_radixzd2minuszd21z00_97)
	{
		{	/* Unsafe/bignumber.scm 1023 */
			{	/* Unsafe/bignumber.scm 1024 */
				obj_t BgL_bigzd2radixzd2_2178;

				{	/* Unsafe/bignumber.scm 1026 */
					obj_t BgL_arg1916z00_2207;
					obj_t BgL_arg1917z00_2208;

					BgL_arg1916z00_2207 = bgl_long_to_bignum(BgL_radixzd2minuszd21z00_97);
					{	/* Unsafe/bignumber.scm 1027 */
						obj_t BgL_res2360z00_4937;

						{	/* Unsafe/bignumber.scm 415 */
							bool_t BgL_test2839z00_7831;

							if ((1L < -16L))
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2839z00_7831 = ((bool_t) 1);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2839z00_7831 = (16L < 1L);
								}
							if (BgL_test2839z00_7831)
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2360z00_4937 =
										BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(1L);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2360z00_4937 =
										VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
										(1L + 16L));
								}
						}
						BgL_arg1917z00_2208 = BgL_res2360z00_4937;
					}
					{	/* Unsafe/bignumber.scm 1025 */
						obj_t BgL_res2361z00_4954;

						{	/* Unsafe/bignumber.scm 607 */
							long BgL_arg1516z00_4940;
							long BgL_arg1518z00_4941;

							{	/* Unsafe/bignumber.scm 263 */
								uint16_t BgL_arg1219z00_4943;

								{	/* Unsafe/bignumber.scm 263 */
									obj_t BgL_arg1220z00_4944;

									BgL_arg1220z00_4944 = BGL_BIGNUM_U16VECT(BgL_arg1916z00_2207);
									BgL_arg1219z00_4943 = BGL_U16VREF(BgL_arg1220z00_4944, 0L);
								}
								{	/* Unsafe/bignumber.scm 263 */
									long BgL_arg2284z00_4946;

									BgL_arg2284z00_4946 = (long) (BgL_arg1219z00_4943);
									BgL_arg1516z00_4940 = (long) (BgL_arg2284z00_4946);
							}}
							{	/* Unsafe/bignumber.scm 263 */
								uint16_t BgL_arg1219z00_4949;

								{	/* Unsafe/bignumber.scm 263 */
									obj_t BgL_arg1220z00_4950;

									BgL_arg1220z00_4950 = BGL_BIGNUM_U16VECT(BgL_arg1917z00_2208);
									BgL_arg1219z00_4949 = BGL_U16VREF(BgL_arg1220z00_4950, 0L);
								}
								{	/* Unsafe/bignumber.scm 263 */
									long BgL_arg2284z00_4952;

									BgL_arg2284z00_4952 = (long) (BgL_arg1219z00_4949);
									BgL_arg1518z00_4941 = (long) (BgL_arg2284z00_4952);
							}}
							BgL_res2361z00_4954 =
								BGl_bignumzd2sum2zd2zz__bignumz00(BgL_arg1916z00_2207,
								BgL_arg1917z00_2208, BgL_arg1516z00_4940, BgL_arg1518z00_4941);
						}
						BgL_bigzd2radixzd2_2178 = BgL_res2361z00_4954;
				}}
				{	/* Unsafe/bignumber.scm 1024 */
					obj_t BgL_squarezd2serieszd2_2179;

					{	/* Unsafe/bignumber.scm 1029 */
						obj_t BgL_g1066z00_2197;

						{	/* Unsafe/bignumber.scm 1030 */
							obj_t BgL_list1915z00_2206;

							BgL_list1915z00_2206 =
								MAKE_YOUNG_PAIR(BgL_bigzd2radixzd2_2178, BNIL);
							BgL_g1066z00_2197 = BgL_list1915z00_2206;
						}
						{
							obj_t BgL_squarez00_4963;
							obj_t BgL_squarezd2listzd2_4964;

							BgL_squarez00_4963 = BgL_bigzd2radixzd2_2178;
							BgL_squarezd2listzd2_4964 = BgL_g1066z00_2197;
						BgL_loopz00_4962:
							{	/* Unsafe/bignumber.scm 1031 */
								obj_t BgL_newzd2squarezd2_4968;

								BgL_newzd2squarezd2_4968 =
									bgl_bignum_mul(BgL_squarez00_4963, BgL_squarez00_4963);
								if (BGl_z42zc3bxz81zz__bignumz00(BgL_xz00_96,
										BgL_newzd2squarezd2_4968))
									{	/* Unsafe/bignumber.scm 1033 */
										BgL_squarezd2serieszd2_2179 = BgL_squarezd2listzd2_4964;
									}
								else
									{	/* Unsafe/bignumber.scm 1036 */
										obj_t BgL_arg1914z00_4970;

										BgL_arg1914z00_4970 =
											MAKE_YOUNG_PAIR(BgL_newzd2squarezd2_4968,
											BgL_squarezd2listzd2_4964);
										{
											obj_t BgL_squarezd2listzd2_7853;
											obj_t BgL_squarez00_7852;

											BgL_squarez00_7852 = BgL_newzd2squarezd2_4968;
											BgL_squarezd2listzd2_7853 = BgL_arg1914z00_4970;
											BgL_squarezd2listzd2_4964 = BgL_squarezd2listzd2_7853;
											BgL_squarez00_4963 = BgL_squarez00_7852;
											goto BgL_loopz00_4962;
										}
									}
							}
						}
					}
					{	/* Unsafe/bignumber.scm 1028 */

						return
							BGl_convertze70ze7zz__bignumz00(BgL_xz00_96,
							BgL_squarezd2serieszd2_2179, BNIL);
					}
				}
			}
		}

	}



/* convert~0 */
	obj_t BGl_convertze70ze7zz__bignumz00(obj_t BgL_nz00_2181,
		obj_t BgL_squarezd2serieszd2_2182, obj_t BgL_tailz00_2183)
	{
		{	/* Unsafe/bignumber.scm 1053 */
		BGl_convertze70ze7zz__bignumz00:
			if (PAIRP(BgL_squarezd2serieszd2_2182))
				{	/* Unsafe/bignumber.scm 1040 */
					obj_t BgL_qrz00_2186;

					BgL_qrz00_2186 =
						BGl_bignumzd2divzd2zz__bignumz00(BgL_nz00_2181,
						CAR(BgL_squarezd2serieszd2_2182));
					{	/* Unsafe/bignumber.scm 1040 */
						obj_t BgL_qz00_2187;

						BgL_qz00_2187 = CAR(((obj_t) BgL_qrz00_2186));
						{	/* Unsafe/bignumber.scm 1041 */
							obj_t BgL_rz00_2188;

							BgL_rz00_2188 = CDR(((obj_t) BgL_qrz00_2186));
							{	/* Unsafe/bignumber.scm 1042 */
								obj_t BgL_newzd2squarezd2seriesz00_2189;

								BgL_newzd2squarezd2seriesz00_2189 =
									CDR(BgL_squarezd2serieszd2_2182);
								{	/* Unsafe/bignumber.scm 1043 */

									{
										obj_t BgL_tailz00_7866;
										obj_t BgL_squarezd2serieszd2_7865;
										obj_t BgL_nz00_7864;

										BgL_nz00_7864 = BgL_rz00_2188;
										BgL_squarezd2serieszd2_7865 =
											BgL_newzd2squarezd2seriesz00_2189;
										BgL_tailz00_7866 =
											BGl_convertze70ze7zz__bignumz00(BgL_qz00_2187,
											BgL_newzd2squarezd2seriesz00_2189, BgL_tailz00_2183);
										BgL_tailz00_2183 = BgL_tailz00_7866;
										BgL_squarezd2serieszd2_2182 = BgL_squarezd2serieszd2_7865;
										BgL_nz00_2181 = BgL_nz00_7864;
										goto BGl_convertze70ze7zz__bignumz00;
									}
								}
							}
						}
					}
				}
			else
				{	/* Unsafe/bignumber.scm 1049 */
					long BgL_dz00_2192;

					BgL_dz00_2192 = bgl_bignum_to_long(((obj_t) BgL_nz00_2181));
					{	/* Unsafe/bignumber.scm 1050 */
						bool_t BgL_test2843z00_7870;

						if (NULLP(BgL_tailz00_2183))
							{	/* Unsafe/bignumber.scm 1050 */
								BgL_test2843z00_7870 = (BgL_dz00_2192 == 0L);
							}
						else
							{	/* Unsafe/bignumber.scm 1050 */
								BgL_test2843z00_7870 = ((bool_t) 0);
							}
						if (BgL_test2843z00_7870)
							{	/* Unsafe/bignumber.scm 1050 */
								return BgL_tailz00_2183;
							}
						else
							{	/* Unsafe/bignumber.scm 1050 */
								return MAKE_YOUNG_PAIR(BINT(BgL_dz00_2192), BgL_tailz00_2183);
							}
					}
				}
		}

	}



/* fixnum-list->bignum */
	obj_t BGl_fixnumzd2listzd2ze3bignumze3zz__bignumz00(obj_t
		BgL_digitzd2listzd2_98, long BgL_radixzd2minuszd21z00_99)
	{
		{	/* Unsafe/bignumber.scm 1057 */
			{	/* Unsafe/bignumber.scm 1061 */
				obj_t BgL_bigzd2radixzd2_2209;

				{	/* Unsafe/bignumber.scm 1063 */
					obj_t BgL_arg1925z00_2222;
					obj_t BgL_arg1926z00_2223;

					BgL_arg1925z00_2222 = bgl_long_to_bignum(BgL_radixzd2minuszd21z00_99);
					{	/* Unsafe/bignumber.scm 1064 */
						obj_t BgL_res2363z00_4985;

						{	/* Unsafe/bignumber.scm 415 */
							bool_t BgL_test2845z00_7877;

							if ((1L < -16L))
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2845z00_7877 = ((bool_t) 1);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2845z00_7877 = (16L < 1L);
								}
							if (BgL_test2845z00_7877)
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2363z00_4985 =
										BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(1L);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2363z00_4985 =
										VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
										(1L + 16L));
								}
						}
						BgL_arg1926z00_2223 = BgL_res2363z00_4985;
					}
					{	/* Unsafe/bignumber.scm 1062 */
						obj_t BgL_res2364z00_5002;

						{	/* Unsafe/bignumber.scm 607 */
							long BgL_arg1516z00_4988;
							long BgL_arg1518z00_4989;

							{	/* Unsafe/bignumber.scm 263 */
								uint16_t BgL_arg1219z00_4991;

								{	/* Unsafe/bignumber.scm 263 */
									obj_t BgL_arg1220z00_4992;

									BgL_arg1220z00_4992 = BGL_BIGNUM_U16VECT(BgL_arg1925z00_2222);
									BgL_arg1219z00_4991 = BGL_U16VREF(BgL_arg1220z00_4992, 0L);
								}
								{	/* Unsafe/bignumber.scm 263 */
									long BgL_arg2284z00_4994;

									BgL_arg2284z00_4994 = (long) (BgL_arg1219z00_4991);
									BgL_arg1516z00_4988 = (long) (BgL_arg2284z00_4994);
							}}
							{	/* Unsafe/bignumber.scm 263 */
								uint16_t BgL_arg1219z00_4997;

								{	/* Unsafe/bignumber.scm 263 */
									obj_t BgL_arg1220z00_4998;

									BgL_arg1220z00_4998 = BGL_BIGNUM_U16VECT(BgL_arg1926z00_2223);
									BgL_arg1219z00_4997 = BGL_U16VREF(BgL_arg1220z00_4998, 0L);
								}
								{	/* Unsafe/bignumber.scm 263 */
									long BgL_arg2284z00_5000;

									BgL_arg2284z00_5000 = (long) (BgL_arg1219z00_4997);
									BgL_arg1518z00_4989 = (long) (BgL_arg2284z00_5000);
							}}
							BgL_res2364z00_5002 =
								BGl_bignumzd2sum2zd2zz__bignumz00(BgL_arg1925z00_2222,
								BgL_arg1926z00_2223, BgL_arg1516z00_4988, BgL_arg1518z00_4989);
						}
						BgL_bigzd2radixzd2_2209 = BgL_res2364z00_5002;
				}}
				{	/* Unsafe/bignumber.scm 1065 */
					obj_t BgL_g1067z00_2210;

					BgL_g1067z00_2210 = bgl_reverse(BgL_digitzd2listzd2_98);
					{
						obj_t BgL_nz00_5042;
						obj_t BgL_lstz00_5043;

						BgL_nz00_5042 = BGl_bignumzd2za7eroz75zz__bignumz00;
						BgL_lstz00_5043 = BgL_g1067z00_2210;
					BgL_loopz00_5041:
						if (PAIRP(BgL_lstz00_5043))
							{	/* Unsafe/bignumber.scm 1067 */
								obj_t BgL_arg1920z00_5051;
								obj_t BgL_arg1921z00_5052;

								{	/* Unsafe/bignumber.scm 1067 */
									obj_t BgL_arg1922z00_5053;
									obj_t BgL_arg1923z00_5054;

									BgL_arg1922z00_5053 =
										bgl_bignum_mul(BgL_nz00_5042, BgL_bigzd2radixzd2_2209);
									{	/* Unsafe/bignumber.scm 1068 */
										obj_t BgL_arg1924z00_5055;

										BgL_arg1924z00_5055 = CAR(BgL_lstz00_5043);
										BgL_arg1923z00_5054 =
											bgl_long_to_bignum((long) CINT(BgL_arg1924z00_5055));
									}
									BgL_arg1920z00_5051 =
										BGl_bignumzd2sum2zd2zz__bignumz00(BgL_arg1922z00_5053,
										BgL_arg1923z00_5054,
										BGl_bignumzd2signzd2zz__bignumz00(BgL_arg1922z00_5053),
										BGl_bignumzd2signzd2zz__bignumz00(BgL_arg1923z00_5054));
								}
								BgL_arg1921z00_5052 = CDR(BgL_lstz00_5043);
								{
									obj_t BgL_lstz00_7905;
									obj_t BgL_nz00_7904;

									BgL_nz00_7904 = BgL_arg1920z00_5051;
									BgL_lstz00_7905 = BgL_arg1921z00_5052;
									BgL_lstz00_5043 = BgL_lstz00_7905;
									BgL_nz00_5042 = BgL_nz00_7904;
									goto BgL_loopz00_5041;
								}
							}
						else
							{	/* Unsafe/bignumber.scm 1066 */
								return BgL_nz00_5042;
							}
					}
				}
			}
		}

	}



/* $$bignum->fixnum */
	BGL_EXPORTED_DEF long bgl_bignum_to_long(obj_t BgL_xz00_100)
	{
		{	/* Unsafe/bignumber.scm 1072 */
			{	/* Unsafe/bignumber.scm 1073 */
				long BgL_lenxzd2minuszd21z00_2224;

				{	/* Unsafe/bignumber.scm 1073 */
					long BgL_arg1945z00_2248;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_5064;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_5065;

							BgL_arg1218z00_5065 = BGL_BIGNUM_U16VECT(BgL_xz00_100);
							BgL_arg1217z00_5064 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_5065);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_5067;

							BgL_xz00_5067 = (uint16_t) (BgL_arg1217z00_5064);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_5068;

								BgL_arg2284z00_5068 = (long) (BgL_xz00_5067);
								BgL_arg1945z00_2248 = (long) (BgL_arg2284z00_5068);
					}}}
					BgL_lenxzd2minuszd21z00_2224 = (BgL_arg1945z00_2248 - 1L);
				}
				{
					long BgL_nz00_2226;
					long BgL_iz00_2227;

					{	/* Unsafe/bignumber.scm 1074 */
						obj_t BgL_tmpz00_7912;

						BgL_nz00_2226 = 0L;
						BgL_iz00_2227 = BgL_lenxzd2minuszd21z00_2224;
					BgL_zc3z04anonymousza31927ze3z87_2228:
						if ((0L < BgL_iz00_2227))
							{	/* Unsafe/bignumber.scm 1076 */
								bool_t BgL_test2849z00_7915;

								{	/* Unsafe/bignumber.scm 1076 */
									long BgL_arg1940z00_2242;

									BgL_arg1940z00_2242 = (-536870912L / 16384L);
									BgL_test2849z00_7915 = (BgL_nz00_2226 < BgL_arg1940z00_2242);
								}
								if (BgL_test2849z00_7915)
									{	/* Unsafe/bignumber.scm 1076 */
										BgL_tmpz00_7912 = BFALSE;
									}
								else
									{	/* Unsafe/bignumber.scm 1078 */
										long BgL_mz00_2232;
										long BgL_dz00_2233;

										BgL_mz00_2232 = (BgL_nz00_2226 * 16384L);
										{	/* Unsafe/bignumber.scm 1079 */
											int BgL_iz00_5077;

											BgL_iz00_5077 = (int) (BgL_iz00_2227);
											{	/* Unsafe/bignumber.scm 267 */
												uint16_t BgL_arg1223z00_5078;

												{	/* Unsafe/bignumber.scm 267 */
													obj_t BgL_arg1224z00_5079;

													BgL_arg1224z00_5079 =
														BGL_BIGNUM_U16VECT(BgL_xz00_100);
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_tmpz00_7921;

														BgL_tmpz00_7921 = (long) (BgL_iz00_5077);
														BgL_arg1223z00_5078 =
															BGL_U16VREF(BgL_arg1224z00_5079, BgL_tmpz00_7921);
												}}
												{	/* Unsafe/bignumber.scm 267 */
													long BgL_arg2284z00_5081;

													BgL_arg2284z00_5081 = (long) (BgL_arg1223z00_5078);
													BgL_dz00_2233 = (long) (BgL_arg2284z00_5081);
										}}}
										if ((BgL_mz00_2232 < (-536870912L + BgL_dz00_2233)))
											{	/* Unsafe/bignumber.scm 1080 */
												BgL_tmpz00_7912 = BFALSE;
											}
										else
											{
												long BgL_iz00_7931;
												long BgL_nz00_7929;

												BgL_nz00_7929 = (BgL_mz00_2232 - BgL_dz00_2233);
												BgL_iz00_7931 = (BgL_iz00_2227 - 1L);
												BgL_iz00_2227 = BgL_iz00_7931;
												BgL_nz00_2226 = BgL_nz00_7929;
												goto BgL_zc3z04anonymousza31927ze3z87_2228;
											}
									}
							}
						else
							{	/* Unsafe/bignumber.scm 1084 */
								bool_t BgL_test2851z00_7933;

								{	/* Unsafe/bignumber.scm 471 */
									long BgL_arg1431z00_5091;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_5093;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_5094;

											BgL_arg1220z00_5094 = BGL_BIGNUM_U16VECT(BgL_xz00_100);
											BgL_arg1219z00_5093 =
												BGL_U16VREF(BgL_arg1220z00_5094, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_5096;

											BgL_arg2284z00_5096 = (long) (BgL_arg1219z00_5093);
											BgL_arg1431z00_5091 = (long) (BgL_arg2284z00_5096);
									}}
									BgL_test2851z00_7933 = (BgL_arg1431z00_5091 == 0L);
								}
								if (BgL_test2851z00_7933)
									{	/* Unsafe/bignumber.scm 1084 */
										BgL_tmpz00_7912 = BINT(BgL_nz00_2226);
									}
								else
									{	/* Unsafe/bignumber.scm 1084 */
										if ((BgL_nz00_2226 == -536870912L))
											{	/* Unsafe/bignumber.scm 1086 */
												BgL_tmpz00_7912 = BFALSE;
											}
										else
											{	/* Unsafe/bignumber.scm 1086 */
												BgL_tmpz00_7912 = BINT((0L - BgL_nz00_2226));
											}
									}
							}
						return (long) CINT(BgL_tmpz00_7912);
		}}}}

	}



/* &$$bignum->fixnum */
	obj_t BGl_z62z42z42bignumzd2ze3fixnumz53zz__bignumz00(obj_t BgL_envz00_5561,
		obj_t BgL_xz00_5562)
	{
		{	/* Unsafe/bignumber.scm 1072 */
			{	/* Unsafe/bignumber.scm 1073 */
				long BgL_tmpz00_7945;

				{	/* Unsafe/bignumber.scm 1073 */
					obj_t BgL_auxz00_7946;

					if (BIGNUMP(BgL_xz00_5562))
						{	/* Unsafe/bignumber.scm 1073 */
							BgL_auxz00_7946 = BgL_xz00_5562;
						}
					else
						{
							obj_t BgL_auxz00_7949;

							BgL_auxz00_7949 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(34701L), BGl_string2529z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5562);
							FAILURE(BgL_auxz00_7949, BFALSE, BFALSE);
						}
					BgL_tmpz00_7945 = bgl_bignum_to_long(BgL_auxz00_7946);
				}
				return BINT(BgL_tmpz00_7945);
			}
		}

	}



/* $$bignum->elong */
	BGL_EXPORTED_DEF long bgl_bignum_to_elong(obj_t BgL_xz00_101)
	{
		{	/* Unsafe/bignumber.scm 1091 */
			{	/* Unsafe/bignumber.scm 1092 */
				long BgL_lenxzd2minuszd21z00_2249;

				{	/* Unsafe/bignumber.scm 1092 */
					long BgL_arg1964z00_2274;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_5103;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_5104;

							BgL_arg1218z00_5104 = BGL_BIGNUM_U16VECT(BgL_xz00_101);
							BgL_arg1217z00_5103 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_5104);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_5106;

							BgL_xz00_5106 = (uint16_t) (BgL_arg1217z00_5103);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_5107;

								BgL_arg2284z00_5107 = (long) (BgL_xz00_5106);
								BgL_arg1964z00_2274 = (long) (BgL_arg2284z00_5107);
					}}}
					BgL_lenxzd2minuszd21z00_2249 = (BgL_arg1964z00_2274 - 1L);
				}
				{
					long BgL_nz00_2251;
					long BgL_iz00_2252;

					{	/* Unsafe/bignumber.scm 1093 */
						obj_t BgL_tmpz00_7961;

						BgL_nz00_2251 = ((long) 0);
						BgL_iz00_2252 = BgL_lenxzd2minuszd21z00_2249;
					BgL_zc3z04anonymousza31946ze3z87_2253:
						if ((0L < BgL_iz00_2252))
							{	/* Unsafe/bignumber.scm 1094 */
								if (
									(BgL_nz00_2251 <
										BGl_bignumzd2minzd2elongzd2divzd2radixz00zz__bignumz00()))
									{	/* Unsafe/bignumber.scm 1095 */
										BgL_tmpz00_7961 = BFALSE;
									}
								else
									{	/* Unsafe/bignumber.scm 1097 */
										long BgL_mz00_2257;
										long BgL_dz00_2258;

										BgL_mz00_2257 =
											(BgL_nz00_2251 * ((long) (1L) << (int) (15L)));
										{	/* Unsafe/bignumber.scm 1098 */
											long BgL_arg1958z00_2267;

											{	/* Unsafe/bignumber.scm 1098 */
												int BgL_iz00_5117;

												BgL_iz00_5117 = (int) (BgL_iz00_2252);
												{	/* Unsafe/bignumber.scm 267 */
													uint16_t BgL_arg1223z00_5118;

													{	/* Unsafe/bignumber.scm 267 */
														obj_t BgL_arg1224z00_5119;

														BgL_arg1224z00_5119 =
															BGL_BIGNUM_U16VECT(BgL_xz00_101);
														{	/* Unsafe/bignumber.scm 267 */
															long BgL_tmpz00_7973;

															BgL_tmpz00_7973 = (long) (BgL_iz00_5117);
															BgL_arg1223z00_5118 =
																BGL_U16VREF(BgL_arg1224z00_5119,
																BgL_tmpz00_7973);
													}}
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_arg2284z00_5121;

														BgL_arg2284z00_5121 = (long) (BgL_arg1223z00_5118);
														BgL_arg1958z00_2267 = (long) (BgL_arg2284z00_5121);
											}}}
											BgL_dz00_2258 = (long) (BgL_arg1958z00_2267);
										}
										if (
											(BgL_mz00_2257 <
												((((long) -2) *
														((long) (1L) << (int) (30L))) + BgL_dz00_2258)))
											{	/* Unsafe/bignumber.scm 1099 */
												BgL_tmpz00_7961 = BFALSE;
											}
										else
											{	/* Unsafe/bignumber.scm 1101 */
												long BgL_arg1953z00_2262;
												long BgL_arg1954z00_2263;

												{	/* Unsafe/bignumber.scm 1101 */
													long BgL_res2368z00_5133;

													{	/* Unsafe/bignumber.scm 1101 */
														long BgL_tmpz00_7986;

														BgL_tmpz00_7986 = (BgL_mz00_2257 - BgL_dz00_2258);
														BgL_res2368z00_5133 = (long) (BgL_tmpz00_7986);
													}
													BgL_arg1953z00_2262 = BgL_res2368z00_5133;
												}
												BgL_arg1954z00_2263 = (BgL_iz00_2252 - 1L);
												{
													long BgL_iz00_7991;
													long BgL_nz00_7990;

													BgL_nz00_7990 = BgL_arg1953z00_2262;
													BgL_iz00_7991 = BgL_arg1954z00_2263;
													BgL_iz00_2252 = BgL_iz00_7991;
													BgL_nz00_2251 = BgL_nz00_7990;
													goto BgL_zc3z04anonymousza31946ze3z87_2253;
												}
											}
									}
							}
						else
							{	/* Unsafe/bignumber.scm 1103 */
								bool_t BgL_test2857z00_7992;

								{	/* Unsafe/bignumber.scm 471 */
									long BgL_arg1431z00_5136;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_5138;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_5139;

											BgL_arg1220z00_5139 = BGL_BIGNUM_U16VECT(BgL_xz00_101);
											BgL_arg1219z00_5138 =
												BGL_U16VREF(BgL_arg1220z00_5139, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_5141;

											BgL_arg2284z00_5141 = (long) (BgL_arg1219z00_5138);
											BgL_arg1431z00_5136 = (long) (BgL_arg2284z00_5141);
									}}
									BgL_test2857z00_7992 = (BgL_arg1431z00_5136 == 0L);
								}
								if (BgL_test2857z00_7992)
									{	/* Unsafe/bignumber.scm 1103 */
										BgL_tmpz00_7961 = make_belong(BgL_nz00_2251);
									}
								else
									{	/* Unsafe/bignumber.scm 1103 */
										if (
											(BgL_nz00_2251 ==
												(((long) -2) * ((long) (1L) << (int) (30L)))))
											{	/* Unsafe/bignumber.scm 1105 */
												BgL_tmpz00_7961 = BFALSE;
											}
										else
											{	/* Unsafe/bignumber.scm 1106 */
												long BgL_res2369z00_5152;

												{	/* Unsafe/bignumber.scm 1106 */
													long BgL_tmpz00_8005;

													BgL_tmpz00_8005 = (((long) 0) - BgL_nz00_2251);
													BgL_res2369z00_5152 = (long) (BgL_tmpz00_8005);
												}
												BgL_tmpz00_7961 = make_belong(BgL_res2369z00_5152);
							}}}
						return BELONG_TO_LONG(BgL_tmpz00_7961);
					}
				}
			}
		}

	}



/* &$$bignum->elong */
	obj_t BGl_z62z42z42bignumzd2ze3elongz53zz__bignumz00(obj_t BgL_envz00_5563,
		obj_t BgL_xz00_5564)
	{
		{	/* Unsafe/bignumber.scm 1091 */
			{	/* Unsafe/bignumber.scm 1092 */
				long BgL_tmpz00_8010;

				{	/* Unsafe/bignumber.scm 1092 */
					obj_t BgL_auxz00_8011;

					if (BIGNUMP(BgL_xz00_5564))
						{	/* Unsafe/bignumber.scm 1092 */
							BgL_auxz00_8011 = BgL_xz00_5564;
						}
					else
						{
							obj_t BgL_auxz00_8014;

							BgL_auxz00_8014 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(35211L), BGl_string2530z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5564);
							FAILURE(BgL_auxz00_8014, BFALSE, BFALSE);
						}
					BgL_tmpz00_8010 = bgl_bignum_to_elong(BgL_auxz00_8011);
				}
				return make_belong(BgL_tmpz00_8010);
			}
		}

	}



/* $$bignum->llong */
	BGL_EXPORTED_DEF BGL_LONGLONG_T bgl_bignum_to_llong(obj_t BgL_xz00_102)
	{
		{	/* Unsafe/bignumber.scm 1110 */
			{	/* Unsafe/bignumber.scm 1111 */
				long BgL_lenxzd2minuszd21z00_2275;

				{	/* Unsafe/bignumber.scm 1111 */
					long BgL_arg1983z00_2300;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_5154;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_5155;

							BgL_arg1218z00_5155 = BGL_BIGNUM_U16VECT(BgL_xz00_102);
							BgL_arg1217z00_5154 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_5155);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_5157;

							BgL_xz00_5157 = (uint16_t) (BgL_arg1217z00_5154);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_5158;

								BgL_arg2284z00_5158 = (long) (BgL_xz00_5157);
								BgL_arg1983z00_2300 = (long) (BgL_arg2284z00_5158);
					}}}
					BgL_lenxzd2minuszd21z00_2275 = (BgL_arg1983z00_2300 - 1L);
				}
				{
					BGL_LONGLONG_T BgL_nz00_2277;
					long BgL_iz00_2278;

					{	/* Unsafe/bignumber.scm 1112 */
						obj_t BgL_tmpz00_8026;

						BgL_nz00_2277 = ((BGL_LONGLONG_T) 0);
						BgL_iz00_2278 = BgL_lenxzd2minuszd21z00_2275;
					BgL_zc3z04anonymousza31965ze3z87_2279:
						if ((0L < BgL_iz00_2278))
							{	/* Unsafe/bignumber.scm 1113 */
								if (
									(BgL_nz00_2277 <
										BGl_bignumzd2minzd2llongzd2divzd2radixz00zz__bignumz00()))
									{	/* Unsafe/bignumber.scm 1114 */
										BgL_tmpz00_8026 = BFALSE;
									}
								else
									{	/* Unsafe/bignumber.scm 1116 */
										BGL_LONGLONG_T BgL_mz00_2283;
										BGL_LONGLONG_T BgL_dz00_2284;

										BgL_mz00_2283 =
											(BgL_nz00_2277 * (LONG_TO_LLONG(1L) << (int) (30L)));
										{	/* Unsafe/bignumber.scm 1117 */
											long BgL_arg1977z00_2293;

											{	/* Unsafe/bignumber.scm 1117 */
												int BgL_iz00_5168;

												BgL_iz00_5168 = (int) (BgL_iz00_2278);
												{	/* Unsafe/bignumber.scm 267 */
													uint16_t BgL_arg1223z00_5169;

													{	/* Unsafe/bignumber.scm 267 */
														obj_t BgL_arg1224z00_5170;

														BgL_arg1224z00_5170 =
															BGL_BIGNUM_U16VECT(BgL_xz00_102);
														{	/* Unsafe/bignumber.scm 267 */
															long BgL_tmpz00_8038;

															BgL_tmpz00_8038 = (long) (BgL_iz00_5168);
															BgL_arg1223z00_5169 =
																BGL_U16VREF(BgL_arg1224z00_5170,
																BgL_tmpz00_8038);
													}}
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_arg2284z00_5172;

														BgL_arg2284z00_5172 = (long) (BgL_arg1223z00_5169);
														BgL_arg1977z00_2293 = (long) (BgL_arg2284z00_5172);
											}}}
											BgL_dz00_2284 = LONG_TO_LLONG(BgL_arg1977z00_2293);
										}
										if (
											(BgL_mz00_2283 <
												(((-((BGL_LONGLONG_T) 2)) *
														(LONG_TO_LLONG(1L) <<
															(int) (30L))) + BgL_dz00_2284)))
											{	/* Unsafe/bignumber.scm 1118 */
												BgL_tmpz00_8026 = BFALSE;
											}
										else
											{
												long BgL_iz00_8053;
												BGL_LONGLONG_T BgL_nz00_8051;

												BgL_nz00_8051 = (BgL_mz00_2283 - BgL_dz00_2284);
												BgL_iz00_8053 = (BgL_iz00_2278 - 1L);
												BgL_iz00_2278 = BgL_iz00_8053;
												BgL_nz00_2277 = BgL_nz00_8051;
												goto BgL_zc3z04anonymousza31965ze3z87_2279;
											}
									}
							}
						else
							{	/* Unsafe/bignumber.scm 1122 */
								bool_t BgL_test2863z00_8055;

								{	/* Unsafe/bignumber.scm 471 */
									long BgL_arg1431z00_5186;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_5188;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_5189;

											BgL_arg1220z00_5189 = BGL_BIGNUM_U16VECT(BgL_xz00_102);
											BgL_arg1219z00_5188 =
												BGL_U16VREF(BgL_arg1220z00_5189, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_5191;

											BgL_arg2284z00_5191 = (long) (BgL_arg1219z00_5188);
											BgL_arg1431z00_5186 = (long) (BgL_arg2284z00_5191);
									}}
									BgL_test2863z00_8055 = (BgL_arg1431z00_5186 == 0L);
								}
								if (BgL_test2863z00_8055)
									{	/* Unsafe/bignumber.scm 1122 */
										BgL_tmpz00_8026 = make_bllong(BgL_nz00_2277);
									}
								else
									{	/* Unsafe/bignumber.scm 1122 */
										if (
											(BgL_nz00_2277 ==
												((-((BGL_LONGLONG_T) 2)) *
													(LONG_TO_LLONG(1L) << (int) (30L)))))
											{	/* Unsafe/bignumber.scm 1124 */
												BgL_tmpz00_8026 = BFALSE;
											}
										else
											{	/* Unsafe/bignumber.scm 1124 */
												BgL_tmpz00_8026 =
													make_bllong((((BGL_LONGLONG_T) 0) - BgL_nz00_2277));
											}
									}
							}
						return BLLONG_TO_LLONG(BgL_tmpz00_8026);
					}
				}
			}
		}

	}



/* &$$bignum->llong */
	obj_t BGl_z62z42z42bignumzd2ze3llongz53zz__bignumz00(obj_t BgL_envz00_5565,
		obj_t BgL_xz00_5566)
	{
		{	/* Unsafe/bignumber.scm 1110 */
			{	/* Unsafe/bignumber.scm 1111 */
				BGL_LONGLONG_T BgL_tmpz00_8071;

				{	/* Unsafe/bignumber.scm 1111 */
					obj_t BgL_auxz00_8072;

					if (BIGNUMP(BgL_xz00_5566))
						{	/* Unsafe/bignumber.scm 1111 */
							BgL_auxz00_8072 = BgL_xz00_5566;
						}
					else
						{
							obj_t BgL_auxz00_8075;

							BgL_auxz00_8075 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(35771L), BGl_string2531z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5566);
							FAILURE(BgL_auxz00_8075, BFALSE, BFALSE);
						}
					BgL_tmpz00_8071 = bgl_bignum_to_llong(BgL_auxz00_8072);
				}
				return make_bllong(BgL_tmpz00_8071);
			}
		}

	}



/* $$bignum->int64 */
	BGL_EXPORTED_DEF int64_t bgl_bignum_to_int64(obj_t BgL_xz00_103)
	{
		{	/* Unsafe/bignumber.scm 1129 */
			{	/* Unsafe/bignumber.scm 1130 */
				long BgL_lenxzd2minuszd21z00_2301;

				{	/* Unsafe/bignumber.scm 1130 */
					long BgL_arg2002z00_2326;

					{	/* Unsafe/bignumber.scm 261 */
						long BgL_arg1217z00_5203;

						{	/* Unsafe/bignumber.scm 261 */
							obj_t BgL_arg1218z00_5204;

							BgL_arg1218z00_5204 = BGL_BIGNUM_U16VECT(BgL_xz00_103);
							BgL_arg1217z00_5203 = BGL_HVECTOR_LENGTH(BgL_arg1218z00_5204);
						}
						{	/* Unsafe/bignumber.scm 261 */
							uint16_t BgL_xz00_5206;

							BgL_xz00_5206 = (uint16_t) (BgL_arg1217z00_5203);
							{	/* Unsafe/bignumber.scm 261 */
								long BgL_arg2284z00_5207;

								BgL_arg2284z00_5207 = (long) (BgL_xz00_5206);
								BgL_arg2002z00_2326 = (long) (BgL_arg2284z00_5207);
					}}}
					BgL_lenxzd2minuszd21z00_2301 = (BgL_arg2002z00_2326 - 1L);
				}
				{
					int64_t BgL_nz00_2303;
					long BgL_iz00_2304;

					{	/* Unsafe/bignumber.scm 1131 */
						obj_t BgL_tmpz00_8087;

						BgL_nz00_2303 = (int64_t) (0);
						BgL_iz00_2304 = BgL_lenxzd2minuszd21z00_2301;
					BgL_zc3z04anonymousza31984ze3z87_2305:
						if ((0L < BgL_iz00_2304))
							{	/* Unsafe/bignumber.scm 1132 */
								if (
									(BgL_nz00_2303 <
										BGl_bignumzd2minzd2int64zd2divzd2radixz00zz__bignumz00()))
									{	/* Unsafe/bignumber.scm 1133 */
										BgL_tmpz00_8087 = BFALSE;
									}
								else
									{	/* Unsafe/bignumber.scm 1135 */
										int64_t BgL_mz00_2309;
										int64_t BgL_dz00_2310;

										BgL_mz00_2309 =
											(BgL_nz00_2303 *
											BGl_expts64z00zz__r4_numbers_6_5_fixnumz00((int64_t) (2),
												(int64_t) (30L)));
										{	/* Unsafe/bignumber.scm 1136 */
											long BgL_arg1996z00_2319;

											{	/* Unsafe/bignumber.scm 1136 */
												int BgL_iz00_5216;

												BgL_iz00_5216 = (int) (BgL_iz00_2304);
												{	/* Unsafe/bignumber.scm 267 */
													uint16_t BgL_arg1223z00_5217;

													{	/* Unsafe/bignumber.scm 267 */
														obj_t BgL_arg1224z00_5218;

														BgL_arg1224z00_5218 =
															BGL_BIGNUM_U16VECT(BgL_xz00_103);
														{	/* Unsafe/bignumber.scm 267 */
															long BgL_tmpz00_8098;

															BgL_tmpz00_8098 = (long) (BgL_iz00_5216);
															BgL_arg1223z00_5217 =
																BGL_U16VREF(BgL_arg1224z00_5218,
																BgL_tmpz00_8098);
													}}
													{	/* Unsafe/bignumber.scm 267 */
														long BgL_arg2284z00_5220;

														BgL_arg2284z00_5220 = (long) (BgL_arg1223z00_5217);
														BgL_arg1996z00_2319 = (long) (BgL_arg2284z00_5220);
											}}}
											BgL_dz00_2310 = (int64_t) (BgL_arg1996z00_2319);
										}
										if (
											(BgL_mz00_2309 <
												(((int64_t) (-2) *
														BGl_expts64z00zz__r4_numbers_6_5_fixnumz00((int64_t)
															(2), (int64_t) (30L))) + BgL_dz00_2310)))
											{	/* Unsafe/bignumber.scm 1137 */
												BgL_tmpz00_8087 = BFALSE;
											}
										else
											{
												long BgL_iz00_8112;
												int64_t BgL_nz00_8110;

												BgL_nz00_8110 = (BgL_mz00_2309 - BgL_dz00_2310);
												BgL_iz00_8112 = (BgL_iz00_2304 - 1L);
												BgL_iz00_2304 = BgL_iz00_8112;
												BgL_nz00_2303 = BgL_nz00_8110;
												goto BgL_zc3z04anonymousza31984ze3z87_2305;
											}
									}
							}
						else
							{	/* Unsafe/bignumber.scm 1141 */
								bool_t BgL_test2869z00_8114;

								{	/* Unsafe/bignumber.scm 471 */
									long BgL_arg1431z00_5233;

									{	/* Unsafe/bignumber.scm 263 */
										uint16_t BgL_arg1219z00_5235;

										{	/* Unsafe/bignumber.scm 263 */
											obj_t BgL_arg1220z00_5236;

											BgL_arg1220z00_5236 = BGL_BIGNUM_U16VECT(BgL_xz00_103);
											BgL_arg1219z00_5235 =
												BGL_U16VREF(BgL_arg1220z00_5236, 0L);
										}
										{	/* Unsafe/bignumber.scm 263 */
											long BgL_arg2284z00_5238;

											BgL_arg2284z00_5238 = (long) (BgL_arg1219z00_5235);
											BgL_arg1431z00_5233 = (long) (BgL_arg2284z00_5238);
									}}
									BgL_test2869z00_8114 = (BgL_arg1431z00_5233 == 0L);
								}
								if (BgL_test2869z00_8114)
									{	/* Unsafe/bignumber.scm 1141 */
										BgL_tmpz00_8087 = BGL_INT64_TO_BINT64(BgL_nz00_2303);
									}
								else
									{	/* Unsafe/bignumber.scm 1143 */
										bool_t BgL_test2870z00_8121;

										{	/* Unsafe/bignumber.scm 1143 */
											int64_t BgL_arg2001z00_2324;

											BgL_arg2001z00_2324 =
												((int64_t) (-2) *
												BGl_expts64z00zz__r4_numbers_6_5_fixnumz00((int64_t)
													(2), (int64_t) (30L)));
											BgL_test2870z00_8121 =
												(BgL_nz00_2303 == BgL_arg2001z00_2324);
										}
										if (BgL_test2870z00_8121)
											{	/* Unsafe/bignumber.scm 1143 */
												BgL_tmpz00_8087 = BFALSE;
											}
										else
											{	/* Unsafe/bignumber.scm 1144 */
												int64_t BgL_tmpz00_8126;

												BgL_tmpz00_8126 =
													((int64_t) (((BGL_LONGLONG_T) 0)) - BgL_nz00_2303);
												BgL_tmpz00_8087 = BGL_INT64_TO_BINT64(BgL_tmpz00_8126);
											}
									}
							}
						return BGL_BINT64_TO_INT64(BgL_tmpz00_8087);
					}
				}
			}
		}

	}



/* &$$bignum->int64 */
	obj_t BGl_z62z42z42bignumzd2ze3int64z53zz__bignumz00(obj_t BgL_envz00_5567,
		obj_t BgL_xz00_5568)
	{
		{	/* Unsafe/bignumber.scm 1129 */
			{	/* Unsafe/bignumber.scm 1130 */
				int64_t BgL_tmpz00_8131;

				{	/* Unsafe/bignumber.scm 1130 */
					obj_t BgL_auxz00_8132;

					if (BIGNUMP(BgL_xz00_5568))
						{	/* Unsafe/bignumber.scm 1130 */
							BgL_auxz00_8132 = BgL_xz00_5568;
						}
					else
						{
							obj_t BgL_auxz00_8135;

							BgL_auxz00_8135 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(36331L), BGl_string2532z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5568);
							FAILURE(BgL_auxz00_8135, BFALSE, BFALSE);
						}
					BgL_tmpz00_8131 = bgl_bignum_to_int64(BgL_auxz00_8132);
				}
				return BGL_INT64_TO_BINT64(BgL_tmpz00_8131);
			}
		}

	}



/* $$bignum->uint64 */
	BGL_EXPORTED_DEF uint64_t bgl_bignum_to_uint64(obj_t BgL_xz00_104)
	{
		{	/* Unsafe/bignumber.scm 1148 */
			{	/* Unsafe/bignumber.scm 1149 */
				int64_t BgL_tmpz00_8141;

				BgL_tmpz00_8141 = bgl_bignum_to_int64(BgL_xz00_104);
				return (uint64_t) (BgL_tmpz00_8141);
			}
		}

	}



/* &$$bignum->uint64 */
	obj_t BGl_z62z42z42bignumzd2ze3uint64z53zz__bignumz00(obj_t BgL_envz00_5569,
		obj_t BgL_xz00_5570)
	{
		{	/* Unsafe/bignumber.scm 1148 */
			{	/* Unsafe/bignumber.scm 1149 */
				uint64_t BgL_tmpz00_8144;

				{	/* Unsafe/bignumber.scm 1149 */
					obj_t BgL_auxz00_8145;

					if (BIGNUMP(BgL_xz00_5570))
						{	/* Unsafe/bignumber.scm 1149 */
							BgL_auxz00_8145 = BgL_xz00_5570;
						}
					else
						{
							obj_t BgL_auxz00_8148;

							BgL_auxz00_8148 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(36896L), BGl_string2533z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_xz00_5570);
							FAILURE(BgL_auxz00_8148, BFALSE, BFALSE);
						}
					BgL_tmpz00_8144 = bgl_bignum_to_uint64(BgL_auxz00_8145);
				}
				return BGL_UINT64_TO_BUINT64(BgL_tmpz00_8144);
			}
		}

	}



/* $$seed-rand */
	BGL_EXPORTED_DEF obj_t bgl_seed_rand(long BgL_seedz00_105)
	{
		{	/* Unsafe/bignumber.scm 1154 */
			{	/* Unsafe/bignumber.scm 1155 */
				int BgL_tmpz00_8154;

				BgL_tmpz00_8154 = (int) (BgL_seedz00_105);
				srand(BgL_tmpz00_8154);
			} BUNSPEC;
			return BINT(BgL_seedz00_105);
		}

	}



/* &$$seed-rand */
	obj_t BGl_z62z42z42seedzd2randzb0zz__bignumz00(obj_t BgL_envz00_5571,
		obj_t BgL_seedz00_5572)
	{
		{	/* Unsafe/bignumber.scm 1154 */
			{	/* Unsafe/bignumber.scm 1155 */
				long BgL_auxz00_8158;

				{	/* Unsafe/bignumber.scm 1155 */
					obj_t BgL_tmpz00_8159;

					if (INTEGERP(BgL_seedz00_5572))
						{	/* Unsafe/bignumber.scm 1155 */
							BgL_tmpz00_8159 = BgL_seedz00_5572;
						}
					else
						{
							obj_t BgL_auxz00_8162;

							BgL_auxz00_8162 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(37183L), BGl_string2534z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_seedz00_5572);
							FAILURE(BgL_auxz00_8162, BFALSE, BFALSE);
						}
					BgL_auxz00_8158 = (long) CINT(BgL_tmpz00_8159);
				}
				return bgl_seed_rand(BgL_auxz00_8158);
			}
		}

	}



/* make-random-u8vector */
	obj_t BGl_makezd2randomzd2u8vectorz00zz__bignumz00(obj_t BgL_lenz00_106)
	{
		{	/* Unsafe/bignumber.scm 1161 */
			{
				obj_t BgL_vecz00_2332;

				{	/* Unsafe/bignumber.scm 1169 */
					obj_t BgL_arg2004z00_2329;

					{	/* Llib/srfi4.scm 447 */

						BgL_arg2004z00_2329 =
							BGl_makezd2u8vectorzd2zz__srfi4z00(
							(long) CINT(BgL_lenz00_106), (uint8_t) (0));
					}
					BgL_vecz00_2332 = BgL_arg2004z00_2329;
					{	/* Unsafe/bignumber.scm 1163 */
						long BgL_g1068z00_2334;

						{	/* Unsafe/bignumber.scm 1163 */
							long BgL_arg2011z00_2342;

							BgL_arg2011z00_2342 = BGL_HVECTOR_LENGTH(BgL_vecz00_2332);
							BgL_g1068z00_2334 = (BgL_arg2011z00_2342 - 1L);
						}
						{
							long BgL_iz00_2336;

							BgL_iz00_2336 = BgL_g1068z00_2334;
						BgL_zc3z04anonymousza32007ze3z87_2337:
							if ((BgL_iz00_2336 == -1L))
								{	/* Unsafe/bignumber.scm 1164 */
									return BgL_vecz00_2332;
								}
							else
								{	/* Unsafe/bignumber.scm 1164 */
									{	/* Unsafe/bignumber.scm 1167 */
										long BgL_arg2009z00_2339;

										{	/* Unsafe/bignumber.scm 1167 */
											int BgL_arg2175z00_5254;

											BgL_arg2175z00_5254 = rand();
											BgL_arg2009z00_2339 =
												BGl_modulofxz00zz__r4_numbers_6_5_fixnumz00(
												(long) (BgL_arg2175z00_5254), 256L);
										}
										{	/* Unsafe/bignumber.scm 1167 */
											uint8_t BgL_tmpz00_8177;

											BgL_tmpz00_8177 = (uint8_t) (BgL_arg2009z00_2339);
											BGL_U8VSET(BgL_vecz00_2332, BgL_iz00_2336,
												BgL_tmpz00_8177);
										} BUNSPEC;
									}
									{
										long BgL_iz00_8180;

										BgL_iz00_8180 = (BgL_iz00_2336 - 1L);
										BgL_iz00_2336 = BgL_iz00_8180;
										goto BgL_zc3z04anonymousza32007ze3z87_2337;
									}
								}
						}
					}
				}
			}
		}

	}



/* $$randbx */
	BGL_EXPORTED_DEF obj_t bgl_rand_bignum(obj_t BgL_rangez00_107)
	{
		{	/* Unsafe/bignumber.scm 1174 */
			{	/* Unsafe/bignumber.scm 1175 */
				long BgL_rangezd2bitszd2_2344;

				BgL_rangezd2bitszd2_2344 =
					BGl_bignumzd2integerzd2lengthz00zz__bignumz00(BgL_rangez00_107);
				{	/* Unsafe/bignumber.scm 1175 */
					obj_t BgL_lenz00_2345;

					{	/* Unsafe/bignumber.scm 1176 */
						long BgL_arg2018z00_2358;

						BgL_arg2018z00_2358 = (BgL_rangezd2bitszd2_2344 + 20L);
						BgL_lenz00_2345 =
							BGl_quotientz00zz__r4_numbers_6_5_fixnumz00(BINT
							(BgL_arg2018z00_2358), BINT(8L));
					}
					{	/* Unsafe/bignumber.scm 1176 */
						obj_t BgL_nz00_2346;

						BgL_nz00_2346 =
							BGl_bignumzd2exptzd2zz__bignumz00(bgl_long_to_bignum(256L),
							bgl_long_to_bignum((long) CINT(BgL_lenz00_2345)));
						{	/* Unsafe/bignumber.scm 1177 */
							obj_t BgL_divisorz00_2347;

							{	/* Unsafe/bignumber.scm 1178 */
								obj_t BgL_res2370z00_5263;

								{	/* Unsafe/bignumber.scm 859 */
									obj_t BgL_arg1762z00_5260;

									{	/* Unsafe/bignumber.scm 859 */
										obj_t BgL_arg1763z00_5261;

										BgL_arg1763z00_5261 =
											BGl_bignumzd2divzd2zz__bignumz00(BgL_nz00_2346,
											BgL_rangez00_107);
										BgL_arg1762z00_5260 = CAR(((obj_t) BgL_arg1763z00_5261));
									}
									BgL_res2370z00_5263 = BgL_arg1762z00_5260;
								}
								BgL_divisorz00_2347 = BgL_res2370z00_5263;
							}
							{	/* Unsafe/bignumber.scm 1178 */
								obj_t BgL_limitz00_2348;

								BgL_limitz00_2348 =
									bgl_bignum_mul(BgL_divisorz00_2347, BgL_rangez00_107);
								{	/* Unsafe/bignumber.scm 1179 */

									{

									BgL_zc3z04anonymousza32012ze3z87_2350:
										{	/* Unsafe/bignumber.scm 1181 */
											obj_t BgL_u8vectz00_2351;

											BgL_u8vectz00_2351 =
												BGl_makezd2randomzd2u8vectorz00zz__bignumz00
												(BgL_lenz00_2345);
											{	/* Unsafe/bignumber.scm 1181 */
												obj_t BgL_xz00_2352;

												BgL_xz00_2352 =
													BGl_fixnumzd2listzd2ze3bignumze3zz__bignumz00
													(BGl_u8vectorzd2ze3listz31zz__srfi4z00
													(BgL_u8vectz00_2351), 255L);
												{	/* Unsafe/bignumber.scm 1182 */

													{	/* Unsafe/bignumber.scm 1183 */
														bool_t BgL_test2875z00_8198;

														if (BGl_z42zc3bxz81zz__bignumz00(BgL_xz00_2352,
																BgL_limitz00_2348))
															{	/* Unsafe/bignumber.scm 465 */
																BgL_test2875z00_8198 = ((bool_t) 0);
															}
														else
															{	/* Unsafe/bignumber.scm 465 */
																BgL_test2875z00_8198 = ((bool_t) 1);
															}
														if (BgL_test2875z00_8198)
															{	/* Unsafe/bignumber.scm 1183 */
																goto BgL_zc3z04anonymousza32012ze3z87_2350;
															}
														else
															{	/* Unsafe/bignumber.scm 1185 */
																obj_t BgL_res2371z00_5272;

																{	/* Unsafe/bignumber.scm 859 */
																	obj_t BgL_arg1762z00_5269;

																	{	/* Unsafe/bignumber.scm 859 */
																		obj_t BgL_arg1763z00_5270;

																		BgL_arg1763z00_5270 =
																			BGl_bignumzd2divzd2zz__bignumz00
																			(BgL_xz00_2352, BgL_divisorz00_2347);
																		BgL_arg1762z00_5269 =
																			CAR(((obj_t) BgL_arg1763z00_5270));
																	}
																	BgL_res2371z00_5272 = BgL_arg1762z00_5269;
																}
																return BgL_res2371z00_5272;
															}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}

	}



/* &$$randbx */
	obj_t BGl_z62z42z42randbxz62zz__bignumz00(obj_t BgL_envz00_5573,
		obj_t BgL_rangez00_5574)
	{
		{	/* Unsafe/bignumber.scm 1174 */
			{	/* Unsafe/bignumber.scm 1175 */
				obj_t BgL_auxz00_8204;

				if (BIGNUMP(BgL_rangez00_5574))
					{	/* Unsafe/bignumber.scm 1175 */
						BgL_auxz00_8204 = BgL_rangez00_5574;
					}
				else
					{
						obj_t BgL_auxz00_8207;

						BgL_auxz00_8207 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(37950L), BGl_string2535z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_rangez00_5574);
						FAILURE(BgL_auxz00_8207, BFALSE, BFALSE);
					}
				return bgl_rand_bignum(BgL_auxz00_8204);
			}
		}

	}



/* $$flonum->bignum */
	BGL_EXPORTED_DEF obj_t bgl_flonum_to_bignum(double BgL_nz00_108)
	{
		{	/* Unsafe/bignumber.scm 1190 */
			{	/* Unsafe/bignumber.scm 1191 */
				long BgL_arg2019z00_5273;

				BgL_arg2019z00_5273 = (long) (BgL_nz00_108);
				return bgl_long_to_bignum(BgL_arg2019z00_5273);
			}
		}

	}



/* &$$flonum->bignum */
	obj_t BGl_z62z42z42flonumzd2ze3bignumz53zz__bignumz00(obj_t BgL_envz00_5575,
		obj_t BgL_nz00_5576)
	{
		{	/* Unsafe/bignumber.scm 1190 */
			{	/* Unsafe/bignumber.scm 1191 */
				double BgL_auxz00_8214;

				{	/* Unsafe/bignumber.scm 1191 */
					obj_t BgL_tmpz00_8215;

					if (REALP(BgL_nz00_5576))
						{	/* Unsafe/bignumber.scm 1191 */
							BgL_tmpz00_8215 = BgL_nz00_5576;
						}
					else
						{
							obj_t BgL_auxz00_8218;

							BgL_auxz00_8218 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(38631L), BGl_string2536z00zz__bignumz00,
								BGl_string2537z00zz__bignumz00, BgL_nz00_5576);
							FAILURE(BgL_auxz00_8218, BFALSE, BFALSE);
						}
					BgL_auxz00_8214 = REAL_TO_DOUBLE(BgL_tmpz00_8215);
				}
				return bgl_flonum_to_bignum(BgL_auxz00_8214);
			}
		}

	}



/* $$bignum->flonum */
	BGL_EXPORTED_DEF double bgl_bignum_to_flonum(obj_t BgL_nz00_109)
	{
		{	/* Unsafe/bignumber.scm 1193 */
			{	/* Unsafe/bignumber.scm 1194 */
				long BgL_tmpz00_8224;

				BgL_tmpz00_8224 = bgl_bignum_to_long(BgL_nz00_109);
				return (double) (BgL_tmpz00_8224);
		}}

	}



/* &$$bignum->flonum */
	obj_t BGl_z62z42z42bignumzd2ze3flonumz53zz__bignumz00(obj_t BgL_envz00_5577,
		obj_t BgL_nz00_5578)
	{
		{	/* Unsafe/bignumber.scm 1193 */
			{	/* Unsafe/bignumber.scm 1194 */
				double BgL_tmpz00_8227;

				{	/* Unsafe/bignumber.scm 1194 */
					obj_t BgL_auxz00_8228;

					if (BIGNUMP(BgL_nz00_5578))
						{	/* Unsafe/bignumber.scm 1194 */
							BgL_auxz00_8228 = BgL_nz00_5578;
						}
					else
						{
							obj_t BgL_auxz00_8231;

							BgL_auxz00_8231 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(38703L), BGl_string2538z00zz__bignumz00,
								BGl_string2500z00zz__bignumz00, BgL_nz00_5578);
							FAILURE(BgL_auxz00_8231, BFALSE, BFALSE);
						}
					BgL_tmpz00_8227 = bgl_bignum_to_flonum(BgL_auxz00_8228);
				}
				return DOUBLE_TO_REAL(BgL_tmpz00_8227);
			}
		}

	}



/* $$bitlshbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_lsh(obj_t BgL_za7za7_110, long BgL_nz00_111)
	{
		{	/* Unsafe/bignumber.scm 1199 */
			{	/* Unsafe/bignumber.scm 1200 */
				obj_t BgL_arg2021z00_5276;

				{	/* Unsafe/bignumber.scm 1200 */
					obj_t BgL_arg2023z00_5277;
					obj_t BgL_arg2024z00_5278;

					{	/* Unsafe/bignumber.scm 1200 */
						obj_t BgL_res2372z00_5287;

						{	/* Unsafe/bignumber.scm 415 */
							bool_t BgL_test2880z00_8237;

							if ((2L < -16L))
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2880z00_8237 = ((bool_t) 1);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2880z00_8237 = (16L < 2L);
								}
							if (BgL_test2880z00_8237)
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2372z00_5287 =
										BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(2L);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2372z00_5287 =
										VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
										(2L + 16L));
								}
						}
						BgL_arg2023z00_5277 = BgL_res2372z00_5287;
					}
					BgL_arg2024z00_5278 = bgl_long_to_bignum(BgL_nz00_111);
					BgL_arg2021z00_5276 =
						bgl_bignum_expt(BgL_arg2023z00_5277, BgL_arg2024z00_5278);
				}
				return bgl_bignum_mul(BgL_za7za7_110, BgL_arg2021z00_5276);
			}
		}

	}



/* &$$bitlshbx */
	obj_t BGl_z62z42z42bitlshbxz62zz__bignumz00(obj_t BgL_envz00_5579,
		obj_t BgL_za7za7_5580, obj_t BgL_nz00_5581)
	{
		{	/* Unsafe/bignumber.scm 1199 */
			{	/* Unsafe/bignumber.scm 1200 */
				long BgL_auxz00_8254;
				obj_t BgL_auxz00_8247;

				{	/* Unsafe/bignumber.scm 1200 */
					obj_t BgL_tmpz00_8255;

					if (INTEGERP(BgL_nz00_5581))
						{	/* Unsafe/bignumber.scm 1200 */
							BgL_tmpz00_8255 = BgL_nz00_5581;
						}
					else
						{
							obj_t BgL_auxz00_8258;

							BgL_auxz00_8258 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(38996L), BGl_string2539z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_nz00_5581);
							FAILURE(BgL_auxz00_8258, BFALSE, BFALSE);
						}
					BgL_auxz00_8254 = (long) CINT(BgL_tmpz00_8255);
				}
				if (BIGNUMP(BgL_za7za7_5580))
					{	/* Unsafe/bignumber.scm 1200 */
						BgL_auxz00_8247 = BgL_za7za7_5580;
					}
				else
					{
						obj_t BgL_auxz00_8250;

						BgL_auxz00_8250 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(38996L), BGl_string2539z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_za7za7_5580);
						FAILURE(BgL_auxz00_8250, BFALSE, BFALSE);
					}
				return bgl_bignum_lsh(BgL_auxz00_8247, BgL_auxz00_8254);
			}
		}

	}



/* $$bitrshbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_rsh(obj_t BgL_za7za7_112, long BgL_nz00_113)
	{
		{	/* Unsafe/bignumber.scm 1202 */
			{	/* Unsafe/bignumber.scm 1203 */
				obj_t BgL_arg2025z00_5288;

				{	/* Unsafe/bignumber.scm 1203 */
					obj_t BgL_arg2028z00_5289;
					obj_t BgL_arg2029z00_5290;

					{	/* Unsafe/bignumber.scm 1203 */
						obj_t BgL_res2373z00_5299;

						{	/* Unsafe/bignumber.scm 415 */
							bool_t BgL_test2884z00_8264;

							if ((2L < -16L))
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2884z00_8264 = ((bool_t) 1);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_test2884z00_8264 = (16L < 2L);
								}
							if (BgL_test2884z00_8264)
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2373z00_5299 =
										BGl_z42z42fixnumzd2ze3bignumzd2freshze3zz__bignumz00(2L);
								}
							else
								{	/* Unsafe/bignumber.scm 415 */
									BgL_res2373z00_5299 =
										VECTOR_REF(BGl_preallocatedzd2bignumszd2zz__bignumz00,
										(2L + 16L));
								}
						}
						BgL_arg2028z00_5289 = BgL_res2373z00_5299;
					}
					BgL_arg2029z00_5290 = bgl_long_to_bignum(BgL_nz00_113);
					BgL_arg2025z00_5288 =
						bgl_bignum_expt(BgL_arg2028z00_5289, BgL_arg2029z00_5290);
				}
				return
					BGl_bignumzd2divzd2zz__bignumz00(BgL_za7za7_112, BgL_arg2025z00_5288);
			}
		}

	}



/* &$$bitrshbx */
	obj_t BGl_z62z42z42bitrshbxz62zz__bignumz00(obj_t BgL_envz00_5582,
		obj_t BgL_za7za7_5583, obj_t BgL_nz00_5584)
	{
		{	/* Unsafe/bignumber.scm 1202 */
			{	/* Unsafe/bignumber.scm 1203 */
				long BgL_auxz00_8281;
				obj_t BgL_auxz00_8274;

				{	/* Unsafe/bignumber.scm 1203 */
					obj_t BgL_tmpz00_8282;

					if (INTEGERP(BgL_nz00_5584))
						{	/* Unsafe/bignumber.scm 1203 */
							BgL_tmpz00_8282 = BgL_nz00_5584;
						}
					else
						{
							obj_t BgL_auxz00_8285;

							BgL_auxz00_8285 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(39094L), BGl_string2540z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_nz00_5584);
							FAILURE(BgL_auxz00_8285, BFALSE, BFALSE);
						}
					BgL_auxz00_8281 = (long) CINT(BgL_tmpz00_8282);
				}
				if (BIGNUMP(BgL_za7za7_5583))
					{	/* Unsafe/bignumber.scm 1203 */
						BgL_auxz00_8274 = BgL_za7za7_5583;
					}
				else
					{
						obj_t BgL_auxz00_8277;

						BgL_auxz00_8277 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39094L), BGl_string2540z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_za7za7_5583);
						FAILURE(BgL_auxz00_8277, BFALSE, BFALSE);
					}
				return bgl_bignum_rsh(BgL_auxz00_8274, BgL_auxz00_8281);
			}
		}

	}



/* $$bitmaskbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_mask(obj_t BgL_xz00_114, long BgL_yz00_115)
	{
		{	/* Unsafe/bignumber.scm 1205 */
			return
				BGl_errorz00zz__errorz00(BGl_string2541z00zz__bignumz00,
				BGl_string2542z00zz__bignumz00, BgL_xz00_114);
		}

	}



/* &$$bitmaskbx */
	obj_t BGl_z62z42z42bitmaskbxz62zz__bignumz00(obj_t BgL_envz00_5585,
		obj_t BgL_xz00_5586, obj_t BgL_yz00_5587)
	{
		{	/* Unsafe/bignumber.scm 1205 */
			{	/* Unsafe/bignumber.scm 1206 */
				long BgL_auxz00_8299;
				obj_t BgL_auxz00_8292;

				{	/* Unsafe/bignumber.scm 1206 */
					obj_t BgL_tmpz00_8300;

					if (INTEGERP(BgL_yz00_5587))
						{	/* Unsafe/bignumber.scm 1206 */
							BgL_tmpz00_8300 = BgL_yz00_5587;
						}
					else
						{
							obj_t BgL_auxz00_8303;

							BgL_auxz00_8303 =
								BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
								BINT(39169L), BGl_string2543z00zz__bignumz00,
								BGl_string2489z00zz__bignumz00, BgL_yz00_5587);
							FAILURE(BgL_auxz00_8303, BFALSE, BFALSE);
						}
					BgL_auxz00_8299 = (long) CINT(BgL_tmpz00_8300);
				}
				if (BIGNUMP(BgL_xz00_5586))
					{	/* Unsafe/bignumber.scm 1206 */
						BgL_auxz00_8292 = BgL_xz00_5586;
					}
				else
					{
						obj_t BgL_auxz00_8295;

						BgL_auxz00_8295 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39169L), BGl_string2543z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5586);
						FAILURE(BgL_auxz00_8295, BFALSE, BFALSE);
					}
				return bgl_bignum_mask(BgL_auxz00_8292, BgL_auxz00_8299);
			}
		}

	}



/* $$bitorbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_or(obj_t BgL_xz00_116, obj_t BgL_yz00_117)
	{
		{	/* Unsafe/bignumber.scm 1208 */
			return
				BGl_errorz00zz__errorz00(BGl_string2544z00zz__bignumz00,
				BGl_string2542z00zz__bignumz00, BgL_xz00_116);
		}

	}



/* &$$bitorbx */
	obj_t BGl_z62z42z42bitorbxz62zz__bignumz00(obj_t BgL_envz00_5588,
		obj_t BgL_xz00_5589, obj_t BgL_yz00_5590)
	{
		{	/* Unsafe/bignumber.scm 1208 */
			{	/* Unsafe/bignumber.scm 1209 */
				obj_t BgL_auxz00_8317;
				obj_t BgL_auxz00_8310;

				if (BIGNUMP(BgL_yz00_5590))
					{	/* Unsafe/bignumber.scm 1209 */
						BgL_auxz00_8317 = BgL_yz00_5590;
					}
				else
					{
						obj_t BgL_auxz00_8320;

						BgL_auxz00_8320 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39238L), BGl_string2545z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5590);
						FAILURE(BgL_auxz00_8320, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5589))
					{	/* Unsafe/bignumber.scm 1209 */
						BgL_auxz00_8310 = BgL_xz00_5589;
					}
				else
					{
						obj_t BgL_auxz00_8313;

						BgL_auxz00_8313 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39238L), BGl_string2545z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5589);
						FAILURE(BgL_auxz00_8313, BFALSE, BFALSE);
					}
				return bgl_bignum_or(BgL_auxz00_8310, BgL_auxz00_8317);
			}
		}

	}



/* $$bitxorbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_xor(obj_t BgL_xz00_118, obj_t BgL_yz00_119)
	{
		{	/* Unsafe/bignumber.scm 1211 */
			return
				BGl_errorz00zz__errorz00(BGl_string2546z00zz__bignumz00,
				BGl_string2542z00zz__bignumz00, BgL_xz00_118);
		}

	}



/* &$$bitxorbx */
	obj_t BGl_z62z42z42bitxorbxz62zz__bignumz00(obj_t BgL_envz00_5591,
		obj_t BgL_xz00_5592, obj_t BgL_yz00_5593)
	{
		{	/* Unsafe/bignumber.scm 1211 */
			{	/* Unsafe/bignumber.scm 1212 */
				obj_t BgL_auxz00_8333;
				obj_t BgL_auxz00_8326;

				if (BIGNUMP(BgL_yz00_5593))
					{	/* Unsafe/bignumber.scm 1212 */
						BgL_auxz00_8333 = BgL_yz00_5593;
					}
				else
					{
						obj_t BgL_auxz00_8336;

						BgL_auxz00_8336 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39306L), BGl_string2547z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5593);
						FAILURE(BgL_auxz00_8336, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5592))
					{	/* Unsafe/bignumber.scm 1212 */
						BgL_auxz00_8326 = BgL_xz00_5592;
					}
				else
					{
						obj_t BgL_auxz00_8329;

						BgL_auxz00_8329 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39306L), BGl_string2547z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5592);
						FAILURE(BgL_auxz00_8329, BFALSE, BFALSE);
					}
				return bgl_bignum_xor(BgL_auxz00_8326, BgL_auxz00_8333);
			}
		}

	}



/* $$bitandbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_and(obj_t BgL_xz00_120, obj_t BgL_yz00_121)
	{
		{	/* Unsafe/bignumber.scm 1214 */
			return
				BGl_errorz00zz__errorz00(BGl_string2548z00zz__bignumz00,
				BGl_string2542z00zz__bignumz00, BgL_xz00_120);
		}

	}



/* &$$bitandbx */
	obj_t BGl_z62z42z42bitandbxz62zz__bignumz00(obj_t BgL_envz00_5594,
		obj_t BgL_xz00_5595, obj_t BgL_yz00_5596)
	{
		{	/* Unsafe/bignumber.scm 1214 */
			{	/* Unsafe/bignumber.scm 1215 */
				obj_t BgL_auxz00_8349;
				obj_t BgL_auxz00_8342;

				if (BIGNUMP(BgL_yz00_5596))
					{	/* Unsafe/bignumber.scm 1215 */
						BgL_auxz00_8349 = BgL_yz00_5596;
					}
				else
					{
						obj_t BgL_auxz00_8352;

						BgL_auxz00_8352 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39375L), BGl_string2549z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_yz00_5596);
						FAILURE(BgL_auxz00_8352, BFALSE, BFALSE);
					}
				if (BIGNUMP(BgL_xz00_5595))
					{	/* Unsafe/bignumber.scm 1215 */
						BgL_auxz00_8342 = BgL_xz00_5595;
					}
				else
					{
						obj_t BgL_auxz00_8345;

						BgL_auxz00_8345 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39375L), BGl_string2549z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5595);
						FAILURE(BgL_auxz00_8345, BFALSE, BFALSE);
					}
				return bgl_bignum_and(BgL_auxz00_8342, BgL_auxz00_8349);
			}
		}

	}



/* $$bitnotbx */
	BGL_EXPORTED_DEF obj_t bgl_bignum_not(obj_t BgL_xz00_122)
	{
		{	/* Unsafe/bignumber.scm 1217 */
			return
				BGl_errorz00zz__errorz00(BGl_string2550z00zz__bignumz00,
				BGl_string2542z00zz__bignumz00, BgL_xz00_122);
		}

	}



/* &$$bitnotbx */
	obj_t BGl_z62z42z42bitnotbxz62zz__bignumz00(obj_t BgL_envz00_5597,
		obj_t BgL_xz00_5598)
	{
		{	/* Unsafe/bignumber.scm 1217 */
			{	/* Unsafe/bignumber.scm 1218 */
				obj_t BgL_auxz00_8358;

				if (BIGNUMP(BgL_xz00_5598))
					{	/* Unsafe/bignumber.scm 1218 */
						BgL_auxz00_8358 = BgL_xz00_5598;
					}
				else
					{
						obj_t BgL_auxz00_8361;

						BgL_auxz00_8361 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string2486z00zz__bignumz00,
							BINT(39442L), BGl_string2551z00zz__bignumz00,
							BGl_string2500z00zz__bignumz00, BgL_xz00_5598);
						FAILURE(BgL_auxz00_8361, BFALSE, BFALSE);
					}
				return bgl_bignum_not(BgL_auxz00_8358);
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 45 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 45 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 45 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__bignumz00(void)
	{
		{	/* Unsafe/bignumber.scm 45 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string2552z00zz__bignumz00));
			BGl_modulezd2initializa7ationz75zz__objectz00(475449627L,
				BSTRING_TO_STRING(BGl_string2552z00zz__bignumz00));
			BGl_modulezd2initializa7ationz75zz__threadz00(149516032L,
				BSTRING_TO_STRING(BGl_string2552z00zz__bignumz00));
			return
				BGl_modulezd2initializa7ationz75zz__paramz00(453939141L,
				BSTRING_TO_STRING(BGl_string2552z00zz__bignumz00));
		}

	}

#ifdef __cplusplus
}
#endif
#endif
