regexp-replace* handles empty matches; empty-match handling documented

svn: r9751
This commit is contained in:
Matthew Flatt 2008-05-08 20:29:56 +00:00
parent 44303d2409
commit 548e45408b
13 changed files with 371 additions and 277 deletions

View File

@ -1340,10 +1340,10 @@
[parent
(new group-box-panel%
[parent p]
[label (string-constant assume-primitives-group-box-label)]
[label (string-constant enforce-primitives-group-box-label)]
[stretchable-height #f]
[stretchable-width #f])]
[label (string-constant assume-primitives-check-box-label)])])
[label (string-constant enforce-primitives-check-box-label)])])
(case-lambda
[() (extend-simple-settings (base-config)
(send assume-cb get-value))]

View File

@ -892,10 +892,9 @@
(write `(let () ;; cannot use begin, since it gets flattened to top-level (and re-compiled!)
,@(if use-copy?
(list
`(namespace-require ',module-language-spec)
`(namespace-require/copy ',module-language-spec))
(list
`(namespace-require ',module-language-spec)))
`(namespace-require/constant ',module-language-spec)))
,@(if transformer-module-language-spec
(list `(namespace-require `(for-syntax ,transformer-module-language-spec)))
(list))
@ -1130,7 +1129,7 @@
(newline))])
(if use-copy?
(namespace-require/copy module-spec)
(namespace-require module-spec))
(namespace-require/constant module-spec))
(when transformer-module-spec
(namespace-require `(for-syntax ,transformer-module-spec)))))))

View File

