SIGHUP and SIGTERM -> exn:break:hang-up' and exn:break:terminate'

The default uncaught-exception handler calls `exit' when it receives
one of the new exceptions.
This commit is contained in:
Matthew Flatt 2012-08-13 15:23:00 -06:00
parent 0648556bea
commit b043da6ea6
23 changed files with 578 additions and 1312 deletions

View File

@ -21,7 +21,7 @@
place-sleep place-sleep
place-wait place-wait
place-kill place-kill
place-break (rename-out [place-break/opt place-break])
place-channel place-channel
place-channel-put place-channel-put
place-channel-get place-channel-get
@ -59,7 +59,7 @@
(define-pl-func place-sleep p) (define-pl-func place-sleep p)
(define-pl-func place-wait p) (define-pl-func place-wait p)
(define-pl-func place-kill p) (define-pl-func place-kill p)
(define-pl-func place-break p) (define-pl-func place-break p kind)
(define-pl-func place-channel-put p msg) (define-pl-func place-channel-put p msg)
(define-pl-func place-channel-get p) (define-pl-func place-channel-get p)
(define-pl-func place-channel? p) (define-pl-func place-channel? p)
@ -67,6 +67,10 @@
(define-pl-func place-message-allowed? p) (define-pl-func place-message-allowed? p)
(define-pl-func place-dead-evt p) (define-pl-func place-dead-evt p)
(define place-break/opt
(let ([place-break (lambda (p [kind #f]) (place-break p kind))])
place-break))
(define (pump-place p pin pout perr in out err) (define (pump-place p pin pout perr in out err)
(cond (cond
[(pl-place-enabled?) [(pl-place-enabled?)

View File

@ -60,7 +60,7 @@
(define (th-place-sleep n) (sleep n)) (define (th-place-sleep n) (sleep n))
(define (th-place-wait pl) (thread-wait (TH-place-th pl)) 0) (define (th-place-wait pl) (thread-wait (TH-place-th pl)) 0)
(define (th-place-kill pl) (custodian-shutdown-all (TH-place-cust pl))) (define (th-place-kill pl) (custodian-shutdown-all (TH-place-cust pl)))
(define (th-place-break pl) (break-thread (TH-place-th pl))) (define (th-place-break pl kind) (break-thread (TH-place-th pl) kind))
(define (th-place-dead-evt pl) (thread-dead-evt (TH-place-th pl))) (define (th-place-dead-evt pl) (thread-dead-evt (TH-place-th pl)))
(define (th-place-channel) (define (th-place-channel)
(define-values (as ar) (make-th-async-channel)) (define-values (as ar) (make-th-async-channel))

View File

@ -402,6 +402,41 @@
'(#f #f #f) '(#f #f #f)
(quote-syntax exn))) (quote-syntax exn)))
(λ () (quote-syntax kernel:exn:break))))) (λ () (quote-syntax kernel:exn:break)))))
(begin
(#%require
(rename '#%kernel kernel:exn:break:terminate exn:break:terminate))
(define make-exn:break:terminate kernel:exn:break:terminate)
(define-syntax exn:break:terminate
(make-self-ctr-struct-info
(λ ()
(list
(quote-syntax struct:exn:break:terminate)
(quote-syntax make-exn:break:terminate)
(quote-syntax exn:break:terminate?)
(list
(quote-syntax exn:break-continuation)
(quote-syntax exn-continuation-marks)
(quote-syntax exn-message))
'(#f #f #f)
(quote-syntax exn:break)))
(λ () (quote-syntax kernel:exn:break:terminate)))))
(begin
(#%require (rename '#%kernel kernel:exn:break:hang-up exn:break:hang-up))
(define make-exn:break:hang-up kernel:exn:break:hang-up)
(define-syntax exn:break:hang-up
(make-self-ctr-struct-info
(λ ()
(list
(quote-syntax struct:exn:break:hang-up)
(quote-syntax make-exn:break:hang-up)
(quote-syntax exn:break:hang-up?)
(list
(quote-syntax exn:break-continuation)
(quote-syntax exn-continuation-marks)
(quote-syntax exn-message))
'(#f #f #f)
(quote-syntax exn:break)))
(λ () (quote-syntax kernel:exn:break:hang-up)))))
(begin (begin
(#%require (rename '#%kernel kernel:arity-at-least arity-at-least)) (#%require (rename '#%kernel kernel:arity-at-least arity-at-least))
(define make-arity-at-least kernel:arity-at-least) (define make-arity-at-least kernel:arity-at-least)

View File

@ -7,15 +7,28 @@
A @deftech{break} is an asynchronous exception, usually triggered A @deftech{break} is an asynchronous exception, usually triggered
through an external source controlled by the user, or through the through an external source controlled by the user, or through the
@racket[break-thread] procedure. A break exception can only occur in a @racket[break-thread] procedure. For example, the user may type Ctl-C
in a terminal to trigger a break. On some platforms, the Racket
process may receive @as-index{@tt{SIGINT}}, @as-index{@tt{SIGHUP}},
or @as-index{@tt{SIGTERM}}; the latter two correspond to hang-up and
terminate breaks as reflected by @racket[exn:break:hang-up] and
@racket[exn:break:terminate], respectively. Multiple breaks may be
collapsed into a single exception, and multiple breaks of different
kinds may be collapsed to a single ``strongest'' break, where a
hang-up break is stronger than a interrupt break, and a terminate
break is stronger than a hang-up break.
A break exception can only occur in a
thread while breaks are enabled. When a break is detected and enabled, thread while breaks are enabled. When a break is detected and enabled,
the @exnraise[exn:break] in the thread sometime afterward; if breaking the @racket[exn:break] (or @racket[exn:break:hang-up] or
@racket[exn:break:terminate]) exception is raised
in the thread sometime afterward; if breaking
is disabled when @racket[break-thread] is called, the break is is disabled when @racket[break-thread] is called, the break is
suspended until breaking is again enabled for the thread. While a suspended until breaking is again enabled for the thread. While a
thread has a suspended break, additional breaks are ignored. thread has a suspended break, additional breaks are ignored.
Breaks are enabled through the @racket[break-enabled] parameter-like Breaks are enabled through the @racket[break-enabled] parameter-like
procedure, and through the @racket[parameterize-break] form, which is procedure and through the @racket[parameterize-break] form, which is
analogous to @racket[parameterize]. The @racket[break-enabled] analogous to @racket[parameterize]. The @racket[break-enabled]
procedure does not represent a parameter to be used with procedure does not represent a parameter to be used with
@racket[parameterize], because changing the break-enabled state of a @racket[parameterize], because changing the break-enabled state of a

View File

@ -406,8 +406,12 @@ it returns, an exception is raised (to be handled by an exception
handler that reports both the original and newly raised exception). handler that reports both the original and newly raised exception).
The default uncaught-exception handler prints an error message using The default uncaught-exception handler prints an error message using
the current @tech{error display handler} (see @racket[error-display-handler]) the current @tech{error display handler} (see @racket[error-display-handler]).
and then escapes by calling the current @tech{error escape handler} (see If the argument to the handler is an instance of @racket[exn:break:hang-up]
or @racket[exn:break:terminate], the default uncaught-exception handler
then calls the @tech{exit handler} with @racket[1], which normally exits
or escapes. For any argument, the default uncaught-exception handler
then escapes by calling the current @tech{error escape handler} (see
@racket[error-escape-handler]). The call to each handler is @racket[error-escape-handler]). The call to each handler is
@racket[parameterize]d to set @racket[error-display-handler] to the @racket[parameterize]d to set @racket[error-display-handler] to the
default @tech{error display handler}, and it is @racket[parameterize-break]ed default @tech{error display handler}, and it is @racket[parameterize-break]ed
@ -699,6 +703,20 @@ Raised asynchronously (when enabled) in response to a break request.
The @racket[continuation] field can be used by a handler to resume the The @racket[continuation] field can be used by a handler to resume the
interrupted computation.} interrupted computation.}
@defstruct[(exn:break:hang-up exn:break) ()
#:inspector #f]{
Raised asynchronously for hang-up breaks. The default
@tech{uncaught-exception handler} reacts to this exception type by
calling the @tech{exit handler}.}
@defstruct[(exn:break:terminate exn:break) ()
#:inspector #f]{
Raised asynchronously for termination-request breaks. The default
@tech{uncaught-exception handler} reacts to this exception type by
calling the @tech{exit handler}.}
@defthing[prop:exn:srclocs struct-type-property?]{ @defthing[prop:exn:srclocs struct-type-property?]{

View File

@ -251,8 +251,10 @@ If any pumping threads were created to connect a non-@tech{file-stream
completion value already.} completion value already.}
@defproc[(place-break [p place?]) void?]{ @defproc[(place-break [p place?]
Sends place @racket[p] a break signal; see @secref["breakhandler"]. [kind (or/c #f 'hang-up 'terminate) #f])
void?]{
Sends the main thread of place @racket[p] a break; see @secref["breakhandler"].
} }

View File

@ -158,10 +158,13 @@ threads. For example, if a thread is killed while extracting a
character from an input port, the character is either completely character from an input port, the character is either completely
consumed or not consumed, and other threads can safely use the port.} consumed or not consumed, and other threads can safely use the port.}
@defproc[(break-thread [thd thread?]) void?]{ @defproc[(break-thread [thd thread?]
[kind (or/c #f 'hang-up 'terminate) #f])
void?]{
@index['("threads" "breaking")]{Registers} a break with the specified @index['("threads" "breaking")]{Registers} a break with the specified
thread. If breaking is disabled in @racket[thd], the break will be thread, where @racket[kind] optionally indicates the kind of break to
register. If breaking is disabled in @racket[thd], the break will be
ignored until breaks are re-enabled (see @secref["breakhandler"]).} ignored until breaks are re-enabled (see @secref["breakhandler"]).}
@defproc[(sleep [secs (>=/c 0) 0]) void?]{ @defproc[(sleep [secs (>=/c 0) 0]) void?]{

View File

@ -61,7 +61,9 @@
(mkp "exn:fail:out-of-memory") (mkp "exn:fail:out-of-memory")
(mkp "exn:fail:unsupported") (mkp "exn:fail:unsupported")
(mkp "exn:fail:user") (mkp "exn:fail:user")
(mkp "exn:break")))]) (mkp "exn:break")
(mkp "exn:break:hang-up")
(mkp "exn:break:terminate")))])
(test #t 'names (test #t 'names
(andmap (andmap
(lambda (nv-pair) (lambda (nv-pair)

View File

@ -363,16 +363,26 @@
(place-wait pl)) (place-wait pl))
; test place-break ; test place-break
(let ([p (place ch (let ()
(with-handlers ([exn:break? (lambda (x) (place-channel-put ch "OK"))]) (define (go kind)
(place-channel-put ch "ALIVE") (let ([p (place ch
(sync never-evt) (define kind (place-channel-get ch))
(place-channel-put ch "NOK")))]) (with-handlers ([(case kind
[(hang-up) exn:break:hang-up?]
(test "ALIVE" place-channel-get p) [(terminate) exn:break:terminate?]
(place-break p) [else exn:break?])
(test "OK" place-channel-get p) (lambda (x) (place-channel-put ch "OK"))])
(place-wait p)) (place-channel-put ch "ALIVE")
(sync never-evt)
(place-channel-put ch "NOK")))])
(place-channel-put p kind)
(test "ALIVE" place-channel-get p)
(place-break p kind)
(test "OK" place-channel-get p)
(place-wait p)))
(go #f)
(go 'hang-up)
(go 'terminate))
; test place-dead-evt ; test place-dead-evt
(define wbs '()) (define wbs '())

View File

@ -187,8 +187,43 @@
(arity-test kill-thread 1 1) (arity-test kill-thread 1 1)
(err/rt-test (kill-thread 5) type?) (err/rt-test (kill-thread 5) type?)
(arity-test break-thread 1 1) (arity-test break-thread 1 2)
(err/rt-test (break-thread 5) type?) (err/rt-test (break-thread 5) type?)
(err/rt-test (break-thread (current-thread) 5) type?)
(err/rt-test (break-thread (current-thread)) exn:break?)
(err/rt-test (break-thread (current-thread) 'hang-up) exn:break:hang-up?)
(err/rt-test (break-thread (current-thread) 'terminate) exn:break:terminate?)
(let ([ex? #f]
[s (make-semaphore)])
(define (go)
(exit-handler (lambda (exn)
(set! ex? #t)
(kill-thread (current-thread))))
(error-display-handler void)
(semaphore-post s)
(sync (make-semaphore)))
(define t1 (thread go))
(semaphore-wait s)
(test (void) break-thread t1)
(sync t1)
(test #f values ex?)
(define t2 (thread go))
(semaphore-wait s)
(test (void) break-thread t2 'hang-up)
(sync t2)
(test #t values ex?)
(set! ex? #f)
(define t3 (thread go))
(semaphore-wait s)
(test (void) break-thread t3 'terminate)
(sync t3)
(test #t values ex?)
(set! ex? #f))
(arity-test thread-wait 1 1) (arity-test thread-wait 1 1)
(err/rt-test (thread-wait 5) type?) (err/rt-test (thread-wait 5) type?)

View File

@ -1,3 +1,8 @@
Version 5.3.0.20
Added exn:break:hang-up and exn:break:terminate, added
extra argument to break-thread and place-break, and
redirect SIGTERM and SIGHUP as breaks
Version 5.3.0.16 Version 5.3.0.16
scribble/base: add items/c scribble/base: add items/c
scribble/decode: add spliceof scribble/decode: add spliceof

View File

@ -195,6 +195,7 @@ static void *signal_handle;
# ifndef NO_USER_BREAK_HANDLER # ifndef NO_USER_BREAK_HANDLER
static void user_break_hit(int ignore) static void user_break_hit(int ignore)
XFORM_SKIP_PROC
{ {
scheme_break_main_thread_at(break_handle); scheme_break_main_thread_at(break_handle);
scheme_signal_received_at(signal_handle); scheme_signal_received_at(signal_handle);
@ -202,13 +203,33 @@ static void user_break_hit(int ignore)
# ifdef SIGSET_NEEDS_REINSTALL # ifdef SIGSET_NEEDS_REINSTALL
MZ_SIGSET(SIGINT, user_break_hit); MZ_SIGSET(SIGINT, user_break_hit);
# endif # endif
# ifdef MZ_PRECISE_GC }
# ifndef GC_STACK_CALLEE_RESTORE
/* Restore variable stack. */ # ifndef NO_SIGTERM_HANDLER
GC_variable_stack = (void **)__gc_var_stack__[0]; static void term_hit(int ignore)
# endif XFORM_SKIP_PROC
{
scheme_break_kind_main_thread_at(break_handle, MZEXN_BREAK_TERMINATE);
scheme_signal_received_at(signal_handle);
# ifdef SIGSET_NEEDS_REINSTALL
MZ_SIGSET(SIGTERM, term_hit);
# endif # endif
} }
# endif
# ifndef NO_SIGHUP_HANDLER
static void hup_hit(int ignore)
XFORM_SKIP_PROC
{
scheme_break_kind_main_thread_at(break_handle, MZEXN_BREAK_HANG_UP);
scheme_signal_received_at(signal_handle);
# ifdef SIGSET_NEEDS_REINSTALL
MZ_SIGSET(SIGHUP, hup_hit);
# endif
}
# endif
# endif # endif
@ -352,6 +373,12 @@ static int main_after_stack(void *data)
signal_handle = scheme_get_signal_handle(); signal_handle = scheme_get_signal_handle();
# ifndef NO_USER_BREAK_HANDLER # ifndef NO_USER_BREAK_HANDLER
MZ_SIGSET(SIGINT, user_break_hit); MZ_SIGSET(SIGINT, user_break_hit);
# ifndef NO_SIGTERM_HANDLER
MZ_SIGSET(SIGTERM, term_hit);
# endif
# ifndef NO_SIGHUP_HANDLER
MZ_SIGSET(SIGHUP, hup_hit);
# endif
# endif # endif
# ifdef DOS_FILE_SYSTEM # ifdef DOS_FILE_SYSTEM
SetConsoleCtrlHandler(ConsoleBreakHandler, TRUE); SetConsoleCtrlHandler(ConsoleBreakHandler, TRUE);

View File

@ -595,6 +595,7 @@
# define SIGSET_IS_SIGNAL # define SIGSET_IS_SIGNAL
# define SIGSET_NEEDS_REINSTALL # define SIGSET_NEEDS_REINSTALL
# define NO_SIGHUP_HANDLER
#define USE_WINSOCK_TCP #define USE_WINSOCK_TCP
@ -1499,7 +1500,12 @@
/* NO_INLINE_KEYWORD indicates that the C compiler doesn't recognize /* NO_INLINE_KEYWORD indicates that the C compiler doesn't recognize
C's `inline' keyword. */ C's `inline' keyword. */
/* NO_USER_BREAK_HANDLER turns off handling of INT signal in main.c */ /* NO_USER_BREAK_HANDLER turns off handling of SIGINT, SIGTERM, and
SIGHUP in main.c */
/* NO_SIGTERM_HANDLER turns off handling of SIGTERM in main.c */
/* NO_SIGHUP_HANDLER turns off handling of SIGHUP in main.c */
/* DIR_INCLUDE if there's a <dir.h> file (mainly for Windows). */ /* DIR_INCLUDE if there's a <dir.h> file (mainly for Windows). */

View File

@ -1,15 +1,15 @@
{ {
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,56,84,0,0,0,0,0,0,0,0,0, SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,50,48,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,51,0,0,0,1,0,0,10,0,14, 0,0,0,0,0,0,0,0,0,0,0,51,0,0,0,1,0,0,10,0,14,
0,19,0,26,0,29,0,36,0,43,0,47,0,60,0,65,0,69,0,74,0, 0,21,0,34,0,39,0,43,0,46,0,51,0,58,0,62,0,67,0,74,0,
83,0,87,0,93,0,107,0,121,0,124,0,130,0,134,0,136,0,147,0,149, 83,0,87,0,93,0,107,0,121,0,124,0,130,0,134,0,136,0,147,0,149,
0,163,0,170,0,192,0,194,0,208,0,19,1,48,1,59,1,70,1,96,1, 0,163,0,170,0,192,0,194,0,208,0,19,1,48,1,59,1,70,1,96,1,
129,1,162,1,221,1,21,2,99,2,155,2,160,2,180,2,73,3,93,3,145, 129,1,162,1,221,1,21,2,99,2,155,2,160,2,180,2,73,3,93,3,145,
3,211,3,100,4,242,4,40,5,51,5,130,5,0,0,92,7,0,0,69,35, 3,211,3,100,4,242,4,40,5,51,5,130,5,0,0,92,7,0,0,69,35,
37,109,105,110,45,115,116,120,29,11,11,11,64,99,111,110,100,66,108,101,116, 37,109,105,110,45,115,116,120,29,11,11,11,66,108,101,116,114,101,99,72,112,
114,101,99,62,111,114,66,117,110,108,101,115,115,66,100,101,102,105,110,101,63, 97,114,97,109,101,116,101,114,105,122,101,64,108,101,116,42,63,97,110,100,62,
97,110,100,72,112,97,114,97,109,101,116,101,114,105,122,101,64,108,101,116,42, 111,114,64,119,104,101,110,66,100,101,102,105,110,101,63,108,101,116,64,99,111,
63,108,101,116,64,119,104,101,110,68,104,101,114,101,45,115,116,120,29,11,11, 110,100,66,117,110,108,101,115,115,68,104,101,114,101,45,115,116,120,29,11,11,
11,65,113,117,111,116,101,29,94,2,15,68,35,37,107,101,114,110,101,108,11, 11,65,113,117,111,116,101,29,94,2,15,68,35,37,107,101,114,110,101,108,11,
29,94,2,15,68,35,37,112,97,114,97,109,122,11,62,105,102,65,98,101,103, 29,94,2,15,68,35,37,112,97,114,97,109,122,11,62,105,102,65,98,101,103,
105,110,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,115,61,120, 105,110,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,115,61,120,
@ -17,8 +17,8 @@
1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101, 1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,
121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,97,36,11,8, 121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,97,36,11,8,
240,146,86,0,0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36, 240,146,86,0,0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36,
16,20,2,10,2,2,2,3,2,2,2,5,2,2,2,6,2,2,2,7,2, 16,20,2,3,2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,
2,2,8,2,2,2,9,2,2,2,4,2,2,2,11,2,2,2,12,2,2, 2,2,8,2,2,2,9,2,2,2,10,2,2,2,11,2,2,2,12,2,2,
97,37,11,8,240,146,86,0,0,93,159,2,16,36,37,16,2,2,13,161,2, 97,37,11,8,240,146,86,0,0,93,159,2,16,36,37,16,2,2,13,161,2,
2,37,2,13,2,2,2,13,96,11,11,8,240,146,86,0,0,16,0,96,38, 2,37,2,13,2,2,2,13,96,11,11,8,240,146,86,0,0,16,0,96,38,
11,8,240,146,86,0,0,16,0,18,98,64,104,101,114,101,13,16,6,36,2, 11,8,240,146,86,0,0,16,0,18,98,64,104,101,114,101,13,16,6,36,2,
@ -28,13 +28,13 @@
89,2,18,248,22,104,199,249,22,79,2,19,248,22,106,201,12,27,248,22,81, 89,2,18,248,22,104,199,249,22,79,2,19,248,22,106,201,12,27,248,22,81,
248,22,163,4,196,28,248,22,87,193,20,14,159,37,36,37,28,248,22,87,248, 248,22,163,4,196,28,248,22,87,193,20,14,159,37,36,37,28,248,22,87,248,
22,81,194,248,22,80,193,249,22,156,4,80,158,39,36,251,22,89,2,18,248, 22,81,194,248,22,80,193,249,22,156,4,80,158,39,36,251,22,89,2,18,248,
22,80,199,249,22,79,2,8,248,22,81,201,11,18,100,10,13,16,6,36,2, 22,80,199,249,22,79,2,6,248,22,81,201,11,18,100,10,13,16,6,36,2,
14,2,2,11,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2,20,3, 14,2,2,11,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2,20,3,
1,8,101,110,118,49,54,57,51,56,16,4,11,11,2,21,3,1,8,101,110, 1,8,101,110,118,49,54,57,51,56,16,4,11,11,2,21,3,1,8,101,110,
118,49,54,57,51,57,27,248,22,81,248,22,163,4,196,28,248,22,87,193,20, 118,49,54,57,51,57,27,248,22,81,248,22,163,4,196,28,248,22,87,193,20,
14,159,37,36,37,28,248,22,87,248,22,81,194,248,22,80,193,249,22,156,4, 14,159,37,36,37,28,248,22,87,248,22,81,194,248,22,80,193,249,22,156,4,
80,158,39,36,250,22,89,2,22,248,22,89,249,22,89,248,22,89,2,23,248, 80,158,39,36,250,22,89,2,22,248,22,89,249,22,89,248,22,89,2,23,248,
22,80,201,251,22,89,2,18,2,23,2,23,249,22,79,2,5,248,22,81,204, 22,80,201,251,22,89,2,18,2,23,2,23,249,22,79,2,7,248,22,81,204,
18,100,11,13,16,6,36,2,14,2,2,11,11,11,8,32,8,31,8,30,8, 18,100,11,13,16,6,36,2,14,2,2,11,11,11,8,32,8,31,8,30,8,
29,16,4,11,11,2,20,3,1,8,101,110,118,49,54,57,52,49,16,4,11, 29,16,4,11,11,2,20,3,1,8,101,110,118,49,54,57,52,49,16,4,11,
11,2,21,3,1,8,101,110,118,49,54,57,52,50,248,22,163,4,193,27,248, 11,2,21,3,1,8,101,110,118,49,54,57,52,50,248,22,163,4,193,27,248,
@ -51,8 +51,8 @@
24,249,22,2,32,0,88,163,8,36,37,47,11,9,222,33,43,248,22,163,4, 24,249,22,2,32,0,88,163,8,36,37,47,11,9,222,33,43,248,22,163,4,
248,22,80,201,248,22,81,198,27,248,22,81,248,22,163,4,196,27,248,22,163, 248,22,80,201,248,22,81,198,27,248,22,81,248,22,163,4,196,27,248,22,163,
4,248,22,80,195,249,22,156,4,80,158,40,36,28,248,22,87,195,250,22,90, 4,248,22,80,195,249,22,156,4,80,158,40,36,28,248,22,87,195,250,22,90,
2,22,9,248,22,81,199,250,22,89,2,11,248,22,89,248,22,80,199,250,22, 2,22,9,248,22,81,199,250,22,89,2,10,248,22,89,248,22,80,199,250,22,
90,2,10,248,22,81,201,248,22,81,202,27,248,22,81,248,22,163,4,23,197, 90,2,5,248,22,81,201,248,22,81,202,27,248,22,81,248,22,163,4,23,197,
1,27,249,22,1,22,93,249,22,2,22,163,4,248,22,163,4,248,22,80,199, 1,27,249,22,1,22,93,249,22,2,22,163,4,248,22,163,4,248,22,80,199,
248,22,183,4,249,22,156,4,80,158,41,36,251,22,89,1,22,119,105,116,104, 248,22,183,4,249,22,156,4,80,158,41,36,251,22,89,1,22,119,105,116,104,
45,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,2,26,250, 45,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,2,26,250,
@ -63,9 +63,9 @@
87,193,20,14,159,37,36,37,249,22,156,4,80,158,39,36,27,248,22,163,4, 87,193,20,14,159,37,36,37,249,22,156,4,80,158,39,36,27,248,22,163,4,
248,22,80,197,28,249,22,151,9,62,61,62,248,22,157,4,248,22,104,196,250, 248,22,80,197,28,249,22,151,9,62,61,62,248,22,157,4,248,22,104,196,250,
22,89,2,22,248,22,89,249,22,89,21,93,2,27,248,22,80,199,250,22,90, 22,89,2,22,248,22,89,249,22,89,21,93,2,27,248,22,80,199,250,22,90,
2,3,249,22,89,2,27,249,22,89,248,22,113,203,2,27,248,22,81,202,251, 2,11,249,22,89,2,27,249,22,89,248,22,113,203,2,27,248,22,81,202,251,
22,89,2,18,28,249,22,151,9,248,22,157,4,248,22,80,200,64,101,108,115, 22,89,2,18,28,249,22,151,9,248,22,157,4,248,22,80,200,64,101,108,115,
101,10,248,22,80,197,250,22,90,2,22,9,248,22,81,200,249,22,79,2,3, 101,10,248,22,80,197,250,22,90,2,22,9,248,22,81,200,249,22,79,2,11,
248,22,81,202,99,13,16,6,36,2,14,2,2,11,11,11,8,32,8,31,8, 248,22,81,202,99,13,16,6,36,2,14,2,2,11,11,11,8,32,8,31,8,
30,8,29,16,4,11,11,2,20,3,1,8,101,110,118,49,54,57,54,52,16, 30,8,29,16,4,11,11,2,20,3,1,8,101,110,118,49,54,57,54,52,16,
4,11,11,2,21,3,1,8,101,110,118,49,54,57,54,53,18,158,94,10,64, 4,11,11,2,21,3,1,8,101,110,118,49,54,57,54,53,18,158,94,10,64,
@ -81,25 +81,25 @@
2,11,2,12,36,46,37,16,0,36,16,1,2,13,37,11,11,11,16,0,16, 2,11,2,12,36,46,37,16,0,36,16,1,2,13,37,11,11,11,16,0,16,
0,16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,11,16,5, 0,16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,11,16,5,
11,20,15,16,2,20,14,159,36,36,37,80,158,36,36,36,20,113,159,36,16, 11,20,15,16,2,20,14,159,36,36,37,80,158,36,36,36,20,113,159,36,16,
1,2,13,16,1,33,33,10,16,5,2,6,88,163,8,36,37,53,37,9,223, 1,2,13,16,1,33,33,10,16,5,2,12,88,163,8,36,37,53,37,9,223,
0,33,34,36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,12,88,163, 0,33,34,36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,8,88,163,
8,36,37,53,37,9,223,0,33,35,36,20,113,159,36,16,1,2,13,16,0, 8,36,37,53,37,9,223,0,33,35,36,20,113,159,36,16,1,2,13,16,0,
11,16,5,2,8,88,163,8,36,37,53,37,9,223,0,33,36,36,20,113,159, 11,16,5,2,6,88,163,8,36,37,53,37,9,223,0,33,36,36,20,113,159,
36,16,1,2,13,16,1,33,37,11,16,5,2,5,88,163,8,36,37,56,37, 36,16,1,2,13,16,1,33,37,11,16,5,2,7,88,163,8,36,37,56,37,
9,223,0,33,38,36,20,113,159,36,16,1,2,13,16,1,33,39,11,16,5, 9,223,0,33,38,36,20,113,159,36,16,1,2,13,16,1,33,39,11,16,5,
2,11,88,163,8,36,37,58,37,9,223,0,33,42,36,20,113,159,36,16,1, 2,10,88,163,8,36,37,58,37,9,223,0,33,42,36,20,113,159,36,16,1,
2,13,16,0,11,16,5,2,4,88,163,8,36,37,53,37,9,223,0,33,44, 2,13,16,0,11,16,5,2,3,88,163,8,36,37,53,37,9,223,0,33,44,
36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,10,88,163,8,36,37, 36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,5,88,163,8,36,37,
54,37,9,223,0,33,45,36,20,113,159,36,16,1,2,13,16,0,11,16,5, 54,37,9,223,0,33,45,36,20,113,159,36,16,1,2,13,16,0,11,16,5,
2,9,88,163,8,36,37,56,37,9,223,0,33,46,36,20,113,159,36,16,1, 2,4,88,163,8,36,37,56,37,9,223,0,33,46,36,20,113,159,36,16,1,
2,13,16,0,11,16,5,2,3,88,163,8,36,37,58,37,9,223,0,33,47, 2,13,16,0,11,16,5,2,11,88,163,8,36,37,58,37,9,223,0,33,47,
36,20,113,159,36,16,1,2,13,16,1,33,49,11,16,5,2,7,88,163,8, 36,20,113,159,36,16,1,2,13,16,1,33,49,11,16,5,2,9,88,163,8,
36,37,54,37,9,223,0,33,50,36,20,113,159,36,16,1,2,13,16,0,11, 36,37,54,37,9,223,0,33,50,36,20,113,159,36,16,1,2,13,16,0,11,
16,0,94,2,16,2,17,93,2,16,9,9,36,0}; 16,0,94,2,16,2,17,93,2,16,9,9,36,0};
EVAL_ONE_SIZED_STR((char *)expr, 2029); EVAL_ONE_SIZED_STR((char *)expr, 2029);
} }
{ {
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,56,84,0,0,0,0,0,0,0,0,0, SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,50,48,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,115,0,0,0,1,0,0,8,0,21, 0,0,0,0,0,0,0,0,0,0,0,115,0,0,0,1,0,0,8,0,21,
0,26,0,43,0,65,0,94,0,109,0,127,0,139,0,155,0,169,0,191,0, 0,26,0,43,0,65,0,94,0,109,0,127,0,139,0,155,0,169,0,191,0,
207,0,224,0,246,0,1,1,7,1,16,1,23,1,30,1,42,1,58,1,82, 207,0,224,0,246,0,1,1,7,1,16,1,23,1,30,1,42,1,58,1,82,
@ -151,171 +151,171 @@
105,120,32,116,111,32,97,32,114,111,111,116,32,112,97,116,104,58,32,6,11, 105,120,32,116,111,32,97,32,114,111,111,116,32,112,97,116,104,58,32,6,11,
11,80,76,84,67,79,76,76,69,67,84,83,69,97,100,100,111,110,45,100,105, 11,80,76,84,67,79,76,76,69,67,84,83,69,97,100,100,111,110,45,100,105,
114,6,8,8,99,111,108,108,101,99,116,115,27,20,13,159,80,159,37,52,37, 114,6,8,8,99,111,108,108,101,99,116,115,27,20,13,159,80,159,37,52,37,
254,80,159,44,53,37,249,22,33,11,80,159,46,52,37,22,151,14,10,22,158, 254,80,159,44,53,37,249,22,33,11,80,159,46,52,37,22,157,14,10,22,164,
14,10,22,159,14,10,248,22,139,6,23,196,2,28,248,22,136,7,23,194,2, 14,10,22,165,14,10,248,22,139,6,23,196,2,28,248,22,136,7,23,194,2,
12,86,94,248,22,159,9,23,194,1,27,20,13,159,80,159,38,52,37,254,80, 12,86,94,248,22,159,9,23,194,1,27,20,13,159,80,159,38,52,37,254,80,
159,45,53,37,249,22,33,11,80,159,47,52,37,22,151,14,10,22,158,14,10, 159,45,53,37,249,22,33,11,80,159,47,52,37,22,157,14,10,22,164,14,10,
22,159,14,10,248,22,139,6,23,197,2,28,248,22,136,7,23,194,2,12,86, 22,165,14,10,248,22,139,6,23,197,2,28,248,22,136,7,23,194,2,12,86,
94,248,22,159,9,23,194,1,27,20,13,159,80,159,39,52,37,254,80,159,46, 94,248,22,159,9,23,194,1,27,20,13,159,80,159,39,52,37,254,80,159,46,
53,37,249,22,33,11,80,159,48,52,37,22,151,14,10,22,158,14,10,22,159, 53,37,249,22,33,11,80,159,48,52,37,22,157,14,10,22,164,14,10,22,165,
14,10,248,22,139,6,23,198,2,28,248,22,136,7,23,194,2,12,86,94,248, 14,10,248,22,139,6,23,198,2,28,248,22,136,7,23,194,2,12,86,94,248,
22,159,9,23,194,1,248,80,159,40,8,32,39,197,28,248,22,87,23,195,2, 22,159,9,23,194,1,248,80,159,40,8,32,39,197,28,248,22,87,23,195,2,
9,27,248,22,80,23,196,2,27,28,248,22,137,15,23,195,2,23,194,1,28, 9,27,248,22,80,23,196,2,27,28,248,22,143,15,23,195,2,23,194,1,28,
248,22,136,15,23,195,2,249,22,138,15,23,196,1,250,80,159,43,39,39,248, 248,22,142,15,23,195,2,249,22,144,15,23,196,1,250,80,159,43,39,39,248,
22,153,15,2,32,11,10,250,80,159,41,39,39,248,22,153,15,2,32,23,197, 22,159,15,2,32,11,10,250,80,159,41,39,39,248,22,159,15,2,32,23,197,
1,10,28,23,193,2,249,22,79,248,22,140,15,249,22,138,15,23,198,1,247, 1,10,28,23,193,2,249,22,79,248,22,146,15,249,22,144,15,23,198,1,247,
22,154,15,27,248,22,81,23,200,1,28,248,22,87,23,194,2,9,27,248,22, 22,160,15,27,248,22,81,23,200,1,28,248,22,87,23,194,2,9,27,248,22,
80,23,195,2,27,28,248,22,137,15,23,195,2,23,194,1,28,248,22,136,15, 80,23,195,2,27,28,248,22,143,15,23,195,2,23,194,1,28,248,22,142,15,
23,195,2,249,22,138,15,23,196,1,250,80,159,48,39,39,248,22,153,15,2, 23,195,2,249,22,144,15,23,196,1,250,80,159,48,39,39,248,22,159,15,2,
32,11,10,250,80,159,46,39,39,248,22,153,15,2,32,23,197,1,10,28,23, 32,11,10,250,80,159,46,39,39,248,22,159,15,2,32,23,197,1,10,28,23,
193,2,249,22,79,248,22,140,15,249,22,138,15,23,198,1,247,22,154,15,248, 193,2,249,22,79,248,22,146,15,249,22,144,15,23,198,1,247,22,160,15,248,
80,159,46,8,31,39,248,22,81,23,199,1,86,94,23,193,1,248,80,159,44, 80,159,46,8,31,39,248,22,81,23,199,1,86,94,23,193,1,248,80,159,44,
8,31,39,248,22,81,23,197,1,86,94,23,193,1,27,248,22,81,23,198,1, 8,31,39,248,22,81,23,197,1,86,94,23,193,1,27,248,22,81,23,198,1,
28,248,22,87,23,194,2,9,27,248,22,80,23,195,2,27,28,248,22,137,15, 28,248,22,87,23,194,2,9,27,248,22,80,23,195,2,27,28,248,22,143,15,
23,195,2,23,194,1,28,248,22,136,15,23,195,2,249,22,138,15,23,196,1, 23,195,2,23,194,1,28,248,22,142,15,23,195,2,249,22,144,15,23,196,1,
250,80,159,46,39,39,248,22,153,15,2,32,11,10,250,80,159,44,39,39,248, 250,80,159,46,39,39,248,22,159,15,2,32,11,10,250,80,159,44,39,39,248,
22,153,15,2,32,23,197,1,10,28,23,193,2,249,22,79,248,22,140,15,249, 22,159,15,2,32,23,197,1,10,28,23,193,2,249,22,79,248,22,146,15,249,
22,138,15,23,198,1,247,22,154,15,248,80,159,44,8,31,39,248,22,81,23, 22,144,15,23,198,1,247,22,160,15,248,80,159,44,8,31,39,248,22,81,23,
199,1,248,80,159,42,8,31,39,248,22,81,196,28,248,22,87,23,195,2,9, 199,1,248,80,159,42,8,31,39,248,22,81,196,28,248,22,87,23,195,2,9,
27,248,22,80,23,196,2,27,28,248,22,137,15,23,195,2,23,194,1,28,248, 27,248,22,80,23,196,2,27,28,248,22,143,15,23,195,2,23,194,1,28,248,
22,136,15,23,195,2,249,22,138,15,23,196,1,250,80,159,43,39,39,248,22, 22,142,15,23,195,2,249,22,144,15,23,196,1,250,80,159,43,39,39,248,22,
153,15,2,32,11,10,250,80,159,41,39,39,248,22,153,15,2,32,23,197,1, 159,15,2,32,11,10,250,80,159,41,39,39,248,22,159,15,2,32,23,197,1,
10,28,23,193,2,249,22,79,248,22,140,15,249,22,138,15,23,198,1,247,22, 10,28,23,193,2,249,22,79,248,22,146,15,249,22,144,15,23,198,1,247,22,
154,15,248,80,159,41,8,30,39,248,22,81,23,200,1,248,80,159,39,8,30, 160,15,248,80,159,41,8,30,39,248,22,81,23,200,1,248,80,159,39,8,30,
39,248,22,81,197,28,248,22,87,23,195,2,9,27,248,22,80,23,196,2,27, 39,248,22,81,197,28,248,22,87,23,195,2,9,27,248,22,80,23,196,2,27,
28,248,22,137,15,23,195,2,23,194,1,28,248,22,136,15,23,195,2,249,22, 28,248,22,143,15,23,195,2,23,194,1,28,248,22,142,15,23,195,2,249,22,
138,15,23,196,1,250,80,159,43,39,39,248,22,153,15,2,32,11,10,250,80, 144,15,23,196,1,250,80,159,43,39,39,248,22,159,15,2,32,11,10,250,80,
159,41,39,39,248,22,153,15,2,32,23,197,1,10,28,23,193,2,249,22,79, 159,41,39,39,248,22,159,15,2,32,23,197,1,10,28,23,193,2,249,22,79,
248,22,140,15,249,22,138,15,23,198,1,247,22,154,15,248,80,159,41,8,29, 248,22,146,15,249,22,144,15,23,198,1,247,22,160,15,248,80,159,41,8,29,
39,248,22,81,23,200,1,248,80,159,39,8,29,39,248,22,81,197,27,248,22, 39,248,22,81,23,200,1,248,80,159,39,8,29,39,248,22,81,197,27,248,22,
177,14,23,195,2,28,23,193,2,192,86,94,23,193,1,28,248,22,141,7,23, 183,14,23,195,2,28,23,193,2,192,86,94,23,193,1,28,248,22,141,7,23,
195,2,27,248,22,135,15,195,28,192,192,248,22,136,15,195,11,86,94,28,28, 195,2,27,248,22,141,15,195,28,192,192,248,22,142,15,195,11,86,94,28,28,
248,22,178,14,23,195,2,10,28,248,22,177,14,23,195,2,10,28,248,22,141, 248,22,184,14,23,195,2,10,28,248,22,183,14,23,195,2,10,28,248,22,141,
7,23,195,2,28,248,22,135,15,23,195,2,10,248,22,136,15,23,195,2,11, 7,23,195,2,28,248,22,141,15,23,195,2,10,248,22,142,15,23,195,2,11,
12,250,22,188,9,76,110,111,114,109,97,108,45,112,97,116,104,45,99,97,115, 12,250,22,188,9,76,110,111,114,109,97,108,45,112,97,116,104,45,99,97,115,
101,2,33,23,197,2,28,28,248,22,178,14,23,195,2,249,22,151,9,248,22, 101,2,33,23,197,2,28,28,248,22,184,14,23,195,2,249,22,151,9,248,22,
179,14,23,197,2,2,34,249,22,151,9,247,22,163,8,2,34,27,28,248,22, 185,14,23,197,2,2,34,249,22,151,9,247,22,163,8,2,34,27,28,248,22,
141,7,23,196,2,23,195,2,248,22,153,8,248,22,182,14,23,197,2,28,249, 141,7,23,196,2,23,195,2,248,22,153,8,248,22,188,14,23,197,2,28,249,
22,169,15,0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93, 22,175,15,0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,
91,92,92,93,34,23,195,2,28,248,22,141,7,195,248,22,185,14,195,194,27, 91,92,92,93,34,23,195,2,28,248,22,141,7,195,248,22,191,14,195,194,27,
248,22,180,7,23,195,1,249,22,186,14,248,22,156,8,250,22,177,15,0,6, 248,22,180,7,23,195,1,249,22,128,15,248,22,156,8,250,22,183,15,0,6,
35,114,120,34,47,34,28,249,22,169,15,0,22,35,114,120,34,91,47,92,92, 35,114,120,34,47,34,28,249,22,175,15,0,22,35,114,120,34,91,47,92,92,
93,91,46,32,93,43,91,47,92,92,93,42,36,34,23,201,2,23,199,1,250, 93,91,46,32,93,43,91,47,92,92,93,42,36,34,23,201,2,23,199,1,250,
22,177,15,0,19,35,114,120,34,91,32,46,93,43,40,91,47,92,92,93,42, 22,183,15,0,19,35,114,120,34,91,32,46,93,43,40,91,47,92,92,93,42,
41,36,34,23,202,1,6,2,2,92,49,80,159,44,37,38,2,34,28,248,22, 41,36,34,23,202,1,6,2,2,92,49,80,159,44,37,38,2,34,28,248,22,
141,7,194,248,22,185,14,194,193,32,58,88,163,8,36,39,53,11,70,102,111, 141,7,194,248,22,191,14,194,193,32,58,88,163,8,36,39,53,11,70,102,111,
117,110,100,45,101,120,101,99,222,33,61,32,59,88,163,8,36,40,58,11,64, 117,110,100,45,101,120,101,99,222,33,61,32,59,88,163,8,36,40,58,11,64,
110,101,120,116,222,33,60,27,248,22,139,15,23,196,2,28,249,22,153,9,23, 110,101,120,116,222,33,60,27,248,22,145,15,23,196,2,28,249,22,153,9,23,
195,2,23,197,1,11,28,248,22,135,15,23,194,2,27,249,22,131,15,23,197, 195,2,23,197,1,11,28,248,22,141,15,23,194,2,27,249,22,137,15,23,197,
1,23,196,1,28,23,197,2,90,159,39,11,89,161,39,36,11,248,22,134,15, 1,23,196,1,28,23,197,2,90,159,39,11,89,161,39,36,11,248,22,140,15,
23,197,2,86,95,23,195,1,23,194,1,27,28,23,202,2,27,248,22,139,15, 23,197,2,86,95,23,195,1,23,194,1,27,28,23,202,2,27,248,22,145,15,
23,199,2,28,249,22,153,9,23,195,2,23,200,2,11,28,248,22,135,15,23, 23,199,2,28,249,22,153,9,23,195,2,23,200,2,11,28,248,22,141,15,23,
194,2,250,2,58,23,205,2,23,206,2,249,22,131,15,23,200,2,23,198,1, 194,2,250,2,58,23,205,2,23,206,2,249,22,137,15,23,200,2,23,198,1,
250,2,58,23,205,2,23,206,2,23,196,1,11,28,23,193,2,192,86,94,23, 250,2,58,23,205,2,23,206,2,23,196,1,11,28,23,193,2,192,86,94,23,
193,1,27,28,248,22,177,14,23,196,2,27,249,22,131,15,23,198,2,23,205, 193,1,27,28,248,22,183,14,23,196,2,27,249,22,137,15,23,198,2,23,205,
2,28,28,248,22,190,14,193,10,248,22,189,14,193,192,11,11,28,23,193,2, 2,28,28,248,22,132,15,193,10,248,22,131,15,193,192,11,11,28,23,193,2,
192,86,94,23,193,1,28,23,203,2,11,27,248,22,139,15,23,200,2,28,249, 192,86,94,23,193,1,28,23,203,2,11,27,248,22,145,15,23,200,2,28,249,
22,153,9,23,195,2,23,201,1,11,28,248,22,135,15,23,194,2,250,2,58, 22,153,9,23,195,2,23,201,1,11,28,248,22,141,15,23,194,2,250,2,58,
23,206,1,23,207,1,249,22,131,15,23,201,1,23,198,1,250,2,58,205,206, 23,206,1,23,207,1,249,22,137,15,23,201,1,23,198,1,250,2,58,205,206,
195,192,86,94,23,194,1,28,23,196,2,90,159,39,11,89,161,39,36,11,248, 195,192,86,94,23,194,1,28,23,196,2,90,159,39,11,89,161,39,36,11,248,
22,134,15,23,197,2,86,95,23,195,1,23,194,1,27,28,23,201,2,27,248, 22,140,15,23,197,2,86,95,23,195,1,23,194,1,27,28,23,201,2,27,248,
22,139,15,23,199,2,28,249,22,153,9,23,195,2,23,200,2,11,28,248,22, 22,145,15,23,199,2,28,249,22,153,9,23,195,2,23,200,2,11,28,248,22,
135,15,23,194,2,250,2,58,23,204,2,23,205,2,249,22,131,15,23,200,2, 141,15,23,194,2,250,2,58,23,204,2,23,205,2,249,22,137,15,23,200,2,
23,198,1,250,2,58,23,204,2,23,205,2,23,196,1,11,28,23,193,2,192, 23,198,1,250,2,58,23,204,2,23,205,2,23,196,1,11,28,23,193,2,192,
86,94,23,193,1,27,28,248,22,177,14,23,196,2,27,249,22,131,15,23,198, 86,94,23,193,1,27,28,248,22,183,14,23,196,2,27,249,22,137,15,23,198,
2,23,204,2,28,28,248,22,190,14,193,10,248,22,189,14,193,192,11,11,28, 2,23,204,2,28,28,248,22,132,15,193,10,248,22,131,15,193,192,11,11,28,
23,193,2,192,86,94,23,193,1,28,23,202,2,11,27,248,22,139,15,23,200, 23,193,2,192,86,94,23,193,1,28,23,202,2,11,27,248,22,145,15,23,200,
2,28,249,22,153,9,23,195,2,23,201,1,11,28,248,22,135,15,23,194,2, 2,28,249,22,153,9,23,195,2,23,201,1,11,28,248,22,141,15,23,194,2,
250,2,58,23,205,1,23,206,1,249,22,131,15,23,201,1,23,198,1,250,2, 250,2,58,23,205,1,23,206,1,249,22,137,15,23,201,1,23,198,1,250,2,
58,204,205,195,192,28,23,193,2,90,159,39,11,89,161,39,36,11,248,22,134, 58,204,205,195,192,28,23,193,2,90,159,39,11,89,161,39,36,11,248,22,140,
15,23,199,2,86,95,23,195,1,23,194,1,27,28,23,198,2,251,2,59,23, 15,23,199,2,86,95,23,195,1,23,194,1,27,28,23,198,2,251,2,59,23,
198,2,23,203,2,23,201,2,23,202,2,11,28,23,193,2,192,86,94,23,193, 198,2,23,203,2,23,201,2,23,202,2,11,28,23,193,2,192,86,94,23,193,
1,27,28,248,22,177,14,195,27,249,22,131,15,197,200,28,28,248,22,190,14, 1,27,28,248,22,183,14,195,27,249,22,137,15,197,200,28,28,248,22,132,15,
193,10,248,22,189,14,193,192,11,11,28,192,192,28,198,11,251,2,59,198,203, 193,10,248,22,131,15,193,192,11,11,28,192,192,28,198,11,251,2,59,198,203,
201,202,194,32,62,88,163,8,36,40,58,11,2,31,222,33,63,28,248,22,87, 201,202,194,32,62,88,163,8,36,40,58,11,2,31,222,33,63,28,248,22,87,
23,197,2,11,27,248,22,138,15,248,22,80,23,199,2,27,249,22,131,15,23, 23,197,2,11,27,248,22,144,15,248,22,80,23,199,2,27,249,22,137,15,23,
196,1,23,197,2,28,248,22,189,14,23,194,2,250,2,58,198,199,195,86,94, 196,1,23,197,2,28,248,22,131,15,23,194,2,250,2,58,198,199,195,86,94,
23,193,1,27,248,22,81,23,200,1,28,248,22,87,23,194,2,11,27,248,22, 23,193,1,27,248,22,81,23,200,1,28,248,22,87,23,194,2,11,27,248,22,
138,15,248,22,80,23,196,2,27,249,22,131,15,23,196,1,23,200,2,28,248, 144,15,248,22,80,23,196,2,27,249,22,137,15,23,196,1,23,200,2,28,248,
22,189,14,23,194,2,250,2,58,201,202,195,86,94,23,193,1,27,248,22,81, 22,131,15,23,194,2,250,2,58,201,202,195,86,94,23,193,1,27,248,22,81,
23,197,1,28,248,22,87,23,194,2,11,27,248,22,138,15,248,22,80,195,27, 23,197,1,28,248,22,87,23,194,2,11,27,248,22,144,15,248,22,80,195,27,
249,22,131,15,23,196,1,202,28,248,22,189,14,193,250,2,58,204,205,195,251, 249,22,137,15,23,196,1,202,28,248,22,131,15,193,250,2,58,204,205,195,251,
2,62,204,205,206,248,22,81,199,86,95,28,28,248,22,177,14,23,195,2,10, 2,62,204,205,206,248,22,81,199,86,95,28,28,248,22,183,14,23,195,2,10,
28,248,22,141,7,23,195,2,28,248,22,135,15,23,195,2,10,248,22,136,15, 28,248,22,141,7,23,195,2,28,248,22,141,15,23,195,2,10,248,22,142,15,
23,195,2,11,12,250,22,188,9,2,5,2,35,23,197,2,28,28,23,195,2, 23,195,2,11,12,250,22,188,9,2,5,2,35,23,197,2,28,28,23,195,2,
28,28,248,22,177,14,23,196,2,10,28,248,22,141,7,23,196,2,28,248,22, 28,28,248,22,183,14,23,196,2,10,28,248,22,141,7,23,196,2,28,248,22,
135,15,23,196,2,10,248,22,136,15,23,196,2,11,248,22,135,15,23,196,2, 141,15,23,196,2,10,248,22,142,15,23,196,2,11,248,22,141,15,23,196,2,
11,10,12,250,22,188,9,2,5,6,45,45,40,111,114,47,99,32,35,102,32, 11,10,12,250,22,188,9,2,5,6,45,45,40,111,114,47,99,32,35,102,32,
40,97,110,100,47,99,32,112,97,116,104,45,115,116,114,105,110,103,63,32,114, 40,97,110,100,47,99,32,112,97,116,104,45,115,116,114,105,110,103,63,32,114,
101,108,97,116,105,118,101,45,112,97,116,104,63,41,41,23,198,2,28,28,248, 101,108,97,116,105,118,101,45,112,97,116,104,63,41,41,23,198,2,28,28,248,
22,135,15,23,195,2,90,159,39,11,89,161,39,36,11,248,22,134,15,23,198, 22,141,15,23,195,2,90,159,39,11,89,161,39,36,11,248,22,140,15,23,198,
2,249,22,151,9,194,2,36,11,27,248,22,161,8,6,4,4,80,65,84,72, 2,249,22,151,9,194,2,36,11,27,248,22,161,8,6,4,4,80,65,84,72,
27,28,23,194,2,249,80,158,40,40,23,196,1,9,86,94,23,194,1,9,27, 27,28,23,194,2,249,80,158,40,40,23,196,1,9,86,94,23,194,1,9,27,
28,249,22,151,9,247,22,163,8,2,34,249,22,79,248,22,186,14,5,1,46, 28,249,22,151,9,247,22,163,8,2,34,249,22,79,248,22,128,15,5,1,46,
23,196,1,23,194,1,28,248,22,87,23,194,2,11,27,248,22,138,15,248,22, 23,196,1,23,194,1,28,248,22,87,23,194,2,11,27,248,22,144,15,248,22,
80,23,196,2,27,249,22,131,15,23,196,1,23,201,2,28,248,22,189,14,23, 80,23,196,2,27,249,22,137,15,23,196,1,23,201,2,28,248,22,131,15,23,
194,2,250,2,58,202,203,195,86,94,23,193,1,27,248,22,81,23,197,1,28, 194,2,250,2,58,202,203,195,86,94,23,193,1,27,248,22,81,23,197,1,28,
248,22,87,23,194,2,11,27,248,22,138,15,248,22,80,23,196,2,27,249,22, 248,22,87,23,194,2,11,27,248,22,144,15,248,22,80,23,196,2,27,249,22,
131,15,23,196,1,23,204,2,28,248,22,189,14,23,194,2,250,2,58,205,206, 137,15,23,196,1,23,204,2,28,248,22,131,15,23,194,2,250,2,58,205,206,
195,86,94,23,193,1,27,248,22,81,23,197,1,28,248,22,87,23,194,2,11, 195,86,94,23,193,1,27,248,22,81,23,197,1,28,248,22,87,23,194,2,11,
27,248,22,138,15,248,22,80,195,27,249,22,131,15,23,196,1,206,28,248,22, 27,248,22,144,15,248,22,80,195,27,249,22,137,15,23,196,1,206,28,248,22,
189,14,193,250,2,58,23,16,23,17,195,251,2,62,23,16,23,17,23,18,248, 131,15,193,250,2,58,23,16,23,17,195,251,2,62,23,16,23,17,23,18,248,
22,81,199,27,248,22,138,15,23,196,1,28,248,22,189,14,193,250,2,58,198, 22,81,199,27,248,22,144,15,23,196,1,28,248,22,131,15,193,250,2,58,198,
199,195,11,250,80,159,39,39,39,196,197,11,250,80,159,39,39,39,196,11,11, 199,195,11,250,80,159,39,39,39,196,197,11,250,80,159,39,39,39,196,11,11,
32,67,88,163,8,36,39,57,11,2,31,222,33,69,0,8,35,114,120,35,34, 32,67,88,163,8,36,39,57,11,2,31,222,33,69,0,8,35,114,120,35,34,
92,34,34,27,249,22,165,15,23,197,2,23,198,2,28,23,193,2,86,94,23, 92,34,34,27,249,22,171,15,23,197,2,23,198,2,28,23,193,2,86,94,23,
196,1,27,248,22,104,23,195,2,27,27,248,22,113,23,197,1,27,249,22,165, 196,1,27,248,22,104,23,195,2,27,27,248,22,113,23,197,1,27,249,22,171,
15,23,201,2,23,196,2,28,23,193,2,86,94,23,194,1,27,248,22,104,23, 15,23,201,2,23,196,2,28,23,193,2,86,94,23,194,1,27,248,22,104,23,
195,2,27,250,2,67,23,203,2,23,204,1,248,22,113,23,199,1,28,249,22, 195,2,27,250,2,67,23,203,2,23,204,1,248,22,113,23,199,1,28,249,22,
138,8,23,196,2,2,37,249,22,93,23,202,2,194,249,22,79,248,22,186,14, 138,8,23,196,2,2,37,249,22,93,23,202,2,194,249,22,79,248,22,128,15,
28,249,22,151,9,247,22,163,8,2,34,250,22,177,15,2,68,23,200,1,2, 28,249,22,151,9,247,22,163,8,2,34,250,22,183,15,2,68,23,200,1,2,
37,23,197,1,194,86,95,23,199,1,23,193,1,28,249,22,138,8,23,196,2, 37,23,197,1,194,86,95,23,199,1,23,193,1,28,249,22,138,8,23,196,2,
2,37,249,22,93,23,200,2,9,249,22,79,248,22,186,14,28,249,22,151,9, 2,37,249,22,93,23,200,2,9,249,22,79,248,22,128,15,28,249,22,151,9,
247,22,163,8,2,34,250,22,177,15,2,68,23,200,1,2,37,23,197,1,9, 247,22,163,8,2,34,250,22,183,15,2,68,23,200,1,2,37,23,197,1,9,
28,249,22,138,8,23,196,2,2,37,249,22,93,197,194,86,94,23,196,1,249, 28,249,22,138,8,23,196,2,2,37,249,22,93,197,194,86,94,23,196,1,249,
22,79,248,22,186,14,28,249,22,151,9,247,22,163,8,2,34,250,22,177,15, 22,79,248,22,128,15,28,249,22,151,9,247,22,163,8,2,34,250,22,183,15,
2,68,23,200,1,2,37,23,197,1,194,86,94,23,193,1,28,249,22,138,8, 2,68,23,200,1,2,37,23,197,1,194,86,94,23,193,1,28,249,22,138,8,
23,198,2,2,37,249,22,93,195,9,86,94,23,194,1,249,22,79,248,22,186, 23,198,2,2,37,249,22,93,195,9,86,94,23,194,1,249,22,79,248,22,128,
14,28,249,22,151,9,247,22,163,8,2,34,250,22,177,15,2,68,23,202,1, 15,28,249,22,151,9,247,22,163,8,2,34,250,22,183,15,2,68,23,202,1,
2,37,23,199,1,9,86,95,28,28,248,22,130,8,194,10,248,22,141,7,194, 2,37,23,199,1,9,86,95,28,28,248,22,130,8,194,10,248,22,141,7,194,
12,250,22,188,9,2,6,6,21,21,40,111,114,47,99,32,98,121,116,101,115, 12,250,22,188,9,2,6,6,21,21,40,111,114,47,99,32,98,121,116,101,115,
63,32,115,116,114,105,110,103,63,41,196,28,28,248,22,88,195,249,22,4,22, 63,32,115,116,114,105,110,103,63,41,196,28,28,248,22,88,195,249,22,4,22,
177,14,196,11,12,250,22,188,9,2,6,6,14,14,40,108,105,115,116,111,102, 183,14,196,11,12,250,22,188,9,2,6,6,14,14,40,108,105,115,116,111,102,
32,112,97,116,104,63,41,197,250,2,67,197,195,28,248,22,141,7,197,248,22, 32,112,97,116,104,63,41,197,250,2,67,197,195,28,248,22,141,7,197,248,22,
155,8,197,196,86,94,28,28,248,22,177,14,194,10,28,248,22,141,7,194,28, 155,8,197,196,86,94,28,28,248,22,183,14,194,10,28,248,22,141,7,194,28,
248,22,135,15,194,10,248,22,136,15,194,11,12,250,22,188,9,195,2,35,196, 248,22,141,15,194,10,248,22,142,15,194,11,12,250,22,188,9,195,2,35,196,
28,248,22,135,15,194,12,251,22,190,9,196,2,38,2,39,197,86,94,28,28, 28,248,22,141,15,194,12,251,22,190,9,196,2,38,2,39,197,86,94,28,28,
248,22,177,14,194,10,28,248,22,141,7,194,28,248,22,135,15,194,10,248,22, 248,22,183,14,194,10,28,248,22,141,7,194,28,248,22,141,15,194,10,248,22,
136,15,194,11,12,250,22,188,9,195,2,35,196,28,248,22,135,15,194,12,251, 142,15,194,11,12,250,22,188,9,195,2,35,196,28,248,22,141,15,194,12,251,
22,190,9,196,2,38,2,39,197,86,94,86,94,28,28,248,22,177,14,23,195, 22,190,9,196,2,38,2,39,197,86,94,86,94,28,28,248,22,183,14,23,195,
2,10,28,248,22,141,7,23,195,2,28,248,22,135,15,23,195,2,10,248,22, 2,10,28,248,22,141,7,23,195,2,28,248,22,141,15,23,195,2,10,248,22,
136,15,23,195,2,11,12,250,22,188,9,195,2,35,23,197,2,28,248,22,135, 142,15,23,195,2,11,12,250,22,188,9,195,2,35,23,197,2,28,248,22,141,
15,23,195,2,12,251,22,190,9,196,2,38,2,39,23,198,1,249,22,3,88, 15,23,195,2,12,251,22,190,9,196,2,38,2,39,23,198,1,249,22,3,88,
163,8,36,37,47,11,9,223,2,33,72,196,28,28,248,22,0,194,249,22,50, 163,8,36,37,47,11,9,223,2,33,72,196,28,28,248,22,0,194,249,22,50,
195,37,11,12,250,22,188,9,195,2,40,196,86,94,28,28,248,22,177,14,193, 195,37,11,12,250,22,188,9,195,2,40,196,86,94,28,28,248,22,183,14,193,
10,28,248,22,141,7,193,28,248,22,135,15,193,10,248,22,136,15,193,11,12, 10,28,248,22,141,7,193,28,248,22,141,15,193,10,248,22,142,15,193,11,12,
250,22,188,9,2,10,2,35,195,28,248,22,135,15,193,12,251,22,190,9,2, 250,22,188,9,2,10,2,35,195,28,248,22,141,15,193,12,251,22,190,9,2,
10,2,38,2,39,196,86,95,86,94,86,94,28,28,248,22,177,14,195,10,28, 10,2,38,2,39,196,86,95,86,94,86,94,28,28,248,22,183,14,195,10,28,
248,22,141,7,195,28,248,22,135,15,195,10,248,22,136,15,195,11,12,250,22, 248,22,141,7,195,28,248,22,141,15,195,10,248,22,142,15,195,11,12,250,22,
188,9,2,10,2,35,197,28,248,22,135,15,195,12,251,22,190,9,2,10,2, 188,9,2,10,2,35,197,28,248,22,141,15,195,12,251,22,190,9,2,10,2,
38,2,39,198,249,22,3,32,0,88,163,8,36,37,46,11,9,222,33,75,197, 38,2,39,198,249,22,3,32,0,88,163,8,36,37,46,11,9,222,33,75,197,
28,28,248,22,0,194,249,22,50,195,37,11,12,250,22,188,9,2,10,2,40, 28,28,248,22,0,194,249,22,50,195,37,11,12,250,22,188,9,2,10,2,40,
196,251,80,158,40,45,197,198,199,11,86,94,28,28,248,22,177,14,193,10,28, 196,251,80,158,40,45,197,198,199,11,86,94,28,28,248,22,183,14,193,10,28,
248,22,141,7,193,28,248,22,135,15,193,10,248,22,136,15,193,11,12,250,22, 248,22,141,7,193,28,248,22,141,15,193,10,248,22,142,15,193,11,12,250,22,
188,9,2,12,2,35,195,28,248,22,135,15,193,12,251,22,190,9,2,12,2, 188,9,2,12,2,35,195,28,248,22,141,15,193,12,251,22,190,9,2,12,2,
38,2,39,196,86,96,86,94,28,28,248,22,177,14,195,10,28,248,22,141,7, 38,2,39,196,86,96,86,94,28,28,248,22,183,14,195,10,28,248,22,141,7,
195,28,248,22,135,15,195,10,248,22,136,15,195,11,12,250,22,188,9,2,12, 195,28,248,22,141,15,195,10,248,22,142,15,195,11,12,250,22,188,9,2,12,
2,35,197,28,248,22,135,15,195,12,251,22,190,9,2,12,2,38,2,39,198, 2,35,197,28,248,22,141,15,195,12,251,22,190,9,2,12,2,38,2,39,198,
86,94,86,94,28,28,248,22,177,14,196,10,28,248,22,141,7,196,28,248,22, 86,94,86,94,28,28,248,22,183,14,196,10,28,248,22,141,7,196,28,248,22,
135,15,196,10,248,22,136,15,196,11,12,250,22,188,9,2,12,2,35,198,28, 141,15,196,10,248,22,142,15,196,11,12,250,22,188,9,2,12,2,35,198,28,
248,22,135,15,196,12,251,22,190,9,2,12,2,38,2,39,199,249,22,3,32, 248,22,141,15,196,12,251,22,190,9,2,12,2,38,2,39,199,249,22,3,32,
0,88,163,8,36,37,46,11,9,222,33,77,198,28,28,248,22,0,194,249,22, 0,88,163,8,36,37,46,11,9,222,33,77,198,28,28,248,22,0,194,249,22,
50,195,37,11,12,250,22,188,9,2,12,2,40,196,251,80,158,40,45,197,199, 50,195,37,11,12,250,22,188,9,2,12,2,40,196,251,80,158,40,45,197,199,
200,198,0,6,45,105,110,102,46,48,27,248,22,153,15,2,41,27,28,248,22, 200,198,0,6,45,105,110,102,46,48,27,248,22,159,15,2,41,27,28,248,22,
136,15,23,195,2,193,20,13,159,80,159,38,52,37,250,80,159,41,53,37,249, 142,15,23,195,2,193,20,13,159,80,159,38,52,37,250,80,159,41,53,37,249,
22,33,11,80,159,43,52,37,22,154,15,248,22,153,15,68,111,114,105,103,45, 22,33,11,80,159,43,52,37,22,160,15,248,22,159,15,68,111,114,105,103,45,
100,105,114,27,248,22,153,15,2,32,250,80,159,42,39,39,23,196,1,23,198, 100,105,114,27,248,22,159,15,2,32,250,80,159,42,39,39,23,196,1,23,198,
1,11,28,192,250,22,131,15,195,6,6,6,99,111,110,102,105,103,6,10,10, 1,11,28,192,250,22,137,15,195,6,6,6,99,111,110,102,105,103,6,10,10,
108,105,110,107,115,46,114,107,116,100,11,86,94,27,247,22,147,10,28,249,22, 108,105,110,107,115,46,114,107,116,100,11,86,94,27,247,22,147,10,28,249,22,
139,10,23,195,2,2,42,251,22,143,10,23,197,1,2,42,250,22,189,7,2, 139,10,23,195,2,2,42,251,22,143,10,23,197,1,2,42,250,22,189,7,2,
43,28,23,202,1,80,159,46,47,38,80,159,46,50,38,248,22,183,11,23,205, 43,28,23,202,1,80,159,46,47,38,80,159,46,50,38,248,22,183,11,23,205,
@ -331,61 +331,61 @@
193,28,248,22,88,23,194,2,28,28,249,22,191,3,38,248,22,92,23,196,2, 193,28,248,22,88,23,194,2,28,28,249,22,191,3,38,248,22,92,23,196,2,
10,249,22,191,3,39,248,22,92,23,196,2,28,28,248,22,141,7,248,22,80, 10,249,22,191,3,39,248,22,92,23,196,2,28,28,248,22,141,7,248,22,80,
23,195,2,10,249,22,151,9,64,114,111,111,116,248,22,80,23,196,2,28,27, 23,195,2,10,249,22,151,9,64,114,111,111,116,248,22,80,23,196,2,28,27,
248,22,104,194,28,248,22,177,14,23,194,2,10,28,248,22,141,7,23,194,2, 248,22,104,194,28,248,22,183,14,23,194,2,10,28,248,22,141,7,23,194,2,
28,248,22,135,15,23,194,2,10,248,22,136,15,23,194,1,11,27,248,22,87, 28,248,22,141,15,23,194,2,10,248,22,142,15,23,194,1,11,27,248,22,87,
248,22,106,195,28,192,192,248,22,178,15,248,22,113,195,11,11,11,11,250,22, 248,22,106,195,28,192,192,248,22,184,15,248,22,113,195,11,11,11,11,250,22,
158,2,196,197,249,22,79,197,200,28,28,248,22,87,248,22,106,23,197,2,10, 158,2,196,197,249,22,79,197,200,28,28,248,22,87,248,22,106,23,197,2,10,
249,22,169,15,248,22,113,23,198,2,247,22,159,8,27,248,22,140,15,249,22, 249,22,175,15,248,22,113,23,198,2,247,22,159,8,27,248,22,146,15,249,22,
138,15,248,22,104,23,200,2,23,198,1,28,248,22,64,248,22,80,23,198,2, 144,15,248,22,104,23,200,2,23,198,1,28,248,22,64,248,22,80,23,198,2,
86,94,23,196,1,86,94,28,250,22,160,2,196,11,11,12,250,22,158,2,196, 86,94,23,196,1,86,94,28,250,22,160,2,196,11,11,12,250,22,158,2,196,
11,9,249,22,164,2,195,88,163,8,36,38,50,11,9,224,3,2,33,87,27, 11,9,249,22,164,2,195,88,163,8,36,38,50,11,9,224,3,2,33,87,27,
248,22,67,248,22,80,23,199,1,250,22,158,2,23,198,2,23,196,2,249,22, 248,22,67,248,22,80,23,199,1,250,22,158,2,23,198,2,23,196,2,249,22,
79,248,22,131,2,23,200,1,250,22,160,2,23,203,1,23,201,1,9,12,250, 79,248,22,131,2,23,200,1,250,22,160,2,23,203,1,23,201,1,9,12,250,
22,158,2,195,196,248,22,94,198,20,13,159,80,159,37,57,37,88,163,36,37, 22,158,2,195,196,248,22,94,198,20,13,159,80,159,37,57,37,88,163,36,37,
54,8,240,0,72,0,0,9,225,1,0,2,33,81,27,250,22,148,15,28,23, 54,8,240,0,72,0,0,9,225,1,0,2,33,81,27,250,22,154,15,28,23,
197,2,80,159,41,47,38,80,159,41,50,38,11,32,0,88,163,8,36,36,41, 197,2,80,159,41,47,38,80,159,41,50,38,11,32,0,88,163,8,36,36,41,
11,9,222,33,82,28,249,22,129,4,23,195,2,28,23,196,2,80,158,40,49, 11,9,222,33,82,28,249,22,129,4,23,195,2,28,23,196,2,80,158,40,49,
80,158,40,55,20,13,159,80,159,38,57,37,20,20,94,88,163,36,37,55,8, 80,158,40,55,20,13,159,80,159,38,57,37,20,20,94,88,163,36,37,55,8,
240,0,120,12,0,9,226,2,1,3,0,33,83,23,196,1,20,13,159,80,159, 240,0,120,12,0,9,226,2,1,3,0,33,83,23,196,1,20,13,159,80,159,
38,52,37,26,29,80,159,8,31,53,37,249,22,33,11,80,159,8,33,52,37, 38,52,37,26,29,80,159,8,31,53,37,249,22,33,11,80,159,8,33,52,37,
22,147,14,10,22,148,14,10,22,149,14,10,22,152,14,10,22,151,14,10,22, 22,153,14,10,22,154,14,10,22,155,14,10,22,158,14,10,22,157,14,10,22,
153,14,10,22,150,14,10,22,154,14,10,22,155,14,10,22,156,14,10,22,157, 159,14,10,22,156,14,10,22,160,14,10,22,161,14,10,22,162,14,10,22,163,
14,10,22,158,14,10,22,159,14,11,22,145,14,11,27,249,22,182,5,28,196, 14,10,22,164,14,10,22,165,14,11,22,151,14,11,27,249,22,182,5,28,196,
80,159,41,47,38,80,159,41,50,38,66,98,105,110,97,114,121,27,250,22,46, 80,159,41,47,38,80,159,41,50,38,66,98,105,110,97,114,121,27,250,22,46,
22,37,88,163,8,36,36,44,11,9,223,4,33,84,20,20,94,88,163,36,36, 22,37,88,163,8,36,36,44,11,9,223,4,33,84,20,20,94,88,163,36,36,
43,11,9,223,4,33,85,23,197,1,86,94,28,28,248,22,88,23,194,2,249, 43,11,9,223,4,33,85,23,197,1,86,94,28,28,248,22,88,23,194,2,249,
22,4,32,0,88,163,8,36,37,45,11,9,222,33,86,23,195,2,11,12,248, 22,4,32,0,88,163,8,36,37,45,11,9,222,33,86,23,195,2,11,12,248,
22,184,9,6,18,18,105,108,108,45,102,111,114,109,101,100,32,99,111,110,116, 22,184,9,6,18,18,105,108,108,45,102,111,114,109,101,100,32,99,111,110,116,
101,110,116,27,247,22,140,2,27,90,159,39,11,89,161,39,36,11,248,22,134, 101,110,116,27,247,22,140,2,27,90,159,39,11,89,161,39,36,11,248,22,140,
15,28,201,80,159,46,47,38,80,159,46,50,38,192,86,96,249,22,3,20,20, 15,28,201,80,159,46,47,38,80,159,46,50,38,192,86,96,249,22,3,20,20,
94,88,163,8,36,37,54,11,9,224,2,3,33,88,23,195,1,23,197,1,249, 94,88,163,8,36,37,54,11,9,224,2,3,33,88,23,195,1,23,197,1,249,
22,164,2,195,88,163,8,36,38,48,11,9,223,3,33,89,28,197,86,94,20, 22,164,2,195,88,163,8,36,38,48,11,9,223,3,33,89,28,197,86,94,20,
18,159,11,80,158,42,48,193,20,18,159,11,80,158,42,49,196,86,94,20,18, 18,159,11,80,158,42,48,193,20,18,159,11,80,158,42,49,196,86,94,20,18,
159,11,80,158,42,54,193,20,18,159,11,80,158,42,55,196,193,28,193,80,158, 159,11,80,158,42,54,193,20,18,159,11,80,158,42,55,196,193,28,193,80,158,
38,48,80,158,38,54,248,22,8,88,163,8,32,37,8,40,8,240,0,120,47, 38,48,80,158,38,54,248,22,9,88,163,8,32,37,8,40,8,240,0,120,47,
0,9,224,1,2,33,90,0,7,35,114,120,34,47,43,34,28,248,22,141,7, 0,9,224,1,2,33,90,0,7,35,114,120,34,47,43,34,28,248,22,141,7,
23,195,2,27,249,22,167,15,2,92,196,28,192,28,249,22,191,3,248,22,103, 23,195,2,27,249,22,173,15,2,92,196,28,192,28,249,22,191,3,248,22,103,
195,248,22,181,3,248,22,144,7,198,249,22,7,250,22,163,7,199,36,248,22, 195,248,22,181,3,248,22,144,7,198,249,22,7,250,22,163,7,199,36,248,22,
103,198,197,249,22,7,250,22,163,7,199,36,248,22,103,198,249,22,79,249,22, 103,198,197,249,22,7,250,22,163,7,199,36,248,22,103,198,249,22,79,249,22,
163,7,200,248,22,105,199,199,249,22,7,196,197,90,159,39,11,89,161,39,36, 163,7,200,248,22,105,199,199,249,22,7,196,197,90,159,39,11,89,161,39,36,
11,248,22,134,15,23,198,1,86,94,23,195,1,28,249,22,151,9,23,195,2, 11,248,22,140,15,23,198,1,86,94,23,195,1,28,249,22,151,9,23,195,2,
2,36,249,22,7,195,199,27,249,22,79,23,197,1,23,201,1,28,248,22,141, 2,36,249,22,7,195,199,27,249,22,79,23,197,1,23,201,1,28,248,22,141,
7,23,195,2,27,249,22,167,15,2,92,196,28,192,28,249,22,191,3,248,22, 7,23,195,2,27,249,22,173,15,2,92,196,28,192,28,249,22,191,3,248,22,
103,195,248,22,181,3,248,22,144,7,198,249,22,7,250,22,163,7,199,36,248, 103,195,248,22,181,3,248,22,144,7,198,249,22,7,250,22,163,7,199,36,248,
22,103,198,195,249,22,7,250,22,163,7,199,36,248,22,103,198,249,22,79,249, 22,103,198,195,249,22,7,250,22,163,7,199,36,248,22,103,198,249,22,79,249,
22,163,7,200,248,22,105,199,197,249,22,7,196,195,90,159,39,11,89,161,39, 22,163,7,200,248,22,105,199,197,249,22,7,196,195,90,159,39,11,89,161,39,
36,11,248,22,134,15,23,198,1,28,249,22,151,9,194,2,36,249,22,7,195, 36,11,248,22,140,15,23,198,1,28,249,22,151,9,194,2,36,249,22,7,195,
197,249,80,159,45,58,39,194,249,22,79,197,199,32,94,88,163,36,43,8,26, 197,249,80,159,45,58,39,194,249,22,79,197,199,32,94,88,163,36,43,8,26,
11,65,99,108,111,111,112,222,33,103,32,95,88,163,8,36,37,47,11,2,31, 11,65,99,108,111,111,112,222,33,103,32,95,88,163,8,36,37,47,11,2,31,
222,33,98,32,96,88,163,36,37,43,11,69,116,111,45,115,116,114,105,110,103, 222,33,98,32,96,88,163,36,37,43,11,69,116,111,45,115,116,114,105,110,103,
222,33,97,28,248,22,177,14,193,248,22,181,14,193,192,28,248,22,87,248,22, 222,33,97,28,248,22,183,14,193,248,22,187,14,193,192,28,248,22,87,248,22,
81,23,195,2,248,22,89,248,2,96,248,22,80,23,196,1,250,22,90,248,2, 81,23,195,2,248,22,89,248,2,96,248,22,80,23,196,1,250,22,90,248,2,
96,248,22,80,23,198,2,2,45,248,2,95,248,22,81,23,198,1,249,22,189, 96,248,22,80,23,198,2,2,45,248,2,95,248,22,81,23,198,1,249,22,189,
7,2,46,194,32,100,88,163,36,38,48,11,66,102,105,108,116,101,114,222,33, 7,2,46,194,32,100,88,163,36,38,48,11,66,102,105,108,116,101,114,222,33,
101,28,248,22,87,23,195,2,9,28,248,23,194,2,248,22,80,23,196,2,249, 101,28,248,22,87,23,195,2,9,28,248,23,194,2,248,22,80,23,196,2,249,
22,79,248,22,80,23,197,2,249,2,100,23,197,1,248,22,81,23,199,1,249, 22,79,248,22,80,23,197,2,249,2,100,23,197,1,248,22,81,23,199,1,249,
2,100,194,248,22,81,196,249,22,189,7,2,46,248,22,134,2,23,196,1,28, 2,100,194,248,22,81,196,249,22,189,7,2,46,248,22,134,2,23,196,1,28,
248,22,87,23,199,2,86,94,23,198,1,28,23,199,2,28,196,249,22,131,15, 248,22,87,23,199,2,86,94,23,198,1,28,23,199,2,28,196,249,22,137,15,
200,198,198,27,28,248,22,87,23,197,2,2,44,249,22,1,22,164,7,248,2, 200,198,198,27,28,248,22,87,23,197,2,2,44,249,22,1,22,164,7,248,2,
95,23,199,2,248,23,198,1,251,22,189,7,6,70,70,99,111,108,108,101,99, 95,23,199,2,248,23,198,1,251,22,189,7,6,70,70,99,111,108,108,101,99,
116,105,111,110,32,110,111,116,32,102,111,117,110,100,10,32,32,99,111,108,108, 116,105,111,110,32,110,111,116,32,102,111,117,110,100,10,32,32,99,111,108,108,
@ -393,78 +393,78 @@
99,116,105,111,110,32,100,105,114,101,99,116,111,114,105,101,115,58,126,97,126, 99,116,105,111,110,32,100,105,114,101,99,116,111,114,105,101,115,58,126,97,126,
97,28,248,22,87,23,202,1,248,2,96,23,201,1,250,22,164,7,248,2,96, 97,28,248,22,87,23,202,1,248,2,96,23,201,1,250,22,164,7,248,2,96,
23,204,1,2,45,23,201,2,249,22,1,22,164,7,249,22,2,32,0,88,163, 23,204,1,2,45,23,201,2,249,22,1,22,164,7,249,22,2,32,0,88,163,
8,36,37,44,11,9,222,33,99,249,2,100,22,177,14,23,205,2,28,249,22, 8,36,37,44,11,9,222,33,99,249,2,100,22,183,14,23,205,2,28,249,22,
5,22,133,2,23,201,2,250,22,189,7,6,49,49,10,32,32,32,115,117,98, 5,22,133,2,23,201,2,250,22,189,7,6,49,49,10,32,32,32,115,117,98,
45,99,111,108,108,101,99,116,105,111,110,58,32,126,115,10,32,32,105,110,32, 45,99,111,108,108,101,99,116,105,111,110,58,32,126,115,10,32,32,105,110,32,
112,97,114,101,110,116,32,100,105,114,101,99,116,111,114,105,101,115,58,126,97, 112,97,114,101,110,116,32,100,105,114,101,99,116,111,114,105,101,115,58,126,97,
23,201,1,250,22,1,22,164,7,248,22,2,32,0,88,163,8,36,37,45,11, 23,201,1,250,22,1,22,164,7,248,22,2,32,0,88,163,8,36,37,45,11,
9,222,33,102,249,2,100,22,133,2,23,207,1,86,95,23,199,1,23,198,1, 9,222,33,102,249,2,100,22,133,2,23,207,1,86,95,23,199,1,23,198,1,
2,44,27,248,22,80,23,200,2,27,28,248,22,177,14,23,195,2,249,22,131, 2,44,27,248,22,80,23,200,2,27,28,248,22,183,14,23,195,2,249,22,137,
15,23,196,1,23,198,2,248,22,134,2,23,195,1,28,28,248,22,177,14,248, 15,23,196,1,23,198,2,248,22,134,2,23,195,1,28,28,248,22,183,14,248,
22,80,23,202,2,248,22,190,14,23,194,2,10,27,250,22,1,22,131,15,23, 22,80,23,202,2,248,22,132,15,23,194,2,10,27,250,22,1,22,137,15,23,
197,1,23,201,2,28,28,248,22,87,23,199,2,10,248,22,190,14,23,194,2, 197,1,23,201,2,28,28,248,22,87,23,199,2,10,248,22,132,15,23,194,2,
28,23,200,2,28,28,248,22,189,14,249,22,131,15,195,202,10,27,28,248,22, 28,23,200,2,28,28,248,22,131,15,249,22,137,15,195,202,10,27,28,248,22,
177,14,201,248,22,181,14,201,200,27,248,22,144,7,23,195,2,27,28,249,22, 183,14,201,248,22,187,14,201,200,27,248,22,144,7,23,195,2,27,28,249,22,
131,4,23,196,2,40,28,249,22,147,7,6,4,4,46,114,107,116,249,22,163, 131,4,23,196,2,40,28,249,22,147,7,6,4,4,46,114,107,116,249,22,163,
7,23,199,2,249,22,183,3,23,200,2,40,249,22,164,7,250,22,163,7,23, 7,23,199,2,249,22,183,3,23,200,2,40,249,22,164,7,250,22,163,7,23,
200,1,36,249,22,183,3,23,201,1,40,6,3,3,46,115,115,86,95,23,195, 200,1,36,249,22,183,3,23,201,1,40,6,3,3,46,115,115,86,95,23,195,
1,23,194,1,11,11,28,23,193,2,248,22,189,14,249,22,131,15,198,23,196, 1,23,194,1,11,11,28,23,193,2,248,22,131,15,249,22,137,15,198,23,196,
1,11,28,199,249,22,131,15,194,201,192,254,2,94,202,203,204,205,206,248,22, 1,11,28,199,249,22,137,15,194,201,192,254,2,94,202,203,204,205,206,248,22,
81,23,16,28,23,16,23,16,199,28,199,249,22,131,15,194,201,192,254,2,94, 81,23,16,28,23,16,23,16,199,28,199,249,22,137,15,194,201,192,254,2,94,
202,203,204,205,206,248,22,81,23,16,23,16,254,2,94,201,202,203,204,205,248, 202,203,204,205,206,248,22,81,23,16,23,16,254,2,94,201,202,203,204,205,248,
22,81,23,15,23,15,90,159,38,11,89,161,38,36,11,249,80,159,40,58,39, 22,81,23,15,23,15,90,159,38,11,89,161,38,36,11,249,80,159,40,58,39,
23,199,1,23,200,1,27,248,22,67,28,248,22,177,14,195,248,22,181,14,195, 23,199,1,23,200,1,27,248,22,67,28,248,22,183,14,195,248,22,187,14,195,
194,27,247,22,158,15,27,250,22,93,28,23,197,2,28,247,22,157,15,27,248, 194,27,247,22,164,15,27,250,22,93,28,23,197,2,28,247,22,163,15,27,248,
80,159,46,56,39,10,27,250,22,160,2,23,197,2,23,203,2,11,28,23,193, 80,159,46,56,39,10,27,250,22,160,2,23,197,2,23,203,2,11,28,23,193,
2,192,86,94,23,193,1,250,22,160,2,23,197,1,11,9,9,9,28,23,197, 2,192,86,94,23,193,1,250,22,160,2,23,197,1,11,9,9,9,28,23,197,
1,28,80,159,44,50,38,27,248,80,159,46,56,39,11,27,250,22,160,2,23, 1,28,80,159,44,50,38,27,248,80,159,46,56,39,11,27,250,22,160,2,23,
197,2,23,203,1,11,28,23,193,2,192,86,94,23,193,1,250,22,160,2,23, 197,2,23,203,1,11,28,23,193,2,192,86,94,23,193,1,250,22,160,2,23,
197,1,11,9,86,94,23,198,1,9,9,247,22,155,15,254,2,94,199,202,203, 197,1,11,9,86,94,23,198,1,9,9,247,22,161,15,254,2,94,199,202,203,
205,23,16,199,11,86,95,28,28,248,22,178,14,23,194,2,10,28,248,22,177, 205,23,16,199,11,86,95,28,28,248,22,184,14,23,194,2,10,28,248,22,183,
14,23,194,2,10,28,248,22,141,7,23,194,2,28,248,22,135,15,23,194,2, 14,23,194,2,10,28,248,22,141,7,23,194,2,28,248,22,141,15,23,194,2,
10,248,22,136,15,23,194,2,11,12,252,22,188,9,23,200,2,2,33,36,23, 10,248,22,142,15,23,194,2,11,12,252,22,188,9,23,200,2,2,33,36,23,
198,2,23,199,2,28,28,248,22,141,7,23,195,2,10,248,22,130,8,23,195, 198,2,23,199,2,28,28,248,22,141,7,23,195,2,10,248,22,130,8,23,195,
2,86,94,23,194,1,12,252,22,188,9,23,200,2,2,47,37,23,198,2,23, 2,86,94,23,194,1,12,252,22,188,9,23,200,2,2,47,37,23,198,2,23,
199,1,90,159,39,11,89,161,39,36,11,248,22,134,15,23,197,2,86,94,23, 199,1,90,159,39,11,89,161,39,36,11,248,22,140,15,23,197,2,86,94,23,
195,1,86,94,28,192,12,250,22,191,9,23,201,1,2,48,23,199,1,249,22, 195,1,86,94,28,192,12,250,22,191,9,23,201,1,2,48,23,199,1,249,22,
7,194,195,90,159,38,11,89,161,38,36,11,86,95,28,28,248,22,178,14,23, 7,194,195,90,159,38,11,89,161,38,36,11,86,95,28,28,248,22,184,14,23,
196,2,10,28,248,22,177,14,23,196,2,10,28,248,22,141,7,23,196,2,28, 196,2,10,28,248,22,183,14,23,196,2,10,28,248,22,141,7,23,196,2,28,
248,22,135,15,23,196,2,10,248,22,136,15,23,196,2,11,12,252,22,188,9, 248,22,141,15,23,196,2,10,248,22,142,15,23,196,2,11,12,252,22,188,9,
2,26,2,33,36,23,200,2,23,201,2,28,28,248,22,141,7,23,197,2,10, 2,26,2,33,36,23,200,2,23,201,2,28,28,248,22,141,7,23,197,2,10,
248,22,130,8,23,197,2,12,252,22,188,9,2,26,2,47,37,23,200,2,23, 248,22,130,8,23,197,2,12,252,22,188,9,2,26,2,47,37,23,200,2,23,
201,2,90,159,39,11,89,161,39,36,11,248,22,134,15,23,199,2,86,94,23, 201,2,90,159,39,11,89,161,39,36,11,248,22,140,15,23,199,2,86,94,23,
195,1,86,94,28,192,12,250,22,191,9,2,26,2,48,23,201,2,249,22,7, 195,1,86,94,28,192,12,250,22,191,9,2,26,2,48,23,201,2,249,22,7,
194,195,27,249,22,187,14,250,22,176,15,0,20,35,114,120,35,34,40,63,58, 194,195,27,249,22,129,15,250,22,182,15,0,20,35,114,120,35,34,40,63,58,
91,46,93,91,94,46,93,42,124,41,36,34,248,22,183,14,23,201,1,28,248, 91,46,93,91,94,46,93,42,124,41,36,34,248,22,189,14,23,201,1,28,248,
22,141,7,23,203,2,249,22,156,8,23,204,1,8,63,23,202,1,28,248,22, 22,141,7,23,203,2,249,22,156,8,23,204,1,8,63,23,202,1,28,248,22,
178,14,23,199,2,248,22,179,14,23,199,1,86,94,23,198,1,247,22,180,14, 184,14,23,199,2,248,22,185,14,23,199,1,86,94,23,198,1,247,22,186,14,
28,248,22,177,14,194,249,22,131,15,195,194,192,90,159,38,11,89,161,38,36, 28,248,22,183,14,194,249,22,137,15,195,194,192,90,159,38,11,89,161,38,36,
11,86,95,28,28,248,22,178,14,23,196,2,10,28,248,22,177,14,23,196,2, 11,86,95,28,28,248,22,184,14,23,196,2,10,28,248,22,183,14,23,196,2,
10,28,248,22,141,7,23,196,2,28,248,22,135,15,23,196,2,10,248,22,136, 10,28,248,22,141,7,23,196,2,28,248,22,141,15,23,196,2,10,248,22,142,
15,23,196,2,11,12,252,22,188,9,2,27,2,33,36,23,200,2,23,201,2, 15,23,196,2,11,12,252,22,188,9,2,27,2,33,36,23,200,2,23,201,2,
28,28,248,22,141,7,23,197,2,10,248,22,130,8,23,197,2,12,252,22,188, 28,28,248,22,141,7,23,197,2,10,248,22,130,8,23,197,2,12,252,22,188,
9,2,27,2,47,37,23,200,2,23,201,2,90,159,39,11,89,161,39,36,11, 9,2,27,2,47,37,23,200,2,23,201,2,90,159,39,11,89,161,39,36,11,
248,22,134,15,23,199,2,86,94,23,195,1,86,94,28,192,12,250,22,191,9, 248,22,140,15,23,199,2,86,94,23,195,1,86,94,28,192,12,250,22,191,9,
2,27,2,48,23,201,2,249,22,7,194,195,27,249,22,187,14,249,22,142,8, 2,27,2,48,23,201,2,249,22,7,194,195,27,249,22,129,15,249,22,142,8,
250,22,177,15,0,9,35,114,120,35,34,91,46,93,34,248,22,183,14,23,203, 250,22,183,15,0,9,35,114,120,35,34,91,46,93,34,248,22,189,14,23,203,
1,6,1,1,95,28,248,22,141,7,23,202,2,249,22,156,8,23,203,1,8, 1,6,1,1,95,28,248,22,141,7,23,202,2,249,22,156,8,23,203,1,8,
63,23,201,1,28,248,22,178,14,23,199,2,248,22,179,14,23,199,1,86,94, 63,23,201,1,28,248,22,184,14,23,199,2,248,22,185,14,23,199,1,86,94,
23,198,1,247,22,180,14,28,248,22,177,14,194,249,22,131,15,195,194,192,249, 23,198,1,247,22,186,14,28,248,22,183,14,194,249,22,137,15,195,194,192,249,
247,22,171,5,194,11,249,247,22,171,5,194,11,27,247,22,157,15,249,80,159, 247,22,171,5,194,11,249,247,22,171,5,194,11,27,247,22,163,15,249,80,159,
39,40,38,28,23,195,2,27,248,22,161,8,2,49,28,192,192,2,44,2,44, 39,40,38,28,23,195,2,27,248,22,161,8,2,49,28,192,192,2,44,2,44,
27,28,23,196,1,250,22,131,15,248,22,153,15,2,50,247,22,159,8,2,51, 27,28,23,196,1,250,22,137,15,248,22,159,15,2,50,247,22,159,8,2,51,
11,27,248,80,159,42,8,29,39,250,22,93,9,248,22,89,248,22,153,15,2, 11,27,248,80,159,42,8,29,39,250,22,93,9,248,22,89,248,22,159,15,2,
41,9,28,193,249,22,79,195,194,192,27,247,22,157,15,249,80,159,39,40,38, 41,9,28,193,249,22,79,195,194,192,27,247,22,163,15,249,80,159,39,40,38,
28,23,195,2,27,248,22,161,8,2,49,28,192,192,2,44,2,44,27,28,23, 28,23,195,2,27,248,22,161,8,2,49,28,192,192,2,44,2,44,27,28,23,
196,1,250,22,131,15,248,22,153,15,2,50,247,22,159,8,2,51,11,27,248, 196,1,250,22,137,15,248,22,159,15,2,50,247,22,159,8,2,51,11,27,248,
80,159,42,8,30,39,250,22,93,23,203,1,248,22,89,248,22,153,15,2,41, 80,159,42,8,30,39,250,22,93,23,203,1,248,22,89,248,22,159,15,2,41,
9,28,193,249,22,79,195,194,192,27,247,22,157,15,249,80,159,39,40,38,28, 9,28,193,249,22,79,195,194,192,27,247,22,163,15,249,80,159,39,40,38,28,
23,195,2,27,248,22,161,8,2,49,28,192,192,2,44,2,44,27,28,23,196, 23,195,2,27,248,22,161,8,2,49,28,192,192,2,44,2,44,27,28,23,196,
1,250,22,131,15,248,22,153,15,2,50,247,22,159,8,2,51,11,27,248,80, 1,250,22,137,15,248,22,159,15,2,50,247,22,159,8,2,51,11,27,248,80,
159,42,8,31,39,250,22,93,23,203,1,248,22,89,248,22,153,15,2,41,23, 159,42,8,31,39,250,22,93,23,203,1,248,22,89,248,22,159,15,2,41,23,
204,1,28,193,249,22,79,195,194,192,86,94,249,22,130,7,247,22,167,5,195, 204,1,28,193,249,22,79,195,194,192,86,94,249,22,130,7,247,22,167,5,195,
248,22,154,6,249,22,135,4,36,249,22,183,3,197,198,27,28,23,197,2,86, 248,22,154,6,249,22,135,4,36,249,22,183,3,197,198,27,28,23,197,2,86,
95,23,196,1,23,195,1,23,197,1,86,94,23,197,1,27,248,22,153,15,2, 95,23,196,1,23,195,1,23,197,1,86,94,23,197,1,27,248,22,159,15,2,
32,27,250,80,159,42,39,39,23,197,1,11,11,27,248,22,138,4,23,199,1, 32,27,250,80,159,42,39,39,23,197,1,11,11,27,248,22,138,4,23,199,1,
27,28,23,194,2,23,194,1,86,94,23,194,1,36,27,248,22,138,4,23,202, 27,28,23,194,2,23,194,1,86,94,23,194,1,36,27,248,22,138,4,23,202,
1,27,28,23,194,2,23,194,1,86,94,23,194,1,36,249,22,134,6,23,199, 1,27,28,23,194,2,23,194,1,86,94,23,194,1,36,249,22,134,6,23,199,
@ -496,7 +496,7 @@
16,2,88,163,36,37,54,38,2,4,223,0,33,57,80,159,36,38,37,20,15, 16,2,88,163,36,37,54,38,2,4,223,0,33,57,80,159,36,38,37,20,15,
16,2,20,25,96,2,5,88,163,8,36,39,8,25,52,9,223,0,33,64,88, 16,2,20,25,96,2,5,88,163,8,36,39,8,25,52,9,223,0,33,64,88,
163,36,38,47,44,9,223,0,33,65,88,163,36,37,46,44,9,223,0,33,66, 163,36,38,47,44,9,223,0,33,65,88,163,36,37,46,44,9,223,0,33,66,
80,159,36,39,37,20,15,16,2,27,248,22,161,15,248,22,155,8,27,28,249, 80,159,36,39,37,20,15,16,2,27,248,22,167,15,248,22,155,8,27,28,249,
22,151,9,247,22,163,8,2,34,6,1,1,59,6,1,1,58,250,22,189,7, 22,151,9,247,22,163,8,2,34,6,1,1,59,6,1,1,58,250,22,189,7,
6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23, 6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,
196,1,88,163,8,36,38,48,11,2,6,223,0,33,70,80,159,36,40,37,20, 196,1,88,163,8,36,38,48,11,2,6,223,0,33,70,80,159,36,40,37,20,
@ -505,7 +505,7 @@
36,42,37,20,15,16,2,32,0,88,163,8,36,38,46,11,2,9,222,33,74, 36,42,37,20,15,16,2,32,0,88,163,8,36,38,46,11,2,9,222,33,74,
80,159,36,43,37,20,15,16,2,88,163,45,39,49,8,128,8,2,10,223,0, 80,159,36,43,37,20,15,16,2,88,163,45,39,49,8,128,8,2,10,223,0,
33,76,80,159,36,44,37,20,15,16,2,88,163,45,40,50,8,128,8,2,12, 33,76,80,159,36,44,37,20,15,16,2,88,163,45,40,50,8,128,8,2,12,
223,0,33,78,80,159,36,46,37,20,15,16,2,248,22,153,15,70,108,105,110, 223,0,33,78,80,159,36,46,37,20,15,16,2,248,22,159,15,70,108,105,110,
107,115,45,102,105,108,101,80,159,36,47,37,20,15,16,2,247,22,140,2,80, 107,115,45,102,105,108,101,80,159,36,47,37,20,15,16,2,247,22,140,2,80,
158,36,48,20,15,16,2,2,79,80,158,36,49,20,15,16,2,248,80,159,37, 158,36,48,20,15,16,2,2,79,80,158,36,49,20,15,16,2,248,80,159,37,
51,37,88,163,36,36,49,8,240,8,0,3,0,9,223,1,33,80,80,159,36, 51,37,88,163,36,36,49,8,240,8,0,3,0,9,223,1,33,80,80,159,36,
@ -529,7 +529,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 8952); EVAL_ONE_SIZED_STR((char *)expr, 8952);
} }
{ {
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,56,84,0,0,0,0,0,0,0,0,0, SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,50,48,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,1,0,0,15,0,40, 0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,1,0,0,15,0,40,
0,57,0,75,0,97,0,120,0,140,0,162,0,169,0,176,0,183,0,0,0, 0,57,0,75,0,97,0,120,0,140,0,162,0,169,0,176,0,183,0,0,0,
179,1,0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,1,23, 179,1,0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,1,23,
@ -556,7 +556,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 502); EVAL_ONE_SIZED_STR((char *)expr, 502);
} }
{ {
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,56,84,0,0,0,0,0,0,0,0,0, SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,50,48,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,1,0,0,7,0,18, 0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,1,0,0,7,0,18,
0,45,0,51,0,60,0,67,0,89,0,102,0,128,0,145,0,167,0,175,0, 0,45,0,51,0,60,0,67,0,89,0,102,0,128,0,145,0,167,0,175,0,
187,0,202,0,218,0,236,0,0,1,12,1,28,1,51,1,63,1,94,1,101, 187,0,202,0,218,0,236,0,0,1,12,1,28,1,51,1,63,1,94,1,101,
@ -590,33 +590,33 @@
109,111,100,6,2,2,46,46,6,1,1,46,64,102,105,108,101,66,112,108,97, 109,111,100,6,2,2,46,46,6,1,1,46,64,102,105,108,101,66,112,108,97,
110,101,116,6,8,8,109,97,105,110,46,114,107,116,6,4,4,46,114,107,116, 110,101,116,6,8,8,109,97,105,110,46,114,107,116,6,4,4,46,114,107,116,
67,105,103,110,111,114,101,100,249,22,14,195,80,159,38,50,38,249,80,159,38, 67,105,103,110,111,114,101,100,249,22,14,195,80,159,38,50,38,249,80,159,38,
53,39,195,10,90,159,39,11,89,161,39,36,11,248,22,134,15,197,86,95,23, 53,39,195,10,90,159,39,11,89,161,39,36,11,248,22,140,15,197,86,95,23,
195,1,23,193,1,28,249,22,165,15,0,11,35,114,120,34,91,46,93,115,115, 195,1,23,193,1,28,249,22,171,15,0,11,35,114,120,34,91,46,93,115,115,
36,34,248,22,182,14,23,197,1,249,80,159,41,57,39,198,2,26,196,27,28, 36,34,248,22,188,14,23,197,1,249,80,159,41,57,39,198,2,26,196,27,28,
23,195,2,28,249,22,151,9,23,197,2,80,158,39,51,86,94,23,195,1,80, 23,195,2,28,249,22,151,9,23,197,2,80,158,39,51,86,94,23,195,1,80,
158,37,52,27,248,22,148,5,23,197,2,27,28,248,22,77,23,195,2,248,22, 158,37,52,27,248,22,148,5,23,197,2,27,28,248,22,77,23,195,2,248,22,
80,23,195,1,23,194,1,28,248,22,177,14,23,194,2,90,159,39,11,89,161, 80,23,195,1,23,194,1,28,248,22,183,14,23,194,2,90,159,39,11,89,161,
39,36,11,248,22,134,15,23,197,1,86,95,20,18,159,11,80,158,42,51,199, 39,36,11,248,22,140,15,23,197,1,86,95,20,18,159,11,80,158,42,51,199,
20,18,159,11,80,158,42,52,192,192,11,11,28,23,193,2,192,86,94,23,193, 20,18,159,11,80,158,42,52,192,192,11,11,28,23,193,2,192,86,94,23,193,
1,27,247,22,172,5,28,192,192,247,22,154,15,28,24,194,2,12,20,13,159, 1,27,247,22,172,5,28,192,192,247,22,160,15,28,24,194,2,12,20,13,159,
80,159,36,56,37,80,158,36,54,89,161,37,37,10,249,22,190,4,21,94,2, 80,159,36,56,37,80,158,36,54,89,161,37,37,10,249,22,190,4,21,94,2,
27,6,19,19,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,114, 27,6,19,19,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,114,
107,116,1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,109, 107,116,1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,109,
101,45,114,101,115,111,108,118,101,114,12,250,22,131,15,23,197,1,23,199,1, 101,45,114,101,115,111,108,118,101,114,12,250,22,137,15,23,197,1,23,199,1,
249,80,159,43,42,39,23,198,1,2,30,250,22,131,15,23,197,1,23,199,1, 249,80,159,43,42,39,23,198,1,2,30,250,22,137,15,23,197,1,23,199,1,
249,80,159,43,42,39,23,198,1,2,30,252,22,131,15,23,199,1,23,201,1, 249,80,159,43,42,39,23,198,1,2,30,252,22,137,15,23,199,1,23,201,1,
2,31,247,22,164,8,249,80,159,45,42,39,23,200,1,80,159,45,36,38,252, 2,31,247,22,164,8,249,80,159,45,42,39,23,200,1,80,159,45,36,38,252,
22,131,15,23,199,1,23,201,1,2,31,247,22,164,8,249,80,159,45,42,39, 22,137,15,23,199,1,23,201,1,2,31,247,22,164,8,249,80,159,45,42,39,
23,200,1,80,159,45,36,38,27,252,22,131,15,23,200,1,23,202,1,2,31, 23,200,1,80,159,45,36,38,27,252,22,137,15,23,200,1,23,202,1,2,31,
247,22,164,8,249,80,159,46,42,39,23,201,1,80,159,46,36,38,27,250,22, 247,22,164,8,249,80,159,46,42,39,23,201,1,80,159,46,36,38,27,250,22,
148,15,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,79, 154,15,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,79,
195,194,11,27,252,22,131,15,23,200,1,23,202,1,2,31,247,22,164,8,249, 195,194,11,27,252,22,137,15,23,200,1,23,202,1,2,31,247,22,164,8,249,
80,159,46,42,39,23,201,1,80,159,46,36,38,27,250,22,148,15,196,11,32, 80,159,46,42,39,23,201,1,80,159,46,36,38,27,250,22,154,15,196,11,32,
0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,79,195,194,11,27,250, 0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,79,195,194,11,27,250,
22,131,15,23,198,1,23,200,1,249,80,159,44,42,39,23,199,1,2,30,27, 22,137,15,23,198,1,23,200,1,249,80,159,44,42,39,23,199,1,2,30,27,
250,22,148,15,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249, 250,22,154,15,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,
22,79,195,194,11,27,250,22,131,15,23,198,1,23,200,1,249,80,159,44,42, 22,79,195,194,11,27,250,22,137,15,23,198,1,23,200,1,249,80,159,44,42,
39,23,199,1,2,30,27,250,22,148,15,196,11,32,0,88,163,8,36,36,41, 39,23,199,1,2,30,27,250,22,154,15,196,11,32,0,88,163,8,36,36,41,
11,9,222,11,28,192,249,22,79,195,194,11,86,95,28,248,80,159,37,40,39, 11,9,222,11,28,192,249,22,79,195,194,11,86,95,28,248,80,159,37,40,39,
23,195,2,12,250,22,188,9,2,28,6,12,12,112,97,116,104,45,115,116,114, 23,195,2,12,250,22,188,9,2,28,6,12,12,112,97,116,104,45,115,116,114,
105,110,103,63,23,197,2,28,28,23,195,2,28,248,22,64,23,196,2,10,28, 105,110,103,63,23,197,2,28,28,23,195,2,28,248,22,64,23,196,2,10,28,
@ -627,30 +627,30 @@
111,110,115,47,99,32,40,111,114,47,99,32,35,102,32,115,121,109,98,111,108, 111,110,115,47,99,32,40,111,114,47,99,32,35,102,32,115,121,109,98,111,108,
63,41,32,40,110,111,110,45,101,109,112,116,121,45,108,105,115,116,111,102,32, 63,41,32,40,110,111,110,45,101,109,112,116,121,45,108,105,115,116,111,102,32,
115,121,109,98,111,108,63,41,41,41,23,197,2,27,28,23,196,2,247,22,188, 115,121,109,98,111,108,63,41,41,41,23,197,2,27,28,23,196,2,247,22,188,
4,11,27,28,23,194,2,250,22,160,2,80,158,41,41,248,22,190,15,247,22, 4,11,27,28,23,194,2,250,22,160,2,80,158,41,41,248,22,132,16,247,22,
152,13,11,11,27,28,23,194,2,250,22,160,2,248,22,81,23,198,2,23,198, 158,13,11,11,27,28,23,194,2,250,22,160,2,248,22,81,23,198,2,23,198,
2,11,11,28,23,193,2,86,96,23,197,1,23,195,1,23,194,1,20,13,159, 2,11,11,28,23,193,2,86,96,23,197,1,23,195,1,23,194,1,20,13,159,
80,159,39,38,37,250,80,159,42,39,37,249,22,33,11,80,159,44,38,37,22, 80,159,39,38,37,250,80,159,42,39,37,249,22,33,11,80,159,44,38,37,22,
189,4,248,22,104,196,27,248,22,113,194,20,13,159,80,159,40,38,37,250,80, 189,4,248,22,104,196,27,248,22,113,194,20,13,159,80,159,40,38,37,250,80,
159,43,39,37,249,22,33,11,80,159,45,38,37,22,172,5,28,248,22,177,14, 159,43,39,37,249,22,33,11,80,159,45,38,37,22,172,5,28,248,22,183,14,
23,197,2,23,196,1,86,94,23,196,1,247,22,154,15,249,247,22,170,5,248, 23,197,2,23,196,1,86,94,23,196,1,247,22,160,15,249,247,22,170,5,248,
22,80,196,200,86,94,23,193,1,90,159,46,11,89,161,37,36,11,28,248,22, 22,80,196,200,86,94,23,193,1,90,159,46,11,89,161,37,36,11,28,248,22,
137,15,23,208,2,23,207,2,27,247,22,172,5,28,23,193,2,249,22,138,15, 143,15,23,208,2,23,207,2,27,247,22,172,5,28,23,193,2,249,22,144,15,
23,210,2,23,195,1,23,208,2,89,161,39,37,11,248,22,134,15,23,208,1, 23,210,2,23,195,1,23,208,2,89,161,39,37,11,248,22,140,15,23,208,1,
86,94,23,196,1,89,161,38,40,11,28,23,208,2,27,248,22,182,14,23,197, 86,94,23,196,1,89,161,38,40,11,28,23,208,2,27,248,22,188,14,23,197,
2,27,248,22,135,8,23,195,2,28,28,249,22,131,4,23,195,2,40,249,22, 2,27,248,22,135,8,23,195,2,28,28,249,22,131,4,23,195,2,40,249,22,
138,8,2,26,249,22,141,8,23,198,2,249,22,183,3,23,199,2,40,11,249, 138,8,2,26,249,22,141,8,23,198,2,249,22,183,3,23,199,2,40,11,249,
22,7,23,199,2,248,22,186,14,249,22,142,8,250,22,141,8,23,202,1,36, 22,7,23,199,2,248,22,128,15,249,22,142,8,250,22,141,8,23,202,1,36,
249,22,183,3,23,203,1,40,5,3,46,115,115,249,22,7,23,199,2,11,249, 249,22,183,3,23,203,1,40,5,3,46,115,115,249,22,7,23,199,2,11,249,
22,7,23,197,2,11,89,161,37,42,11,28,249,22,151,9,23,199,2,23,197, 22,7,23,197,2,11,89,161,37,42,11,28,249,22,151,9,23,199,2,23,197,
2,23,193,2,249,22,131,15,23,196,2,23,199,2,89,161,37,43,11,28,23, 2,23,193,2,249,22,137,15,23,196,2,23,199,2,89,161,37,43,11,28,23,
198,2,28,249,22,151,9,23,200,2,23,197,1,23,193,1,86,94,23,193,1, 198,2,28,249,22,151,9,23,200,2,23,197,1,23,193,1,86,94,23,193,1,
249,22,131,15,23,196,2,23,200,2,86,94,23,195,1,11,89,161,37,44,11, 249,22,137,15,23,196,2,23,200,2,86,94,23,195,1,11,89,161,37,44,11,
28,249,22,151,9,23,196,2,68,114,101,108,97,116,105,118,101,86,94,23,194, 28,249,22,151,9,23,196,2,68,114,101,108,97,116,105,118,101,86,94,23,194,
1,2,29,23,194,1,89,161,37,45,11,247,22,156,15,27,250,22,148,15,23, 1,2,29,23,194,1,89,161,37,45,11,247,22,162,15,27,250,22,154,15,23,
203,2,11,32,0,88,163,8,36,36,41,11,9,222,11,27,28,23,194,2,249, 203,2,11,32,0,88,163,8,36,36,41,11,9,222,11,27,28,23,194,2,249,
22,79,23,203,2,23,196,1,86,94,23,194,1,11,27,28,23,203,2,28,23, 22,79,23,203,2,23,196,1,86,94,23,194,1,11,27,28,23,203,2,28,23,
194,2,11,27,250,22,148,15,23,207,2,11,32,0,88,163,8,36,36,41,11, 194,2,11,27,250,22,154,15,23,207,2,11,32,0,88,163,8,36,36,41,11,
9,222,11,28,192,249,22,79,23,206,2,194,11,11,27,28,23,195,2,23,195, 9,222,11,28,192,249,22,79,23,206,2,194,11,11,27,28,23,195,2,23,195,
2,23,194,2,27,88,163,36,37,50,8,64,62,122,111,225,18,13,9,33,47, 2,23,194,2,27,88,163,36,37,50,8,64,62,122,111,225,18,13,9,33,47,
27,88,163,36,37,50,8,64,66,97,108,116,45,122,111,225,19,14,11,33,48, 27,88,163,36,37,50,8,64,66,97,108,116,45,122,111,225,19,14,11,33,48,
@ -666,8 +666,8 @@
194,1,20,13,159,80,159,8,24,38,37,250,80,159,8,27,39,37,249,22,33, 194,1,20,13,159,80,159,8,24,38,37,250,80,159,8,27,39,37,249,22,33,
11,80,159,8,29,38,37,22,189,4,11,20,13,159,80,159,8,24,38,37,250, 11,80,159,8,29,38,37,22,189,4,11,20,13,159,80,159,8,24,38,37,250,
80,159,8,27,39,37,249,22,33,11,80,159,8,29,38,37,22,172,5,28,248, 80,159,8,27,39,37,249,22,33,11,80,159,8,29,38,37,22,172,5,28,248,
22,177,14,23,216,2,23,215,1,86,94,23,215,1,247,22,154,15,249,247,22, 22,183,14,23,216,2,23,215,1,86,94,23,215,1,247,22,160,15,249,247,22,
160,15,248,22,80,195,23,28,86,94,23,193,1,27,28,23,195,2,28,23,197, 166,15,248,22,80,195,23,28,86,94,23,193,1,27,28,23,195,2,28,23,197,
1,27,249,22,5,88,163,8,36,37,53,8,65,9,225,28,23,20,33,52,23, 1,27,249,22,5,88,163,8,36,37,53,8,65,9,225,28,23,20,33,52,23,
217,2,27,28,23,204,2,11,193,28,192,192,28,193,28,203,28,249,22,131,4, 217,2,27,28,23,204,2,11,193,28,192,192,28,193,28,203,28,249,22,131,4,
248,22,81,196,248,22,81,206,193,11,11,11,11,86,94,23,197,1,11,28,23, 248,22,81,196,248,22,81,206,193,11,11,11,11,86,94,23,197,1,11,28,23,
@ -675,8 +675,8 @@
1,23,201,1,23,200,1,23,199,1,23,196,1,23,195,1,20,13,159,80,159, 1,23,201,1,23,200,1,23,199,1,23,196,1,23,195,1,20,13,159,80,159,
8,25,38,37,250,80,159,8,28,39,37,249,22,33,11,80,159,8,30,38,37, 8,25,38,37,250,80,159,8,28,39,37,249,22,33,11,80,159,8,30,38,37,
22,189,4,23,215,1,20,13,159,80,159,8,25,38,37,250,80,159,8,28,39, 22,189,4,23,215,1,20,13,159,80,159,8,25,38,37,250,80,159,8,28,39,
37,249,22,33,11,80,159,8,30,38,37,22,172,5,28,248,22,177,14,23,217, 37,249,22,33,11,80,159,8,30,38,37,22,172,5,28,248,22,183,14,23,217,
2,23,216,1,86,94,23,216,1,247,22,154,15,249,247,22,160,15,248,22,80, 2,23,216,1,86,94,23,216,1,247,22,160,15,249,247,22,166,15,248,22,80,
195,23,29,86,94,23,193,1,27,28,23,197,2,28,23,201,1,27,249,22,5, 195,23,29,86,94,23,193,1,27,28,23,197,2,28,23,201,1,27,249,22,5,
20,20,94,88,163,8,36,37,51,8,64,9,225,29,24,20,33,53,23,213,1, 20,20,94,88,163,8,36,37,51,8,64,9,225,29,24,20,33,53,23,213,1,
23,218,2,27,28,23,204,2,11,193,28,192,192,28,193,28,23,204,2,28,249, 23,218,2,27,28,23,204,2,11,193,28,192,192,28,193,28,23,204,2,28,249,
@ -687,8 +687,8 @@
22,89,23,199,1,11,23,221,2,12,20,13,159,80,159,8,26,38,37,250,80, 22,89,23,199,1,11,23,221,2,12,20,13,159,80,159,8,26,38,37,250,80,
159,8,29,39,37,249,22,33,11,80,159,8,31,38,37,22,189,4,11,20,13, 159,8,29,39,37,249,22,33,11,80,159,8,31,38,37,22,189,4,11,20,13,
159,80,159,8,26,38,37,250,80,159,8,29,39,37,249,22,33,11,80,159,8, 159,80,159,8,26,38,37,250,80,159,8,29,39,37,249,22,33,11,80,159,8,
31,38,37,22,172,5,28,248,22,177,14,23,218,2,23,217,1,86,94,23,217, 31,38,37,22,172,5,28,248,22,183,14,23,218,2,23,217,1,86,94,23,217,
1,247,22,154,15,249,247,22,170,5,248,22,80,195,23,30,86,94,23,193,1, 1,247,22,160,15,249,247,22,170,5,248,22,80,195,23,30,86,94,23,193,1,
27,28,23,197,1,28,23,201,1,27,249,22,5,20,20,94,88,163,8,36,37, 27,28,23,197,1,28,23,201,1,27,249,22,5,20,20,94,88,163,8,36,37,
51,8,64,9,225,30,25,22,33,54,23,215,1,23,219,1,27,28,23,205,2, 51,8,64,9,225,30,25,22,33,54,23,215,1,23,219,1,27,28,23,205,2,
11,193,28,192,192,28,193,28,204,28,249,22,131,4,248,22,81,196,248,22,81, 11,193,28,192,192,28,193,28,204,28,249,22,131,4,248,22,81,196,248,22,81,
@ -698,16 +698,16 @@
23,221,2,23,222,2,12,20,13,159,80,159,8,27,38,37,250,80,159,8,30, 23,221,2,23,222,2,12,20,13,159,80,159,8,27,38,37,250,80,159,8,30,
39,37,249,22,33,11,80,159,8,32,38,37,22,189,4,23,217,1,20,13,159, 39,37,249,22,33,11,80,159,8,32,38,37,22,189,4,23,217,1,20,13,159,
80,159,8,27,38,37,250,80,159,8,30,39,37,249,22,33,11,80,159,8,32, 80,159,8,27,38,37,250,80,159,8,30,39,37,249,22,33,11,80,159,8,32,
38,37,22,172,5,28,248,22,177,14,23,219,2,23,218,1,86,94,23,218,1, 38,37,22,172,5,28,248,22,183,14,23,219,2,23,218,1,86,94,23,218,1,
247,22,154,15,249,247,22,170,5,248,22,80,195,23,31,86,94,23,193,1,28, 247,22,160,15,249,247,22,170,5,248,22,80,195,23,31,86,94,23,193,1,28,
28,248,22,77,23,223,2,248,22,80,23,223,2,10,27,28,23,199,2,86,94, 28,248,22,77,23,223,2,248,22,80,23,223,2,10,27,28,23,199,2,86,94,
23,215,1,23,214,1,86,94,23,214,1,23,215,1,28,28,248,22,77,23,224, 23,215,1,23,214,1,86,94,23,214,1,23,215,1,28,28,248,22,77,23,224,
32,0,0,0,2,248,22,149,9,248,22,189,14,23,195,2,11,12,20,13,159, 32,0,0,0,2,248,22,149,9,248,22,131,15,23,195,2,11,12,20,13,159,
80,159,8,28,38,37,250,80,159,8,31,39,37,249,22,33,11,80,159,8,33, 80,159,8,28,38,37,250,80,159,8,31,39,37,249,22,33,11,80,159,8,33,
38,37,22,189,4,28,23,33,28,23,202,1,11,195,86,94,23,202,1,11,20, 38,37,22,189,4,28,23,33,28,23,202,1,11,195,86,94,23,202,1,11,20,
13,159,80,159,8,28,38,37,250,80,159,8,31,39,37,249,22,33,11,80,159, 13,159,80,159,8,28,38,37,250,80,159,8,31,39,37,249,22,33,11,80,159,
8,33,38,37,22,172,5,28,248,22,177,14,23,220,2,23,219,1,86,94,23, 8,33,38,37,22,172,5,28,248,22,183,14,23,220,2,23,219,1,86,94,23,
219,1,247,22,154,15,249,247,22,170,5,194,23,32,12,28,193,250,22,158,2, 219,1,247,22,160,15,249,247,22,170,5,194,23,32,12,28,193,250,22,158,2,
248,22,81,197,195,250,22,89,200,201,202,12,27,249,22,171,8,80,159,39,46, 248,22,81,197,195,250,22,89,200,201,202,12,27,249,22,171,8,80,159,39,46,
38,249,22,190,3,248,22,186,3,248,22,173,2,200,8,128,8,27,28,193,248, 38,249,22,190,3,248,22,186,3,248,22,173,2,200,8,128,8,27,28,193,248,
22,176,2,194,11,28,192,27,249,22,102,198,195,28,192,248,22,81,193,11,11, 22,176,2,194,11,28,192,27,249,22,102,198,195,28,192,248,22,81,193,11,11,
@ -715,12 +715,12 @@
8,80,159,40,46,38,195,27,28,193,248,22,176,2,194,11,250,22,172,8,80, 8,80,159,40,46,38,195,27,28,193,248,22,176,2,194,11,250,22,172,8,80,
159,42,46,38,197,248,22,175,2,249,22,79,249,22,79,204,205,28,198,198,9, 159,42,46,38,197,248,22,175,2,249,22,79,249,22,79,204,205,28,198,198,9,
0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,32,60, 0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,32,60,
88,163,8,36,37,59,11,2,32,222,33,61,27,249,22,165,15,2,59,23,196, 88,163,8,36,37,59,11,2,32,222,33,61,27,249,22,171,15,2,59,23,196,
2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,27,248, 2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,27,248,
22,113,23,197,1,27,249,22,165,15,2,59,23,196,2,28,23,193,2,86,94, 22,113,23,197,1,27,249,22,171,15,2,59,23,196,2,28,23,193,2,86,94,
23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,249, 23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,249,
22,165,15,2,59,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,248, 22,171,15,2,59,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,248,
22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,165,15,2,59,23,196, 22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,171,15,2,59,23,196,
2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,248,2, 2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,248,2,
60,248,22,113,23,197,1,248,22,89,194,248,22,89,194,248,22,89,194,248,22, 60,248,22,113,23,197,1,248,22,89,194,248,22,89,194,248,22,89,194,248,22,
89,194,32,62,88,163,36,37,55,11,2,32,222,33,63,28,248,22,87,248,22, 89,194,32,62,88,163,36,37,55,11,2,32,222,33,63,28,248,22,87,248,22,
@ -730,12 +730,12 @@
22,81,23,195,2,249,22,7,9,248,22,80,195,90,159,38,11,89,161,38,36, 22,81,23,195,2,249,22,7,9,248,22,80,195,90,159,38,11,89,161,38,36,
11,248,2,62,248,22,81,196,249,22,7,249,22,79,248,22,80,199,196,195,249, 11,248,2,62,248,22,81,196,249,22,7,249,22,79,248,22,80,199,196,195,249,
22,7,249,22,79,248,22,80,199,196,195,249,22,7,249,22,79,248,22,80,199, 22,7,249,22,79,248,22,80,199,196,195,249,22,7,249,22,79,248,22,80,199,
196,195,27,27,249,22,165,15,2,59,23,197,2,28,23,193,2,86,94,23,195, 196,195,27,27,249,22,171,15,2,59,23,197,2,28,23,193,2,86,94,23,195,
1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,165, 1,249,22,79,248,22,104,23,196,2,27,248,22,113,23,197,1,27,249,22,171,
15,2,59,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104, 15,2,59,23,196,2,28,23,193,2,86,94,23,194,1,249,22,79,248,22,104,
23,196,2,27,248,22,113,23,197,1,27,249,22,165,15,2,59,23,196,2,28, 23,196,2,27,248,22,113,23,197,1,27,249,22,171,15,2,59,23,196,2,28,
23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113, 23,193,2,86,94,23,194,1,249,22,79,248,22,104,23,196,2,27,248,22,113,
23,197,1,27,249,22,165,15,2,59,23,196,2,28,23,193,2,86,94,23,194, 23,197,1,27,249,22,171,15,2,59,23,196,2,28,23,193,2,86,94,23,194,
1,249,22,79,248,22,104,23,196,2,248,2,60,248,22,113,23,197,1,248,22, 1,249,22,79,248,22,104,23,196,2,248,2,60,248,22,113,23,197,1,248,22,
89,194,248,22,89,194,248,22,89,194,248,22,89,195,28,23,195,1,192,28,248, 89,194,248,22,89,194,248,22,89,194,248,22,89,195,28,23,195,1,192,28,248,
22,87,248,22,81,23,195,2,249,22,7,9,248,22,80,195,27,248,22,81,194, 22,87,248,22,81,23,195,2,249,22,7,9,248,22,80,195,27,248,22,81,194,
@ -746,16 +746,16 @@
201,196,195,249,22,7,249,22,79,248,22,80,202,196,195,249,22,7,249,22,79, 201,196,195,249,22,7,249,22,79,248,22,80,202,196,195,249,22,7,249,22,79,
248,22,80,200,196,195,86,96,28,248,22,146,5,23,196,2,12,250,22,188,9, 248,22,80,200,196,195,86,96,28,248,22,146,5,23,196,2,12,250,22,188,9,
2,22,6,21,21,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45, 2,22,6,21,21,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,
112,97,116,104,63,23,198,2,28,28,23,196,2,248,22,153,13,23,197,2,10, 112,97,116,104,63,23,198,2,28,28,23,196,2,248,22,159,13,23,197,2,10,
12,250,22,188,9,2,22,6,20,20,40,111,114,47,99,32,35,102,32,110,97, 12,250,22,188,9,2,22,6,20,20,40,111,114,47,99,32,35,102,32,110,97,
109,101,115,112,97,99,101,63,41,23,199,2,28,24,193,2,248,24,194,1,23, 109,101,115,112,97,99,101,63,41,23,199,2,28,24,193,2,248,24,194,1,23,
196,2,86,94,23,193,1,12,27,250,22,160,2,80,159,41,41,38,248,22,190, 196,2,86,94,23,193,1,12,27,250,22,160,2,80,159,41,41,38,248,22,132,
15,247,22,152,13,11,27,28,23,194,2,23,194,1,86,94,23,194,1,27,249, 16,247,22,158,13,11,27,28,23,194,2,23,194,1,86,94,23,194,1,27,249,
22,79,247,22,140,2,247,22,140,2,86,94,250,22,158,2,80,159,43,41,38, 22,79,247,22,140,2,247,22,140,2,86,94,250,22,158,2,80,159,43,41,38,
248,22,190,15,247,22,152,13,195,192,86,94,250,22,158,2,248,22,80,23,197, 248,22,132,16,247,22,158,13,195,192,86,94,250,22,158,2,248,22,80,23,197,
2,23,200,2,68,100,101,99,108,97,114,101,100,28,23,198,2,27,28,248,22, 2,23,200,2,68,100,101,99,108,97,114,101,100,28,23,198,2,27,28,248,22,
77,248,22,148,5,23,200,2,248,22,147,5,248,22,80,248,22,148,5,23,201, 77,248,22,148,5,23,200,2,248,22,147,5,248,22,80,248,22,148,5,23,201,
1,23,198,1,27,250,22,160,2,80,159,44,41,38,248,22,190,15,23,204,1, 1,23,198,1,27,250,22,160,2,80,159,44,41,38,248,22,132,16,23,204,1,
11,28,23,193,2,27,250,22,160,2,248,22,81,23,198,1,197,11,28,192,250, 11,28,23,193,2,27,250,22,160,2,248,22,81,23,198,1,197,11,28,192,250,
22,158,2,248,22,81,199,197,195,12,12,12,251,211,197,198,199,10,32,67,88, 22,158,2,248,22,81,199,197,195,12,12,12,251,211,197,198,199,10,32,67,88,
163,36,38,47,11,76,102,108,97,116,116,101,110,45,115,117,98,45,112,97,116, 163,36,38,47,11,76,102,108,97,116,116,101,110,45,115,117,98,45,112,97,116,
@ -765,7 +765,7 @@
23,195,1,250,22,184,9,2,22,6,37,37,116,111,111,32,109,97,110,121,32, 23,195,1,250,22,184,9,2,22,6,37,37,116,111,111,32,109,97,110,121,32,
34,46,46,34,115,32,105,110,32,115,117,98,109,111,100,117,108,101,32,112,97, 34,46,46,34,115,32,105,110,32,115,117,98,109,111,100,117,108,101,32,112,97,
116,104,58,32,126,46,115,250,22,90,2,34,28,249,22,153,9,23,201,2,2, 116,104,58,32,126,46,115,250,22,90,2,34,28,249,22,153,9,23,201,2,2,
36,198,28,248,22,177,14,199,198,249,22,89,28,248,22,64,201,2,4,2,37, 36,198,28,248,22,183,14,199,198,249,22,89,28,248,22,64,201,2,4,2,37,
200,199,251,2,68,196,197,248,22,81,199,248,22,81,200,251,2,68,196,197,249, 200,199,251,2,68,196,197,248,22,81,199,248,22,81,200,251,2,68,196,197,249,
22,79,248,22,80,202,200,248,22,81,200,251,2,68,196,197,9,197,27,249,22, 22,79,248,22,80,202,200,248,22,81,200,251,2,68,196,197,9,197,27,249,22,
164,7,6,31,31,115,116,97,110,100,97,114,100,45,109,111,100,117,108,101,45, 164,7,6,31,31,115,116,97,110,100,97,114,100,45,109,111,100,117,108,101,45,
@ -777,16 +777,16 @@
198,39,249,22,164,7,250,22,163,7,198,36,249,22,183,3,199,39,2,40,193, 198,39,249,22,164,7,250,22,163,7,198,36,249,22,183,3,199,39,2,40,193,
193,0,8,35,114,120,34,91,46,93,34,32,76,88,163,8,36,37,47,11,2, 193,0,8,35,114,120,34,91,46,93,34,32,76,88,163,8,36,37,47,11,2,
32,222,33,77,28,248,22,87,23,194,2,9,250,22,90,6,4,4,10,32,32, 32,222,33,77,28,248,22,87,23,194,2,9,250,22,90,6,4,4,10,32,32,
32,248,22,181,14,248,22,105,23,198,2,248,2,76,248,22,81,23,198,1,28, 32,248,22,187,14,248,22,105,23,198,2,248,2,76,248,22,81,23,198,1,28,
249,22,153,9,248,22,81,23,200,2,23,197,1,28,249,22,151,9,248,22,80, 249,22,153,9,248,22,81,23,200,2,23,197,1,28,249,22,151,9,248,22,80,
23,200,1,23,196,1,251,22,184,9,2,22,6,41,41,99,121,99,108,101,32, 23,200,1,23,196,1,251,22,184,9,2,22,6,41,41,99,121,99,108,101,32,
105,110,32,108,111,97,100,105,110,103,10,32,32,97,116,32,112,97,116,104,58, 105,110,32,108,111,97,100,105,110,103,10,32,32,97,116,32,112,97,116,104,58,
32,126,97,10,32,32,112,97,116,104,115,58,126,97,23,200,1,249,22,1,22, 32,126,97,10,32,32,112,97,116,104,115,58,126,97,23,200,1,249,22,1,22,
164,7,248,2,76,248,22,94,23,201,1,12,12,247,192,20,13,159,80,159,43, 164,7,248,2,76,248,22,94,23,201,1,12,12,247,192,20,13,159,80,159,43,
49,38,249,22,79,249,22,79,248,22,190,15,247,22,152,13,23,201,1,23,195, 49,38,249,22,79,249,22,79,248,22,132,16,247,22,158,13,23,201,1,23,195,
1,20,13,159,80,159,43,38,37,250,80,159,46,39,37,249,22,33,11,80,159, 1,20,13,159,80,159,43,38,37,250,80,159,46,39,37,249,22,33,11,80,159,
48,38,37,22,188,4,23,198,2,249,247,22,171,5,23,200,1,27,248,22,67, 48,38,37,22,188,4,23,198,2,249,247,22,171,5,23,200,1,27,248,22,67,
248,22,181,14,23,201,1,28,23,202,2,28,250,22,160,2,248,22,80,23,201, 248,22,187,14,23,201,1,28,23,202,2,28,250,22,160,2,248,22,80,23,201,
1,23,201,1,11,249,22,79,11,203,249,22,79,194,203,192,86,94,28,248,22, 1,23,201,1,11,249,22,79,11,203,249,22,79,194,203,192,86,94,28,248,22,
156,5,23,196,2,12,28,23,197,2,250,22,186,9,11,6,15,15,98,97,100, 156,5,23,196,2,12,28,23,197,2,250,22,186,9,11,6,15,15,98,97,100,
32,109,111,100,117,108,101,32,112,97,116,104,23,200,2,250,22,188,9,2,22, 32,109,111,100,117,108,101,32,112,97,116,104,23,200,2,250,22,188,9,2,22,
@ -826,7 +826,7 @@
249,2,67,2,36,28,249,22,153,9,248,22,104,23,204,2,2,35,248,22,81, 249,2,67,2,36,28,249,22,153,9,248,22,104,23,204,2,2,35,248,22,81,
23,202,1,248,22,106,23,202,1,28,248,22,77,193,248,22,81,193,11,11,11, 23,202,1,248,22,106,23,202,1,28,248,22,77,193,248,22,81,193,11,11,11,
27,28,248,22,64,23,196,2,27,248,80,159,43,47,39,249,22,79,23,199,2, 27,28,248,22,64,23,196,2,27,248,80,159,43,47,39,249,22,79,23,199,2,
247,22,155,15,28,23,193,2,192,86,94,23,193,1,90,159,38,11,89,161,38, 247,22,161,15,28,23,193,2,192,86,94,23,193,1,90,159,38,11,89,161,38,
36,11,249,80,159,46,53,39,248,22,70,23,201,2,11,27,28,248,22,87,23, 36,11,249,80,159,46,53,39,248,22,70,23,201,2,11,27,28,248,22,87,23,
195,2,2,39,249,22,164,7,23,197,2,2,40,251,80,159,49,58,39,23,204, 195,2,2,39,249,22,164,7,23,197,2,2,40,251,80,159,49,58,39,23,204,
1,28,248,22,87,23,199,2,23,199,1,86,94,23,199,1,248,22,80,23,199, 1,28,248,22,87,23,199,2,23,199,1,86,94,23,199,1,248,22,80,23,199,
@ -834,45 +834,45 @@
197,1,28,248,22,141,7,23,196,2,86,94,23,196,1,27,248,80,159,43,8, 197,1,28,248,22,141,7,23,196,2,86,94,23,196,1,27,248,80,159,43,8,
28,39,23,202,2,27,248,80,159,44,47,39,249,22,79,23,200,2,23,197,2, 28,39,23,202,2,27,248,80,159,44,47,39,249,22,79,23,200,2,23,197,2,
28,23,193,2,192,86,94,23,193,1,90,159,38,11,89,161,38,36,11,249,80, 28,23,193,2,192,86,94,23,193,1,90,159,38,11,89,161,38,36,11,249,80,
159,47,53,39,23,201,2,11,250,22,1,22,131,15,23,199,1,249,22,93,249, 159,47,53,39,23,201,2,11,250,22,1,22,137,15,23,199,1,249,22,93,249,
22,2,32,0,88,163,8,36,37,44,11,9,222,33,72,23,200,1,248,22,89, 22,2,32,0,88,163,8,36,37,44,11,9,222,33,72,23,200,1,248,22,89,
248,2,73,23,201,1,28,248,22,177,14,23,196,2,86,94,23,196,1,248,80, 248,2,73,23,201,1,28,248,22,183,14,23,196,2,86,94,23,196,1,248,80,
159,42,8,29,39,248,22,140,15,28,248,22,137,15,23,198,2,23,197,2,249, 159,42,8,29,39,248,22,146,15,28,248,22,143,15,23,198,2,23,197,2,249,
22,138,15,23,199,2,248,80,159,46,8,28,39,23,205,2,28,249,22,151,9, 22,144,15,23,199,2,248,80,159,46,8,28,39,23,205,2,28,249,22,151,9,
248,22,80,23,198,2,2,27,27,248,80,159,43,47,39,249,22,79,23,199,2, 248,22,80,23,198,2,2,27,27,248,80,159,43,47,39,249,22,79,23,199,2,
247,22,155,15,28,23,193,2,192,86,94,23,193,1,90,159,39,11,89,161,38, 247,22,161,15,28,23,193,2,192,86,94,23,193,1,90,159,39,11,89,161,38,
36,11,249,80,159,47,53,39,248,22,104,23,202,2,11,89,161,37,38,11,28, 36,11,249,80,159,47,53,39,248,22,104,23,202,2,11,89,161,37,38,11,28,
248,22,87,248,22,106,23,201,2,28,248,22,87,23,194,2,249,22,169,15,2, 248,22,87,248,22,106,23,201,2,28,248,22,87,23,194,2,249,22,175,15,2,
75,23,196,2,11,10,27,28,23,196,2,248,2,73,23,196,2,28,248,22,87, 75,23,196,2,11,10,27,28,23,196,2,248,2,73,23,196,2,28,248,22,87,
23,195,2,2,39,28,249,22,169,15,2,75,23,197,2,248,2,73,23,196,2, 23,195,2,2,39,28,249,22,175,15,2,75,23,197,2,248,2,73,23,196,2,
249,22,164,7,23,197,2,2,40,27,28,23,197,1,86,94,23,196,1,249,22, 249,22,164,7,23,197,2,2,40,27,28,23,197,1,86,94,23,196,1,249,22,
93,28,248,22,87,248,22,106,23,205,2,21,93,6,5,5,109,122,108,105,98, 93,28,248,22,87,248,22,106,23,205,2,21,93,6,5,5,109,122,108,105,98,
249,22,1,22,93,249,22,2,80,159,53,8,30,39,248,22,106,23,208,2,23, 249,22,1,22,93,249,22,2,80,159,53,8,30,39,248,22,106,23,208,2,23,
197,1,28,248,22,87,23,196,2,86,94,23,195,1,248,22,89,23,197,1,86, 197,1,28,248,22,87,23,196,2,86,94,23,195,1,248,22,89,23,197,1,86,
94,23,196,1,23,195,1,251,80,159,51,58,39,23,206,1,248,22,80,23,198, 94,23,196,1,23,195,1,251,80,159,51,58,39,23,206,1,248,22,80,23,198,
2,248,22,81,23,198,1,23,198,1,28,249,22,151,9,248,22,80,23,198,2, 2,248,22,81,23,198,1,23,198,1,28,249,22,151,9,248,22,80,23,198,2,
2,37,248,80,159,42,8,29,39,248,22,140,15,249,22,138,15,248,22,142,15, 2,37,248,80,159,42,8,29,39,248,22,146,15,249,22,144,15,248,22,148,15,
248,22,104,23,201,2,248,80,159,46,8,28,39,23,205,2,12,86,94,28,28, 248,22,104,23,201,2,248,80,159,46,8,28,39,23,205,2,12,86,94,28,28,
248,22,177,14,23,194,2,10,248,22,166,8,23,194,2,86,94,23,201,1,12, 248,22,183,14,23,194,2,10,248,22,166,8,23,194,2,86,94,23,201,1,12,
28,23,201,2,250,22,186,9,67,114,101,113,117,105,114,101,249,22,189,7,6, 28,23,201,2,250,22,186,9,67,114,101,113,117,105,114,101,249,22,189,7,6,
17,17,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23, 17,17,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,
198,2,248,22,80,23,199,2,6,0,0,23,204,1,86,94,23,201,1,250,22, 198,2,248,22,80,23,199,2,6,0,0,23,204,1,86,94,23,201,1,250,22,
188,9,2,22,2,33,23,198,2,27,28,248,22,166,8,23,195,2,249,22,171, 188,9,2,22,2,33,23,198,2,27,28,248,22,166,8,23,195,2,249,22,171,
8,23,196,2,36,249,22,140,15,248,22,141,15,23,197,2,11,27,28,248,22, 8,23,196,2,36,249,22,146,15,248,22,147,15,23,197,2,11,27,28,248,22,
166,8,23,196,2,249,22,171,8,23,197,2,37,248,80,159,44,59,39,23,195, 166,8,23,196,2,249,22,171,8,23,197,2,37,248,80,159,44,59,39,23,195,
2,90,159,39,11,89,161,39,36,11,28,248,22,166,8,23,199,2,250,22,7, 2,90,159,39,11,89,161,39,36,11,28,248,22,166,8,23,199,2,250,22,7,
2,41,249,22,171,8,23,203,2,38,2,41,248,22,134,15,23,198,2,86,95, 2,41,249,22,171,8,23,203,2,38,2,41,248,22,140,15,23,198,2,86,95,
23,195,1,23,193,1,27,28,248,22,166,8,23,200,2,249,22,171,8,23,201, 23,195,1,23,193,1,27,28,248,22,166,8,23,200,2,249,22,171,8,23,201,
2,39,249,80,159,49,57,39,23,197,2,5,0,27,28,248,22,166,8,23,201, 2,39,249,80,159,49,57,39,23,197,2,5,0,27,28,248,22,166,8,23,201,
2,249,22,171,8,23,202,2,40,248,22,147,5,23,200,2,27,250,22,160,2, 2,249,22,171,8,23,202,2,40,248,22,147,5,23,200,2,27,250,22,160,2,
80,159,52,41,38,248,22,190,15,247,22,152,13,11,27,28,23,194,2,23,194, 80,159,52,41,38,248,22,132,16,247,22,158,13,11,27,28,23,194,2,23,194,
1,86,94,23,194,1,27,249,22,79,247,22,140,2,247,22,140,2,86,94,250, 1,86,94,23,194,1,27,249,22,79,247,22,140,2,247,22,140,2,86,94,250,
22,158,2,80,159,54,41,38,248,22,190,15,247,22,152,13,195,192,27,28,23, 22,158,2,80,159,54,41,38,248,22,132,16,247,22,158,13,195,192,27,28,23,
204,2,248,22,147,5,249,22,79,248,22,148,5,23,200,2,23,207,2,23,196, 204,2,248,22,147,5,249,22,79,248,22,148,5,23,200,2,23,207,2,23,196,
2,86,95,28,23,212,1,27,250,22,160,2,248,22,80,23,199,2,196,11,28, 2,86,95,28,23,212,1,27,250,22,160,2,248,22,80,23,199,2,196,11,28,
23,193,1,12,27,27,28,248,22,17,80,159,55,50,38,80,159,54,50,38,247, 23,193,1,12,27,27,28,248,22,17,80,159,55,50,38,80,159,54,50,38,247,
22,19,251,22,33,11,80,159,58,49,38,9,23,197,1,27,248,22,190,15,247, 22,19,251,22,33,11,80,159,58,49,38,9,23,197,1,27,248,22,132,16,247,
22,152,13,86,94,249,22,3,20,20,94,88,163,8,36,37,54,11,9,226,14, 22,158,13,86,94,249,22,3,20,20,94,88,163,8,36,37,54,11,9,226,14,
13,2,3,33,78,23,195,1,23,196,2,248,28,248,22,17,80,159,56,50,38, 13,2,3,33,78,23,195,1,23,196,2,248,28,248,22,17,80,159,56,50,38,
32,0,88,163,36,37,42,11,9,222,33,79,80,159,55,8,31,39,20,20,96, 32,0,88,163,36,37,42,11,9,222,33,79,80,159,55,8,31,39,20,20,96,
88,163,36,36,56,8,140,128,9,230,19,15,13,12,8,7,5,2,33,80,23, 88,163,36,36,56,8,140,128,9,230,19,15,13,12,8,7,5,2,33,80,23,
@ -880,11 +880,11 @@
22,141,7,23,206,2,10,28,248,22,64,23,206,2,10,28,248,22,77,23,206, 22,141,7,23,206,2,10,28,248,22,64,23,206,2,10,28,248,22,77,23,206,
2,249,22,151,9,248,22,80,23,208,2,2,27,11,249,80,159,53,48,39,28, 2,249,22,151,9,248,22,80,23,208,2,2,27,11,249,80,159,53,48,39,28,
248,22,141,7,23,208,2,249,22,79,23,209,1,248,80,159,56,8,28,39,23, 248,22,141,7,23,208,2,249,22,79,23,209,1,248,80,159,56,8,28,39,23,
215,1,86,94,23,212,1,249,22,79,23,209,1,247,22,155,15,252,22,168,8, 215,1,86,94,23,212,1,249,22,79,23,209,1,247,22,161,15,252,22,168,8,
23,209,1,23,208,1,23,206,1,23,204,1,23,203,1,12,192,86,96,20,18, 23,209,1,23,208,1,23,206,1,23,204,1,23,203,1,12,192,86,96,20,18,
159,11,80,158,36,54,248,80,159,37,8,26,37,249,22,33,11,80,159,39,56, 159,11,80,158,36,54,248,80,159,37,8,26,37,249,22,33,11,80,159,39,56,
37,248,22,187,4,80,159,37,55,38,248,22,171,5,80,159,37,37,39,248,22, 37,248,22,187,4,80,159,37,55,38,248,22,171,5,80,159,37,37,39,248,22,
146,14,80,159,37,44,39,20,18,159,11,80,158,36,54,248,80,159,37,8,26, 152,14,80,159,37,44,39,20,18,159,11,80,158,36,54,248,80,159,37,8,26,
37,249,22,33,11,80,159,39,56,37,20,18,159,11,80,158,36,54,248,80,159, 37,249,22,33,11,80,159,39,56,37,20,18,159,11,80,158,36,54,248,80,159,
37,8,26,37,249,22,33,11,80,159,39,56,37,159,36,20,113,159,36,16,1, 37,8,26,37,249,22,33,11,80,159,39,56,37,159,36,20,113,159,36,16,1,
11,16,0,20,26,144,9,2,1,2,1,29,11,11,11,9,9,11,11,11,10, 11,16,0,20,26,144,9,2,1,2,1,29,11,11,11,9,9,11,11,11,10,
@ -937,7 +937,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 7928); EVAL_ONE_SIZED_STR((char *)expr, 7928);
} }
{ {
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,49,56,84,0,0,0,0,0,0,0,0,0, SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,51,46,48,46,50,48,84,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,1,0,0,10,0,16, 0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,1,0,0,10,0,16,
0,29,0,44,0,58,0,78,0,90,0,104,0,118,0,170,0,0,0,98,1, 0,29,0,44,0,58,0,78,0,90,0,104,0,118,0,170,0,0,0,98,1,
0,0,69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2, 0,0,69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2,

View File

@ -787,6 +787,16 @@ call_error(char *buffer, int len, Scheme_Object *exn)
p[1] = exn; p[1] = exn;
scheme_apply_multi(display_handler, 2, p); scheme_apply_multi(display_handler, 2, p);
if (SCHEME_CHAPERONE_STRUCTP(exn)
&& (scheme_is_struct_instance(exn_table[MZEXN_BREAK_HANG_UP].type, exn)
|| scheme_is_struct_instance(exn_table[MZEXN_BREAK_TERMINATE].type, exn))) {
/* Default uncaught exception handler exits on `exn:break:hang-up'
or `exn:break:terminate'. */
p[0] = scheme_make_integer(1);
scheme_do_exit(1, p);
/* Fall through to regular escape if the exit handler doesn't exit/escape. */
}
v = scheme_make_byte_string_without_copying("error escape handler"); v = scheme_make_byte_string_without_copying("error escape handler");
v = scheme_make_closed_prim_w_arity(nested_exn_handler, v = scheme_make_closed_prim_w_arity(nested_exn_handler,
scheme_make_pair(v, exn), scheme_make_pair(v, exn),

View File

@ -65,7 +65,11 @@ propeties (the latter in curly braces), strings are contracts/comments.
(break [break_field_check (break [break_field_check
(continuation "escape continuation" "resumes from the break")] (continuation "escape continuation" "resumes from the break")]
"asynchronous break signal")) "asynchronous break signal"
(hang-up []
"terminal disconnect")
(terminate []
"termination request")))
) )

View File

@ -135,7 +135,7 @@ void scheme_init_place(Scheme_Env *env)
PLACE_PRIM_W_ARITY("place-sleep", place_sleep, 1, 1, plenv); PLACE_PRIM_W_ARITY("place-sleep", place_sleep, 1, 1, plenv);
PLACE_PRIM_W_ARITY("place-wait", place_wait, 1, 1, plenv); PLACE_PRIM_W_ARITY("place-wait", place_wait, 1, 1, plenv);
PLACE_PRIM_W_ARITY("place-kill", place_kill, 1, 1, plenv); PLACE_PRIM_W_ARITY("place-kill", place_kill, 1, 1, plenv);
PLACE_PRIM_W_ARITY("place-break", place_break, 1, 1, plenv); PLACE_PRIM_W_ARITY("place-break", place_break, 1, 2, plenv);
PLACE_PRIM_W_ARITY("place?", place_p, 1, 1, plenv); PLACE_PRIM_W_ARITY("place?", place_p, 1, 1, plenv);
PLACE_PRIM_W_ARITY("place-channel", place_channel, 0, 0, plenv); PLACE_PRIM_W_ARITY("place-channel", place_channel, 0, 0, plenv);
PLACE_PRIM_W_ARITY("place-channel-put", place_send, 2, 2, plenv); PLACE_PRIM_W_ARITY("place-channel-put", place_send, 2, 2, plenv);
@ -550,7 +550,7 @@ static void do_place_kill(Scheme_Place *place)
place->place_obj = NULL; place->place_obj = NULL;
} }
static int do_place_break(Scheme_Place *place) static int do_place_break(Scheme_Place *place, int kind)
{ {
Scheme_Place_Object *place_obj; Scheme_Place_Object *place_obj;
place_obj = place->place_obj; place_obj = place->place_obj;
@ -558,7 +558,7 @@ static int do_place_break(Scheme_Place *place)
if (place_obj) { if (place_obj) {
mzrt_mutex_lock(place_obj->lock); mzrt_mutex_lock(place_obj->lock);
place_obj->pbreak = 1; place_obj->pbreak = kind;
if (place_obj->signal_handle) if (place_obj->signal_handle)
scheme_signal_received_at(place_obj->signal_handle); scheme_signal_received_at(place_obj->signal_handle);
@ -585,14 +585,30 @@ static Scheme_Object *place_kill(int argc, Scheme_Object *args[]) {
return scheme_void; return scheme_void;
} }
static Scheme_Object *place_break(int argc, Scheme_Object *args[]) { static Scheme_Object *place_break(int argc, Scheme_Object *args[])
Scheme_Place *place; {
place = (Scheme_Place *) args[0]; Scheme_Place *place = (Scheme_Place *) args[0];
int kind = MZEXN_BREAK;
if (!SAME_TYPE(SCHEME_TYPE(args[0]), scheme_place_type)) if (!SAME_TYPE(SCHEME_TYPE(args[0]), scheme_place_type))
scheme_wrong_contract("place-break", "place?", 0, argc, args); scheme_wrong_contract("place-break", "place?", 0, argc, args);
return scheme_make_integer(do_place_break(place)); if ((argc > 1) && SCHEME_TRUEP(args[1])) {
if (SCHEME_SYMBOLP(args[1])
&& !SCHEME_SYM_WEIRDP(args[1])
&& !strcmp(SCHEME_SYM_VAL(args[1]), "hang-up"))
kind = MZEXN_BREAK_HANG_UP;
else if (SCHEME_SYMBOLP(args[1])
&& !SCHEME_SYM_WEIRDP(args[1])
&& !strcmp(SCHEME_SYM_VAL(args[1]), "terminate"))
kind = MZEXN_BREAK_TERMINATE;
else
scheme_wrong_contract("place-break", "(or/c #f 'hang-up 'terminate)", 1, argc, args);
}
do_place_break(place, kind);
return scheme_void;
} }
static int place_deadp(Scheme_Object *place) { static int place_deadp(Scheme_Object *place) {
@ -2324,7 +2340,7 @@ void scheme_place_check_for_interruption()
if (local_die > 0) if (local_die > 0)
scheme_kill_thread(scheme_main_thread); scheme_kill_thread(scheme_main_thread);
if (local_break) if (local_break)
scheme_break_thread(NULL); scheme_break_kind_thread(NULL, local_break);
} }
void scheme_place_set_memory_use(intptr_t mem_use) void scheme_place_set_memory_use(intptr_t mem_use)

View File

@ -107,8 +107,10 @@ MZ_EXTERN Scheme_Object *scheme_thread_w_details(Scheme_Object *thunk,
int suspend_to_kill); int suspend_to_kill);
MZ_EXTERN void scheme_kill_thread(Scheme_Thread *p); MZ_EXTERN void scheme_kill_thread(Scheme_Thread *p);
MZ_EXTERN void scheme_break_thread(Scheme_Thread *p); MZ_EXTERN void scheme_break_thread(Scheme_Thread *p);
MZ_EXTERN void scheme_break_kind_thread(Scheme_Thread *p, int kind);
MZ_EXTERN void scheme_break_main_thread(); MZ_EXTERN void scheme_break_main_thread();
MZ_EXTERN void scheme_break_main_thread_at(void *); MZ_EXTERN void scheme_break_main_thread_at(void *);
MZ_EXTERN void scheme_break_kind_main_thread_at(void *, int kind);
MZ_EXTERN void *scheme_get_main_thread_break_handle(); MZ_EXTERN void *scheme_get_main_thread_break_handle();
MZ_EXTERN void scheme_set_break_main_target(Scheme_Thread *p); MZ_EXTERN void scheme_set_break_main_target(Scheme_Thread *p);

View File

@ -1,968 +0,0 @@
/*
Racket
Copyright (c) 2004-2012 PLT Scheme Inc.
Copyright (c) 1995-2001 Matthew Flatt
All rights reserved.
Please see the full copyright in the documentation.
Originally based on:
libscheme
Copyright (c) 1994 Brent Benson
All rights reserved.
*/
typedef struct {
/*========================================================================*/
/* setjmpup (continuations) */
/*========================================================================*/
void (*scheme_init_jmpup_buf)(Scheme_Jumpup_Buf *b);
int (*scheme_setjmpup_relative)(Scheme_Jumpup_Buf *b, void *base,
void * volatile start, struct Scheme_Cont *cont);
void (*scheme_longjmpup)(Scheme_Jumpup_Buf *b);
void (*scheme_reset_jmpup_buf)(Scheme_Jumpup_Buf *b);
#ifdef USE_MZ_SETJMP
int (*scheme_mz_setjmp)(mz_pre_jmp_buf b);
void (*scheme_mz_longjmp)(mz_pre_jmp_buf b, int v);
#endif
void (*scheme_clear_escape)(void);
Scheme_Jumpup_Buf_Holder *(*scheme_new_jmpupbuf_holder)(void);
/*========================================================================*/
/* parameters */
/*========================================================================*/
Scheme_Config *(*scheme_current_config)(void);
Scheme_Config *(*scheme_minimal_config)(void);
Scheme_Config *(*scheme_extend_config)(Scheme_Config *c, int pos, Scheme_Object *init_val);
void (*scheme_install_config)(Scheme_Config *);
Scheme_Object *(*scheme_get_param)(Scheme_Config *c, int pos);
void (*scheme_set_param)(Scheme_Config *c, int pos, Scheme_Object *o);
Scheme_Object *(*scheme_get_thread_param)(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos);
void (*scheme_set_thread_param)(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos, Scheme_Object *o);
Scheme_Env *(*scheme_get_env)(Scheme_Config *config);
Scheme_Thread_Cell_Table *(*scheme_empty_cell_table)();
Scheme_Thread_Cell_Table *(*scheme_inherit_cells)(Scheme_Thread_Cell_Table *cells);
Scheme_Object *(*scheme_current_break_cell)();
/*========================================================================*/
/* threads */
/*========================================================================*/
#ifndef USE_THREAD_LOCAL
# ifndef LINK_EXTENSIONS_BY_TABLE
Scheme_Thread *scheme_current_thread;
volatile int scheme_fuel_counter;
# else
Scheme_Thread **scheme_current_thread_ptr;
volatile int *scheme_fuel_counter_ptr;
# endif
#endif
Scheme_Thread *(*scheme_get_current_thread)();
void (*scheme_start_atomic)(void);
void (*scheme_end_atomic)(void);
void (*scheme_end_atomic_no_swap)(void);
void (*scheme_start_in_scheduler)(void);
void (*scheme_end_in_scheduler)(void);
void (*scheme_start_atomic_no_break)(void);
void (*scheme_end_atomic_can_break)(void);
void (*scheme_out_of_fuel)(void);
Scheme_Object *(*scheme_thread)(Scheme_Object *thunk);
Scheme_Object *(*scheme_thread_w_details)(Scheme_Object *thunk,
Scheme_Config *init_config,
Scheme_Thread_Cell_Table *copy_from,
Scheme_Object *break_cell,
Scheme_Custodian *owning_custodian,
int suspend_to_kill);
void (*scheme_kill_thread)(Scheme_Thread *p);
void (*scheme_break_thread)(Scheme_Thread *p);
void (*scheme_break_main_thread)();
void (*scheme_break_main_thread_at)(void *);
void *(*scheme_get_main_thread_break_handle)();
void (*scheme_set_break_main_target)(Scheme_Thread *p);
void (*scheme_thread_block)(float sleep_time);
void (*scheme_thread_block_enable_break)(float sleep_time, int enable);
void (*scheme_swap_thread)(Scheme_Thread *process);
void (*scheme_making_progress)();
void (*scheme_weak_suspend_thread)(Scheme_Thread *p);
void (*scheme_weak_resume_thread)(Scheme_Thread *p);
int (*scheme_block_until)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *, float);
int (*scheme_block_until_enable_break)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *,
float, int enable);
int (*scheme_block_until_unless)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun fdf,
Scheme_Object *data, float delay,
Scheme_Object *unless,
int enable_break);
void (*scheme_wait_input_allowed)(Scheme_Input_Port *port, int nonblock);
int (*scheme_unless_ready)(Scheme_Object *unless);
int (*scheme_in_main_thread)(void);
void (*scheme_cancel_sleep)(void);
void (*scheme_start_sleeper_thread)(void (*mzsleep)(float seconds, void *fds), float secs, void *fds, int hit_fd);
void (*scheme_end_sleeper_thread)();
void (*scheme_set_place_sleep)(Scheme_Sleep_Proc slp);
void (*scheme_notify_sleep_progress)();
Scheme_Object *(*scheme_make_thread_cell)(Scheme_Object *def_val, int inherited);
Scheme_Object *(*scheme_thread_cell_get)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells);
void (*scheme_thread_cell_set)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells, Scheme_Object *v);
int (*scheme_tls_allocate)();
void (*scheme_tls_set)(int pos, void *v);
void *(*scheme_tls_get)(int pos);
Scheme_Custodian *(*scheme_make_custodian)(Scheme_Custodian *);
Scheme_Custodian_Reference *(*scheme_add_managed)(Scheme_Custodian *m, Scheme_Object *o,
Scheme_Close_Custodian_Client *f, void *data,
int strong);
Scheme_Custodian_Reference *(*scheme_add_managed_close_on_exit)(Scheme_Custodian *m, Scheme_Object *o,
Scheme_Close_Custodian_Client *f, void *data);
void (*scheme_custodian_check_available)(Scheme_Custodian *m, const char *who, const char *what);
int (*scheme_custodian_is_available)(Scheme_Custodian *m);
void (*scheme_remove_managed)(Scheme_Custodian_Reference *m, Scheme_Object *o);
void (*scheme_close_managed)(Scheme_Custodian *m);
void (*scheme_schedule_custodian_close)(Scheme_Custodian *c);
void (*scheme_add_custodian_extractor)(Scheme_Type t, Scheme_Custodian_Extractor e);
void (*scheme_add_atexit_closer)(Scheme_Exit_Closer_Func f);
void (*scheme_add_evt)(Scheme_Type type,
Scheme_Ready_Fun ready,
Scheme_Needs_Wakeup_Fun wakeup,
Scheme_Sync_Filter_Fun filter,
int can_redirect);
void (*scheme_add_evt_through_sema)(Scheme_Type type,
Scheme_Sync_Sema_Fun sema,
Scheme_Sync_Filter_Fun filter);
int (*scheme_is_evt)(Scheme_Object *o);
Scheme_Object *(*scheme_sync)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_sync_enable_break)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_sync_timeout)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_make_evt_set)(int argc, Scheme_Object **argv);
void (*scheme_add_swap_callback)(Scheme_Closure_Func f, Scheme_Object *data);
void (*scheme_add_swap_out_callback)(Scheme_Closure_Func f, Scheme_Object *data);
Scheme_Object *(*scheme_call_enable_break)(Scheme_Prim *prim, int argc, Scheme_Object *argv[]);
int (*scheme_close_should_force_port_closed)();
void (*scheme_push_kill_action)(Scheme_Kill_Action_Func f, void *d);
void (*scheme_pop_kill_action)();
void (*scheme_set_can_break)(int on);
void (*scheme_push_break_enable)(Scheme_Cont_Frame_Data *cframe, int on, int pre_check);
void (*scheme_pop_break_enable)(Scheme_Cont_Frame_Data *cframe, int post_check);
int (*scheme_with_stack_freeze)(Scheme_Frozen_Stack_Proc wha_f, void *wha_data);
int (*scheme_frozen_run_some)(Scheme_Frozen_Stack_Proc do_f, void *do_data, int run_msecs);
int (*scheme_is_in_frozen_stack)();
Scheme_Object *scheme_abort_continuation_no_dws;
Scheme_Object *scheme_call_with_composable_no_dws;
Scheme_On_Atomic_Timeout_Proc (*scheme_set_on_atomic_timeout)(Scheme_On_Atomic_Timeout_Proc p);
/*========================================================================*/
/* error handling */
/*========================================================================*/
void (*scheme_signal_error)(const char *msg, ...);
void (*scheme_raise_exn)(int exnid, ...);
void (*scheme_warning)(char *msg, ...);
void (*scheme_raise)(Scheme_Object *exn);
int (*scheme_log_level_p)(Scheme_Logger *logger, int level);
void (*scheme_log)(Scheme_Logger *logger, int level, int flags,
const char *msg, ...);
void (*scheme_log_w_data)(Scheme_Logger *logger, int level, int flags,
Scheme_Object *data,
const char *msg, ...);
void (*scheme_log_message)(Scheme_Logger *logger, int level, char *buffer, intptr_t len, Scheme_Object *data);
void (*scheme_log_abort)(char *buffer);
void (*scheme_log_warning)(char *buffer);
void (*scheme_glib_log_message)(const char *log_domain, int log_level, const char *message, void *user_data);
void (*scheme_out_of_memory_abort)();
void (*scheme_wrong_count)(const char *name, int minc, int maxc,
int argc, Scheme_Object **argv);
void (*scheme_wrong_count_m)(const char *name, int minc, int maxc,
int argc, Scheme_Object **argv,
int is_method);
void (*scheme_case_lambda_wrong_count)(const char *name, int argc,
Scheme_Object **argv, int is_method, int count, ...);
void (*scheme_wrong_type)(const char *name, const char *expected,
int which, int argc,
Scheme_Object **argv);
void (*scheme_wrong_contract)(const char *name, const char *expected,
int which, int argc,
Scheme_Object **argv);
void (*scheme_wrong_field_type)(Scheme_Object *c_name,
const char *expected,
Scheme_Object *o);
void (*scheme_wrong_field_contract)(Scheme_Object *c_name,
const char *expected,
Scheme_Object *o);
void (*scheme_arg_mismatch)(const char *name, const char *msg, Scheme_Object *o);
void (*scheme_contract_error)(const char *name, const char *msg, ...);
void (*scheme_wrong_return_arity)(const char *where,
int expected, int got,
Scheme_Object **argv,
const char *context_detail, ...);
void (*scheme_unbound_global)(Scheme_Bucket *b);
Scheme_Object *(*scheme_dynamic_wind)(void (*pre)(void *),
Scheme_Object *(* volatile act)(void *),
void (* volatile post)(void *),
Scheme_Object *(*jmp_handler)(void *),
void * volatile data);
/*========================================================================*/
/* types */
/*========================================================================*/
Scheme_Type (*scheme_make_type)(const char *name);
char *(*scheme_get_type_name)(Scheme_Type type);
char *(*scheme_get_type_name_or_null)(Scheme_Type type);
/*========================================================================*/
/* constants */
/*========================================================================*/
Scheme_Object *scheme_eof;
Scheme_Object *(*scheme_make_eof)(void);
Scheme_Object *scheme_null;
Scheme_Object *(*scheme_make_null)(void);
Scheme_Object *scheme_true;
Scheme_Object *(*scheme_make_true)(void);
Scheme_Object *scheme_false;
Scheme_Object *(*scheme_make_false)(void);
Scheme_Object *scheme_void;
Scheme_Object *(*scheme_make_void)(void);
Scheme_Object *scheme_undefined;
Scheme_Object *scheme_tail_call_waiting;
Scheme_Object *scheme_multiple_values;
unsigned short **scheme_uchar_table;
unsigned char **scheme_uchar_cases_table;
unsigned char **scheme_uchar_cats_table;
int *scheme_uchar_ups;
int *scheme_uchar_downs;
int *scheme_uchar_titles;
int *scheme_uchar_folds;
unsigned char *scheme_uchar_combining_classes;
void *scheme_on_demand_jit_code;
/*========================================================================*/
/* evaluation */
/*========================================================================*/
Scheme_Object *(*scheme_eval)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_multi)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_with_prompt)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_multi_with_prompt)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_compiled)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_eval_compiled_multi)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*_scheme_eval_compiled)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*_scheme_eval_compiled_multi)(Scheme_Object *obj, Scheme_Env *env);
Scheme_Object *(*scheme_apply)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_multi)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_no_eb)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_multi_no_eb)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_to_list)(Scheme_Object *rator, Scheme_Object *argss);
Scheme_Object *(*scheme_apply_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_apply_multi_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*_scheme_apply_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*_scheme_apply_multi_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands);
Scheme_Object *(*scheme_eval_string)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_multi)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_all)(const char *str, Scheme_Env *env, int all);
Scheme_Object *(*scheme_eval_string_with_prompt)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_multi_with_prompt)(const char *str, Scheme_Env *env);
Scheme_Object *(*scheme_eval_string_all_with_prompt)(const char *str, Scheme_Env *env, int all);
Scheme_Object *(*scheme_eval_all_with_prompt)(Scheme_Object *port, Scheme_Env *env, int all);
Scheme_Object *(*scheme_eval_module_string)(const char *str, Scheme_Env *env);
Scheme_Object *(*_scheme_apply_known_prim_closure)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object *(*_scheme_apply_known_prim_closure_multi)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object *(*_scheme_apply_prim_closure)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object *(*_scheme_apply_prim_closure_multi)(Scheme_Object *rator, int argc,
Scheme_Object **argv);
Scheme_Object **(*scheme_current_argument_stack)();
Scheme_Object *(*scheme_call_with_prompt)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*scheme_call_with_prompt_multi)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*_scheme_call_with_prompt)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*_scheme_call_with_prompt_multi)(Scheme_Closed_Prim f, void *data);
Scheme_Object *(*scheme_values)(int c, Scheme_Object **v);
Scheme_Object *(*scheme_check_one_value)(Scheme_Object *v);
/* Tail calls - only use these when you're writing new functions/syntax */
Scheme_Object *(*scheme_tail_apply)(Scheme_Object *f, int n, Scheme_Object **arg);
Scheme_Object *(*scheme_tail_apply_no_copy)(Scheme_Object *f, int n, Scheme_Object **arg);
Scheme_Object *(*scheme_tail_apply_to_list)(Scheme_Object *f, Scheme_Object *l);
Scheme_Object *(*scheme_tail_eval_expr)(Scheme_Object *obj);
void (*scheme_set_tail_buffer_size)(int s);
Scheme_Object *(*scheme_force_value)(Scheme_Object *);
Scheme_Object *(*scheme_force_one_value)(Scheme_Object *);
MZ_MARK_STACK_TYPE (*scheme_set_cont_mark)(Scheme_Object *key, Scheme_Object *val);
void (*scheme_push_continuation_frame)(Scheme_Cont_Frame_Data *);
void (*scheme_pop_continuation_frame)(Scheme_Cont_Frame_Data *);
void (*scheme_temp_dec_mark_depth)();
void (*scheme_temp_inc_mark_depth)();
Scheme_Object *(*scheme_current_continuation_marks)(Scheme_Object *prompt_tag);
Scheme_Object *(*scheme_extract_one_cc_mark)(Scheme_Object *mark_set,
Scheme_Object *key);
Scheme_Object *(*scheme_extract_one_cc_mark_to_tag)(Scheme_Object *mark_set,
Scheme_Object *key,
Scheme_Object *prompt_tag);
/* Internal */
Scheme_Object *(*scheme_do_eval)(Scheme_Object *obj, int _num_rands, Scheme_Object **rands, int val);
Scheme_Object *(*scheme_eval_compiled_stx_string)(Scheme_Object *expr, Scheme_Env *env,
intptr_t shift, Scheme_Object *modidx);
Scheme_Object *(*scheme_load_compiled_stx_string)(const char *str, intptr_t len);
Scheme_Object *(*scheme_compiled_stx_symbol)(Scheme_Object *stx);
Scheme_Object *(*scheme_eval_compiled_sized_string)(const char *str, int len, Scheme_Env *env);
Scheme_Object *(*scheme_eval_compiled_sized_string_with_magic)(const char *str, int len, Scheme_Env *env,
Scheme_Object *magic_symbol, Scheme_Object *magic_val,
int multi_ok);
void (*scheme_detach_multple_array)(Scheme_Object **a);
/*========================================================================*/
/* memory management */
/*========================================================================*/
/* The core allocator functions depend on the GC. Macros in scheme.h */
/* map to the apporpriate core allocation function. */
#ifndef SCHEME_NO_GC
# ifndef SCHEME_NO_GC_PROTO
void *(*GC_malloc)(size_t size_in_bytes);
void *(*GC_malloc_atomic)(size_t size_in_bytes);
# ifdef MZ_PRECISE_GC
void *(*GC_malloc_one_tagged)(size_t size_in_bytes);
void *(*GC_malloc_atomic_uncollectable)(size_t size_in_bytes);
void *(*scheme_malloc_uncollectable)(size_t size_in_bytes);
void *(*GC_malloc_array_tagged)(size_t size_in_bytes);
void *(*GC_malloc_allow_interior)(size_t size_in_bytes);
void *(*GC_malloc_atomic_allow_interior)(size_t size_in_bytes);
void *(*GC_malloc_tagged_allow_interior)(size_t size_in_bytes);
# else
void *(*GC_malloc_stubborn)(size_t size_in_bytes);
void *(*GC_malloc_uncollectable)(size_t size_in_bytes);
# endif
# endif
#endif
void *(*scheme_malloc_code)(intptr_t size);
void *(*scheme_malloc_permanent_code)(intptr_t size);
void (*scheme_free_code)(void *p);
#ifndef MZ_PRECISE_GC
void *(*scheme_malloc_gcable_code)(intptr_t size);
#endif
void *(*scheme_malloc_eternal)(size_t n);
void (*scheme_end_stubborn_change)(void *p);
void *(*scheme_calloc)(size_t num, size_t size);
char *(*scheme_strdup)(const char *str);
char *(*scheme_strdup_eternal)(const char *str);
void *(*scheme_malloc_fail_ok)(void *(*f)(size_t), size_t);
#ifndef MZ_PRECISE_GC
void (*scheme_late_weak_reference)(void **p);
void (*scheme_late_weak_reference_indirect)(void **p, void *v);
void (*scheme_weak_reference)(void **p);
void (*scheme_weak_reference_indirect)(void **p, void *v);
void (*scheme_unweak_reference)(void **p);
#endif
void (*scheme_add_finalizer)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_add_finalizer_once)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_subtract_finalizer)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_add_scheme_finalizer)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_add_scheme_finalizer_once)(void *p, void (*f)(void *p, void *data), void *data);
void (*scheme_register_finalizer)(void *p,
void (*f)(void *p, void *data), void *data,
void (**oldf)(void *p, void *data),
void **olddata);
void (*scheme_remove_all_finalization)(void *p);
void (*scheme_dont_gc_ptr)(void *p);
void (*scheme_gc_ptr_ok)(void *p);
void (*scheme_collect_garbage)(void);
void (*scheme_enable_garbage_collection)(int on);
#ifdef MZ_PRECISE_GC
# ifndef USE_THREAD_LOCAL
void **GC_variable_stack;
# endif
void (*GC_register_traversers)(short tag, Size_Proc size, Mark_Proc mark, Fixup_Proc fixup,
int is_constant_size, int is_atomic);
void *(*GC_resolve)(void *p);
void (*GC_mark)(const void *p);
void (*GC_fixup)(void *p);
void *(*GC_fixup_self)(void *p);
#endif
void **(*scheme_malloc_immobile_box)(void *p);
void (*scheme_free_immobile_box)(void **b);
Scheme_Object *(*scheme_add_gc_callback)(Scheme_Object *pre, Scheme_Object *post);
void (*scheme_remove_gc_callback)(Scheme_Object *key);
/*========================================================================*/
/* hash tables */
/*========================================================================*/
Scheme_Bucket_Table *(*scheme_make_bucket_table)(intptr_t size_hint, int type);
void (*scheme_add_to_table)(Scheme_Bucket_Table *table, const char *key, void *val, int);
void (*scheme_change_in_table)(Scheme_Bucket_Table *table, const char *key, void *new_val);
void *(*scheme_lookup_in_table)(Scheme_Bucket_Table *table, const char *key);
Scheme_Bucket *(*scheme_bucket_from_table)(Scheme_Bucket_Table *table, const char *key);
int (*scheme_bucket_table_equal)(Scheme_Bucket_Table *t1, Scheme_Bucket_Table *t2);
Scheme_Bucket_Table *(*scheme_clone_bucket_table)(Scheme_Bucket_Table *bt);
Scheme_Hash_Table *(*scheme_make_hash_table)(int type);
Scheme_Hash_Table *(*scheme_make_hash_table_equal)();
Scheme_Hash_Table *(*scheme_make_hash_table_eqv)();
void (*scheme_hash_set)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
Scheme_Object *(*scheme_eq_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
void (*scheme_hash_set_atomic)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_hash_get_atomic)(Scheme_Hash_Table *table, Scheme_Object *key);
int (*scheme_hash_table_equal)(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
int (*scheme_is_hash_table_equal)(Scheme_Object *o);
int (*scheme_is_hash_table_eqv)(Scheme_Object *o);
Scheme_Hash_Table *(*scheme_clone_hash_table)(Scheme_Hash_Table *bt);
Scheme_Hash_Tree *(*scheme_make_hash_tree)(int kind);
Scheme_Hash_Tree *(*scheme_hash_tree_set)(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key);
Scheme_Object *(*scheme_eq_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key);
intptr_t (*scheme_hash_tree_next)(Scheme_Hash_Tree *tree, intptr_t pos);
int (*scheme_hash_tree_index)(Scheme_Hash_Tree *tree, intptr_t pos, Scheme_Object **_key, Scheme_Object **_val);
int (*scheme_hash_tree_equal)(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
int (*scheme_is_hash_tree_equal)(Scheme_Object *o);
int (*scheme_is_hash_tree_eqv)(Scheme_Object *o);
/*========================================================================*/
/* basic Scheme value constructors */
/*========================================================================*/
Scheme_Object *(*scheme_make_prim)(Scheme_Prim *prim);
Scheme_Object *(*scheme_make_noneternal_prim)(Scheme_Prim *prim);
Scheme_Object *(*scheme_make_prim_w_arity)(Scheme_Prim *prim, const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_folding_prim)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa,
short functional);
Scheme_Object *(*scheme_make_immed_prim)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_noncm_prim)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_noneternal_prim_w_arity)(Scheme_Prim *prim,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_prim_w_everything)(Scheme_Prim *fun, int eternal,
const char *name,
mzshort mina, mzshort maxa,
int folding,
mzshort minr, mzshort maxr);
Scheme_Object *(*scheme_make_prim_closure_w_arity)(Scheme_Primitive_Closure_Proc *prim,
int size, Scheme_Object **vals,
const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_folding_prim_closure)(Scheme_Primitive_Closure_Proc *prim,
int size, Scheme_Object **vals,
const char *name,
mzshort mina, mzshort maxa,
short functional);
Scheme_Object *(*scheme_make_closed_prim)(Scheme_Closed_Prim *prim, void *data);
Scheme_Object *(*scheme_make_closed_prim_w_arity)(Scheme_Closed_Prim *prim,
void *data, const char *name,
mzshort mina, mzshort maxa);
Scheme_Object *(*scheme_make_folding_closed_prim)(Scheme_Closed_Prim *prim,
void *data, const char *name,
mzshort mina, mzshort maxa,
short functional);
Scheme_Object *(*scheme_make_closed_prim_w_everything)(Scheme_Closed_Prim *fun,
void *data,
const char *name,
mzshort mina, mzshort maxa,
short folding,
mzshort minr, mzshort maxr);
void (*scheme_prim_is_method)(Scheme_Object *o);
Scheme_Object *(*scheme_make_pair)(Scheme_Object *car, Scheme_Object *cdr);
Scheme_Object *(*scheme_make_mutable_pair)(Scheme_Object *car, Scheme_Object *cdr);
Scheme_Object *(*scheme_make_raw_pair)(Scheme_Object *, Scheme_Object *);
Scheme_Object *(*scheme_make_byte_string)(const char *chars);
Scheme_Object *(*scheme_make_sized_byte_string)(char *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_byte_string)(char *chars, intptr_t d, intptr_t len, int copy);
Scheme_Object *(*scheme_make_immutable_sized_byte_string)(char *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_byte_string_without_copying)(char *chars);
Scheme_Object *(*scheme_alloc_byte_string)(intptr_t size, char fill);
Scheme_Object *(*scheme_append_byte_string)(Scheme_Object *, Scheme_Object *);
Scheme_Object *(*scheme_make_utf8_string)(const char *chars);
Scheme_Object *(*scheme_make_sized_utf8_string)(char *chars, intptr_t len);
Scheme_Object *(*scheme_make_sized_offset_utf8_string)(char *chars, intptr_t d, intptr_t len);
Scheme_Object *(*scheme_make_immutable_sized_utf8_string)(char *chars, intptr_t len);
Scheme_Object *(*scheme_make_locale_string)(const char *chars);
Scheme_Object *(*scheme_char_string_to_byte_string)(Scheme_Object *s);
Scheme_Object *(*scheme_byte_string_to_char_string)(Scheme_Object *s);
Scheme_Object *(*scheme_char_string_to_byte_string_locale)(Scheme_Object *s);
Scheme_Object *(*scheme_byte_string_to_char_string_locale)(Scheme_Object *s);
Scheme_Object *(*scheme_char_string_to_path)(Scheme_Object *p);
Scheme_Object *(*scheme_path_to_char_string)(Scheme_Object *p);
Scheme_Object *(*scheme_make_char_string)(const mzchar *chars);
Scheme_Object *(*scheme_make_sized_char_string)(mzchar *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_char_string)(mzchar *chars, intptr_t d, intptr_t len, int copy);
Scheme_Object *(*scheme_make_immutable_sized_char_string)(mzchar *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_char_string_without_copying)(mzchar *chars);
Scheme_Object *(*scheme_alloc_char_string)(intptr_t size, mzchar fill);
Scheme_Object *(*scheme_append_char_string)(Scheme_Object *, Scheme_Object *);
mzchar *(*scheme_string_recase)(mzchar *s, int d, int len, int mode, int inplace, int *_len);
Scheme_Object *(*scheme_make_vector)(intptr_t size, Scheme_Object *fill);
Scheme_Double_Vector *(*scheme_alloc_flvector)(intptr_t size);
Scheme_Vector *(*scheme_alloc_fxvector)(intptr_t size);
Scheme_Object *(*scheme_make_integer_value)(intptr_t i);
Scheme_Object *(*scheme_make_integer_value_from_unsigned)(uintptr_t i);
Scheme_Object *(*scheme_make_integer_value_from_long_long)(mzlonglong i);
Scheme_Object *(*scheme_make_integer_value_from_unsigned_long_long)(umzlonglong i);
Scheme_Object *(*scheme_make_integer_value_from_long_halves)(uintptr_t lowhalf, uintptr_t hihalf);
Scheme_Object *(*scheme_make_integer_value_from_unsigned_long_halves)(uintptr_t lowhalf, uintptr_t hihalf);
Scheme_Object *(*scheme_make_double)(double d);
#ifdef MZ_USE_SINGLE_FLOATS
Scheme_Object *(*scheme_make_float)(float f) ;
#endif
Scheme_Object *(*scheme_make_char)(mzchar ch);
Scheme_Object *(*scheme_make_char_or_nul)(mzchar ch);
Scheme_Object *(*scheme_make_sema)(intptr_t v);
void (*scheme_post_sema)(Scheme_Object *o);
void (*scheme_post_sema_all)(Scheme_Object *o);
int (*scheme_wait_sema)(Scheme_Object *o, int just_try);
int (*scheme_try_plain_sema)(Scheme_Object *o);
Scheme_Object **scheme_char_constants;
Scheme_Object *(*scheme_make_channel)();
Scheme_Object *(*scheme_make_channel_put_evt)(Scheme_Object *ch, Scheme_Object *v);
int (*scheme_get_int_val)(Scheme_Object *o, intptr_t *v);
int (*scheme_get_unsigned_int_val)(Scheme_Object *o, uintptr_t *v);
int (*scheme_get_long_long_val)(Scheme_Object *o, mzlonglong *v);
int (*scheme_get_unsigned_long_long_val)(Scheme_Object *o, umzlonglong *v);
double (*scheme_real_to_double)(Scheme_Object *r);
Scheme_Object *(*scheme_make_cptr)(void *cptr, Scheme_Object *typetag);
Scheme_Object *(*scheme_make_offset_cptr)(void *cptr, intptr_t offset, Scheme_Object *typetag);
Scheme_Object *(*scheme_make_external_cptr)(void *cptr, Scheme_Object *typetag);
Scheme_Object *(*scheme_make_offset_external_cptr)(void *cptr, intptr_t offset, Scheme_Object *typetag);
int (*scheme_is_cpointer)(Scheme_Object *cp);
const char *(*scheme_get_proc_name)(Scheme_Object *p, int *len, int for_error);
/*========================================================================*/
/* strings */
/*========================================================================*/
intptr_t (*scheme_utf8_decode)(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive);
intptr_t (*scheme_utf8_decode_as_prefix)(const unsigned char *s, intptr_t start, intptr_t end,
unsigned int *us, intptr_t dstart, intptr_t dend,
intptr_t *ipos, char utf16, int permissive);
intptr_t (*scheme_utf8_decode_all)(const unsigned char *s, intptr_t len, unsigned int *us,
int permissive);
intptr_t (*scheme_utf8_decode_prefix)(const unsigned char *s, intptr_t len, unsigned int *us,
int permissive);
mzchar *(*scheme_utf8_decode_to_buffer)(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen);
mzchar *(*scheme_utf8_decode_to_buffer_len)(const unsigned char *s, intptr_t len,
mzchar *buf, intptr_t blen, intptr_t *rlen);
intptr_t (*scheme_utf8_decode_count)(const unsigned char *s, intptr_t start, intptr_t end,
int *_state, int might_continue, int permissive);
intptr_t (*scheme_utf8_encode)(const unsigned int *us, intptr_t start, intptr_t end,
unsigned char *s, intptr_t dstart,
char utf16);
intptr_t (*scheme_utf8_encode_all)(const unsigned int *us, intptr_t len, unsigned char *s);
char *(*scheme_utf8_encode_to_buffer)(const mzchar *s, intptr_t len,
char *buf, intptr_t blen);
char *(*scheme_utf8_encode_to_buffer_len)(const mzchar *s, intptr_t len,
char *buf, intptr_t blen, intptr_t *rlen);
unsigned short *(*scheme_ucs4_to_utf16)(const mzchar *text, intptr_t start, intptr_t end,
unsigned short *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size);
mzchar *(*scheme_utf16_to_ucs4)(const unsigned short *text, intptr_t start, intptr_t end,
mzchar *buf, intptr_t bufsize,
intptr_t *ulen, intptr_t term_size);
Scheme_Object *(*scheme_open_converter)(const char *from_e, const char *to_e);
void (*scheme_close_converter)(Scheme_Object *conv);
/*========================================================================*/
/* bignums */
/*========================================================================*/
Scheme_Object *(*scheme_make_bignum)(intptr_t v);
Scheme_Object *(*scheme_make_bignum_from_unsigned)(uintptr_t v);
Scheme_Object *(*scheme_make_bignum_from_long_long)(mzlonglong v);
Scheme_Object *(*scheme_make_bignum_from_unsigned_long_long)(umzlonglong v);
double (*scheme_bignum_to_double)(const Scheme_Object *n);
Scheme_Object *(*scheme_bignum_from_double)(double d);
#ifdef MZ_USE_SINGLE_FLOATS
float (*scheme_bignum_to_float)(const Scheme_Object *n);
Scheme_Object *(*scheme_bignum_from_float)(float d);
#else
# define scheme_bignum_to_float scheme_bignum_to_double
# define scheme_bignum_from_float scheme_bignum_from_double
#endif
char *(*scheme_bignum_to_string)(const Scheme_Object *n, int radix);
char *(*scheme_bignum_to_allocated_string)(const Scheme_Object *n, int radix, int alloc);
Scheme_Object *(*scheme_read_bignum)(const mzchar *str, int offset, int radix);
Scheme_Object *(*scheme_read_bignum_bytes)(const char *str, int offset, int radix);
Scheme_Object *(*scheme_bignum_normalize)(const Scheme_Object *n);
/*========================================================================*/
/* rationals */
/*========================================================================*/
Scheme_Object *(*scheme_make_rational)(const Scheme_Object *r, const Scheme_Object *d);
double (*scheme_rational_to_double)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_from_double)(double d);
#ifdef MZ_USE_SINGLE_FLOATS
float (*scheme_rational_to_float)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_from_float)(float d);
#else
# define scheme_rational_to_float scheme_rational_to_double
# define scheme_rational_from_float scheme_rational_from_double
#endif
Scheme_Object *(*scheme_rational_normalize)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_numerator)(const Scheme_Object *n);
Scheme_Object *(*scheme_rational_denominator)(const Scheme_Object *n);
/*========================================================================*/
/* complexes */
/*========================================================================*/
Scheme_Object *(*scheme_make_complex)(const Scheme_Object *r, const Scheme_Object *i);
Scheme_Object *(*scheme_complex_normalize)(const Scheme_Object *n);
Scheme_Object *(*scheme_complex_real_part)(const Scheme_Object *n);
Scheme_Object *(*scheme_complex_imaginary_part)(const Scheme_Object *n);
/* Exact/inexact: */
int (*scheme_is_exact)(const Scheme_Object *n);
int (*scheme_is_inexact)(const Scheme_Object *n);
/*========================================================================*/
/* macros, syntax, and compilation */
/*========================================================================*/
Scheme_Object *(*scheme_expand)(Scheme_Object *form, Scheme_Env *env);
Scheme_Object *(*scheme_compile)(Scheme_Object *form, Scheme_Env *env, int writeable);
/*========================================================================*/
/* ports */
/*========================================================================*/
Scheme_Object *(*scheme_read)(Scheme_Object *port);
Scheme_Object *(*scheme_read_syntax)(Scheme_Object *port, Scheme_Object *stxsrc);
void (*scheme_write)(Scheme_Object *obj, Scheme_Object *port);
void (*scheme_print)(Scheme_Object *obj, Scheme_Object *port);
void (*scheme_display)(Scheme_Object *obj, Scheme_Object *port);
void (*scheme_write_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl);
void (*scheme_display_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl);
void (*scheme_print_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl);
void (*scheme_write_byte_string)(const char *str, intptr_t len, Scheme_Object *port);
void (*scheme_write_char_string)(const mzchar *str, intptr_t len, Scheme_Object *port);
intptr_t (*scheme_put_byte_string)(const char *who, Scheme_Object *port,
const char *str, intptr_t d, intptr_t len,
int rarely_block);
intptr_t (*scheme_put_char_string)(const char *who, Scheme_Object *port,
const mzchar *str, intptr_t d, intptr_t len);
char *(*scheme_write_to_string)(Scheme_Object *obj, intptr_t *len);
char *(*scheme_display_to_string)(Scheme_Object *obj, intptr_t *len);
char *(*scheme_print_to_string)(Scheme_Object *obj, intptr_t *len);
char *(*scheme_write_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl);
char *(*scheme_display_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl);
char *(*scheme_print_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl);
void (*scheme_debug_print)(Scheme_Object *obj);
void (*scheme_flush_output)(Scheme_Object *port);
char *(*scheme_format)(mzchar *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen);
void (*scheme_printf)(mzchar *format, int flen, int argc, Scheme_Object **argv);
char *(*scheme_format_utf8)(char *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen);
void (*scheme_printf_utf8)(char *format, int flen, int argc, Scheme_Object **argv);
int (*scheme_getc)(Scheme_Object *port);
int (*scheme_get_byte)(Scheme_Object *port);
int (*scheme_peekc)(Scheme_Object *port);
int (*scheme_peek_byte)(Scheme_Object *port);
int (*scheme_peekc_skip)(Scheme_Object *port, Scheme_Object *skip);
int (*scheme_peek_byte_skip)(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt);
int (*scheme_getc_special_ok)(Scheme_Object *port);
int (*scheme_get_byte_special_ok)(Scheme_Object *port);
int (*scheme_peekc_special_ok)(Scheme_Object *port);
int (*scheme_peek_byte_special_ok_skip)(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt);
int (*scheme_peekc_special_ok_skip)(Scheme_Object *port, Scheme_Object *skip);
void (*scheme_ungetc)(int ch, Scheme_Object *port);
int (*scheme_byte_ready)(Scheme_Object *port);
int (*scheme_char_ready)(Scheme_Object *port);
int (*scheme_peekc_is_ungetc)(Scheme_Object *port);
void (*scheme_need_wakeup)(Scheme_Object *port, void *fds);
intptr_t (*scheme_get_byte_string)(const char *who,
Scheme_Object *port,
char *buffer, intptr_t offset, intptr_t size,
int only_avail,
int peek, Scheme_Object *peek_skip);
intptr_t (*scheme_get_byte_string_unless)(const char *who,
Scheme_Object *port,
char *buffer, intptr_t offset, intptr_t size,
int only_avail,
int peek, Scheme_Object *peek_skip,
Scheme_Object *unless_evt);
intptr_t (*scheme_get_byte_string_special_ok_unless)(const char *who,
Scheme_Object *port,
char *buffer, intptr_t offset, intptr_t size,
int only_avail,
int peek, Scheme_Object *peek_skip,
Scheme_Object *unless_evt);
Scheme_Object *(*scheme_progress_evt)(Scheme_Object *port);
int (*scheme_peeked_read)(Scheme_Object *port,
intptr_t size,
Scheme_Object *unless_evt,
Scheme_Object *target_evt);
intptr_t (*scheme_get_char_string)(const char *who,
Scheme_Object *port,
mzchar *buffer, intptr_t offset, intptr_t size,
int peek, Scheme_Object *peek_skip);
intptr_t (*scheme_get_bytes)(Scheme_Object *port, intptr_t size, char *buffer, int offset);
Scheme_Object *(*scheme_get_ready_special)(Scheme_Object *port, Scheme_Object *stxsrc, int peek);
intptr_t (*scheme_tell)(Scheme_Object *port);
intptr_t (*scheme_output_tell)(Scheme_Object *port);
intptr_t (*scheme_tell_line)(Scheme_Object *port);
intptr_t (*scheme_tell_column)(Scheme_Object *port);
void (*scheme_tell_all)(Scheme_Object *port, intptr_t *line, intptr_t *col, intptr_t *pos);
void (*scheme_set_port_location)(int argc, Scheme_Object **argv);
void (*scheme_count_lines)(Scheme_Object *port);
void (*scheme_close_input_port)(Scheme_Object *port);
void (*scheme_close_output_port)(Scheme_Object *port);
Scheme_Object *(*scheme_write_special)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_write_special_nonblock)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_make_write_evt)(const char *who, Scheme_Object *port,
Scheme_Object *special, char *str, intptr_t start, intptr_t size);
Scheme_Port *(*scheme_port_record)(Scheme_Object *port);
Scheme_Input_Port *(*scheme_input_port_record)(Scheme_Object *port);
Scheme_Output_Port *(*scheme_output_port_record)(Scheme_Object *port);
int (*scheme_is_input_port)(Scheme_Object *port);
int (*scheme_is_output_port)(Scheme_Object *port);
Scheme_Object *(*scheme_make_port_type)(const char *name);
Scheme_Input_Port *(*scheme_make_input_port)(Scheme_Object *subtype, void *data,
Scheme_Object *name,
Scheme_Get_String_Fun get_byte_string_fun,
Scheme_Peek_String_Fun peek_string_fun,
Scheme_Progress_Evt_Fun progress_evt_fun,
Scheme_Peeked_Read_Fun peeked_read_fun,
Scheme_In_Ready_Fun byte_ready_fun,
Scheme_Close_Input_Fun close_fun,
Scheme_Need_Wakeup_Input_Fun need_wakeup_fun,
int must_close);
Scheme_Output_Port *(*scheme_make_output_port)(Scheme_Object *subtype, void *data,
Scheme_Object *name,
Scheme_Write_String_Evt_Fun write_byte_string_evt_fun,
Scheme_Write_String_Fun write_byte_string_fun,
Scheme_Out_Ready_Fun ready_fun,
Scheme_Close_Output_Fun close_fun,
Scheme_Need_Wakeup_Output_Fun need_wakeup_fun,
Scheme_Write_Special_Evt_Fun write_special_evt_fun,
Scheme_Write_Special_Fun write_special_fun,
int must_close);
void (*scheme_set_next_port_custodian)(Scheme_Custodian *c);
void (*scheme_set_port_location_fun)(Scheme_Port *port,
Scheme_Location_Fun location_fun);
void (*scheme_set_port_count_lines_fun)(Scheme_Port *port,
Scheme_Count_Lines_Fun count_lines_fun);
void (*scheme_port_count_lines)(Scheme_Port *ip, const char *buffer,
intptr_t offset, intptr_t got);
Scheme_Object *(*scheme_progress_evt_via_get)(Scheme_Input_Port *port);
int (*scheme_peeked_read_via_get)(Scheme_Input_Port *port,
intptr_t size,
Scheme_Object *unless_evt,
Scheme_Object *target_ch);
Scheme_Object *(*scheme_write_evt_via_write)(Scheme_Output_Port *port,
const char *str, intptr_t offset, intptr_t size);
Scheme_Object *(*scheme_write_special_evt_via_write_special)(Scheme_Output_Port *port,
Scheme_Object *special);
Scheme_Object *(*scheme_open_input_file)(const char *name, const char *who);
Scheme_Object *(*scheme_open_output_file)(const char *name, const char *who);
Scheme_Object *(*scheme_open_input_output_file)(const char *name, const char *who, Scheme_Object **oport);
Scheme_Object *(*scheme_open_output_file_with_mode)(const char *name, const char *who, int text);
Scheme_Object *(*scheme_make_file_input_port)(FILE *fp);
Scheme_Object *(*scheme_make_named_file_input_port)(FILE *fp, Scheme_Object *name);
Scheme_Object *(*scheme_make_file_output_port)(FILE *fp);
Scheme_Object *(*scheme_make_fd_input_port)(int fd, Scheme_Object *name, int regfile, int win_textmode);
Scheme_Object *(*scheme_make_fd_output_port)(int fd, Scheme_Object *name, int regfile, int win_textmode, int read_too);
Scheme_Object *(*scheme_make_byte_string_input_port)(const char *str);
Scheme_Object *(*scheme_make_sized_byte_string_input_port)(const char *str, intptr_t len);
Scheme_Object *(*scheme_make_byte_string_output_port)();
char *(*scheme_get_sized_byte_string_output)(Scheme_Object *port, intptr_t *len);
char *(*scheme_get_reset_sized_byte_string_output)(Scheme_Object *port, intptr_t *len, int reset, intptr_t startpos, intptr_t endpos);
void (*scheme_pipe)(Scheme_Object **read, Scheme_Object **write);
void (*scheme_pipe_with_limit)(Scheme_Object **write, Scheme_Object **read, int maxsize);
Scheme_Object *(*scheme_make_null_output_port)(int can_write_special);
Scheme_Object *(*scheme_make_redirect_output_port)(Scheme_Object *port);
intptr_t (*scheme_set_file_position)(Scheme_Object *port, intptr_t pos);
int (*scheme_file_exists)(char *filename);
int (*scheme_directory_exists)(char *dirname);
char *(*scheme_expand_filename)(char* filename, int ilen, const char *errorin, int *ex, int guards);
char *(*scheme_expand_user_filename)(char* filename, int ilen, const char *errorin, int *ex, int guards);
char *(*scheme_expand_string_filename)(Scheme_Object *f, const char *errorin, int *ex, int guards);
char *(*scheme_os_getcwd)(char *buf, int buflen, int *actlen, int noexn);
int (*scheme_os_setcwd)(char *buf, int noexn);
char *(*scheme_getdrive)(void);
Scheme_Object *(*scheme_split_path)(const char *path, int len, Scheme_Object **base, int *isdir, int kind);
Scheme_Object *(*scheme_build_path)(int argc, Scheme_Object **argv);
Scheme_Object *(*scheme_path_to_directory_path)(Scheme_Object *p);
Scheme_Object *(*scheme_path_to_complete_path)(Scheme_Object *path, Scheme_Object *relto_path);
Scheme_Object *(*scheme_simplify_path)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_make_path)(const char *chars);
Scheme_Object *(*scheme_make_sized_path)(char *chars, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_path)(char *chars, intptr_t d, intptr_t len, int copy);
Scheme_Object *(*scheme_make_sized_offset_kind_path)(char *chars, intptr_t d, intptr_t len, int copy, int kind);
Scheme_Object *(*scheme_make_path_without_copying)(char *chars);
#ifdef MACINTOSH_EVENTS
char *(*scheme_mac_spec_to_path)(mzFSSpec *spec);
int (*scheme_mac_path_to_spec)(const char *filename, mzFSSpec *spec);
#endif
void *(*scheme_alloc_fdset_array)(int count, int permanent);
void *(*scheme_init_fdset_array)(void *fdarray, int count);
void *(*scheme_get_fdset)(void *fdarray, int pos);
void (*scheme_fdzero)(void *fd);
void (*scheme_fdset)(void *fd, int pos);
void (*scheme_fdclr)(void *fd, int pos);
int (*scheme_fdisset)(void *fd, int pos);
void (*scheme_add_fd_handle)(void *h, void *fds, int repost);
void (*scheme_add_fd_eventmask)(void *fds, int mask);
void (*scheme_collapse_win_fd)(void *fds);
void (*scheme_set_wakeup_time)(void *fds, double end_time);
void (*scheme_security_check_file)(const char *who, const char *filename, int guards);
void (*scheme_security_check_file_link)(const char *who, const char *filename, const char *content);
void (*scheme_security_check_network)(const char *who, const char *host, int port, int client);
struct mz_addrinfo *(*scheme_get_host_address)(const char *address, int id, int *err,
int family, int passive, int tcp);
void (*scheme_free_host_address)(struct mz_addrinfo *a);
const char *(*scheme_host_address_strerror)(int errnum);
void (*scheme_getnameinfo)(void *sa, int salen,
char *host, int hostlen,
char *serv, int servlen);
int (*scheme_get_port_file_descriptor)(Scheme_Object *p, intptr_t *_fd);
intptr_t (*scheme_get_port_fd)(Scheme_Object *p);
int (*scheme_get_port_socket)(Scheme_Object *p, intptr_t *_s);
void (*scheme_socket_to_ports)(intptr_t s, const char *name, int takeover,
Scheme_Object **_inp, Scheme_Object **_outp);
Scheme_Object *(*scheme_fd_to_semaphore)(intptr_t fd, int mode, int is_socket);
void (*scheme_set_type_printer)(Scheme_Type stype, Scheme_Type_Printer printer);
void (*scheme_print_bytes)(Scheme_Print_Params *pp, const char *str, int offset, int len);
void (*scheme_print_utf8)(Scheme_Print_Params *pp, const char *str, int offset, int len);
void (*scheme_print_string)(Scheme_Print_Params *pp, const mzchar *str, int offset, int len);
Scheme_Object *(*scheme_read_byte_string)(Scheme_Object *port);
/*========================================================================*/
/* namespace/environment */
/*========================================================================*/
Scheme_Object *(*scheme_make_namespace)(int argc, Scheme_Object *argv[]);
void (*scheme_add_global)(const char *name, Scheme_Object *val, Scheme_Env *env);
void (*scheme_add_global_symbol)(Scheme_Object *name, Scheme_Object *val,
Scheme_Env *env);
Scheme_Object *(*scheme_make_envunbox)(Scheme_Object *value);
Scheme_Object *(*scheme_lookup_global)(Scheme_Object *symbol, Scheme_Env *env);
Scheme_Bucket *(*scheme_global_bucket)(Scheme_Object *symbol, Scheme_Env *env);
Scheme_Bucket *(*scheme_global_keyword_bucket)(Scheme_Object *symbol, Scheme_Env *env);
Scheme_Bucket *(*scheme_module_bucket)(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env);
Scheme_Object *(*scheme_builtin_value)(const char *name); /* convenience */
void (*scheme_set_global_bucket)(char *proc, Scheme_Bucket *var, Scheme_Object *val,
int set_undef);
void (*scheme_install_macro)(Scheme_Bucket *b, Scheme_Object *v);
void (*scheme_save_initial_module_set)(Scheme_Env *env);
Scheme_Env *(*scheme_primitive_module)(Scheme_Object *name, Scheme_Env *for_env);
void (*scheme_finish_primitive_module)(Scheme_Env *env);
void (*scheme_protect_primitive_provide)(Scheme_Env *env, Scheme_Object *name);
Scheme_Object *(*scheme_make_modidx)(Scheme_Object *path,
Scheme_Object *base,
Scheme_Object *resolved);
Scheme_Object *(*scheme_apply_for_syntax_in_env)(Scheme_Object *proc, Scheme_Env *env);
Scheme_Object *(*scheme_dynamic_require)(int argc, Scheme_Object *argv[]);
Scheme_Object *(*scheme_namespace_require)(Scheme_Object *);
int (*scheme_is_module_path)(Scheme_Object *);
Scheme_Object *(*scheme_datum_to_kernel_stx)(Scheme_Object *e);
int (*scheme_module_is_declared)(Scheme_Object *name, int try_load);
/*========================================================================*/
/* symbols */
/*========================================================================*/
Scheme_Object *(*scheme_intern_symbol)(const char *name);
Scheme_Object *(*scheme_intern_exact_symbol)(const char *name, uintptr_t len);
Scheme_Object *(*scheme_intern_exact_char_symbol)(const mzchar *name, uintptr_t len);
Scheme_Object *(*scheme_make_symbol)(const char *name); /* Make uninterned */
Scheme_Object *(*scheme_make_exact_symbol)(const char *name, uintptr_t len); /* Exact case */
Scheme_Object *(*scheme_make_exact_char_symbol)(const mzchar *name, uintptr_t len); /* Exact case */
const char *(*scheme_symbol_name)(Scheme_Object *sym);
const char *(*scheme_symbol_name_and_size)(Scheme_Object *sym, uintptr_t *l, int flags);
char *(*scheme_symbol_val)(Scheme_Object *sym);
Scheme_Object *(*scheme_intern_exact_keyword)(const char *name, uintptr_t len);
Scheme_Object *(*scheme_intern_exact_char_keyword)(const mzchar *name, uintptr_t len);
/*========================================================================*/
/* structs */
/*========================================================================*/
Scheme_Object **(*scheme_make_struct_values)(Scheme_Object *struct_type,
Scheme_Object **names,
int count, int flags);
Scheme_Object **(*scheme_make_struct_names)(Scheme_Object *base,
Scheme_Object *field_names,
int flags, int *count_out);
Scheme_Object *(*scheme_make_struct_type)(Scheme_Object *base,
Scheme_Object *parent,
Scheme_Object *inspector,
int num_fields, int num_uninit_fields,
Scheme_Object *uninit_val,
Scheme_Object *properties,
Scheme_Object *guard);
Scheme_Object *(*scheme_make_struct_type2)(Scheme_Object *base,
Scheme_Object *parent,
Scheme_Object *inspector,
int num_fields, int num_uninit_fields,
Scheme_Object *uninit_val,
Scheme_Object *proc_attr,
Scheme_Object *properties,
char *immutable_array,
Scheme_Object *guard);
Scheme_Object *(*scheme_make_struct_instance)(Scheme_Object *stype,
int argc,
Scheme_Object **argv);
int (*scheme_is_struct_instance)(Scheme_Object *type, Scheme_Object *v);
Scheme_Object *(*scheme_struct_ref)(Scheme_Object *s, int pos);
void (*scheme_struct_set)(Scheme_Object *s, int pos, Scheme_Object *v);
Scheme_Object *(*scheme_make_struct_type_property)(Scheme_Object *name);
Scheme_Object *(*scheme_make_struct_type_property_w_guard)(Scheme_Object *name, Scheme_Object *guard);
Scheme_Object *(*scheme_struct_type_property_ref)(Scheme_Object *prop, Scheme_Object *s);
Scheme_Object *(*scheme_chaperone_struct_type_property_ref)(Scheme_Object *prop, Scheme_Object *s);
Scheme_Object *(*scheme_make_location)(Scheme_Object *src,
Scheme_Object *line,
Scheme_Object *col,
Scheme_Object *pos,
Scheme_Object *span);
int (*scheme_is_location)(Scheme_Object *o);
Scheme_Object *(*scheme_make_inspector)(Scheme_Object *superior);
int (*scheme_is_subinspector)(Scheme_Object *i, Scheme_Object *sup);
/*========================================================================*/
/* utilities */
/*========================================================================*/
int (*scheme_eq)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_eqv)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_equal)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_chaperone_of)(Scheme_Object *obj1, Scheme_Object *obj2);
int (*scheme_impersonator_of)(Scheme_Object *obj1, Scheme_Object *obj2);
#ifdef MZ_PRECISE_GC
intptr_t (*scheme_hash_key)(Scheme_Object *o);
#endif
intptr_t (*scheme_equal_hash_key)(Scheme_Object *o);
intptr_t (*scheme_equal_hash_key2)(Scheme_Object *o);
intptr_t (*scheme_recur_equal_hash_key)(Scheme_Object *o, void *cycle_data);
intptr_t (*scheme_recur_equal_hash_key2)(Scheme_Object *o, void *cycle_data);
intptr_t (*scheme_eqv_hash_key)(Scheme_Object *o);
intptr_t (*scheme_eqv_hash_key2)(Scheme_Object *o);
void (*scheme_set_type_equality)(Scheme_Type type,
Scheme_Equal_Proc f,
Scheme_Primary_Hash_Proc hash1,
Scheme_Secondary_Hash_Proc hash2);
int (*scheme_recur_equal)(Scheme_Object *obj1, Scheme_Object *obj2, void *cycle_info);
Scheme_Object *(*scheme_build_list)(int argc, Scheme_Object **argv);
Scheme_Object *(*scheme_build_list_offset)(int argc, Scheme_Object **argv, int delta);
int (*scheme_is_list)(Scheme_Object *obj1);
int (*scheme_list_length)(Scheme_Object *list);
int (*scheme_proper_list_length)(Scheme_Object *list);
Scheme_Object *(*scheme_alloc_list)(int size);
Scheme_Object *(*scheme_map_1)(Scheme_Object *(*f)(Scheme_Object*),
Scheme_Object *l);
Scheme_Object *(*scheme_car)(Scheme_Object *pair);
Scheme_Object *(*scheme_cdr)(Scheme_Object *pair);
Scheme_Object *(*scheme_cadr)(Scheme_Object *pair);
Scheme_Object *(*scheme_caddr)(Scheme_Object *pair);
Scheme_Object *(*scheme_vector_to_list)(Scheme_Object *vec);
Scheme_Object *(*scheme_list_to_vector)(Scheme_Object *list);
Scheme_Object *(*scheme_append)(Scheme_Object *lstx, Scheme_Object *lsty);
Scheme_Object *(*scheme_reverse)(Scheme_Object *l);
Scheme_Object *(*scheme_box)(Scheme_Object *v);
Scheme_Object *(*scheme_unbox)(Scheme_Object *obj);
void (*scheme_set_box)(Scheme_Object *b, Scheme_Object *v);
Scheme_Object *(*scheme_make_weak_box)(Scheme_Object *v);
Scheme_Object *(*scheme_make_late_weak_box)(Scheme_Object *v);
Scheme_Object *(*scheme_make_ephemeron)(Scheme_Object *key, Scheme_Object *val);
Scheme_Object *(*scheme_ephemeron_value)(Scheme_Object *o);
Scheme_Object *(*scheme_ephemeron_key)(Scheme_Object *o);
Scheme_Object *(*scheme_make_stubborn_will_executor)();
Scheme_Object *(*scheme_load)(const char *file);
Scheme_Object *(*scheme_load_extension)(const char *filename, Scheme_Env *env);
void (*scheme_register_extension_global)(void *ptr, intptr_t size);
intptr_t (*scheme_get_seconds)(void);
intptr_t (*scheme_get_milliseconds)(void);
double (*scheme_get_inexact_milliseconds)(void);
intptr_t (*scheme_get_process_milliseconds)(void);
intptr_t (*scheme_get_thread_milliseconds)(Scheme_Object *thrd);
char *(*scheme_banner)(void);
char *(*scheme_version)(void);
int (*scheme_check_proc_arity)(const char *where, int a,
int which, int argc, Scheme_Object **argv);
int (*scheme_check_proc_arity2)(const char *where, int a,
int which, int argc, Scheme_Object **argv,
int false_ok);
char *(*scheme_make_provided_string)(Scheme_Object *o, int count, intptr_t *len);
char *(*scheme_make_args_string)(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len);
char *(*scheme_make_arg_lines_string)(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len);
const char *(*scheme_system_library_subpath)();
void (*scheme_signal_received)(void);
void (*scheme_signal_received_at)(void *);
void *(*scheme_get_signal_handle)();
void (*scheme_wait_until_signal_received)(void);
intptr_t (*scheme_char_strlen)(const mzchar *s);
Scheme_Object *(*scheme_stx_extract_marks)(Scheme_Object *stx);
int (*scheme_get_place_id)(void);
Scheme_Hash_Table *(*scheme_get_place_table)(void);
void *(*scheme_register_process_global)(const char *key, void *val);
Scheme_Object *(*scheme_malloc_key)(void);
void (*scheme_free_key)(Scheme_Object *k);
#ifndef SCHEME_EX_INLINE
} Scheme_Extension_Table;
#endif

View File

@ -23,6 +23,8 @@ enum {
MZEXN_FAIL_UNSUPPORTED, MZEXN_FAIL_UNSUPPORTED,
MZEXN_FAIL_USER, MZEXN_FAIL_USER,
MZEXN_BREAK, MZEXN_BREAK,
MZEXN_BREAK_TERMINATE,
MZEXN_BREAK_HANG_UP,
MZEXN_OTHER MZEXN_OTHER
}; };
#endif #endif
@ -53,7 +55,9 @@ static exn_rec exn_table[] = {
{ 2, NULL, NULL, 0, NULL, 1 }, { 2, NULL, NULL, 0, NULL, 1 },
{ 2, NULL, NULL, 0, NULL, 1 }, { 2, NULL, NULL, 0, NULL, 1 },
{ 2, NULL, NULL, 0, NULL, 1 }, { 2, NULL, NULL, 0, NULL, 1 },
{ 3, NULL, NULL, 0, NULL, 0 } { 3, NULL, NULL, 0, NULL, 0 },
{ 3, NULL, NULL, 0, NULL, 20 },
{ 3, NULL, NULL, 0, NULL, 20 }
}; };
#else #else
static exn_rec *exn_table; static exn_rec *exn_table;
@ -86,6 +90,8 @@ static exn_rec *exn_table;
exn_table[MZEXN_FAIL_UNSUPPORTED].args = 2; exn_table[MZEXN_FAIL_UNSUPPORTED].args = 2;
exn_table[MZEXN_FAIL_USER].args = 2; exn_table[MZEXN_FAIL_USER].args = 2;
exn_table[MZEXN_BREAK].args = 3; exn_table[MZEXN_BREAK].args = 3;
exn_table[MZEXN_BREAK_TERMINATE].args = 3;
exn_table[MZEXN_BREAK_HANG_UP].args = 3;
#endif #endif
#endif #endif
@ -125,4 +131,6 @@ static exn_rec *exn_table;
SETUP_STRUCT(MZEXN_FAIL_UNSUPPORTED, EXN_PARENT(MZEXN_FAIL), "exn:fail:unsupported", 0, NULL, scheme_null, NULL) SETUP_STRUCT(MZEXN_FAIL_UNSUPPORTED, EXN_PARENT(MZEXN_FAIL), "exn:fail:unsupported", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_FAIL_USER, EXN_PARENT(MZEXN_FAIL), "exn:fail:user", 0, NULL, scheme_null, NULL) SETUP_STRUCT(MZEXN_FAIL_USER, EXN_PARENT(MZEXN_FAIL), "exn:fail:user", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_BREAK, EXN_PARENT(MZEXN), "exn:break", 1, MZEXN_BREAK_FIELDS, scheme_null, scheme_make_prim(break_field_check)) SETUP_STRUCT(MZEXN_BREAK, EXN_PARENT(MZEXN), "exn:break", 1, MZEXN_BREAK_FIELDS, scheme_null, scheme_make_prim(break_field_check))
SETUP_STRUCT(MZEXN_BREAK_TERMINATE, EXN_PARENT(MZEXN_BREAK), "exn:break:terminate", 0, NULL, scheme_null, NULL)
SETUP_STRUCT(MZEXN_BREAK_HANG_UP, EXN_PARENT(MZEXN_BREAK), "exn:break:hang-up", 0, NULL, scheme_null, NULL)
#endif #endif

View File

@ -12,9 +12,9 @@
finally, set EXPECTED_PRIM_COUNT to the right value and finally, set EXPECTED_PRIM_COUNT to the right value and
USE_COMPILED_STARTUP to 1 and `make' again. */ USE_COMPILED_STARTUP to 1 and `make' again. */
#define USE_COMPILED_STARTUP 1 #define USE_COMPILED_STARTUP 0
#define EXPECTED_PRIM_COUNT 1065 #define EXPECTED_PRIM_COUNT 1071
#define EXPECTED_UNSAFE_COUNT 79 #define EXPECTED_UNSAFE_COUNT 79
#define EXPECTED_FLFXNUM_COUNT 69 #define EXPECTED_FLFXNUM_COUNT 69
#define EXPECTED_FUTURES_COUNT 15 #define EXPECTED_FUTURES_COUNT 15

