summaryrefslogtreecommitdiff
path: root/softcore.c
diff options
context:
space:
mode:
Diffstat (limited to 'softcore.c')
-rw-r--r--softcore.c3557
1 files changed, 2540 insertions, 1017 deletions
diff --git a/softcore.c b/softcore.c
index 2e38728a49a9..af614f6a0f88 100644
--- a/softcore.c
+++ b/softcore.c
@@ -1,1028 +1,2551 @@
-/*******************************************************************
-** s o f t c o r e . c
-** Forth Inspired Command Language -
-** Words from CORE set written in FICL
-** Author: John Sadler (john_sadler@alum.mit.edu)
-** Created: 27 December 1997
-** Last update: Thu Jun 13 02:57:00 2002
-*******************************************************************/
/*
-** DO NOT EDIT THIS FILE -- it is generated by softwords/softcore.py
-** Make changes to the .fr files in ficl/softwords instead.
-** This file contains definitions that are compiled into the
-** system dictionary by the first virtual machine to be created.
-** Created automagically by ficl/softwords/softcore.py
-*/
-/*
-** Copyright (c) 1997-2001 John Sadler (john_sadler@alum.mit.edu)
-** All rights reserved.
-**
-** Get the latest Ficl release at http://ficl.sourceforge.net
-**
-** I am interested in hearing from anyone who uses ficl. If you have
-** a problem, a success story, a defect, an enhancement request, or
-** if you would like to contribute to the ficl release, please send
-** contact me by email at the address above.
+** Ficl softcore
+** both uncompressed and Lempel-Ziv compressed versions.
**
-** L I C E N S E and D I S C L A I M E R
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions
-** are met:
-** 1. Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in the
-** documentation and/or other materials provided with the distribution.
-**
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-** SUCH DAMAGE.
-*/
-
+** Generated 2003/05/05 12:42:30
+**/
#include "ficl.h"
-static char softWords[] =
-#if FICL_WANT_SOFTWORDS
-/*
-** ficl/softwords/softcore.fr
-** FICL soft extensions
-** John Sadler (john_sadler@alum.mit.edu)
-** September, 1998
-*/
-/*
-** Ficl USER variables
-** See words.c for primitive def'n of USER
-*/
- ".( loading ficl soft extensions ) cr "
-#if FICL_WANT_USER
- "variable nUser 0 nUser ! "
- ": user "
- "nUser dup @ user 1 swap +! ; "
-#endif
-/*
-** ficl extras
-*/
- ": empty depth 0 ?do drop loop ; "
- ": cell- [ 1 cells ] literal - ; "
- ": -rot 2 -roll ; "
-/*
-** CORE
-*/
- ": abs "
- "dup 0< if negate endif ; "
- "decimal 32 constant bl "
- ": space bl emit ; "
- ": spaces 0 ?do space loop ; "
- ": abort\" "
- "state @ if "
- "postpone if "
- "postpone .\" "
- "postpone cr "
- "-2 "
- "postpone literal "
- "postpone throw "
- "postpone endif "
- "else "
- "[char] \" parse "
- "rot if "
- "type "
- "cr "
- "-2 throw "
- "else "
- "2drop "
- "endif "
- "endif "
- "; immediate "
-/*
-** CORE EXT
-*/
- ".( loading CORE EXT words ) cr "
- "0 constant false "
- "false invert constant true "
- ": <> = 0= ; "
- ": 0<> 0= 0= ; "
- ": compile, , ; "
- ": convert char+ 65535 >number drop ; "
- ": erase 0 fill ; "
- "variable span "
- ": expect accept span ! ; "
- ": nip swap drop ; "
- ": tuck swap over ; "
- ": within over - >r - r> u< ; "
-/*
-** LOCAL EXT word set
-*/
-#if FICL_WANT_LOCALS
- ": locals| "
- "begin "
- "bl word count "
- "dup 0= abort\" where's the delimiter??\" "
- "over c@ "
- "[char] | - over 1- or "
- "while "
- "(local) "
- "repeat 2drop 0 0 (local) "
- "; immediate "
- ": local bl word count (local) ; immediate "
- ": 2local bl word count (2local) ; immediate "
- ": end-locals 0 0 (local) ; immediate "
-#endif
-/*
-** TOOLS word set...
-*/
- ": ? @ . ; "
- ": dump "
- "0 ?do "
- "dup c@ . 1+ "
- "i 7 and 7 = if cr endif "
- "loop drop "
- "; "
-/*
-** SEARCH+EXT words and ficl helpers
-*/
- ".( loading SEARCH & SEARCH-EXT words ) cr "
- ": brand-wordlist last-word >name drop wid-set-name ; "
- ": ficl-named-wordlist "
- "ficl-wordlist dup create , brand-wordlist does> @ ; "
- ": wordlist "
- "1 ficl-wordlist ; "
- ": ficl-set-current "
- "get-current swap set-current ; "
- ": do-vocabulary "
- "does> @ search> drop >search ; "
- ": ficl-vocabulary "
- "ficl-named-wordlist do-vocabulary ; "
- ": vocabulary "
- "1 ficl-vocabulary ; "
- ": previous search> drop ; "
- "1 ficl-named-wordlist hidden "
- ": hide hidden dup >search ficl-set-current ; "
- ": also "
- "search> dup >search >search ; "
- ": forth "
- "search> drop "
- "forth-wordlist >search ; "
- ": only "
- "-1 set-order ; "
- "hide "
- ": list-wid "
- "dup wid-get-name "
- "?dup if "
- "type drop "
- "else "
- "drop .\" (unnamed wid) \" x. "
- "endif cr "
- "; "
- "set-current "
- ": order "
- ".\" Search:\" cr "
- "get-order 0 ?do 3 spaces list-wid loop cr "
- ".\" Compile: \" get-current list-wid cr "
- "; "
- ": debug ' debug-xt ; immediate "
- ": on-step .\" S: \" .s cr ; "
- ": strdup "
- "0 locals| addr2 length c-addr | end-locals "
- "length 1 + allocate "
- "0= if "
- "to addr2 "
- "c-addr addr2 length move "
- "addr2 length 0 "
- "else "
- "0 -1 "
- "endif "
- "; "
- ": strcat "
- "0 locals| b-length b-u b-addr a-u a-addr | end-locals "
- "b-u to b-length "
- "b-addr a-addr a-u + b-length move "
- "a-addr a-u b-length + "
- "; "
- ": strcpy "
- "locals| b-u b-addr a-u a-addr | end-locals "
- "a-addr 0 b-addr b-u strcat "
- "; "
- "previous "
-/*
-** E N D S O F T C O R E . F R
-*/
-#if FICL_WANT_LOCALS
-/*
-** ficl/softwords/jhlocal.fr
-** stack comment style local syntax...
-*/
- ".( loading Johns-Hopkins locals ) cr "
- "hide "
- "0 constant zero "
- ": ?-- "
- "2dup s\" --\" compare 0= ; "
- ": ?} "
- "2dup s\" }\" compare 0= ; "
- ": ?| "
- "2dup s\" |\" compare 0= ; "
- ": ?2loc "
- "over dup c@ [char] 2 = "
- "swap 1+ c@ [char] : = and "
- "if "
- "2 - swap char+ char+ swap "
- "true "
- "else "
- "false "
- "endif "
- "; "
- ": ?delim "
- "?| if 2drop 1 exit endif "
- "?-- if 2drop 2 exit endif "
- "?} if 2drop 3 exit endif "
- "dup 0= "
- "if 2drop 4 exit endif "
- "0 "
- "; "
- "set-current "
- ": { "
- "0 dup locals| locstate | "
- "begin "
- "parse-word "
- "?delim dup to locstate "
- "0= while "
- "rot 1+ "
- "repeat "
- "0 ?do "
- "?2loc if (2local) else (local) endif "
- "loop "
- "locstate 1 = if "
- "begin "
- "parse-word "
- "?delim dup to locstate "
- "0= while "
- "?2loc if "
- "postpone zero postpone zero (2local) "
- "else "
- "postpone zero (local) "
- "endif "
- "repeat "
- "endif "
- "0 0 (local) "
- "locstate 2 = if "
- "begin "
- "parse-word "
- "?delim dup to locstate "
- "3 < while "
- "locstate 0= if 2drop endif "
- "repeat "
- "endif "
- "locstate 3 <> abort\" syntax error in { } local line\" "
- "; immediate compile-only "
- "previous "
-#endif
-/*
-** ficl/softwords/marker.fr
-** Ficl implementation of CORE EXT MARKER
-*/
- ".( loading MARKER ) cr "
- ": marker "
- "create "
- "get-current , "
- "get-order dup , "
- "0 ?do , loop "
- "does> "
- "0 set-order "
- "dup body> >name drop "
- "here - allot "
- "dup @ "
- "dup set-current forget-wid "
- "cell+ dup @ swap "
- "over cells + swap "
- "0 ?do "
- "dup @ dup "
- ">search forget-wid "
- "cell- "
- "loop "
- "drop "
- "; "
-/*
-**
-** Prefix words for ficl
-** submitted by Larry Hastings, larry@hastings.org
-**
-*/
- "variable save-current "
- ": start-prefixes get-current save-current ! <prefixes> set-current ; "
- ": end-prefixes save-current @ set-current ; "
- ": show-prefixes <prefixes> >search words search> drop ; "
-#if (FICL_EXTENDED_PREFIX)
- "start-prefixes "
- ": \" postpone s\" ; immediate "
- ": .( postpone .( ; immediate "
-/*
-** add 0b, 0o, 0d, and 0x as prefixes
-** these temporarily shift the base to 2, 8, 10, and 16 respectively
-** and consume the next number in the input stream, pushing/compiling
-** as normal
-*/
- ": 0b 2 __tempbase ; immediate "
- ": 0o 8 __tempbase ; immediate "
- "end-prefixes "
-#endif
-/*
-** ficl/softwords/ifbrack.fr
-** ANS conditional compile directives [if] [else] [then]
-** Requires ficl 2.0 or greater...
-*/
- "hide "
- ": ?[if] "
- "2dup s\" [if]\" compare-insensitive 0= "
- "; "
- ": ?[else] "
- "2dup s\" [else]\" compare-insensitive 0= "
- "; "
- ": ?[then] "
- "2dup s\" [then]\" compare-insensitive 0= >r "
- "2dup s\" [endif]\" compare-insensitive 0= r> "
- "or "
- "; "
- "set-current "
- ": [else] "
- "1 "
- "begin "
- "begin "
- "parse-word dup while "
- "?[if] if "
- "2drop 1+ "
- "else "
- "?[else] if "
- "2drop 1- dup if 1+ endif "
- "else "
- "?[then] if 2drop 1- else 2drop endif "
- "endif "
- "endif ?dup 0= if exit endif "
- "repeat 2drop "
- "refill 0= until "
- "drop "
- "; immediate "
- ": [if] "
- "0= if postpone [else] then ; immediate "
- ": [then] ; immediate "
- ": [endif] ; immediate "
- "previous "
-#if FICL_WANT_OOP
-/*
-** ficl/softwords/oo.fr
-** F I C L O - O E X T E N S I O N S
-** john sadler aug 1998
-*/
- ".( loading ficl O-O extensions ) cr "
- "17 ficl-vocabulary oop "
- "also oop definitions "
- "user current-class "
- "0 current-class ! "
-/*
-** L A T E B I N D I N G
-*/
- ": parse-method "
- "parse-word "
- "postpone sliteral "
- "; compile-only "
- ": (lookup-method) { class 2:name -- class 0 | class xt 1 | class xt -1 } "
- "class name class cell+ @ "
- "search-wordlist "
- "; "
- ": lookup-method { class 2:name -- class xt } "
- "class name (lookup-method) "
- "0= if "
- "name type .\" not found in \" "
- "class body> >name type "
- "cr abort "
- "endif "
- "; "
- ": find-method-xt "
- "parse-word lookup-method "
- "; "
- ": catch-method "
- "lookup-method catch "
- "; "
- ": exec-method "
- "lookup-method execute "
- "; "
- ": --> "
- "state @ 0= if "
- "find-method-xt execute "
- "else "
- "parse-method postpone exec-method "
- "endif "
- "; immediate "
- ": c-> "
- "state @ 0= if "
- "find-method-xt catch "
- "else "
- "parse-method postpone catch-method "
- "endif "
- "; immediate "
- ": method create does> body> >name lookup-method execute ; "
-/*
-** E A R L Y B I N D I N G
-*/
- "1 ficl-named-wordlist instance-vars "
- "instance-vars dup >search ficl-set-current "
- ": => "
- "drop find-method-xt compile, drop "
- "; immediate compile-only "
- ": my=> "
- "current-class @ dup postpone => "
- "; immediate compile-only "
- ": my=[ "
- "current-class @ "
- "begin "
- "parse-word 2dup "
- "s\" ]\" compare while "
- "lookup-method "
- "dup compile, "
- "dup ?object if "
- "nip >body cell+ @ "
- "else "
- "drop "
- "endif "
- "repeat 2drop drop "
- "; immediate compile-only "
-/*
-** I N S T A N C E V A R I A B L E S
-*/
- ": do-instance-var "
- "does> "
- "nip @ + "
- "; "
- ": addr-units: "
- "create over , + "
- "do-instance-var "
- "; "
- ": chars: "
- "chars addr-units: ; "
- ": char: "
- "1 chars: ; "
- ": cells: "
- "cells >r aligned r> addr-units: "
- "; "
- ": cell: "
- "1 cells: ; "
- ": do-aggregate "
- "objectify "
- "does> "
- "2@ "
- "2swap drop "
- "+ swap "
- "; "
- ": obj: { offset class meta -- offset' } "
- "create offset , class , "
- "class meta --> get-size offset + "
- "do-aggregate "
- "; "
- ": array: "
- "locals| meta class nobjs offset | "
- "create offset , class , "
- "class meta --> get-size nobjs * offset + "
- "do-aggregate "
- "; "
- ": ref: "
- "locals| meta class offset | "
- "create offset , class , "
- "offset cell+ "
- "does> "
- "2@ "
- "2swap drop + @ swap "
- "; "
-#if FICL_WANT_VCALL
- ": vcall: "
- "current-class @ 8 + dup @ dup 1+ rot ! "
- "create , , "
- "does> "
- "nip 2@ vcall "
- "; "
- ": vcallr: 0x80000000 or vcall: ; "
-#if FICL_WANT_FLOAT
- ": vcallf: "
- "0x80000000 or "
- "current-class @ 8 + dup @ dup 1+ rot ! "
- "create , , "
- "does> "
- "nip 2@ vcall f> "
- "; "
-#endif /* FLOAT */
-#endif /* VCALL */
- ": end-class "
- "swap ! set-current "
- "search> drop "
- "; "
- ": suspend-class end-class ; "
- "set-current previous "
- ": do-do-instance "
- "s\" : .do-instance does> [ current-class @ ] literal ;\" "
- "evaluate "
- "; "
-/*
-** M E T A C L A S S
-*/
- ":noname "
- "wordlist "
- "create "
- "immediate "
- "0 , "
- "dup , "
-#if FICL_WANT_VCALL
- "4 cells , "
-#else
- "3 cells , "
-#endif
- "ficl-set-current "
- "does> dup "
- "; execute metaclass "
- "metaclass drop cell+ @ brand-wordlist "
- "metaclass drop current-class ! "
- "do-do-instance "
- "instance-vars >search "
- "create .super "
- "0 cells , do-instance-var "
- "create .wid "
- "1 cells , do-instance-var "
-#if FICL_WANT_VCALL
- "create .vtCount "
- "2 cells , do-instance-var "
- "create .size "
- "3 cells , do-instance-var "
-#else
- "create .size "
- "2 cells , do-instance-var "
-#endif
- ": get-size metaclass => .size @ ; "
- ": get-wid metaclass => .wid @ ; "
- ": get-super metaclass => .super @ ; "
-#if FICL_WANT_VCALL
- ": get-vtCount metaclass => .vtCount @ ; "
- ": get-vtAdd metaclass => .vtCount ; "
-#endif
- ": instance "
- "locals| meta parent | "
- "create "
- "here parent --> .do-instance "
- "parent meta metaclass => get-size "
- "allot "
- "; "
- ": array "
- "locals| meta parent nobj | "
- "create nobj "
- "here parent --> .do-instance "
- "parent meta metaclass => get-size "
- "nobj * allot "
- "; "
- ": new "
- "metaclass => instance --> init "
- "; "
- ": new-array "
- "metaclass => array "
- "--> array-init "
- "; "
- ": alloc "
- "locals| meta class | "
- "class meta metaclass => get-size allocate "
- "abort\" allocate failed \" "
- "class 2dup --> init "
- "; "
- ": alloc-array "
- "locals| meta class nobj | "
- "class meta metaclass => get-size "
- "nobj * allocate "
- "abort\" allocate failed \" "
- "nobj over class --> array-init "
- "class "
- "; "
- ": allot { 2:this -- 2:instance } "
- "here "
- "this my=> get-size allot "
- "this drop 2dup --> init "
- "; "
- ": allot-array { nobj 2:this -- 2:instance } "
- "here "
- "this my=> get-size nobj * allot "
- "this drop 2dup "
- "nobj -rot --> array-init "
- "; "
- ": ref "
- "drop create , , "
- "does> 2@ "
- "; "
- ": resume-class { 2:this -- old-wid addr[size] size } "
- "this --> .wid @ ficl-set-current "
- "this --> .size dup @ "
- "instance-vars >search "
- "; "
- ": sub "
- "wordlist "
- "locals| wid meta parent | "
- "parent meta metaclass => get-wid "
- "wid wid-set-super "
- "create immediate "
- "wid brand-wordlist "
- "here current-class ! "
- "parent , "
- "wid , "
-#if FICL_WANT_VCALL
- "parent meta --> get-vtCount , "
-#endif
- "here parent meta --> get-size dup , "
- "metaclass => .do-instance "
- "wid ficl-set-current -rot "
- "do-do-instance "
- "instance-vars >search "
- "; "
- ": offset-of "
- "drop find-method-xt nip >body @ ; "
- ": id "
- "drop body> >name ; "
- ": methods "
- "locals| meta class | "
- "begin "
- "class body> >name type .\" methods:\" cr "
- "class meta --> get-wid >search words cr previous "
- "class meta metaclass => get-super "
- "dup to class "
- "0= until cr "
- "; "
- ": pedigree "
- "locals| meta class | "
- "begin "
- "class body> >name type space "
- "class meta metaclass => get-super "
- "dup to class "
- "0= until cr "
- "; "
- ": see "
- "metaclass => get-wid >search see previous ; "
- ": debug "
- "find-method-xt debug-xt ; "
- "previous set-current "
-/*
-** META is a nickname for the address of METACLASS...
-*/
- "metaclass drop "
- "constant meta "
-/*
-** SUBCLASS is a nickname for a class's SUB method...
-*/
- ": subclass --> sub ; "
-#if FICL_WANT_VCALL
- ": hasvtable 4 + ; immediate "
-#endif
-/*
-** O B J E C T
-*/
- ":noname "
- "wordlist "
- "create immediate "
- "0 , "
- "dup , "
- "0 , "
- "ficl-set-current "
- "does> meta "
- "; execute object "
- "object drop cell+ @ brand-wordlist "
- "object drop current-class ! "
- "do-do-instance "
- "instance-vars >search "
- ": class "
- "nip meta ; "
- ": init "
- "meta "
- "metaclass => get-size "
- "erase ; "
- ": array-init "
- "0 dup locals| &init &next class inst | "
- "class s\" init\" lookup-method to &init "
- "s\" next\" lookup-method to &next "
- "drop "
- "0 ?do "
- "inst class 2dup "
- "&init execute "
- "&next execute drop to inst "
- "loop "
- "; "
- ": free "
- "drop free "
- "abort\" free failed \" "
- "; "
- ": super "
- "meta metaclass => get-super ; "
- ": pedigree "
- "object => class "
- "metaclass => pedigree ; "
- ": size "
- "object => class "
- "metaclass => get-size ; "
- ": methods "
- "object => class "
- "metaclass => methods ; "
- ": index "
- "locals| class inst | "
- "inst class "
- "object => class "
- "metaclass => get-size * "
- "inst + class ; "
- ": next "
- "locals| class inst | "
- "inst class "
- "object => class "
- "metaclass => get-size "
- "inst + "
- "class ; "
- ": prev "
- "locals| class inst | "
- "inst class "
- "object => class "
- "metaclass => get-size "
- "inst swap - "
- "class ; "
- ": debug "
- "find-method-xt debug-xt ; "
- "previous set-current "
- "only definitions "
- ": oo only also oop definitions ; "
-#endif
-#if (FICL_WANT_OOP)
-/*
-** ficl/softwords/classes.fr
-** F I C L 2 . 0 C L A S S E S
-*/
- ".( loading ficl utility classes ) cr "
- "also oop definitions "
- "object subclass c-ref "
- "cell: .class "
- "cell: .instance "
- ": get "
- "drop 2@ ; "
- ": set "
- "drop 2! ; "
- "end-class "
- "object subclass c-byte "
- "char: .payload "
- ": get drop c@ ; "
- ": set drop c! ; "
- "end-class "
- "object subclass c-2byte "
- "2 chars: .payload "
- ": get drop w@ ; "
- ": set drop w! ; "
- "end-class "
- "object subclass c-4byte "
- "4 chars: .payload "
- ": get drop q@ ; "
- ": set drop q! ; "
- "end-class "
- "object subclass c-cell "
- "cell: .payload "
- ": get drop @ ; "
- ": set drop ! ; "
- "end-class "
-/*
-** C - P T R
-*/
- "object subclass c-ptr "
- "c-cell obj: .addr "
- ": get-ptr "
- "c-ptr => .addr "
- "c-cell => get "
- "; "
- ": set-ptr "
- "c-ptr => .addr "
- "c-cell => set "
- "; "
- ": clr-ptr "
- "0 -rot c-ptr => .addr c-cell => set "
- "; "
- ": ?null "
- "c-ptr => get-ptr 0= "
- "; "
- ": inc-ptr "
- "2dup 2dup "
- "c-ptr => get-ptr -rot "
- "--> @size + -rot "
- "c-ptr => set-ptr "
- "; "
- ": dec-ptr "
- "2dup 2dup "
- "c-ptr => get-ptr -rot "
- "--> @size - -rot "
- "c-ptr => set-ptr "
- "; "
- ": index-ptr { index 2:this -- } "
- "this --> get-ptr "
- "this --> @size index * + "
- "this --> set-ptr "
- "; "
- "end-class "
-/*
-** C - C E L L P T R
-*/
- "c-ptr subclass c-cellPtr "
- ": @size 2drop 1 cells ; "
- ": get "
- "c-ptr => get-ptr @ "
- "; "
- ": set "
- "c-ptr => get-ptr ! "
- "; "
- "end-class "
-/*
-** C - 4 B Y T E P T R
-*/
- "c-ptr subclass c-4bytePtr "
- ": @size 2drop 4 ; "
- ": get "
- "c-ptr => get-ptr q@ "
- "; "
- ": set "
- "c-ptr => get-ptr q! "
- "; "
- "end-class "
-/*
-** C - 2 B Y T E P T R
-*/
- "c-ptr subclass c-2bytePtr "
- ": @size 2drop 2 ; "
- ": get "
- "c-ptr => get-ptr w@ "
- "; "
- ": set "
- "c-ptr => get-ptr w! "
- "; "
- "end-class "
-/*
-** C - B Y T E P T R
-*/
- "c-ptr subclass c-bytePtr "
- ": @size 2drop 1 ; "
- ": get "
- "c-ptr => get-ptr c@ "
- "; "
- ": set "
- "c-ptr => get-ptr c! "
- "; "
- "end-class "
- "previous definitions "
-#endif
-#if (FICL_WANT_OOP)
-/*
-** ficl/softwords/string.fr
-*/
-/*
-** C - S T R I N G
-*/
- ".( loading ficl string class ) cr "
- "also oop definitions "
- "object subclass c-string "
- "c-cell obj: .count "
- "c-cell obj: .buflen "
- "c-ptr obj: .buf "
- "32 constant min-buf "
- ": get-count my=[ .count get ] ; "
- ": set-count my=[ .count set ] ; "
- ": ?empty --> get-count 0= ; "
- ": get-buflen my=[ .buflen get ] ; "
- ": set-buflen my=[ .buflen set ] ; "
- ": get-buf my=[ .buf get-ptr ] ; "
- ": set-buf { ptr len 2:this -- } "
- "ptr this my=[ .buf set-ptr ] "
- "len this my=> set-buflen "
- "; "
- ": clr-buf "
- "0 0 2over my=> set-buf "
- "0 -rot my=> set-count "
- "; "
- ": free-buf { 2:this -- } "
- "this my=> get-buf "
- "?dup if "
- "free "
- "abort\" c-string free failed\" "
- "this my=> clr-buf "
- "endif "
- "; "
- ": size-buf { size 2:this -- } "
- "size 0< abort\" need positive size for size-buf\" "
- "size 0= if "
- "this --> free-buf exit "
- "endif "
- "my=> min-buf size over / 1+ * chars to size "
- "this --> get-buflen 0= "
- "if "
- "size allocate "
- "abort\" out of memory\" "
- "size this --> set-buf "
- "size this --> set-buflen "
- "exit "
- "endif "
- "size this --> get-buflen > if "
- "this --> get-buf size resize "
- "abort\" out of memory\" "
- "size this --> set-buf "
- "endif "
- "; "
- ": set { c-addr u 2:this -- } "
- "u this --> size-buf "
- "u this --> set-count "
- "c-addr this --> get-buf u move "
- "; "
- ": get { 2:this -- c-addr u } "
- "this --> get-buf "
- "this --> get-count "
- "; "
- ": cat { c-addr u 2:this -- } "
- "this --> get-count u + dup >r "
- "this --> size-buf "
- "c-addr this --> get-buf this --> get-count + u move "
- "r> this --> set-count "
- "; "
- ": type { 2:this -- } "
- "this --> ?empty if .\" (empty) \" exit endif "
- "this --> .buf --> get-ptr "
- "this --> .count --> get "
- "type "
- "; "
- ": compare "
- "--> get "
- "2swap "
- "--> get "
- "2swap compare "
- "; "
- ": hashcode "
- "--> get hash "
- "; "
- ": free 2dup --> free-buf object => free ; "
- "end-class "
- "c-string subclass c-hashstring "
- "c-2byte obj: .hashcode "
- ": set-hashcode { 2:this -- } "
- "this --> super --> hashcode "
- "this --> .hashcode --> set "
- "; "
- ": get-hashcode "
- "--> .hashcode --> get "
- "; "
- ": set "
- "2swap 2over --> super --> set "
- "--> set-hashcode "
- "; "
- ": cat "
- "2swap 2over --> super --> cat "
- "--> set-hashcode "
- "; "
- "end-class "
- "previous definitions "
-#endif
-#if FICL_WANT_FILE
-/*
-**
-** File Access words for ficl
-** submitted by Larry Hastings, larry@hastings.org
-**
-*/
- ": r/o 1 ; "
- ": r/w 3 ; "
- ": w/o 2 ; "
- ": bin 8 or ; "
- ": included "
- "r/o bin open-file 0= if "
- "locals| f | end-locals "
- "f include-file "
- "else "
- "drop "
- "endif "
- "; "
- ": include parse-word included ; "
-#endif
-#endif /* WANT_SOFTWORDS */
- "quit ";
+static size_t ficlSoftcoreUncompressedSize = 25687; /* not including trailing null */
+
+#if !FICL_WANT_LZ_SOFTCORE
+
+static char ficlSoftcoreUncompressed[] =
+ ": empty ( xn..x1 -- ) depth 0 ?do drop loop ;\n"
+ ": cell- ( addr -- addr ) [ 1 cells ] literal - ;\n"
+ ": -rot ( a b c -- c a b ) 2 -roll ;\n"
+ ": abs ( x -- x )\n"
+ "dup 0< if negate endif ;\n"
+ "decimal 32 constant bl\n"
+ ": space ( -- ) bl emit ;\n"
+ ": spaces ( n -- ) 0 ?do space loop ;\n"
+ ": abort\"\n"
+ "state @ if\n"
+ "postpone if\n"
+ "postpone .\"\n"
+ "postpone cr\n"
+ "-2\n"
+ "postpone literal\n"
+ "postpone throw\n"
+ "postpone endif\n"
+ "else\n"
+ "[char] \" parse\n"
+ "rot if\n"
+ "type\n"
+ "cr\n"
+ "-2 throw\n"
+ "else\n"
+ "2drop\n"
+ "endif\n"
+ "endif\n"
+ "; immediate\n"
+ ".( loading CORE EXT words ) cr\n"
+ "0 constant false\n"
+ "false invert constant true\n"
+ ": <> = 0= ;\n"
+ ": 0<> 0= 0= ;\n"
+ ": compile, , ;\n"
+ ": convert char+ 65535 >number drop ; \\ cribbed from DPANS A.6.2.0970\n"
+ ": erase ( addr u -- ) 0 fill ;\n"
+ "variable span\n"
+ ": expect ( c-addr u1 -- ) accept span ! ;\n"
+ ": nip ( y x -- x ) swap drop ;\n"
+ ": tuck ( y x -- x y x) swap over ;\n"
+ ": within ( test low high -- flag ) over - >r - r> u< ;\n"
+ ": ? ( addr -- ) @ . ;\n"
+ ": dump ( addr u -- )\n"
+ "0 ?do\n"
+ "dup c@ . 1+\n"
+ "i 7 and 7 = if cr endif\n"
+ "loop drop\n"
+ ";\n"
+ ".( loading SEARCH & SEARCH-EXT words ) cr\n"
+ ": brand-wordlist ( wid -- ) last-word >name drop wid-set-name ;\n"
+ ": ficl-named-wordlist \\ ( hash-size name -- ) run: ( -- wid )\n"
+ "ficl-wordlist dup create , brand-wordlist does> @ ;\n"
+ ": wordlist ( -- )\n"
+ "1 ficl-wordlist ;\n"
+ ": ficl-set-current ( wid -- old-wid )\n"
+ "get-current swap set-current ;\n"
+ ": do-vocabulary ( -- )\n"
+ "does> @ search> drop >search ;\n"
+ ": ficl-vocabulary ( nBuckets name -- )\n"
+ "ficl-named-wordlist do-vocabulary ;\n"
+ ": vocabulary ( name -- )\n"
+ "1 ficl-vocabulary ;\n"
+ ": previous ( -- ) search> drop ;\n"
+ "1 ficl-named-wordlist hidden\n"
+ ": hide hidden dup >search ficl-set-current ;\n"
+ ": also ( -- )\n"
+ "search> dup >search >search ;\n"
+ ": forth ( -- )\n"
+ "search> drop\n"
+ "forth-wordlist >search ;\n"
+ ": only ( -- )\n"
+ "-1 set-order ;\n"
+ "hide\n"
+ ": list-wid ( wid -- )\n"
+ "dup wid-get-name ( wid c-addr u )\n"
+ "?dup if\n"
+ "type drop\n"
+ "else\n"
+ "drop .\" (unnamed wid) \" x.\n"
+ "endif cr\n"
+ ";\n"
+ "set-current \\ stop hiding words\n"
+ ": order ( -- )\n"
+ ".\" Search:\" cr\n"
+ "get-order 0 ?do 3 spaces list-wid loop cr\n"
+ ".\" Compile: \" get-current list-wid cr\n"
+ ";\n"
+ ": debug ' debug-xt ; immediate\n"
+ ": on-step .\" S: \" .s-simple cr ;\n"
+ "previous \\ lose hidden words from search order\n"
+ "hide\n"
+ ": ?[if] ( c-addr u -- c-addr u flag )\n"
+ "2dup s\" [if]\" compare-insensitive 0=\n"
+ ";\n"
+ ": ?[else] ( c-addr u -- c-addr u flag )\n"
+ "2dup s\" [else]\" compare-insensitive 0=\n"
+ ";\n"
+ ": ?[then] ( c-addr u -- c-addr u flag )\n"
+ "2dup s\" [then]\" compare-insensitive 0= >r\n"
+ "2dup s\" [endif]\" compare-insensitive 0= r>\n"
+ "or\n"
+ ";\n"
+ "set-current\n"
+ ": [else] ( -- )\n"
+ "1 \\ ( level )\n"
+ "begin\n"
+ "begin\n"
+ "parse-word dup while \\ ( level addr len )\n"
+ "?[if] if \\ ( level addr len )\n"
+ "2drop 1+ \\ ( level )\n"
+ "else \\ ( level addr len )\n"
+ "?[else] if \\ ( level addr len )\n"
+ "2drop 1- dup if 1+ endif\n"
+ "else\n"
+ "?[then] if 2drop 1- else 2drop endif\n"
+ "endif\n"
+ "endif ?dup 0= if exit endif \\ level\n"
+ "repeat 2drop \\ level\n"
+ "refill 0= until \\ level\n"
+ "drop\n"
+ "; immediate\n"
+ ": [if] ( flag -- )\n"
+ "0= if postpone [else] then ; immediate\n"
+ ": [then] ( -- ) ; immediate\n"
+ ": [endif] ( -- ) ; immediate\n"
+ "previous\n"
+ "variable save-current\n"
+ ": start-prefixes get-current save-current ! <prefixes> set-current ;\n"
+ ": end-prefixes save-current @ set-current ;\n"
+ ": show-prefixes <prefixes> >search words search> drop ;\n"
+ "start-prefixes\n"
+ "S\" FICL_WANT_EXTENDED_PREFIX\" ENVIRONMENT? drop [if]\n"
+ ": \" postpone s\" ; immediate\n"
+ ": .( postpone .( ; immediate\n"
+ ": \\ postpone \\ ; immediate\n"
+ ": // postpone \\ ; immediate\n"
+ ": 0b 2 __tempbase ; immediate\n"
+ ": 0o 8 __tempbase ; immediate\n"
+ "[endif]\n"
+ ": 0d 10 __tempbase ; immediate\n"
+ ": 0x 16 __tempbase ; immediate\n"
+ "end-prefixes\n"
+ "S\" FICL_WANT_USER\" ENVIRONMENT? drop [if]\n"
+ "variable nUser 0 nUser !\n"
+ ": user \\ name ( -- )\n"
+ "nUser dup @ user 1 swap +! ;\n"
+ "[endif]\n"
+ "S\" FICL_WANT_LOCALS\" ENVIRONMENT? drop [if]\n"
+ ": locals| ( name...name | -- )\n"
+ "begin\n"
+ "bl word count\n"
+ "dup 0= abort\" where's the delimiter??\"\n"
+ "over c@\n"
+ "[char] | - over 1- or\n"
+ "while\n"
+ "(local)\n"
+ "repeat 2drop 0 0 (local)\n"
+ "; immediate\n"
+ ": local ( name -- ) bl word count (local) ; immediate\n"
+ ": 2local ( name -- ) bl word count (2local) ; immediate\n"
+ ": end-locals ( -- ) 0 0 (local) ; immediate\n"
+ ": strdup ( c-addr length -- c-addr2 length2 ior )\n"
+ "0 locals| addr2 length c-addr | end-locals\n"
+ "length 1 + allocate\n"
+ "0= if\n"
+ "to addr2\n"
+ "c-addr addr2 length move\n"
+ "addr2 length 0\n"
+ "else\n"
+ "0 -1\n"
+ "endif\n"
+ ";\n"
+ ": strcat ( 2:a 2:b -- 2:new-a )\n"
+ "0 locals| b-length b-u b-addr a-u a-addr | end-locals\n"
+ "b-u to b-length\n"
+ "b-addr a-addr a-u + b-length move\n"
+ "a-addr a-u b-length +\n"
+ ";\n"
+ ": strcpy ( 2:a 2:b -- 2:new-a )\n"
+ "locals| b-u b-addr a-u a-addr | end-locals\n"
+ "a-addr 0 b-addr b-u strcat\n"
+ ";\n"
+ "[endif]\n"
+ "S\" FICL_WANT_LOCALS\" ENVIRONMENT? drop [if]\n"
+ ".( loading Johns-Hopkins locals ) cr\n"
+ "hide\n"
+ ": compiled-zero ficlInstruction0 , ;\n"
+ ": compiled-float-zero ficlInstructionF0 , ;\n"
+ ": ?-- ( c-addr u -- c-addr u flag )\n"
+ "2dup s\" --\" compare 0= ;\n"
+ ": ?} ( c-addr u -- c-addr u flag )\n"
+ "2dup s\" }\" compare 0= ;\n"
+ ": ?| ( c-addr u -- c-addr u flag )\n"
+ "2dup s\" |\" compare 0= ;\n"
+ "1 constant local-is-double\n"
+ "2 constant local-is-float\n"
+ ": parse-local-prefix-flags ( c-addr u -- c-addr u flags )\n"
+ "0 0 0 locals| stop-loop colon-offset flags u c-addr |\n"
+ "c-addr c@ [char] : =\n"
+ "if\n"
+ "over over 0 exit\n"
+ "endif\n"
+ "u 0 do\n"
+ "c-addr i + c@\n"
+ "case\n"
+ "[char] 1 of flags local-is-double invert and to flags endof\n"
+ "[char] 2 of flags local-is-double or to flags endof\n"
+ "[char] d of flags local-is-double or to flags endof\n"
+ "[char] f of flags local-is-float or to flags endof\n"
+ "[char] i of flags local-is-float invert and to flags endof\n"
+ "[char] s of flags local-is-double invert and to flags endof\n"
+ "[char] : of i 1+ to colon-offset 1 to stop-loop endof\n"
+ "1 to stop-loop\n"
+ "endcase\n"
+ "stop-loop if leave endif\n"
+ "loop\n"
+ "colon-offset 0=\n"
+ "colon-offset u =\n"
+ "or\n"
+ "if\n"
+ "c-addr u 0 exit\n"
+ "endif\n"
+ "c-addr colon-offset +\n"
+ "u colon-offset -\n"
+ "flags\n"
+ ";\n"
+ ": ?delim ( c-addr u -- state | c-addr u 0 )\n"
+ "?| if 2drop 1 exit endif\n"
+ "?-- if 2drop 2 exit endif\n"
+ "?} if 2drop 3 exit endif\n"
+ "dup 0=\n"
+ "if 2drop 4 exit endif\n"
+ "0\n"
+ ";\n"
+ "set-current\n"
+ ": {\n"
+ "0 0 0 locals| flags local-state nLocals |\n"
+ "begin\n"
+ "parse-word ?delim dup to local-state\n"
+ "0= while\n"
+ "nLocals 1+ to nLocals\n"
+ "repeat\n"
+ "nLocals 0 ?do\n"
+ "parse-local-prefix-flags to flags\n"
+ "flags local-is-double and if\n"
+ "flags local-is-float and if (f2local) else (2local) endif\n"
+ "else\n"
+ "flags local-is-float and if (flocal) else (local) endif\n"
+ "endif\n"
+ "loop \\ ( )\n"
+ "local-state 1 = if\n"
+ "begin\n"
+ "parse-word\n"
+ "?delim dup to local-state\n"
+ "0= while\n"
+ "parse-local-prefix-flags to flags\n"
+ "flags local-is-double and if\n"
+ "flags local-is-float and if\n"
+ "compiled-float-zero compiled-float-zero (f2local)\n"
+ "else\n"
+ "compiled-zero compiled-zero (2local)\n"
+ "endif\n"
+ "else\n"
+ "flags local-is-float and if\n"
+ "compiled-float-zero (flocal)\n"
+ "else\n"
+ "compiled-zero (local)\n"
+ "endif\n"
+ "endif\n"
+ "repeat\n"
+ "endif\n"
+ "0 0 (local)\n"
+ "local-state 2 = if\n"
+ "begin\n"
+ "parse-word\n"
+ "?delim dup to local-state\n"
+ "3 < while\n"
+ "local-state 0= if 2drop endif\n"
+ "repeat\n"
+ "endif\n"
+ "local-state 3 <> abort\" syntax error in { } local line\"\n"
+ "; immediate compile-only\n"
+ "previous\n"
+ "[endif]\n"
+ ".( loading MARKER ) cr\n"
+ ": marker ( \"name\" -- )\n"
+ "create\n"
+ "get-current ,\n"
+ "get-order dup ,\n"
+ "0 ?do , loop\n"
+ "does>\n"
+ "0 set-order \\ clear search order\n"
+ "dup body> >name drop\n"
+ "here - allot \\ reset HERE to my xt-addr\n"
+ "dup @ ( pfa current-wid )\n"
+ "dup set-current forget-wid ( pfa )\n"
+ "cell+ dup @ swap ( count count-addr )\n"
+ "over cells + swap ( last-wid-addr count )\n"
+ "0 ?do\n"
+ "dup @ dup ( wid-addr wid wid )\n"
+ ">search forget-wid ( wid-addr )\n"
+ "cell-\n"
+ "loop\n"
+ "drop\n"
+ ";\n"
+ "S\" FICL_WANT_OOP\" ENVIRONMENT? drop [if]\n"
+ ".( loading ficl O-O extensions ) cr\n"
+ "17 ficl-vocabulary oop\n"
+ "also oop definitions\n"
+ "user current-class\n"
+ "0 current-class !\n"
+ ": parse-method \\ name run: ( -- c-addr u )\n"
+ "parse-word\n"
+ "postpone sliteral\n"
+ "; compile-only\n"
+ ": (lookup-method) { class 2:name -- class 0 | class xt 1 | class xt -1 }\n"
+ "class name class cell+ @ ( class c-addr u wid )\n"
+ "search-wordlist\n"
+ ";\n"
+ ": lookup-method { class 2:name -- class xt }\n"
+ "class name (lookup-method) ( 0 | xt 1 | xt -1 )\n"
+ "0= if\n"
+ "name type .\" not found in \"\n"
+ "class body> >name type\n"
+ "cr abort\n"
+ "endif\n"
+ ";\n"
+ ": find-method-xt \\ name ( class -- class xt )\n"
+ "parse-word lookup-method\n"
+ ";\n"
+ ": catch-method ( instance class c-addr u -- <method-signature> exc-flag )\n"
+ "lookup-method catch\n"
+ ";\n"
+ ": exec-method ( instance class c-addr u -- <method-signature> )\n"
+ "lookup-method execute\n"
+ ";\n"
+ ": --> ( instance class -- ??? )\n"
+ "state @ 0= if\n"
+ "find-method-xt execute\n"
+ "else\n"
+ "parse-method postpone exec-method\n"
+ "endif\n"
+ "; immediate\n"
+ ": c-> ( instance class -- ?? exc-flag )\n"
+ "state @ 0= if\n"
+ "find-method-xt catch\n"
+ "else\n"
+ "parse-method postpone catch-method\n"
+ "endif\n"
+ "; immediate\n"
+ ": method create does> body> >name lookup-method execute ;\n"
+ "1 ficl-named-wordlist instance-vars\n"
+ "instance-vars dup >search ficl-set-current\n"
+ ": => \\ c:( class meta -- ) run: ( -- ??? ) invokes compiled method\n"
+ "drop find-method-xt compile, drop\n"
+ "; immediate compile-only\n"
+ ": my=> \\ c:( -- ) run: ( -- ??? ) late bind compiled method of current-class\n"
+ "current-class @ dup postpone =>\n"
+ "; immediate compile-only\n"
+ ": my=[ \\ same as my=> , but binds a chain of methods\n"
+ "current-class @\n"
+ "begin\n"
+ "parse-word 2dup ( class c-addr u c-addr u )\n"
+ "s\" ]\" compare while ( class c-addr u )\n"
+ "lookup-method ( class xt )\n"
+ "dup compile, ( class xt )\n"
+ "dup ?object if \\ If object member, get new class. Otherwise assume same class\n"
+ "nip >body cell+ @ ( new-class )\n"
+ "else\n"
+ "drop ( class )\n"
+ "endif\n"
+ "repeat 2drop drop\n"
+ "; immediate compile-only\n"
+ ": do-instance-var\n"
+ "does> ( instance class addr[offset] -- addr[field] )\n"
+ "nip @ +\n"
+ ";\n"
+ ": addr-units: ( offset size \"name\" -- offset' )\n"
+ "create over , +\n"
+ "do-instance-var\n"
+ ";\n"
+ ": chars: \\ ( offset nCells \"name\" -- offset' ) Create n char member.\n"
+ "chars addr-units: ;\n"
+ ": char: \\ ( offset nCells \"name\" -- offset' ) Create 1 char member.\n"
+ "1 chars: ;\n"
+ ": cells: ( offset nCells \"name\" -- offset' )\n"
+ "cells >r aligned r> addr-units:\n"
+ ";\n"
+ ": cell: ( offset nCells \"name\" -- offset' )\n"
+ "1 cells: ;\n"
+ ": do-aggregate\n"
+ "objectify\n"
+ "does> ( instance class pfa -- a-instance a-class )\n"
+ "2@ ( inst class a-class a-offset )\n"
+ "2swap drop ( a-class a-offset inst )\n"
+ "+ swap ( a-inst a-class )\n"
+ ";\n"
+ ": obj: { offset class meta -- offset' } \\ \"name\"\n"
+ "create offset , class ,\n"
+ "class meta --> get-size offset +\n"
+ "do-aggregate\n"
+ ";\n"
+ ": array: ( offset n class meta \"name\" -- offset' )\n"
+ "locals| meta class nobjs offset |\n"
+ "create offset , class ,\n"
+ "class meta --> get-size nobjs * offset +\n"
+ "do-aggregate\n"
+ ";\n"
+ ": ref: ( offset class meta \"name\" -- offset' )\n"
+ "locals| meta class offset |\n"
+ "create offset , class ,\n"
+ "offset cell+\n"
+ "does> ( inst class pfa -- ptr-inst ptr-class )\n"
+ "2@ ( inst class ptr-class ptr-offset )\n"
+ "2swap drop + @ swap\n"
+ ";\n"
+ "S\" FICL_WANT_VCALL\" ENVIRONMENT? drop [if]\n"
+ ": vcall: ( paramcnt \"name\" -- )\n"
+ "current-class @ 8 + dup @ dup 1+ rot ! \\ Kludge fix to get to .vtCount before it's defined.\n"
+ "create , , \\ ( paramcnt index -- )\n"
+ "does> \\ ( inst class pfa -- ptr-inst ptr-class )\n"
+ "nip 2@ vcall \\ ( params offset inst class offset -- )\n"
+ ";\n"
+ ": vcallr: 0x80000000 or vcall: ; \\ Call with return address desired.\n"
+ "S\" FICL_WANT_FLOAT\" ENVIRONMENT? drop [if]\n"
+ ": vcallf: \\ ( paramcnt -<name>- f: r )\n"
+ "0x80000000 or\n"
+ "current-class @ 8 + dup @ dup 1+ rot ! \\ Kludge fix to get to .vtCount before it's defined.\n"
+ "create , , \\ ( paramcnt index -- )\n"
+ "does> \\ ( inst class pfa -- ptr-inst ptr-class )\n"
+ "nip 2@ vcall f> \\ ( params offset inst class offset -- f: r )\n"
+ ";\n"
+ "[endif] \\ FICL_WANT_FLOAT\n"
+ "[endif] \\ FICL_WANT_VCALL\n"
+ ": end-class ( old-wid addr[size] size -- )\n"
+ "swap ! set-current\n"
+ "search> drop \\ pop struct builder wordlist\n"
+ ";\n"
+ ": suspend-class ( old-wid addr[size] size -- ) end-class ;\n"
+ "set-current previous\n"
+ ": do-do-instance ( -- )\n"
+ "s\" : .do-instance does> [ current-class @ ] literal ;\"\n"
+ "evaluate\n"
+ ";\n"
+ ":noname\n"
+ "wordlist\n"
+ "create\n"
+ "immediate\n"
+ "0 , \\ NULL parent class\n"
+ "dup , \\ wid\n"
+ "[ S\" FICL_WANT_VCALL\" ENVIRONMENT? drop ] [if]\n"
+ "4 cells , \\ instance size\n"
+ "[else]\n"
+ "3 cells , \\ instance size\n"
+ "[endif]\n"
+ "ficl-set-current\n"
+ "does> dup\n"
+ "; execute metaclass\n"
+ "metaclass drop cell+ @ brand-wordlist\n"
+ "metaclass drop current-class !\n"
+ "do-do-instance\n"
+ "instance-vars >search\n"
+ "create .super ( class metaclass -- parent-class )\n"
+ "0 cells , do-instance-var\n"
+ "create .wid ( class metaclass -- wid ) \\ return wid of class\n"
+ "1 cells , do-instance-var\n"
+ "S\" FICL_WANT_VCALL\" ENVIRONMENT? drop [if]\n"
+ "create .vtCount \\ Number of VTABLE methods, if any\n"
+ "2 cells , do-instance-var\n"
+ "create .size ( class metaclass -- size ) \\ return class's payload size\n"
+ "3 cells , do-instance-var\n"
+ "[else]\n"
+ "create .size ( class metaclass -- size ) \\ return class's payload size\n"
+ "2 cells , do-instance-var\n"
+ "[endif]\n"
+ ": get-size metaclass => .size @ ;\n"
+ ": get-wid metaclass => .wid @ ;\n"
+ ": get-super metaclass => .super @ ;\n"
+ "S\" FICL_WANT_VCALL\" ENVIRONMENT? drop [if]\n"
+ ": get-vtCount metaclass => .vtCount @ ;\n"
+ ": get-vtAdd metaclass => .vtCount ;\n"
+ "[endif]\n"
+ ": instance ( class metaclass \"name\" -- instance class )\n"
+ "locals| meta parent |\n"
+ "create\n"
+ "here parent --> .do-instance \\ ( inst class )\n"
+ "parent meta metaclass => get-size\n"
+ "allot \\ allocate payload space\n"
+ ";\n"
+ ": array ( n class metaclass \"name\" -- n instance class )\n"
+ "locals| meta parent nobj |\n"
+ "create nobj\n"
+ "here parent --> .do-instance \\ ( nobj inst class )\n"
+ "parent meta metaclass => get-size\n"
+ "nobj * allot \\ allocate payload space\n"
+ ";\n"
+ ": new \\ ( class metaclass \"name\" -- )\n"
+ "metaclass => instance --> init\n"
+ ";\n"
+ ": new-array ( n class metaclass \"name\" -- )\n"
+ "metaclass => array\n"
+ "--> array-init\n"
+ ";\n"
+ ": alloc \\ ( class metaclass -- instance class )\n"
+ "locals| meta class |\n"
+ "class meta metaclass => get-size allocate ( -- addr fail-flag )\n"
+ "abort\" allocate failed \" ( -- addr )\n"
+ "class 2dup --> init\n"
+ ";\n"
+ ": alloc-array \\ ( n class metaclass -- instance class )\n"
+ "locals| meta class nobj |\n"
+ "class meta metaclass => get-size\n"
+ "nobj * allocate ( -- addr fail-flag )\n"
+ "abort\" allocate failed \" ( -- addr )\n"
+ "nobj over class --> array-init\n"
+ "class\n"
+ ";\n"
+ ": allot { 2:this -- 2:instance }\n"
+ "here ( instance-address )\n"
+ "this my=> get-size allot\n"
+ "this drop 2dup --> init\n"
+ ";\n"
+ ": allot-array { nobj 2:this -- 2:instance }\n"
+ "here ( instance-address )\n"
+ "this my=> get-size nobj * allot\n"
+ "this drop 2dup ( 2instance 2instance )\n"
+ "nobj -rot --> array-init\n"
+ ";\n"
+ ": ref ( instance-addr class metaclass \"name\" -- )\n"
+ "drop create , ,\n"
+ "does> 2@\n"
+ ";\n"
+ ": resume-class { 2:this -- old-wid addr[size] size }\n"
+ "this --> .wid @ ficl-set-current ( old-wid )\n"
+ "this --> .size dup @ ( old-wid addr[size] size )\n"
+ "instance-vars >search\n"
+ ";\n"
+ ": sub ( class metaclass \"name\" -- old-wid addr[size] size )\n"
+ "wordlist\n"
+ "locals| wid meta parent |\n"
+ "parent meta metaclass => get-wid\n"
+ "wid wid-set-super \\ set superclass\n"
+ "create immediate \\ get the subclass name\n"
+ "wid brand-wordlist \\ label the subclass wordlist\n"
+ "here current-class ! \\ prep for do-do-instance\n"
+ "parent , \\ save parent class\n"
+ "wid , \\ save wid\n"
+ "[ S\" FICL_WANT_VCALL\" ENVIRONMENT? drop ] [if]\n"
+ "parent meta --> get-vtCount ,\n"
+ "[endif]\n"
+ "here parent meta --> get-size dup , ( addr[size] size )\n"
+ "metaclass => .do-instance\n"
+ "wid ficl-set-current -rot\n"
+ "do-do-instance\n"
+ "instance-vars >search \\ push struct builder wordlist\n"
+ ";\n"
+ ": offset-of ( class metaclass \"name\" -- offset )\n"
+ "drop find-method-xt nip >body @ ;\n"
+ ": id ( class metaclass -- c-addr u )\n"
+ "drop body> >name ;\n"
+ ": methods \\ ( class meta -- )\n"
+ "locals| meta class |\n"
+ "begin\n"
+ "class body> >name type .\" methods:\" cr\n"
+ "class meta --> get-wid >search words cr previous\n"
+ "class meta metaclass => get-super\n"
+ "dup to class\n"
+ "0= until cr\n"
+ ";\n"
+ ": pedigree ( class meta -- )\n"
+ "locals| meta class |\n"
+ "begin\n"
+ "class body> >name type space\n"
+ "class meta metaclass => get-super\n"
+ "dup to class\n"
+ "0= until cr\n"
+ ";\n"
+ ": see ( class meta -- )\n"
+ "metaclass => get-wid >search see previous ;\n"
+ ": debug ( class meta -- )\n"
+ "find-method-xt debug-xt ;\n"
+ "previous set-current\n"
+ "metaclass drop\n"
+ "constant meta\n"
+ ": subclass --> sub ;\n"
+ "S\" FICL_WANT_VCALL\" ENVIRONMENT? drop [if]\n"
+ ": hasvtable 4 + ; immediate\n"
+ "[endif]\n"
+ ":noname\n"
+ "wordlist\n"
+ "create immediate\n"
+ "0 , \\ NULL parent class\n"
+ "dup , \\ wid\n"
+ "0 , \\ instance size\n"
+ "[ S\" FICL_WANT_VCALL\" ENVIRONMENT? drop ] [if]\n"
+ "0 , \\ .vtCount\n"
+ "[endif]\n"
+ "ficl-set-current\n"
+ "does> meta\n"
+ "; execute object\n"
+ "object drop cell+ @ brand-wordlist\n"
+ "object drop current-class !\n"
+ "do-do-instance\n"
+ "instance-vars >search\n"
+ ": class ( instance class -- class metaclass )\n"
+ "nip meta ;\n"
+ ": init ( instance class -- )\n"
+ "meta\n"
+ "metaclass => get-size ( inst size )\n"
+ "erase ;\n"
+ ": array-init ( nobj inst class -- )\n"
+ "0 dup locals| &init &next class inst |\n"
+ "class s\" init\" lookup-method to &init\n"
+ "s\" next\" lookup-method to &next\n"
+ "drop\n"
+ "0 ?do\n"
+ "inst class 2dup\n"
+ "&init execute\n"
+ "&next execute drop to inst\n"
+ "loop\n"
+ ";\n"
+ ": free \\ ( instance class -- )\n"
+ "drop free\n"
+ "abort\" free failed \"\n"
+ ";\n"
+ ": super ( instance class -- instance parent-class )\n"
+ "meta metaclass => get-super ;\n"
+ ": pedigree ( instance class -- )\n"
+ "object => class\n"
+ "metaclass => pedigree ;\n"
+ ": size ( instance class -- sizeof-instance )\n"
+ "object => class\n"
+ "metaclass => get-size ;\n"
+ ": methods ( instance class -- )\n"
+ "object => class\n"
+ "metaclass => methods ;\n"
+ ": index ( n instance class -- instance[n] class )\n"
+ "locals| class inst |\n"
+ "inst class\n"
+ "object => class\n"
+ "metaclass => get-size * ( n*size )\n"
+ "inst + class ;\n"
+ ": next ( instance[n] class -- instance[n+1] class )\n"
+ "locals| class inst |\n"
+ "inst class\n"
+ "object => class\n"
+ "metaclass => get-size\n"
+ "inst +\n"
+ "class ;\n"
+ ": prev ( instance[n] class -- instance[n-1] class )\n"
+ "locals| class inst |\n"
+ "inst class\n"
+ "object => class\n"
+ "metaclass => get-size\n"
+ "inst swap -\n"
+ "class ;\n"
+ ": debug ( 2this -- ?? )\n"
+ "find-method-xt debug-xt ;\n"
+ "previous set-current\n"
+ "only definitions\n"
+ ": oo only also oop definitions ;\n"
+ "[endif]\n"
+ "S\" FICL_WANT_OOP\" ENVIRONMENT? drop [if]\n"
+ ".( loading ficl utility classes ) cr\n"
+ "also oop definitions\n"
+ "object subclass c-ref\n"
+ "cell: .class\n"
+ "cell: .instance\n"
+ ": get ( inst class -- refinst refclass )\n"
+ "drop 2@ ;\n"
+ ": set ( refinst refclass inst class -- )\n"
+ "drop 2! ;\n"
+ "end-class\n"
+ "object subclass c-byte\n"
+ "char: .payload\n"
+ ": get drop c@ ;\n"
+ ": set drop c! ;\n"
+ "end-class\n"
+ "object subclass c-2byte\n"
+ "2 chars: .payload\n"
+ ": get drop w@ ;\n"
+ ": set drop w! ;\n"
+ "end-class\n"
+ "object subclass c-4byte\n"
+ "4 chars: .payload\n"
+ ": get drop q@ ;\n"
+ ": set drop q! ;\n"
+ "end-class\n"
+ "object subclass c-cell\n"
+ "cell: .payload\n"
+ ": get drop @ ;\n"
+ ": set drop ! ;\n"
+ "end-class\n"
+ "object subclass c-ptr\n"
+ "c-cell obj: .addr\n"
+ ": get-ptr ( inst class -- addr )\n"
+ "c-ptr => .addr\n"
+ "c-cell => get\n"
+ ";\n"
+ ": set-ptr ( addr inst class -- )\n"
+ "c-ptr => .addr\n"
+ "c-cell => set\n"
+ ";\n"
+ ": clr-ptr\n"
+ "0 -rot c-ptr => .addr c-cell => set\n"
+ ";\n"
+ ": ?null ( inst class -- flag )\n"
+ "c-ptr => get-ptr 0=\n"
+ ";\n"
+ ": inc-ptr ( inst class -- )\n"
+ "2dup 2dup ( i c i c i c )\n"
+ "c-ptr => get-ptr -rot ( i c addr i c )\n"
+ "--> @size + -rot ( addr' i c )\n"
+ "c-ptr => set-ptr\n"
+ ";\n"
+ ": dec-ptr ( inst class -- )\n"
+ "2dup 2dup ( i c i c i c )\n"
+ "c-ptr => get-ptr -rot ( i c addr i c )\n"
+ "--> @size - -rot ( addr' i c )\n"
+ "c-ptr => set-ptr\n"
+ ";\n"
+ ": index-ptr { index 2:this -- }\n"
+ "this --> get-ptr ( addr )\n"
+ "this --> @size index * + ( addr' )\n"
+ "this --> set-ptr\n"
+ ";\n"
+ "end-class\n"
+ "c-ptr subclass c-cellPtr\n"
+ ": @size 2drop 1 cells ;\n"
+ ": get ( inst class -- cell )\n"
+ "c-ptr => get-ptr @\n"
+ ";\n"
+ ": set ( value inst class -- )\n"
+ "c-ptr => get-ptr !\n"
+ ";\n"
+ "end-class\n"
+ "c-ptr subclass c-4bytePtr\n"
+ ": @size 2drop 4 ;\n"
+ ": get ( inst class -- value )\n"
+ "c-ptr => get-ptr q@\n"
+ ";\n"
+ ": set ( value inst class -- )\n"
+ "c-ptr => get-ptr q!\n"
+ ";\n"
+ "end-class\n"
+ "c-ptr subclass c-2bytePtr\n"
+ ": @size 2drop 2 ;\n"
+ ": get ( inst class -- value )\n"
+ "c-ptr => get-ptr w@\n"
+ ";\n"
+ ": set ( value inst class -- )\n"
+ "c-ptr => get-ptr w!\n"
+ ";\n"
+ "end-class\n"
+ "c-ptr subclass c-bytePtr\n"
+ ": @size 2drop 1 ;\n"
+ ": get ( inst class -- value )\n"
+ "c-ptr => get-ptr c@\n"
+ ";\n"
+ ": set ( value inst class -- )\n"
+ "c-ptr => get-ptr c!\n"
+ ";\n"
+ "end-class\n"
+ "previous definitions\n"
+ "[endif]\n"
+ "S\" FICL_WANT_OOP\" ENVIRONMENT? drop [if]\n"
+ ".( loading ficl string class ) cr\n"
+ "also oop definitions\n"
+ "object subclass c-string\n"
+ "c-cell obj: .count\n"
+ "c-cell obj: .buflen\n"
+ "c-ptr obj: .buf\n"
+ "32 constant min-buf\n"
+ ": get-count ( 2:this -- count ) my=[ .count get ] ;\n"
+ ": set-count ( count 2:this -- ) my=[ .count set ] ;\n"
+ ": ?empty ( 2:this -- flag ) --> get-count 0= ;\n"
+ ": get-buflen ( 2:this -- len ) my=[ .buflen get ] ;\n"
+ ": set-buflen ( len 2:this -- ) my=[ .buflen set ] ;\n"
+ ": get-buf ( 2:this -- ptr ) my=[ .buf get-ptr ] ;\n"
+ ": set-buf { ptr len 2:this -- }\n"
+ "ptr this my=[ .buf set-ptr ]\n"
+ "len this my=> set-buflen\n"
+ ";\n"
+ ": clr-buf ( 2:this -- )\n"
+ "0 0 2over my=> set-buf\n"
+ "0 -rot my=> set-count\n"
+ ";\n"
+ ": free-buf { 2:this -- }\n"
+ "this my=> get-buf\n"
+ "?dup if\n"
+ "free\n"
+ "abort\" c-string free failed\"\n"
+ "this my=> clr-buf\n"
+ "endif\n"
+ ";\n"
+ ": size-buf { size 2:this -- }\n"
+ "size 0< abort\" need positive size for size-buf\"\n"
+ "size 0= if\n"
+ "this --> free-buf exit\n"
+ "endif\n"
+ "my=> min-buf size over / 1+ * chars to size\n"
+ "this --> get-buflen 0=\n"
+ "if\n"
+ "size allocate\n"
+ "abort\" out of memory\"\n"
+ "size this --> set-buf\n"
+ "size this --> set-buflen\n"
+ "exit\n"
+ "endif\n"
+ "size this --> get-buflen > if\n"
+ "this --> get-buf size resize\n"
+ "abort\" out of memory\"\n"
+ "size this --> set-buf\n"
+ "endif\n"
+ ";\n"
+ ": set { c-addr u 2:this -- }\n"
+ "u this --> size-buf\n"
+ "u this --> set-count\n"
+ "c-addr this --> get-buf u move\n"
+ ";\n"
+ ": get { 2:this -- c-addr u }\n"
+ "this --> get-buf\n"
+ "this --> get-count\n"
+ ";\n"
+ ": cat { c-addr u 2:this -- }\n"
+ "this --> get-count u + dup >r\n"
+ "this --> size-buf\n"
+ "c-addr this --> get-buf this --> get-count + u move\n"
+ "r> this --> set-count\n"
+ ";\n"
+ ": type { 2:this -- }\n"
+ "this --> ?empty if .\" (empty) \" exit endif\n"
+ "this --> .buf --> get-ptr\n"
+ "this --> .count --> get\n"
+ "type\n"
+ ";\n"
+ ": compare ( 2string 2:this -- n )\n"
+ "--> get\n"
+ "2swap\n"
+ "--> get\n"
+ "2swap compare\n"
+ ";\n"
+ ": hashcode ( 2:this -- hashcode )\n"
+ "--> get hash\n"
+ ";\n"
+ ": free ( 2:this -- ) 2dup --> free-buf object => free ;\n"
+ "end-class\n"
+ "c-string subclass c-hashstring\n"
+ "c-2byte obj: .hashcode\n"
+ ": set-hashcode { 2:this -- }\n"
+ "this --> super --> hashcode\n"
+ "this --> .hashcode --> set\n"
+ ";\n"
+ ": get-hashcode ( 2:this -- hashcode )\n"
+ "--> .hashcode --> get\n"
+ ";\n"
+ ": set ( c-addr u 2:this -- )\n"
+ "2swap 2over --> super --> set\n"
+ "--> set-hashcode\n"
+ ";\n"
+ ": cat ( c-addr u 2:this -- )\n"
+ "2swap 2over --> super --> cat\n"
+ "--> set-hashcode\n"
+ ";\n"
+ "end-class\n"
+ "previous definitions\n"
+ "[endif]\n"
+ "S\" FICL_PLATFORM_OS\" ENVIRONMENT? drop S\" WIN32\" compare-insensitive 0= [if]\n"
+ ": GetProcAddress ( name-addr name-u hmodule -- address )\n"
+ "3 \\ argumentCount\n"
+ "0 \\ floatArgumentBitfield\n"
+ "2 \\ cstringArgumentBitfield\n"
+ "(get-proc-address) \\ functionAddress\n"
+ "[\n"
+ "multicall-calltype-function multicall-returntype-integer or literal \\ flags\n"
+ "]\n"
+ "multicall ;\n"
+ ": LoadLibrary ( name-addr name-u -- hmodule )\n"
+ "2 \\ argumentCount\n"
+ "0 \\ floatArgumentBitfield\n"
+ "1 \\ cstringArgumentBitfield\n"
+ "[\n"
+ "S\" LoadLibraryA\" kernel32.dll GetProcAddress literal \\ functionAddress\n"
+ "multicall-calltype-function multicall-returntype-integer or literal \\ flags\n"
+ "]\n"
+ "multicall ;\n"
+ ": FreeLibrary ( hmodule -- success )\n"
+ "1 \\ argumentCount\n"
+ "0 \\ floatArgumentBitfield\n"
+ "0 \\ cstringArgumentBitfield\n"
+ "[\n"
+ "S\" FreeLibrary\" kernel32.dll GetProcAddress literal \\ functionAddress\n"
+ "multicall-calltype-function multicall-returntype-integer or literal \\ flags\n"
+ "]\n"
+ "multicall ;\n"
+ ": DebugBreak ( -- )\n"
+ "0 \\ argumentCount\n"
+ "0 \\ floatArgumentBitfield\n"
+ "0 \\ cstringArgumentBitfield\n"
+ "[\n"
+ "S\" DebugBreak\" kernel32.dll GetProcAddress literal \\ functionAddress\n"
+ "multicall-calltype-function multicall-returntype-void or literal \\ flags\n"
+ "]\n"
+ "multicall ;\n"
+ ": OutputDebugString ( addr u -- )\n"
+ "2 \\ argumentCount\n"
+ "0 \\ floatArgumentBitfield\n"
+ "1 \\ cstringArgumentBitfield\n"
+ "[\n"
+ "S\" OutputDebugStringA\" kernel32.dll GetProcAddress literal \\ functionAddress\n"
+ "multicall-calltype-function multicall-returntype-void or literal \\ flags\n"
+ "]\n"
+ "multicall ;\n"
+ ": GetTickCount ( -- ticks )\n"
+ "0 \\ argumentCount\n"
+ "0 \\ floatArgumentBitfield\n"
+ "0 \\ cstringArgumentBitfield\n"
+ "[\n"
+ "S\" GetTickCount\" kernel32.dll GetProcAddress literal \\ functionAddress\n"
+ "multicall-calltype-function multicall-returntype-integer or literal \\ flags\n"
+ "]\n"
+ "multicall ;\n"
+ "S\" user32.dll\" LoadLibrary constant user32.dll\n"
+ ": MessageBox ( flags title-addr title-u body-addr body-u hwnd -- button )\n"
+ "6 \\ argumentCount\n"
+ "0 \\ floatArgumentBitfield\n"
+ "[\n"
+ "2 8 or literal \\ cstringArgumentBitfield\n"
+ "S\" MessageBoxA\" user32.dll GetProcAddress literal \\ functionAddress\n"
+ "multicall-calltype-function multicall-returntype-integer or literal \\ flags\n"
+ "]\n"
+ "multicall ;\n"
+ "0x00000000 constant MB_OK\n"
+ "0x00000001 constant MB_OKCANCEL\n"
+ "0x00000002 constant MB_ABORTRETRYIGNORE\n"
+ "0x00000003 constant MB_YESNOCANCEL\n"
+ "0x00000004 constant MB_YESNO\n"
+ "0x00000005 constant MB_RETRYCANCEL\n"
+ "0x00000010 constant MB_ICONHAND\n"
+ "0x00000020 constant MB_ICONQUESTION\n"
+ "0x00000030 constant MB_ICONEXCLAMATION\n"
+ "0x00000040 constant MB_ICONASTERISK\n"
+ "0x00000080 constant MB_USERICON\n"
+ "0x00000000 constant MB_DEFBUTTON1\n"
+ "0x00000100 constant MB_DEFBUTTON2\n"
+ "0x00000200 constant MB_DEFBUTTON3\n"
+ "0x00000300 constant MB_DEFBUTTON4\n"
+ "0x00000000 constant MB_APPLMODAL\n"
+ "0x00001000 constant MB_SYSTEMMODAL\n"
+ "0x00002000 constant MB_TASKMODAL\n"
+ "0x00004000 constant MB_HELP\n"
+ "0x00008000 constant MB_NOFOCUS\n"
+ "0x00010000 constant MB_SETFOREGROUND\n"
+ "0x00020000 constant MB_DEFAULT_DESKTOP_ONLY\n"
+ "0x00040000 constant MB_TOPMOST\n"
+ "0x00080000 constant MB_RIGHT\n"
+ "0x00100000 constant MB_RTLREADING\n"
+ "MB_ICONEXCLAMATION constant MB_ICONWARNING\n"
+ "MB_ICONHAND constant MB_ICONERROR\n"
+ "MB_ICONASTERISK constant MB_ICONINFORMATION\n"
+ "MB_ICONHAND constant MB_ICONSTOP\n"
+ "0x00200000 constant MB_SERVICE_NOTIFICATION\n"
+ "0x00040000 constant MB_SERVICE_NOTIFICATION\n"
+ "0x00040000 constant MB_SERVICE_NOTIFICATION_NT3X\n"
+ "0x0000000F constant MB_TYPEMASK\n"
+ "0x000000F0 constant MB_ICONMASK\n"
+ "0x00000F00 constant MB_DEFMASK\n"
+ "0x00003000 constant MB_MODEMASK\n"
+ "0x0000C000 constant MB_MISCMASK\n"
+ "1 constant IDOK\n"
+ "2 constant IDCANCEL\n"
+ "3 constant IDABORT\n"
+ "4 constant IDRETRY\n"
+ "5 constant IDIGNORE\n"
+ "6 constant IDYES\n"
+ "7 constant IDNO\n"
+ "8 constant IDCLOSE\n"
+ "9 constant IDHELP\n"
+ ": output-debug-string OutputDebugString ;\n"
+ ": debug-break DebugBreak ;\n"
+ ": uaddr->cstring { addr u | cstring -- cstring }\n"
+ "u 1+ allocate\n"
+ "0= if\n"
+ "to cstring\n"
+ "addr cstring u move\n"
+ "0 cstring u + c!\n"
+ "cstring\n"
+ "else\n"
+ "0\n"
+ "endif\n"
+ ";\n"
+ ": callnativeFunction { functionAddress popStack -- }\n"
+ "0 \\ floatArgumentBitfield\n"
+ "0 \\ cstringArgumentBitfield\n"
+ "functionAddress \\ functionAddress\n"
+ "[\n"
+ "multicall-calltype-function\n"
+ "multicall-returntype-integer or\n"
+ "multicall-reverse-arguments or\n"
+ "literal\n"
+ "]\n"
+ "multicall\n"
+ ";\n"
+ ": callcfunction 1 callnativeFunction ;\n"
+ ": callpascalfunction 0 callnativeFunction ;\n"
+ ": vcall { argumentCount index -- }\n"
+ "argumentCount 0x80000000 invert or \\ cleaned-up argumentCount\n"
+ "0 \\ cstringArgumentBitfield\n"
+ "0 \\ cstringFlags\n"
+ "index \\ index\n"
+ "argumentCount 0x80000000 and if multicall-returntype-integer else multicall-returntype-void endif\n"
+ "[\n"
+ "multicall-calltype-virtual-method\n"
+ "multicall-reverse-arguments or\n"
+ "literal\n"
+ "] or\n"
+ "multicall\n"
+ ";\n"
+ "[endif]\n"
+ "hide\n"
+ "0 constant zero\n"
+ ": ?-- s\" --\" compare 0= ;\n"
+ ": ?}} s\" }}\" compare 0= ;\n"
+ "set-current\n"
+ ": {{\n"
+ "0 dup locals| nLocs locstate |\n"
+ "begin\n"
+ "parse-word\n"
+ "?dup 0= abort\" Error: out of text without seeing }}\"\n"
+ "2dup 2dup ?-- -rot ?}} or 0=\n"
+ "while\n"
+ "nLocs 1+ to nLocs\n"
+ "repeat\n"
+ "?-- if 1 to locstate endif\n"
+ "nLocs 0 do\n"
+ "(local)\n"
+ "loop\n"
+ "locstate 1 = if\n"
+ "begin\n"
+ "parse-word\n"
+ "2dup ?}} 0=\n"
+ "while\n"
+ "postpone zero (local)\n"
+ "repeat\n"
+ "2drop\n"
+ "endif\n"
+ "0 0 (local)\n"
+ "; immediate compile-only\n"
+ "previous\n"
+ "S\" FICL_WANT_FILE\" ENVIRONMENT? drop [if]\n"
+ ": r/o 1 ;\n"
+ ": r/w 3 ;\n"
+ ": w/o 2 ;\n"
+ ": bin 8 or ;\n"
+ ": included\n"
+ "r/o bin open-file 0= if\n"
+ "include-file\n"
+ "else\n"
+ "drop\n"
+ "endif\n"
+ ";\n"
+ ": include parse-word included ;\n"
+ "[endif]\n"
+;
-void ficlCompileSoftCore(FICL_SYSTEM *pSys)
+#else /* !FICL_WANT_LZ_SOFTCORE */
+
+static unsigned char ficlSoftcoreCompressed[11490] = {
+ 0xfe, 0x00, 0x01, 0x66, 0xcd, 0xfd, 0x64, 0x57,
+ 0x1d, 0x08, 0x0c, 0xa6, 0xd3, 0x81, 0xd0, 0xf2,
+ 0x20, 0x14, 0x08, 0x0f, 0x06, 0xe1, 0x70, 0xb8,
+ 0xf0, 0x31, 0x10, 0x0b, 0x45, 0xa2, 0x01, 0x48,
+ 0x80, 0xc8, 0x65, 0x80, 0x20, 0x1a, 0x04, 0x03,
+ 0x01, 0x00, 0xfc, 0xc8, 0x6f, 0x80, 0xa8, 0x1c,
+ 0x8d, 0xe7, 0x01, 0x01, 0xb0, 0xdf, 0x02, 0x40,
+ 0x9d, 0x82, 0xa0, 0x00, 0x06, 0x33, 0x29, 0xb0,
+ 0xd9, 0x01, 0x20, 0x14, 0x08, 0x0c, 0x26, 0x48,
+ 0x11, 0x00, 0x82, 0x02, 0x21, 0x61, 0x81, 0xc8,
+ 0x8a, 0x44, 0x05, 0xb1, 0x04, 0x03, 0xc0, 0xc7,
+ 0x03, 0x10, 0xb9, 0x88, 0x0b, 0xb0, 0x26, 0x03,
+ 0x49, 0xd0, 0xca, 0x72, 0x30, 0x9b, 0x20, 0x20,
+ 0x02, 0x08, 0x16, 0x08, 0xb6, 0x04, 0x60, 0x74,
+ 0x81, 0xa8, 0x88, 0x0c, 0x50, 0x2f, 0x01, 0x04,
+ 0x04, 0x42, 0xc7, 0x06, 0x71, 0x94, 0x88, 0x06,
+ 0x50, 0x60, 0x13, 0x64, 0x16, 0x40, 0x77, 0x02,
+ 0xd0, 0xb0, 0x98, 0xa0, 0x9e, 0x02, 0x88, 0x04,
+ 0x80, 0x82, 0x02, 0x21, 0x78, 0x80, 0x98, 0x02,
+ 0x8c, 0x87, 0x58, 0x12, 0x80, 0xc0, 0x78, 0x20,
+ 0x34, 0x99, 0x84, 0x06, 0xe3, 0x29, 0x9c, 0xc3,
+ 0x05, 0x50, 0x10, 0x19, 0x4d, 0xc6, 0x48, 0x4d,
+ 0x84, 0xee, 0x12, 0x60, 0x65, 0x31, 0x9a, 0x4d,
+ 0xb0, 0x58, 0x09, 0x9c, 0x1e, 0x40, 0xc6, 0x6f,
+ 0x37, 0x1c, 0xce, 0x86, 0x13, 0x74, 0x19, 0x00,
+ 0xc4, 0x6c, 0x81, 0x68, 0x5c, 0xce, 0x06, 0x18,
+ 0x18, 0x00, 0x82, 0x01, 0x00, 0x2d, 0x80, 0x90,
+ 0x98, 0xa0, 0xb2, 0x06, 0x53, 0x6c, 0x15, 0x00,
+ 0x41, 0x02, 0xc1, 0x39, 0xc3, 0x1c, 0x4e, 0x70,
+ 0x07, 0x0b, 0x74, 0x04, 0x08, 0x61, 0x01, 0xd1,
+ 0xb9, 0xc3, 0x1c, 0x6d, 0x90, 0x28, 0x33, 0x09,
+ 0x88, 0xde, 0x72, 0x3a, 0x08, 0x81, 0x50, 0xbb,
+ 0x0b, 0xa4, 0x28, 0xc0, 0x81, 0x09, 0xa0, 0x85,
+ 0x1c, 0x0d, 0xf0, 0xbb, 0x03, 0x84, 0x2e, 0x40,
+ 0xcb, 0x11, 0x25, 0x10, 0x0b, 0xa2, 0x12, 0x07,
+ 0x08, 0x8b, 0x99, 0x8c, 0xe4, 0x0a, 0x16, 0x8c,
+ 0xa2, 0x2a, 0x86, 0xc8, 0x2a, 0x10, 0x2a, 0x22,
+ 0xc7, 0x74, 0x34, 0x40, 0x8c, 0x0e, 0xf1, 0x15,
+ 0x43, 0x2c, 0x29, 0x84, 0x15, 0x03, 0x10, 0x39,
+ 0x99, 0x41, 0x45, 0xb3, 0x19, 0xa0, 0xc2, 0x72,
+ 0x82, 0x88, 0x08, 0x84, 0x10, 0xc7, 0x03, 0x94,
+ 0x5b, 0x82, 0xe5, 0x06, 0x30, 0xb4, 0xc4, 0x50,
+ 0x0e, 0x87, 0x93, 0x84, 0x5b, 0xc0, 0xc7, 0x13,
+ 0x81, 0x10, 0x45, 0x5c, 0x8c, 0xb1, 0x6d, 0x11,
+ 0x94, 0x08, 0x84, 0x15, 0x16, 0x62, 0xb7, 0x45,
+ 0xa0, 0x47, 0x70, 0x9a, 0x03, 0x69, 0xb4, 0xcb,
+ 0x0a, 0x70, 0x30, 0xc1, 0x54, 0x01, 0x42, 0xe8,
+ 0x04, 0x01, 0xb0, 0xdf, 0x03, 0x80, 0x34, 0x9b,
+ 0x8c, 0xe2, 0x02, 0x19, 0x3c, 0xa4, 0x45, 0x10,
+ 0x11, 0x4b, 0x05, 0x41, 0x01, 0xde, 0x20, 0xc0,
+ 0x64, 0x82, 0x78, 0x0a, 0x62, 0x6c, 0x23, 0x08,
+ 0x5b, 0xa1, 0x9a, 0x0b, 0x00, 0x73, 0x8b, 0x78,
+ 0x19, 0xa3, 0xcc, 0x22, 0x08, 0xe1, 0x01, 0xda,
+ 0x0a, 0xc0, 0x74, 0x85, 0xba, 0x1d, 0x0e, 0x47,
+ 0x58, 0xb7, 0x80, 0xe8, 0x40, 0x3c, 0x1f, 0x08,
+ 0x07, 0xb0, 0x1b, 0x01, 0xec, 0x0a, 0xc6, 0x61,
+ 0x20, 0x80, 0x98, 0x48, 0x2c, 0xec, 0x66, 0xf8,
+ 0x01, 0x81, 0xa4, 0xd8, 0x65, 0x16, 0x08, 0x24,
+ 0x52, 0x03, 0xb9, 0x0f, 0x8d, 0xba, 0x3e, 0x64,
+ 0x68, 0x8b, 0xa0, 0x0a, 0xc4, 0x03, 0x61, 0xa8,
+ 0xd4, 0x66, 0x35, 0x10, 0x0f, 0x8d, 0xc7, 0x53,
+ 0x69, 0x8a, 0x0a, 0xc0, 0x20, 0x81, 0x10, 0xce,
+ 0xc4, 0x05, 0xc8, 0x9b, 0x05, 0xa4, 0xc5, 0x24,
+ 0x90, 0x32, 0x47, 0x90, 0x0e, 0x52, 0x23, 0x01,
+ 0x01, 0x10, 0xa0, 0x41, 0x27, 0x14, 0xc4, 0x04,
+ 0x11, 0x70, 0xd8, 0x5c, 0x32, 0x17, 0x0c, 0x07,
+ 0x23, 0x71, 0x84, 0x0b, 0x42, 0xcb, 0x05, 0x70,
+ 0x39, 0xc3, 0x28, 0x4c, 0x30, 0x39, 0x13, 0xac,
+ 0x3a, 0x4c, 0xcd, 0x22, 0x60, 0x36, 0x40, 0xac,
+ 0x2e, 0xd1, 0x74, 0x03, 0x4c, 0x21, 0x40, 0xd9,
+ 0x0a, 0x30, 0x39, 0xc3, 0x1c, 0x0d, 0xd2, 0x73,
+ 0x13, 0xc4, 0x62, 0x40, 0xc7, 0x06, 0x41, 0x31,
+ 0x8b, 0x64, 0xfc, 0x43, 0x18, 0x08, 0x11, 0x84,
+ 0xc7, 0x03, 0x00, 0x38, 0x41, 0x90, 0x0e, 0x72,
+ 0x9d, 0x09, 0x00, 0x86, 0x05, 0x63, 0x6e, 0x34,
+ 0xc0, 0x94, 0x05, 0x02, 0x08, 0x03, 0x01, 0xe2,
+ 0x11, 0x85, 0x20, 0x39, 0x9d, 0xcc, 0x30, 0x25,
+ 0x03, 0x24, 0x93, 0x86, 0x15, 0x00, 0x00, 0x3a,
+ 0x1d, 0x4c, 0x66, 0xb9, 0x68, 0x29, 0xe6, 0x01,
+ 0x20, 0x29, 0x96, 0xe9, 0x1b, 0xe3, 0xe6, 0x12,
+ 0x08, 0x16, 0x09, 0xde, 0x0a, 0x80, 0x68, 0x8e,
+ 0x10, 0x08, 0x20, 0x10, 0x07, 0x48, 0x71, 0x81,
+ 0xd2, 0x04, 0xc1, 0x77, 0x10, 0x4c, 0x48, 0x0c,
+ 0xf0, 0x1a, 0x01, 0x6c, 0x04, 0x80, 0xcc, 0x6c,
+ 0x30, 0xc7, 0x10, 0x05, 0x33, 0x05, 0x21, 0x6c,
+ 0x91, 0x00, 0xe5, 0x05, 0xa0, 0xb9, 0x48, 0x24,
+ 0x0e, 0xb0, 0x99, 0x01, 0xdc, 0x0b, 0x42, 0x7f,
+ 0x03, 0x54, 0x94, 0xc4, 0x40, 0x25, 0xd0, 0x2b,
+ 0x1b, 0x24, 0x91, 0xc0, 0xe1, 0x27, 0xb6, 0x05,
+ 0x40, 0x70, 0x61, 0x50, 0x94, 0x13, 0x1c, 0xd5,
+ 0x04, 0x62, 0x2b, 0x05, 0x1a, 0x44, 0x03, 0x78,
+ 0x1b, 0x81, 0xba, 0x4b, 0x80, 0x37, 0x90, 0x50,
+ 0x5a, 0x61, 0x38, 0x06, 0x38, 0x1d, 0x81, 0x96,
+ 0x2c, 0xe3, 0x6c, 0x81, 0x40, 0x99, 0x23, 0x3e,
+ 0x23, 0xb8, 0xdd, 0x29, 0x4c, 0x8a, 0x41, 0x29,
+ 0x10, 0xc9, 0x02, 0x01, 0x34, 0xeb, 0xca, 0x5b,
+ 0x1c, 0xb6, 0x9d, 0x41, 0xa4, 0x0e, 0x53, 0x85,
+ 0x09, 0x6c, 0x73, 0xc4, 0xd8, 0x69, 0x98, 0xd0,
+ 0x4a, 0x26, 0x1c, 0x16, 0x48, 0x08, 0x11, 0xb2,
+ 0x4f, 0x00, 0x74, 0x9e, 0xb0, 0xc8, 0x24, 0x8a,
+ 0x06, 0x18, 0xd9, 0x80, 0x82, 0x04, 0x43, 0x77,
+ 0x9f, 0x18, 0x0b, 0x62, 0xdc, 0x07, 0x41, 0x6c,
+ 0xfd, 0x86, 0x77, 0x02, 0xd0, 0xb3, 0x1a, 0x4c,
+ 0x70, 0x33, 0x03, 0x74, 0xfd, 0xc2, 0xc9, 0x3d,
+ 0x64, 0x2e, 0x40, 0x1c, 0x2d, 0x12, 0x78, 0x03,
+ 0x45, 0x00, 0xc0, 0xd2, 0x7a, 0x85, 0x18, 0x1b,
+ 0xa7, 0xee, 0x22, 0xd8, 0x09, 0x09, 0xc8, 0xea,
+ 0x6e, 0x80, 0x00, 0x0a, 0x20, 0x20, 0x27, 0x79,
+ 0xf1, 0x84, 0xa6, 0x3d, 0x40, 0x69, 0xa0, 0x98,
+ 0x5d, 0xe7, 0xb0, 0x66, 0x49, 0xbb, 0x09, 0xc8,
+ 0xcb, 0x0a, 0x11, 0x16, 0x4f, 0x41, 0xcc, 0x86,
+ 0xf8, 0x71, 0x80, 0xfa, 0x22, 0x01, 0x3b, 0x98,
+ 0x60, 0x9b, 0xe7, 0xb2, 0x72, 0xd9, 0xb5, 0x88,
+ 0xc6, 0x82, 0x04, 0x77, 0x9e, 0xc1, 0x8e, 0xe8,
+ 0x1c, 0x67, 0x3a, 0x02, 0x85, 0x8c, 0xea, 0x72,
+ 0xa3, 0x00, 0x1b, 0xa7, 0xbc, 0x96, 0xf3, 0x64,
+ 0xf5, 0x42, 0xd3, 0x44, 0x91, 0x33, 0xd2, 0xb5,
+ 0x2e, 0x72, 0xdf, 0x13, 0x9d, 0x2b, 0x52, 0x77,
+ 0x35, 0x91, 0x37, 0x8b, 0x4e, 0xc6, 0xf3, 0x1c,
+ 0x21, 0x40, 0xeb, 0x32, 0xa0, 0x39, 0x40, 0x18,
+ 0x45, 0xb3, 0x6b, 0x13, 0x25, 0x1e, 0x0a, 0xe7,
+ 0x46, 0x10, 0x39, 0x45, 0xc8, 0x07, 0xd0, 0x21,
+ 0x21, 0xf5, 0x42, 0x48, 0x41, 0x40, 0xd3, 0xbb,
+ 0x53, 0xc1, 0x4d, 0xc4, 0x29, 0x76, 0x85, 0x94,
+ 0xe9, 0x04, 0xf0, 0x37, 0x50, 0xd0, 0xc1, 0x54,
+ 0x11, 0x93, 0x25, 0x3b, 0x56, 0x77, 0x02, 0xd0,
+ 0xbb, 0x54, 0xa1, 0x6c, 0x35, 0x3f, 0x31, 0x8d,
+ 0x48, 0x5e, 0x77, 0x02, 0xd0, 0xb8, 0x51, 0x80,
+ 0x0e, 0xc6, 0x93, 0x79, 0xd6, 0x10, 0xe2, 0x2d,
+ 0x80, 0x90, 0x9c, 0xea, 0x14, 0xa3, 0xba, 0x49,
+ 0x19, 0xba, 0x82, 0xec, 0x68, 0x9f, 0x18, 0x19,
+ 0x21, 0x4a, 0x00, 0xa8, 0x00, 0x01, 0xa2, 0x7c,
+ 0x60, 0x65, 0xae, 0x71, 0x48, 0x21, 0x28, 0x23,
+ 0xea, 0x8b, 0x95, 0x9a, 0x95, 0x0e, 0x3b, 0x84,
+ 0x10, 0x9b, 0x0e, 0x70, 0x20, 0x01, 0x44, 0xda,
+ 0x48, 0xe7, 0x50, 0xa3, 0x3a, 0xd4, 0x51, 0x07,
+ 0xd5, 0x17, 0x53, 0x7c, 0x41, 0xc0, 0xd1, 0x60,
+ 0x97, 0xb9, 0x46, 0x80, 0x2c, 0xd6, 0x32, 0x11,
+ 0x6c, 0xf5, 0xce, 0x7d, 0x51, 0x74, 0xb7, 0x9b,
+ 0x8d, 0x94, 0xf8, 0x39, 0x6c, 0x03, 0xc0, 0xe7,
+ 0x40, 0x50, 0xb7, 0xc7, 0x44, 0x0c, 0xb3, 0x09,
+ 0x13, 0x45, 0x76, 0x42, 0x15, 0x00, 0x00, 0x36,
+ 0x4f, 0x70, 0x25, 0xb3, 0xe2, 0x11, 0x44, 0xf8,
+ 0x4e, 0x15, 0x09, 0x41, 0x3b, 0xd0, 0x04, 0x2c,
+ 0xf4, 0x05, 0x31, 0x44, 0xf8, 0x46, 0xc7, 0x2a,
+ 0xd2, 0x90, 0x42, 0x48, 0x07, 0xf0, 0x94, 0x13,
+ 0x4c, 0x61, 0x48, 0x41, 0x19, 0xe2, 0x36, 0x45,
+ 0xb8, 0x2c, 0x90, 0x23, 0x11, 0x74, 0x5e, 0x00,
+ 0x51, 0x43, 0xe0, 0x37, 0x50, 0x5c, 0x44, 0x13,
+ 0xe2, 0x09, 0x4c, 0x5d, 0xc2, 0xf0, 0x2e, 0x8d,
+ 0x11, 0x08, 0x22, 0x6e, 0x13, 0xbb, 0x08, 0x05,
+ 0xd2, 0x95, 0xe7, 0x5c, 0x86, 0x28, 0x1d, 0x20,
+ 0x48, 0x16, 0x89, 0xf1, 0x81, 0xa6, 0x38, 0x61,
+ 0x77, 0x8e, 0x80, 0x82, 0xac, 0xc8, 0x17, 0x2b,
+ 0x3d, 0x88, 0xa2, 0x6d, 0x24, 0x2e, 0x8b, 0xc0,
+ 0x14, 0xea, 0x14, 0x33, 0xa8, 0xbc, 0x01, 0x8e,
+ 0x27, 0x00, 0x67, 0xb3, 0xb1, 0xcc, 0x20, 0x3a,
+ 0x33, 0x38, 0x6f, 0x19, 0xb2, 0xd1, 0x26, 0x6c,
+ 0x81, 0x40, 0x98, 0xe2, 0x70, 0x02, 0xe8, 0xbc,
+ 0x01, 0x0e, 0x44, 0x64, 0x3a, 0x8b, 0xb8, 0x59,
+ 0xe9, 0x5a, 0x96, 0xcb, 0x44, 0x99, 0x8e, 0xde,
+ 0xe2, 0x3a, 0x80, 0xa8, 0x58, 0x8e, 0xb1, 0xc4,
+ 0x01, 0x3d, 0xe3, 0x08, 0x5a, 0x78, 0x86, 0xc8,
+ 0x48, 0x23, 0x62, 0x83, 0xab, 0x32, 0x84, 0xb6,
+ 0x17, 0x60, 0x65, 0xb6, 0xc0, 0xd4, 0xee, 0xda,
+ 0x22, 0xe3, 0x9d, 0x0b, 0x42, 0xda, 0x70, 0x94,
+ 0xc8, 0x58, 0xe6, 0x12, 0x27, 0x0a, 0xcd, 0x99,
+ 0x72, 0x04, 0xc1, 0x73, 0xae, 0xd9, 0xdd, 0xe3,
+ 0xa0, 0x36, 0x69, 0x2f, 0x89, 0xce, 0xa3, 0x04,
+ 0x6f, 0xb3, 0xd0, 0x82, 0xad, 0x02, 0x53, 0xf2,
+ 0xdc, 0x26, 0xc0, 0xbb, 0x2a, 0x94, 0x90, 0x41,
+ 0xb8, 0x45, 0xb2, 0x7e, 0x2b, 0x34, 0xca, 0x86,
+ 0x15, 0x19, 0xd0, 0x3a, 0xd3, 0x68, 0x24, 0x50,
+ 0x46, 0x03, 0x4e, 0x01, 0x00, 0x45, 0x22, 0x11,
+ 0xb0, 0xd1, 0x80, 0x05, 0xb1, 0xc2, 0x03, 0x9c,
+ 0x29, 0x40, 0xe7, 0x05, 0x40, 0x34, 0xc7, 0xcc,
+ 0x04, 0x12, 0x0d, 0x00, 0x54, 0xd0, 0x86, 0xb7,
+ 0x16, 0xc1, 0x2e, 0xe0, 0x1b, 0xee, 0xb8, 0x28,
+ 0x23, 0x2e, 0x14, 0x44, 0x45, 0x83, 0x2e, 0x3a,
+ 0x1a, 0x21, 0x4a, 0x05, 0xdc, 0x03, 0x7d, 0xd7,
+ 0x05, 0x04, 0x74, 0xc5, 0x10, 0x88, 0xb0, 0x65,
+ 0x52, 0x09, 0x9b, 0x80, 0x2b, 0x0e, 0x88, 0x6e,
+ 0x85, 0x38, 0x57, 0x71, 0xa7, 0x77, 0x21, 0xf0,
+ 0x2a, 0x20, 0xc0, 0x0a, 0xb7, 0xca, 0xc2, 0xa0,
+ 0x00, 0x05, 0xbc, 0x28, 0x18, 0xb6, 0x91, 0xe4,
+ 0x5c, 0x80, 0x38, 0x5b, 0x2b, 0x38, 0x06, 0x58,
+ 0x2c, 0x80, 0xa4, 0x15, 0x24, 0x90, 0x33, 0xc7,
+ 0x08, 0x01, 0x59, 0x49, 0x23, 0x84, 0x5e, 0xc4,
+ 0x5b, 0x3f, 0x01, 0xb2, 0x5a, 0x74, 0x4d, 0x12,
+ 0x26, 0x09, 0x06, 0x4f, 0x50, 0xc3, 0x03, 0x91,
+ 0x36, 0x57, 0x84, 0x25, 0x36, 0xbd, 0x02, 0xde,
+ 0x00, 0xc4, 0xd3, 0x09, 0xc0, 0x2e, 0x65, 0xae,
+ 0x46, 0x50, 0x22, 0x19, 0x8c, 0x8f, 0x40, 0xb9,
+ 0x93, 0xe4, 0xb2, 0xc7, 0xb4, 0x4b, 0x99, 0x6b,
+ 0xa3, 0x2e, 0x14, 0x46, 0xd3, 0x98, 0x6e, 0x16,
+ 0xd1, 0x68, 0x6d, 0x30, 0x9c, 0x01, 0x8c, 0x8f,
+ 0x40, 0xcb, 0x16, 0x74, 0x1f, 0xe2, 0x80, 0xad,
+ 0x30, 0x9c, 0x01, 0x96, 0x7b, 0x4c, 0xcb, 0x1e,
+ 0xd1, 0x19, 0x40, 0x88, 0x6c, 0xb1, 0xa4, 0x4b,
+ 0x2c, 0x29, 0x86, 0x7f, 0x09, 0x41, 0x9e, 0xc2,
+ 0x68, 0x4c, 0xa7, 0x88, 0x6c, 0x05, 0x96, 0x14,
+ 0xc3, 0x5c, 0xca, 0x01, 0x02, 0xa8, 0xc0, 0x07,
+ 0x0a, 0x30, 0x84, 0x83, 0x33, 0xa4, 0x5c, 0xd2,
+ 0x91, 0xd9, 0xa5, 0x1a, 0x23, 0x09, 0x05, 0x81,
+ 0xd6, 0x17, 0xc0, 0x69, 0x82, 0xc8, 0x17, 0x34,
+ 0xa4, 0x56, 0x49, 0xcf, 0x8c, 0x82, 0xf4, 0x0a,
+ 0x5b, 0xc0, 0x19, 0x19, 0xa6, 0x54, 0x22, 0xd9,
+ 0xb5, 0x8c, 0xf6, 0x13, 0x42, 0x70, 0x88, 0xb9,
+ 0x96, 0xf0, 0xa0, 0x47, 0x4c, 0x51, 0x04, 0x83,
+ 0x51, 0x6d, 0x74, 0xc5, 0x11, 0x4b, 0x60, 0x24,
+ 0x23, 0xbd, 0x46, 0x31, 0x97, 0x1f, 0x23, 0x20,
+ 0xd6, 0xd4, 0x5c, 0x2b, 0x36, 0x50, 0xa9, 0x49,
+ 0xa1, 0x86, 0x3e, 0x60, 0x2d, 0xc9, 0x1a, 0x1c,
+ 0xe1, 0x78, 0x07, 0x29, 0xf7, 0x01, 0xc3, 0x4d,
+ 0xc2, 0x78, 0x87, 0x18, 0x59, 0xe9, 0x98, 0xa6,
+ 0x1d, 0x8f, 0x20, 0x82, 0x58, 0xe0, 0x3c, 0xd9,
+ 0x89, 0x8f, 0xa9, 0xb6, 0xf6, 0x59, 0xea, 0x05,
+ 0xc3, 0x66, 0x46, 0x73, 0xda, 0x3a, 0x90, 0x29,
+ 0xb6, 0xf7, 0x33, 0x44, 0x56, 0x80, 0x5b, 0xb3,
+ 0x13, 0x9e, 0x6d, 0x59, 0x07, 0xd5, 0x17, 0x2b,
+ 0xbc, 0x74, 0x06, 0xe7, 0x5a, 0xb6, 0x39, 0xec,
+ 0xb1, 0x61, 0x45, 0x38, 0xbc, 0x01, 0x18, 0x92,
+ 0x43, 0x26, 0x17, 0xca, 0xf2, 0x65, 0x02, 0xa1,
+ 0x7e, 0x39, 0x61, 0x45, 0x27, 0x11, 0x08, 0xa4,
+ 0x42, 0xf9, 0x42, 0x39, 0x00, 0x46, 0x24, 0x96,
+ 0x22, 0xf0, 0x04, 0x52, 0x71, 0x58, 0x92, 0x52,
+ 0x27, 0x93, 0x89, 0xbb, 0xf1, 0x02, 0xa4, 0xd1,
+ 0x80, 0xc9, 0x02, 0x31, 0x2d, 0xe0, 0x0c, 0x21,
+ 0x57, 0x6d, 0x13, 0x84, 0x45, 0xcc, 0xe7, 0x17,
+ 0x80, 0x1d, 0xde, 0x7d, 0x65, 0xd0, 0x08, 0x03,
+ 0x84, 0x48, 0xce, 0x51, 0x79, 0xd6, 0xae, 0x6a,
+ 0xbd, 0x0b, 0x97, 0x9d, 0x69, 0x78, 0xbf, 0x8a,
+ 0x58, 0x30, 0x83, 0x50, 0x0c, 0x84, 0x05, 0xf2,
+ 0xfc, 0x15, 0x40, 0xda, 0x70, 0x31, 0x49, 0xe0,
+ 0x47, 0x7c, 0x7b, 0x63, 0x78, 0x80, 0x71, 0xc8,
+ 0xcb, 0x2d, 0xe3, 0xe0, 0x81, 0x52, 0x12, 0x0b,
+ 0x24, 0x12, 0x00, 0x61, 0xc8, 0xcc, 0xbc, 0x41,
+ 0x20, 0x06, 0xdc, 0x8c, 0xb3, 0x2e, 0xdc, 0x52,
+ 0x15, 0xbe, 0x15, 0xaa, 0xce, 0xc0, 0x0a, 0x5b,
+ 0xfd, 0xbb, 0xb4, 0xa5, 0x0c, 0xdc, 0x55, 0x8b,
+ 0x70, 0x1c, 0xa0, 0x36, 0x16, 0xee, 0xa4, 0x8c,
+ 0x86, 0x05, 0xa1, 0x75, 0xea, 0x50, 0x97, 0x28,
+ 0x64, 0x42, 0x89, 0xb4, 0x91, 0xbb, 0xa9, 0x23,
+ 0x64, 0x84, 0xa8, 0x50, 0x3a, 0xb2, 0x43, 0x19,
+ 0x6e, 0x90, 0xae, 0x58, 0xe2, 0x5b, 0xe6, 0x19,
+ 0x54, 0xf7, 0xc4, 0xa4, 0xc2, 0x79, 0x0c, 0x82,
+ 0x4c, 0xdf, 0x08, 0x51, 0x78, 0x01, 0x66, 0xca,
+ 0x78, 0x05, 0xb0, 0xe6, 0x7c, 0xab, 0xb9, 0x4b,
+ 0xa0, 0x18, 0x06, 0xe9, 0xfb, 0x89, 0xf2, 0x6d,
+ 0x24, 0x62, 0xca, 0x51, 0x1b, 0x23, 0x9c, 0x32,
+ 0x08, 0x5c, 0x01, 0xd7, 0x25, 0x01, 0x64, 0xd1,
+ 0xe9, 0x18, 0x62, 0x0a, 0x32, 0x0c, 0xb2, 0x01,
+ 0x96, 0x8c, 0x00, 0x27, 0x82, 0x78, 0x1d, 0x31,
+ 0x44, 0x02, 0x08, 0x0b, 0x01, 0xb2, 0x16, 0x00,
+ 0x69, 0x82, 0xa8, 0x4f, 0xc7, 0xf1, 0x09, 0x03,
+ 0x7c, 0xc1, 0xc4, 0xc6, 0x40, 0x8b, 0x81, 0x9f,
+ 0x20, 0xb4, 0x16, 0xf9, 0x83, 0x88, 0xc6, 0x97,
+ 0xe1, 0x72, 0x05, 0x65, 0x90, 0x61, 0x42, 0x8e,
+ 0xe0, 0x0c, 0xa7, 0x4b, 0x0c, 0x30, 0x80, 0xd8,
+ 0x4a, 0x3c, 0x7a, 0x53, 0xbb, 0xcf, 0xad, 0xb3,
+ 0xb8, 0x22, 0x20, 0xab, 0xc2, 0x48, 0x3b, 0xc6,
+ 0xb2, 0x0f, 0x1e, 0x14, 0x82, 0xf3, 0xcc, 0x32,
+ 0xf3, 0x5f, 0xcc, 0xbd, 0x19, 0x36, 0x59, 0xea,
+ 0x05, 0xb3, 0xb8, 0x23, 0x20, 0x86, 0x61, 0x4c,
+ 0x3c, 0xa4, 0x82, 0x0b, 0xcf, 0x31, 0xce, 0x40,
+ 0x20, 0x64, 0x84, 0xa8, 0x4a, 0x25, 0x56, 0x66,
+ 0xc8, 0x52, 0x81, 0x9e, 0x03, 0x21, 0x2d, 0xc0,
+ 0x99, 0x8c, 0xbe, 0x28, 0x53, 0x28, 0x4d, 0x01,
+ 0xbe, 0x08, 0x61, 0x0a, 0x80, 0xe0, 0x1b, 0x3b,
+ 0x82, 0x56, 0x1f, 0x91, 0x24, 0x82, 0x55, 0x85,
+ 0x7c, 0xf6, 0xc2, 0x42, 0xbe, 0x2a, 0x53, 0x1e,
+ 0xc2, 0x00, 0x82, 0x0b, 0x00, 0x6c, 0xa7, 0x80,
+ 0x5d, 0x22, 0xde, 0x03, 0x09, 0xc5, 0x88, 0x2a,
+ 0xe1, 0x40, 0x20, 0xf9, 0x08, 0xc2, 0xa5, 0x58,
+ 0x56, 0x1f, 0xa0, 0x29, 0xb6, 0x60, 0xc1, 0x0a,
+ 0xf9, 0xfa, 0xcc, 0x22, 0xd6, 0x43, 0x08, 0x08,
+ 0x00, 0xc6, 0x35, 0x06, 0x0a, 0xf8, 0x18, 0xd8,
+ 0xf4, 0xba, 0x12, 0x88, 0x3c, 0x00, 0xea, 0x0d,
+ 0x00, 0x32, 0x1d, 0x41, 0xa8, 0x05, 0xb0, 0x12,
+ 0x01, 0x90, 0xea, 0x13, 0xc0, 0x77, 0x95, 0x68,
+ 0x08, 0x3e, 0x66, 0xa6, 0x2f, 0x6e, 0x01, 0x97,
+ 0xe2, 0xe3, 0x62, 0x16, 0xca, 0x0c, 0x0c, 0x5f,
+ 0x84, 0x29, 0x6c, 0xa0, 0xc0, 0xc3, 0xf4, 0xd8,
+ 0xb1, 0x7f, 0x74, 0x2e, 0x90, 0x08, 0x03, 0x17,
+ 0xf3, 0x4a, 0x15, 0xfd, 0x13, 0xb0, 0xff, 0x28,
+ 0xc5, 0x7f, 0xb0, 0x43, 0x6f, 0xd5, 0xc6, 0x5b,
+ 0xfa, 0xf3, 0xb1, 0x7e, 0x5c, 0xc5, 0x7f, 0x60,
+ 0x3b, 0x85, 0x25, 0x04, 0x65, 0xf6, 0x09, 0x36,
+ 0x7d, 0x88, 0xee, 0xbf, 0x6b, 0xf3, 0x0c, 0x81,
+ 0x08, 0x61, 0xf4, 0x33, 0x31, 0x7c, 0xe0, 0x2e,
+ 0x7f, 0x03, 0x18, 0x57, 0x31, 0x7e, 0xad, 0xb1,
+ 0xd9, 0x17, 0x43, 0x09, 0x09, 0x46, 0xf3, 0x44,
+ 0x35, 0xc0, 0x5a, 0x48, 0x84, 0xa8, 0x1a, 0xee,
+ 0x5a, 0x12, 0x0e, 0xe5, 0x94, 0xa6, 0x03, 0x82,
+ 0x68, 0xab, 0x19, 0x18, 0xe1, 0xfa, 0x46, 0x41,
+ 0x6c, 0xc0, 0x80, 0xe5, 0x4d, 0x70, 0x33, 0x4b,
+ 0x78, 0x29, 0x30, 0xa6, 0x0b, 0x94, 0x6c, 0x40,
+ 0xe9, 0x45, 0xf0, 0x37, 0x42, 0x60, 0x05, 0x90,
+ 0xd8, 0x53, 0x20, 0xb6, 0x3a, 0xc0, 0x6f, 0x83,
+ 0x08, 0x0b, 0x7f, 0xab, 0x24, 0x6f, 0xea, 0x18,
+ 0xfe, 0x21, 0xc1, 0x28, 0xb4, 0x6f, 0xc8, 0x2d,
+ 0x1a, 0x12, 0xd1, 0x6d, 0xa3, 0xce, 0x41, 0x06,
+ 0x12, 0x9f, 0x9f, 0x6c, 0xa3, 0xf7, 0x5b, 0x28,
+ 0x8d, 0xf7, 0xf8, 0xb0, 0x7c, 0xb0, 0xb7, 0xdd,
+ 0x6c, 0x2c, 0x37, 0xcf, 0xc5, 0x34, 0xc6, 0x01,
+ 0x02, 0x73, 0xc7, 0xf8, 0x1b, 0xa1, 0xd6, 0x26,
+ 0x39, 0xe8, 0x00, 0xb6, 0x34, 0x80, 0x2d, 0x89,
+ 0xb8, 0x1d, 0x60, 0xb4, 0x10, 0xad, 0x24, 0x81,
+ 0x8f, 0xfc, 0xaf, 0x66, 0xf7, 0xe8, 0x82, 0xa6,
+ 0x78, 0x16, 0x1b, 0x7b, 0x89, 0xb3, 0xf9, 0xc3,
+ 0x70, 0xc6, 0x38, 0xcb, 0x61, 0x70, 0x27, 0x3a,
+ 0xc8, 0x69, 0xce, 0x1b, 0x23, 0x30, 0xa5, 0x48,
+ 0x5b, 0x36, 0x48, 0x57, 0x3a, 0x32, 0x84, 0xb6,
+ 0x96, 0x44, 0x6f, 0x83, 0x68, 0x1b, 0xa7, 0x8a,
+ 0x06, 0x63, 0x34, 0x53, 0x42, 0x41, 0xfb, 0x62,
+ 0x3a, 0xf2, 0x24, 0xe1, 0x53, 0xe7, 0x2b, 0x1c,
+ 0x20, 0x00, 0xb7, 0xb4, 0xa2, 0x1d, 0x42, 0xb0,
+ 0x01, 0x50, 0xb5, 0x0b, 0x7c, 0x08, 0x84, 0xdf,
+ 0x01, 0xd1, 0x18, 0x5d, 0x58, 0x61, 0x50, 0x9e,
+ 0x23, 0xad, 0x11, 0x82, 0xc9, 0x07, 0x30, 0x31,
+ 0xce, 0xc4, 0x8d, 0x3c, 0x5e, 0x0b, 0x1e, 0xc4,
+ 0x00, 0xc7, 0x98, 0x30, 0x85, 0x6c, 0x2c, 0xa6,
+ 0x30, 0x12, 0x03, 0x37, 0xdb, 0x4a, 0xd9, 0xf0,
+ 0xb6, 0x10, 0x41, 0xd4, 0x0e, 0xd3, 0x42, 0x03,
+ 0xa4, 0x11, 0xc6, 0xe9, 0xde, 0xe0, 0xb6, 0x7c,
+ 0xb0, 0x4c, 0xb0, 0x3a, 0x03, 0x7c, 0x12, 0x00,
+ 0xb7, 0xac, 0xf2, 0x19, 0x7f, 0x13, 0x0d, 0xf0,
+ 0x1d, 0x03, 0xa7, 0xf3, 0x26, 0xc9, 0xfc, 0xcf,
+ 0xb6, 0x7e, 0x61, 0xec, 0xdf, 0x5c, 0x8b, 0x37,
+ 0x5f, 0xc4, 0x41, 0xf9, 0x9b, 0xb4, 0xff, 0x36,
+ 0xed, 0x3f, 0x2a, 0xf3, 0x9f, 0xbb, 0xbe, 0xc3,
+ 0xee, 0xeb, 0x9d, 0x7a, 0xc8, 0x4d, 0x35, 0x32,
+ 0x13, 0xa4, 0x64, 0xc0, 0xc7, 0xe3, 0x75, 0x18,
+ 0xee, 0x44, 0x4e, 0x7e, 0x1b, 0x3b, 0x2f, 0xae,
+ 0x06, 0x63, 0xfe, 0xb5, 0x85, 0x49, 0x20, 0x2c,
+ 0x7e, 0x65, 0x13, 0x9f, 0x7d, 0x0e, 0xd3, 0x23,
+ 0x90, 0x36, 0x41, 0x30, 0x0e, 0xd0, 0x7f, 0x03,
+ 0x2d, 0x4f, 0x06, 0xd9, 0xfd, 0xa1, 0x31, 0xf7,
+ 0x81, 0x46, 0x13, 0x6c, 0x03, 0x1f, 0x74, 0x14,
+ 0xeb, 0xdf, 0x20, 0xb7, 0xc8, 0x1c, 0x0d, 0x31,
+ 0xd1, 0x03, 0x1c, 0x6f, 0x8c, 0x61, 0xdf, 0x05,
+ 0x31, 0xf7, 0x04, 0xad, 0xfd, 0x9c, 0x49, 0x5f,
+ 0x76, 0x82, 0xc7, 0xd8, 0xb5, 0x16, 0xc0, 0x54,
+ 0x0d, 0x9d, 0x3f, 0x08, 0x54, 0xc4, 0x86, 0xc9,
+ 0x8c, 0xe1, 0x10, 0x4b, 0x11, 0x8e, 0x75, 0xda,
+ 0x03, 0xa6, 0x1f, 0xc4, 0xc7, 0xf9, 0xc4, 0x14,
+ 0xc5, 0x60, 0x0f, 0x94, 0xa9, 0x49, 0x05, 0x34,
+ 0x90, 0x15, 0xbf, 0x71, 0x34, 0xd2, 0x3c, 0xc6,
+ 0x5f, 0xe6, 0x5b, 0xed, 0x1d, 0x90, 0x67, 0xfc,
+ 0xd5, 0x32, 0x52, 0x28, 0x61, 0x54, 0x59, 0x39,
+ 0xa7, 0xec, 0x14, 0x61, 0x34, 0xc7, 0xbd, 0xf2,
+ 0xcd, 0xac, 0xdd, 0x30, 0x4b, 0x9f, 0xd5, 0x06,
+ 0xdc, 0x4c, 0xc6, 0xc9, 0x1f, 0x26, 0x85, 0x03,
+ 0xff, 0x8f, 0x11, 0x92, 0x0e, 0xe1, 0x74, 0x88,
+ 0xe8, 0x1b, 0x3f, 0x96, 0x80, 0xa9, 0x58, 0x85,
+ 0xde, 0xff, 0x63, 0x6e, 0xfe, 0x11, 0x4c, 0x7c,
+ 0x50, 0x36, 0xef, 0xda, 0x10, 0x2a, 0x80, 0x44,
+ 0x0a, 0xfd, 0x29, 0x8c, 0x21, 0xba, 0x20, 0xad,
+ 0xf9, 0x5d, 0xd3, 0x97, 0xa5, 0x0a, 0xe4, 0x9d,
+ 0x18, 0x79, 0x34, 0x16, 0x98, 0x0d, 0x81, 0x9b,
+ 0xa3, 0x52, 0x61, 0xff, 0x20, 0xc8, 0x05, 0x06,
+ 0x6b, 0xfd, 0x19, 0x96, 0x5c, 0x22, 0x28, 0xff,
+ 0x91, 0xdb, 0xa6, 0x40, 0x76, 0x6f, 0xe0, 0xed,
+ 0xb3, 0xf8, 0x4a, 0x6c, 0xfe, 0x1a, 0xdb, 0xbb,
+ 0x42, 0x62, 0x09, 0x08, 0x08, 0xa7, 0x29, 0x44,
+ 0x2d, 0xf0, 0xc1, 0x0c, 0x77, 0x3c, 0x02, 0x09,
+ 0x5f, 0x85, 0x8a, 0x41, 0x2d, 0x0a, 0xf6, 0x3f,
+ 0xd9, 0x7d, 0xe5, 0xf7, 0x3f, 0x79, 0x7d, 0x9f,
+ 0xde, 0x55, 0x0a, 0xcb, 0xac, 0x98, 0xf2, 0xc3,
+ 0x12, 0x8f, 0x65, 0x18, 0x2a, 0x3f, 0xc3, 0x63,
+ 0xc8, 0xca, 0xd8, 0xf2, 0x16, 0xb2, 0x8f, 0xeb,
+ 0x1d, 0xbb, 0xd5, 0xdf, 0x20, 0xfb, 0xed, 0x4a,
+ 0x3d, 0x34, 0x50, 0xaf, 0xc9, 0x44, 0xa3, 0xf4,
+ 0x2c, 0x6e, 0x8b, 0x48, 0x9c, 0xbb, 0x76, 0x46,
+ 0x5e, 0x93, 0x10, 0x82, 0xb5, 0x08, 0x6c, 0xea,
+ 0x12, 0x4c, 0xbc, 0xfd, 0xf2, 0x0e, 0xa2, 0xb4,
+ 0xce, 0x4c, 0x00, 0x20, 0xa9, 0xf9, 0x1b, 0x39,
+ 0xf4, 0x93, 0x08, 0x9b, 0x8c, 0xca, 0x22, 0x89,
+ 0x72, 0xfc, 0x0a, 0x9b, 0x39, 0x9e, 0x93, 0x39,
+ 0x0f, 0x80, 0xfa, 0x97, 0xe6, 0x73, 0x3c, 0xc4,
+ 0xdc, 0x0c, 0x33, 0xa7, 0x03, 0x2c, 0x76, 0xc0,
+ 0xdf, 0x9b, 0xc0, 0xb7, 0x72, 0x44, 0x04, 0x18,
+ 0x62, 0x03, 0x65, 0x45, 0xc6, 0xd9, 0x48, 0x50,
+ 0x32, 0xd2, 0xe0, 0x07, 0x71, 0x2b, 0x41, 0x05,
+ 0xee, 0x4a, 0x5b, 0x14, 0x10, 0x36, 0x1e, 0x63,
+ 0x22, 0x85, 0xb9, 0xa0, 0x14, 0xba, 0xed, 0xe8,
+ 0x4d, 0x20, 0x94, 0x89, 0x73, 0x8b, 0x01, 0x05,
+ 0xdf, 0x46, 0x75, 0x5f, 0x40, 0x30, 0x9c, 0x8d,
+ 0x73, 0xa4, 0x09, 0x44, 0x9b, 0x00, 0xdd, 0x3b,
+ 0x40, 0x91, 0x43, 0xc8, 0x8c, 0x70, 0xa0, 0x03,
+ 0x0c, 0x36, 0x02, 0xcf, 0x17, 0xb4, 0x96, 0x7f,
+ 0xc8, 0x6d, 0xf1, 0xed, 0x03, 0x2c, 0xe7, 0x08,
+ 0x59, 0x55, 0x80, 0x9f, 0xe1, 0x6c, 0x04, 0x17,
+ 0x61, 0x03, 0x66, 0xaf, 0x84, 0xc8, 0x6f, 0x8b,
+ 0x80, 0x42, 0xa5, 0xc0, 0x07, 0x3f, 0xed, 0x9d,
+ 0x72, 0x7d, 0xa0, 0x6c, 0x8d, 0xb8, 0x48, 0x23,
+ 0x64, 0x56, 0xff, 0xe3, 0x08, 0x2a, 0x05, 0x62,
+ 0x62, 0x37, 0x99, 0x0f, 0x31, 0x9a, 0x0b, 0x74,
+ 0xd1, 0x44, 0xc9, 0x06, 0x51, 0x34, 0x4f, 0x68,
+ 0x24, 0x10, 0x7b, 0x03, 0x0d, 0x4f, 0x82, 0xe9,
+ 0x01, 0xe0, 0xb9, 0x44, 0x04, 0x0c, 0xb0, 0x10,
+ 0x02, 0x44, 0xba, 0x00, 0x8b, 0x5d, 0x71, 0x36,
+ 0xd8, 0x80, 0x0f, 0x10, 0xe8, 0x03, 0x0d, 0x31,
+ 0xc2, 0x15, 0x32, 0x52, 0x14, 0x41, 0x68, 0x0c,
+ 0xd5, 0x72, 0x03, 0x1c, 0x31, 0xc8, 0x5a, 0x77,
+ 0xb5, 0xe0, 0x08, 0x20, 0x84, 0x06, 0x4b, 0x98,
+ 0x89, 0x96, 0x19, 0xc8, 0x66, 0x8a, 0x28, 0x19,
+ 0xe1, 0x7e, 0x17, 0x7f, 0xf1, 0x84, 0xa3, 0xfa,
+ 0x23, 0x29, 0xa7, 0xc0, 0x19, 0x69, 0xbe, 0x02,
+ 0xb9, 0x71, 0x15, 0xce, 0x5d, 0x22, 0x28, 0x9f,
+ 0x39, 0x58, 0xe6, 0x8e, 0x22, 0xda, 0x33, 0x0c,
+ 0xa6, 0x6c, 0xe5, 0x65, 0xa5, 0xa0, 0x1c, 0xe9,
+ 0x5a, 0x17, 0x3f, 0xec, 0x91, 0xb2, 0x39, 0xc0,
+ 0x74, 0xfc, 0xc0, 0x8b, 0x74, 0x7e, 0x57, 0x58,
+ 0x36, 0x84, 0xa7, 0xe0, 0x44, 0x0a, 0x94, 0x91,
+ 0x19, 0x28, 0x42, 0x37, 0x7f, 0xee, 0x99, 0xdf,
+ 0xed, 0x81, 0x77, 0xfb, 0x40, 0xcf, 0xa1, 0x6a,
+ 0x56, 0x6f, 0xb8, 0x29, 0xdf, 0xf6, 0xa6, 0x29,
+ 0xfb, 0x58, 0xcb, 0x73, 0x46, 0x46, 0x4f, 0x7b,
+ 0x08, 0xee, 0x15, 0xec, 0x4f, 0x27, 0x94, 0x2b,
+ 0x3d, 0xf6, 0xea, 0xcf, 0x01, 0x9a, 0xb9, 0xa1,
+ 0x20, 0x27, 0x8b, 0x49, 0xf7, 0x81, 0x0b, 0xa4,
+ 0x05, 0x00, 0xe7, 0x5c, 0xa0, 0xb9, 0xd6, 0x7c,
+ 0x86, 0x23, 0x7a, 0xd8, 0x8c, 0xb4, 0xed, 0x23,
+ 0x90, 0xb1, 0x1d, 0x6c, 0x0a, 0x07, 0x2a, 0x6a,
+ 0x01, 0xbf, 0x22, 0x41, 0x61, 0x91, 0x68, 0x1b,
+ 0xff, 0xee, 0x22, 0x09, 0x36, 0x01, 0x9a, 0x47,
+ 0xc0, 0x69, 0xac, 0xc8, 0x9c, 0xee, 0xa0, 0x07,
+ 0x39, 0x36, 0x89, 0xd7, 0xd5, 0x44, 0x63, 0xf8,
+ 0x60, 0x5c, 0xe6, 0xee, 0x16, 0x3f, 0xf8, 0x28,
+ 0x82, 0x31, 0x02, 0x70, 0xb4, 0x60, 0xdb, 0x6d,
+ 0xbe, 0x06, 0x8f, 0x1d, 0x00, 0x82, 0x30, 0x05,
+ 0x72, 0x90, 0x30, 0x0e, 0xa2, 0xf6, 0x46, 0x3a,
+ 0xc6, 0x18, 0xa7, 0x6a, 0x2a, 0x70, 0x80, 0xa1,
+ 0xdb, 0x23, 0xfe, 0x26, 0x13, 0x64, 0x91, 0x42,
+ 0xc7, 0xd5, 0x25, 0x1d, 0x48, 0xb0, 0x4d, 0xe6,
+ 0xb8, 0xa3, 0x00, 0xb7, 0xf4, 0xe4, 0x29, 0xe8,
+ 0xb8, 0x58, 0xff, 0x1a, 0x33, 0x29, 0xc9, 0x01,
+ 0x86, 0x46, 0x04, 0x63, 0xfb, 0xe8, 0xcc, 0x32,
+ 0x08, 0x26, 0xcf, 0xb9, 0x89, 0xe3, 0x04, 0xc2,
+ 0x7c, 0xff, 0x9a, 0x0b, 0x62, 0x24, 0x07, 0xd9,
+ 0x89, 0x81, 0xb3, 0xeb, 0x02, 0x6e, 0x87, 0x58,
+ 0x98, 0xfe, 0x9a, 0x36, 0x3f, 0x05, 0x0d, 0x02,
+ 0x50, 0x62, 0x6c, 0xff, 0x80, 0xcb, 0x69, 0xd6,
+ 0x57, 0x7e, 0xe4, 0x0d, 0xcf, 0xac, 0x83, 0x2d,
+ 0x89, 0xf8, 0x9b, 0x2b, 0x18, 0x07, 0x49, 0x85,
+ 0x8d, 0xb3, 0xee, 0xca, 0x20, 0xfb, 0xbd, 0x9e,
+ 0x22, 0xdc, 0x07, 0xdf, 0xc8, 0xa8, 0xa3, 0xe7,
+ 0xed, 0x28, 0xfa, 0xa8, 0xde, 0x3e, 0xb6, 0x47,
+ 0x8f, 0xb0, 0x8c, 0xa6, 0x4c, 0xa5, 0x6e, 0x82,
+ 0x60, 0x9d, 0x0f, 0x31, 0x2a, 0x01, 0x00, 0xba,
+ 0x00, 0xc0, 0x6e, 0xe8, 0x68, 0x59, 0xa1, 0x8a,
+ 0x16, 0x4e, 0x10, 0x88, 0x8b, 0xe7, 0xe5, 0x62,
+ 0xe6, 0xf2, 0x5d, 0x3f, 0xae, 0x10, 0xa9, 0xe9,
+ 0x80, 0x82, 0x15, 0xa3, 0x0a, 0x93, 0x22, 0x19,
+ 0xa1, 0x08, 0x06, 0x4f, 0x3c, 0x14, 0xb7, 0xde,
+ 0x81, 0x5c, 0xfb, 0xc9, 0x48, 0x3c, 0xaa, 0x42,
+ 0xdf, 0xac, 0x24, 0xa7, 0x11, 0x8a, 0x6c, 0xf4,
+ 0xc2, 0x82, 0xa7, 0x4c, 0x36, 0x13, 0xa7, 0xbf,
+ 0x42, 0xdb, 0xe2, 0xe2, 0x14, 0x56, 0x10, 0x2e,
+ 0x74, 0x77, 0x0b, 0x1f, 0xaf, 0xce, 0x5b, 0x3b,
+ 0xa4, 0x1e, 0x7e, 0x44, 0xae, 0x66, 0x93, 0x3c,
+ 0x26, 0x80, 0xe9, 0x7f, 0xc0, 0x32, 0xed, 0x60,
+ 0x0c, 0xa7, 0x88, 0x95, 0x81, 0x9a, 0x75, 0x84,
+ 0x6c, 0xf6, 0x42, 0xd8, 0xff, 0x54, 0x20, 0xa8,
+ 0xdd, 0x89, 0x94, 0xf0, 0x65, 0x88, 0x38, 0x1b,
+ 0x7f, 0x43, 0xf2, 0xdf, 0xd0, 0xc8, 0xa7, 0xf5,
+ 0x4d, 0x65, 0xfd, 0xa0, 0x5d, 0x60, 0x22, 0x13,
+ 0xb8, 0x07, 0x84, 0xb4, 0x5b, 0xad, 0x90, 0x14,
+ 0x7d, 0x45, 0xc5, 0xb0, 0x07, 0x01, 0xf8, 0xfe,
+ 0x4e, 0xe0, 0x29, 0xb1, 0xb0, 0x58, 0x6d, 0xae,
+ 0x14, 0x0d, 0x43, 0x90, 0x2b, 0xda, 0x6d, 0x65,
+ 0xfd, 0xc9, 0x59, 0x62, 0x18, 0x27, 0x0e, 0x97,
+ 0x29, 0xc3, 0xaa, 0xa6, 0x65, 0xfa, 0x52, 0x02,
+ 0xa1, 0xde, 0x52, 0x08, 0x15, 0xa9, 0x8f, 0xf0,
+ 0x57, 0x20, 0xf7, 0x62, 0x5c, 0xfe, 0xf5, 0xa6,
+ 0x3f, 0x6e, 0x8d, 0x97, 0xef, 0x98, 0x63, 0xf3,
+ 0x32, 0x42, 0xbe, 0xf7, 0x26, 0xdf, 0x4a, 0x15,
+ 0xcb, 0x4a, 0x42, 0x20, 0xd3, 0xe8, 0xc8, 0x35,
+ 0x44, 0xa6, 0xcf, 0x61, 0xc8, 0x82, 0x52, 0x02,
+ 0x66, 0xdf, 0x48, 0x9b, 0xb4, 0x1e, 0x16, 0x4e,
+ 0x81, 0x9c, 0x83, 0xc0, 0xc6, 0x2d, 0x3b, 0x4a,
+ 0xa0, 0x21, 0x5f, 0xf2, 0x59, 0x04, 0x74, 0x04,
+ 0x7d, 0xb3, 0x33, 0x34, 0xee, 0xb4, 0x2e, 0x75,
+ 0xf9, 0x59, 0xee, 0x53, 0x80, 0xb9, 0x12, 0xe0,
+ 0x1d, 0x72, 0x68, 0xcd, 0xb2, 0xc0, 0x03, 0x0e,
+ 0x6d, 0xc6, 0x41, 0xbe, 0x54, 0x1f, 0xf9, 0xa4,
+ 0x44, 0x13, 0x26, 0x0b, 0x7e, 0x64, 0x40, 0xe7,
+ 0x10, 0xc3, 0x90, 0x75, 0xdc, 0xac, 0x90, 0xc6,
+ 0x13, 0x37, 0xb8, 0x1a, 0xdf, 0x0e, 0x81, 0x96,
+ 0x67, 0x6c, 0x87, 0x79, 0x15, 0xb1, 0xd6, 0x77,
+ 0x42, 0x7b, 0xf8, 0x03, 0x16, 0xfe, 0x2e, 0x4d,
+ 0x94, 0xcc, 0x13, 0x17, 0x34, 0x02, 0x41, 0xf8,
+ 0x96, 0x90, 0x49, 0xf8, 0x2c, 0x7b, 0x0d, 0x5b,
+ 0x1e, 0xc3, 0xd6, 0x81, 0x56, 0x41, 0xb8, 0x6d,
+ 0x04, 0xc7, 0xb9, 0x1f, 0x01, 0xdf, 0xde, 0xb6,
+ 0xb7, 0x63, 0xc0, 0xb9, 0xe4, 0xa4, 0x4c, 0x3e,
+ 0xfc, 0x0b, 0xcf, 0xba, 0xc2, 0x59, 0x91, 0x30,
+ 0x3a, 0xc4, 0xb0, 0x0c, 0x5c, 0x55, 0x0b, 0x9c,
+ 0x8c, 0x80, 0x41, 0x1c, 0x90, 0xb4, 0xe0, 0xf0,
+ 0x0d, 0xf2, 0x0a, 0x03, 0x6e, 0xb0, 0x46, 0xe7,
+ 0xf9, 0x27, 0x05, 0x53, 0x79, 0xe6, 0x59, 0xa6,
+ 0x23, 0x1e, 0xd1, 0x18, 0xc7, 0xa9, 0xa4, 0x39,
+ 0xc0, 0xf0, 0x0b, 0xb0, 0x3d, 0x43, 0xbd, 0x33,
+ 0x04, 0x41, 0xb1, 0x47, 0x94, 0xf1, 0x91, 0xa5,
+ 0x1b, 0xe4, 0x53, 0x24, 0x0c, 0x82, 0xc7, 0xe9,
+ 0x63, 0x14, 0x7f, 0x99, 0xc7, 0xe6, 0xf3, 0x11,
+ 0xab, 0x88, 0x20, 0x74, 0x97, 0x88, 0x97, 0x04,
+ 0x04, 0x98, 0xf8, 0x85, 0x8b, 0xfe, 0x23, 0x6d,
+ 0x32, 0x9b, 0x68, 0x64, 0x07, 0x2c, 0x02, 0x81,
+ 0x9e, 0x1a, 0xe1, 0x6e, 0x32, 0x9d, 0xf4, 0xa6,
+ 0x42, 0xec, 0xbe, 0x01, 0xd3, 0x06, 0xa1, 0x77,
+ 0x82, 0x18, 0x19, 0x7d, 0xfe, 0x17, 0x33, 0xae,
+ 0x08, 0x42, 0xe7, 0xa7, 0x63, 0x85, 0x66, 0x60,
+ 0x0e, 0x18, 0x0c, 0x03, 0x16, 0x01, 0x42, 0x41,
+ 0xa6, 0xc4, 0x37, 0x7f, 0x14, 0x05, 0xb9, 0xa5,
+ 0x21, 0x4d, 0x2e, 0x88, 0xc9, 0x33, 0xd1, 0x14,
+ 0x68, 0x10, 0xa5, 0x36, 0x57, 0x59, 0x04, 0xc8,
+ 0x08, 0xc9, 0xdf, 0x4e, 0xb2, 0x1b, 0xe1, 0x70,
+ 0x06, 0xee, 0x9c, 0x20, 0x2b, 0x9d, 0x64, 0x28,
+ 0xd9, 0x4b, 0x98, 0x60, 0x58, 0x15, 0xb8, 0x0b,
+ 0x11, 0x76, 0x55, 0x02, 0x61, 0xff, 0x80, 0x99,
+ 0x8d, 0x32, 0x8e, 0x03, 0x24, 0x0a, 0x00, 0x53,
+ 0xf5, 0x41, 0xa0, 0x49, 0x88, 0x27, 0x72, 0x79,
+ 0x0b, 0x0c, 0x00, 0x82, 0x5b, 0x7d, 0x80, 0x34,
+ 0x9d, 0x0e, 0x79, 0x1c, 0x13, 0x7c, 0x6b, 0x08,
+ 0xe6, 0x69, 0xa8, 0x50, 0x08, 0x2d, 0x9e, 0x86,
+ 0xf8, 0xcb, 0x0c, 0x9e, 0xd8, 0xe7, 0x20, 0xbd,
+ 0xc8, 0xcb, 0x24, 0x40, 0x16, 0x4f, 0xb8, 0xb4,
+ 0xef, 0x51, 0xe2, 0x68, 0x97, 0xe8, 0x4e, 0xa8,
+ 0x22, 0x36, 0xf8, 0xae, 0x91, 0xb8, 0x87, 0x78,
+ 0xe1, 0x91, 0x7e, 0xbe, 0x04, 0x04, 0x3e, 0x12,
+ 0x11, 0xbb, 0xf9, 0x43, 0x20, 0xf4, 0x41, 0x0b,
+ 0xa2, 0xec, 0x06, 0x8e, 0x35, 0x89, 0x87, 0xec,
+ 0xa9, 0x3b, 0xfd, 0x39, 0x4e, 0xbf, 0x51, 0xf6,
+ 0x5f, 0xd4, 0x28, 0xc7, 0xf5, 0x0c, 0x31, 0xfb,
+ 0x19, 0x8e, 0xf3, 0xce, 0x26, 0x5b, 0x7c, 0x84,
+ 0xeb, 0xeb, 0x5f, 0x27, 0xb5, 0x19, 0x5c, 0xec,
+ 0x5a, 0x07, 0x2b, 0x1e, 0x05, 0xa7, 0x3c, 0x80,
+ 0x65, 0x80, 0xf8, 0x1c, 0xaa, 0x7a, 0x16, 0x4f,
+ 0x63, 0x9c, 0x2b, 0xf6, 0x26, 0x3a, 0xf8, 0x67,
+ 0xc9, 0xe2, 0x60, 0x13, 0x1f, 0xc2, 0x98, 0xef,
+ 0xc5, 0xe4, 0x61, 0x33, 0x99, 0xe3, 0x22, 0x06,
+ 0x78, 0xf4, 0x09, 0xbf, 0xae, 0x43, 0x69, 0x33,
+ 0x54, 0x7c, 0x0c, 0x9e, 0x28, 0xa3, 0x85, 0x79,
+ 0x42, 0x5b, 0x5b, 0x50, 0x96, 0xe4, 0xe4, 0xec,
+ 0x3d, 0x9e, 0x39, 0x95, 0x71, 0x04, 0xd3, 0x92,
+ 0x10, 0x90, 0x77, 0xf0, 0xa5, 0xbf, 0xf8, 0x33,
+ 0x7c, 0x0b, 0x48, 0x53, 0xfd, 0xd0, 0x39, 0xd7,
+ 0x98, 0x4c, 0x9d, 0x7a, 0x23, 0x0f, 0xf8, 0x1c,
+ 0xd3, 0xfc, 0x41, 0x14, 0x82, 0xab, 0xce, 0x76,
+ 0x1e, 0xca, 0x8c, 0x83, 0xf3, 0xc8, 0x3b, 0x82,
+ 0x48, 0x5b, 0xf9, 0x9e, 0x03, 0xaa, 0x2c, 0x05,
+ 0xbe, 0x03, 0xc4, 0x63, 0xd7, 0x82, 0xdb, 0xfb,
+ 0xb0, 0x57, 0xd9, 0x0a, 0x04, 0x8a, 0x92, 0x23,
+ 0x0a, 0xee, 0x79, 0x99, 0xa0, 0x00, 0x32, 0xcb,
+ 0x84, 0x94, 0xb2, 0xe6, 0xc5, 0x6d, 0xd5, 0xb9,
+ 0x0f, 0xb9, 0x2e, 0x22, 0xde, 0xc5, 0x8d, 0xbf,
+ 0xaf, 0xe4, 0x2b, 0xed, 0x30, 0x98, 0x7d, 0xd0,
+ 0x73, 0xbe, 0xab, 0x89, 0xca, 0xd4, 0xc0, 0x79,
+ 0xf2, 0x8a, 0x88, 0x34, 0xe6, 0x92, 0x2e, 0xaa,
+ 0x45, 0xb2, 0x09, 0x85, 0x6d, 0xd2, 0x90, 0x98,
+ 0xed, 0x8c, 0x46, 0xfe, 0x08, 0x81, 0xcf, 0xa3,
+ 0x66, 0x7c, 0xfb, 0x1f, 0xdd, 0x3e, 0xc6, 0xd6,
+ 0xef, 0xe0, 0x8c, 0xab, 0xeb, 0x79, 0x72, 0x83,
+ 0x40, 0x0e, 0xb9, 0x72, 0x86, 0x3f, 0xaf, 0xfd,
+ 0x87, 0xeb, 0xed, 0x6f, 0xfb, 0x2f, 0x9b, 0xfd,
+ 0x10, 0x56, 0x5a, 0x09, 0x04, 0x2b, 0x80, 0x6a,
+ 0x20, 0xee, 0xfa, 0xdc, 0x0e, 0x9c, 0x2b, 0x03,
+ 0x4f, 0x7d, 0x44, 0xe1, 0xff, 0x70, 0xb1, 0xf7,
+ 0x7e, 0xae, 0x1f, 0xe4, 0x3b, 0x87, 0xf4, 0x42,
+ 0xdf, 0xdd, 0xb8, 0x95, 0xce, 0xcc, 0xa1, 0x54,
+ 0x47, 0x6a, 0xb1, 0x0c, 0x82, 0x4c, 0x26, 0x51,
+ 0x16, 0xe7, 0x42, 0x03, 0xb4, 0x07, 0x02, 0xd9,
+ 0x4c, 0xc1, 0x38, 0x40, 0xac, 0x0c, 0x26, 0xd3,
+ 0x1c, 0xa8, 0x42, 0x45, 0x28, 0x25, 0x3a, 0xe5,
+ 0xed, 0x87, 0x13, 0x74, 0x0b, 0x24, 0xe5, 0xce,
+ 0x63, 0x33, 0xa0, 0x39, 0x4b, 0x60, 0x24, 0x32,
+ 0x9f, 0x0a, 0x59, 0xb0, 0xea, 0x64, 0x92, 0xe0,
+ 0x08, 0x20, 0x46, 0x12, 0x08, 0x14, 0x85, 0x9e,
+ 0x59, 0x41, 0x74, 0x81, 0x10, 0x0b, 0x8e, 0xc7,
+ 0x42, 0x1c, 0xc9, 0xc6, 0xc5, 0x00, 0xa0, 0x37,
+ 0xca, 0x9c, 0x2d, 0x3b, 0x67, 0x03, 0x9d, 0x05,
+ 0x88, 0xca, 0x64, 0xde, 0x30, 0x5c, 0xaf, 0xa8,
+ 0x32, 0xc9, 0x24, 0x05, 0x73, 0xf0, 0x0a, 0x69,
+ 0x80, 0x40, 0x19, 0x63, 0x2e, 0x02, 0xd9, 0x01,
+ 0x89, 0x92, 0xf7, 0x03, 0x5c, 0xf6, 0x47, 0xcb,
+ 0x74, 0x8a, 0x66, 0xed, 0x12, 0x84, 0xca, 0x4c,
+ 0xe0, 0x76, 0xf9, 0x58, 0x88, 0x3f, 0x54, 0x77,
+ 0x3d, 0x69, 0x99, 0xa7, 0x91, 0xa8, 0x6f, 0xd6,
+ 0x09, 0x0b, 0x63, 0x38, 0x23, 0xbf, 0x7c, 0x19,
+ 0xca, 0x2f, 0x60, 0x30, 0x3c, 0x0e, 0x06, 0x03,
+ 0x0f, 0xff, 0x00, 0xc3, 0xff, 0x60, 0x20, 0x88,
+ 0xb8, 0x5d, 0xbd, 0xc4, 0x43, 0xb8, 0xde, 0x85,
+ 0x0f, 0xf5, 0xa2, 0x77, 0x9a, 0xe8, 0x1a, 0x23,
+ 0xd4, 0x17, 0x48, 0xbb, 0x01, 0xbb, 0x48, 0xe3,
+ 0x65, 0x9b, 0xa0, 0x59, 0x23, 0x22, 0x06, 0x98,
+ 0x1f, 0x01, 0x93, 0x5e, 0xa0, 0x53, 0x96, 0x7a,
+ 0x91, 0x89, 0x84, 0xf2, 0x09, 0x53, 0xd1, 0x1e,
+ 0x66, 0xd4, 0x21, 0x1c, 0x3d, 0x0a, 0x62, 0xd1,
+ 0xe4, 0x41, 0x84, 0x7d, 0x10, 0x80, 0x33, 0x75,
+ 0x80, 0x24, 0x12, 0x26, 0x0b, 0xc7, 0xdc, 0xd2,
+ 0x15, 0xe7, 0x3f, 0xb9, 0x79, 0xcf, 0xee, 0xbe,
+ 0x73, 0xf9, 0x67, 0x9c, 0xfe, 0x51, 0xd3, 0xbf,
+ 0xb6, 0x79, 0xce, 0x2c, 0xde, 0x38, 0x23, 0x87,
+ 0x9c, 0x3e, 0x41, 0xf0, 0x42, 0x9d, 0x82, 0x8b,
+ 0x73, 0x9d, 0x1a, 0xec, 0x10, 0x42, 0x8d, 0xea,
+ 0x96, 0x05, 0x7f, 0x9a, 0x4a, 0xdd, 0x17, 0x10,
+ 0x55, 0x06, 0xc2, 0xdd, 0x0e, 0x10, 0x31, 0xc7,
+ 0x6c, 0x65, 0x10, 0x16, 0x03, 0x65, 0x6a, 0xc2,
+ 0xd3, 0x06, 0x90, 0x30, 0xe2, 0x70, 0x4e, 0x78,
+ 0xd6, 0x0a, 0xee, 0x34, 0x08, 0x5b, 0xd2, 0x41,
+ 0x39, 0xc2, 0x14, 0x44, 0x30, 0x53, 0x50, 0x54,
+ 0x37, 0x08, 0x7d, 0x12, 0x42, 0x2e, 0x51, 0xf4,
+ 0x2e, 0x10, 0x34, 0x03, 0xa4, 0x6b, 0x00, 0xc7,
+ 0x6c, 0x70, 0xba, 0xc7, 0x74, 0x0c, 0x90, 0x6f,
+ 0x0b, 0xbc, 0x98, 0x14, 0xe7, 0x15, 0x60, 0x38,
+ 0x7e, 0x47, 0xef, 0x5f, 0x91, 0x21, 0x07, 0xda,
+ 0x10, 0x77, 0x21, 0x30, 0xba, 0x55, 0x34, 0xc4,
+ 0x07, 0x08, 0x8c, 0x81, 0xda, 0x1b, 0x00, 0x75,
+ 0x88, 0x48, 0x0e, 0xaf, 0x9c, 0x26, 0x4b, 0xe5,
+ 0xa0, 0x82, 0xb7, 0x84, 0x0a, 0xb5, 0x38, 0x4e,
+ 0xa4, 0xc0, 0x06, 0x4f, 0xf3, 0xa5, 0x92, 0x94,
+ 0x23, 0x5b, 0x87, 0x63, 0x50, 0x2d, 0x00, 0x02,
+ 0x08, 0x95, 0x14, 0x80, 0x77, 0x24, 0x00, 0x32,
+ 0xd3, 0x10, 0x0d, 0x87, 0x5d, 0x37, 0x15, 0xba,
+ 0x0f, 0x00, 0x61, 0x86, 0xb8, 0x02, 0xa3, 0x46,
+ 0x76, 0x3a, 0x2c, 0x8c, 0x2a, 0x77, 0x48, 0x30,
+ 0xe3, 0xd8, 0xd3, 0x8a, 0xbb, 0xd5, 0x01, 0x05,
+ 0x90, 0x44, 0xdd, 0x96, 0x72, 0x85, 0x52, 0x4c,
+ 0x45, 0x90, 0xa3, 0x0b, 0xbc, 0x57, 0x00, 0x15,
+ 0x5a, 0xd0, 0x29, 0xee, 0x9f, 0xee, 0x50, 0x35,
+ 0x0a, 0xee, 0xe9, 0x48, 0x69, 0x84, 0xa2, 0x10,
+ 0x70, 0x88, 0x4d, 0x32, 0x36, 0x33, 0x9d, 0xd4,
+ 0x82, 0x15, 0xe2, 0x80, 0x36, 0x40, 0x78, 0x0b,
+ 0xa0, 0xa1, 0x9f, 0xf7, 0xf2, 0xdd, 0xe0, 0x71,
+ 0x05, 0x50, 0x85, 0xec, 0x93, 0xa8, 0x1b, 0x24,
+ 0x18, 0x80, 0x15, 0x04, 0x90, 0x32, 0xce, 0xf0,
+ 0xad, 0xb4, 0x1e, 0x0b, 0x1d, 0x33, 0x86, 0xdb,
+ 0xff, 0x63, 0x10, 0x50, 0xf0, 0x6c, 0x70, 0x8f,
+ 0x2b, 0x14, 0x06, 0x40, 0xdd, 0x3a, 0x44, 0x05,
+ 0x7f, 0x69, 0xce, 0xb4, 0x99, 0x51, 0x0d, 0xb6,
+ 0x44, 0xc9, 0x64, 0x74, 0x05, 0x4e, 0x11, 0x87,
+ 0xd0, 0x5a, 0x20, 0x54, 0xc6, 0x4a, 0x5d, 0x5a,
+ 0x60, 0x38, 0x5a, 0x88, 0x25, 0x13, 0x94, 0x4b,
+ 0x1c, 0x43, 0x0c, 0xe1, 0xeb, 0x91, 0x96, 0xd6,
+ 0xb0, 0xc6, 0x1e, 0xf2, 0x3b, 0x25, 0x7a, 0x5a,
+ 0xc7, 0xfb, 0x42, 0xbb, 0xf5, 0x60, 0x25, 0x1f,
+ 0xb6, 0x93, 0xbf, 0x4f, 0xc2, 0x53, 0x0a, 0xa0,
+ 0xb9, 0x6e, 0x24, 0x8e, 0xfd, 0x30, 0x0b, 0x7c,
+ 0xf4, 0xc2, 0xd9, 0x3d, 0xb1, 0x18, 0xfe, 0xa6,
+ 0xea, 0x79, 0xfb, 0xfb, 0x96, 0x7e, 0xcc, 0xc7,
+ 0xf3, 0x22, 0xbb, 0x69, 0x48, 0xab, 0x9d, 0xf7,
+ 0x03, 0xad, 0x2a, 0xc4, 0x41, 0x36, 0xc0, 0xab,
+ 0x15, 0x08, 0x24, 0x22, 0x61, 0x16, 0x7b, 0x26,
+ 0x2c, 0xa4, 0x10, 0x98, 0x4d, 0xd3, 0x16, 0x01,
+ 0x97, 0xcc, 0x7e, 0xe7, 0x56, 0x81, 0x14, 0x7b,
+ 0x9a, 0x4e, 0x75, 0x4e, 0x11, 0x4f, 0xcb, 0xd0,
+ 0xc7, 0x02, 0x21, 0x13, 0xdb, 0x3c, 0x2c, 0x27,
+ 0x98, 0x23, 0x81, 0x86, 0x00, 0xe0, 0x73, 0xee,
+ 0xe0, 0x8c, 0xfd, 0xa1, 0x75, 0xbe, 0xe1, 0x11,
+ 0x8f, 0xf3, 0x1f, 0x73, 0xfc, 0xc7, 0xde, 0xa0,
+ 0x82, 0x03, 0x2f, 0xcc, 0x65, 0xbb, 0xaf, 0x63,
+ 0x3a, 0xb8, 0x72, 0x1b, 0x7b, 0x3e, 0x73, 0xd8,
+ 0x07, 0x80, 0xba, 0x90, 0xc3, 0x40, 0xa8, 0x88,
+ 0xd9, 0xe2, 0xfa, 0x17, 0x7d, 0xcc, 0x05, 0xb7,
+ 0xfb, 0xeb, 0x77, 0xdc, 0x30, 0x50, 0x3f, 0xc0,
+ 0x77, 0x3e, 0xea, 0x0d, 0xb7, 0xf7, 0xac, 0x75,
+ 0xee, 0x00, 0x90, 0x21, 0xf0, 0x15, 0x3c, 0x26,
+ 0x7d, 0xcb, 0x09, 0x88, 0x67, 0x88, 0x70, 0x5d,
+ 0xb1, 0x4a, 0x56, 0xdf, 0xb6, 0x2d, 0xdb, 0x11,
+ 0xe5, 0x40, 0xfb, 0x49, 0xdd, 0x8e, 0x84, 0x19,
+ 0x2a, 0x80, 0x83, 0xfb, 0x54, 0x3b, 0xf8, 0xda,
+ 0x5a, 0x77, 0x14, 0x86, 0x3e, 0x99, 0x34, 0x8a,
+ 0x74, 0x47, 0x69, 0x9a, 0x2b, 0x0a, 0x6c, 0x8e,
+ 0xc7, 0x0d, 0xe3, 0x11, 0xf3, 0x74, 0x26, 0x68,
+ 0x93, 0x40, 0x19, 0x77, 0x62, 0x62, 0xda, 0xe3,
+ 0x04, 0xbb, 0x64, 0x6a, 0x5c, 0xa7, 0xf3, 0x0a,
+ 0x63, 0x28, 0x26, 0x5f, 0x98, 0x14, 0x83, 0xd2,
+ 0xeb, 0x67, 0xac, 0x79, 0x42, 0xae, 0xae, 0x16,
+ 0xfe, 0xb1, 0x09, 0x87, 0xff, 0x01, 0x63, 0x84,
+ 0x18, 0x9c, 0x3b, 0x9c, 0x67, 0x0d, 0xff, 0x01,
+ 0x96, 0xb0, 0xc8, 0x20, 0x91, 0x88, 0x48, 0x3e,
+ 0x77, 0x86, 0xef, 0x9c, 0xfd, 0xcb, 0x4d, 0x02,
+ 0x6e, 0x8c, 0x80, 0x48, 0x2b, 0x0e, 0x76, 0xe8,
+ 0xc1, 0x04, 0x2b, 0xe5, 0xff, 0x6e, 0xfe, 0x60,
+ 0x9a, 0x7e, 0x55, 0xf2, 0x0f, 0x95, 0x29, 0xbb,
+ 0xf3, 0x02, 0x2a, 0xf9, 0x58, 0xdd, 0x3e, 0x47,
+ 0xc6, 0xe8, 0x90, 0x85, 0x73, 0xcc, 0x1b, 0x29,
+ 0xd7, 0xe2, 0x4f, 0x60, 0x18, 0x06, 0x98, 0xcb,
+ 0x18, 0xb6, 0x89, 0x01, 0x69, 0x8e, 0x38, 0x42,
+ 0xbf, 0x72, 0x52, 0xdf, 0x6c, 0x7c, 0xb7, 0xf6,
+ 0x6f, 0x61, 0xa1, 0x58, 0x82, 0xa7, 0xfc, 0x26,
+ 0x1a, 0x10, 0x88, 0xb7, 0xf6, 0x07, 0x61, 0xf3,
+ 0x88, 0x88, 0x3e, 0xcf, 0x22, 0xde, 0xe7, 0x79,
+ 0x8e, 0x00, 0x63, 0x7c, 0x9c, 0xea, 0x9b, 0x7c,
+ 0x0b, 0x22, 0x0f, 0x06, 0x9c, 0xa2, 0x1b, 0xa6,
+ 0x20, 0x95, 0x08, 0x1a, 0x73, 0xc6, 0x06, 0x68,
+ 0x09, 0x01, 0x9e, 0x09, 0xc1, 0x61, 0x81, 0x90,
+ 0x1c, 0x8e, 0x91, 0x00, 0x03, 0x0f, 0x79, 0xcc,
+ 0xcd, 0xfe, 0x40, 0xb2, 0xc8, 0x14, 0x04, 0x5f,
+ 0xd1, 0x49, 0x4c, 0xce, 0x0a, 0x65, 0x54, 0x11,
+ 0x16, 0xfb, 0xc1, 0x4c, 0x3d, 0xb1, 0x11, 0x6f,
+ 0x71, 0x88, 0xb9, 0xdc, 0x49, 0x96, 0xfc, 0xe3,
+ 0xed, 0x93, 0x4d, 0x31, 0x07, 0xcc, 0xfe, 0xcb,
+ 0xe0, 0xe5, 0x31, 0xfc, 0xb3, 0xec, 0x3f, 0x2c,
+ 0xdb, 0x77, 0x56, 0xc4, 0xdf, 0x01, 0xd1, 0x31,
+ 0xe6, 0x1c, 0xa7, 0xde, 0x61, 0x53, 0x1e, 0x0e,
+ 0xc6, 0x77, 0xe5, 0xb2, 0xba, 0x47, 0xcc, 0x26,
+ 0x43, 0xaa, 0x9f, 0x81, 0xa7, 0x2b, 0xe3, 0x32,
+ 0x1d, 0x45, 0x3c, 0xef, 0xbc, 0x55, 0x21, 0x44,
+ 0x4f, 0x4e, 0x5b, 0x52, 0x43, 0x14, 0x82, 0xbf,
+ 0xa2, 0x36, 0xd3, 0xcf, 0x9c, 0xdc, 0xe9, 0xfe,
+ 0x72, 0x32, 0x45, 0x80, 0x46, 0x5e, 0xad, 0x9b,
+ 0xa7, 0x66, 0xca, 0xf7, 0xcb, 0x62, 0x19, 0x7e,
+ 0x1f, 0xec, 0x3f, 0x87, 0xfb, 0x77, 0x35, 0x52,
+ 0x15, 0xf8, 0x06, 0x94, 0x50, 0x20, 0x0d, 0x30,
+ 0x7f, 0x31, 0x94, 0x1d, 0x4e, 0x53, 0xca, 0x12,
+ 0x16, 0xcd, 0x64, 0x45, 0xbd, 0x45, 0x83, 0x94,
+ 0x7f, 0x00, 0x41, 0xf0, 0xa6, 0x90, 0x72, 0x8b,
+ 0x4c, 0x97, 0xa8, 0x1b, 0x94, 0xd2, 0x0c, 0x15,
+ 0x00, 0x52, 0x19, 0x10, 0x23, 0x5e, 0x57, 0x3c,
+ 0x64, 0x81, 0x96, 0x03, 0x85, 0x7b, 0xf4, 0xb2,
+ 0x5b, 0xea, 0xf5, 0x57, 0xdf, 0x51, 0x90, 0xb7,
+ 0x5c, 0xa2, 0x77, 0xce, 0xa0, 0xd9, 0xae, 0x1e,
+ 0xd2, 0x0a, 0x9e, 0xa0, 0xa7, 0xfa, 0x69, 0x73,
+ 0x84, 0x08, 0x99, 0x24, 0xf2, 0x32, 0x8a, 0x8e,
+ 0x5c, 0xa6, 0xe8, 0x95, 0x3b, 0xaa, 0x38, 0xd8,
+ 0xb4, 0x31, 0xb6, 0xff, 0xd6, 0x5d, 0xde, 0xa0,
+ 0x06, 0x6c, 0x82, 0x69, 0x5d, 0xf2, 0x12, 0x52,
+ 0x0d, 0x01, 0x1d, 0xc3, 0x46, 0xfa, 0x77, 0xad,
+ 0xb8, 0x5d, 0xe8, 0xdc, 0x17, 0x7a, 0x35, 0x00,
+ 0xb6, 0x90, 0xc2, 0x73, 0xb5, 0xf0, 0xd7, 0x28,
+ 0xf4, 0x22, 0x0b, 0x59, 0x0d, 0x8e, 0xb1, 0x03,
+ 0x63, 0x80, 0x89, 0x1a, 0x6a, 0xbe, 0x62, 0x08,
+ 0xcf, 0x01, 0x9e, 0x35, 0x82, 0x68, 0xad, 0xe8,
+ 0x5d, 0x4c, 0x5c, 0x91, 0x2b, 0x0d, 0x4b, 0x44,
+ 0xd3, 0x42, 0x20, 0x31, 0x58, 0x7d, 0x64, 0x11,
+ 0x73, 0x03, 0x66, 0xfc, 0x00, 0xcb, 0x20, 0x10,
+ 0x3a, 0x7f, 0x4d, 0x4e, 0xf4, 0x48, 0x33, 0x46,
+ 0x5a, 0xc4, 0xc7, 0x60, 0xb6, 0x10, 0x50, 0x54,
+ 0x2e, 0x46, 0x58, 0x5b, 0x81, 0x9a, 0x41, 0xc1,
+ 0x64, 0xb0, 0x03, 0x1c, 0x29, 0xe4, 0x42, 0xcf,
+ 0xae, 0x89, 0x87, 0x93, 0x00, 0x20, 0xa7, 0x12,
+ 0xdd, 0xe7, 0x4a, 0x12, 0xcf, 0xf3, 0x19, 0xde,
+ 0x9b, 0xbf, 0x45, 0xa6, 0xeb, 0x9c, 0x32, 0x1a,
+ 0x92, 0xdc, 0x6f, 0x85, 0x9f, 0x05, 0x09, 0x2c,
+ 0xa7, 0xd1, 0xda, 0x31, 0x72, 0x96, 0xdf, 0xea,
+ 0xa9, 0xcf, 0xbf, 0x26, 0x2c, 0x82, 0x08, 0x58,
+ 0x7c, 0x02, 0xf6, 0xdb, 0xa9, 0x2d, 0x92, 0xa5,
+ 0x69, 0x77, 0x97, 0x68, 0x59, 0xbb, 0x2a, 0xe2,
+ 0xd8, 0x1a, 0x84, 0x2a, 0xa0, 0x5f, 0x72, 0x97,
+ 0x08, 0x08, 0x25, 0xce, 0x17, 0x53, 0x9c, 0x3e,
+ 0x40, 0xe7, 0x2e, 0x6c, 0xb7, 0xc2, 0x40, 0x65,
+ 0xb5, 0x58, 0x09, 0x47, 0x66, 0x74, 0xcd, 0x06,
+ 0xa1, 0x94, 0xf2, 0xa0, 0x8c, 0xd0, 0x07, 0x09,
+ 0x6d, 0x65, 0xc8, 0x5a, 0x78, 0xc4, 0x00, 0x5a,
+ 0x60, 0x6a, 0x03, 0xed, 0x14, 0x01, 0x93, 0x06,
+ 0x20, 0x40, 0xb4, 0xe0, 0xda, 0x69, 0xc3, 0x56,
+ 0x3e, 0x24, 0x91, 0xd7, 0x8c, 0x26, 0x62, 0xfe,
+ 0x68, 0x4f, 0xa8, 0xac, 0x06, 0xe8, 0x5b, 0x84,
+ 0x82, 0x04, 0xe2, 0x6d, 0xaa, 0x29, 0x08, 0x31,
+ 0x8c, 0xc2, 0x08, 0x03, 0x8d, 0xb3, 0x2e, 0x72,
+ 0x62, 0x32, 0x99, 0xe1, 0xd8, 0x00, 0xa8, 0x4d,
+ 0x91, 0x8b, 0xf6, 0x69, 0x74, 0x3c, 0xc8, 0x4c,
+ 0x04, 0x02, 0xe8, 0x0e, 0x01, 0xb6, 0x9e, 0x84,
+ 0x3a, 0x80, 0x90, 0x18, 0xe0, 0xd8, 0x16, 0xcf,
+ 0xd7, 0x24, 0xfa, 0xbe, 0xe7, 0x3e, 0xf6, 0xa9,
+ 0x5d, 0xe3, 0xa2, 0x17, 0x3d, 0xe7, 0x04, 0x82,
+ 0x43, 0x47, 0x63, 0xc8, 0xae, 0x9d, 0x67, 0x62,
+ 0x10, 0xa8, 0x16, 0x89, 0xd2, 0x09, 0x20, 0x63,
+ 0x93, 0xf8, 0xcc, 0x07, 0xbf, 0x26, 0x03, 0x71,
+ 0xd2, 0x30, 0x80, 0x20, 0xfc, 0xa0, 0x4e, 0xe2,
+ 0x44, 0x17, 0x09, 0x27, 0x85, 0x9e, 0x08, 0x40,
+ 0x65, 0xf9, 0x9f, 0xdb, 0x3e, 0x67, 0xf6, 0x5b,
+ 0x64, 0x15, 0x8f, 0xed, 0xdf, 0x64, 0xfb, 0x76,
+ 0x9c, 0xfe, 0xe7, 0x36, 0xde, 0x03, 0xc4, 0x83,
+ 0xb7, 0xe6, 0x73, 0xfa, 0x00, 0x5c, 0x22, 0x12,
+ 0x52, 0x08, 0x5b, 0x89, 0x90, 0xcb, 0x0a, 0x00,
+ 0x33, 0xf9, 0x82, 0x2c, 0xdd, 0xed, 0x63, 0x27,
+ 0xf6, 0x44, 0x5b, 0xde, 0x40, 0x9d, 0xd7, 0x48,
+ 0x0e, 0x5f, 0xc1, 0x2b, 0x9c, 0x10, 0x52, 0xdb,
+ 0x1f, 0xf5, 0x85, 0x18, 0xe2, 0x14, 0x07, 0x38,
+ 0x5b, 0x05, 0xd2, 0x3b, 0xa3, 0x0a, 0xd8, 0x50,
+ 0xd8, 0xf1, 0xb4, 0x77, 0x3d, 0x7e, 0x84, 0xee,
+ 0x5b, 0x5f, 0x20, 0xa4, 0x4a, 0x9a, 0x20, 0x34,
+ 0x07, 0x68, 0x33, 0x01, 0x8a, 0xf4, 0xc0, 0x20,
+ 0x89, 0x20, 0x0a, 0xe0, 0x74, 0x02, 0x08, 0x60,
+ 0xa1, 0x6e, 0x7a, 0x86, 0x6e, 0x84, 0xbc, 0xc8,
+ 0x21, 0x2f, 0xf0, 0xa8, 0x4b, 0xa8, 0xc2, 0x19,
+ 0x92, 0x20, 0x84, 0x1f, 0xd9, 0x21, 0x06, 0x93,
+ 0x08, 0x18, 0x0c, 0xba, 0x45, 0xc5, 0x0a, 0x85,
+ 0x7f, 0x5b, 0x7d, 0xc0, 0x23, 0xb8, 0x57, 0x1d,
+ 0xbe, 0xa0, 0xe0, 0x65, 0xe1, 0x38, 0x02, 0xbf,
+ 0xf2, 0x42, 0x08, 0x5a, 0x69, 0xbf, 0xfb, 0xaa,
+ 0x75, 0x85, 0xbf, 0xd8, 0x61, 0x6e, 0xf3, 0xa8,
+ 0x62, 0x94, 0xa2, 0x74, 0xae, 0x2d, 0xe1, 0x38,
+ 0x5b, 0x21, 0x56, 0xc2, 0x9a, 0x6a, 0x81, 0xa6,
+ 0x05, 0x40, 0x6d, 0x9c, 0xb0, 0x8e, 0xe6, 0x9e,
+ 0x36, 0x9c, 0x70, 0x09, 0xa7, 0xf9, 0x0f, 0x29,
+ 0x80, 0xe8, 0xc2, 0xab, 0x6f, 0x42, 0x89, 0xc5,
+ 0x91, 0xcf, 0x1b, 0xc4, 0x65, 0x9e, 0x90, 0x1c,
+ 0xf7, 0xb4, 0x46, 0x1a, 0x96, 0x1c, 0x82, 0x87,
+ 0x30, 0x2d, 0xa5, 0x30, 0x8c, 0x31, 0x1c, 0x36,
+ 0xc9, 0x87, 0x94, 0x9b, 0xf0, 0x23, 0x26, 0xa3,
+ 0x68, 0x1e, 0x26, 0x7c, 0x66, 0x99, 0x99, 0x89,
+ 0xf2, 0xa6, 0xa5, 0x73, 0x84, 0x10, 0x1a, 0x69,
+ 0x20, 0x12, 0x2f, 0xe8, 0x05, 0xbc, 0xd7, 0x20,
+ 0x70, 0x16, 0xc3, 0x00, 0x84, 0x1c, 0x29, 0x09,
+ 0x35, 0x1e, 0x06, 0xe7, 0x06, 0x20, 0x37, 0x7f,
+ 0x14, 0x24, 0x5f, 0xe0, 0x8b, 0x77, 0xeb, 0x42,
+ 0x15, 0xd4, 0x01, 0x98, 0x08, 0x07, 0xf0, 0x2a,
+ 0x00, 0x54, 0xb6, 0xd2, 0x65, 0x54, 0x40, 0x85,
+ 0x7e, 0x18, 0x8c, 0xbe, 0x54, 0x20, 0x57, 0xdf,
+ 0x88, 0xcb, 0xe4, 0x62, 0xb2, 0x40, 0xb0, 0x4e,
+ 0x9b, 0xc4, 0x03, 0x4c, 0x1b, 0x82, 0x15, 0xf8,
+ 0x50, 0xb8, 0x4b, 0xac, 0x6c, 0xdb, 0xd0, 0x12,
+ 0xe7, 0xb5, 0x2a, 0xc9, 0xa8, 0x51, 0xb9, 0x6e,
+ 0xb8, 0x01, 0x54, 0xbb, 0x2b, 0x36, 0xe8, 0x84,
+ 0xcd, 0x4b, 0xf2, 0x85, 0x5f, 0x48, 0x8e, 0x11,
+ 0x46, 0x09, 0x47, 0x97, 0x62, 0xd3, 0x1c, 0xb3,
+ 0x38, 0x48, 0x14, 0x65, 0xb1, 0xe9, 0x33, 0x6e,
+ 0xc8, 0x70, 0x41, 0xb3, 0xa6, 0xb4, 0xf9, 0x02,
+ 0x2d, 0xfd, 0x86, 0x21, 0xec, 0x26, 0xc0, 0xc7,
+ 0x53, 0xf1, 0xb6, 0xc2, 0x21, 0x4e, 0x1a, 0xfe,
+ 0x31, 0xdd, 0xcd, 0xc4, 0xd3, 0xe2, 0xc3, 0xb0,
+ 0xf7, 0x0d, 0x6e, 0x70, 0x03, 0x0b, 0x79, 0x9a,
+ 0x32, 0x28, 0x29, 0xfd, 0x5f, 0x19, 0xe0, 0x3a,
+ 0x63, 0xbc, 0xe7, 0x24, 0xa3, 0xec, 0x7f, 0x61,
+ 0xfb, 0x1b, 0x9b, 0x73, 0x26, 0x53, 0xb8, 0x57,
+ 0x0d, 0x93, 0x95, 0xc0, 0x20, 0x8b, 0xa0, 0x9a,
+ 0x7d, 0x8f, 0x75, 0xb3, 0x75, 0x7d, 0x00, 0xc7,
+ 0x0b, 0x46, 0xb1, 0xf6, 0xc5, 0x4d, 0x30, 0xdd,
+ 0x38, 0x57, 0xcf, 0xfe, 0xe7, 0x2d, 0x61, 0x15,
+ 0x44, 0x08, 0x45, 0x55, 0xfe, 0x49, 0x06, 0xd5,
+ 0x40, 0xc7, 0x00, 0x61, 0x9d, 0xc6, 0xf4, 0x6f,
+ 0x1c, 0xcb, 0x52, 0xdf, 0xe0, 0x4e, 0x5b, 0xf6,
+ 0xc5, 0x15, 0x8c, 0x7e, 0xd5, 0xf7, 0x3f, 0xb5,
+ 0x7c, 0x82, 0x08, 0xaa, 0x69, 0xfb, 0xb8, 0xc2,
+ 0xbe, 0xee, 0x87, 0x0c, 0x78, 0x04, 0x83, 0xee,
+ 0xff, 0x2d, 0xfb, 0xbf, 0xdb, 0xbd, 0xc3, 0xf7,
+ 0x3f, 0xbb, 0xc1, 0xcc, 0xee, 0x61, 0x8f, 0xe0,
+ 0x42, 0xbd, 0xd2, 0x86, 0x4c, 0xc0, 0x14, 0xca,
+ 0x5c, 0x66, 0x3f, 0xb2, 0xb8, 0x0a, 0x73, 0x05,
+ 0xf7, 0x5c, 0xc1, 0x31, 0xbc, 0xdc, 0x6c, 0x85,
+ 0x68, 0x19, 0x27, 0x5c, 0x06, 0x98, 0x4b, 0x85,
+ 0xa7, 0x30, 0xa1, 0x0a, 0xb7, 0xc8, 0x5b, 0xe4,
+ 0xc6, 0x06, 0xef, 0xf5, 0x05, 0x86, 0x21, 0xc0,
+ 0x6f, 0xff, 0x98, 0x5c, 0x3f, 0xc2, 0xa2, 0x08,
+ 0x16, 0x81, 0x6e, 0xc3, 0xc5, 0x53, 0xae, 0x5a,
+ 0x93, 0xc9, 0xe5, 0x0c, 0xbe, 0x5c, 0xba, 0x00,
+ 0x60, 0x6c, 0x37, 0xc4, 0x08, 0x0d, 0x26, 0xe8,
+ 0x85, 0x81, 0x9a, 0x7a, 0xa1, 0x20, 0xd2, 0x90,
+ 0x1a, 0x68, 0xe6, 0x07, 0x48, 0x1b, 0x81, 0x8e,
+ 0x01, 0xc2, 0x65, 0x85, 0x08, 0x48, 0x2e, 0xda,
+ 0x16, 0x1f, 0xc9, 0xc4, 0x2b, 0x46, 0x65, 0x73,
+ 0xa6, 0x19, 0x98, 0xe5, 0xda, 0x06, 0x53, 0x34,
+ 0x22, 0x00, 0xcb, 0x04, 0x40, 0x1d, 0x4e, 0x0c,
+ 0x0c, 0x74, 0x8c, 0x23, 0x2f, 0xfc, 0xc6, 0xd3,
+ 0x50, 0x53, 0x1d, 0x52, 0x34, 0x65, 0x1a, 0xf7,
+ 0x6b, 0x97, 0xc7, 0xc4, 0xe7, 0x1b, 0x50, 0x39,
+ 0x4b, 0x14, 0x0c, 0x70, 0x2d, 0x2b, 0x24, 0x7e,
+ 0xc6, 0x81, 0xc6, 0xf2, 0x32, 0xcd, 0x2c, 0x4e,
+ 0x5f, 0xdb, 0x73, 0x4e, 0xac, 0xda, 0xc9, 0x1c,
+ 0x81, 0x90, 0xd8, 0x9c, 0x2c, 0xb4, 0x45, 0x0b,
+ 0x1f, 0x48, 0x14, 0xe7, 0xf5, 0xd4, 0x31, 0x1e,
+ 0x71, 0x48, 0x16, 0x3c, 0x44, 0x81, 0xcb, 0xeb,
+ 0x81, 0x70, 0x83, 0x10, 0x1b, 0x3e, 0x0a, 0x10,
+ 0xaf, 0xb5, 0x11, 0x92, 0x4e, 0xe3, 0x40, 0xfc,
+ 0x69, 0xd9, 0x24, 0xce, 0x32, 0x1f, 0xd8, 0x74,
+ 0xcb, 0xf5, 0xe3, 0x32, 0x81, 0x00, 0x1a, 0x25,
+ 0xde, 0x13, 0xaf, 0xd6, 0x4d, 0xdf, 0xf5, 0x8d,
+ 0x77, 0xfa, 0xe7, 0x8d, 0x3e, 0xb6, 0x33, 0x4f,
+ 0xd6, 0x69, 0xc7, 0xeb, 0x0d, 0x71, 0xf8, 0x47,
+ 0x98, 0xf1, 0x24, 0x10, 0xaf, 0x32, 0x15, 0xc3,
+ 0xe1, 0x10, 0x40, 0xf8, 0x4b, 0x08, 0x7d, 0x75,
+ 0xd7, 0x0a, 0x2c, 0x00, 0x2b, 0xf5, 0x84, 0x20,
+ 0x83, 0xb8, 0x4e, 0xa3, 0x28, 0x06, 0x18, 0x11,
+ 0x84, 0x2b, 0xc4, 0x43, 0x2d, 0xff, 0x20, 0x48,
+ 0x3c, 0x3c, 0xe6, 0x18, 0x7d, 0x08, 0xa7, 0xf9,
+ 0xa1, 0x70, 0xff, 0x18, 0x4f, 0x62, 0xc8, 0x16,
+ 0x1f, 0xe8, 0x09, 0x8f, 0xf7, 0xc4, 0x3d, 0x83,
+ 0x88, 0xc2, 0xbc, 0x2a, 0x52, 0xdf, 0xe0, 0x11,
+ 0x86, 0x19, 0x02, 0x69, 0xc6, 0x83, 0x58, 0xff,
+ 0x81, 0x67, 0x3f, 0xe0, 0x15, 0x8c, 0xd8, 0x72,
+ 0xfb, 0x20, 0xcc, 0x20, 0xc2, 0x46, 0x3f, 0xc8,
+ 0x2c, 0x83, 0xfa, 0x10, 0x3f, 0x37, 0x1d, 0x7e,
+ 0x7a, 0x12, 0x8c, 0x33, 0xb5, 0x9a, 0x0a, 0x20,
+ 0x67, 0xfa, 0x92, 0x99, 0xfe, 0x54, 0x53, 0x01,
+ 0xec, 0x07, 0x86, 0xd3, 0x02, 0x80, 0x16, 0xfc,
+ 0x6e, 0x45, 0x3d, 0xf9, 0x03, 0x24, 0x2f, 0xc2,
+ 0x65, 0x0b, 0xa1, 0x14, 0x46, 0x60, 0x04, 0x06,
+ 0x3f, 0xfe, 0x08, 0x83, 0xff, 0x02, 0x29, 0xfd,
+ 0xa4, 0x0b, 0x7e, 0xc0, 0x22, 0x8f, 0xed, 0x0d,
+ 0x87, 0xe2, 0xa3, 0x20, 0xfe, 0xc8, 0x8b, 0x60,
+ 0x90, 0x14, 0x08, 0x1b, 0x8c, 0xaf, 0xfb, 0xc6,
+ 0x61, 0x80, 0xf0, 0x49, 0xff, 0x74, 0xe7, 0x3f,
+ 0x4c, 0x10, 0x2a, 0xa2, 0xe4, 0x63, 0xfb, 0x8f,
+ 0xca, 0x3e, 0xe3, 0xf7, 0x2f, 0xb8, 0xf0, 0xb7,
+ 0xee, 0x3f, 0x70, 0xfb, 0x89, 0x5a, 0x72, 0xba,
+ 0x22, 0xde, 0xfd, 0x89, 0xef, 0x2a, 0x25, 0x32,
+ 0x1d, 0x6b, 0xf4, 0xcf, 0xa0, 0xad, 0x79, 0x94,
+ 0xfb, 0xba, 0xc9, 0x61, 0xef, 0x21, 0x1d, 0x3f,
+ 0xcc, 0x64, 0x08, 0xbe, 0x0d, 0xa7, 0x22, 0xc3,
+ 0x2a, 0xa7, 0x58, 0x4a, 0x3d, 0xfa, 0x52, 0x9f,
+ 0xe1, 0xa1, 0xcf, 0xe0, 0x27, 0x65, 0xe0, 0xa9,
+ 0xd8, 0xfb, 0x0e, 0x37, 0x3e, 0x87, 0x31, 0x43,
+ 0xab, 0x01, 0x3a, 0xf5, 0x71, 0x4c, 0xa1, 0xb2,
+ 0x33, 0x1a, 0xc4, 0x0d, 0xce, 0x40, 0x23, 0x67,
+ 0xdb, 0xa4, 0x58, 0xfa, 0x58, 0x22, 0x9f, 0x02,
+ 0x41, 0x03, 0xac, 0x06, 0x20, 0x87, 0x40, 0x1d,
+ 0xa4, 0x3e, 0x07, 0x5f, 0xaf, 0x09, 0xcf, 0xac,
+ 0x74, 0x67, 0xe7, 0xd9, 0x48, 0x7e, 0xc1, 0xc3,
+ 0x4d, 0xba, 0x89, 0x43, 0xeb, 0xef, 0x34, 0xfb,
+ 0x2d, 0xdd, 0xbf, 0x12, 0x32, 0x9e, 0xb4, 0x41,
+ 0xc7, 0xec, 0x7f, 0x0a, 0xfe, 0x64, 0x08, 0x7d,
+ 0x85, 0xc3, 0x2f, 0xb1, 0x50, 0xcb, 0xec, 0x5f,
+ 0x63, 0xe6, 0x53, 0x9d, 0xfd, 0x8b, 0xf0, 0xaf,
+ 0xe6, 0x40, 0x87, 0xc4, 0x9c, 0x62, 0xf6, 0x2c,
+ 0xcc, 0x7d, 0x8b, 0xf6, 0x3e, 0x16, 0xb9, 0x8f,
+ 0xc5, 0x1f, 0x0a, 0xfe, 0x64, 0x08, 0x7b, 0x0e,
+ 0xb7, 0x08, 0xc5, 0x19, 0x93, 0x0b, 0x09, 0x5b,
+ 0xc3, 0xcf, 0xd1, 0x70, 0xf3, 0xc7, 0x3d, 0x4f,
+ 0x01, 0xa7, 0x0d, 0xa1, 0x63, 0x9a, 0xc9, 0x08,
+ 0x30, 0xf9, 0xf6, 0x2c, 0x3e, 0x19, 0xcf, 0xf8,
+ 0xe3, 0x0a, 0xd3, 0x12, 0xd8, 0xe4, 0x9c, 0x36,
+ 0x3d, 0x27, 0xa9, 0x88, 0xeb, 0xb1, 0xa0, 0x32,
+ 0xc0, 0xe8, 0x25, 0xba, 0x51, 0x13, 0x7f, 0xfb,
+ 0x4c, 0x14, 0x33, 0xc9, 0xb0, 0x5b, 0xe2, 0x3a,
+ 0x66, 0x9b, 0x69, 0x81, 0x8b, 0xfd, 0x81, 0x3a,
+ 0x82, 0x48, 0xd8, 0xe4, 0x14, 0x22, 0x0b, 0x98,
+ 0x04, 0xea, 0xe5, 0xe6, 0x63, 0xff, 0x70, 0xca,
+ 0x60, 0x32, 0x07, 0x91, 0xec, 0x6d, 0x40, 0x5d,
+ 0xfe, 0x02, 0x33, 0xe0, 0x84, 0x2b, 0xb8, 0x4a,
+ 0x31, 0x6f, 0xf3, 0x0c, 0xc7, 0xfc, 0x41, 0x99,
+ 0x6f, 0xe0, 0xe5, 0x3f, 0xcc, 0x5b, 0x9f, 0xf3,
+ 0x0e, 0x7e, 0x65, 0x36, 0xe6, 0x98, 0x0f, 0x3f,
+ 0x9b, 0x5b, 0x36, 0x9d, 0x06, 0x41, 0xbc, 0xd3,
+ 0x31, 0xfd, 0xe8, 0x66, 0x03, 0xde, 0x20, 0x18,
+ 0xb7, 0xe7, 0x04, 0x20, 0xfb, 0x42, 0x9b, 0x3f,
+ 0xe0, 0x12, 0x9f, 0xb5, 0x15, 0x8b, 0xfc, 0x24,
+ 0x67, 0xfb, 0x4a, 0xd8, 0xbf, 0x98, 0x66, 0xcf,
+ 0xe3, 0x04, 0xcb, 0xed, 0x4f, 0x62, 0xfd, 0x69,
+ 0x1c, 0xfe, 0x6a, 0x76, 0x7f, 0xcc, 0x10, 0x83,
+ 0xe0, 0x6a, 0x70, 0xc8, 0xd0, 0x4a, 0x7f, 0x36,
+ 0x82, 0x0c, 0x83, 0x19, 0x77, 0xf3, 0x4a, 0x20,
+ 0xd7, 0xe8, 0x1c, 0x31, 0xe4, 0x16, 0xcf, 0xcc,
+ 0xad, 0xf6, 0xc2, 0xa0, 0x74, 0x98, 0x28, 0x1d,
+ 0x2b, 0xd4, 0x26, 0xdf, 0xe0, 0x9d, 0xcf, 0xf8,
+ 0x26, 0x0a, 0xf9, 0x90, 0x9d, 0x3f, 0xc6, 0x53,
+ 0xef, 0xa8, 0xa4, 0x2b, 0x24, 0x06, 0x62, 0xfb,
+ 0xb3, 0x4a, 0x60, 0x46, 0x13, 0x09, 0x1c, 0x01,
+ 0xbc, 0xed, 0x2a, 0xf0, 0xb6, 0xff, 0x31, 0x21,
+ 0x58, 0xfb, 0x2b, 0x6f, 0xee, 0x0c, 0xc7, 0x04,
+ 0x81, 0x9d, 0xc9, 0x08, 0xa5, 0xbf, 0x60, 0x21,
+ 0x96, 0x98, 0xdc, 0xdb, 0xf8, 0x91, 0x33, 0xfe,
+ 0xf4, 0xa7, 0xf1, 0x60, 0x13, 0x4d, 0x8a, 0xc0,
+ 0xcd, 0x23, 0x34, 0xb1, 0xf6, 0x74, 0xa4, 0x12,
+ 0x2a, 0x49, 0x17, 0xf1, 0x12, 0xc7, 0xf5, 0xc2,
+ 0x05, 0x55, 0xdc, 0x61, 0x52, 0xae, 0x31, 0x6f,
+ 0xbc, 0x48, 0xe7, 0xa7, 0x61, 0x9d, 0x67, 0xbd,
+ 0x0e, 0x70, 0xbe, 0x11, 0x80, 0xf2, 0x1a, 0x60,
+ 0x62, 0x8e, 0xb0, 0xdb, 0xa3, 0x52, 0x06, 0x49,
+ 0x03, 0x01, 0xbe, 0x15, 0x00, 0x74, 0x34, 0xfc,
+ 0xc0, 0x04, 0x10, 0xa1, 0x1b, 0x34, 0x6f, 0x40,
+ 0x41, 0xfb, 0xe3, 0x11, 0x7f, 0x40, 0xa7, 0xbf,
+ 0x6b, 0x13, 0xa6, 0x6d, 0x0c, 0xcd, 0xf3, 0x13,
+ 0x32, 0x9e, 0x21, 0xf0, 0x16, 0x5f, 0xc4, 0x0d,
+ 0xb7, 0xd8, 0x42, 0x6d, 0xe9, 0xf1, 0x08, 0x20,
+ 0xb2, 0x36, 0xff, 0x6f, 0x88, 0xbf, 0x3f, 0xe0,
+ 0x2b, 0x99, 0x80, 0x58, 0xec, 0xa4, 0x22, 0x08,
+ 0x62, 0x85, 0xce, 0x76, 0xc2, 0x74, 0xcb, 0x5a,
+ 0x98, 0xbb, 0x5e, 0x43, 0x0c, 0x0a, 0x01, 0xa6,
+ 0xa6, 0x60, 0x73, 0x81, 0x00, 0x98, 0x6a, 0x5e,
+ 0x06, 0xf8, 0x2f, 0x01, 0xd2, 0x26, 0x47, 0x6f,
+ 0x86, 0xd8, 0x08, 0x23, 0xf0, 0x02, 0x08, 0x40,
+ 0x01, 0xb6, 0x24, 0x60, 0x79, 0xfb, 0x71, 0x5d,
+ 0x32, 0xca, 0xa6, 0x2e, 0x5b, 0x85, 0xcf, 0xfd,
+ 0x52, 0x6c, 0xe4, 0x70, 0x59, 0x7e, 0xb8, 0x87,
+ 0x3f, 0xe3, 0x2d, 0x9f, 0xa6, 0x48, 0x3e, 0xf9,
+ 0x0a, 0xd9, 0xfb, 0x02, 0x57, 0x38, 0xb3, 0x89,
+ 0xca, 0x8d, 0xa0, 0x69, 0x98, 0x18, 0x58, 0x7e,
+ 0xeb, 0xf3, 0xee, 0xfc, 0x1d, 0x97, 0xce, 0xe8,
+ 0x65, 0x80, 0x48, 0x1e, 0xe8, 0xb0, 0x16, 0x1b,
+ 0x38, 0x89, 0xd7, 0x0c, 0xeb, 0x75, 0xf9, 0xea,
+ 0x5a, 0x7c, 0xa2, 0x40, 0xaf, 0xf6, 0x29, 0x97,
+ 0xb8, 0x06, 0x63, 0xfe, 0x11, 0x1d, 0x3e, 0xc4,
+ 0xe7, 0x58, 0x31, 0x81, 0xbf, 0xaf, 0xa0, 0x0a,
+ 0xc5, 0x41, 0x9e, 0xf7, 0xae, 0xa2, 0xdf, 0xc7,
+ 0x95, 0xf7, 0xd2, 0xaf, 0x0a, 0xbf, 0x7a, 0xd8,
+ 0xfa, 0xbc, 0x76, 0x3f, 0x48, 0x00, 0x83, 0xea,
+ 0xd5, 0x74, 0xfe, 0x73, 0xc8, 0x3e, 0x6a, 0x02,
+ 0xb9, 0x48, 0x01, 0xd6, 0x50, 0x00, 0x3e, 0x9a,
+ 0xb0, 0x1d, 0x3e, 0x74, 0xf6, 0x3f, 0xa7, 0xd5,
+ 0xd3, 0xf7, 0x10, 0x2b, 0xf9, 0xd1, 0x9c, 0xa0,
+ 0x5c, 0x07, 0x4f, 0x82, 0xc0, 0xee, 0x06, 0xe1,
+ 0x74, 0x3c, 0x9c, 0x20, 0x0c, 0x07, 0xbb, 0x96,
+ 0x50, 0xff, 0x68, 0x24, 0x69, 0xde, 0xb0, 0x0b,
+ 0xa5, 0x04, 0x02, 0x8d, 0x9a, 0x0c, 0xa4, 0x41,
+ 0x27, 0x80, 0x32, 0xf5, 0xa8, 0x24, 0x1c, 0xf2,
+ 0x23, 0xa5, 0xc0, 0x4c, 0x5d, 0xbb, 0x01, 0x16,
+ 0xdb, 0xe1, 0x01, 0x5f, 0xe6, 0x43, 0x1e, 0xa5,
+ 0xc6, 0x5b, 0x6d, 0xc2, 0x05, 0x7e, 0x40, 0x41,
+ 0x55, 0x25, 0x1b, 0x7e, 0xb9, 0x00, 0xc3, 0x11,
+ 0xe0, 0x10, 0x46, 0xb8, 0x2e, 0x79, 0xe4, 0x21,
+ 0x95, 0xaa, 0x0e, 0xdd, 0x5c, 0x52, 0xb3, 0xd2,
+ 0xe4, 0x26, 0x51, 0x76, 0x10, 0x57, 0xfc, 0x96,
+ 0x41, 0xfc, 0x42, 0x85, 0x41, 0x44, 0x4d, 0x10,
+ 0x08, 0x03, 0x46, 0x7c, 0x00, 0xc9, 0xfb, 0x71,
+ 0x9d, 0x45, 0x90, 0xcd, 0x1f, 0xeb, 0x31, 0x4f,
+ 0xee, 0x0c, 0x41, 0xfd, 0x81, 0x05, 0x6f, 0x4c,
+ 0xc4, 0x1b, 0x8f, 0x59, 0x05, 0x46, 0x06, 0x5b,
+ 0xc8, 0x65, 0x37, 0xc1, 0x34, 0xec, 0xdb, 0xea,
+ 0x11, 0xdd, 0x99, 0xd6, 0xe7, 0x93, 0x42, 0x39,
+ 0xc7, 0x5d, 0x0d, 0x1f, 0x7b, 0x0b, 0x9e, 0x55,
+ 0xcc, 0x65, 0x26, 0xc1, 0x10, 0x4e, 0xe0, 0x8d,
+ 0x1f, 0x62, 0x28, 0x54, 0xfd, 0x08, 0xd1, 0xf5,
+ 0x33, 0x3d, 0xd6, 0xea, 0x8e, 0x74, 0x90, 0x03,
+ 0x2d, 0x2d, 0x02, 0x5b, 0x05, 0xf0, 0x34, 0x7f,
+ 0x1c, 0xce, 0x9e, 0x9d, 0x3b, 0x47, 0xc5, 0x8c,
+ 0x5b, 0x5c, 0xd2, 0x05, 0x67, 0x30, 0xcd, 0x1e,
+ 0xfd, 0xf9, 0xf7, 0xf0, 0x9a, 0xcf, 0x36, 0x04,
+ 0x10, 0x64, 0xc4, 0x25, 0xbc, 0xbf, 0x79, 0x4f,
+ 0xa5, 0x8a, 0x65, 0xa7, 0x91, 0x96, 0xfd, 0x95,
+ 0x6e, 0x73, 0x23, 0x09, 0x6d, 0x52, 0x8a, 0xd1,
+ 0xf2, 0x03, 0x1d, 0xf4, 0x6c, 0xa5, 0x1f, 0xb2,
+ 0xf9, 0x07, 0xc5, 0xd8, 0xc7, 0xb7, 0x60, 0x05,
+ 0x7e, 0xca, 0x2c, 0xb7, 0x70, 0xfb, 0x25, 0xdc,
+ 0x14, 0xa0, 0x4c, 0x20, 0x95, 0x08, 0xc4, 0xf2,
+ 0x91, 0x36, 0xed, 0x80, 0x53, 0xbb, 0x6c, 0x94,
+ 0xee, 0x92, 0x05, 0x72, 0x49, 0x3a, 0xfe, 0x60,
+ 0x22, 0xec, 0x49, 0x8b, 0x60, 0x7a, 0x16, 0x58,
+ 0x06, 0x01, 0xa7, 0x4d, 0x23, 0x30, 0xc4, 0x08,
+ 0x16, 0xee, 0x46, 0x23, 0xa1, 0x01, 0x1e, 0x06,
+ 0x40, 0x50, 0x82, 0xb0, 0x18, 0xc8, 0x32, 0x02,
+ 0x0b, 0x2c, 0x0d, 0x02, 0x51, 0xa4, 0x00, 0x30,
+ 0xeb, 0xa4, 0x05, 0xb2, 0x12, 0x1b, 0x77, 0xfd,
+ 0x84, 0xeb, 0xd9, 0x10, 0x36, 0xf6, 0x50, 0x0e,
+ 0xb7, 0x96, 0x01, 0x04, 0x7e, 0xca, 0xcb, 0x02,
+ 0x21, 0x99, 0x88, 0x0b, 0x91, 0xed, 0x03, 0x91,
+ 0x9c, 0xeb, 0xab, 0xd0, 0x37, 0x1d, 0x08, 0x77,
+ 0x64, 0x19, 0x87, 0xfb, 0x82, 0xcd, 0x07, 0x30,
+ 0xba, 0x10, 0x7f, 0xd2, 0x54, 0x2b, 0x5b, 0x81,
+ 0x98, 0xd3, 0x14, 0xc0, 0x32, 0x42, 0x94, 0x2b,
+ 0x90, 0x1a, 0x03, 0x9d, 0xbc, 0x86, 0x83, 0xfe,
+ 0x47, 0x14, 0x46, 0x40, 0x6e, 0x5a, 0x62, 0x01,
+ 0x6f, 0xe9, 0x0a, 0x53, 0xfb, 0x91, 0x3a, 0xc9,
+ 0x80, 0x0e, 0x96, 0x7b, 0x0a, 0x0f, 0xda, 0xc8,
+ 0x14, 0x5b, 0xcf, 0xa0, 0x1d, 0x4d, 0x96, 0x6a,
+ 0x03, 0x1e, 0x8e, 0x42, 0x5b, 0xff, 0xb1, 0x3a,
+ 0x70, 0xf8, 0x25, 0xbf, 0xdb, 0x31, 0x07, 0xf9,
+ 0x10, 0xe5, 0x00, 0xc0, 0x3a, 0x9c, 0xad, 0xb2,
+ 0x07, 0x9f, 0xf1, 0x05, 0xa6, 0xda, 0x40, 0x65,
+ 0x82, 0x08, 0x1c, 0xa2, 0x48, 0x07, 0x2b, 0x35,
+ 0x81, 0xa6, 0x04, 0x20, 0x72, 0xa0, 0x80, 0x08,
+ 0x3e, 0xc2, 0x26, 0x13, 0x3c, 0x14, 0x80, 0xbb,
+ 0xfb, 0x24, 0x10, 0x40, 0xa8, 0x49, 0x90, 0x13,
+ 0x0a, 0x61, 0xa4, 0xc5, 0xfd, 0xd0, 0x39, 0x5d,
+ 0x20, 0x4d, 0xdf, 0x01, 0x71, 0x6f, 0x29, 0x02,
+ 0xdb, 0xef, 0xe2, 0x14, 0xfc, 0xd4, 0x6c, 0x3f,
+ 0x09, 0xfb, 0x37, 0xc2, 0x46, 0x63, 0xf0, 0x9c,
+ 0xad, 0xd6, 0xa4, 0x49, 0x9f, 0x87, 0x42, 0x0d,
+ 0x66, 0xc0, 0xd7, 0x80, 0x30, 0x37, 0x40, 0x78,
+ 0x06, 0x63, 0x21, 0x71, 0x92, 0x0d, 0xa1, 0x47,
+ 0xf3, 0x53, 0x1b, 0x3e, 0x7a, 0x87, 0x5f, 0x72,
+ 0xb1, 0xb7, 0xdc, 0xff, 0x61, 0xf7, 0x3f, 0xd7,
+ 0x3d, 0xcf, 0x54, 0x6b, 0xce, 0x05, 0x33, 0xdc,
+ 0xe7, 0x68, 0xef, 0xca, 0x1c, 0xce, 0xa6, 0x38,
+ 0x04, 0x81, 0xcf, 0xbf, 0x22, 0x31, 0xef, 0xcf,
+ 0xdd, 0x3b, 0xf2, 0x73, 0x0f, 0x78, 0x79, 0x1b,
+ 0xf2, 0x08, 0x22, 0xf7, 0x8f, 0xdc, 0xbd, 0xe3,
+ 0xf6, 0xce, 0xec, 0x7d, 0xc3, 0xbb, 0x1f, 0x6c,
+ 0xee, 0xc2, 0x51, 0x0c, 0xb4, 0x8e, 0x03, 0x39,
+ 0x0a, 0x7a, 0xa0, 0x61, 0x35, 0xc0, 0x28, 0x25,
+ 0xb6, 0x4a, 0x22, 0xe7, 0x3e, 0xfe, 0xd3, 0xf0,
+ 0x2f, 0xb2, 0x77, 0xc8, 0x88, 0x9f, 0xa1, 0x39,
+ 0x17, 0x7d, 0x3e, 0xe5, 0xdf, 0x4f, 0xb6, 0x73,
+ 0x6f, 0xee, 0x15, 0xc0, 0x03, 0xb1, 0xbc, 0xd3,
+ 0x65, 0x50, 0x37, 0xf3, 0x7b, 0xe4, 0x04, 0xfb,
+ 0x68, 0x81, 0xc2, 0xd9, 0xc0, 0x44, 0xf8, 0x00,
+ 0x94, 0xe6, 0x56, 0x42, 0x88, 0x06, 0x11, 0xd7,
+ 0x58, 0xe5, 0x20, 0xdf, 0x9f, 0xd0, 0xb9, 0xd5,
+ 0xf6, 0xce, 0x75, 0x15, 0x3e, 0xcc, 0x80, 0x70,
+ 0xb3, 0x08, 0x11, 0x3d, 0x26, 0x25, 0x3d, 0xe6,
+ 0x10, 0x8b, 0x9c, 0x9f, 0x72, 0xe7, 0x27, 0xdb,
+ 0x37, 0x97, 0xf7, 0x0a, 0x58, 0x01, 0xd8, 0xde,
+ 0x69, 0xaa, 0x28, 0x1b, 0xf7, 0x9d, 0xf2, 0x0d,
+ 0x66, 0x05, 0x52, 0x43, 0xc0, 0x6b, 0xd8, 0x40,
+ 0xc8, 0x3b, 0xe8, 0x37, 0x49, 0x07, 0x81, 0xaf,
+ 0x5d, 0x22, 0x30, 0xd7, 0x4f, 0xdd, 0x39, 0xe1,
+ 0xf6, 0x5d, 0xf0, 0x19, 0x1e, 0x02, 0xe0, 0x54,
+ 0x8d, 0xb8, 0x1a, 0xf5, 0x42, 0x32, 0x2d, 0xf0,
+ 0x7d, 0xcb, 0x7c, 0x1f, 0x6c, 0xd6, 0x3f, 0xdc,
+ 0x35, 0x8f, 0xf6, 0xcd, 0x63, 0x9d, 0x4e, 0x1d,
+ 0x00, 0x75, 0x84, 0x58, 0x1c, 0xb6, 0x9e, 0x42,
+ 0x2d, 0x5d, 0x2d, 0x8e, 0x30, 0x06, 0x75, 0x83,
+ 0x50, 0x1c, 0xb6, 0x5c, 0x40, 0xa8, 0x0c, 0x01,
+ 0x37, 0x34, 0x01, 0x61, 0x81, 0x28, 0x10, 0x8d,
+ 0xe7, 0x88, 0x11, 0x85, 0x9b, 0x4e, 0xa2, 0x20,
+ 0x84, 0xb0, 0x1d, 0x22, 0x7a, 0x02, 0xda, 0xb9,
+ 0x11, 0xa4, 0xe9, 0x13, 0x20, 0x16, 0xd4, 0xb8,
+ 0x0c, 0x57, 0x27, 0x03, 0xcd, 0x48, 0x88, 0xc5,
+ 0x71, 0xd0, 0x3c, 0xe6, 0x04, 0x4e, 0xf0, 0x58,
+ 0x01, 0x04, 0x0e, 0x42, 0xc5, 0x44, 0xc0, 0x3a,
+ 0x68, 0x48, 0x25, 0x20, 0xa1, 0xb6, 0x61, 0x7e,
+ 0xe9, 0xa9, 0x84, 0x99, 0x08, 0x07, 0x19, 0xfb,
+ 0x63, 0x1e, 0x5d, 0xaa, 0xa7, 0x01, 0x80, 0x26,
+ 0xe3, 0xf8, 0x2c, 0x30, 0xd6, 0x02, 0x11, 0xbc,
+ 0xf1, 0xa7, 0x00, 0xba, 0xc4, 0x04, 0x0e, 0x5a,
+ 0x72, 0xfb, 0xae, 0x9c, 0xbe, 0xcd, 0x95, 0x9f,
+ 0xb3, 0xe5, 0x67, 0xe4, 0x10, 0x72, 0x01, 0x81,
+ 0xe0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01,
+ 0x84, 0x75, 0x80, 0xc7, 0x02, 0x23, 0x26, 0x90,
+ 0xb0, 0x08, 0x04, 0xb8, 0xe2, 0x81, 0xe0, 0x60,
+ 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x86, 0x64,
+ 0x00, 0xc7, 0x00, 0x83, 0x26, 0x90, 0xaf, 0xd4,
+ 0x04, 0xb2, 0x19, 0x04, 0x9c, 0x43, 0x22, 0x93,
+ 0x23, 0x4a, 0x07, 0x81, 0x80, 0xc0, 0x60, 0x30,
+ 0x18, 0x0c, 0x06, 0x18, 0x79, 0x03, 0x1d, 0xee,
+ 0x02, 0xe8, 0x61, 0x80, 0x70, 0x53, 0x48, 0x45,
+ 0xf2, 0x09, 0x0a, 0xf8, 0x80, 0x54, 0x29, 0x11,
+ 0x4a, 0x85, 0x22, 0xc9, 0x24, 0x8e, 0x4e, 0xbd,
+ 0xc8, 0x11, 0x62, 0xfa, 0x07, 0x81, 0x80, 0xc0,
+ 0x60, 0x30, 0x18, 0x0c, 0x06, 0x18, 0x25, 0x03,
+ 0x1d, 0xe4, 0x02, 0xe8, 0x61, 0x80, 0x40, 0x53,
+ 0x48, 0x45, 0xf2, 0xc9, 0x14, 0xa6, 0x4e, 0x27,
+ 0x90, 0xc8, 0x24, 0xe2, 0x19, 0x14, 0x99, 0x15,
+ 0xa0, 0x3c, 0x0c, 0x06, 0x03, 0x01, 0x80, 0xc0,
+ 0x60, 0x30, 0x1a, 0x54, 0xd0, 0x2d, 0xd1, 0xbc,
+ 0x03, 0x0c, 0x01, 0x42, 0x9a, 0x42, 0x2f, 0x96,
+ 0x48, 0xa5, 0x32, 0x71, 0x3e, 0x27, 0xa0, 0x78,
+ 0x18, 0x0c, 0x06, 0x03, 0x01, 0x80, 0xc0, 0x60,
+ 0x35, 0xa8, 0xb8, 0x5b, 0xa3, 0x3e, 0x06, 0x18,
+ 0x0d, 0x05, 0x34, 0x84, 0x5f, 0x29, 0x11, 0x4a,
+ 0x85, 0x22, 0xc9, 0x0c, 0x82, 0x4e, 0x21, 0x91,
+ 0x49, 0x91, 0x1a, 0x03, 0xc0, 0xc0, 0x60, 0x30,
+ 0x18, 0x0c, 0x06, 0x03, 0x18, 0x88, 0x81, 0x8e,
+ 0xe5, 0xa1, 0x74, 0x30, 0xd0, 0x1c, 0x29, 0xa4,
+ 0x22, 0xfd, 0xcc, 0x80, 0x9e, 0x4e, 0x24, 0x10,
+ 0x49, 0xc4, 0x48, 0x7d, 0x01, 0xe0, 0x60, 0x30,
+ 0x18, 0x0c, 0x06, 0x03, 0x01, 0x94, 0x3c, 0x40,
+ 0xc7, 0x70, 0xd0, 0xba, 0x18, 0x67, 0xce, 0x14,
+ 0xd2, 0x11, 0x7e, 0xe2, 0x40, 0x4f, 0x27, 0x14,
+ 0x4a, 0xa4, 0x52, 0x99, 0x50, 0x93, 0x71, 0xe0,
+ 0x05, 0x0c, 0x0f, 0x03, 0x01, 0x80, 0xc0, 0x60,
+ 0x30, 0x18, 0x0c, 0xe1, 0x9a, 0x06, 0x3b, 0x74,
+ 0x85, 0xd0, 0xc3, 0x3c, 0x30, 0xa6, 0x90, 0x8b,
+ 0xf6, 0xee, 0x02, 0x79, 0x38, 0x8a, 0x58, 0xb7,
+ 0x48, 0x10, 0x49, 0xb6, 0xea, 0x02, 0x4d, 0xbd,
+ 0xc0, 0x14, 0x30, 0x3c, 0x0c, 0x06, 0x03, 0x01,
+ 0x80, 0xc0, 0x60, 0x34, 0x85, 0x30, 0x18, 0xed,
+ 0x84, 0x17, 0x43, 0x0c, 0xe7, 0x02, 0x9a, 0x42,
+ 0x2f, 0xdb, 0x1c, 0x09, 0xe4, 0xe2, 0x09, 0x4c,
+ 0xa8, 0x45, 0x29, 0x12, 0x4a, 0x64, 0xb8, 0x45,
+ 0x81, 0xe0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x03,
+ 0x01, 0xc4, 0x20, 0x80, 0xc7, 0x69, 0xe0, 0xba,
+ 0x18, 0x66, 0xf0, 0x14, 0xd2, 0x11, 0x7c, 0xaa,
+ 0x53, 0x22, 0x94, 0xad, 0x3e, 0x04, 0xf2, 0x74,
+ 0x1a, 0xc0, 0xf0, 0x30, 0x18, 0x0c, 0x06, 0x03,
+ 0x01, 0x80, 0xc2, 0x0c, 0x40, 0x63, 0xb3, 0xf0,
+ 0x5d, 0x0c, 0x33, 0x58, 0x0a, 0x69, 0x08, 0xbe,
+ 0x44, 0x22, 0x91, 0x88, 0x45, 0x52, 0xa1, 0x52,
+ 0xd2, 0x40, 0x31, 0x82, 0x48, 0x1e, 0x06, 0x03,
+ 0x01, 0x80, 0xc0, 0x60, 0x31, 0x18, 0x41, 0x00,
+ 0x0c, 0x76, 0x5c, 0x0b, 0xa1, 0x86, 0x66, 0xc1,
+ 0x4d, 0x21, 0x17, 0xc8, 0x84, 0x52, 0x31, 0x08,
+ 0xaa, 0x54, 0x2a, 0x59, 0xc0, 0x06, 0x50, 0x27,
+ 0x03, 0xc0, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06,
+ 0x43, 0x08, 0x0f, 0x01, 0x8e, 0xc7, 0x41, 0x74,
+ 0x30, 0xcc, 0x50, 0x29, 0xa4, 0x22, 0xf9, 0x10,
+ 0x8a, 0x46, 0x21, 0x15, 0x4a, 0x85, 0x4b, 0x27,
+ 0x00, 0xce, 0x00, 0xa0, 0x78, 0x18, 0x0c, 0x06,
+ 0x03, 0x01, 0x80, 0xcc, 0x61, 0x01, 0x30, 0x31,
+ 0xd8, 0x60, 0x2e, 0x86, 0x19, 0x79, 0x05, 0x34,
+ 0x84, 0x5f, 0x22, 0x11, 0x48, 0xc4, 0x22, 0xa9,
+ 0x50, 0xa9, 0x62, 0xc0, 0x1a, 0x5a, 0x98, 0x0f,
+ 0x03, 0x01, 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c,
+ 0x2d, 0x3a, 0x06, 0x3a, 0xfb, 0x05, 0xd0, 0xc3,
+ 0x2d, 0x00, 0xa6, 0x90, 0x8b, 0xe4, 0x12, 0x85,
+ 0x7f, 0x40, 0x9a, 0x4f, 0x22, 0x10, 0x49, 0x96,
+ 0x85, 0x03, 0xc0, 0xc0, 0x60, 0x30, 0x18, 0x0c,
+ 0x46, 0x03, 0x0b, 0x3e, 0x01, 0x8e, 0xba, 0xa1,
+ 0x74, 0x30, 0xca, 0xbc, 0x29, 0xa4, 0x22, 0xf9,
+ 0x4c, 0xb2, 0x53, 0x2a, 0x11, 0x49, 0xa4, 0xd2,
+ 0x79, 0x10, 0x82, 0x4c, 0xb3, 0x10, 0x1e, 0x06,
+ 0x03, 0x01, 0x80, 0xc0, 0x64, 0x30, 0x18, 0x59,
+ 0x64, 0x0c, 0x75, 0xb2, 0x0b, 0xa1, 0x86, 0x51,
+ 0x81, 0x4d, 0x21, 0x17, 0xca, 0x84, 0x12, 0x99,
+ 0x2c, 0x9a, 0x4f, 0x22, 0x10, 0x49, 0x96, 0x41,
+ 0x03, 0xc0, 0xc0, 0x60, 0x30, 0x18, 0x0d, 0x06,
+ 0x03, 0x0b, 0x1c, 0x01, 0x8e, 0xb2, 0x21, 0x74,
+ 0x30, 0xc9, 0xac, 0x29, 0xa4, 0x22, 0xf9, 0x20,
+ 0x8a, 0x4c, 0x28, 0x58, 0x94, 0x0f, 0x03, 0x01,
+ 0x80, 0xc0, 0x60, 0x38, 0x18, 0x0c, 0x2c, 0x38,
+ 0x06, 0x3a, 0xba, 0x85, 0xd0, 0xc3, 0x24, 0xf0,
+ 0xa6, 0x90, 0x8b, 0xe4, 0xe2, 0x7d, 0x60, 0x00,
+ 0x86, 0x55, 0x29, 0xd8, 0x18, 0x0f, 0x03, 0x01,
+ 0x80, 0xc0, 0x62, 0x30, 0x18, 0x0c, 0x2b, 0xfa,
+ 0x06, 0x3a, 0xab, 0x05, 0xd0, 0xc3, 0x23, 0x00,
+ 0xa6, 0x90, 0x8b, 0xe5, 0x32, 0x2d, 0x58, 0x04,
+ 0x8a, 0x47, 0xab, 0x40, 0x15, 0x49, 0xc4, 0x4a,
+ 0xf0, 0x81, 0xe0, 0x60, 0x30, 0x18, 0x0c, 0x86,
+ 0x03, 0x01, 0x85, 0x76, 0x00, 0xc7, 0x53, 0x10,
+ 0xba, 0x18, 0x64, 0x16, 0x14, 0xd2, 0x11, 0x7c,
+ 0x88, 0x45, 0x23, 0x10, 0x4a, 0xa4, 0xc2, 0xa1,
+ 0x7c, 0x88, 0x45, 0x29, 0x92, 0xca, 0x84, 0xf2,
+ 0x85, 0x4c, 0xc0, 0x9c, 0x4c, 0x2c, 0xd6, 0xd4,
+ 0x0f, 0x03, 0x01, 0x80, 0xc0, 0x68, 0x30, 0x18,
+ 0x0c, 0x2b, 0x58, 0x06, 0x3a, 0x82, 0x85, 0xd0,
+ 0xc3, 0x1d, 0xf0, 0xa6, 0x90, 0x8b, 0xe5, 0x42,
+ 0x79, 0x40, 0x9b, 0x51, 0x30, 0x2a, 0x56, 0x58,
+ 0x0f, 0x03, 0x01, 0x80, 0xc0, 0x70, 0x30, 0x18,
+ 0x0c, 0x2b, 0x1a, 0x06, 0x3a, 0x73, 0x05, 0xd0,
+ 0xc3, 0x1c, 0x00, 0xa6, 0x90, 0x8b, 0xe5, 0x22,
+ 0x49, 0x1c, 0x90, 0x54, 0xab, 0xc8, 0x1e, 0x06,
+ 0x03, 0x01, 0x88, 0xc0, 0x60, 0x30, 0x18, 0x55,
+ 0xc0, 0x0c, 0x74, 0xc9, 0x0b, 0xa1, 0x86, 0x34,
+ 0x61, 0x4d, 0x21, 0x17, 0xca, 0x45, 0x42, 0x61,
+ 0x48, 0x8a, 0x41, 0x22, 0x53, 0xb8, 0x08, 0xe0,
+ 0xa2, 0x69, 0x08, 0xbf, 0x4c, 0x00, 0x27, 0x93,
+ 0x88, 0xa5, 0x8a, 0x5d, 0x81, 0x04, 0x9b, 0x4b,
+ 0xc0, 0x24, 0xd3, 0x24, 0x04, 0x10, 0xe8, 0x03,
+ 0x74, 0x9b, 0x80, 0xc3, 0x17, 0x90, 0xa6, 0x90,
+ 0x8b, 0xf4, 0xa4, 0x02, 0x79, 0x38, 0xae, 0x41,
+ 0x29, 0x13, 0xa9, 0x86, 0x04, 0x70, 0x51, 0x34,
+ 0x84, 0x5f, 0xa4, 0xa8, 0x13, 0xc9, 0xc4, 0x82,
+ 0x09, 0x38, 0x89, 0x24, 0x20, 0xb7, 0x49, 0x28,
+ 0x0c, 0x31, 0x55, 0x0a, 0x69, 0x08, 0xbf, 0x48,
+ 0x00, 0x27, 0x93, 0x88, 0xa5, 0x2a, 0x47, 0x81,
+ 0x48, 0x14, 0x4d, 0x21, 0x17, 0xe8, 0xe6, 0x04,
+ 0xf2, 0x71, 0x04, 0xa6, 0x54, 0x22, 0x94, 0x89,
+ 0x25, 0x32, 0x5c, 0x87, 0x02, 0xdd, 0x22, 0x40,
+ 0x30, 0xc4, 0xbc, 0x29, 0xa4, 0x22, 0xfd, 0x16,
+ 0x80, 0x9e, 0x4e, 0xa3, 0xe8, 0x11, 0xa8, 0xb8,
+ 0x14, 0x12, 0xa1, 0x26, 0x8c, 0x60, 0x0a, 0x26,
+ 0x90, 0x8b, 0xf4, 0x47, 0x02, 0x79, 0x38, 0x90,
+ 0x41, 0x27, 0x11, 0x23, 0xe8, 0x16, 0xe8, 0xfe,
+ 0x01, 0x86, 0x20, 0xe1, 0x4d, 0x21, 0x17, 0xe8,
+ 0x64, 0x04, 0xf2, 0x71, 0x4c, 0xa8, 0x4f, 0x28,
+ 0x52, 0xf4, 0x0f, 0x03, 0x01, 0x80, 0xc8, 0x60,
+ 0x30, 0x18, 0x0c, 0x29, 0x68, 0x06, 0x3a, 0x06,
+ 0x85, 0xd0, 0xc3, 0x0e, 0x70, 0xa6, 0x90, 0x8b,
+ 0xe5, 0x32, 0x29, 0x4a, 0x84, 0x40, 0x43, 0x22,
+ 0x97, 0xc9, 0xc4, 0xf2, 0xa1, 0x26, 0x80, 0xa1,
+ 0x41, 0x2a, 0x12, 0x68, 0x2c, 0x00, 0xa1, 0x81,
+ 0xe0, 0x60, 0x30, 0x18, 0x0d, 0x06, 0x03, 0x01,
+ 0x85, 0x22, 0x00, 0xc7, 0x3e, 0x10, 0xba, 0x18,
+ 0x61, 0x76, 0x14, 0xd2, 0x11, 0x7c, 0xa6, 0x45,
+ 0x29, 0x4f, 0xd8, 0x08, 0x64, 0x52, 0xf9, 0x38,
+ 0x9e, 0x54, 0x24, 0xcf, 0x64, 0x28, 0x25, 0x42,
+ 0x4c, 0xfa, 0x80, 0x14, 0x30, 0x3c, 0x0c, 0x06,
+ 0x03, 0x01, 0xa0, 0xc0, 0x60, 0x30, 0xa2, 0xe0,
+ 0x18, 0xe7, 0x6a, 0x17, 0x43, 0x0c, 0x23, 0xc2,
+ 0x9a, 0x42, 0x2f, 0x94, 0xc8, 0xa5, 0x29, 0xe5,
+ 0x01, 0x0c, 0x8a, 0x5f, 0x27, 0x13, 0xca, 0x84,
+ 0x99, 0xd6, 0x85, 0x04, 0xa8, 0x49, 0x9d, 0xf0,
+ 0x17, 0xe7, 0x7e, 0x03, 0x32, 0xc5, 0x0d, 0x00,
+ 0xf0, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x01, 0x80,
+ 0xc0, 0x8d, 0x14, 0xb0, 0xb7, 0x45, 0x4c, 0x0c,
+ 0x30, 0x5e, 0x0a, 0x69, 0x08, 0xbe, 0x54, 0x2c,
+ 0x94, 0x08, 0xa4, 0xd2, 0x09, 0x4c, 0x97, 0x41,
+ 0x40, 0x3c, 0x0c, 0x06, 0x03, 0x01, 0x80, 0xc0,
+ 0x60, 0x46, 0xa0, 0x58, 0x18, 0xe6, 0xc8, 0x17,
+ 0x43, 0x0c, 0x0f, 0x82, 0x9a, 0x42, 0x2f, 0xcd,
+ 0xa4, 0x09, 0xf3, 0x7d, 0x02, 0x09, 0x4c, 0x97,
+ 0x3f, 0x40, 0x3c, 0x0c, 0x06, 0x03, 0x01, 0x80,
+ 0xc0, 0x8c, 0x30, 0x9f, 0x58, 0x18, 0xe6, 0x88,
+ 0x17, 0x43, 0x0c, 0x07, 0x82, 0x9a, 0x42, 0x2f,
+ 0x91, 0x08, 0xa4, 0x62, 0x69, 0x04, 0xa6, 0x4b,
+ 0x9e, 0xa8, 0x1e, 0x06, 0x03, 0x01, 0x80, 0xc0,
+ 0x66, 0x30, 0x18, 0x4f, 0x30, 0x0c, 0x73, 0x25,
+ 0x0b, 0xa1, 0x86, 0x08, 0xe1, 0x4d, 0x21, 0x17,
+ 0xc9, 0xa4, 0xf2, 0x21, 0x14, 0x9a, 0x41, 0x29,
+ 0x92, 0xe7, 0x6a, 0x07, 0x81, 0x80, 0xc0, 0x60,
+ 0x30, 0x21, 0x8c, 0x06, 0x13, 0xac, 0x03, 0x1c,
+ 0xc1, 0x42, 0xe8, 0x61, 0x81, 0x38, 0x53, 0x48,
+ 0x45, 0xf2, 0x69, 0x24, 0xa6, 0x43, 0x26, 0x90,
+ 0x4a, 0x64, 0xba, 0x53, 0x05, 0x8e, 0x5d, 0xc1,
+ 0x74, 0x30, 0xc0, 0x40, 0x29, 0x24, 0x42, 0x79,
+ 0x2e, 0x73, 0xe1, 0x63, 0x96, 0xf0, 0x5d, 0x0c,
+ 0x30, 0x00, 0x0a, 0x49, 0x10, 0x86, 0x41, 0x27,
+ 0x10, 0xc8, 0xa4, 0xc9, 0xaf, 0x85, 0x8e, 0x59,
+ 0x41, 0x74, 0x30, 0xc1, 0xdc, 0x29, 0x24, 0x42,
+ 0x09, 0x0a, 0x5a, 0xe0, 0x54, 0x05, 0x0d, 0x20,
+ 0xfc, 0x16, 0xe8, 0x43, 0x01, 0x86, 0x0c, 0x81,
+ 0x49, 0x22, 0x14, 0x88, 0xa5, 0x42, 0x91, 0x64,
+ 0x14, 0x35, 0x83, 0x58, 0x5b, 0xa0, 0xe6, 0x06,
+ 0x18, 0x28, 0x85, 0x24, 0x88, 0x49, 0x23, 0x93,
+ 0xa5, 0x60, 0x04, 0x50, 0x50, 0xda, 0x0a, 0xe1,
+ 0x6e, 0x82, 0xf8, 0x18, 0x60, 0x7a, 0x14, 0x92,
+ 0x21, 0x64, 0x8a, 0x53, 0x05, 0x0d, 0xe0, 0x8c,
+ 0x16, 0xe8, 0x27, 0x01, 0x86, 0x05, 0x81, 0x49,
+ 0x22, 0x13, 0x89, 0xe0, 0xa1, 0xc4, 0x0d, 0x82,
+ 0xdd, 0x03, 0xe0, 0x30, 0xc0, 0x70, 0x29, 0x24,
+ 0x49, 0x3b, 0x01, 0x3c, 0xa6, 0x45, 0x05, 0x0e,
+ 0x60, 0x46, 0x16, 0xe8, 0x15, 0x81, 0x86, 0x01,
+ 0x21, 0x49, 0x22, 0x12, 0x08, 0xa4, 0xc2, 0x84,
+ 0x04, 0x42, 0xde, 0x75, 0x3a, 0x1c, 0x0e, 0xb0,
+ 0xff, 0x03, 0x25, 0x72, 0x44, 0x5b, 0x00, 0xf2,
+ 0xa7, 0x9d, 0x4e, 0x87, 0x03, 0xa9, 0xd2, 0xb6,
+ 0xc3, 0x53, 0x85, 0x69, 0x0e, 0xe0, 0x5e, 0x16,
+ 0x4a, 0xd3, 0x08, 0xb6, 0x6f, 0xc0, 0x65, 0xad,
+ 0x28, 0x51, 0x2b, 0x34, 0x83, 0xb8, 0x0a, 0x05,
+ 0xd6, 0x2b, 0x02, 0x2d, 0x1f, 0x4b, 0x04, 0xa4,
+ 0x10, 0xbb, 0x03, 0x0c, 0x52, 0x08, 0xf9, 0x2a,
+ 0xe3, 0x10, 0x40, 0x10, 0x2c, 0x70, 0x61, 0x2b,
+ 0xe8, 0x2a, 0x25, 0xe0, 0x31, 0x15, 0xc9, 0x68,
+ 0x0d, 0x92, 0x79, 0x03, 0x1c, 0x59, 0xc0, 0xcb,
+ 0x26, 0xd0, 0x1e, 0x88, 0x23, 0x9c, 0x00, 0xa3,
+ 0xa1, 0xbe, 0x50, 0x46, 0x0a, 0x88, 0x58, 0xd8,
+ 0xe0, 0x66, 0x57, 0x59, 0x63, 0x01, 0xbe, 0x22,
+ 0xa0, 0x0a, 0x92, 0x40, 0x18, 0xe0, 0x44, 0x57,
+ 0x51, 0x00, 0xae, 0x04, 0xe0, 0x21, 0x80, 0x90,
+ 0x1c, 0xe0, 0x52, 0x46, 0x53, 0x64, 0x10, 0x00,
+ 0x14, 0x30, 0x8b, 0x48, 0x9a, 0x4c, 0xd1, 0x13,
+ 0x2b, 0x61, 0xb2, 0x3c, 0x40, 0x74, 0x8e, 0x00,
+ 0x51, 0xa5, 0x08, 0x67, 0xb9, 0x2a, 0x38, 0x80,
+ 0xe1, 0x18, 0x40, 0x29, 0x9d, 0x0c, 0x26, 0x3a,
+ 0x6e, 0x00, 0xb6, 0x03, 0x22, 0x30, 0x9f, 0x97,
+ 0xda, 0x63, 0xd7, 0x16, 0x69, 0x00, 0x30, 0x82,
+ 0x3d, 0xdf, 0x6c, 0x8f, 0x72, 0xc2, 0xa3, 0xdd,
+ 0xd0, 0xa8, 0xe7, 0x29, 0xda, 0x02, 0x60, 0x73,
+ 0x88, 0x80, 0x5c, 0xa2, 0x6a, 0x47, 0x38, 0xe7,
+ 0x84, 0x2a, 0x39, 0xe5, 0x0a, 0x8e, 0xba, 0x42,
+ 0xa0, 0x26, 0x46, 0xc3, 0x61, 0x8e, 0x31, 0x27,
+ 0x31, 0x80, 0x18, 0x5b, 0x0d, 0x90, 0xd2, 0x03,
+ 0xa4, 0x2c, 0x02, 0x8d, 0x17, 0x43, 0x1d, 0xc2,
+ 0xb8, 0x2c, 0x71, 0x59, 0x0b, 0x84, 0x0a, 0x40,
+ 0xc7, 0x15, 0x20, 0x33, 0x45, 0x74, 0xc6, 0x10,
+ 0x0c, 0x0b, 0x61, 0xb2, 0x14, 0xc0, 0x74, 0x84,
+ 0x20, 0x51, 0xa2, 0x90, 0x63, 0xb8, 0x41, 0x05,
+ 0xda, 0x2f, 0x43, 0x7b, 0x85, 0xab, 0x08, 0x20,
+ 0x18, 0x06, 0x43, 0x29, 0xe2, 0x12, 0x02, 0x7d,
+ 0x05, 0x42, 0x71, 0x64, 0x03, 0x03, 0xc0, 0xe0,
+ 0x60, 0x30, 0x18, 0x0c, 0x06, 0x03, 0x08, 0x49,
+ 0x81, 0xa4, 0xdd, 0x03, 0x90, 0x39, 0x1d, 0x22,
+ 0x40, 0x25, 0xc8, 0x0f, 0x01, 0xb2, 0x6d, 0x60,
+ 0x6e, 0x32, 0x99, 0x20, 0xa8, 0x07, 0x08, 0x36,
+ 0x45, 0x8e, 0x10, 0xd5, 0x30, 0x83, 0x52, 0x11,
+ 0xa1, 0xd0, 0x36, 0x93, 0x71, 0x90, 0xca, 0x78,
+ 0x81, 0x48, 0x5a, 0x4d, 0xc6, 0x43, 0x29, 0xe0,
+ 0x15, 0x02, 0x35, 0x90, 0x0c, 0x0f, 0x03, 0x81,
+ 0x80, 0xc0, 0x60, 0x30, 0x18, 0x0c, 0x20, 0x34,
+ 0x06, 0x13, 0x71, 0x90, 0x40, 0x69, 0x33, 0x42,
+ 0x2b, 0x8c, 0xa6, 0xc3, 0x9c, 0x34, 0x80, 0xdb,
+ 0x06, 0x89, 0x3b, 0x1b, 0xcd, 0x26, 0x41, 0x04,
+ 0x30, 0xc0, 0xc8, 0x69, 0x33, 0x40, 0xaa, 0x8e,
+ 0xc6, 0x93, 0x94, 0x0f, 0x00, 0xc3, 0x01, 0x90,
+ 0x36, 0xc0, 0xd4, 0x0d, 0x10, 0x8b, 0x00, 0x54,
+ 0x09, 0x14, 0xed, 0x03, 0x10, 0x39, 0xc1, 0x94,
+ 0x2e, 0x50, 0x82, 0x23, 0x9c, 0x09, 0x42, 0x15,
+ 0x02, 0x52, 0x85, 0x17, 0x60, 0x30, 0x10, 0xa8,
+ 0x15, 0x1c, 0x2a, 0x05, 0x40, 0x5b, 0x83, 0x00,
+ 0x19, 0x0d, 0x26, 0x68, 0x0b, 0x01, 0xa0, 0xd2,
+ 0x64, 0x32, 0xc1, 0x74, 0x2c, 0x70, 0xcf, 0x03,
+ 0x99, 0xd0, 0xc3, 0x04, 0xd0, 0x10, 0x1e, 0xa1,
+ 0x36, 0x06, 0xf8, 0x06, 0x84, 0xfe, 0x27, 0x62,
+ 0x22, 0x81, 0x28, 0x48, 0xa0, 0xbc, 0x06, 0xf3,
+ 0x69, 0xc2, 0x00, 0xc0, 0x65, 0x10, 0x0c, 0x07,
+ 0xb1, 0x0c, 0x19, 0xf9, 0xf4, 0xfb, 0x12, 0x10,
+ 0x11, 0x08, 0x0f, 0xa7, 0xd8, 0x30, 0x81, 0x8c,
+ 0xde, 0x6d, 0x38, 0x40, 0x50, 0x0c, 0xa2, 0x01,
+ 0x80, 0xf6, 0x1e, 0x41, 0x73, 0x83, 0x78, 0x0b,
+ 0x4c, 0x70, 0xbc, 0x03, 0x94, 0x02, 0x02, 0x15,
+ 0x0e, 0x60, 0x3d, 0x9e, 0xe0, 0x10, 0x16, 0x43,
+ 0xa9, 0xc2, 0x0c, 0xe0, 0x6f, 0x84, 0x20, 0x5c,
+ 0xcf, 0x82, 0x03, 0x74, 0x0d, 0x00, 0xc7, 0x05,
+ 0x90, 0xb7, 0xc0, 0x40, 0x2c, 0x30, 0x55, 0x01,
+ 0x01, 0xf0, 0x14, 0x62, 0x84, 0xd8, 0x1a, 0x4d,
+ 0xc0, 0xa3, 0x84, 0x09, 0x40, 0xe7, 0x06, 0xf0,
+ 0x3b, 0xc2, 0x50, 0x0c, 0x80, 0xa1, 0xfc, 0x30,
+ 0xc0, 0xe0, 0x20, 0x18, 0x0f, 0x61, 0xa4, 0x06,
+ 0x28, 0x43, 0x01, 0xd2, 0x00, 0x80, 0x45, 0x39,
+ 0x40, 0x84, 0x0e, 0x50, 0x9d, 0x03, 0x79, 0xd4,
+ 0xe9, 0x07, 0x60, 0x33, 0x08, 0x20, 0x44, 0x07,
+ 0x83, 0xa0, 0x80, 0xef, 0x01, 0xb0, 0x34, 0x42,
+ 0xf4, 0x0e, 0x90, 0xa2, 0x03, 0x29, 0x96, 0x1b,
+ 0xa1, 0x20, 0x3e, 0x9f, 0x44, 0x40, 0xa1, 0x94,
+ 0x23, 0x80, 0xe0, 0x20, 0x19, 0x42, 0x24, 0x0e,
+ 0x02, 0x01, 0xfc, 0x22, 0x42, 0x5b, 0x0f, 0xd0,
+ 0x3a, 0x08, 0x07, 0xe7, 0xd3, 0xec, 0x11, 0x04,
+ 0x60, 0x3d, 0x05, 0x1d, 0xcd, 0x06, 0x98, 0x38,
+ 0x80, 0x28, 0xdc, 0x4c, 0x87, 0x40, 0x1c, 0xc4,
+ 0x03, 0x11, 0x58, 0x80, 0xe8, 0x6f, 0x10, 0x1b,
+ 0x89, 0x90, 0xdc, 0x03, 0x98, 0x2a, 0x02, 0x60,
+ 0x70, 0x8a, 0xe0, 0x1d, 0x01, 0x43, 0xf8, 0x2b,
+ 0x85, 0xa4, 0xcc, 0x20, 0x82, 0xf0, 0x1d, 0x0d,
+ 0xf0, 0x16, 0x03, 0x7c, 0x21, 0xc2, 0xc3, 0x00,
+ 0x70, 0x10, 0x41, 0x64, 0x0c, 0x86, 0x93, 0x30,
+ 0x28, 0xdc, 0x4c, 0x85, 0xa0, 0x1c, 0xc4, 0x10,
+ 0x56, 0x03, 0x21, 0xbc, 0x14, 0x28, 0x82, 0xa8,
+ 0x18, 0xe0, 0x20, 0x02, 0x90, 0x54, 0x13, 0x80,
+ 0xde, 0x70, 0x05, 0x41, 0x24, 0x0c, 0x70, 0x60,
+ 0x03, 0x0c, 0x29, 0x00, 0x41, 0x02, 0x90, 0x1e,
+ 0x88, 0x0d, 0x26, 0x60, 0x51, 0x8a, 0x1c, 0xa0,
+ 0x69, 0x37, 0x02, 0x8e, 0x10, 0x00, 0x03, 0x9c,
+ 0x2e, 0x40, 0xef, 0x0d, 0xe0, 0x32, 0x02, 0x86,
+ 0x46, 0x43, 0xa9, 0xc0, 0x40, 0x3f, 0x3e, 0x9f,
+ 0x44, 0x03, 0x01, 0xe8, 0x28, 0xee, 0x68, 0x34,
+ 0x9b, 0x0c, 0xa0, 0xa3, 0x81, 0xbe, 0x05, 0xc0,
+ 0x70, 0x84, 0x00, 0x19, 0x44, 0x07, 0xa8, 0x28,
+ 0x01, 0xbe, 0x1d, 0x00, 0x6c, 0x82, 0xd8, 0x18,
+ 0x4d, 0x90, 0xe7, 0x03, 0x91, 0x96, 0x10, 0xe0,
+ 0x61, 0x87, 0x90, 0x0c, 0xa0, 0xa2, 0x06, 0xf3,
+ 0x80, 0x2a, 0x03, 0x00, 0x64, 0x34, 0x99, 0xa0,
+ 0x04, 0x13, 0x08, 0x64, 0x81, 0xb2, 0x07, 0x80,
+ 0x61, 0x36, 0x43, 0x20, 0x07, 0x62, 0x03, 0x49,
+ 0xb6, 0x00, 0x20, 0x64, 0x34, 0x98, 0x60, 0x72,
+ 0x02, 0x03, 0x19, 0xbc, 0xda, 0x70, 0x34, 0x9b,
+ 0x20, 0xb2, 0x06, 0xf3, 0x71, 0xb0, 0xf2, 0x0a,
+ 0x38, 0x40, 0x84, 0x0e, 0xd0, 0x32, 0x03, 0xac,
+ 0x0e, 0x00, 0xa6, 0x22, 0x10, 0x11, 0x89, 0x24,
+ 0x32, 0x61, 0x7c, 0xae, 0x41, 0x27, 0x15, 0x0b,
+ 0xe4, 0x62, 0x49, 0x30, 0x8a, 0x22, 0x10, 0x11,
+ 0x49, 0xc5, 0x62, 0x49, 0x48, 0x9e, 0x4e, 0x26,
+ 0x91, 0x49, 0xc5, 0x41, 0xf8, 0x82, 0x02, 0x40,
+ 0x6f, 0x38, 0x08, 0x0b, 0x66, 0x93, 0x34, 0x17,
+ 0x00, 0x74, 0x20, 0x39, 0x0b, 0xcd, 0xe2, 0x01,
+ 0x8c, 0x17, 0x86, 0xe4, 0x2f, 0x3b, 0x88, 0x06,
+ 0x70, 0x54, 0x1b, 0xb8, 0xbc, 0xde, 0x20, 0x19,
+ 0x41, 0x28, 0x6c, 0x50, 0x1e, 0x01, 0x00, 0xe2,
+ 0x04, 0x22, 0x3b, 0x81, 0xe8, 0x5a, 0x4d, 0xc6,
+ 0x33, 0x61, 0xd4, 0xc8, 0x65, 0x32, 0x02, 0x8e,
+ 0x42, 0xf3, 0x78, 0x80, 0xc5, 0x00, 0x40, 0x10,
+ 0x1b, 0xce, 0x10, 0x45, 0x01, 0x69, 0x98, 0xd2,
+ 0x6c, 0x32, 0x88, 0x06, 0x03, 0xd1, 0x01, 0xa4,
+ 0xcc, 0x0a, 0x34, 0x9b, 0x8c, 0x66, 0xc3, 0xa9,
+ 0x90, 0xca, 0x2d, 0x33, 0x1a, 0x4d, 0x86, 0x50,
+ 0x51, 0x94, 0xd8, 0x73, 0x32, 0x82, 0x8c, 0x87,
+ 0x23, 0x79, 0xc0, 0x15, 0x02, 0x00, 0x32, 0x1a,
+ 0x4c, 0xc0, 0xa1, 0xd8, 0x28, 0x74, 0x20, 0x34,
+ 0x9b, 0x8c, 0x66, 0xc3, 0xa9, 0x90, 0xca, 0x20,
+ 0x38, 0x40, 0x20, 0x0e, 0x66, 0x51, 0x69, 0xdc,
+ 0xde, 0x72, 0x32, 0x08, 0x0d, 0x26, 0xe3, 0x19,
+ 0xb0, 0xea, 0x64, 0x32, 0x99, 0x04, 0x03, 0xb0,
+ 0x51, 0x6c, 0xca, 0x6e, 0x32, 0x1a, 0x4c, 0xc5,
+ 0xd0, 0x50,
+ };
+
+#endif /* !FICL_WANT_LZ_SOFTCORE */
+
+
+void ficlSystemCompileSoftCore(ficlSystem *system)
{
- FICL_VM *pVM = pSys->vmList;
- CELL id = pVM->sourceID;
- int ret = sizeof (softWords);
- assert(pVM);
- pVM->sourceID.i = -1;
- ret = ficlExec(pVM, softWords);
- pVM->sourceID = id;
- if (ret == VM_ERREXIT)
- assert(FALSE);
+ ficlVm *vm = system->vmList;
+ int returnValue;
+ ficlCell oldSourceID = vm->sourceId;
+ ficlString s;
+#if FICL_WANT_LZ_SOFTCORE
+ char *ficlSoftcoreUncompressed = NULL;
+ size_t gotUncompressedSize = 0;
+ returnValue = ficlLzUncompress(ficlSoftcoreCompressed, (unsigned char **)&ficlSoftcoreUncompressed, &gotUncompressedSize);
+ FICL_VM_ASSERT(vm, returnValue == 0);
+ FICL_VM_ASSERT(vm, gotUncompressedSize == ficlSoftcoreUncompressedSize);
+#endif /* FICL_WANT_LZ_SOFTCORE */
+ vm->sourceId.i = -1;
+ FICL_STRING_SET_POINTER(s, (char *)(ficlSoftcoreUncompressed));
+ FICL_STRING_SET_LENGTH(s, ficlSoftcoreUncompressedSize);
+ returnValue = ficlVmExecuteString(vm, s);
+ vm->sourceId = oldSourceID;
+#if FICL_WANT_LZ_SOFTCORE
+ free(ficlSoftcoreUncompressed);
+#endif /* FICL_WANT_LZ_SOFTCORE */
+ FICL_VM_ASSERT(vm, returnValue != FICL_VM_STATUS_ERROR_EXIT);
return;
}
-
-
+/* end-of-file */