@ -6,7 +6,7 @@
(define-values (main args)
(command-line
#:once-each
[("--no-prim") "(slow) disable assumption that primitives are never redefined"
[("--no-prim") "allow redefinition of primitives (implies worse performance)"
(slow #t)]
#:handlers
(case-lambda
@ -16,7 +16,7 @@
(if (slow)
(namespace-require/copy 'r5rs/init)
(namespace-require 'r5rs/init))
(namespace-require/constant 'r5rs/init))
(current-command-line-arguments (apply vector-immutable args))
(if main

View File

@ -183,8 +183,19 @@ current namespace corresponds to a module body.}
void?]{
Like @scheme[namespace-require] for syntax exported from the module,
but exported variables are treated differently: the export's current
value is copied to a top-level variable in the current namespace.}
but exported variables at @tech{phase level} 0 are treated differently: the
export's current value is copied to a top-level variable in the
current namespace.}
@defproc[(namespace-require/constant [quoted-raw-require-spec any/c])
void?]{
Like @scheme[namespace-require], but for each exported variable at
@tech{phase level} 0, the export's value is copied to a corresponding
top-level variable that is made immutable. Despite setting the
top-level variable, the corresponding identifier is bound as
imported.}
@defproc[(namespace-require/expansion-time [quoted-raw-require-spec any/c])

View File

@ -309,8 +309,12 @@ Like @scheme[regexp-match], but the result is a list of strings or
byte strings corresponding to a sequence of matches of
@scheme[pattern] in @scheme[input]. (Unlike @scheme[regexp-match],
results for parenthesized sub-patterns in @scheme[pattern] are not
returned.) If @scheme[pattern] matches a zero-length string or byte
sequence along the way, the @exnraise[exn:fail].
returned.)
If @scheme[pattern] matches a zero-length string or byte sequence, and
if it is at the beginning or end of the input, then the match does not
count. Otherwise, one character or byte in the input is skipped before
attempting another match.
If @scheme[input] contains no matches (in the range @scheme[start-pos]
to @scheme[end-pos]), @scheme[null] is returned. Otherwise, each item
@ -522,8 +526,8 @@ strings (if @scheme[pattern] is a string or character regexp and
@scheme[input] is a string) or byte strings (otherwise) from in
@scheme[input] that are separated by matches to
@scheme[pattern]. Adjacent matches are separated with @scheme[""] or
@scheme[#""]. If @scheme[pattern] matches a zero-length string or byte
sequence along the way, the @exnraise[exn:fail].
@scheme[#""]. Zero-length matches are treated the same as in
@scheme[regexp-match*].
If @scheme[input] contains no matches (in the range @scheme[start-pos]
to @scheme[end-pos]), the result is a list containing @scheme[input]'s
@ -613,8 +617,8 @@ Like @scheme[regexp-replace], except that every instance of
instead of just the first match. Only non-overlapping instances of
@scheme[pattern] in @scheme[input] are replaced, so instances of
@scheme[pattern] within inserted strings are @italic{not} replaced
recursively. If, in the process of repeating matches, @scheme[pattern]
matches an empty string, the @exnraise[exn:fail].
recursively. Zero-length matches are treated the same as in
@scheme[regexp-match*].
@examples[
(regexp-replace* "([Mm])i ([a-zA-Z]*)" "mi cerveza Mi Mi Mi"

View File

@ -970,8 +970,8 @@ please adhere to these guidelines:
(use-mixed-fractions "Mixed fractions")
(use-repeating-decimals "Repeating decimals")
(decimal-notation-for-rationals "Use decimal notation for rationals")
(assume-primitives-group-box-label "Initial Bindings")
(assume-primitives-check-box-label "Assume initial bindings never change")
(enforce-primitives-group-box-label "Initial Bindings")
(enforce-primitives-check-box-label "Disallow redefinition of initial bindings")
; used in the bottom left of the drscheme frame
; used the popup menu from the just above; greyed out and only

View File

@ -1058,6 +1058,14 @@
(test '(#"") regexp-match "$" (open-input-string "123") 3)
(test '(#"") regexp-match-peek "" (open-input-string "123") 3)
(test "1b2b3" regexp-replace* "" "123" "b")
(test "1b23" regexp-replace* "(?=2)" "123" "b")
(test "ax\u03BB" regexp-replace* "" "a\u03BB" "x")
(test "ax\u03BBxb" regexp-replace* "" "a\u03BBb" "x")
(test #"ax\316x\273xb" regexp-replace* #"" "a\u03BBb" #"x")
(test "1=2===3" regexp-replace* "2*" "123" (lambda (s) (string-append "=" s "=")))
(test "1=2===3==4" regexp-replace* "2*" "1234" (lambda (s) (string-append "=" s "=")))
;; Test weird port offsets:
(define (test-weird-offset regexp-match regexp-match-positions)
(test #f regexp-match "e" (open-input-string ""))

View File

@ -467,7 +467,7 @@
(let ([b (identifier-binding (syntax-case (expand #'(module m (lib "lang/htdp-intermediate.ss")
cons)) ()
[(mod m beg (#%mod-beg cons))
[(mod m beg (#%mod-beg (app call-w-vals (lam () cons) prnt)))
(let ([s (syntax cons)])
(test 'cons syntax-e s)
s)]))])

View File

@ -1,24 +1,24 @@
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,51,50,0,0,0,1,0,0,6,0,
9,0,16,0,20,0,25,0,28,0,33,0,46,0,53,0,60,0,64,0,69,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,53,50,0,0,0,1,0,0,6,0,
9,0,16,0,20,0,25,0,38,0,41,0,46,0,53,0,60,0,64,0,69,
0,78,0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,
155,0,177,0,179,0,193,0,253,0,23,1,32,1,41,1,51,1,68,1,107,
1,146,1,215,1,4,2,92,2,137,2,142,2,162,2,53,3,73,3,124,3,
190,3,75,4,233,4,20,5,31,5,110,5,0,0,120,7,0,0,65,98,101,
103,105,110,29,11,11,66,100,101,102,105,110,101,63,97,110,100,64,108,101,116,
42,62,111,114,64,99,111,110,100,72,112,97,114,97,109,101,116,101,114,105,122,
101,66,108,101,116,114,101,99,66,117,110,108,101,115,115,63,108,101,116,64,119,
42,72,112,97,114,97,109,101,116,101,114,105,122,101,62,111,114,64,99,111,110,
100,66,108,101,116,114,101,99,66,117,110,108,101,115,115,63,108,101,116,64,119,
104,101,110,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,
14,68,35,37,107,101,114,110,101,108,11,29,94,2,14,68,35,37,112,97,114,
97,109,122,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,
117,101,115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,
97,109,98,100,97,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,98,10,35,11,8,184,211,94,159,2,16,35,35,159,2,15,35,35,16,20,
2,3,2,2,2,6,2,2,2,4,2,2,2,5,2,2,2,9,2,2,2,
7,2,2,2,8,2,2,2,10,2,2,2,11,2,2,2,12,2,2,97,36,
11,8,184,211,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,
2,2,13,97,10,11,11,8,184,211,16,0,97,10,37,11,8,184,211,16,0,
115,98,10,35,11,8,181,216,94,159,2,16,35,35,159,2,15,35,35,16,20,
2,3,2,2,2,7,2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,
9,2,2,2,8,2,2,2,10,2,2,2,11,2,2,2,12,2,2,97,36,
11,8,181,216,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,
2,2,13,97,10,11,11,8,181,216,16,0,97,10,37,11,8,181,216,16,0,
13,16,4,35,29,11,11,2,2,11,18,98,64,104,101,114,101,8,31,8,30,
8,29,8,28,8,27,27,248,22,189,3,23,196,1,249,22,182,3,80,158,38,
35,251,22,73,2,17,248,22,88,23,200,2,12,249,22,63,2,1,248,22,90,
@ -28,14 +28,14 @@
36,35,36,28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,182,3,
80,158,38,35,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,4,248,
22,65,23,202,1,11,18,100,10,8,31,8,30,8,29,8,28,8,27,16,4,
11,11,2,18,3,1,7,101,110,118,55,56,52,50,16,4,11,11,2,19,3,
1,7,101,110,118,55,56,52,51,27,248,22,65,248,22,189,3,23,197,1,28,
11,11,2,18,3,1,7,101,110,118,55,57,54,53,16,4,11,11,2,19,3,
1,7,101,110,118,55,57,54,54,27,248,22,65,248,22,189,3,23,197,1,28,
248,22,71,23,194,2,20,15,159,36,35,36,28,248,22,71,248,22,65,23,195,
2,248,22,64,193,249,22,182,3,80,158,38,35,250,22,73,2,20,248,22,73,
249,22,73,248,22,73,2,21,248,22,64,23,202,2,251,22,73,2,17,2,21,
2,21,249,22,63,2,6,248,22,65,23,205,1,18,100,11,8,31,8,30,8,
29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,55,56,52,53,
16,4,11,11,2,19,3,1,7,101,110,118,55,56,52,54,248,22,189,3,193,
2,21,249,22,63,2,7,248,22,65,23,205,1,18,100,11,8,31,8,30,8,
29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,55,57,54,56,
16,4,11,11,2,19,3,1,7,101,110,118,55,57,54,57,248,22,189,3,193,
27,248,22,189,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,
248,22,65,248,22,189,3,23,197,1,249,22,182,3,80,158,38,35,28,248,22,
51,248,22,183,3,248,22,64,23,198,2,27,249,22,2,32,0,89,162,8,44,
@ -59,14 +59,14 @@
107,45,115,101,116,45,102,105,114,115,116,11,2,24,201,250,22,74,2,20,9,
248,22,65,203,27,248,22,65,248,22,189,3,23,197,1,28,248,22,71,23,194,
2,20,15,159,36,35,36,249,22,182,3,80,158,38,35,27,248,22,189,3,248,
22,64,23,198,2,28,249,22,149,8,62,61,62,248,22,183,3,248,22,88,23,
22,64,23,198,2,28,249,22,150,8,62,61,62,248,22,183,3,248,22,88,23,
197,2,250,22,73,2,20,248,22,73,249,22,73,21,93,2,25,248,22,64,199,
250,22,74,2,7,249,22,73,2,25,249,22,73,248,22,97,203,2,25,248,22,
65,202,251,22,73,2,17,28,249,22,149,8,248,22,183,3,248,22,64,23,201,
250,22,74,2,8,249,22,73,2,25,249,22,73,248,22,97,203,2,25,248,22,
65,202,251,22,73,2,17,28,249,22,150,8,248,22,183,3,248,22,64,23,201,
2,64,101,108,115,101,10,248,22,64,23,198,2,250,22,74,2,20,9,248,22,
65,23,201,1,249,22,63,2,7,248,22,65,23,203,1,99,8,31,8,30,8,
29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,55,56,54,56,
16,4,11,11,2,19,3,1,7,101,110,118,55,56,54,57,18,158,94,10,64,
65,23,201,1,249,22,63,2,8,248,22,65,23,203,1,99,8,31,8,30,8,
29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,55,57,57,49,
16,4,11,11,2,19,3,1,7,101,110,118,55,57,57,50,18,158,94,10,64,
118,111,105,100,8,47,27,248,22,65,248,22,189,3,196,249,22,182,3,80,158,
38,35,28,248,22,51,248,22,183,3,248,22,64,197,250,22,73,2,26,248,22,
73,248,22,64,199,248,22,88,198,27,248,22,183,3,248,22,64,197,250,22,73,
@ -83,23 +83,23 @@
159,36,2,2,2,13,16,0,11,16,5,93,2,12,89,162,8,44,36,52,9,
223,0,33,34,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,
11,16,5,93,2,4,89,162,8,44,36,52,9,223,0,33,35,35,20,103,159,
35,16,1,20,25,159,36,2,2,2,13,16,1,33,36,11,16,5,93,2,6,
35,16,1,20,25,159,36,2,2,2,13,16,1,33,36,11,16,5,93,2,7,
89,162,8,44,36,55,9,223,0,33,37,35,20,103,159,35,16,1,20,25,159,
36,2,2,2,13,16,1,33,38,11,16,5,93,2,11,89,162,8,44,36,57,
9,223,0,33,41,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,
0,11,16,5,93,2,9,89,162,8,44,36,52,9,223,0,33,43,35,20,103,
159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,5,89,
162,8,44,36,53,9,223,0,33,44,35,20,103,159,35,16,1,20,25,159,36,
2,2,2,13,16,0,11,16,5,93,2,8,89,162,8,44,36,54,9,223,0,
2,2,2,13,16,0,11,16,5,93,2,6,89,162,8,44,36,54,9,223,0,
33,45,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,
5,93,2,7,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,35,16,
5,93,2,8,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,35,16,
1,20,25,159,36,2,2,2,13,16,1,33,48,11,16,5,93,2,3,89,162,
8,44,36,53,9,223,0,33,49,35,20,103,159,35,16,1,20,25,159,36,2,
2,2,13,16,0,11,16,0,94,2,15,2,16,93,2,15,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 2035);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,51,59,0,0,0,1,0,0,3,0,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,53,59,0,0,0,1,0,0,3,0,
16,0,21,0,38,0,53,0,71,0,87,0,97,0,115,0,135,0,151,0,169,
0,200,0,229,0,251,0,9,1,15,1,29,1,34,1,44,1,52,1,80,1,
112,1,157,1,202,1,226,1,9,2,11,2,68,2,158,3,199,3,33,5,137,
@ -131,177 +131,177 @@
111,114,32,98,121,116,101,32,115,116,114,105,110,103,6,36,36,99,97,110,110,
111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,
114,111,111,116,32,112,97,116,104,58,32,5,0,27,20,14,159,80,158,36,50,
250,80,158,39,51,249,22,27,11,80,158,41,50,22,157,12,10,248,22,133,5,
23,196,2,28,248,22,175,5,23,194,2,12,87,94,248,22,152,8,23,194,1,
250,80,158,39,51,249,22,27,11,80,158,41,50,22,158,12,10,248,22,134,5,
23,196,2,28,248,22,176,5,23,194,2,12,87,94,248,22,153,8,23,194,1,
248,80,159,37,53,36,195,28,248,22,71,23,195,2,9,27,248,22,64,23,196,
2,27,28,248,22,138,13,23,195,2,23,194,1,28,248,22,137,13,23,195,2,
249,22,139,13,23,196,1,250,80,158,42,48,248,22,153,13,2,20,11,10,250,
80,158,40,48,248,22,153,13,2,20,23,197,1,10,28,23,193,2,249,22,63,
248,22,141,13,249,22,139,13,23,198,1,247,22,154,13,27,248,22,65,23,200,
1,28,248,22,71,23,194,2,9,27,248,22,64,23,195,2,27,28,248,22,138,
13,23,195,2,23,194,1,28,248,22,137,13,23,195,2,249,22,139,13,23,196,
1,250,80,158,47,48,248,22,153,13,2,20,11,10,250,80,158,45,48,248,22,
153,13,2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,141,13,249,22,
139,13,23,198,1,247,22,154,13,248,80,159,45,52,36,248,22,65,23,199,1,
2,27,28,248,22,139,13,23,195,2,23,194,1,28,248,22,138,13,23,195,2,
249,22,140,13,23,196,1,250,80,158,42,48,248,22,154,13,2,20,11,10,250,
80,158,40,48,248,22,154,13,2,20,23,197,1,10,28,23,193,2,249,22,63,
248,22,142,13,249,22,140,13,23,198,1,247,22,155,13,27,248,22,65,23,200,
1,28,248,22,71,23,194,2,9,27,248,22,64,23,195,2,27,28,248,22,139,
13,23,195,2,23,194,1,28,248,22,138,13,23,195,2,249,22,140,13,23,196,
1,250,80,158,47,48,248,22,154,13,2,20,11,10,250,80,158,45,48,248,22,
154,13,2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,142,13,249,22,
140,13,23,198,1,247,22,155,13,248,80,159,45,52,36,248,22,65,23,199,1,
87,94,23,193,1,248,80,159,43,52,36,248,22,65,23,197,1,87,94,23,193,
1,27,248,22,65,23,198,1,28,248,22,71,23,194,2,9,27,248,22,64,23,
195,2,27,28,248,22,138,13,23,195,2,23,194,1,28,248,22,137,13,23,195,
2,249,22,139,13,23,196,1,250,80,158,45,48,248,22,153,13,2,20,11,10,
250,80,158,43,48,248,22,153,13,2,20,23,197,1,10,28,23,193,2,249,22,
63,248,22,141,13,249,22,139,13,23,198,1,247,22,154,13,248,80,159,43,52,
36,248,22,65,23,199,1,248,80,159,41,52,36,248,22,65,196,27,248,22,178,
12,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,22,144,6,23,195,
2,27,248,22,136,13,195,28,192,192,248,22,137,13,195,11,87,94,28,28,248,
22,179,12,23,195,2,10,27,248,22,178,12,23,196,2,28,23,193,2,192,87,
94,23,193,1,28,248,22,144,6,23,196,2,27,248,22,136,13,23,197,2,28,
23,193,2,192,87,94,23,193,1,248,22,137,13,23,197,2,11,12,250,22,179,
195,2,27,28,248,22,139,13,23,195,2,23,194,1,28,248,22,138,13,23,195,
2,249,22,140,13,23,196,1,250,80,158,45,48,248,22,154,13,2,20,11,10,
250,80,158,43,48,248,22,154,13,2,20,23,197,1,10,28,23,193,2,249,22,
63,248,22,142,13,249,22,140,13,23,198,1,247,22,155,13,248,80,159,43,52,
36,248,22,65,23,199,1,248,80,159,41,52,36,248,22,65,196,27,248,22,179,
12,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,22,145,6,23,195,
2,27,248,22,137,13,195,28,192,192,248,22,138,13,195,11,87,94,28,28,248,
22,180,12,23,195,2,10,27,248,22,179,12,23,196,2,28,23,193,2,192,87,
94,23,193,1,28,248,22,145,6,23,196,2,27,248,22,137,13,23,197,2,28,
23,193,2,192,87,94,23,193,1,248,22,138,13,23,197,2,11,12,250,22,180,
8,76,110,111,114,109,97,108,45,112,97,116,104,45,99,97,115,101,6,42,42,
112,97,116,104,32,40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,
32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,
23,197,2,28,28,248,22,179,12,23,195,2,249,22,149,8,248,22,180,12,23,
197,2,2,21,249,22,149,8,247,22,163,7,2,21,27,28,248,22,144,6,23,
196,2,23,195,2,248,22,153,7,248,22,183,12,23,197,2,28,249,22,166,13,
23,197,2,28,28,248,22,180,12,23,195,2,249,22,150,8,248,22,181,12,23,
197,2,2,21,249,22,150,8,247,22,164,7,2,21,27,28,248,22,145,6,23,
196,2,23,195,2,248,22,154,7,248,22,184,12,23,197,2,28,249,22,167,13,
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,144,6,195,248,22,186,12,195,194,27,248,22,183,
6,23,195,1,249,22,187,12,248,22,156,7,250,22,172,13,0,6,35,114,120,
34,47,34,28,249,22,166,13,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,22,172,13,
93,34,23,195,2,28,248,22,145,6,195,248,22,187,12,195,194,27,248,22,184,
6,23,195,1,249,22,188,12,248,22,157,7,250,22,173,13,0,6,35,114,120,
34,47,34,28,249,22,167,13,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,22,173,13,
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,158,43,36,2,21,28,248,22,144,6,194,248,
22,186,12,194,193,87,94,28,27,248,22,178,12,23,196,2,28,23,193,2,192,
87,94,23,193,1,28,248,22,144,6,23,196,2,27,248,22,136,13,23,197,2,
28,23,193,2,192,87,94,23,193,1,248,22,137,13,23,197,2,11,12,250,22,
179,8,23,196,2,2,22,23,197,2,28,248,22,136,13,23,195,2,12,248,22,
133,11,249,22,142,10,248,22,173,6,250,22,128,7,2,23,23,200,1,23,201,
1,247,22,23,87,94,28,27,248,22,178,12,23,196,2,28,23,193,2,192,87,
94,23,193,1,28,248,22,144,6,23,196,2,27,248,22,136,13,23,197,2,28,
23,193,2,192,87,94,23,193,1,248,22,137,13,23,197,2,11,12,250,22,179,
8,23,196,2,2,22,23,197,2,28,248,22,136,13,23,195,2,12,248,22,133,
11,249,22,142,10,248,22,173,6,250,22,128,7,2,23,23,200,1,23,201,1,
247,22,23,87,94,87,94,28,27,248,22,178,12,23,196,2,28,23,193,2,192,
87,94,23,193,1,28,248,22,144,6,23,196,2,27,248,22,136,13,23,197,2,
28,23,193,2,192,87,94,23,193,1,248,22,137,13,23,197,2,11,12,250,22,
179,8,195,2,22,23,197,2,28,248,22,136,13,23,195,2,12,248,22,133,11,
249,22,142,10,248,22,173,6,250,22,128,7,2,23,199,23,201,1,247,22,23,
249,22,3,89,162,8,44,36,49,9,223,2,33,34,196,248,22,133,11,249,22,
172,10,23,196,1,247,22,23,87,94,250,80,159,38,39,36,2,7,196,197,251,
23,202,1,6,2,2,92,49,80,158,43,36,2,21,28,248,22,145,6,194,248,
22,187,12,194,193,87,94,28,27,248,22,179,12,23,196,2,28,23,193,2,192,
87,94,23,193,1,28,248,22,145,6,23,196,2,27,248,22,137,13,23,197,2,
28,23,193,2,192,87,94,23,193,1,248,22,138,13,23,197,2,11,12,250,22,
180,8,23,196,2,2,22,23,197,2,28,248,22,137,13,23,195,2,12,248,22,
134,11,249,22,143,10,248,22,174,6,250,22,129,7,2,23,23,200,1,23,201,
1,247,22,23,87,94,28,27,248,22,179,12,23,196,2,28,23,193,2,192,87,
94,23,193,1,28,248,22,145,6,23,196,2,27,248,22,137,13,23,197,2,28,
23,193,2,192,87,94,23,193,1,248,22,138,13,23,197,2,11,12,250,22,180,
8,23,196,2,2,22,23,197,2,28,248,22,137,13,23,195,2,12,248,22,134,
11,249,22,143,10,248,22,174,6,250,22,129,7,2,23,23,200,1,23,201,1,
247,22,23,87,94,87,94,28,27,248,22,179,12,23,196,2,28,23,193,2,192,
87,94,23,193,1,28,248,22,145,6,23,196,2,27,248,22,137,13,23,197,2,
28,23,193,2,192,87,94,23,193,1,248,22,138,13,23,197,2,11,12,250,22,
180,8,195,2,22,23,197,2,28,248,22,137,13,23,195,2,12,248,22,134,11,
249,22,143,10,248,22,174,6,250,22,129,7,2,23,199,23,201,1,247,22,23,
249,22,3,89,162,8,44,36,49,9,223,2,33,34,196,248,22,134,11,249,22,
173,10,23,196,1,247,22,23,87,94,250,80,159,38,39,36,2,7,196,197,251,
80,159,39,41,36,2,7,32,0,89,162,8,44,36,44,9,222,33,36,197,198,
32,38,89,162,43,41,58,65,99,108,111,111,112,222,33,39,28,248,22,71,23,
199,2,87,94,23,198,1,248,23,196,1,251,22,128,7,2,24,23,199,1,28,
248,22,71,23,203,2,87,94,23,202,1,23,201,1,250,22,1,22,132,13,23,
204,1,23,205,1,23,198,1,27,249,22,132,13,248,22,64,23,202,2,23,199,
2,28,248,22,191,12,23,194,2,27,250,22,1,22,132,13,23,197,1,23,202,
2,28,248,22,191,12,23,194,2,192,87,94,23,193,1,27,248,22,65,23,202,
1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,199,1,251,22,128,7,
199,2,87,94,23,198,1,248,23,196,1,251,22,129,7,2,24,23,199,1,28,
248,22,71,23,203,2,87,94,23,202,1,23,201,1,250,22,1,22,133,13,23,
204,1,23,205,1,23,198,1,27,249,22,133,13,248,22,64,23,202,2,23,199,
2,28,248,22,128,13,23,194,2,27,250,22,1,22,133,13,23,197,1,23,202,
2,28,248,22,128,13,23,194,2,192,87,94,23,193,1,27,248,22,65,23,202,
1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,199,1,251,22,129,7,
2,24,23,202,1,28,248,22,71,23,206,2,87,94,23,205,1,23,204,1,250,
22,1,22,132,13,23,207,1,23,208,1,23,201,1,27,249,22,132,13,248,22,
64,23,197,2,23,202,2,28,248,22,191,12,23,194,2,27,250,22,1,22,132,
13,23,197,1,204,28,248,22,191,12,193,192,253,2,38,203,204,205,206,23,15,
22,1,22,133,13,23,207,1,23,208,1,23,201,1,27,249,22,133,13,248,22,
64,23,197,2,23,202,2,28,248,22,128,13,23,194,2,27,250,22,1,22,133,
13,23,197,1,204,28,248,22,128,13,193,192,253,2,38,203,204,205,206,23,15,
248,22,65,201,253,2,38,202,203,204,205,206,248,22,65,200,87,94,23,193,1,
27,248,22,65,23,201,1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,
198,1,251,22,128,7,2,24,23,201,1,28,248,22,71,23,205,2,87,94,23,
204,1,23,203,1,250,22,1,22,132,13,23,206,1,23,207,1,23,200,1,27,
249,22,132,13,248,22,64,23,197,2,23,201,2,28,248,22,191,12,23,194,2,
27,250,22,1,22,132,13,23,197,1,203,28,248,22,191,12,193,192,253,2,38,
198,1,251,22,129,7,2,24,23,201,1,28,248,22,71,23,205,2,87,94,23,
204,1,23,203,1,250,22,1,22,133,13,23,206,1,23,207,1,23,200,1,27,
249,22,133,13,248,22,64,23,197,2,23,201,2,28,248,22,128,13,23,194,2,
27,250,22,1,22,133,13,23,197,1,203,28,248,22,128,13,193,192,253,2,38,
202,203,204,205,206,248,22,65,201,253,2,38,201,202,203,204,205,248,22,65,200,
27,247,22,155,13,253,2,38,198,199,200,201,202,198,87,95,28,28,248,22,179,
12,23,194,2,10,27,248,22,178,12,23,195,2,28,23,193,2,192,87,94,23,
193,1,28,248,22,144,6,23,195,2,27,248,22,136,13,23,196,2,28,23,193,
2,192,87,94,23,193,1,248,22,137,13,23,196,2,11,12,252,22,179,8,23,
200,2,2,25,35,23,198,2,23,199,2,28,28,248,22,144,6,23,195,2,10,
248,22,132,7,23,195,2,87,94,23,194,1,12,252,22,179,8,23,200,2,2,
26,36,23,198,2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,135,13,
23,197,2,87,94,23,195,1,87,94,28,192,12,250,22,180,8,23,201,1,2,
27,247,22,156,13,253,2,38,198,199,200,201,202,198,87,95,28,28,248,22,180,
12,23,194,2,10,27,248,22,179,12,23,195,2,28,23,193,2,192,87,94,23,
193,1,28,248,22,145,6,23,195,2,27,248,22,137,13,23,196,2,28,23,193,
2,192,87,94,23,193,1,248,22,138,13,23,196,2,11,12,252,22,180,8,23,
200,2,2,25,35,23,198,2,23,199,2,28,28,248,22,145,6,23,195,2,10,
248,22,133,7,23,195,2,87,94,23,194,1,12,252,22,180,8,23,200,2,2,
26,36,23,198,2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,136,13,
23,197,2,87,94,23,195,1,87,94,28,192,12,250,22,181,8,23,201,1,2,
27,23,199,1,249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,
28,248,22,179,12,23,196,2,10,27,248,22,178,12,23,197,2,28,23,193,2,
192,87,94,23,193,1,28,248,22,144,6,23,197,2,27,248,22,136,13,23,198,
2,28,23,193,2,192,87,94,23,193,1,248,22,137,13,23,198,2,11,12,252,
22,179,8,2,10,2,25,35,23,200,2,23,201,2,28,28,248,22,144,6,23,
197,2,10,248,22,132,7,23,197,2,12,252,22,179,8,2,10,2,26,36,23,
200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,135,13,23,199,2,
87,94,23,195,1,87,94,28,23,193,2,12,250,22,180,8,2,10,2,27,23,
201,2,249,22,7,23,195,1,23,196,1,27,249,22,188,12,250,22,171,13,0,
28,248,22,180,12,23,196,2,10,27,248,22,179,12,23,197,2,28,23,193,2,
192,87,94,23,193,1,28,248,22,145,6,23,197,2,27,248,22,137,13,23,198,
2,28,23,193,2,192,87,94,23,193,1,248,22,138,13,23,198,2,11,12,252,
22,180,8,2,10,2,25,35,23,200,2,23,201,2,28,28,248,22,145,6,23,
197,2,10,248,22,133,7,23,197,2,12,252,22,180,8,2,10,2,26,36,23,
200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,136,13,23,199,2,
87,94,23,195,1,87,94,28,23,193,2,12,250,22,181,8,2,10,2,27,23,
201,2,249,22,7,23,195,1,23,196,1,27,249,22,189,12,250,22,172,13,0,
18,35,114,120,35,34,40,91,46,93,91,94,46,93,42,124,41,36,34,248,22,
184,12,23,201,1,28,248,22,144,6,23,203,2,249,22,156,7,23,204,1,8,
63,23,202,1,28,248,22,179,12,23,199,2,248,22,180,12,23,199,1,87,94,
23,198,1,247,22,181,12,28,248,22,178,12,194,249,22,132,13,195,194,192,91,
159,37,11,90,161,37,35,11,87,95,28,28,248,22,179,12,23,196,2,10,27,
248,22,178,12,23,197,2,28,23,193,2,192,87,94,23,193,1,28,248,22,144,
6,23,197,2,27,248,22,136,13,23,198,2,28,23,193,2,192,87,94,23,193,
1,248,22,137,13,23,198,2,11,12,252,22,179,8,2,11,2,25,35,23,200,
2,23,201,2,28,28,248,22,144,6,23,197,2,10,248,22,132,7,23,197,2,
12,252,22,179,8,2,11,2,26,36,23,200,2,23,201,2,91,159,38,11,90,
161,38,35,11,248,22,135,13,23,199,2,87,94,23,195,1,87,94,28,23,193,
2,12,250,22,180,8,2,11,2,27,23,201,2,249,22,7,23,195,1,23,196,
1,27,249,22,188,12,249,22,142,7,250,22,172,13,0,9,35,114,120,35,34,
91,46,93,34,248,22,184,12,23,203,1,6,1,1,95,28,248,22,144,6,23,
202,2,249,22,156,7,23,203,1,8,63,23,201,1,28,248,22,179,12,23,199,
2,248,22,180,12,23,199,1,87,94,23,198,1,247,22,181,12,28,248,22,178,
12,194,249,22,132,13,195,194,192,249,247,22,131,6,194,11,248,80,158,36,46,
9,27,247,22,157,13,249,80,158,38,47,28,23,195,2,27,248,22,161,7,6,
185,12,23,201,1,28,248,22,145,6,23,203,2,249,22,157,7,23,204,1,8,
63,23,202,1,28,248,22,180,12,23,199,2,248,22,181,12,23,199,1,87,94,
23,198,1,247,22,182,12,28,248,22,179,12,194,249,22,133,13,195,194,192,91,
159,37,11,90,161,37,35,11,87,95,28,28,248,22,180,12,23,196,2,10,27,
248,22,179,12,23,197,2,28,23,193,2,192,87,94,23,193,1,28,248,22,145,
6,23,197,2,27,248,22,137,13,23,198,2,28,23,193,2,192,87,94,23,193,
1,248,22,138,13,23,198,2,11,12,252,22,180,8,2,11,2,25,35,23,200,
2,23,201,2,28,28,248,22,145,6,23,197,2,10,248,22,133,7,23,197,2,
12,252,22,180,8,2,11,2,26,36,23,200,2,23,201,2,91,159,38,11,90,
161,38,35,11,248,22,136,13,23,199,2,87,94,23,195,1,87,94,28,23,193,
2,12,250,22,181,8,2,11,2,27,23,201,2,249,22,7,23,195,1,23,196,
1,27,249,22,189,12,249,22,143,7,250,22,173,13,0,9,35,114,120,35,34,
91,46,93,34,248,22,185,12,23,203,1,6,1,1,95,28,248,22,145,6,23,
202,2,249,22,157,7,23,203,1,8,63,23,201,1,28,248,22,180,12,23,199,
2,248,22,181,12,23,199,1,87,94,23,198,1,247,22,182,12,28,248,22,179,
12,194,249,22,133,13,195,194,192,249,247,22,132,6,194,11,248,80,158,36,46,
9,27,247,22,158,13,249,80,158,38,47,28,23,195,2,27,248,22,162,7,6,
11,11,80,76,84,67,79,76,76,69,67,84,83,28,192,192,6,0,0,6,0,
0,27,28,23,196,1,250,22,132,13,248,22,153,13,69,97,100,100,111,110,45,
100,105,114,247,22,159,7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,
80,159,41,52,36,249,22,77,23,202,1,248,22,73,248,22,153,13,72,99,111,
0,27,28,23,196,1,250,22,133,13,248,22,154,13,69,97,100,100,111,110,45,
100,105,114,247,22,160,7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,
80,159,41,52,36,249,22,77,23,202,1,248,22,73,248,22,154,13,72,99,111,
108,108,101,99,116,115,45,100,105,114,28,23,194,2,249,22,63,23,196,1,23,
195,1,192,32,47,89,162,8,44,38,54,2,19,222,33,48,27,249,22,164,13,
195,1,192,32,47,89,162,8,44,38,54,2,19,222,33,48,27,249,22,165,13,
23,197,2,23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,88,23,195,
2,27,27,248,22,97,23,197,1,27,249,22,164,13,23,201,2,23,196,2,28,
2,27,27,248,22,97,23,197,1,27,249,22,165,13,23,201,2,23,196,2,28,
23,193,2,87,94,23,194,1,27,248,22,88,23,195,2,27,250,2,47,23,203,
2,23,204,1,248,22,97,23,199,1,28,249,22,138,7,23,196,2,2,28,249,
22,77,23,202,2,194,249,22,63,248,22,187,12,23,197,1,23,195,1,87,95,
23,199,1,23,193,1,28,249,22,138,7,23,196,2,2,28,249,22,77,23,200,
2,9,249,22,63,248,22,187,12,23,197,1,9,28,249,22,138,7,23,196,2,
2,28,249,22,77,197,194,87,94,23,196,1,249,22,63,248,22,187,12,23,197,
1,194,87,94,23,193,1,28,249,22,138,7,23,198,2,2,28,249,22,77,195,
9,87,94,23,194,1,249,22,63,248,22,187,12,23,199,1,9,87,95,28,28,
248,22,132,7,194,10,248,22,144,6,194,12,250,22,179,8,2,14,6,21,21,
2,23,204,1,248,22,97,23,199,1,28,249,22,139,7,23,196,2,2,28,249,
22,77,23,202,2,194,249,22,63,248,22,188,12,23,197,1,23,195,1,87,95,
23,199,1,23,193,1,28,249,22,139,7,23,196,2,2,28,249,22,77,23,200,
2,9,249,22,63,248,22,188,12,23,197,1,9,28,249,22,139,7,23,196,2,
2,28,249,22,77,197,194,87,94,23,196,1,249,22,63,248,22,188,12,23,197,
1,194,87,94,23,193,1,28,249,22,139,7,23,198,2,2,28,249,22,77,195,
9,87,94,23,194,1,249,22,63,248,22,188,12,23,199,1,9,87,95,28,28,
248,22,133,7,194,10,248,22,145,6,194,12,250,22,180,8,2,14,6,21,21,
98,121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,
196,28,28,248,22,72,195,249,22,4,22,178,12,196,11,12,250,22,179,8,2,
196,28,28,248,22,72,195,249,22,4,22,179,12,196,11,12,250,22,180,8,2,
14,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,
197,195,28,248,22,144,6,197,248,22,155,7,197,196,32,50,89,162,8,44,39,
197,195,28,248,22,145,6,197,248,22,156,7,197,196,32,50,89,162,8,44,39,
57,2,19,222,33,53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,
101,120,101,99,222,33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,
22,135,13,23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,
22,140,13,23,201,2,28,249,22,151,8,23,195,2,23,202,2,11,28,248,22,
136,13,23,194,2,250,2,51,23,201,2,23,202,2,249,22,132,13,23,200,2,
22,136,13,23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,
22,141,13,23,201,2,28,249,22,152,8,23,195,2,23,202,2,11,28,248,22,
137,13,23,194,2,250,2,51,23,201,2,23,202,2,249,22,133,13,23,200,2,
23,198,1,250,2,51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,
87,94,23,193,1,27,28,248,22,178,12,23,196,2,27,249,22,132,13,23,198,
2,23,201,2,28,28,248,22,191,12,193,10,248,22,190,12,193,192,11,11,28,
23,193,2,192,87,94,23,193,1,28,23,199,2,11,27,248,22,140,13,23,202,
2,28,249,22,151,8,23,195,2,23,203,1,11,28,248,22,136,13,23,194,2,
250,2,51,23,202,1,23,203,1,249,22,132,13,23,201,1,23,198,1,250,2,
51,201,202,195,194,28,248,22,71,23,197,2,11,27,248,22,139,13,248,22,64,
23,199,2,27,249,22,132,13,23,196,1,23,197,2,28,248,22,190,12,23,194,
87,94,23,193,1,27,28,248,22,179,12,23,196,2,27,249,22,133,13,23,198,
2,23,201,2,28,28,248,22,128,13,193,10,248,22,191,12,193,192,11,11,28,
23,193,2,192,87,94,23,193,1,28,23,199,2,11,27,248,22,141,13,23,202,
2,28,249,22,152,8,23,195,2,23,203,1,11,28,248,22,137,13,23,194,2,
250,2,51,23,202,1,23,203,1,249,22,133,13,23,201,1,23,198,1,250,2,
51,201,202,195,194,28,248,22,71,23,197,2,11,27,248,22,140,13,248,22,64,
23,199,2,27,249,22,133,13,23,196,1,23,197,2,28,248,22,191,12,23,194,
2,250,2,51,198,199,195,87,94,23,193,1,27,248,22,65,23,200,1,28,248,
22,71,23,194,2,11,27,248,22,139,13,248,22,64,23,196,2,27,249,22,132,
13,23,196,1,23,200,2,28,248,22,190,12,23,194,2,250,2,51,201,202,195,
22,71,23,194,2,11,27,248,22,140,13,248,22,64,23,196,2,27,249,22,133,
13,23,196,1,23,200,2,28,248,22,191,12,23,194,2,250,2,51,201,202,195,
87,94,23,193,1,27,248,22,65,23,197,1,28,248,22,71,23,194,2,11,27,
248,22,139,13,248,22,64,195,27,249,22,132,13,23,196,1,202,28,248,22,190,
248,22,140,13,248,22,64,195,27,249,22,133,13,23,196,1,202,28,248,22,191,
12,193,250,2,51,204,205,195,251,2,50,204,205,206,248,22,65,199,87,95,28,
27,248,22,178,12,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,
144,6,23,196,2,27,248,22,136,13,23,197,2,28,23,193,2,192,87,94,23,
193,1,248,22,137,13,23,197,2,11,12,250,22,179,8,2,15,6,25,25,112,
27,248,22,179,12,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,
145,6,23,196,2,27,248,22,137,13,23,197,2,28,23,193,2,192,87,94,23,
193,1,248,22,138,13,23,197,2,11,12,250,22,180,8,2,15,6,25,25,112,
97,116,104,32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,
117,108,41,23,197,2,28,28,23,195,2,28,27,248,22,178,12,23,197,2,28,
23,193,2,192,87,94,23,193,1,28,248,22,144,6,23,197,2,27,248,22,136,
13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,137,13,23,198,2,
11,248,22,136,13,23,196,2,11,10,12,250,22,179,8,2,15,6,29,29,35,
117,108,41,23,197,2,28,28,23,195,2,28,27,248,22,179,12,23,197,2,28,
23,193,2,192,87,94,23,193,1,28,248,22,145,6,23,197,2,27,248,22,137,
13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,138,13,23,198,2,
11,248,22,137,13,23,196,2,11,10,12,250,22,180,8,2,15,6,29,29,35,
102,32,111,114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,
32,115,116,114,105,110,103,23,198,2,28,28,248,22,136,13,23,195,2,91,159,
38,11,90,161,38,35,11,248,22,135,13,23,198,2,249,22,149,8,194,68,114,
101,108,97,116,105,118,101,11,27,248,22,161,7,6,4,4,80,65,84,72,251,
32,115,116,114,105,110,103,23,198,2,28,28,248,22,137,13,23,195,2,91,159,
38,11,90,161,38,35,11,248,22,136,13,23,198,2,249,22,150,8,194,68,114,
101,108,97,116,105,118,101,11,27,248,22,162,7,6,4,4,80,65,84,72,251,
2,50,23,199,1,23,200,1,23,201,1,28,23,197,2,27,249,80,158,43,47,
23,200,1,9,28,249,22,149,8,247,22,163,7,2,21,249,22,63,248,22,187,
12,5,1,46,23,195,1,192,9,27,248,22,139,13,23,196,1,28,248,22,190,
23,200,1,9,28,249,22,150,8,247,22,164,7,2,21,249,22,63,248,22,188,
12,5,1,46,23,195,1,192,9,27,248,22,140,13,23,196,1,28,248,22,191,
12,193,250,2,51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,
48,196,11,11,87,94,249,22,136,6,247,22,177,4,195,248,22,151,5,249,22,
48,196,11,11,87,94,249,22,137,6,247,22,178,4,195,248,22,152,5,249,22,
162,3,35,249,22,146,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,
1,23,197,1,87,94,23,197,1,27,248,22,153,13,2,20,27,249,80,158,40,
1,23,197,1,87,94,23,197,1,27,248,22,154,13,2,20,27,249,80,158,40,
48,23,196,1,11,27,27,248,22,165,3,23,200,1,28,192,192,35,27,27,248,
22,165,3,23,202,1,28,192,192,35,249,22,130,5,23,197,1,83,158,39,20,
22,165,3,23,202,1,28,192,192,35,249,22,131,5,23,197,1,83,158,39,20,
97,95,89,162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,
248,22,181,4,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,
248,22,182,4,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,
1,20,24,65,98,101,103,105,110,16,0,83,158,41,20,100,137,67,35,37,117,
116,105,108,115,2,1,11,10,10,42,80,158,35,35,20,103,159,37,16,17,30,
2,1,2,2,193,30,2,1,2,3,193,30,2,1,2,4,193,30,2,1,2,
@ -319,7 +319,7 @@
17,83,158,35,16,2,89,162,43,36,48,2,19,223,0,33,29,80,159,35,53,
36,83,158,35,16,2,89,162,8,44,36,55,2,19,223,0,33,30,80,159,35,
52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,2,222,33,31,80,159,
35,35,36,83,158,35,16,2,249,22,146,6,7,92,7,92,80,159,35,36,36,
35,35,36,83,158,35,16,2,249,22,147,6,7,92,7,92,80,159,35,36,36,
83,158,35,16,2,89,162,43,36,53,2,4,223,0,33,32,80,159,35,37,36,
83,158,35,16,2,32,0,89,162,8,44,37,49,2,5,222,33,33,80,159,35,
38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,6,222,33,35,80,
@ -331,9 +331,9 @@
11,222,33,43,80,159,35,44,36,83,158,35,16,2,32,0,89,162,43,36,43,
2,12,222,33,44,80,159,35,45,36,83,158,35,16,2,83,158,38,20,96,95,
2,13,89,162,43,35,42,9,223,0,33,45,89,162,43,36,52,9,223,0,33,
46,80,159,35,46,36,83,158,35,16,2,27,248,22,160,13,248,22,155,7,27,
28,249,22,149,8,247,22,163,7,2,21,6,1,1,59,6,1,1,58,250,22,
128,7,6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,
46,80,159,35,46,36,83,158,35,16,2,27,248,22,161,13,248,22,156,7,27,
28,249,22,150,8,247,22,164,7,2,21,6,1,1,59,6,1,1,58,250,22,
129,7,6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,
2,23,196,1,89,162,8,44,37,47,2,14,223,0,33,49,80,159,35,47,36,
83,158,35,16,2,83,158,38,20,96,96,2,15,89,162,8,44,38,53,9,223,
0,33,54,89,162,43,37,46,9,223,0,33,55,89,162,43,36,45,9,223,0,
@ -343,12 +343,12 @@
EVAL_ONE_SIZED_STR((char *)expr, 5060);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,51,8,0,0,0,1,0,0,6,0,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,53,8,0,0,0,1,0,0,6,0,
19,0,34,0,48,0,62,0,76,0,111,0,0,0,243,0,0,0,65,113,117,
111,116,101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,
35,37,110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,
109,122,11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,
68,35,37,107,101,114,110,101,108,11,98,10,35,11,8,186,213,97,159,2,2,
68,35,37,107,101,114,110,101,108,11,98,10,35,11,8,183,218,97,159,2,2,
35,35,159,2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,
35,16,0,159,35,20,103,159,35,16,1,20,24,65,98,101,103,105,110,16,0,
83,158,41,20,100,137,69,35,37,98,117,105,108,116,105,110,29,11,11,10,10,
@ -360,7 +360,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 282);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,51,52,0,0,0,1,0,0,3,0,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,50,53,52,0,0,0,1,0,0,3,0,
14,0,41,0,47,0,60,0,74,0,96,0,122,0,134,0,152,0,172,0,184,
0,200,0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,
74,1,82,1,185,1,230,1,250,1,29,2,64,2,98,2,108,2,155,2,165,
@ -382,31 +382,31 @@
122,111,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,45,109,111,100,
117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,63,108,105,98,
67,105,103,110,111,114,101,100,249,22,14,195,80,158,37,45,249,80,159,37,48,
36,195,10,27,28,23,195,2,28,249,22,149,8,23,197,2,80,158,38,46,87,
94,23,195,1,80,158,36,47,27,248,22,160,4,23,197,2,28,248,22,178,12,
23,194,2,91,159,38,11,90,161,38,35,11,248,22,135,13,23,197,1,87,95,
36,195,10,27,28,23,195,2,28,249,22,150,8,23,197,2,80,158,38,46,87,
94,23,195,1,80,158,36,47,27,248,22,161,4,23,197,2,28,248,22,179,12,
23,194,2,91,159,38,11,90,161,38,35,11,248,22,136,13,23,197,1,87,95,
83,160,37,11,80,158,40,46,198,83,160,37,11,80,158,40,47,192,192,11,11,
28,23,193,2,192,87,94,23,193,1,27,247,22,132,6,28,192,192,247,22,154,
28,23,193,2,192,87,94,23,193,1,27,247,22,133,6,28,192,192,247,22,155,
13,20,14,159,80,158,35,39,250,80,158,38,40,249,22,27,11,80,158,40,39,
22,132,6,28,248,22,178,12,23,198,2,23,197,1,87,94,23,197,1,247,22,
154,13,247,194,250,22,132,13,23,197,1,23,199,1,249,80,158,42,38,23,198,
1,2,18,252,22,132,13,23,199,1,23,201,1,6,6,6,110,97,116,105,118,
101,247,22,164,7,249,80,158,44,38,23,200,1,80,158,44,35,87,94,23,194,
1,27,23,194,1,27,250,22,149,13,196,11,32,0,89,162,8,44,35,40,9,
22,133,6,28,248,22,179,12,23,198,2,23,197,1,87,94,23,197,1,247,22,
155,13,247,194,250,22,133,13,23,197,1,23,199,1,249,80,158,42,38,23,198,
1,2,18,252,22,133,13,23,199,1,23,201,1,6,6,6,110,97,116,105,118,
101,247,22,165,7,249,80,158,44,38,23,200,1,80,158,44,35,87,94,23,194,
1,27,23,194,1,27,250,22,150,13,196,11,32,0,89,162,8,44,35,40,9,
222,11,28,192,249,22,63,195,194,11,27,248,23,195,1,23,196,1,27,250,22,
149,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,63,195,
194,11,249,247,22,159,13,248,22,64,195,195,27,250,22,132,13,23,198,1,23,
200,1,249,80,158,43,38,23,199,1,2,18,27,250,22,149,13,196,11,32,0,
89,162,8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,249,247,22,130,
6,248,22,64,195,195,249,247,22,130,6,194,195,87,94,28,248,80,158,36,37,
23,195,2,12,250,22,179,8,77,108,111,97,100,47,117,115,101,45,99,111,109,
150,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,63,195,
194,11,249,247,22,160,13,248,22,64,195,195,27,250,22,133,13,23,198,1,23,
200,1,249,80,158,43,38,23,199,1,2,18,27,250,22,150,13,196,11,32,0,
89,162,8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,249,247,22,131,
6,248,22,64,195,195,249,247,22,131,6,194,195,87,94,28,248,80,158,36,37,
23,195,2,12,250,22,180,8,77,108,111,97,100,47,117,115,101,45,99,111,109,
112,105,108,101,100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,
45,112,97,116,104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,
36,35,11,28,248,22,138,13,23,201,2,23,200,1,27,247,22,132,6,28,23,
193,2,249,22,139,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,135,
13,23,194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,149,8,23,196,
36,35,11,28,248,22,139,13,23,201,2,23,200,1,27,247,22,133,6,28,23,
193,2,249,22,140,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,136,
13,23,194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,150,8,23,196,
2,68,114,101,108,97,116,105,118,101,87,94,23,194,1,2,17,23,194,1,90,
161,36,40,11,247,22,156,13,27,89,162,43,36,49,62,122,111,225,7,5,3,
161,36,40,11,247,22,157,13,27,89,162,43,36,49,62,122,111,225,7,5,3,
33,27,27,89,162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,
8,44,36,47,9,223,5,33,29,23,203,2,27,28,23,195,2,27,249,22,5,
83,158,39,20,97,94,89,162,8,44,36,47,9,223,5,33,30,23,198,1,23,
@ -419,11 +419,11 @@
22,65,199,193,11,11,11,11,28,192,249,80,159,48,54,36,203,89,162,43,35,
45,9,224,15,2,33,33,249,80,159,48,54,36,203,89,162,43,35,44,9,224,
15,7,33,34,32,36,89,162,8,44,36,54,2,19,222,33,38,0,17,35,114,
120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,164,13,2,
120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,165,13,2,
37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,63,248,22,88,23,196,
2,27,248,22,97,23,197,1,27,249,22,164,13,2,37,23,196,2,28,23,193,
2,27,248,22,97,23,197,1,27,249,22,165,13,2,37,23,196,2,28,23,193,
2,87,94,23,194,1,249,22,63,248,22,88,23,196,2,27,248,22,97,23,197,
1,27,249,22,164,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,
1,27,249,22,165,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,
22,63,248,22,88,23,196,2,248,2,36,248,22,97,23,197,1,248,22,73,194,
248,22,73,194,248,22,73,194,32,39,89,162,43,36,54,2,19,222,33,40,28,
248,22,71,248,22,65,23,195,2,249,22,7,9,248,22,64,195,91,159,37,11,
@ -434,96 +434,96 @@
197,2,249,22,7,249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,
22,7,249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,249,
22,63,248,22,64,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,
192,248,2,39,193,87,95,28,248,22,158,4,195,12,250,22,179,8,2,20,6,
192,248,2,39,193,87,95,28,248,22,159,4,195,12,250,22,180,8,2,20,6,
20,20,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,
104,197,28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,
133,2,80,158,41,42,248,22,182,13,247,22,161,11,11,28,23,193,2,192,87,
94,23,193,1,27,247,22,121,87,94,250,22,131,2,80,158,42,42,248,22,182,
13,247,22,161,11,195,192,250,22,131,2,195,198,66,97,116,116,97,99,104,251,
211,197,198,199,10,28,192,250,22,178,8,11,196,195,248,22,176,8,194,28,249,
22,150,6,194,6,1,1,46,2,17,28,249,22,150,6,194,6,2,2,46,46,
62,117,112,192,28,249,22,151,8,248,22,65,23,200,2,23,197,1,28,249,22,
149,8,248,22,64,23,200,2,23,196,1,251,22,176,8,2,20,6,26,26,99,
133,2,80,158,41,42,248,22,183,13,247,22,162,11,11,28,23,193,2,192,87,
94,23,193,1,27,247,22,121,87,94,250,22,131,2,80,158,42,42,248,22,183,
13,247,22,162,11,195,192,250,22,131,2,195,198,66,97,116,116,97,99,104,251,
211,197,198,199,10,28,192,250,22,179,8,11,196,195,248,22,177,8,194,28,249,
22,151,6,194,6,1,1,46,2,17,28,249,22,151,6,194,6,2,2,46,46,
62,117,112,192,28,249,22,152,8,248,22,65,23,200,2,23,197,1,28,249,22,
150,8,248,22,64,23,200,2,23,196,1,251,22,177,8,2,20,6,26,26,99,
121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,101,
58,32,126,101,23,200,1,249,22,2,22,65,248,22,78,249,22,63,23,206,1,
23,202,1,12,12,247,192,20,14,159,80,158,39,44,249,22,63,247,22,161,11,
23,202,1,12,12,247,192,20,14,159,80,158,39,44,249,22,63,247,22,162,11,
23,197,1,20,14,159,80,158,39,39,250,80,158,42,40,249,22,27,11,80,158,
44,39,22,142,4,23,196,1,249,247,22,131,6,23,198,1,248,22,52,248,22,
182,12,23,198,1,87,94,28,28,248,22,178,12,23,197,2,10,248,22,163,4,
23,197,2,12,28,23,198,2,250,22,178,8,11,6,15,15,98,97,100,32,109,
111,100,117,108,101,32,112,97,116,104,23,201,2,250,22,179,8,2,20,6,19,
44,39,22,142,4,23,196,1,249,247,22,132,6,23,198,1,248,22,52,248,22,
183,12,23,198,1,87,94,28,28,248,22,179,12,23,197,2,10,248,22,164,4,
23,197,2,12,28,23,198,2,250,22,179,8,11,6,15,15,98,97,100,32,109,
111,100,117,108,101,32,112,97,116,104,23,201,2,250,22,180,8,2,20,6,19,
19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,23,
199,2,28,28,248,22,61,23,197,2,249,22,149,8,248,22,64,23,199,2,2,
4,11,248,22,159,4,248,22,88,197,28,28,248,22,61,23,197,2,249,22,149,
199,2,28,28,248,22,61,23,197,2,249,22,150,8,248,22,64,23,199,2,2,
4,11,248,22,160,4,248,22,88,197,28,28,248,22,61,23,197,2,249,22,150,
8,248,22,64,23,199,2,66,112,108,97,110,101,116,11,87,94,28,207,12,20,
14,159,80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,42,39,22,161,
14,159,80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,42,39,22,162,
11,23,197,1,90,161,36,35,10,249,22,143,4,21,94,2,21,6,18,18,112,
108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,115,115,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,251,211,199,200,201,202,87,94,23,193,1,27,89,162,8,44,
36,45,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,45,101,114,
114,223,6,33,44,27,28,248,22,51,23,199,2,27,250,22,133,2,80,158,43,
43,249,22,63,23,204,2,247,22,155,13,11,28,23,193,2,192,87,94,23,193,
43,249,22,63,23,204,2,247,22,156,13,11,28,23,193,2,192,87,94,23,193,
1,91,159,37,11,90,161,37,35,11,249,80,159,44,48,36,248,22,54,23,204,
2,11,27,251,80,158,47,50,2,20,23,202,1,28,248,22,71,23,199,2,23,
199,2,248,22,64,23,199,2,28,248,22,71,23,199,2,9,248,22,65,23,199,
2,249,22,132,13,23,195,1,28,248,22,71,23,197,1,87,94,23,197,1,6,
7,7,109,97,105,110,46,115,115,249,22,167,6,23,199,1,6,3,3,46,115,
115,28,248,22,144,6,23,199,2,87,94,23,194,1,27,248,80,159,41,55,36,
2,249,22,133,13,23,195,1,28,248,22,71,23,197,1,87,94,23,197,1,6,
7,7,109,97,105,110,46,115,115,249,22,168,6,23,199,1,6,3,3,46,115,
115,28,248,22,145,6,23,199,2,87,94,23,194,1,27,248,80,159,41,55,36,
23,201,2,27,250,22,133,2,80,158,44,43,249,22,63,23,205,2,23,199,2,
11,28,23,193,2,192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,
80,159,45,48,36,23,204,2,11,250,22,1,22,132,13,23,199,1,249,22,77,
80,159,45,48,36,23,204,2,11,250,22,1,22,133,13,23,199,1,249,22,77,
249,22,2,32,0,89,162,8,44,36,43,9,222,33,45,23,200,1,248,22,73,
23,200,1,28,248,22,178,12,23,199,2,87,94,23,194,1,28,248,22,137,13,
23,200,1,28,248,22,179,12,23,199,2,87,94,23,194,1,28,248,22,138,13,
23,199,2,23,198,2,248,22,73,6,26,26,32,40,97,32,112,97,116,104,32,
109,117,115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,149,
109,117,115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,150,
8,248,22,64,23,201,2,2,21,27,250,22,133,2,80,158,43,43,249,22,63,
23,204,2,247,22,155,13,11,28,23,193,2,192,87,94,23,193,1,91,159,38,
23,204,2,247,22,156,13,11,28,23,193,2,192,87,94,23,193,1,91,159,38,
11,90,161,37,35,11,249,80,159,45,48,36,248,22,88,23,205,2,11,90,161,
36,37,11,28,248,22,71,248,22,90,23,204,2,28,248,22,71,23,194,2,249,
22,166,13,0,8,35,114,120,34,91,46,93,34,23,196,2,11,10,27,27,28,
22,167,13,0,8,35,114,120,34,91,46,93,34,23,196,2,11,10,27,27,28,
23,197,2,249,22,77,28,248,22,71,248,22,90,23,208,2,21,93,6,5,5,
109,122,108,105,98,249,22,1,22,77,249,22,2,80,159,51,56,36,248,22,90,
23,211,2,23,197,2,28,248,22,71,23,196,2,248,22,73,23,197,2,23,195,
2,251,80,158,49,50,2,20,23,204,1,248,22,64,23,198,2,248,22,65,23,
198,1,249,22,132,13,23,195,1,28,23,198,1,87,94,23,196,1,23,197,1,
198,1,249,22,133,13,23,195,1,28,23,198,1,87,94,23,196,1,23,197,1,
28,248,22,71,23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,
115,28,249,22,166,13,0,8,35,114,120,34,91,46,93,34,23,199,2,23,197,
1,249,22,167,6,23,199,1,6,3,3,46,115,115,28,249,22,149,8,248,22,
64,23,201,2,64,102,105,108,101,249,22,139,13,248,22,143,13,248,22,88,23,
202,2,248,80,159,42,55,36,23,202,2,12,87,94,28,28,248,22,178,12,23,
194,2,10,248,22,166,7,23,194,2,87,94,23,200,1,12,28,23,200,2,250,
22,178,8,67,114,101,113,117,105,114,101,249,22,128,7,6,17,17,98,97,100,
115,28,249,22,167,13,0,8,35,114,120,34,91,46,93,34,23,199,2,23,197,
1,249,22,168,6,23,199,1,6,3,3,46,115,115,28,249,22,150,8,248,22,
64,23,201,2,64,102,105,108,101,249,22,140,13,248,22,144,13,248,22,88,23,
202,2,248,80,159,42,55,36,23,202,2,12,87,94,28,28,248,22,179,12,23,
194,2,10,248,22,167,7,23,194,2,87,94,23,200,1,12,28,23,200,2,250,
22,179,8,67,114,101,113,117,105,114,101,249,22,129,7,6,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,64,
23,199,2,6,0,0,23,203,1,87,94,23,200,1,250,22,179,8,2,20,249,
22,128,7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,
198,2,248,22,64,23,199,2,6,0,0,23,201,2,27,28,248,22,166,7,23,
195,2,249,22,171,7,23,196,2,35,249,22,141,13,248,22,142,13,23,197,2,
11,27,28,248,22,166,7,23,196,2,249,22,171,7,23,197,2,36,248,80,158,
42,51,23,195,2,91,159,38,11,90,161,38,35,11,28,248,22,166,7,23,199,
2,250,22,7,2,22,249,22,171,7,23,203,2,37,2,22,248,22,135,13,23,
198,2,87,95,23,195,1,23,193,1,27,28,248,22,166,7,23,200,2,249,22,
171,7,23,201,2,38,249,80,158,47,52,23,197,2,5,0,27,28,248,22,166,
7,23,201,2,249,22,171,7,23,202,2,39,248,22,159,4,23,200,2,27,27,
250,22,133,2,80,158,51,42,248,22,182,13,247,22,161,11,11,28,23,193,2,
23,199,2,6,0,0,23,203,1,87,94,23,200,1,250,22,180,8,2,20,249,
22,129,7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,
198,2,248,22,64,23,199,2,6,0,0,23,201,2,27,28,248,22,167,7,23,
195,2,249,22,172,7,23,196,2,35,249,22,142,13,248,22,143,13,23,197,2,
11,27,28,248,22,167,7,23,196,2,249,22,172,7,23,197,2,36,248,80,158,
42,51,23,195,2,91,159,38,11,90,161,38,35,11,28,248,22,167,7,23,199,
2,250,22,7,2,22,249,22,172,7,23,203,2,37,2,22,248,22,136,13,23,
198,2,87,95,23,195,1,23,193,1,27,28,248,22,167,7,23,200,2,249,22,
172,7,23,201,2,38,249,80,158,47,52,23,197,2,5,0,27,28,248,22,167,
7,23,201,2,249,22,172,7,23,202,2,39,248,22,160,4,23,200,2,27,27,
250,22,133,2,80,158,51,42,248,22,183,13,247,22,162,11,11,28,23,193,2,
192,87,94,23,193,1,27,247,22,121,87,94,250,22,131,2,80,158,52,42,248,
22,182,13,247,22,161,11,195,192,87,95,28,23,209,1,27,250,22,133,2,23,
22,183,13,247,22,162,11,195,192,87,95,28,23,209,1,27,250,22,133,2,23,
197,2,197,11,28,23,193,1,12,87,95,27,27,28,248,22,17,80,158,51,45,
80,158,50,45,247,22,19,250,22,25,248,22,23,23,197,2,80,158,53,44,23,
196,1,27,247,22,161,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,
196,1,27,247,22,162,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,
54,9,226,12,11,2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,
158,50,45,32,0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,
43,35,50,9,227,14,9,8,4,3,33,48,250,22,131,2,23,197,1,197,10,
12,28,28,248,22,166,7,23,202,1,11,27,248,22,144,6,23,208,2,28,192,
192,28,248,22,61,23,208,2,249,22,149,8,248,22,64,23,210,2,2,21,11,
250,22,131,2,80,158,50,43,28,248,22,144,6,23,210,2,249,22,63,23,211,
12,28,28,248,22,167,7,23,202,1,11,27,248,22,145,6,23,208,2,28,192,
192,28,248,22,61,23,208,2,249,22,150,8,248,22,64,23,210,2,2,21,11,
250,22,131,2,80,158,50,43,28,248,22,145,6,23,210,2,249,22,63,23,211,
1,248,80,159,53,55,36,23,213,1,87,94,23,210,1,249,22,63,23,211,1,
247,22,155,13,252,22,168,7,23,208,1,23,207,1,23,205,1,23,203,1,201,
247,22,156,13,252,22,169,7,23,208,1,23,207,1,23,205,1,23,203,1,201,
12,193,91,159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,38,20,
96,96,2,20,89,162,8,44,36,50,9,224,2,0,33,42,89,162,43,38,48,
9,223,1,33,43,89,162,43,39,8,30,9,225,2,3,0,33,49,208,87,95,
248,22,141,4,248,80,158,37,49,247,22,161,11,248,22,131,6,80,158,36,36,
248,22,152,12,80,159,36,41,36,159,35,20,103,159,35,16,1,20,24,65,98,
248,22,141,4,248,80,158,37,49,247,22,162,11,248,22,132,6,80,158,36,36,
248,22,153,12,80,159,36,41,36,159,35,20,103,159,35,16,1,20,24,65,98,
101,103,105,110,16,0,83,158,41,20,100,137,66,35,37,98,111,111,116,2,1,
11,10,10,36,80,158,35,35,20,103,159,39,16,19,30,2,1,2,2,193,30,
2,1,2,3,193,30,2,5,72,112,97,116,104,45,115,116,114,105,110,103,63,
@ -544,7 +544,7 @@
162,43,36,44,9,223,0,33,24,80,159,35,56,36,83,158,35,16,2,89,162,
43,36,48,67,103,101,116,45,100,105,114,223,0,33,25,80,159,35,55,36,83,
158,35,16,2,89,162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,
26,80,159,35,54,36,83,158,35,16,2,248,22,163,7,69,115,111,45,115,117,
26,80,159,35,54,36,83,158,35,16,2,248,22,164,7,69,115,111,45,115,117,
102,102,105,120,80,159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,3,
223,0,33,35,80,159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,
41,2,7,222,192,80,159,35,41,36,83,158,35,16,2,247,22,123,80,159,35,

View File

@ -39,6 +39,7 @@ static Scheme_Object *current_module_name_prefix(int argc, Scheme_Object *argv[]
static Scheme_Object *dynamic_require_for_syntax(int argc, Scheme_Object *argv[]);
static Scheme_Object *namespace_require(int argc, Scheme_Object *argv[]);
static Scheme_Object *namespace_require_copy(int argc, Scheme_Object *argv[]);
static Scheme_Object *namespace_require_constant(int argc, Scheme_Object *argv[]);
static Scheme_Object *namespace_require_etonly(int argc, Scheme_Object *argv[]);
static Scheme_Object *namespace_attach_module(int argc, Scheme_Object *argv[]);
static Scheme_Object *namespace_unprotect_module(int argc, Scheme_Object *argv[]);
@ -368,6 +369,11 @@ void scheme_init_module(Scheme_Env *env)
"namespace-require/copy",
1, 1),
env);
scheme_add_global_constant("namespace-require/constant",
scheme_make_prim_w_arity(namespace_require_constant,
"namespace-require/constant",
1, 1),
env);
scheme_add_global_constant("namespace-require/expansion-time",
scheme_make_prim_w_arity(namespace_require_etonly,
"namespace-require/expansion-time",
@ -1125,6 +1131,11 @@ static Scheme_Object *namespace_require_copy(int argc, Scheme_Object *argv[])
return do_namespace_require(NULL, argc, argv, 1, 0);
}
static Scheme_Object *namespace_require_constant(int argc, Scheme_Object *argv[])
{
return do_namespace_require(NULL, argc, argv, 2, 0);
}
static Scheme_Object *namespace_require_etonly(int argc, Scheme_Object *argv[])
{
return do_namespace_require(NULL, argc, argv, 0, 1);
@ -7925,14 +7936,31 @@ void add_single_require(Scheme_Module_Exports *me, /* from module */
data, cki, form, err_src, mark_src, to_phase, src_phase_index, pt->phase_index);
if (!is_kern) {
int done;
if (do_copy_vars && (j < var_count)) {
Scheme_Env *menv;
Scheme_Object *val;
Scheme_Bucket *b;
modidx = scheme_module_resolve(modidx, 1);
menv = scheme_module_access(modidx, orig_env, 0);
val = scheme_lookup_in_table(menv->toplevel, (char *)exsns[j]);
scheme_add_global_symbol(iname, val, orig_env);
scheme_shadow(orig_env, iname, 1);
b = scheme_global_bucket(iname, orig_env);
scheme_set_global_bucket(((copy_vars == 2)
? "namespace-require/constant"
: "namespace-require/copy"),
b, val, 1);
if (copy_vars == 2) {
((Scheme_Bucket_With_Flags *)b)->flags |= GLOB_IS_IMMUTATED;
done = 0;
} else {
scheme_shadow(orig_env, iname, 1);
done = 1;
}
} else
done = 0;
if (done) {
} else if (!for_unmarshal || !has_context) {
if (!skip_rename) {
if (!save_marshal_info && !has_context && can_save_marshal)

View File

@ -5185,6 +5185,19 @@ static char *build_call_name(const char *n)
return m;
}
static int initial_char_len(unsigned char *source, long start, long end)
{
long i;
for (i = start + 1; i <= end; i++) {
if (scheme_utf8_decode_count(source, start, i, NULL, 1, 1)) {
return i - start;
}
}
return 1;
}
static Scheme_Object *gen_replace(const char *name, int argc, Scheme_Object *argv[], int all)
{
Scheme_Object *orig;
@ -5257,21 +5270,39 @@ static Scheme_Object *gen_replace(const char *name, int argc, Scheme_Object *arg
while (1) {
int m;
m = regexec(name, r, source, srcoffset, sourcelen - srcoffset, startp, maybep, endp,
NULL, NULL, 0,
NULL, 0, 0, NULL, NULL, NULL, NULL);
do {
m = regexec(name, r, source, srcoffset, sourcelen - srcoffset, startp, maybep, endp,
NULL, NULL, 0,
NULL, 0, 0, NULL, NULL, NULL, NULL);
if (m && all && (startp[0] == endp[0])) {
if (!startp[0] && sourcelen) {
int amt;
if (was_non_byte)
amt = initial_char_len((unsigned char *)source, 0, sourcelen);
else
amt = 1;
prefix = scheme_malloc_atomic(amt + 1);
prefix_len = amt;
memcpy(prefix, source, amt);
srcoffset += amt;
/* try again */
} else {
/* if it's the end of the input, the match should fail */
if (startp[0] == sourcelen)
m = 0;
break;
}
} else
break;
} while (1);
if (m) {
char *insert;
long len, end, startpd, endpd;
if ((startp[0] == endp[0]) && all) {
scheme_arg_mismatch(name,
"found a zero-width match for pattern: ",
argv[0]);
return NULL;
}
if (SCHEME_PROCP(argv[2])) {
int i;
Scheme_Object *m, **args, *quick_args[5];
@ -5363,18 +5394,31 @@ static Scheme_Object *gen_replace(const char *name, int argc, Scheme_Object *arg
} else {
char *naya;
long total;
int more;
if (startpd == endpd) {
if (was_non_byte)
more = initial_char_len((unsigned char *)source, startpd, sourcelen);
else
more = 1;
} else
more = 0;
total = len + prefix_len + (startpd - srcoffset);
naya = (char *)scheme_malloc_atomic(total + 1);
naya = (char *)scheme_malloc_atomic(total + more + 1);
memcpy(naya, prefix, prefix_len);
memcpy(naya + prefix_len, source + srcoffset, startpd - srcoffset);
memcpy(naya + prefix_len + (startpd - srcoffset), insert, len);
if (more) {
memcpy(naya + prefix_len + (endpd - srcoffset) + len, source + startpd, more);
total += more;
}
prefix = naya;
prefix_len = total;
srcoffset = endpd;
srcoffset = endpd + more;
}
} else if (!prefix) {
if (was_non_byte)

View File

@ -13,7 +13,7 @@
#define USE_COMPILED_STARTUP 1
#define EXPECTED_PRIM_COUNT 914
#define EXPECTED_PRIM_COUNT 915
#ifdef MZSCHEME_SOMETHING_OMITTED
# undef USE_COMPILED_STARTUP

View File

@ -13,12 +13,12 @@
consistently.)
*/
#define MZSCHEME_VERSION "3.99.0.24"
#define MZSCHEME_VERSION "3.99.0.25"
#define MZSCHEME_VERSION_X 3
#define MZSCHEME_VERSION_Y 99
#define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 24
#define MZSCHEME_VERSION_W 25
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)