View File

@ -13,12 +13,12 @@
consistently.) consistently.)
*/ */
#define MZSCHEME_VERSION "5.3.0.19" #define MZSCHEME_VERSION "5.3.0.20"
#define MZSCHEME_VERSION_X 5 #define MZSCHEME_VERSION_X 5
#define MZSCHEME_VERSION_Y 3 #define MZSCHEME_VERSION_Y 3
#define MZSCHEME_VERSION_Z 0 #define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 19 #define MZSCHEME_VERSION_W 20
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)

View File

@ -506,7 +506,7 @@ void scheme_init_thread(Scheme_Env *env)
GLOBAL_PRIM_W_ARITY("thread-wait" , thread_wait , 1, 1, env); GLOBAL_PRIM_W_ARITY("thread-wait" , thread_wait , 1, 1, env);
GLOBAL_PRIM_W_ARITY("current-thread" , sch_current , 0, 0, env); GLOBAL_PRIM_W_ARITY("current-thread" , sch_current , 0, 0, env);
GLOBAL_PRIM_W_ARITY("kill-thread" , kill_thread , 1, 1, env); GLOBAL_PRIM_W_ARITY("kill-thread" , kill_thread , 1, 1, env);
GLOBAL_PRIM_W_ARITY("break-thread" , break_thread , 1, 1, env); GLOBAL_PRIM_W_ARITY("break-thread" , break_thread , 1, 2, env);
GLOBAL_PRIM_W_ARITY("thread-suspend" , thread_suspend , 1, 1, env); GLOBAL_PRIM_W_ARITY("thread-suspend" , thread_suspend , 1, 1, env);
GLOBAL_PRIM_W_ARITY("thread-resume" , thread_resume , 1, 2, env); GLOBAL_PRIM_W_ARITY("thread-resume" , thread_resume , 1, 2, env);
GLOBAL_PRIM_W_ARITY("thread-resume-evt" , make_thread_resume , 1, 1, env); GLOBAL_PRIM_W_ARITY("thread-resume-evt" , make_thread_resume , 1, 1, env);
@ -4205,7 +4205,7 @@ void scheme_pop_break_enable(Scheme_Cont_Frame_Data *cframe, int post_check)
} }
} }
static Scheme_Object *raise_user_break(int argc, Scheme_Object ** volatile argv) static Scheme_Object *raise_user_break(void *data, int argc, Scheme_Object ** volatile argv)
{ {
/* The main action here is buried in code to free temporary bignum /* The main action here is buried in code to free temporary bignum
space on escapes. Aside from a thread kill, this is the only space on escapes. Aside from a thread kill, this is the only
@ -4216,6 +4216,9 @@ static Scheme_Object *raise_user_break(int argc, Scheme_Object ** volatile argv)
that's why we save and restore an old snapshot. */ that's why we save and restore an old snapshot. */
mz_jmp_buf *savebuf, newbuf; mz_jmp_buf *savebuf, newbuf;
intptr_t save[4]; intptr_t save[4];
int kind;
kind = SCHEME_INT_VAL((Scheme_Object *)data);
savebuf = scheme_current_thread->error_buf; savebuf = scheme_current_thread->error_buf;
scheme_current_thread->error_buf = &newbuf; scheme_current_thread->error_buf = &newbuf;
@ -4223,7 +4226,11 @@ static Scheme_Object *raise_user_break(int argc, Scheme_Object ** volatile argv)
if (!scheme_setjmp(newbuf)) { if (!scheme_setjmp(newbuf)) {
/* >>>> This is the main action <<<< */ /* >>>> This is the main action <<<< */
scheme_raise_exn(MZEXN_BREAK, argv[0], "user break"); scheme_raise_exn(kind, argv[0], ((kind == MZEXN_BREAK_TERMINATE)
? "terminate break"
: ((kind == MZEXN_BREAK_HANG_UP)
? "hang-up break"
: "user break")));
/* will definitely escape (or thread will die) */ /* will definitely escape (or thread will die) */
} else { } else {
/* As expected, we're escaping. Unless we're continuing, then /* As expected, we're escaping. Unless we're continuing, then
@ -4244,7 +4251,9 @@ static void raise_break(Scheme_Thread *p)
Thread_Schedule_State_Record ssr; Thread_Schedule_State_Record ssr;
Scheme_Object *a[1]; Scheme_Object *a[1];
Scheme_Cont_Frame_Data cframe; Scheme_Cont_Frame_Data cframe;
int kind;
kind = p->external_break;
p->external_break = 0; p->external_break = 0;
if (p->blocker && (p->block_check == (Scheme_Ready_Fun)syncing_ready)) { if (p->blocker && (p->block_check == (Scheme_Ready_Fun)syncing_ready)) {
@ -4255,7 +4264,7 @@ static void raise_break(Scheme_Thread *p)
save_thread_schedule_state(p, &ssr, 0); save_thread_schedule_state(p, &ssr, 0);
p->ran_some = 1; p->ran_some = 1;
a[0] = scheme_make_prim((Scheme_Prim *)raise_user_break); a[0] = scheme_make_closed_prim((Scheme_Closed_Prim *)raise_user_break, scheme_make_integer(kind));
/* Continuation frame ensures that this doesn't /* Continuation frame ensures that this doesn't
look like it's in tail position with respect to look like it's in tail position with respect to
@ -4304,14 +4313,22 @@ static void exit_or_escape(Scheme_Thread *p)
select_thread(); select_thread();
} }
void scheme_break_main_thread_at(void *p) void scheme_break_kind_main_thread_at(void *p, int kind)
/* This function can be called from an interrupt handler. /* This function can be called from an interrupt handler.
On some platforms, it will even be called from multiple On some platforms, it will even be called from multiple
OS threads. In the case of multiple threads, there's a OS threads. In the case of multiple threads, there's a
tiny chance that a single Ctl-C will trigger multiple tiny chance that a single Ctl-C will trigger multiple
break exceptions. */ break exceptions. */
XFORM_SKIP_PROC
{ {
*(volatile short *)p = 1; if (kind > *(volatile short *)p)
*(volatile short *)p = kind;
}
void scheme_break_main_thread_at(void *p)
XFORM_SKIP_PROC
{
scheme_break_kind_main_thread_at(p, MZEXN_BREAK);
} }
void scheme_break_main_thread() void scheme_break_main_thread()
@ -4343,13 +4360,14 @@ static void check_ready_break()
if (delayed_break_ready) { if (delayed_break_ready) {
if (scheme_main_thread) { if (scheme_main_thread) {
int kind = delayed_break_ready;
delayed_break_ready = 0; delayed_break_ready = 0;
scheme_break_thread(main_break_target_thread); scheme_break_kind_thread(main_break_target_thread, kind);
} }
} }
} }
void scheme_break_thread(Scheme_Thread *p) void scheme_break_kind_thread(Scheme_Thread *p, int kind)
{ {
if (!p) { if (!p) {
p = scheme_main_thread; p = scheme_main_thread;
@ -4362,7 +4380,8 @@ void scheme_break_thread(Scheme_Thread *p)
p = p->nestee; p = p->nestee;
} }
p->external_break = 1; if (kind > p->external_break)
p->external_break = kind;
if (p == scheme_current_thread) { if (p == scheme_current_thread) {
if (scheme_can_break(p)) { if (scheme_can_break(p)) {
@ -4377,6 +4396,11 @@ void scheme_break_thread(Scheme_Thread *p)
# endif # endif
} }
void scheme_break_thread(Scheme_Thread *p)
{
return scheme_break_kind_thread(p, MZEXN_BREAK);
}
static void call_on_atomic_timeout(int must) static void call_on_atomic_timeout(int must)
{ {
Scheme_Thread *p = scheme_current_thread; Scheme_Thread *p = scheme_current_thread;
@ -5113,19 +5137,29 @@ sch_sleep(int argc, Scheme_Object *args[])
static Scheme_Object *break_thread(int argc, Scheme_Object *args[]) static Scheme_Object *break_thread(int argc, Scheme_Object *args[])
{ {
Scheme_Thread *p; Scheme_Thread *p;
int kind = MZEXN_BREAK;
if (!SAME_TYPE(SCHEME_TYPE(args[0]), scheme_thread_type)) if (!SAME_TYPE(SCHEME_TYPE(args[0]), scheme_thread_type))
scheme_wrong_contract("break-thread", "thread?", 0, argc, args); scheme_wrong_contract("break-thread", "thread?", 0, argc, args);
if ((argc > 1) && SCHEME_TRUEP(args[1])) {
if (SCHEME_SYMBOLP(args[1])
&& !SCHEME_SYM_WEIRDP(args[1])
&& !strcmp(SCHEME_SYM_VAL(args[1]), "hang-up"))
kind = MZEXN_BREAK_HANG_UP;
else if (SCHEME_SYMBOLP(args[1])
&& !SCHEME_SYM_WEIRDP(args[1])
&& !strcmp(SCHEME_SYM_VAL(args[1]), "terminate"))
kind = MZEXN_BREAK_TERMINATE;
else
scheme_wrong_contract("break-thread", "(or/c #f 'hang-up 'terminate)", 1, argc, args);
}
p = (Scheme_Thread *)args[0]; p = (Scheme_Thread *)args[0];
scheme_break_thread(p); scheme_break_kind_thread(p, kind);
/* In case p == scheme_current_thread */ scheme_check_break_now();
if (!scheme_fuel_counter) {
scheme_thread_block(0.0);
scheme_current_thread->ran_some = 1;
}
return scheme_void; return scheme_void;
} }